Cisco, EIGRP: что делать, когда отваливается сосед

На одном загруженном канале наблюдалось такое явление:

Apr 13 08:07:54.955: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor xx.x.x.xx (Tunnel62) is down: Interface Goodbye received
Apr 13 08:07:54.955: Going down: Peer xx.x.x.xx total=9 stub 9 template=0, iidb-stub=0 iid-all=0
Apr 13 08:07:54.955: DUAL: linkdown: start - xx.x.x.xx via Tunnel62
Apr 13 08:07:54.955: Peer xx.x.x.xx going down

Таким образом, пропадало соседство по EIGRP и вместе с ним — маршруты. Что такое Goodbye? Почитаем, например, Cisco IOS IP Configuration Guide.

The goodbye message is a feature designed to improve EIGRP network convergence. The goodbye message is broadcast when an EIGRP routing process is shutdown to inform adjacent peers about the impending topology change. This feature allows supporting EIGRP peers to synchronize and recalculate neighbor relationships more efficiently than would occur if the peers discovered the topology change after the hold timer expired.

Этот hold timer и goodbye message тесно связаны, вот небольшая иллюстрация. Решение будет заключаться в том, чтобы увеличить значение таймера. О нем можно прочитать следующее:

You can configure the hold time on a specified interface for a particular EIGRP routing process designated by the autonomous system number. The hold time is advertised in hello packets and indicates to neighbors the length of time they should consider the sender valid. The default hold time is three times the hello interval, or 15 seconds.

Очевидно, 15 секунд — мало; три раза пропадает hello-пакет и до свидания. Поставим 60 на интерфейсах с обеих сторон (в моем случае это туннельные интерфейсы, а EIGRP-процесс имеет номер 100).

router(config)#int tun62
router(config-if)#ip hold-time eigrp 100 60

Посмотрим, как это выглядит. Значение Hold не должно падать до слишком низких значений, но делать его слишком большим тоже неправильно, в этом случае маршрутизаторы не смогут оперативно реагировать на изменения топологии, и смысл динамической маршрутизации несколько затеряется.

router#show ip eigrp neighbors
IP-EIGRP neighbors for process 100
H   Address    Interface   Hold Uptime   SRTT   RTO  Q  Seq
                           (sec)         (ms)       Cnt Num
4   xx.x.x.xx  Tu62        56   16:51:07   47   570  0  4