Cisco %TUN-5-PACKET_TOO_BIG: Packet size exceeds MTU on GRE tunnel — решение
В журнале регистрируется предупреждение %TUN-5-PACKET_TOO_BIG: Packet size [bytes] exceeds MTU [mtu] on GRE tunnel [TunnelX] with DF bit set. Пользователи жалуются, что небольшие пакеты (ping, DNS) проходят успешно, а открытие сайтов по HTTPS, передача файлов (SMB/RDP) и работа SSH-сессий зависают.
1. Анализ текущего MTU и инкапсуляции туннеля
show interfaces Tunnel1 | include MTU|BW|encapsulation
show ip interface Tunnel1 | include MTU2. Расчет накладных расходов GRE и IPsec
Стандартный кадр Ethernet имеет MTU 1500. Заголовок GRE добавляет 24 байта, заголовок IPsec ESP — до 56-72 байт. Итоговый MTU туннеля должен составлять не более 1400–1436 байт.
3. Корректировка MTU и TCP MSS Clamping на туннеле
Настройте следующие параметры на обоих концах туннеля:
configure terminal
interface Tunnel1
ip mtu 1400
ip tcp adjust-mss 1360
end4. Включение Path MTU Discovery (PMTUD)
Убедитесь, что ядро генерирует сообщения ICMP Type 3 Code 4 (Fragmentation Needed), и они не фильтруются файрволами:
configure terminal
interface Tunnel1
tunnel path-mtu-discovery
end
no ip icmp unreachable # Должно быть отключено (unreachables разрешены)5. Проверка прохождения больших пакетов без фрагментации
ping 10.0.0.2 source 10.0.0.1 size 1400 df-bit Частые вопросы (FAQ)
Почему при ошибке MTU мелкие пинги работают, а браузер зависает?
Ping использует пакеты размером 64-100 байт, которые легко помещаются в туннель. Web-страницы передают пакеты максимального размера (TCP MSS 1460). С установленным битом DF (Don't Fragment) промежуточный роутер отбрасывает их.
Как правильно рассчитать значение ip tcp adjust-mss?
Оно должно быть минимум на 40 байт меньше, чем ip mtu интерфейса (20 байт заголовок IP + 20 байт заголовок TCP). При MTU 1400 значение adjust-mss должно быть 1360.
Что делает команда tunnel path-mtu-discovery?
Она включает динамическое определение MTU между внешними endpoint-адресами туннеля с помощью механизма ICMP PMTUD.
Влияет ли ip tcp adjust-mss на трафик UDP (VoIP, DNS)?
Нет, MSS Clamping работает только для TCP сессий (модифицирует MSS в SYN пакетах). Для UDP приложений необходимо явно снижать MTU на конечных клиентах или разрешать фрагментацию.