CNAME 레코드

캐노니컬 네임 레코드(Canonical Name record), 줄여서 CNAME 레코드(CNAME record)는 하나의 도메인 네임(에일리어스)을 다른 이름(표준 형식의 이름)으로 매핑시키는 도메인 네임 시스템(DNS)의 리소스 레코드의 일종이다.

하나의 IP 주소로부터 여러 개의 서비스를 실행할 때(예: 각기 다른 포트로 각각 구동되는 FTP 서버와 웹 서버 등) 편리함을 입증할 수 있다. 이를테면 ftp.example.com과 www.example.com를 (IP 주소를 가리키는) A 레코드를 보유한 example.com의 DNS 엔트리를 가리킬 수 있다. 그러면 IP 주소가 변경이 될 경우 네트워크 안의 한 지점에서 변경사항을 기록하기만 하면 된다.

CNAME 레코드는 무조건 다른 도메인 네임을 가리켜야 하며 직접 IP 주소를 가리켜서는 안 된다.

상세 설명 
DNS CNAME 레코드는 RFC 1034에 정의되어 있으며 RFC 2181의 섹션 10에 분명히 명시되어 있다.

CNAME 레코드는 도메인 네임 시스템에서 특수하게 관리되며 사용상 여러 제약이 따른다. DNS 리졸버가 정규 리소스 레코드를 찾는 동안 CNAME 레코드를 마주칠 때 원래의 이름 대신 표준 형식의 이름을 사용하여 쿼리를 다시 시작한다. (리졸버가 CNAME 레코드를 찾을 경우 쿼리를 재시작하지 않고 표준 형식의 이름이 반환된다.) CNAME 레코드가 가리키는 표준 형식의 이름은 각기 다른 DNS 존 내 원격 서버든 로컬 서버든지에 관계 없이 DNS 어느 곳이든 위치할 수 있다.

예를 들어 DNS 존이 다음과 같이 있다고 하면:
 NAME                    TYPE   VALUE
 --------------------------------------------------
 bar.example.com.        CNAME  foo.example.com.
 foo.example.com.        A      192.0.2.23
A 레코드가 bar.example.com를 찾을 때 리졸버는 CNAME 레코드를 보고 foo.example.com에서 확인을 재시작한 뒤 192.0.2.23을 반환한다.

같이 보기 
 DNS 레코드 타입 목록
 IANA
 ICANN

각주

외부 링크 
 RFC 1912 is wrong Meng Weng Wong's analysis of CNAME restrictions (from web.archive.org).
 RFC 2219 – Use of DNS Aliases for Network Services

DNS 레코드 타입