В данной статье мы разберем способы активации/деактивации EIGRP на интерфейсах, а также научимся настраивать таймеры протокола EIGRP.
Топология сети:
Hello и Hold-интервалы
EIGRP использует пакеты приветствия в напрямую подключенных каналах для обнаружения маршрутизаторов с включенной поддержкой EIGRP. Пакеты приветствия используются маршрутизаторами для создания отношений смежности между устройствами EIGRP.
Hello-пакеты отправляются как групповые рассылки для IPv4, использую в качестве адреса назначения адрес групповой рассылки 224.0.0.10.
В EIGRP пакеты приветствия также используются для поддержания установленных отношений смежности. EIGRP-роутер считает, что пока поступают hello-пакеты от соседнего маршрутизатора, соседний роутер и его маршруты остаются работоспособными.
Протокол EIGRP использует таймер удержания (hold-интервал), чтобы определить максимальное время ожидания роутером получения следующего пакета приветствия, прежде чем соседний маршрутизатор будет считаться недоступным. По умолчанию hold-таймер втрое больше hello-интервала. В большинстве сетей стандартными значениями для таймера приветствия и удержания считаются 5 и 15 секунд соответственно. По истечении времени удержания EIGRP объявляет маршрут неактивным и алгоритм DUAL выполняет поиск нового пути, отправляя соответствующие запросы.
Для того, чтобы изменить стандартные значения таймеров, нужно в режиме конфигурации интерфейса выполнить:
Router(config-if)#ip hello-interval eigrp as-number seconds
Router(config-if)#ip hold-time eigrp as-number seconds
Значения seconds для обоих интервалов может быть в промежутке от 1 до 65535 секунд.
Выставим между R1 и R2 таймеры 1 и 3, а между R2 и R3 10 и 30:
R1:
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int s1/0
R1(config-if)#ip hello-interval eigrp 100 1
R1(config-if)#ip hold-time eigrp 100 3
R1(config-if)#end
R2:
R2#conf t
R2(config)#int s1/0
R2(config-if)#ip hello-interval eigrp 100 1
R2(config-if)#ip hold-time eigrp 100 3
R2(config)#int s1/1
R2(config-if)#ip hello-interval eigrp 100 10
R2(config-if)#ip hold-time eigrp 100 30
R2(config-if)#end
R3:
R2(config)#int s1/1
R2(config-if)#ip hello-interval eigrp 100 10
R2(config-if)#ip hold-time eigrp 100 30
R2(config-if)#end
Проверить настройки таймеров можно, используя команду show ip eigrp interfaces detail в привилегированном режиме:
R1:
R1#show ip eigrp interfaces detail
EIGRP-IPv4 Interfaces for AS(100)
Xmit Queue PeerQ Mean Pacing Time Multicast Pending
Interface Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer Routes
Se1/0 1 0/0 0/0 19 0/16 96 0
Hello-interval is 1, Hold-time is 3
Split-horizon is enabled
Next xmit serial
Packetized sent/expedited: 7/1
Hello's sent/expedited: 534/2
Un/reliable mcasts: 0/0 Un/reliable ucasts: 6/8
Mcast exceptions: 0 CR packets: 0 ACKs suppressed: 0
Retransmissions sent: 0 Out-of-sequence rcvd: 0
Topology-ids on interface - 0
Authentication mode is not set
Et0/0 0 0/0 0/0 0 0/0 0 0
Hello-interval is 5, Hold-time is 15
Split-horizon is enabled
Next xmit serial
Packetized sent/expedited: 0/0
Hello's sent/expedited: 140/1
Un/reliable mcasts: 0/0 Un/reliable ucasts: 0/0
Mcast exceptions: 0 CR packets: 0 ACKs suppressed: 0
Retransmissions sent: 0 Out-of-sequence rcvd: 0
Topology-ids on interface - 0
R2:
R2#sh ip eigrp interfaces detail
EIGRP-IPv4 Interfaces for AS(100)
Xmit Queue PeerQ Mean Pacing Time Multicast Pending
Interface Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer Routes
Se1/0 1 0/0 0/0 14 0/16 80 0
Hello-interval is 1, Hold-time is 3
Split-horizon is enabled
Next xmit serial
Packetized sent/expedited: 6/0
Hello's sent/expedited: 518/2
Un/reliable mcasts: 0/0 Un/reliable ucasts: 8/7
Mcast exceptions: 0 CR packets: 0 ACKs suppressed: 0
Retransmissions sent: 0 Out-of-sequence rcvd: 0
Topology-ids on interface - 0
Authentication mode is not set
Se1/1 1 0/0 0/0 25 0/15 123 0
Hello-interval is 10, Hold-time is 30
Split-horizon is enabled
Next xmit serial
Packetized sent/expedited: 10/0
Hello's sent/expedited: 110/3
Un/reliable mcasts: 0/0 Un/reliable ucasts: 6/11
Mcast exceptions: 0 CR packets: 0 ACKs suppressed: 1
Retransmissions sent: 0 Out-of-sequence rcvd: 0
Topology-ids on interface - 0
Authentication mode is not set
Et0/0 0 0/0 0/0 0 0/0 0 0
Hello-interval is 5, Hold-time is 15
Split-horizon is enabled
Next xmit serial
Packetized sent/expedited: 0/0
Hello's sent/expedited: 152/1
Un/reliable mcasts: 0/0 Un/reliable ucasts: 0/0
Mcast exceptions: 0 CR packets: 0 ACKs suppressed: 0
Retransmissions sent: 0 Out-of-sequence rcvd: 0
Topology-ids on interface - 0
Authentication mode is not set
Аналогичная ситуация на R3.
EIGRP-интерфейсы и команда passive-interface
Как видно выше, кроме интерфейсов, напрямую смотрящих в сторону EIGRP-соседа, также указаны интерфейсы, смотрящие в сторону локальной сети. А это означает, что hello-пакеты также анонсируются в эту сторону. Оставлять конфигурацию сети в таком виде крайне нежелательно, поскольку потенциальный злоумышленник может воспользоваться этим изъяном, и, используя подложного EIGRP-соседа в локальной сети, направить некорректные маршруты в нашу сеть.
Для того, чтобы избежать этого, нужно на всех роутерах отметить интерфейсы, смотрящие в сторону локальной сети, как пассивные. Делается это при помощи команды passive-interface в режиме конфигурации EIGRP.
Есть 2 способа настройки пассивных интерфейсов:
Способ 1: Объявить все интерфейсы пассивными по умолчанию, включив нужные интерфейсы. Сделаем это на примере R2:
R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#router eigrp 100
R2(config-router)#passive-interface default
*Nov 30 18:32:35.681: %DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 1.1.1.1 (Serial1/0) is down: interface passive
*Nov 30 18:32:35.681: %DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 2.2.2.2 (Serial1/1) is down: interface passivea
R2(config-router)#no passive-interface s1/0
R2(config-router)#no passive-interface s1/1
*Nov 30 18:32:42.338: %DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 1.1.1.1 (Serial1/0) is up: new adjacency
*Nov 30 18:32:43.881: %DUAL-5-NBRCHANGE: EIGRP-IPv4 100: Neighbor 2.2.2.2 (Serial1/1) is up: new adjacency
R2(config-router)#end
Как видим выше, после ввода команды passive-interface default существующие eigrp-соседства оказались разрушенными по причине деактивации интерфейсов. Но, после того, как мы активировали каждый интерфейс по отдельности (используя no passive-interface interface), отношения смежности снова установились. Проверим активные EIGRP-интерфейсы:
R2#sh ip eigrp interfaces detail
EIGRP-IPv4 Interfaces for AS(100)
Xmit Queue PeerQ Mean Pacing Time Multicast Pending
Interface Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer Routes
Se1/0 1 0/0 0/0 29 0/15 143 0
Hello-interval is 1, Hold-time is 3
Split-horizon is enabled
Next xmit serial
Packetized sent/expedited: 10/1
Hello's sent/expedited: 1159/3
Un/reliable mcasts: 0/0 Un/reliable ucasts: 11/11
Mcast exceptions: 0 CR packets: 0 ACKs suppressed: 0
Retransmissions sent: 0 Out-of-sequence rcvd: 0
Topology-ids on interface - 0
Authentication mode is not set
Se1/1 1 0/0 0/0 31 0/15 147 0
Hello-interval is 10, Hold-time is 30
Split-horizon is enabled
Next xmit serial
Packetized sent/expedited: 13/0
Hello's sent/expedited: 175/4
Un/reliable mcasts: 0/0 Un/reliable ucasts: 7/14
Mcast exceptions: 0 CR packets: 0 ACKs suppressed: 2
Retransmissions sent: 0 Out-of-sequence rcvd: 0
Topology-ids on interface - 0
Authentication mode is not set
Отлично, теперь hello-пакеты в сторону локальной сети не отправляются.
Способ 2: принудительно деактивировать интерфейсы, на которых не предусмотрено установление EIGRP-соседства:
После ввода в режиме настройки eigrp команды network network_number wildcard, интерфейс, на котором терминируется сеть network_number, становится активным, рассылая hello-пакеты через этот порт. В случае с интерфейсом E0/0 на R1, нужно просто принудительно этот интерфейс сделать пассивным:
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#router eigrp 100
R1(config-router)#passive-interface e0/0
R1(config-router)#end
Проверим активные интерфейсы:
R1#show ip eigrp interfaces detail
EIGRP-IPv4 Interfaces for AS(100)
Xmit Queue PeerQ Mean Pacing Time Multicast Pending
Interface Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer Routes
Se1/0 1 0/0 0/0 26 0/15 131 0
Hello-interval is 1, Hold-time is 3
Split-horizon is enabled
Next xmit serial
Packetized sent/expedited: 10/1
Hello's sent/expedited: 1675/3
Un/reliable mcasts: 0/0 Un/reliable ucasts: 10/12
Mcast exceptions: 0 CR packets: 0 ACKs suppressed: 0
Retransmissions sent: 0 Out-of-sequence rcvd: 0
Topology-ids on interface - 0
Authentication mode is not set
Как видно, оба способа прекрасно работают. В крупных сетях чаще применяется первый вариант, поскольку он точно не позволит лишнему трафику уходить через «левые» интерфейсы, пресекая возможность перехвата EIGRP-пакетов злоумышленниками.