CNAME 레코드: Difference between revisions

From CS Wiki
(새 문서: '''Canonical Name Record;''' '''캐노니컬 네임 레코드, 줄여서 CNAME 레코드는 하나의 도메인 주소를 다른 주소로 매핑시키는 DNS|도메인 네임 시...)
 
No edit summary
 
Line 1: Line 1:
* '''상위 문서: [[DNS 자원 레코드]]'''‎
'''Canonical Name Record;'''  
'''Canonical Name Record;'''  


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


== 관련 표준 ==
==관련 표준==


* <nowiki>RFC 1034</nowiki>에 정의
*<nowiki>RFC 1034</nowiki>에 정의
* <nowiki>RFC 2181</nowiki>의 섹션 10에 세부내용 명시
*<nowiki>RFC 2181</nowiki>의 섹션 10에 세부내용 명시


== 사용 편의성 ==
==사용 편의성==


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


== 규칙 및 동작 ==
==규칙 및 동작==
CNAME 레코드는 도메인 네임 시스템에서 특수하게 관리되며 사용상 여러 제약이 따른다.  
CNAME 레코드는 도메인 네임 시스템에서 특수하게 관리되며 사용상 여러 제약이 따른다.  


* [[DNS 리졸버]]가 정규 자원 레코드를 찾는 동안 CNAME 레코드를 마주칠 때 원래의 이름 대신 표준 형식의 이름을 사용하여 쿼리를 다시 시작
*[[DNS 리졸버]]가 정규 자원 레코드를 찾는 동안 CNAME 레코드를 마주칠 때 원래의 이름 대신 표준 형식의 이름을 사용하여 쿼리를 다시 시작
** 리졸버가 CNAME 레코드를 찾을 경우 쿼리를 재시작하지 않고 표준 형식의 이름 반환
**리졸버가 CNAME 레코드를 찾을 경우 쿼리를 재시작하지 않고 표준 형식의 이름 반환
* CNAME 레코드가 가리키는 표준 형식의 이름은 각기 다른 DNS 존 내 원격 서버든 로컬 서버든지에 관계 없이 DNS 어느 곳이든 위치할 수 있음
*CNAME 레코드가 가리키는 표준 형식의 이름은 각기 다른 DNS 존 내 원격 서버든 로컬 서버든지에 관계 없이 DNS 어느 곳이든 위치할 수 있음
** CNAME 레코드는 무조건 다른 도메인 네임을 가리켜야 하며 직접 IP 주소를 가리켜서는 안 됨
**CNAME 레코드는 무조건 다른 도메인 네임을 가리켜야 하며 직접 IP 주소를 가리켜서는 안 됨


== 예시 ==
==예시==
<pre>
<pre>
NAME                    TYPE  VALUE
NAME                    TYPE  VALUE
Line 29: Line 31:
</pre>A 레코드가 ''bar.example.com''를 찾을 때 리졸버는 CNAME 레코드를 보고 ''foo.example.com''에서 확인을 재시작한 뒤 192.0.2.23을 반환
</pre>A 레코드가 ''bar.example.com''를 찾을 때 리졸버는 CNAME 레코드를 보고 ''foo.example.com''에서 확인을 재시작한 뒤 192.0.2.23을 반환


== [[A 레코드]]와의 차이 ==
==[[A 레코드]]와의 차이==
'''A 레코드의 장단점'''
'''A 레코드의 장단점'''


* A 레코드의 장점은 한번의 요청으로 찾아갈 서버의 IP 주소를 한번에 알 수 있음
*A 레코드의 장점은 한번의 요청으로 찾아갈 서버의 IP 주소를 한번에 알 수 있음
* 단점은 IP 주소가 자주 바뀌는 환경에서는 조금 번거로울 수 있음
*단점은 IP 주소가 자주 바뀌는 환경에서는 조금 번거로울 수 있음
** 예를 들어, 111.111.111.111 서버에서 itwiki.kr, dev.itwiki.kr, api.itwiki.kr 등 여러개의 서브 도메인들을 처리하고 있는 경우,
**예를 들어, 111.111.111.111 서버에서 itwiki.kr, dev.itwiki.kr, api.itwiki.kr 등 여러개의 서브 도메인들을 처리하고 있는 경우,
** 각 서브 도메인들을 A 레코드로만 매핑시켰다면, 111.111.111.111라는 IP 주소가 111.111.111.222이라는 주소로 변경되었다면 모든 A 레코드를 찾아서 변경해야 함  
**각 서브 도메인들을 A 레코드로만 매핑시켰다면, 111.111.111.111라는 IP 주소가 111.111.111.222이라는 주소로 변경되었다면 모든 A 레코드를 찾아서 변경해야 함


'''CNAME 레코드의 장단점'''
'''CNAME 레코드의 장단점'''


* CNAME 레코드의 장점은 IP 주소가 자주 변경되는 환경에서 유연하게 대응 가능
*CNAME 레코드의 장점은 IP 주소가 자주 변경되는 환경에서 유연하게 대응 가능
** 예를 들어, dev.itwiki.kr, api.itwiki.kr 도메인 정보를 itwiki.kr이라는 주소로 매핑시키는 CNAME 레코드로 저장하고, itwiki.kr이라는 주소를 111.111.111.111 로 매핑 시
**예를 들어, dev.itwiki.kr, api.itwiki.kr 도메인 정보를 itwiki.kr이라는 주소로 매핑시키는 CNAME 레코드로 저장하고, itwiki.kr이라는 주소를 111.111.111.111 로 매핑 시
** 서버의 IP 주소가 바뀌었을 때 itwiki.r의 A 레코드 정보만 변경해도 됨
**서버의 IP 주소가 바뀌었을 때 itwiki.r의 A 레코드 정보만 변경해도 됨
* CNAME 레코드의 단점은 실제 IP 주소를 얻을 때까지 여러번 DNS 정보를 요청해야 함
*CNAME 레코드의 단점은 실제 IP 주소를 얻을 때까지 여러번 DNS 정보를 요청해야 함
** 경우에 따라서 성능 저하가 유발될 수 있음
**경우에 따라서 성능 저하가 유발될 수 있음
 
==같이 보기==


== 같이 보기 ==
*[[DNS]]
*[[DNS 자원 레코드]]
*[[DNS 리졸버]]
*[[A 레코드]]


* [[DNS]]
[[분류:인터넷]]
* [[DNS 자원 레코드]]
* [[DNS 리졸버]]
* [[A 레코드]]

Latest revision as of 20:28, 13 June 2022

Canonical Name Record;

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

관련 표준[edit | edit source]

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

사용 편의성[edit | edit source]

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

규칙 및 동작[edit | edit source]

CNAME 레코드는 도메인 네임 시스템에서 특수하게 관리되며 사용상 여러 제약이 따른다.

  • DNS 리졸버가 정규 자원 레코드를 찾는 동안 CNAME 레코드를 마주칠 때 원래의 이름 대신 표준 형식의 이름을 사용하여 쿼리를 다시 시작
    • 리졸버가 CNAME 레코드를 찾을 경우 쿼리를 재시작하지 않고 표준 형식의 이름 반환
  • CNAME 레코드가 가리키는 표준 형식의 이름은 각기 다른 DNS 존 내 원격 서버든 로컬 서버든지에 관계 없이 DNS 어느 곳이든 위치할 수 있음
    • CNAME 레코드는 무조건 다른 도메인 네임을 가리켜야 하며 직접 IP 주소를 가리켜서는 안 됨

예시[edit | edit source]

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 레코드와의 차이[edit | edit source]

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 정보를 요청해야 함
    • 경우에 따라서 성능 저하가 유발될 수 있음

같이 보기[edit | edit source]