Траблшутинг зацикливания пакетов TTL Expired: поиск L3 петель маршрутизации
- Команда ping возвращает сообщения
Reply from x.x.x.x: Time to live exceeded in transit (ICMP Type 11 Code 0). - Трассировка
traceroute / mtrциклически перескакивает между двумя одинаковыми IP-адресами шлюзов. - Всплеск утилизации каналов до 100% зацикленным мусорным трафиком.
- Высокая нагрузка на процессор маршрутизаторов из-за непрерывной генерации пакетов ICMP TTL Expired.
1. Природа ошибки ICMP TTL Expired
Поле заголовка IPv4 **TTL (Time to Live)** или IPv6 **Hop Limit** уменьшается на 1 при прохождении каждого L3-маршрутизатора. Если в сети образовалась петля (пакет ходит по кругу Router A <-> Router B), поле TTL уменьшается до 0, маршрутизатор уничтожает пакет и отправляет отправителю сообщение **ICMP Type 11 (Time Exceeded)**.
2. Локализация места петли с помощью Traceroute / MTR
traceroute 10.100.50.1
! Пример вывода петли между роутерами .1 и .2:
! 1 192.168.1.1 0.821 ms
! 2 10.254.0.1 1.120 ms
! 3 10.254.0.2 1.450 ms
! 4 10.254.0.1 2.105 ms
! 5 10.254.0.2 2.540 ms (Петля между 10.254.0.1 и 10.254.0.2!)3. Типовые причины возникновения L3 петель
- **Ошибки статической маршрутизации**: На Router A настроен `ip route 10.100.0.0/16 -> Router B`, а на Router B настроен Default Route `0.0.0.0/0 -> Router A`. При запросе к несуществующему хосту (например, `10.100.50.1`) пакет зацикливается до истечения TTL.
- **Некорректная двухсторонняя редистрибуция** (Mutual Redistribution) между OSPF, EIGRP и BGP без использования Route Tags.
- **Агрегирование маршрутов** без создания локального сброса в `Null0`.
4. Исправление редистрибуции с помощью Route Tagging
Маркируйте маршруты метками, чтобы предотвратить их обратное затекание:
! Редистрибуция EIGRP в OSPF с установкой тега 100
route-map RM_EIGRP_TO_OSPF permit 10
set tag 100
!
router ospf 1
redistribute eigrp 1 subnets route-map RM_EIGRP_TO_OSPF
! Блокировка обратной редистрибуции маршрутов с тегом 100 из OSPF в EIGRP
route-map RM_OSPF_TO_EIGRP deny 10
match tag 100
!
route-map RM_OSPF_TO_EIGRP permit 20
!
router eigrp 1
redistribute ospf 1 metric 10000 100 255 1 1500 route-map RM_OSPF_TO_EIGRP5. Защита от петель статических маршрутов (Null0 Null Route)
! На Router A: сбрасываем пакеты к невыделенным адресам подсети
ip route 10.100.0.0 255.255.0.0 Null0 250 Частые вопросы (FAQ)
В чем разница между L2-петлей (петлей коммутации) и L3-петлей (петлей маршрутизации)?
L2-петля в Ethernet мгновенно размножает Broadcast-кадры (Broadcast Storm), так как у L2-кадра нет поля TTL, и кладет сеть за секунды. В L3-петле пакеты не размножаются и гарантированно умирают по истечении TTL (максимум 64-255 хопов).
Что означает ICMP Type 11 Code 0?
Код 0 указывает на 'Time to Live exceeded in transit' — TTL пакета достиг нуля при транзитной передаче через маршрутизатор.
Почему traceroute показывает звездочки '***' на месте некоторых хопов петли?
Многие маршрутизаторы имеют встроенный механизм rate-limiting для генерации ICMP сообщений (например, 'ip icmp rate-limit unreachable'), чтобы защитить свой CPU от перегрузки.
Как протокол BGP защищает сеть от L3-петель?
BGP использует атрибут AS_PATH. Если маршрутизатор видит в полученном анонсе номер собственной автономной системы (AS), он немедленно отбрасывает такой маршрут (AS-Path Loop Prevention).