CNAME 레코드

From IT Wiki
Revision as of 10:25, 14 June 2022 by 아이리움 (talk | contribs) (새 문서: '''Canonical Name Record;''' '''캐노니컬 네임 레코드, 줄여서 CNAME 레코드는 하나의 도메인 주소를 다른 주소로 매핑시키는 DNS|도메인 네임 시...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Canonical Name Record;

캐노니컬 네임 레코드, 줄여서 CNAME 레코드는 하나의 도메인 주소를 다른 주소로 매핑시키는 도메인 네임 시스템(DNS)자원 레코드의 일종이다.

관련 표준

  • RFC 1034에 정의
  • RFC 2181의 섹션 10에 세부내용 명시

사용 편의성

  • 하나의 IP 주소로부터 여러 개의 서비스를 실행할 때(예: 각기 다른 포트로 각각 구동되는 FTP 서버와 웹 서버 등) 편리함을 입증할 수 있다. 이를테면 ftp.example.comwww.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 정보를 요청해야 함
    • 경우에 따라서 성능 저하가 유발될 수 있음

같이 보기