Outlook.com DNS 太慢,postfix 超时

Outlook.com DNS 太慢,postfix 超时

我正在尝试发送电子邮件至例如:[电子邮件保护][电子邮件保护]。这两种情况都是 Outlook 邮箱。

Postfix 回复:

(当启用 IPv6 时):

06F908112E      606 Thu Jun 19 10:20:40  [email protected]
(Host or domain name not found. Name service error for name=grassvalley-com.mail.protection.outlook.com type=AAAA: Host not found, try again)
                                         [email protected]

(仅限 IPv4):

6946720087D     3117 Tue Jun 17 21:41:07  [email protected]
(delivery temporarily suspended: Host or domain name not found. Name service error for name=grassvalley-com.mail.protection.outlook.com type=A: Host not found, try again)
                                         [email protected]

当检查 DNS 时,我确实收到了回复(我尝试过 Google DNS、仅 IPv6 DNS、Leaseweb DNS、OpenDNS,但结果总是一样的):

grassvalley-com.mail.protection.outlook.com. 7 IN A 207.46.163.138
grassvalley-com.mail.protection.outlook.com. 7 IN A 207.46.163.170
grassvalley-com.mail.protection.outlook.com. 7 IN A 207.46.163.247

因此有一个正确的 A 答复。

现在,导致问题的原因似乎是 TTL 太低(7 秒),并且对这些 Outlook 域的每个 DNS 回复都需要 > 2 秒:Query time: 2039 msec.

这会导致 Postfix 超时并且无法发送电子邮件。

如果我运行此命令,dig grassvalley-com.mail.protection.outlook.com && postfix flush电子邮件实际上会被发送,因为它发生在 7 秒的时间范围内(DNS 仍在缓存中)。

我可以告诉 Postfix 超时不那么快吗?我可以告诉 bind 忽略 Outlook 中的 TTL < 7 秒并将其缓存 2 小时吗?

答案1

我有options timeout:1 attempts:1resolv.conf将超时时间更改为 3 秒而不是 1 秒解决了问题:

options timeout:3 attempts:1

并且确保不是在你的配置中添加这一行main.cf

smtp_host_lookup = dns, native

相关内容