권한 있는 DNS서버에 있는 명령으로서, 도메인에 연계된 IP주소 및 해당 도메인에 대한 요청의 처리 방법에 대한 정보를 제공
도메인의 IP 주소를 갖고 있는 레코드.
nslookup 도메인명을 입력하면 아래와 같은 결과를 얻을 수 있다.
Address : 203.248.252.2가 A레코드이다.
도메인의 IPv6 주소를 포함하는 레코드.
nslookup -q=AAAA 도메인명을 입력하면 아래와 같은 결과를 얻을 수 있다.
Address: 2404:6800:4005:80e::200e가 AAAA레코드이다.
MX레코드(Mail eXchange Record) : SMTP에 따라 이메일 메시지를 라우팅하는 방법을 나타낸다.
nslookup -type=mx 도메인명을 입력하면 아래와 같은 결과를 얻을 수 있다.
naver.com MX preference = 10, mail exchanger = mx3.naver.com부분이 MX레코드에 해당하며 사진의 경우에는 3개의 레코드가 조회됐다.
MX preference(우선순위)값이 동일하게 10으로 주어져 있는 것으로 보아 세 개의 서버에 균등하게 부하를 분산시킴을 알 수 있다.
도메인의 텍스트 정보를 저장하는 DNS레코드 유형이나 이메일 인증, 도메인 소유자 확인, 서비스 구성 및 보안 설정 등 다양한 용도로 활용.
"속성= 값"의 형식으로 저장된다.nslookup -q=TXT 도메인명 을 입력하면 아래와 같은 결과를 얻을 수 있다.
naver.com text = "google." 부분이 TXT레코드에 해당되며 다양한 용도로 활용된다.
그 중 마지막 줄 v=spf1~ 부분은 SPF 레코드에 해당.
SPF 레코드 (Sender Policy Framework Record) : 이메일 스팸을 방지하기 위해 사용되는 레코드로, 이 도메인에서 허용되는 이메일 발송 서버(IP 주소)를 정의.
SPF레코드 구조
- SPF레코드는
v=spf1로 시작하여 SPF레코드가 포함되어 있다고 서버에게 알림.- 다음으로 SPF의 “guest list”, 즉
승인된 IP주소의 목록이 나열됨. ( ex: ip4: 192.0.0.0 )include해당 도메인에서 이메일을 보낼 수 있는 제 3자 조직을 서버에게 알림. 이 경우 include에 포함된 도메인의 SPF 레코드도 검사해야함. ( ex: include:example.net)- 마지막으로
all을 이용해 메일을 어떻게 처리해야 할지 서버에 알림.
-all: SPF 레코드에 열거되지 않은 주소는 거부하라고 서버에 알림.
~all: SPF 레코드에 열거되지 않은 이메일은 안전하지 않음 혹은 스팸으로 표시하되 수락하라고 서버에 알림.
+all: SPF 레코드와 무관하게 어떤 서버라도 이메일을 보낼 수 있다고 서버에 알림.

