当我使用设置了DF位的远程站点进行ping操作并且对于我的路由器来说太大的数据包大小时,从路由器发送第一个ICMP“需要分段”消息。 之后,消息来自我的本地主机。
Netstat -rC(在Linux上)允许我查看路由表caching,但是
1)似乎在一个名为MSS的列下显示MTU(我希望它是链路的较低的TCP MSS)
2)始终显示值为1500
我的本地主机必须将PMTUcaching到某个位置,以便生成所需的分段信息。 但是我怎么看?
这是我的机器上的一个例子(-n在netstat禁止反向DNS查找):
[root@vbcentos ~]# ping -c 4 -M do -s 1431 212.58.244.69 PING 212.58.244.69 (212.58.244.69) 1431(1459) bytes of data. From 217.155.134.6 icmp_seq=1 Frag needed and DF set (mtu = 1458) From 217.155.134.4 icmp_seq=2 Frag needed and DF set (mtu = 1458) From 217.155.134.4 icmp_seq=2 Frag needed and DF set (mtu = 1458) From 217.155.134.4 icmp_seq=2 Frag needed and DF set (mtu = 1458) --- 212.58.244.69 ping statistics --- 1 packets transmitted, 0 received, +4 errors, 100% packet loss, time 1002ms [root@vbcentos ~]# netstat -rCn Kernel IP routing cache Source Destination Gateway Flags MSS Window irtt Iface 217.155.134.3 217.155.134.4 217.155.134.4 il 0 0 0 lo 217.155.134.4 212.58.244.69 217.155.134.6 1500 0 0 eth0 217.155.134.4 217.155.134.4 217.155.134.4 l 16436 0 0 lo 217.155.134.3 217.155.134.255 217.155.134.255 ibl 0 0 0 lo 217.155.134.4 212.58.244.69 217.155.134.6 1500 0 0 eth0 217.155.134.6 217.155.134.4 217.155.134.4 il 0 0 0 lo 212.58.244.69 217.155.134.4 217.155.134.4 l 0 0 0 lo [root@vbcentos ~]#
编辑:按照build议:
ip route get to 212.58.244.69
给
212.58.244.69 via 217.155.134.6 dev eth1 src 217.155.134.4 cache mtu 1500 advmss 1460 hoplimit 64
这也似乎是错误的,因为MSS只比mtu小40,这是接口MTU,而不是PMTU
也许
ip route get to 212.58.244.69
在Windows下,使用netsh命令查看保存此信息的“目标caching”。 例如(假设IPv4):
netsh interface ipv4 show destinationcache