ALIAS와 CNAME의 차이점과 용도

2024년 2월 28일

3분 분량

CNAME 레코드와 ALIAS 레코드의 가장 큰 차이점은 결과가 아니라(둘 다 다른 DNS 레코드를 가리킴) 쿼리 시 대상 DNS 레코드를 확인하는 방법에 있습니다. 이러한 차이로 인해 하나는 최상위 노드(예: example.com과 같은 네이키드 도메인)에서 안전하게 사용할 수 있지만 다른 하나는 그렇지 않습니다.

CNAME 레코드 유형부터 살펴보겠습니다. 이 유형은 www.example.com과 같은 DNS 이름을 lb.example.net과 같은 다른 DNS 이름에 매핑합니다. 그러면 리졸버는 모든 DNS 유형(예: A, AAAA, MX, NS, SOA 등)에 대한 참조 이름에서 응답을 조회합니다. 이 경우 대상(lb.example.net)을 확인하기 위해 하나 이상의 추가 DNS 조회를 수행해야 하므로 성능이 저하됩니다. 재귀 리졸버가 이전에 두 레코드를 쿼리한 적이 없을 경우, 두 레코드 모두에 대해 전체 DNS 계층 구조를 순회할 수 있으므로 시간적으로 훨씬 더 손실이 큽니다.

  1. DNS 클라이언트(또는 스텁 리졸버)가 재귀 리졸버에게 www.example.com을 쿼리합니다.
  2. 재귀 리졸버는 루트 이름 서버에 www.example.com을 쿼리합니다.
  3. 루트 이름 서버는 재귀 리졸버를 .com 최상위 도메인(TLD) 권한 서버로 안내합니다.
  4. 재귀 리졸버는 .com TLD 권한 서버에 www.example.com을 쿼리합니다.
  5. .com TLD 권한 서버는 재귀 서버를 example.com에 대한 권한 서버로 안내합니다.
  6. 재귀 리졸버는 권한 서버에 www.example.com을 쿼리하고 lb.example.net을 응답으로 받습니다.
  7. 재귀 리졸버는 응답을 캐시하여 사용자에게 반환합니다.
  8. 이제 사용자는 lb.example.net에 대해 재귀 리졸버에 두 번째 쿼리를 실행합니다.
  9. 재귀 리졸버는 루트 이름 서버에 lb.example.net을 쿼리합니다.
  10. 루트 이름 서버는 재귀 리졸버를 .net 최상위 도메인(TLD) 권한 서버로 안내합니다.
  11. 재귀 리졸버는 .net TLD 권한 서버에 lb.example.net을 쿼리합니다.
  12. .net TLD 권한 서버는 재귀 서버를 example.net에 대한 권한 서버로 안내합니다.
  13. 재귀 리졸버는 권한 서버에 lb.example.net을 쿼리하고 IP 주소를 응답으로 받습니다.
  14. 재귀 리졸버는 응답을 캐시하여 사용자에게 반환합니다.

이러한 각 단계는 네트워크 상태에 따라 최소 몇 밀리초가 걸리며 더 많은 시간이 소요되는 경우도 많습니다. 여기에 IP 주소의 실행 가능한 최종 응답을 기다리는 시간까지 더해져 상당한 시간이 소요될 수 있습니다.

ALIAS 레코드의 경우 CNAME과 동일한 작업을 모두 수행하지만, example.com에 대한 권한 서버가 6단계부터 13단계까지를 수행하고 최종 응답을 IPv4 및 IPv6 주소로 반환한다는 차이가 있습니다. 여기에는 두 가지 장점과 한 가지 중대한 단점이 있습니다.

장점

최종 응답 해결 속도 향상

대부분의 경우 example.com의 권한 서버에 응답이 캐시되므로 응답을 매우 빠르게 반환할 수 있습니다.

Alias 응답은 A 및 AAAA 레코드입니다. ALIAS 레코드는 하나 이상의 IP 주소로 구성된 응답을 반환하므로 A 또는 AAAA 레코드가 사용 가능하다면 최상위 노드를 포함하여 어디서든 이용할 수 있습니다. 따라서 최상위 노드에서 사용할 수 없는 CNAME보다 더 유연합니다. CNAME 레코드를 사용하는 가장 일반적인 CDN에서 사이트를 게시하는 경우 사용자가 example.com과 같은 네이키드 도메인을 통해 액세스할 수 있도록 하려면 Alias 레코드의 유연성이 필요합니다.

단점

지역 타깃 정보 손실

lb.example.net에 대한 쿼리를 발행하는 것은 example.com에 대한 권한 서버이므로 lb.example.net 레코드의 모든 지능형 라우팅 기능은 사용자의 위치가 아닌 권한 서버의 위치에서 작동합니다. EDNS0 edns-client-subnet 옵션은 여기에 적용되지 않습니다. 따라서 라우팅이 잘못 수행될 수 있습니다. 예를 들어, 사용자가 뉴욕에 있고 example.com에 대한 권한 서버가 캘리포니아에 있다면, lb.example.com은 사용자가 캘리포니아에 있다고 간주하여 뉴욕에 있는 사용자에게 최적화되지 않은 응답을 반환할 것입니다. 그러나 전 세계에 POP가 있는 DNS 공급자를 사용하면 권한 DNS 서버가 사용자의 지역에 있을 가능성이 높으므로 이 문제를 완화할 수 있습니다.

한 가지 유의할 점은 NS1은 CNAME 레코드가 모두 NS1 시스템 내에 있으면 이를 축소한다는 것입니다. NS1의 이름 서버는 CNAME과 대상 레코드 모두에 대해 권한을 가집니다. 축소는 NS1 이름 서버가 CNAME에서 최종 응답까지의 전체 레코드 체인을 단일 응답으로 반환한다는 것을 의미합니다. 이렇게 하면 모든 추가 조회 단계가 제거되고 중첩된 구성에서도 성능 저하 없이 CNAME 레코드를 사용할 수 있습니다.

게다가 NS1은 연결된 레코드라는 고유한 레코드 유형을 지원합니다. 이는 마이크로초 미만의 해결 속도를 제외하고는 기본적으로 플랫폼 내에서 ALIAS 레코드 역할을 하는 심볼릭 링크입니다. 연결된 레코드를 사용하려면 평상시처럼 대상 레코드를 만든 다음(모든 유형 가능) 이를 가리키는 두 번째 레코드를 만들고 연결된 레코드 옵션을 선택하면 됩니다. 참고로, 연결된 레코드는 NS1 내의 도메인(영역) 경계와 계정 경계를 넘을 수 있으며 DNS 레코드 구조를 구성하고 최적화하는 강력한 방법을 제공합니다.

CNAME, ALIAS 및 연결된 레코드 참조 차트

 CNAMEALIAS연결된 레코드
최상위 도메인 사용아니요지원(다른 NS1 영역에만 해당)
상대 속도(TTFB)신속성속도 개선속도 개선
응답 축소지원(NS1 Connect 전용 기능)
스크롤하여 전체 표 보기

작가

Terry Bernstein

Senior Director of Product Management for NS1 Managed DNS