1

Я настроил тестовую сеть с двумя компьютерами Linux, работающими в качестве маршрутизаторов, и двумя компьютерами Linux, работающими как обычные клиенты. 2 маршрутизатора подключены друг к другу, и каждый клиент подключен к одному маршрутизатору. На пути от клиента к одному из маршрутизаторов MTU составляет 1500, однако между двумя маршрутизаторами это 1200. Также я использую только IPv6.

Если я сейчас попытаюсь отправить пакет, размер которого превышает 1200 байт, я ожидаю получить ошибку ICMPv6 "слишком большой пакет" от маршрутизатора, и клиент должен затем фрагментировать пакет и попытаться отправить его повторно. Однако этого не происходит. Если я смотрю на wireshark, я вижу клиента, получающего ошибки ICMPv6, однако клиент не пытается повторно посылать пакеты как фрагменты.

Что может быть причиной такого поведения?

1 ответ1

2

IPv6 не поддерживает фрагментацию.

С IPv4 маршрутизатор может фрагментировать пакет при пересылке с одного канала на другой канал с меньшим MTU (если не установлен DF ).

С IPv6 конечные точки должны использовать Path MTU Discovery, чтобы фактически выяснить это сами, а затем использовать этот MTU между собой ...

Редактируйте после благодарных комментариев @Patrick Mevzek:

... или прибегнуть к использованию гарантированного MTU для IPv6 размером 1280 байт (с фрагментацией пакета на хосте или без него).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .