Linux(および他のすべてのOS)でキャッシュされたPMTUを表示する方法


13

DFビットが設定され、パケットサイズがルーターに対して大きすぎるリモートサイトにpingを実行すると、最初のICMP "fragmentation required"メッセージがルーターから送信されます。その後、メッセージは私のローカルホストから来ます。

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がPMTUではなくインターフェイスmtuであるmtuよりも40だけ小さいため、これも間違っているようです。


1
Fedora 22ではnetstat -rCn何も返しませんがwatch ip route get to $HOST、キャッシュTTLを含む、何が起きているかを示します。ip route show cachedおそらく何かを出力しますが、表示しません。
デビッドトンホーファー

回答:



1

Windowsでは、netshコマンドを使用して、この情報を保持する「宛先キャッシュ」を表示します。例(IPv4を想定):

netsh interface ipv4 show destinationcache

1

MSSは、MTUより40バイト少なくする必要があります(IPv4(20バイト)およびtcp(20)バイトヘッダーは含まれません)。それは正しいです。

ICMPフラグメンテーションが必要なメッセージは、サーバーではなくルーターによって送信されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.