如何在Linux(和所有其他操作系统)下查看缓存的PMTU


13

当我用DF位置1并且数据包大小对于我的路由器来说太大时,对远程站点执行ping操作时,将从路由器发送第一个ICMP“需要分段”消息。之后,消息来自我的本地主机。

Netstat -rC(在Linux上)允许我查看路由表缓存,但是

1)似乎在名为MSS的列下显示MTU(我希望它是链接的较低TCP MSS)

2)始终显示值为1500

我的本地主机必须将PMTU缓存在某个位置,以便它可以生成所需的碎片消息。但是我怎么看呢?

这是我的计算机上的一个示例(netstat上的-n禁止反向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 ~]#

编辑:根据建议:

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(接口mtu而不是PMTU)少40


1
在Fedora 22上,netstat -rCn什么也不返回,但是watch ip route get to $HOST显示最新信息,包括缓存TTL。ip route show cached显示可能也输出一些东西,但没有。
David Tonhofer

Answers:


7

也许

ip route get to 212.58.244.69

编辑问题以添加此内容。
Neik

1

在Windows下,使用netsh命令查看包含此信息的“目标缓存”。例如(假设IPv4):

netsh interface ipv4 show destinationcache

1

MSS应该比您的MTU小40个字节(不包括IPv4(20个字节)和tcp(20)个字节头)。这是正确的。

需要ICMP分段的消息是由路由器而非您的服务器发送的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.