Вопрос: Как просмотреть кешированный PMTU под Linux (и все остальные ОС)


Когда я пингую удаленный сайт с установленным битом DF и размером пакета, который слишком велик для моего маршрутизатора, первое сообщение ICMP «фрагментация требуется» отправляется с маршрутизатора. После этого сообщение приходит от моего localhost.

Netstat -rC (в Linux) позволяет мне просматривать кеш таблицы маршрутизации, но

1) Кажется, чтобы показать MTU под столбцом MSS (который я ожидал бы быть более низким TCP MSS ссылки)

2) Всегда показывает значение как 1500

Мой локальный хост должен кэшировать PMTU где-нибудь, чтобы он мог генерировать сообщение о необходимости фрагментации. Но как я это вижу?

Вот пример моей машины (-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 ~]#

РЕДАКТИРОВАТЬ: Согласно предложению:

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 всего на 40 меньше, чем mtu, что является интерфейсом mtu, а не PMTU


10
2017-08-23 10:15


Источник


На Fedora 22, netstat -rCn ничего не возвращает, но watch ip route get to $HOST показывает, что происходит, включая TTL кэша. ip route show cached вероятно, также выводит что-то, но не делает. - David Tonhofer


Ответы:


Может быть

ip route get to 212.58.244.69

4
2017-08-24 00:24



Отредактированный вопрос, чтобы добавить это. - Neik


В Windows используйте команду netsh для просмотра «кеша назначения», который содержит эту информацию. Например (при условии, что IPv4):

netsh interface ipv4 show destinationcache

0
2017-10-08 20:38