- 상위 문서: DNS 자원 레코드
Canonical Name Record;
캐노니컬 네임 레코드, 줄여서 CNAME 레코드는 하나의 도메인 주소를 다른 주소로 매핑시키는 도메인 네임 시스템(DNS)의 자원 레코드의 일종이다.
관련 표준
- RFC 1034에 정의
- RFC 2181의 섹션 10에 세부내용 명시
사용 편의성
- 하나의 IP 주소로부터 여러 개의 서비스를 실행할 때(예: 각기 다른 포트로 각각 구동되는 FTP 서버와 웹 서버 등) 편리함을 입증할 수 있다. 이를테면 ftp.example.com과 www.example.com를 (IP 주소를 가리키는) A 레코드를 보유한 example.com의 DNS 엔트리를 가리킬 수 있다.
- IP 주소가 변경이 될 경우 네트워크 안의 한 지점에서 변경사항을 기록하기만 하면 된다.
규칙 및 동작
CNAME 레코드는 도메인 네임 시스템에서 특수하게 관리되며 사용상 여러 제약이 따른다.
- DNS 리졸버가 정규 자원 레코드를 찾는 동안 CNAME 레코드를 마주칠 때 원래의 이름 대신 표준 형식의 이름을 사용하여 쿼리를 다시 시작
- 리졸버가 CNAME 레코드를 찾을 경우 쿼리를 재시작하지 않고 표준 형식의 이름 반환
- CNAME 레코드가 가리키는 표준 형식의 이름은 각기 다른 DNS 존 내 원격 서버든 로컬 서버든지에 관계 없이 DNS 어느 곳이든 위치할 수 있음
- CNAME 레코드는 무조건 다른 도메인 네임을 가리켜야 하며 직접 IP 주소를 가리켜서는 안 됨
예시
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을 반환
A 레코드와의 차이
A 레코드의 장단점
- A 레코드의 장점은 한번의 요청으로 찾아갈 서버의 IP 주소를 한번에 알 수 있음
- 단점은 IP 주소가 자주 바뀌는 환경에서는 조금 번거로울 수 있음
- 예를 들어, 111.111.111.111 서버에서 itwiki.kr, dev.itwiki.kr, api.itwiki.kr 등 여러개의 서브 도메인들을 처리하고 있는 경우,
- 각 서브 도메인들을 A 레코드로만 매핑시켰다면, 111.111.111.111라는 IP 주소가 111.111.111.222이라는 주소로 변경되었다면 모든 A 레코드를 찾아서 변경해야 함
CNAME 레코드의 장단점
- CNAME 레코드의 장점은 IP 주소가 자주 변경되는 환경에서 유연하게 대응 가능
- 예를 들어, dev.itwiki.kr, api.itwiki.kr 도메인 정보를 itwiki.kr이라는 주소로 매핑시키는 CNAME 레코드로 저장하고, itwiki.kr이라는 주소를 111.111.111.111 로 매핑 시
- 서버의 IP 주소가 바뀌었을 때 itwiki.r의 A 레코드 정보만 변경해도 됨
- CNAME 레코드의 단점은 실제 IP 주소를 얻을 때까지 여러번 DNS 정보를 요청해야 함
- 경우에 따라서 성능 저하가 유발될 수 있음