linux – 暂停交付:找不到主机或域名

前端之家收集整理的这篇文章主要介绍了linux – 暂停交付:找不到主机或域名前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个独立的域名ad.vz和ad2.vz,它们之间有网关.
有3个后缀服务器:

> mailad.ad.vz – 第一个域中的后缀服务器
> mailsh – 带有postfix和两个网络适配器的网关
> mailinet.ad2.vz – 第二个域中的后缀服务器

Mailsh只能与一个网络区域连接.有工作继电器,每隔30秒调高/减少eth.
我开始在mailad whitch发送压力测试,发送20个字母,每30秒500KB.有时队列开始积累.我可以在maillog中看到以下消息:

Sep  4 08:51:01 mailsh postfix/error[9602]: CFA5E131A7: to=<test@mailinet2.ad.vz>,relay=none,delay=33,delays=32/0/0/0,dsn=4.4.3,status=deferred (delivery temporarily suspended: Host or domain name not found. Name service error for name=mailinet.ad.vz type=MX: Host not found,try again)"

每次当适配器打开时,我发送命令postqueue -f

为什么队列可以积累?

mailad postconf:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname,localhost.$mydomain,localhost,$mydomain
mydomain = vzavod.ru
myhostname = mailad.vzavod.ru
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
transport settings:
vzavod.ru   local
*       smtp:mailsh.ad.vz

mailsh postconf:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname,$mydomain
mydomain = vzavod.ru
myhostname = mailsh.vzavod.ru
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550

运输设置:

*       smtp:mailinet.ad.vz
vzavod.ru   smtp:mailad.ad.vz

解决方法

看起来您的情况与本文中的场景类似: postfix in dialup machine.

从那篇文章中可以看出,这里有一些考虑.

>禁用自发SMTP邮件传递(如果仅使用按需拨号IP).

使用以下参数,除非您手动运行postqueue -f,否则postfix不会尝试发送电子邮件.将此参数放在main.cf中.更多信息,请参见here.

defer_transports = smtp # (Only for on-demand dialup IP hosts)

>禁用SMTP客户端DNS查找(仅限拨号LAN).

禁用Postfix SMTP和LMTP客户端中的DNS查找.禁用时,将使用getaddrinfo()系统库例程查找主机,该例程通常也会在/ etc / hosts中查找.因此,将mailad.ad.vz的条目放在/ etc / hosts上.例如

# echo "192.168.1.99  mailad.ad.vz" >> /etc/hosts

并在main.cf中添加此参数

disable_dns_lookups = yes #(Only for on-demand dialup IP hosts)

猜你在找的Linux相关文章