Odkryj MTU między mną a docelowym adresem IP

18

W przypadku, gdy mogę używać tylko UDPi ICMPprotokołów, jak mogę odkryć w bajtach ścieżkę MTU do przesyłania pakietów z mojego komputera do docelowego adresu IP?

URL87
źródło
Czy chcesz rozwiązać to programowo czy za pomocą polecenia ping? Ping i programowanie w powłoce lub w połączeniu z traceroute to na przykład opcje. Czy chcesz także ipv4 lub ipv6?
Maks.
@Max: programowanie powłoki brzmi dobrze, masz na to pomysł?
URL87
2
Pomyślałem o użyciu ping -s $SIZE -c 1 -M donti obniżeniu tej SIZEwartości, aż zadziała, lub po prostu przyjrzeniu się ICMPzwrotom za pośrednictwem, tcpdumpjeśli mówimy o ipv6, ale traceroutema to wbudowane, właśnie to sobie uświadomiłem.
Maks.

Odpowiedzi:

15

Wierzę, że to, czego szukasz, jest najłatwiejsze traceroute --mtu <target>; może z -6włączonym przełącznikiem, w zależności od twoich zainteresowań. Linux tracerouteużywa UDP jako domyślnego, jeśli uważasz, że twoje szczęście jest lepsze dzięki ICMP, spróbuj również -I.

Max
źródło
17

apropos mtuOkazało się szybkie wyszukiwanie z CentOS5:

tracepath śledzi ścieżkę do hosta sieciowego wykrywającego MTU wzdłuż tej ścieżki

To polecenie działa nawet nieuprzywilejowane w przestrzeni użytkownika.

Nils
źródło
Wolę to, tracerouteponieważ zwraca prosty wynik na końcu i nie muszę szukać ostatniego skoku, który zwrócił inną MTU.
comfreak