하나의 이름에 대해 여러 개의 CNAME을 가질 수 있습니까?


43

로드 밸런싱을 위해 이것이 필요합니다. 예를 들어 두 개의 Azure 저장소 계정 (예 : ab)이 있고 해당 주소의 주소는 a.blob.core.windows.netb.blob.core.windows.net입니다. 둘 다 동일한 데이터를 저장합니다. 이제 example.com저장소 계정을 모두 가리키는 단일 외부 이름 (예 :)을 제공해야하며 라운드 로빈에서 작동해야합니다. 다음과 같이 DNS에 두 개의 CNAME 항목을 만들고 라운드 로빙에서 그 중 하나를 해결하면이 작업을 수행 할 수 있습니다.

  1. example.com CNAME a.blob.core.windows.net
  2. example.com CNAME b.blob.core.windows.net

그러나 Windows DNS 서버에서 단일 이름에 대해 두 개의 CNAME 레코드를 만들 수 없습니다.

그래서 가능합니까?


확인할 수는 없지만 CNAMES로 할 수 있다고 생각하지 않습니다. 대신 A 레코드를 사용해보십시오.
Dan

1
@Dan 문제는 AWS Elastic Load Balancer와 같이 고정 IP가없는 서비스입니다. 감안할 때 core.windows.net나는 푸른 또는 뭔가 비슷한 상황을 의심 것입니다.
ceejayoz

그러나 A 레코드를 사용하면 IP 주소를 올바르게 지정해야합니까? IP 주소보다 DNS 이름을 선호합니다.
Raghuram Murthy P

왜 그렇게 하시겠습니까? Azure Blob Storage는 고 가용성 및 지역 중복성을 위해 이미 설정되어 있습니다.
JTKH

@JTKH는 blob의 다운로드 제한이 65MB / sec 정도이므로 다운로드 제한을 더 원한다면 둘 이상의 blob을 사용하는 것으로 생각했습니다.
Raghuram Murthy P

답변:


58

동일한 정규화 된 도메인 이름에 대한 여러 CNAME 레코드는 DNS 사양을 위반합니다. 일부 버전의 BIND를 사용하면 ( multiple-cnames yes옵션 을 지정한 경우에만 )이를 수행 할 수 있으며 그 사이에로드 균형 조정을 수행 할 수 있지만 기술적으로는 합법적이지 않습니다.

CNAME과 이름이 같은 RR (리소스 레코드)이없고 니트를 선택하기 위해 여러 개의 동일한 CNAME을 포함해야합니다. Quoth RFC 1034, 섹션 3.6.2 :

CNAME RR이 노드에 있으면 다른 데이터가 없어야합니다. 이는 표준 이름 및 별명에 대한 데이터가 다를 수 없도록합니다. 이 규칙은 또한 권한있는 서버에서 다른 RR 유형을 확인하지 않고 캐시 된 CNAME을 사용할 수 있도록합니다.

수행중인 작업을 처리하는 RFC 방법은로드 밸런스 된 "A"레코드를 참조하는 단일 CNAME을 사용하는 것입니다.


자세한 내용은 docstore.mik.ua/orelly/networking_2ndEd/dns/… 를 참조하십시오.
wedi

11

당신은 할 수 없습니다. CNAME은 하나의 레코드를 다른 이름으로 만듭니다. 레코드에 두 개의 이름에 대한 CNAME이있을 수있는 경우 두 이름 중 하나의 이름이 아니라 완전히 새로운 이름으로 CNAME 항목이 부적절하게됩니다.

그래도 외부 문제를 해결하는 좋은 방법이있을 것입니다. 예를 들어 A 레코드가 여러 개있을 수 있습니다.


웹 사이트에 대해 하나의 CName과 하나의 A 레코드를 동시에 가질 수 있습니까?
amesh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.