Назад | Перейти на главную страницу

Бонус для компьютерных сетей: найдите MTU менее 1500

Это дополнительный вопрос в моем классе Networks: мне нужно найти пункт назначения, для которого MTU пути <1500 байт.

Например, используя команду

traceroute -F www.uwaterloo.ca 1500 работает, и traceroute -F www.uwaterloo.ca 1501 не делает.

Поэтому мне нужно найти пункт назначения, который выйдет из строя ниже 1500 (и нет, это не может быть частная сеть, это было бы обманом).

Я подозреваю, что это уловка, потому что почти все реализации IP over Ethernet используют формат кадра Ethernet V2, который поддерживает 1500 MTU.

Любые идеи?

Сколько у тебя времени? Вы можете использовать грубую силу. Например, как этот сценарий bash:

while [ 1 ]
do
    ip=`expr $RANDOM \* $RANDOM`;
    traceroute -F -I $i 1472 2>/dev/null >/dev/null
    if [ $? -ne 0 ]
    then
        echo Traceroute with 1472 bytes failed for $i
        exit
    fi
done

Предостережение: в этом сообщении IP-адреса отображаются как целое число, вам нужно будет преобразовать его в восьмеричный формат, разделенный точками. Также обратите внимание, что traceroute по умолчанию использует ICMP. В этом случае вам необходимо установить размер данных 1472 байта (1472 + 8 байтов заголовок ICMP + 20 байтов заголовок IP) = 1500 байтов.

Найдите в Интернете IP-адрес, назначенный модему ADSL (большинство из них используют PPPoE или PPPoA). Во время проверки связи запускайте tcpdump icmp и обратите внимание на необходимость фрагментации ICMP (тип 3, код 4). Если вы видите, что вы нашли свою цель.