smtp 错误 421 4.4.2 错误:几分钟后超时并收到一些字节 - Ubuntu 16.04

smtp 错误 421 4.4.2 错误:几分钟后超时并收到一些字节 - Ubuntu 16.04

当我尝试使用 telnet 从客户端 xxxx-01 发送电子邮件时,如果邮件正文超过一定长度,则会出现以下错误。在其余两台主机 xxxx-02 和 03 上,相同长度的正文可以正常发送到同一中继主机,没有任何问题。目标中继主机运行在 RHEL 6 和 postfix 2.6 上。TCP DUMP 未表明目标主机/客户端存在任何问题。

TCP 窗口缩放在目标主机和客户端主机上均启用,因此我认为我们不需要真正禁用它,因为它在其他客户端上运行良好。

包含较少文本的电子邮件从 xxxx-01 > 目标中继主机发送时完全可以正常工作。

错误信息:

smtp error 421 4.4.2 Error: timeout exceeded after 5 minutes

3 个客户端及其内核版本(Ubuntu)

root@xxxx-02:~# uname -r
4.4.0-63-generic

root@xxxx-03:~# uname -r
4.4.0-59-generic

不工作客户端:

root@xxxx-01:~# uname -r
4.4.0-64-generic

运行 postfix 2.6 和 RHEL6 的邮件中继主机上的错误日志:

2017-04-12T18:56:40.999543-05:00 840439-abc8 postfix/smtpd[8865]: connect from unknown[172.24.32.6]
2017-04-12T18:56:41.010133-05:00 840439-abc8 postfix/smtpd[8865]: 02717B0093E: client=unknown[172.24.32.6]
2017-04-12T18:57:05.481704-05:00 840439-abc8 postfix/smtpd[10309]: connect from unknown[172.24.32.6]
2017-04-12T18:57:32.091900-05:00 840439-abc8 postfix/smtpd[10309]: 16678B009B1: client=unknown[172.24.32.6]
2017-04-12T19:01:41.112792-05:00 840439-abc8 postfix/smtpd[8865]: timeout after DATA (0 bytes) from unknown[172.24.32.6]
2017-04-12T19:01:41.112811-05:00 840439-abc8 postfix/smtpd[8865]: disconnect from unknown[172.24.32.6]
2017-04-12T19:03:12.218402-05:00 840439-abc8 postfix/smtpd[10309]: timeout after DATA (30 bytes) from unknown[172.24.32.6]
2017-04-12T19:03:12.218421-05:00 840439-abc8 postfix/smtpd[10309]: disconnect from unknown[172.24.32.6]

从客户端进行 Telnet

ops@xxxx-01:~$ telnet mail8.xyz.com 25
Trying 192.168.203.205...
Connected to mail8.xyz.com.
Escape character is '^]'.
220 mail8.xyz.com ESMTP Postfix
EHLO 72.xx.xx.xx
250-mail8.xyz.com
250-PIPELINING
250-SIZE 9900000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM: [email protected]
250 2.1.0 Ok
RCPT TO: [email protected]
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Some Feed Results: SomeFeedserviceFeedService - xxxx-01
01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*100* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*200* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*300* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*400* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*500* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*600* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*700* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*800* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*900* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 9012*1000* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*100* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*200* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*300* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123456
.
421 4.4.2 mail8.xyz.com Error: timeout exceeded
Connection closed by foreign host.
ops@xxxx-01:~$

如果我从邮件正文末尾删除一些数字,它就可以正常工作

ops@xxxx-01:~$ telnet mail8.xyz.com 25
Trying 192.168.203.205...
Connected to mail8.xyz.com.
Escape character is '^]'.
220 mail8.xyz.com ESMTP Postfix
EHLO 72.xx.xx.xx
250-mail8.xyz.com
250-PIPELINING
250-SIZE 9900000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM: [email protected]
250 2.1.0 Ok
RCPT TO: [email protected]
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Some Feed Results: SomeFeedserviceFeedService - xxxx-01
01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*100* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*200* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*300* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*400* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*500* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*600* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*700* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*800* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*900* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 9012*1000* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*100* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*200* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 90123*300* 01234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 901234567 9012345
.
250 2.0.0 Ok: queued as 87871B01839
quit
221 2.0.0 Bye

所以问题是为什么它只在其中一个客户端上失败?它仅在客户端“xxxx-01”上大约几分钟后超时。这三个客户端之间的唯一区别是内核版本的细微差异,但我不认为这是根本原因。

答案1

首先深入了解 SMTP,我希望您发现这有帮助: http://www.freesoft.org/CIE/RFC/1123/109.htm 这 5 分钟是由数据注入启动后的 2 分钟加上数据块的 3 分钟生成的。这两个时间都占了这 5 分钟的时间

由于您尝试发送较小的消息大小,那么显然该问题是由消息大小引发的。

为此,您有两条路要考虑:

首先,消息太大,片段标志设置为 0,并且 ICMPv4 在您的防火墙或目标防火墙或其他安全设备上被阻止。这意味着双方(发送方、接收方)无法就 MTU 达成一致,换句话说,在 SMTP 握手期间大小是不可接受的。

第二种选择是,收件人可能有一些限制特定大小的邮件策略(限制)。

相关内容