CNAME을 사용하는 DNS가 MX 레코드를 손상 시키는가?


42

우리는 새해에 서버를 이동할 계획이며 일부 클라이언트를 한 서버로 이동하고 다른 클라이언트를 다른 곳으로 옮길 수 있기를 원하므로 호스팅하는 모든 웹 사이트를 CNAMES로 이동하려고합니다. 고객에게 고유 한 CNAME을 제공하여 나중에 변경할 수 있도록 계획하고있었습니다. (지금 우리는 다른 이유가 있지만 이것이 주된 이유입니다)

우리는 우리 자신의 영역 중 일부를 사용하여이 이론을 테스트 해 보았지만 괜찮은 것 같습니다. 그러나 도메인에서 MX 레코드를 확인할 때 MX 레코드가 아닌 CNAME 값을 다시 얻었습니다.

슬프게도 이러한 모든 도메인은 제어판을 통해 수행되지만 영역 파일을 작성하는 것 같습니다.

company.com에 대해 2 개의 CNAME을 만들고 싶습니다.

company.com. IN CNAME client.dns.ourserver.com
www          IN CNAME client.dns.ourserver.com

MX 레코드는 다음과 같습니다.

company.com  IN MX 10 mail.company.com

mail.company.com에 대한 A 레코드가 있습니다

하기:

host -t mx company.com

mx 레코드가 아닌 CNAME 값을 반환합니다.

이것이 예상되는 행동입니까?

위의 구성을 123-reg.co.uk 제어판과 함께 작동 시켰지만 그보다 더 운이 좋은지 확실하지 않습니다.


이것은 일반적인 질문이며 여러 번 요청되었습니다. 예를 보려면 다음 링크를 참조하십시오. serverfault.com/questions/18000/…
Russell Heilling

나는 대답을 찾는 동안 약간을 보냈지 만 다른 일을하고 있는지 알 수 없었습니다. 특히 하나의 도메인 공급자와 잘 작동하므로. 나는 멋진 답변을 얻었으므로 누군가에게 유용 할 것입니다.
johnwards

답변:


54

이것은 일반적인 오류입니다. 당신은 당신의 루트 도메인 (예 : company.com)에 대한 CNAME RR을 사용할 수 없습니다 같은 영역에 대한 추가 리소스 레코드를 정의합니다.

루트 레코드에 대해 CNAME 레코드를 작성할 수없는 이유를 참조하십시오 . RFC1034 자세한 내용은 섹션 3.6.2 :

CNAME RR이 노드에 있으면 다른 데이터가 없어야합니다. 이는 표준 이름 및 별명에 대한 데이터가 다를 수 없도록합니다.


RFC2181 섹션 10.1 은 위의 내용을 강화한다는 점에서도 관련이 있습니다.
Håkan Lindqvist

apex 도메인이라고도 함
Alex78191

5

RFC2181 섹션 10.3에서는 MX 레코드를 CNAME으로 지정할 수 없습니다.

MX 리소스 레코드의 값으로 사용되는 도메인 이름은 별칭이 아니어야합니다.


2
그래도 그 질문에 관한 시나리오가 아닌가?
Håkan Lindqvist

2

방금 A 레코드 대신 CNAME을 사용하는 Heroku로 옮겼으며 my_domain.com이 heroku를 가리키는 CNAME을 만드는 대신 www.my_domain.com이 heroku를 가리키는 CNAME을 수행했습니다. 루트 도메인이 전달되지 않았으며 MX 레코드가 여전히 작동합니다. 그런 다음 my_domain.com을 www.my_domain.com으로 리디렉션하는 포인터를 추가했습니다. 잘 작동하는 것 같습니다. 내 도메인 이름 공급자에서 '표준' 'URL'및 'www.my_domain.com'으로 설정 한 '포인터'설정을 사용하여 포인터를 만들었습니다.


힘든 일! 이것을 공유해 주셔서 감사합니다!
duhaime

0

이 두 가지를 완전히 분리 할 수 ​​있다는 것을 깨달았습니다.

mydomain.com. -  A Record  - 01.0.0.1
mydomain.com - CNAME - www.cname.eg.com

서버를 메일 서버로 사용하지 않는 한 실제로 영향을 미치지 않습니다. 메일은 mydomain.com MX 레코드를 찾습니다. 이와 같은 경우에만 영향을받습니다.

mydomain.com - MX - mail.mydomain.com

그러나 이와 같은 경우 (별도의 메일 서버를 사용하고 있음) 영향을받지 않습니다.

mydomain.com - MX - mail.mycustommailserver.com

메일 서버에는 IP를 사용할 수 없습니다.


-1

SOME DNS 공급자와 함께 SOME MX 공급자가 실제로 CNAME 위에 MX 레코드를 하향식 레코드 순서로 주문 하면 실제로 CNAME과 함께 작동한다는 것을 알았 습니다.

현재 다른 도메인으로 HTTP를 보내는 Office 365 MX 레코드 및 Bare CNAME 레코드로 Name.com 등록 기관에서 작업하고 있습니다. MX 쿼리를 테스트하는 동안 CNAME 결과가 먼저 DNS 항목 순서에 해당하는 것으로 나타 났으므로 MX를 먼저 주문하지 않고 MX 공급자를 만족시키는 지 확인했습니다. 놀랍게도 Office 365 MX 확인이 통과했으며 인바운드 및 아웃 바운드 전자 메일이 실제로 흐르고 있음을 확인할 수 있습니다. 또한 여러 웹 클라이언트를 테스트 한 후 HTTP는 실제로 지정된 CNAME 대상 호스트로 확인하는 것이 좋습니다.

Caveat emptor-이것은 분명히 표준에 어긋나므로 중요한 것으로 간주해서는 안됩니다. 나는 기록 순서가 사양에 있지 않다고 가정하므로 공식적으로 신뢰할 수는 없습니다. 즉,이 해킹을 잊은 직후 변경 될 수 있습니다.

-MX Toolbox 무료 페이지는 다른 DNS 설정 시도 결과를 확인하는 데 매우 편리합니다.

해당 게시물에 대한 뻔뻔한 플러그 .


2
문서화되지 않은 행동이기 때문에 이것은 내가 의지하고 싶은 것이 아닙니다.
ceejayoz 2016 년

2
이 동작은 버그로만 간주 될 수 있습니다. 캐싱 네임 서버는 CNAME 응답을 캐시 할 수 있습니다. MDA는 MX 레코드 도구를 보지 못합니다 .ietf.org
Jasen

-3

도메인의 루트에서 CNAME을 사용할 수 있지만 yourmx.com의 영역에 mx1.mail.com이 구성되어 있고 yourdomain의 루트가있는 경우 MX 레코드도 호스트 레코드에 구성해야합니다. com은 thisrecord.cname.com의 CNAME입니다. 또한 해당 CNAME 호스트에 mx1.mail.com이 구성되어 있는지 확인해야합니다. 그렇지 않으면 모든 메일이 손실됩니다!


4
문제는 RFC1034에 따라 "CNAME RR이 노드에있는 경우 다른 데이터가 없어야합니다"입니다. 루트에는 NS 레코드가 있어야하기 때문에 (어쨌든 유용하게도) 항상 다른 데이터가 있습니다. RFC의이 섹션을 위반합니다.
Doktor J

제 생각에는 MX 레코드가 대신 CNAME 호스트에 있어야한다는 것을 제외하고는 정답입니다 .
Alexander Taubenkorb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.