2013-04-08 1 views
7

Microsoft Azure에서 실행되는 응용 프로그램이 있으며 도메인을 포함하도록 CNAME 레코드를 설정 했으므로 멋진 URL을 http://example.com으로 지정할 수 있습니다. 이것에 걸쳐 example.com이있는 실제 도메인).Azure 응용 프로그램 용 CNAME이 MX 및 A 레코드의 전자 메일 문제를 일으킬 수 있습니다.

CNAME 
mydomain.com -> mydomainapp.cloudapp.net 

MX는 mailserver.example.com하고 올바른 IP 주소로 메일 서버를 가리키는 A 레코드를 포함, 그래서 우리는 제대로 MX 및 A 레코드 설정이 있습니다.

MX 
mailserver.example.com 

A 
mailserver -> 198.168.111.111 (note this IP is fictitious) 

모든 대부분의 이메일하지만 일부 mailservers에 대한 미세 (확실하지 아직 무엇을 기술)가 이제 CNAME 대신 MX 및 A 레코드를 사용하고 있습니다.

그래서 [email protected]으로 보내는 이메일은 실제로 [email protected]으로 보내집니다. example.cloudapp.net은 우리가 CNAME으로 매핑 한 Azure의 도메인입니다. 나는 간단하게 찾을 수 있습니다

EMAIL TO: [email protected] 
BECOMES: [email protected] 

유일한 제안은 도메인 수준 CNAME가 없거나 전혀 CNAME을 사용하지 않는 말하지만, 물론 푸른 IP 주소는 우리가 CNAME을 사용할 필요가 있으므로 변경할 수 있습니다. 모든 www.example.com에 접두사를 붙일 수는 있지만 더 나은 해결책이 반드시 있어야합니다.

많은 아이디어가 높이 평가됩니다.

+0

