1. Маршрутизатор получает 1500-байтовую датаграмму. Туннель GRE отбрасывает этот пакет, поскольку из-за установленного бита DF протокол GRE не может выполнить фрагментацию пакета или переадресовать его; кроме того, после добавления служебных данных GRE (24 байта) размер пакета превысит значение ip mtu исходящего интерфейса. Маршрутизатор отправляет ICMP-сообщение узлу 1 и уведомляет, что MTU следующего скачка равняется 1476 (1500 - 24 = 1476). 2. 3. Узел 1 изменяет значение PMTU (1476 байт) для узла 2. Теперь при повторной передаче будет отправлен пакет меньшего размера. GRE выполняет инкапсуляцию пакета, а затем передает 1500-байтный пакет протоколу IPsec.
IPsec отбросит этот пакет, поскольку GRE скопировал бит DF (он был установлен) из внутреннего заголовка IP, и после добавления служебной информации IPsec (максимальная величина – 38 байт) размер пакета будет слишком большим для отправки через физический интерфейс. 4. IPsec отправляет ICMP-сообщение для GRE, где указывает, что значение MTU следующего сетевого сегмента составляет 1462 байта (поскольку в результате шифрования и добавления служебных данных IP будут добавлены еще 38 байт). GRE сохраняет значение равное 1438 байтам (1462 - 24) в качестве ip mtu туннельного интерфейса. Примечание:
Это изменение сохраняется во внутренних данных, в выходных данных команды show ip interface tunnel оно не отображается. Изменение видно только при использовании команды debug tunnel . В следующий раз когда узел 1 повторно отправит 1476-байтный пакет, GRE отбросит этот пакет. 5. Маршрутизатор отправляет ICMP-пакет на узел 1 с указанием на то, что значение MTU для следующего перехода равно 1438. 6. 7. Узел 1 уменьшает значение PMTU для узла 2 и повторно отправляет пакет размером 1438 байт. На этот раз GRE принимает этот пакет, инкапсулирует его и передает его для шифрования протоколу IPsec.
Пакет IPsec пересылается на промежуточный маршрутизатор и отбрасывается, так как MTU исходящего интерфейса равно 1400. 8. Промежуточный маршрутизатор отправляет IPsec сообщение ICMP, где указано, что значение MTU следующего сетевого сегмента составляет 1400 байт. IPSec сохраняет это значение в качестве значения PMTU соответствующей ассоциации защиты (IPsec SA). Когда узел 1 пересылает пакет из 1438 байт, GRE инкапсулирует его и передает IPsec. IPsec отбрасывает пакет, поскольку он установил значение своего собственного PMTU равным 1400 байт. 9. IPsec отправляет GRE ICMP-сообщение об ошибке, где будет указано, что значение MTU следующего сегмента составляет 1362 байта.
После чего GRE сохранит во внутренних данных значение равное 1338 байтам. 10. Когда узел 1 повторно отправляет исходный пакет (поскольку он не получил подтверждения), GRE его отбрасывает. 11. Маршрутизатор посылает узлу 1 ICMP-сообщение, где указано, что MTU следующего сегмента составляет 1338 байта (1362 - 24 = 1442). Узел 1 уменьшает значение PMTU для узла 2, и оно становиться равным 1338 байтам. 12.