我通过OpenVPN隧道将后缀/Dovecot服务器连接到因特网的VPS。当我用我的定期互联网连接(端口587)发送短邮件(如3-4句)时,它工作得很好。但如果我的电子邮件更长,雷鸟抛出一个连接丢失在交易错误。如果我将我的机器连接到相同的VPN&VPS,发送就会很好。所有机器都在运行双堆栈,同时也运行VPS和OpenVPN隧道(使用tun,不使用tap)。接收来自其他电子邮件服务器的长电子邮件工作得很好。我怎样才能解决这个问题?所有服务器都运行在Debian 9上,客户端运行Win10。
这个问题只出现在IPv6上。到目前为止,我只从我的家庭网络测试过它。tun-mtu现在设置为1280。tracepath正确识别所设置的MTU。
这是我的ip6tables:
# Generated by ip6tables-save v1.6.0 on Tue Mar 27 23:51:39 2018
*filter
:INPUT ACCEPT [5:608]
:FORWARD ACCEPT [1217:402964]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT
-A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tun+ -o eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p ipv6-icmp -j ACCEPT
-A FORWARD -s [MYSUBNET]/64 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p ipv6-icmp -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT
-A OUTPUT -j ACCEPT
COMMIT发布于 2018-03-27 09:09:56
我同意@CraigMiskell的观点:如果P在您的网络中被破坏(由于IP网络固有的“各向异性”,它可能在一个方向而不是在另一个方向上被破坏),这可能导致大的IP段被丢弃在中间的某个位置,ICMP消息说它没有到达堆栈回。尝试启动这里。
另一种可能是你在任何东西的设置中过于防御性,防火墙,你的私人网络。比如说,使用Linux的Netfilter,人们倾向于有这样的东西
iptables -L INPUT -P DROP
iptables -L INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT(FORWARD也是如此)--忘记在“启用”规则中也提到状态RELATED --因此禁止与TCP连接相关的ICMP消息到达本地网络堆栈。
检查一下你在这方面没有太严格的限制。
要学习的东西:P,P发现,ICMP“不能分割”消息,TCP MSS。
https://serverfault.com/questions/904701
复制相似问题