한눈에 요약
- 어떤 도메인 주소로 요청이 들어왔을 때 어디로 보낼지를 적어 두는 설정 한 줄 한 줄이다.
- 도메인을 서버 IP에 연결하고, 메일 받을 서버를 지정하고, 남이 내 도메인을 사칭해 메일 보내는 걸 막는 일이 모두 이 레코드로 이뤄진다.
- 계열은 셋으로 나뉜다. 주소 매핑(A·AAAA·CNAME·PTR), 위임·권한(NS·SOA), 메일(MX·TXT·SPF).
- 개인 도메인을 사서 직접 연결하거나 실서비스 도메인을 손볼 때 반드시 마주치는 기초 지식이다.
무엇을 하는 설정인가
DNS 레코드는 DNS 서버가 도메인 관련 요청을 받았을 때 어떻게 처리할지를 지정하는 설정 문자열이다.
도메인을 서버 IP에 연결하거나, 메일 서버를 지정하거나, 발신 인증 정책을 선언한다. 도메인을 실제로 운용하기 위한 설정이 모두 레코드 형태로 표현된다 DNS 레코. 개인 도메인을 구입해 내 서버 IP와 연결하거나 실서비스 도메인을 관리할 때 각 레코드의 특징을 알아야 한다.
이 페이지는 이 위키에서 웹·네트워크 인프라 기초 영역의 첫 문서다. 환경을 선언적 설정으로 관리한다는 점에서 코드형 인프라와 사상이 닿아 있다. 아래 CNAME 사례처럼 "한 곳만 고치면 나머지가 따라오는" 단일 관리 지점의 이점이 IaC의 모듈화 이점과 같은 결이다.
주소 매핑 계열
A 레코드
도메인 주소와 서버 IPv4 주소를 직접 매핑한다. tistory.com → 121.53.105.234 같은 식이다.
일대일일 필요는 없다. 설정에 따라 일대다·다대일도 된다. naver.com은 4개 IP가 매핑돼 있다. 조회 결과는 TTL(Time To Live) 값만큼 DNS 서버와 PC 캐시에 저장된다.
AAAA 레코드
A 레코드의 IPv6 버전. 도메인에 IPv6 주소를 매핑한다.
CNAME (Canonical Name record)
도메인 별명(alias) 레코드다. 도메인 주소를 또 다른 도메인 주소로 이중 매핑한다. IP가 아니라 반드시 다른 도메인을 등록해야 한다. A 레코드처럼 IP를 직접 넣을 수는 없다.
예를 들어 daum2.net의 CNAME을 daum.net으로 두면, daum2.net 요청이 daum.net으로 간다. 거기서 다시 A 레코드 IP(203.133.167.81)로 최종 접속한다.
A 레코드 vs CNAME 트레이드오프
| 장점 | 단점 | |
|---|---|---|
| A | 한 번의 요청으로 IP를 바로 얻어 빠르다 | 서버 이전 등으로 IP가 바뀌면 도메인마다 일일이 변경해야 한다 |
| CNAME | 서버 IP가 바뀌어도 대상 도메인의 A 레코드 하나만 고치면 하위 도메인은 그대로 유지 | 실제 IP를 얻을 때까지 여러 번 DNS 요청 → 성능 저하 가능 |
서브 도메인들을 메인 도메인에 CNAME으로 묶고, 메인 도메인만 A 레코드로 IP에 매핑해 두는 방법이 있다. 그러면 IP가 바뀌어도 메인 도메인의 A 레코드 한 곳만 고치면 된다. 수십 개 도메인을 관리하는 인프라에서 유리하다. 두 레코드의 장단점은 서로 상반된다 DNS 레코.
PTR (Pointer)
A 레코드의 역방향이다. IP 질의에 도메인네임으로 응답한다. 121.53.105.234 → tistory.com 같은 식이다.
다만 1개 IP에 1개 도메인네임만 가질 수 있다는 점이 A 레코드와 다르다.
위임·권한 계열
NS (Name Server)
도메인의 네임서버 권한을 누가 관리하는지 알려주는 레코드. 어떤 도메인의 처리를 다른 네임 서버에 위임하는 기능. 예: example.co.kr를 cafe24에서 구입하면 그 도메인의 네임서버는 cafe24가 된다.
SOA (Start of Authority)
네임서버가 해당 도메인에 대해 인증된 데이터를 보유함을 증명하는 레코드다. 기본 네임 서버, 관리자 이메일, 일련 번호, 각종 갱신 타이머 등 DNS 영역의 핵심 정보를 담는다.
도메인당 1개이며 없으면 네임서버가 정상 동작하지 않는다. 주요 필드는 serial(갱신 버전, 보통 YYYYMMDD), refresh(갱신 체크 주기), retry(재시도 주기), expire(신뢰 만료 기한), minimum(부재정보 캐싱 시간)이다.
메일 계열
MX (Mail Exchanger)
도메인과 연동된 메일 서버를 지정하는 레코드다. MX 레코드가 있어야 그 도메인을 이메일 주소로 쓸 수 있다. 보통 도메인 구입처(호스팅케이알·Cafe24·가비아 등)에서 설정한다. 확인은 nslookup -type=mx {도메인}이다.
TXT (TEXT)
임의의 텍스트를 담는 레코드로 주로 메모용. 실무에서는 key:value 구조로 각종 검증 정보를 넣으며, 아래 SPF도 실제로는 TXT 레코드에 기재한다.
SPF (Sender Policy Framework)
특정 도메인에서 이메일을 보낼 수 있도록 승인된 발신 주소를 명시하는 이메일 인증 레코드다. 받는 서버가 발신 도메인의 SPF 값과 비교해 발신 주소를 위장한 스팸인지 판단한다. "도어맨의 손님 목록"에 비유된다. SMTP가 본질적으로 발신 주소를 인증하지 않기 때문에 도입됐다.
주의: 전용 SPF 레코드 타입은 **공식적으로 지원 중단(deprecated)**되어, 실제 설정은 TXT 레코드에 한다 DNS 레코.
문법 예: v=spf1 ip4=192.0.2.0 ip4=192.0.2.1 include:examplesender.net -all
v=spf1: SPF 레코드 시작을 알리는 예약어(필수 시작).ip4=...: 승인된 발신 IP 목록(표기는IPv4가 아니라IP4).include:...: 대신 발송을 승인받은 제3자 조직.- 종결자
-all(미열거 주소 거부) /~all(스팸 표시하되 수락) /+all(누구든 발송 허용).
기타 레코드
- CAA (Certificate Authority Authorization): 도메인의 인증서 발급 인증기관 관련 레코드.
- HINFO (Host Information): 호스트의 CPU·OS 유형 등 일반 정보. 보안상 공용 서버에서는 잘 쓰지 않는다.
- ISDN: 호스트의 ISDN 주소(전화번호 형식)를 알려주는 리소스 레코드.
레코드 확인 도구
- nslookup (CMD):
nslookup {도메인}으로 기본 조회한다.-type=또는-query=옵션으로 특정 타입만 볼 수 있다(nslookup -type=MX naver.com,-type=a,-type=ns). 여러 OS에서 쓰는 네트워크 관리 명령줄 도구다. - Dig (
toolbox.googleapps.com): 구글이 제공하는 GUI DNS 레코드 조회. - whatsmydns.net: 전세계 기준 DNS 전파(propagation) 확인 사이트.