Сценарий 4 иллюстрирует пример ассиметричной маршрутизации, при которой один из путей имеет меньшее значение MTU, чем другой. Ассиметричная маршрутизация имеет место тогда, когда для отправки и получения данных между двумя конечными точками, используются два разных пути. В данном сценарии процесс PMTUD инициирует уменьшение значения MSS отправки (send MSS) только в одном направлении потока TCP. Трафик, отправляемый TCP-клиентом на сервер, проходит через маршрутизаторы A и B, в то время как обратный трафик, посылаемый сервером, проходит через маршрутизаторы D и C.
При отправке TCP-сервером пакетов клиенту PMTUD инициирует уменьшение значения MSS отправки, поскольку маршрутизатор D должен будет фрагментировать 4092- байтные пакеты перед их оправкой на маршрутизатор C. С другой стороны, клиент никогда не получит сообщение ICMP Destination Unreachable с кодом «необходима фрагментация и установлен бит DF», поскольку маршрутизатор A не должен фрагментировать пакеты при отправлении их на сервер через маршрутизатор B. Сценарий 4 Примечание: Команда ip tcp path-mtu-discovery используется для активации функции обнаружения пути TCP MTU для соединений TCP, инициированных маршрутизаторами (например, BGP и Telnet).
Проблемы, связанные с PMTUD Существует три причины нарушения PMTUD, две из которых встречаются очень редко, а третья – часто. Маршрутизатор может сбросить пакет и не отправить ICMP-сообщение. (редко) Маршрутизатор может сформировать и отправить ICMP-сообщение, которое, однако, будет заблокировано маршрутизатором или брандмауэром на пути между маршрутизатором и получателем. (часто) Маршрутизатор может сформировать и отправить ICMP-сообщение, однако получатель его проигнорирует. (редко) Первая и последняя из этих трех меток обычно не встречаются и появляются в результате ошибки, а средняя описывает распространенную проблему.
Пользователи, использующие фильтры ICMP-пакетов, стремятся заблокировать ICMP-сообщения всех типов, а не только отдельные виды этих сообщений. Фильтр пакетов может заблокировать все виды ICMP-сообщений, кроме тех, которые содержат сообщение unreachable (достичь невозможно) или time-exceeded (время истекло). Успех или неудача PMTUD зависит от ICMP-сообщений о недоступности, проходящих к отправителю пакета TCP/IP. ICMP-сообщения time-exceeded играют важную роль в других случаях, связанных с IP. Ниже приведен пример фильтра пакетов, который реализован на маршрутизаторе.
access-list 101 permit icmp any any unreachable access-list 101 permit icmp any any time-exceeded access-list 101 deny icmp any any access-list 101 permit ip any any Существуют и другие способы уменьшения проблем полной блокировки ICMP. Сбросьте бит DF на маршрутизаторе и разрешите фрагментацию в любом случае (хотя это может быть не слишком удачная идея). Более подробно см. в разделе Проблемы, связанные с IP-фрагментацией. Значением MSS опции TCP MSS можно управлять при помощи интерфейсной команды ip tcp adjust-mss .