我使用我的后缀服务器作为对另一个提供者的中继。我想找出为什么发送一封简单的邮件要花那么多时间。我计算出后缀对每封邮件执行完整的DNS查询(丢失30秒):
Apr 30 11:26:50 dev1 postfix/smtp[20917]: connecting to in.mailjet.com port 25
Apr 30 11:26:55 dev1 postfix/smtp[20917]: dns_query: in.mailjet.com (MX): OK
Apr 30 11:26:55 dev1 postfix/smtp[20917]: dns_get_answer: type MX for in.mailjet.com
Apr 30 11:26:55 dev1 postfix/smtp[20917]: dns_get_answer: type MX for in.mailjet.com
Apr 30 11:26:55 dev1 postfix/smtp[20917]: dns_get_answer: type MX for in.mailjet.com
Apr 30 11:26:55 dev1 postfix/smtp[20917]: dns_get_answer: type MX for in.mailjet.com
Apr 30 11:26:55 dev1 postfix/smtp[20917]: dns_get_answer: type MX for in.mailjet.com
Apr 30 11:26:55 dev1 postfix/smtp[20917]: smtp_addr_one: host smtp-ovhfr11.mailjet.com
Apr 30 11:26:55 dev1 postfix/smtp[20917]: lookup smtp-ovhfr11.mailjet.com type A flags 0
Apr 30 11:27:00 dev1 postfix/smtp[20917]: dns_query: smtp-ovhfr11.mailjet.com (A): OK
Apr 30 11:27:00 dev1 postfix/smtp[20917]: dns_get_answer: type A for smtp-ovhfr11.mailjet.com
Apr 30 11:27:00 dev1 postfix/smtp[20917]: smtp_addr_one: host smtp-ovhfr7.mailjet.com
Apr 30 11:27:00 dev1 postfix/smtp[20917]: lookup smtp-ovhfr7.mailjet.com type A flags 0
Apr 30 11:27:05 dev1 postfix/smtp[20917]: dns_query: smtp-ovhfr7.mailjet.com (A): OK
Apr 30 11:27:05 dev1 postfix/smtp[20917]: dns_get_answer: type A for smtp-ovhfr7.mailjet.com
Apr 30 11:27:05 dev1 postfix/smtp[20917]: smtp_addr_one: host smtp-ovhfr8.mailjet.com
Apr 30 11:27:05 dev1 postfix/smtp[20917]: lookup smtp-ovhfr8.mailjet.com type A flags 0
Apr 30 11:27:10 dev1 postfix/smtp[20917]: dns_query: smtp-ovhfr8.mailjet.com (A): OK
Apr 30 11:27:10 dev1 postfix/smtp[20917]: dns_get_answer: type A for smtp-ovhfr8.mailjet.com
Apr 30 11:27:10 dev1 postfix/smtp[20917]: smtp_addr_one: host smtp-ovhfr9.mailjet.com
Apr 30 11:27:10 dev1 postfix/smtp[20917]: lookup smtp-ovhfr9.mailjet.com type A flags 0
Apr 30 11:27:15 dev1 postfix/smtp[20917]: dns_query: smtp-ovhfr9.mailjet.com (A): OK
Apr 30 11:27:15 dev1 postfix/smtp[20917]: dns_get_answer: type A for smtp-ovhfr9.mailjet.com
Apr 30 11:27:15 dev1 postfix/smtp[20917]: smtp_addr_one: host smtp-ovhfr10.mailjet.com
Apr 30 11:27:15 dev1 postfix/smtp[20917]: lookup smtp-ovhfr10.mailjet.com type A flags 0
Apr 30 11:27:20 dev1 postfix/smtp[20917]: dns_query: smtp-ovhfr10.mailjet.com (A): OK
Apr 30 11:27:20 dev1 postfix/smtp[20917]: dns_get_answer: type A for smtp-ovhfr10.mailjet.com
Apr 30 11:27:20 dev1 postfix/smtp[20917]: begin in.mailjet.com address list
Apr 30 11:27:20 dev1 postfix/smtp[20917]: pref 10 host smtp-ovhfr11.mailjet.com/5.196.43.135
Apr 30 11:27:20 dev1 postfix/smtp[20917]: pref 10 host smtp-ovhfr7.mailjet.com/178.32.115.14
Apr 30 11:27:20 dev1 postfix/smtp[20917]: pref 10 host smtp-ovhfr8.mailjet.com/46.105.54.204
Apr 30 11:27:20 dev1 postfix/smtp[20917]: pref 10 host smtp-ovhfr9.mailjet.com/37.59.74.234
Apr 30 11:27:20 dev1 postfix/smtp[20917]: pref 10 host smtp-ovhfr10.mailjet.com/5.196.43.129
Apr 30 11:27:20 dev1 postfix/smtp[20917]: end in.mailjet.com address list发布于 2015-04-30 11:43:25
发布于 2015-05-01 08:00:02
默认情况下,参数smtp_主机_查找的值为dns。因此,后缀将始终尝试解析MX记录接收域以确定下一跳目的地。后缀依赖libc解析器进行查找,因此预期的行为将取决于库。例如,后缀也将通过在/etc/resolv.conf中定义的NS服务器进行查找。
根据上面的日志,看起来您在NS服务器上有问题。这是不正常的情况下,单一的DNS查找将需要最多5秒来返回结果。这里,in.mailjet.com的后缀查找MX记录时的日志相同。它只在2秒内完成了查找。
May 1 00:20:37 dewa postfix/smtp[4002]: dns_query: in.mailjet.com (MX): OK
May 1 00:20:37 dewa postfix/smtp[4002]: dns_get_answer: type MX for in.mailjet.com
May 1 00:20:37 dewa postfix/smtp[4002]: message repeated 4 times: [ dns_get_answer: type MX for in.mailjet.com]
May 1 00:20:37 dewa postfix/smtp[4002]: smtp_addr_one: host smtp-ovhfr9.mailjet.com
May 1 00:20:37 dewa postfix/smtp[4002]: lookup smtp-ovhfr9.mailjet.com type A flags 0
May 1 00:20:37 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr9.mailjet.com (A): OK
May 1 00:20:37 dewa postfix/smtp[4002]: dns_get_answer: type A for smtp-ovhfr9.mailjet.com
May 1 00:20:37 dewa postfix/smtp[4002]: lookup smtp-ovhfr9.mailjet.com type AAAA flags 0
May 1 00:20:37 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr9.mailjet.com (AAAA): Host found but no data record of requested type
May 1 00:20:37 dewa postfix/smtp[4002]: smtp_addr_one: host smtp-ovhfr10.mailjet.com
May 1 00:20:37 dewa postfix/smtp[4002]: lookup smtp-ovhfr10.mailjet.com type A flags 0
May 1 00:20:37 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr10.mailjet.com (A): OK
May 1 00:20:37 dewa postfix/smtp[4002]: dns_get_answer: type A for smtp-ovhfr10.mailjet.com
May 1 00:20:37 dewa postfix/smtp[4002]: lookup smtp-ovhfr10.mailjet.com type AAAA flags 0
May 1 00:20:37 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr10.mailjet.com (AAAA): Host found but no data record of requested type
May 1 00:20:37 dewa postfix/smtp[4002]: smtp_addr_one: host smtp-ovhfr11.mailjet.com
May 1 00:20:37 dewa postfix/smtp[4002]: lookup smtp-ovhfr11.mailjet.com type A flags 0
May 1 00:20:37 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr11.mailjet.com (A): OK
May 1 00:20:37 dewa postfix/smtp[4002]: dns_get_answer: type A for smtp-ovhfr11.mailjet.com
May 1 00:20:37 dewa postfix/smtp[4002]: lookup smtp-ovhfr11.mailjet.com type AAAA flags 0
May 1 00:20:37 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr11.mailjet.com (AAAA): Host found but no data record of requested type
May 1 00:20:37 dewa postfix/smtp[4002]: smtp_addr_one: host smtp-ovhfr7.mailjet.com
May 1 00:20:37 dewa postfix/smtp[4002]: lookup smtp-ovhfr7.mailjet.com type A flags 0
May 1 00:20:37 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr7.mailjet.com (A): OK
May 1 00:20:37 dewa postfix/smtp[4002]: dns_get_answer: type A for smtp-ovhfr7.mailjet.com
May 1 00:20:37 dewa postfix/smtp[4002]: lookup smtp-ovhfr7.mailjet.com type AAAA flags 0
May 1 00:20:38 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr7.mailjet.com (AAAA): Host found but no data record of requested type
May 1 00:20:38 dewa postfix/smtp[4002]: smtp_addr_one: host smtp-ovhfr8.mailjet.com
May 1 00:20:38 dewa postfix/smtp[4002]: lookup smtp-ovhfr8.mailjet.com type A flags 0
May 1 00:20:38 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr8.mailjet.com (A): OK
May 1 00:20:38 dewa postfix/smtp[4002]: dns_get_answer: type A for smtp-ovhfr8.mailjet.com
May 1 00:20:38 dewa postfix/smtp[4002]: lookup smtp-ovhfr8.mailjet.com type AAAA flags 0
May 1 00:20:38 dewa postfix/smtp[4002]: dns_query: smtp-ovhfr8.mailjet.com (AAAA): Host found but no data record of requested type
May 1 00:20:38 dewa postfix/smtp[4002]: begin in.mailjet.com address list
May 1 00:20:38 dewa postfix/smtp[4002]: pref 10 host smtp-ovhfr9.mailjet.com/37.59.74.234
May 1 00:20:38 dewa postfix/smtp[4002]: pref 10 host smtp-ovhfr10.mailjet.com/5.196.43.129
May 1 00:20:38 dewa postfix/smtp[4002]: pref 10 host smtp-ovhfr11.mailjet.com/5.196.43.135
May 1 00:20:38 dewa postfix/smtp[4002]: pref 10 host smtp-ovhfr7.mailjet.com/178.32.115.14
May 1 00:20:38 dewa postfix/smtp[4002]: pref 10 host smtp-ovhfr8.mailjet.com/46.105.54.204因此,从根目录中解决问题的最佳方法是找出为什么NS服务器需要5秒来查找DNS条目。
只使用MX记录的单个结果的解决方法在postfix中是行不通的。后缀将尝试从最佳偏好MX记录返回解析所有域的A记录。in.mailjet.com的MX记录返回具有相同首选项的5台主机。所以后缀将从五个主机上查找一个记录。
为了加快DNS查询的速度,您可以使用NSCD并将smtp_host_lookup设置为native (正如安迪所建议的)。另一种选择是运行本地DNS缓存,如动力或解束缚。
https://serverfault.com/questions/686698
复制相似问题