Cisco %TUN-5-RECURDOWN: Recursive routing loop on Tunnel — исправление
Интерфейс GRE/mGRE постоянно флапает (переходит в состояние Down и сразу в Up). В логе появляется сообщение %TUN-5-RECURDOWN: Tunnel1 down due to recursive routing loop. Динамические протоколы (OSPF/EIGRP/BGP) поверх туннеля разрывают соседство каждые несколько секунд.
1. Механизм возникновения рекурсивной петли
Ошибка возникает, когда маршрут к tunnel destination (внешнему публичному адресу удаленной стороны) изучается через сам этот Tunnel1 интерфейс. Маршрутизатор перенаправляет инкапсулированный пакет внутрь туннеля, что вызывает логический дедлок ядра и отключение интерфейса.
2. Проверка маршрута до Tunnel Destination
show running-config interface Tunnel1 | include tunnel destination
show ip route <IP_TUNNEL_DESTINATION>Если в выводе show ip route указан выходной интерфейс Tunnel1 — маршрутизация зациклена.
3. Решение 1: Статический перманентный маршрут на внешний адрес через физический WAN
configure terminal
ip route <IP_TUNNEL_DESTINATION> 255.255.255.255 GigabitEthernet0/0/0 <WAN_GATEWAY_IP>
end4. Решение 2: Фильтрация анонсов внешних адресов в динамических протоколах
Исключите внешние адреса туннельных endpoints из сетей, анонсируемых через OSPF/EIGRP/BGP:
! Пример для OSPF:
configure terminal
router ospf 1
no network <WAN_IP_SUBNET> <WILDCARD> area 0
network 10.0.0.0 0.0.0.3 area 0 # Анонсировать только внутреннюю сеть туннеля
end5. Решение 3: Изоляция внешнего транспорта в отдельный VRF (Front-Door VRF / FVRF)
Лучший архитектурный способ, полностью исключающий возникновение петель:
configure terminal
vrf definition INTERNET
address-family ipv4
exit-address-family
!
interface GigabitEthernet0/0/0
vrf forwarding INTERNET
ip address 203.0.113.2 255.255.255.0
!
interface Tunnel1
tunnel vrf INTERNET
tunnel source GigabitEthernet0/0/0
tunnel destination 198.51.100.2
ip address 10.10.10.1 255.255.255.252
end Частые вопросы (FAQ)
Почему туннель сам поднимается после падения через RECURDOWN?
Когда интерфейс туннеля падает (Down), динамический маршрут через него исчезает из таблицы RIB. Ядро снова видит маршрут к tunnel destination через физический WAN и поднимает туннель (Up), после чего цикл повторяется.
Что такое FVRF (Front-Door VRF)?
Это разделение плоскостей маршрутизации: транспортные внешние пакеты коммутируются в выделенном VRF (INTERNET), а расшифрованный внутренний трафик — в глобальной таблице (Global VRF).
Поможет ли увеличение tunnel keepalive?
Нет. Проблема носит фундаментальный логический характер маршрутизации RIB/FIB, и изменение таймеров keepalive не устраняет дедлок.
Может ли BGP анонс 0.0.0.0/0 вызвать RECURDOWN?
Да, если до построения туннеля маршрут по умолчанию шел через провайдера, а после установления BGP поверх туннеля дефолтный маршрут переключился в туннель.