이 문제에 대한 다양한 연구를 수행했지만별로 도움이되지 않았습니다. 한 가지 제안 된 해결 방법은 Azure 응용 프로그램에서 포트 25의 전자 메일 수신기를 설정 한 다음 전자 메일을 다시 보내는 것입니다 (http://blog.smarx.com/posts/emailtheinternet-com-sending-and-receiving 참조). -email-in-windows-azure)을 예로들 수 있습니다. 쇠 망치와 너트는 마음에 봄. – Jezbers

답변

1

많은 연구 끝에 도메인 수준 레코드에 CNAME 대신 A 레코드를 사용하는 것이 가장 좋습니다 (적어도 내 마음에 감안할 때).

"무엇이지만 IP 주소가 동적으로 할당되었습니다!"라는 소리를 지을 수도 있습니다. 예,하지만 배포를 무너 뜨린 다음 교체해야합니다. Windows Azure는 준비에 게시하고 "생산 및 준비 스왑"옵션을 사용하는 한 VIP 주소를 유지합니다. 이렇게하면 CNAME 대신 DNS에서 A 레코드를 사용할 수 있도록 VIP 주소가 보존됩니다.

일부 배경에 대해서는 http://www.windowsazure.com/en-us/develop/net/common-tasks/custom-dns/을 참조하십시오.

참고 MS 공식 라인은 IP 주소의 교환이 가능하기 때문에 A 레코드보다는 CNAME을 권장하지만, Azure 플랫폼에서 http://mydomain.com을 실행하려는 사람들은 생각하지 않는다고 생각합니다.

또한 포트 25에서 메일을 읽고 다시 전달하는 앱으로 SMTP 수신기를 만드는 등의 다른 가능한 해결책을 찾았습니다. 엄밀히 말하면 기술적으로 좋지만, 마음을 망쳐 놓고 덤벼 드는 것은 물론, 또 한 가지 더 잘못 될 수 있습니다. 물론 한 가지 더 많은 돈을 지불해야합니다.

2

예, 더 좋은 해결책이 있습니다. 앱에 두 번째 수준의 도메인을 사용하십시오. portal.mydomain.com이되도록하고 portal.mydomain.commydomainapp.cloudapp.net에 매핑하고 mydomain.com에 대해 MX 레코드를 설정하고 모든 주소가 [email protected] 인 주소를 사용하십시오. 이 방법을 사용하면 여전히 mydomain.com을 소유하고 있으며 모든 이메일은 여전히 ​​심각한 것처럼 보입니다. 즉 [email protected]이 아니라 [email protected]입니다.

기술적으로 위에서 설명한 설정은 도메인 수준이 CNAME임을 의미합니다.

+0

감사하지만 정말로 기본 응용 프로그램이 http://mydomain.com에 있어야합니다. 도메인 수준 CNAME을 삭제하고 해당 문제에 대해 www.mydomain.com 또는 다른 하위 도메인 만 허용 할 수 있다고 생각하지만 비즈니스는 접두사없이 실행하려고합니다. 이는 합리적인 요청입니다. – Jezbers

+0

@ Jezbers : 예, 명확한 목표이지만 달성하기위한 해결책을 찾지 못했습니다. – sharptooth

+0

지적 해 주셔서 고맙습니다. 다른 모든 솔루션은 복잡하기 때문에 최소 몇 시간 동안 나를 바쁘게 만들 것입니다. 나는 이렇게 할 것입니다. – Tillito

0

우리는 루트 도메인에 A 레코드를 사용하고 있습니다.이 답변은 @Jezbers가 답변에서 언급했듯이 정상적으로 작동합니다. A 레코드는 이메일을 손상시키지 않습니다.그러나 CNAME 레코드는 다른 레코드에 영향을 미칩니다 ("[email protected]"도 [email protected]에서도 작동하므로 "도메인 리디렉션"기능을 사용할 수 있습니다). www 하위 도메인에

호스트 사이트 거기 CNAME을 넣어 :

것은 당신이 직장 - 주변의 SMTP 수신기보다 더 나은 "해결 방법"솔루션을 찾고있는 경우에, 당신은 다음을 고려할 수 있습니다. 뭔가가 있으니 호스트는 301을 www으로 리디렉션하고 A 레코드를 사용하여 루트 도메인을이 리디렉션 사이트로 지정하십시오.

완벽하지는 않지만 SMTP 옵션보다 나은 옵션입니다.

3

CNAME이 모든 RR 유형의 별칭이기 때문에 도메인 수준에서 CNAME 레코드를 사용할 수 없으므로 항상은 MX, SOA, NS 등의 조회를 리디렉션합니다.

RFC1912 섹션 2.4에서 발췌 한 다음 내용은 매우 명확하게 말한다

CNAME 레코드가 다른 데이터와 공존 할 수 없습니다. suzy.podunk.xx가 sue.podunk.xx의 별칭 인 경우
즉, 당신은
도 suzy.podunk.edu에 대한 MX 레코드 또는 A 레코드, 심지어
을 가질 수 없습니다 TXT 레코드. 이이 종종 도메인 이름은 또한 호스트가 될 수 있도록하는 확실한 방법으로 미숙 한 관리자에 의해 시도

 podunk.xx.  IN  NS  ns1 
         IN  NS  ns2 
         IN  CNAME mary 
     mary   IN  A  1.2.3.4 

을 !:처럼 특히 CNAME이와 NS
기록을 결합하려고하지 않습니다. 그러나 BIND와 같은 DNS 서버는 CNAME을보고 해당 이름에 다른 리소스를 추가하는 것을 거부합니다. 다른 레코드가 과 CNAME이 공존 할 수 없기 때문에 NS 항목은 무시됩니다. 따라서 모두 podunk.xx 도메인에있는 호스트도 무시됩니다!

그래서 당신은 mydomain.com에 대한 CNAME 레코드를 사용하지해야합니다!

따라서 DNS 형식으로 유일한 해결책이므로 mydomain.com (MX : s 및 기타 레코드 중 필요) 중에서 A 레코드를 설정해야합니다.

+0

네, RFC를 이해합니다. 그러나 CNAME이 도메인 수준이라도 대다수의 메일 서버가 먼저 MX 레코드를 읽습니다. 적절한 RFC 권장 사항을 따르는 것은 소수에 불과합니다.대부분의 환경에서 작동하는 것처럼 보이기 때문에 더 혼란스럽고 소수를 위해 실패합니다. 그러나 게시 된 솔루션에 따라 A 레코드 만 가능합니다. Microsoft가 Azure 호스트 응용 프로그램에 대한 DNS 설정에 대한 설명에 CNAME의 단점과이를 포함시키는 것이 도움이 될 것입니다. – Jezbers

+0

아마도 ** DNS 서버 **의 소프트웨어에 따라 다릅니다. 호환 DNS 서버는 영역을 메모리에로드하는 것을 거부하거나 CNAME 레코드가있는 경우 추가 항목을 무시합니다. – krisku

+0

MX 레코드를 찾을 수없는 메일 서버는 A 레코드를 사용하기 때문에 전자 메일에는 반드시 MX 레코드가 필요하지 않습니다. 또는 MX 레코드를 찾고 캐싱 재귀 네임 서버가 CNAME을 찾으면 재귀 네임 서버가 CNAME을 확인하고 MX 조회를 별칭 이름으로 다시 시도합니다. 혼란 스러울 수도 있습니다. 네가 DNS를 망가 뜨리는 방식으로 구성하려고 시도 할 수 있고 실제로 세상에 보이는 것이 완전히 다른 것일 수 있기 때문이다. 예를 들어 확인하는 것이 항상 좋습니다. 반환 된 DNS 레코드가 의도 한 것과 일치하는지 확인하려면'dig '하십시오. – krisku

관련 문제