标签 MTU 下的文章

发自139.com的邮件,不能在电信内网的邮局中收到 - iredmail

环境:电信的线路,在内网的一台机子上安装了 iredmail 邮局
问题:邮局与腾讯的收发邮件,正常。但发自139.com的邮件,不能收到
现象:邮局中的日志有如下字样:

Aug  5 21:57:29 mail postfix/smtpd[22485]: connect from n169-113.mail.139.com[120.232.169.113]
Aug  5 21:57:29 mail postfix/smtpd[22485]: Anonymous TLS connection established from n169-113.mail.139.com[120.232.169.113]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Aug  5 21:57:29 mail postfix/smtpd[22485]: 4LznGd6ykCz9w4l: client=n169-113.mail.139.com[120.232.169.113]
Aug  5 21:59:27 mail postfix/anvil[21946]: statistics: max connection rate 1/60s for (smtpd:120.232.169.113) at Aug  5 21:49:27
Aug  5 21:59:27 mail postfix/anvil[21946]: statistics: max connection count 1 for (smtpd:120.232.169.113) at Aug  5 21:49:27
Aug  5 21:59:27 mail postfix/anvil[21946]: statistics: max cache size 1 at Aug  5 21:49:27
Aug  5 22:00:45 mail clamd[1737]: SelfCheck: Database status OK.
Aug  5 22:02:30 mail postfix/smtpd[22485]: timeout after DATA (0 bytes) from n169-113.mail.139.com[120.232.169.113]
Aug  5 22:02:30 mail postfix/smtpd[22485]: disconnect from n169-113.mail.139.com[120.232.169.113]

尝试:看起来,自建邮局能与139.com邮局的IP互访,但为什么自建邮局不能成功收信呢?

依照网上的帖子,这可能是因为内网的机子拨号后,以太网的默认的mtu 1500值显得大,需要调小以适合传送。

[root@mail ~]# ping -M do -s 1430 n169-113.mail.139.com
PING n169-113.mail.139.com (120.232.169.113) 1430(1458) bytes of data.
ping: local error: Message too long, mtu=1400
ping: local error: Message too long, mtu=1400
ping: local error: Message too long, mtu=1400

果然,将mtu调小到1400后,自建的邮局就可以成功从139.com收到邮件了。

参考:

WinpkFilter - 注册表 - 设置 SetMTUDecrement

现象:Windows Packet Filter 安装后,想设置 MTUDecrement 的值,但演示的几个程序里没有直接的设置说明。
尝试:用 Process Monitor 来跟踪 演示程序里的 ListAdapters 读取注册表行为,知:

HKLM\System\CurrentControlSet\Services\ndisrd\Parameters\MTUDecrement
Length:16
RegQueryValue

在相应的注册表位置新增相应的值就可以了。

"NdisImPlatformBindingOptions"=dword:00000002
"DefaultFilterSettings"=dword:00000001
"MTUDecrement"=dword:00000000

参考: