2016-01-07 168 views
0

我使用AWS的所有基礎設施,我需要:DNS CNAME和MX通配符

mydomain.com A ALIAS {S3-bucket- > } s3-website-eu-west-1.amazonaws.com. 
www.mydomain.com CNAME mydomain.com 
    -> website on Amazon S3 


*.mydomain.com CNAME {beanstalk} -> myserver-app.elasticbeanstalk.com 
    -> all other subdomains redirect to the Amazon Beanstalk app 


*.mydomain.com MX -> 
     10 XXYY.in1.mandrillapp.com. 
     20 XXYY.in2.mandrillapp.com. 
     -> all emails goes to mandrillapp. 

如何能做到這一點?

由於CNAME和MX通配符寫入它不起作用。

我無法使用所有名稱,因爲子域將動態生成。

非常感謝!

大衛

+1

當你說「它不工作」,什麼是不工作?你看到的具體問題是什麼? –

回答

1

正如你所發現的,你不能有一個CNAME和任何其他類型的記錄在同一級別的DNS層次結構Route 53 Alias records,重新使用您的裸露域名併爲www創建瞭解決DNS設計中的此限制,並且不具有相同的不兼容性問題...但Alias記錄的目標只能是以下四項之一:此刻:一個CloudFront分配, Elastic Load Balancer,與A記錄中的主機名稱相同的S3存儲桶或同一託管區域中相同類型的其他記錄。

最後兩個不會幫助你,但前兩個都可以。

如果您的beanstalk應用程序已經有ELB,您可以在EC2控制檯的Load Balancers下找到該名稱,並且您應該可以將其用作您的域的*通配符A記錄別名的別名目標。或者,您可以爲您的Beanstalk應用程序添加一個負載均衡器。

或者,您可以創建CloudFront分配,並將myapp.elasticbeanstalk.com配置爲分配的「自定義原點」服務器。配置CloudFront在*.example.com的分配中調用"alternate domain name (CNAME)" - 順便說一句,忽略CloudFront控制檯將其稱爲「CNAME」的事實。它們也可以用作別名目標。將發行版配置爲forward the incoming Host: header以指定原始地址,以及要轉發的任何其他標題。然後,您應該能夠創建您的通配符別名A記錄,指向CloudFront分配,這會將請求轉發到Beanstalk應用程序。

+0

非常感謝你! – David

1

您遇到的問題是與rules of DNS,其中禁止在那裏另一個記錄存在CNAME記錄的問題。

如果一個CNAME RR存在於一個節點上,其他數據應該不存在 ;這可以確保規範名稱及其別名 的數據不能不同。此規則還可以確保緩存的CNAME可以使用 ,而無需與其他RR類型的授權服務器進行檢查。

是否有特殊原因需要通配符MX記錄?我無法看到任何可以帶來益處的情況,但很多情況下這是一個非常糟糕的主意! (特別是它使得網絡上的任何主機成爲發送垃圾郵件的可行目標,因爲任何可以解析爲域的主機都有權發送。

如果明確命名MX記錄,可以使用CNAME通配符實際上我可能需要檢查!但我確實相信)

+0

是的,我需要它 - 這是一個應用程序,客戶可以將你自己的電子郵件作爲[用戶] @ [公司名稱] .mydomain.com – David