我们最近迁移到了 EC2,并开始使用 amazon 的 elb 进行负载平衡。我们使用 CloudFlare 进行 DNS,这允许我们使用 cname 域根。但是,偶尔会有人告诉我们,我们的电子邮件被退回,并出现以下错误:
[电子邮件保护]... 延期:our-production-loadbalancer.elb.amazonaws.com 拒绝连接。
我们正在使用 Google 应用程序来收发邮件,并且我们的 MX 记录配置正确,所以我不确定邮件客户端或服务器在什么时候尝试解析我们的域名并接收 cname 记录。
有人知道为什么 MX 记录会被忽略吗?这是使用 CNAME 的结果吗?我想如果我们将 A 记录指向同样不接受邮件的 IP 地址,也会发生同样的事情。
答案1
如果您有域名example.invalid
:
; example.invalid
$TTL 604800
@ IN SOA ns1.example.invalid. root.example.invalid. (
2006020201 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800); Negative Cache TTL
;
@ IN NS ns1
IN MX 10 mail
IN CNAME anotherdomain.invalid
你是说:
嘿,你可以在任何可以找到的
example.invalid
地址下找到。anotherdomain.invalid
顺便说一句,任何 MX 记录、SRV 记录或其他内容example.invalid
也都是anotherdomain.invalid
告诉您的。这意味着发送到的邮件example.invalid
将使用 MX 记录anotherdomain.invalid
参考:
答案2
依据 RFC1034§3.6.2
If a CNAME RR is present at a node, no other data should be present; this
ensures that the data for a canonical name and its aliases cannot be different.
因此,如果您在配置了 CNAME,example.com
那么它就是您在那里配置的唯一记录。与该域相关的所有记录都必须在别名下。
例如。如果您有,example.com IN CNAME acme.hosting-co.com
那么您的 NS、SOA、MX 等记录必须全部位于 之下acme.hosting-so.com
。它们可能不位于 之下example.com
。
此外,如果未找到某个域的 MX 记录,则可能会尝试该域的 A 记录作为最后的手段。因此,正常运行的 MTA 应该查找您的域,找到 CNAME,尝试别名,如果找不到 MX 记录,则改为尝试 A 记录(在本例中是您的负载均衡器)。您的负载均衡器显然无法接收电子邮件。
发生故障的 MTA 实际上运行正常。任何找到您的邮件服务器的 MTA 均运行不正常。
答案3
我假设您在 CloudFlare 的 DNS 设置中将平衡器的 CNAME 标记为橙色云?如果是这样,您应该登录并将该 CNAME 记录的云从橙色更改为灰色。