cisco — Решение проблем, связанных с фрагментацией IP, а также с MTU, MSS и PMTUD, при помощи протоколов GRE и IPSEC

В приводимом ниже сценарии 5 маршрутизатор А и маршрутизатор B находятся в одном административном домене. Маршрутизатор C недоступен и блокирует ICMP, поэтому PMTUD не работает. Чтобы исправить эту ситуацию, на маршрутизаторе B можно сбросить бит DF по обоим направлениями и тем самым разрешить фрагментацию. Это можно выполнить при помощи политики маршрутизации. Синтаксис, используемый для отключения бита DF, имеется в ПО Cisco IOS® начиная с выпуска 12.1(6) и выше. interface serial0 ...

ip policy route-map clear-df-bit route-map clear-df-bit permit 10 match ip address 111 set ip df 0 access-list 111 permit tcp any any Можно также попробовать изменить значение параметра TCP MSS для пакетов SYN, которые проходят сквозь маршрутизатор (доступен в Cisco IOS начиная с версии 12.2(4)T и выше). Это приводит к сокращению значения параметра MSS в пакете TCP SYN, которое становится меньше, чем значение (1460) в команде ip tcp adjust-mss . Результатом является то, что TCP-отправитель будет отправлять сегменты, размер которых не превышает это значение.

Размер IP-пакета будет на 40 байт больше (1500 байт) значения MSS (1460 байт), чтобы вместить TCP-заголовок (20 байт) и IP-заголовок (20 байт). Для изменения значения MSS для пакетов TCP SYN можно использовать команду ip tcp adjust-mss . Указанный ниже синтаксис позволяет уменьшить значение MSS в TCP-сегментах до 1460 байтов. Данная команда воздействует как на входящий, так и на исходящий трафик интерфейса serial0. int s0 ip tcp adjust-mss 1460 С увеличением использования IP-туннелей проблемы, связанные с фрагментацией IP, получили большее распространение.

Причина, по которой использование туннелей приводит к большей фрагментации, заключается в том, что в ходе туннельного инкапсулирования размер передаваемого пакета увеличивается. Например, при добавлении протокола IP-туннелирования GRE (Generic Router Encapsulation) размер пакета увеличивается на 24 байта. Это значит, что после такого увеличения может понадобиться фрагментация пакета, поскольку его размер превышает величину исходящего MTU. Ниже мы приведем примеры проблем, которые связаны с туннелированием и IP-фрагментацией. Распространенные топологии сети, использующие PMTUD PMTUD необходим в тех случаях, когда промежуточные каналы имеют меньшие MTU по сравнению с MTU конечных каналов.

Некоторые общие причины существования каналов с меньшими значениями MTU: Конечные узлы, подключенные к сетям Token Ring или FDDI, которые соединены между собой посредством Ethernet. Величина MTU оконечных сетей Token Ring или FDDI больше величины MTU в промежуточных сетях Ethernet. Для PPPoE (часто используется с ADSL) требуется 8 байт для заголовка. Это снижает максимальный размер блока данных Ethernet до 1492 (1500 – 8).