局域网中忽略IPv6 MTU和MSS?

我有一台带有(六个)IPv6隧道和一个本地networking的服务器。 该隧道的MTU为1470,该MTU的前缀由radvd通告,由本地客户端接收:

root@host:~# ip -6 route 2001:xxxx:xxxx::/64 dev eth1 proto kernel metric 256 expires 298sec mtu 1470 fe80::/64 dev eth1 proto kernel metric 256 mtu 1470 default via fe80::dad3:85ff:feaf:7e77 dev eth1 proto kernel metric 1024 expires 28sec mtu 1470 hoplimit 64 

客户端的接口像往常一样具有1500的MTU。 现在,当我将文件传输到远程IPv6主机时,会发生以下情况(服务器上的wireshark数据包转储,相关部分的LAN接口):

 15.034320 host -> remote SSHv2 Encrypted request packet len=2796 15.034408 server -> host ICMPv6 Too big 15.241163 host -> remote SSHv2 [TCP Retransmission] Encrypted request packet len=1398 15.252193 remote -> host TCP ssh > 58188 [ACK] Seq=2658 Ack=121902 Win=64128 Len=0 TSV=2205083594 TSER=4294965684 15.252480 host -> remote SSHv2 [TCP Retransmission] Encrypted request packet len=2796 15.252558 server -> host ICMPv6 Too big 15.461151 host -> remote SSHv2 [TCP Retransmission] Encrypted request packet len=1398 

因此,主机发送一个大小为2796的数据包(甚至不可能,链接MTU为1500),并且服务器正确回复ICMPv6太大。 数据包然后以正确的大小被重新传输并被确认。 但是,接下来的数据包又太大了,这个过程无限重复,而文件以蜗牛的速度传输……这里发生了什么? 路由caching显示路由的MTU被正确拾取(IPv6地址被replace为名称):

 root@host:~# ip -6 route show cached remote via fe80::dad3:85ff:feaf:7e77 dev eth1 metric 0 cache mtu 1470 hoplimit 64 server via server dev eth1 metric 0 cache mtu 1470 

好吧,在家里更奇怪的问题发生在networking上。 我采取了微软的方式,并重新启动服务器。 问题似乎没有了。