- A 서버에서 B 서버의 SPF 레코드 확인에 실패하더라도 메일은 B 서버로 전송된다.
이 경우에도 B 서버의 스팸메일함으로 분류된다.
- B 서버에서 A 서버의 SPF 레코드 확인에 실패하는 경우도 마찬가지다.
DKIM레코드(DomainKeys Identified Mail Record) : 이메일 인증을 위해 사용되며, 이 도메인에서 보낸 이메일이 변경되지 않았음을 검증하는데 사용(공개-개인 키 쌍 활용).
#DKIM 예시
example-mail.domainkey.example.com TXT v=DKIM1; p=76E629F05F709EF665853333EEC3F5ADE69A2362BECE40658267AB2FC3CB6CBE 6000
DKIM레코드 구조
[selector]._domainkey.[domain]
selector :이메일 서비스 공급자가 발급한 특수 값, DKIM 헤더에 포함되어 이메일 서버가 DNS에서 필요한 DKIM 조회를 수행할 수 있도록 함. (DKIM Selector)
_domainkey : 모든 DKIM 레코드 이름에 포함.
domain : 이메일 도메인 명.v=DKIM1 이 TXT레코드가 DKIM 레코드로 해석되어야 함을 나타냄
p= 공개 키
DKIM헤더
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=naver.com; s=s20171208;
t=1715331124; bh=vpMfqA7uxzhNG8wELHvwQbnQ3W5RsE0QJJu4E7tfvkA=;
h=Message-ID:Date:From:To:Subject:From:Subject:Feedback-ID:
X-Works-Security;
b=QEiF3SOWpkpwebHnZssAD9JdOgxdhYK8wJP75+e6oFJuoxU3opqnFUft2tRu1GUS9
WZ3jgCvJ32Pqk7F4/9iv66uZ83X7QFp9Ix2RqxirlFNK0FFOAqVs7MQLp37Y7Fod63
PXsADdnbU4luFvIDuBkghEWg7PrgIk0PSjCS8rp+S1NUu61Pe5JRzoTFDOKX1kZEIc
86mqyB6mh5BiP3uvvHQLOUdOCzqwBhGThuGet3ETF+qYEiW9r6fTjeuL0poorIq4Ux
yR1UVNlLp22F2UpfvFSDoz5k5HaZmMISZCgOE22cxIaYyqPd/HAWYRhnS4srdy3Mbn
JCWo+pf8oIZJg==
DKIM 헤더 구조
v=: 사용되는 DKIM 표시
a=: 디지털 서명 또는b를 계산하고,bh해시 생성하는데 사용되는 알고리즘.
c=: 서명 조건. / relaxed (공백이나 라인 피드 등의 공백 무시) ↔ simple (공백 무시하지 않음)
d=: 송신자의 도메인 이름.
s=: 수신 서버가 DNS 레코드를 조회하는 데 사용해야 하는 선택기(DKIM Selector). DKIM 레코드에서 사용된 Selector와 일치해야 함.
t=: DKIM 서명 유효기간.
bh=: 이메일 본문의 해시.
h=: 디지털 서명을 만드는 데 사용되는 헤더 필드 또는b를 나열
b=:h및bh에서 생성되고 개인 키로 서명된 디지털 서명
DMARC레코드 (Domain-based Message Authentication, Reporting and Conformance Record) : SPF와 DKIM을 통합하여 이메일 도메인의 인증을 강화하는데 사용.
#DMARC 예시
v=DMARC1; p=none; sp=quarantine; adkim=r; aspf=r; rua=mailto:mailauth-reports@google.com
DMARC 구조
v=DMARC1: 이 TXT 레코드를 DMARC 레코드로 해석해야 함.
p=: 이메일 서버가 SPF 및 DKIM에 실패한 이메일을 처리하는 규칙. (quarantine = 격리, none = 통과, reject = 차단)
adkim=: DKIM 검사 수준 (s = 엄격, r = 완화)
aspf=: SPF 검사 수준 (s = 엄격, r = 완화)
rua=: 이메일 발송에 대한 집계 피드백을 보낼 URI를 나타냄. 이메일 발송/실패 통계 정보 등.
PTR 레코드(DNS Pointer Record) : IP 주소와 연결된 도메인 이름을 제공
#PTR레코드 예시
127.0.0.1 인 경우
PTR레코드 : 127.0.0.1 PTR 1.0.0.127.in-addr.arpa localhost
(1) IP를 역순으로 만든다.
(2) 역순으로 만든 IP뒤에 .in-addr.arpa 를 붙인다.
CNAME레코드(Cononical Name Record) : 도메인의 별칭을 정의하는 레코드.
blog.naver.com은 별칭이다.
blog.naver.com.nheos.com는 CNAME 레코드로 정식 도메인이다.
따라서 blog.naver.com 도메인은 실제로 blog.naver.com.nheos.com 으로 리디렉션 된다는 것을 의미.
💾 참고자료
https://www.cloudflare.com/ko-kr/learning/dns/dns-records/
Google Gemini
OpenAI ChatGPT