Откройте MTU между мной и IP-адресом назначения

18

В случае, если я могу использовать только протоколы UDPи ICMPпротоколы, как я могу в байтах обнаружить путь MTU для передачи пакетов с моего компьютера на IP-адрес назначения?

URL87
источник
Вы хотите решить это программно или с помощью ping? Ping и либо программирование оболочки, либо в сочетании с traceroute являются опциями, например. Также вы хотите ipv4 или ipv6?
Макс
@Max: программирование оболочки звучит хорошо, есть идеи для этого?
URL87
2
Я думал об использовании ping -s $SIZE -c 1 -M dontи понижении этого SIZEзначения до тех пор, пока оно не сработает, или просто взглянул на ICMPвозвраты через, tcpdumpесли мы говорим по ipv6, но tracerouteимеет это встроенное, я только что понял.
Макс

Ответы:

15

Я считаю, что то, что вы ищете, легче всего получить через traceroute --mtu <target>; может быть, с -6переключателем для хорошей меры в зависимости от ваших интересов. Linux tracerouteиспользует UDP по умолчанию, если вы считаете, что с ICMP вам повезло больше, попробуйте также -I.

Максимум
источник
17

Быстрый поиск с помощью apropos mtuCentOS5:

tracepath трассирует путь к сетевому узлу, обнаруживающему MTU по этому пути

Эта команда даже работает непривилегировано в пространстве пользователя.

Nils
источник
Я предпочитаю это, tracerouteтак как в конце он возвращает простой результат, и мне не нужно искать последний прыжок, который возвратил другой MTU.
comfreak