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

Как проверить, кто блокирует ICMP во время согласования пути MTU?

У меня возникают проблемы с MTU при подключении к моему провайдеру веб-хостинга. Проблема в том, что я за ppoe с размером MTU 1492, что не позволяет мне использовать scp. После изменения MTU с 1492 на 1500 scp работает нормально, но большинство других соединений - нет. Ни провайдер веб-хостинга, ни интернет-провайдер не подтверждают блокировку трафика ICMP. Есть ли способ проверить, кто (какой ip в пути) блокирует ICMP? Спасибо

Вы можете использовать хост в сети с подтвержденным MTU> = 1500 (для общедоступного Интернета, а не только по локальной ссылке) и отправлять большие запросы ping или другие пакеты с установленным флагом DF. С помощью сниффера, такого как Wireshark, на этом хосте вы должны видеть пакет «требуется входящая фрагментация ICMP» для каждого отправленного вами пакета.

У меня были некоторые проблемы с моим поставщиком DSL и некоторыми веб-серверами, но оказалось, что пока мой провайдер отправлял пакеты ICMP, они, по-видимому, фильтровались веб-серверами или их брандмауэрами. Это очевидно общий с Amazon Web Services и некоторыми крупными CDN.

Единственный реальный способ определить это - посмотреть на сетевой трафик на обоих концах или, по крайней мере, посмотреть на трафик на вашем конце. Вы сначала подтвердили, что не игнорируете их, посмотрев на сеть на своей стороне?

Необходимые вам инструменты: mturoute на окнах или трассировка на * nix. Любой из этих инструментов позволяет определить значение MTU пути между двумя хостами и увидеть, где находится узкое место. Однако, если проблема в том, что для данного перехода заблокирован ICMP, нарушение Обнаружение MTU пути вам нужно погрузиться немного глубже, чтобы понять, в чем проблема.

Затем, конечно, вы должны убедить ответственную сторону исправить конфигурацию своего сетевого оборудования.

MTU - это проблема локальной связи с точки зрения «работает» или «не работает». Если машины на обоих концах настроены на использование MTU, соответствующего их конкретному каналу, то маршрутизаторы в середине должны соответствующим образом фрагментировать пакеты для прохождения данных. Производительность пострадает, но вы должны получить трафик, даже если ICMP заблокированы посередине.

Конечно, этого не произойдет, если между маршрутизаторами есть один или несколько каналов с неверно настроенным MTU, но кто-то, вероятно, заметил бы это раньше.

Что касается проверки того, где / заблокирован ли ICMP, я предлагаю traceroute. Если вы используете Linux, самая последняя версия Ubuntu поставляется с умеренно подробным описанием проблем, связанных с блокировкой ICMP, и это должно дать вам хорошее представление о том, откуда исходит блок. Поскольку у вас есть доступ с обеих сторон, вы должны иметь возможность проверить в каждом направлении.