EIGRP Automatic Summarization
Топология
Настройки будут рассматриваться на примере следующей топологии сети:


Экономим записи в таблице маршрутизации, объединяя множество подсетей в сеть с меньшей маской и делимся “обобщенной сетью”, а не реально существующими с другими маршрутизаторами.
До включения объединения маршрутов таблица маршрутизации на R2 будет выглядеть так (топология):
R3# show ip route eigrp
172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
D 172.16.1.0/24 [90/2170112] via 192.168.10.5, 02:21:10, Serial0/0/0
D 172.16.2.0/24 [90/3012096] via 192.168.10.9, 02:21:10, Serial0/0/1
D 172.16.3.0/30 [90/41024000] via 192.168.10.9, 02:21:10, Serial0/0/1
[90/41024000] via 192.168.10.5, 02:21:10, Serial0/0/0
После следующим образом:
R3# show ip route eigrp
D 172.16.0.0/16 [90/2170112] via 192.168.10.5, 00:12:05, Serial0/0/0
192.168.10.0/24 is variably subnetted, 5 subnets, 3 masks
D 192.168.10.0/24 is a summary, 00:11:43, Null0
Проверка, включено ли объединения сетей
R# show ip protocols
Включение/отключение автоматического объединения сетей
R(config)# router eigrp <autonomous-system>
R(config-router)# [no] auto-summary
- autonomous-system - номер процессе eigrp
Пример включения
R1(config)# router eigrp 1
R1(config-router)# auto-summary
R1(config-router)#
*Jan 9 19:40:19.342: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor
192.168.10.6 (Serial0/0/1) is resync: summary configured
*Jan 9 19:40:19.342: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor
192.168.10.6 (Serial0/0/1) is resync: summary up, remove components
*Jan 9 19:41:03.630: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor
192.168.10.6 (Serial0/0/1) is resync: peer graceful-restart
R1# show ip protocols
*** IP Routing is NSF aware ***
Routing Protocol is "eigrp 1"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP-IPv4 Protocol for AS(1)
Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
<output omitted>
Automatic Summarization: enabled
192.168.10.0/24 for Gi0/0, Se0/0/0
Summarizing 2 components with metric 2169856
172.16.0.0/16 for Se0/0/1
Summarizing 3 components with metric 2816
Особенности работы автоматического объединения сетей
Распространение маршрутов
При включенной настройке в EIGRP работает правило:
Не отправлять информацию об объединенных сетях через интерфейсы, адреса которых входят в эту объединенную сеть
Иллюстрирует это правило картинки

Если на R1 включено автоматическое объединение сетей, информация о сети 192.168.10.0/30, объединенной в 192.168.10.0/24 (класс C) будет распространяться через интерфейсы S0/0/0 и G0/0 и не будет через s0/0/1, так как на s0/0/1 настроен IP-адрес 192.168.10.5, входящий в объединенную сеть 192.168.10.0/24
Таблица топологии
Включение автоматического объединения маршрутов лучше включать на “неразорванных” сетях, так как иначе в таблицы маршрутизации могут записываться неоптимальные маршруты:
На примере (топологии)
Если на R1 и R2 включены автоматические объединение сетей, информацию о сетях 172.16.1.0/24 с R1 и 172.16.2.0/24 c R2 приходят в объединенном виде 172.16.0.0/16 (класс ) на маршрутизатор R3. В таблицу топологии R3 запишет маршрут с лучшей метрикой (через R1)
R3# show ip route eigrp
D 172.16.0.0/16 [90/2170112] via 192.168.10.5, 00:12:05, Serial0/0/0
192.168.10.0/24 is variably subnetted, 5 subnets, 3 masks
D 192.168.10.0/24 is a summary, 00:11:43, Null0
В таблице топологии
R3при этом будет находится и альтернативный маршрут черезR2
R3# show ip eigrp topology all-links
P 172.16.0.0/16, 1 successors, FD is 2170112, serno 9
via 192.168.10.5 (2170112/2816), Serial0/0/0
via 192.168.10.9 (3012096/2816), Serial0/0/1
Положим, что на R3 придет пакет с IP-адресом назначения в сети 172.168.2.0/24. R3, воспользовавшись своей таблице маршрутизации, направит пакет к R1. Хотя оптимальнее было бы сразу отправить пакет R2. Если бы автоматическое объединение сетей было отключено, такой ситуации бы не произошло
Интерфейс Null0
Если в сети используется автоматическое объединение маршрутов, то маршрутизатору, который получил объединенную сеть нельзя точно сказать, существует ли маршрут до сети с IP-адресом назначения обрабатываемого пакета (ему прислали объединенный ответ). Такой маршрутизатор отошлет пакет по объединенному маршруту. Другие маршрутизаторы могут делать аналогично и так может продолжаться, пока не истечет ttl пакета:
Пример петли при отсутствии Null0 интерфейса:

R1распространил маршрут по умолчаниюR2распространил объединенный объединенную сеть172.16.0.0/16. При этом он сам знает только маршруты до сетей172.16.1.0/24,172.16.2.0/24,172.16.3.0/24)
Положим на R1 пришел паке с IP-адресом назначения до несуществующей сети 172.16.4.0. Он направил ее R2. R2, в свою очередь, перенаправит R1 и так далее
Чтобы избежать ситуацийs, когда приходит пакет с IP-адресом назначения, находящемся в несуществующей сети, придумали виртуальный интерфейс Null0. Он добавляется при наличии 3 условий:
- Включено автоматическое объединение
- По крайней мере одна подсеть была получена через EIGRP
- Существует две или более команды сетевого маршрутизатора EIGRP ( воппрос что за условие)
Пример, как проблему решает Null0 интерфейс:

R1распространил маршрут по умолчаниюR2распространил объединенный объединенную сеть172.16.0.0/16. При этом он сам знает только маршруты до сетей172.16.1.0/24,172.16.2.0/24,172.16.3.0/24)
Положим на R1 пришел паке с IP-адресом назначения до несуществующей сети 172.16.4.0. Он направил ее R2. R2 отбрасывает этот пакет (пересылает в Null0)
В таблицах маршрутизации при этом появляются соответствующие записи
R1# show ip route
172.16.0.0/16 is variably subnetted, 6 subnets, 4 masks
D 172.16.0.0/16 is a summary, 00:03:06, Null0
C 172.16.1.0/24 is directly connected, GigabitEthernet0/0
L 172.16.1.1/32 is directly connected, GigabitEthernet0/0
D 172.16.2.0/24 [90/40512256] via 172.16.3.2, 00:02:52, Serial0/0/0
C 172.16.3.0/30 is directly connected, Serial0/0/0
L 172.16.3.1/32 is directly connected, Serial0/0/0
D 192.168.10.0/24 [90/2170112] via 192.168.10.6, 00:02:51, Serial0/0/1
192.168.10.0/24 is variably subnetted, 4 subnets, 3 masks
D 192.168.10.0/24 is a summary, 00:02:52, Null0
C 192.168.10.4/30 is directly connected, Serial0/0/1
D 192.168.10.8/30 [90/3523840] via 192.168.10.6, 00:02:59, Serial0/0/1
Default static route
Важно корректно распространить маршруты до сетей, не входящих в настраиваемую сеть и доступных через интернет-провайдера (маршруты по умолчанию). Топология в качестве примера сохраняется

На R2 в данном случае настроен статический маршрут по умолчанию до маршрутизатора интернет-провайдера. Задача - распространить этот маршрут внутри всей сети
Распространить эту информацию (только статический маршрут) можно командами:
R(config)# router eigrp autonomous-system
R(config-router)# redistribute staticПример настройки
R2(config)# ip route 0.0.0.0 0.0.0.0 serial 0/1/0
R2(config)# router eigrp 1
R2(config-router)# redistribute static
В таблице появится маршрут по умолчанию
R2# show ip route | include 0.0.0.0
Gateway of last resort is 0.0.0.0 to network 0.0.0.0
S* 0.0.0.0/0 is directly connected, Serial0/1/0
Посмотреть, что маршрутизатор по протоколу EIGRP распространяет настроенные статические маршруты можно командой
show ip protocolsПример
R2# show ip protocols
*** IP Routing is NSF aware ***
Routing Protocol is "eigrp 1"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
Redistributing: static <--------------- Вот здесь
EIGRP-IPv4 Protocol for AS(1)
На распространенных маршрутизаторах распространенный статический маршрут будет выглядеть тогда следующим образом в таблицах маршрутизации:
R1:
R1# show ip route | include 0.0.0.0
Gateway of last resort is 192.168.10.6 to network 0.0.0.0
D*EX 0.0.0.0/0 [170/3651840] via 192.168.10.6, 00:25:23, Serial0/0/1
R3:
R3# show ip route | include 0.0.0.0
Gateway of last resort is 192.168.10.9 to network 0.0.0.0
D*EX 0.0.0.0/0 [170/3139840] via 192.168.10.9, 00:27:17, Serial0/0/1
Расшифровка записи:
*- кандидат в маршрут по умолчанию (вероятно можно настроить, например, свой статический маршрут по умолчанию, который станет приоритетнее, чем распространенный по EIGRP)EX- Признак того, что сеть изучена вне домена EIGRP- Административное расстояние - 170, как для внешних маршрутов, а не 90, как для маршрутов, изученных протоколом EIGRP
Распространение маршрута по умолчанию в стеке ipv6 через EIGRP
Настраивается аналогично стеку ipv4
Пример
Настройка:
R2(config)# ipv6 route ::/0 serial 0/1/0
R2(config)# ipv6 router eigrp 2
R2(config-rtr)# redistribute static
Просмотр, что пришло на соседние маршрутизаторы:
R1# show ipv6 route
IPv6 Routing Table - default - 12 entries
Codes: C - Connected, L - Local, S - Static,
U - Per-user Static route
B - BGP, R - RIP, I1 - ISIS L1, I2 - ISIS L2
IA - ISIS interarea, IS - ISIS summary, D - EIGRP, EX - EIGRP external
ND - ND Default, NDP - ND Prefix, DCE - Destination, NDF - Redirect
O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
EX ::/0 [170/3523840]
via FE80::3, Serial0/0/1
Настройка пропускной способности bandwidth
На интерфейсах можно настроить процент пропускной способности канала, который протокол EIGRP не должен превышать при своей работе, отправляя служебные пакеты через интерфейсы в этот канал

По умолчанию 50%
Настройка этой доли производится на интерфейсах командами
Для IPv4:
R(config-if)# ip bandwidth-percent eigrp <AS number> <percent>Для IPv6:
R(config-if)# ipv6 bandwidth-percent eigrp <AS number> <percent>- AS number - номер автономной системы (процесса eigrp)
- percent - доля (в процентах) пропускной способности канала, которую разрешается использовать EIGRP для своей работы
Доля вычисляется относительно логически установленной (а не реальной физической) пропускной способности интерфейса
Пример настройки
Для IPv4:
R1(config)# interface serial0/0/0
R1(config-if)# ip bandwidth-percent eigrp 1 40Для IPv6:
R1(config)# interface serial0/0/0
R1(config-if)# ipv6 bandwidth-percent eigrp 2 40Настройка Hello и Hold timers
Происходит на интерфейсах
Настройка Hello для IPv4:
R(config-if)# ip hello-interval eigrp <AS number> <seconds>
Настройка Hold для IPv4:
R(config-if)# ip hold-time eigrp <AS number> <seconds>Настройка Hello для IPv6:
R(config-if)# ipv6 hello-interval eigrp <AS number> <seconds>Настройка Hold для IPv6:
R(config-if)# ipv6 hold-time eigrp <AS number> <seconds>- AS number - номер автономной системы (процесса eigrp)
- seconds - значение таймера в секундах
Пример настройки:
Для IPv4:
R1(config)# interface s0/0/0
R1(config-if)# ip hello-interval eigrp 1 50
R1(config-if)# ip hold-time eigrp 1 150Для IPv46:
R1(config)# interface serial 0/0/0
R1(config-if)# ipv6 hello-interval eigrp 2 50
R1(config-if)# ipv6 hold-time eigrp 2 150Значения таймеров по умолчанию (рекомендуется)
| Тип канала / Пропускная способность | Среда передачи | Интервал Hello | Hold Timer |
|---|---|---|---|
| 1.544 Mbps или меньше | Multipoint Frame Relay | 60 seconds | 180 seconds |
| Больше 1.544 Mbps | T1, Ethernet | 5 seconds | 15 seconds |
Балансировка нагрузки
Для IPv4 и IPv6 стеков настраивается аналогично.
Если маршруты до одной и той же сети имеют одинаковую метрику, можно включить балансировку нагрузки до этой сети командой. По умолчанию балансировка включена. Максимальное число путей - 4
R(config-router)# maximum-paths <value>- value - число возможных путей (воркеров).

Пример
R3# show ip route eigrp
<output omitted>
Gateway of last resort is 192.168.10.9 to network 0.0.0.0
D*EX 0.0.0.0/0 [170/3139840] via 192.168.10.9, 00:14:24, Serial0/0/1
172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
D 172.16.1.0/24 [90/2170112] via 192.168.10.5, 00:14:28, Serial0/0/0
D 172.16.2.0/24 [90/3012096] via 192.168.10.9, 00:14:24, Serial0/0/1
D 172.16.3.0/30 [90/41024000] via 192.168.10.9, 00:14:24, Serial0/0/1
[90/41024000] via 192.168.10.5, 00:14:24, Serial0/0/0
D 192.168.0.0/22 is a summary, 00:14:40, Null0
R3#Балансировка нагрузки между маршрутами с разными метриками
Unequal-Cost Load Balancing
Чтобы маршрут меньшей стоимости мог быть добавлен в таблицу маршрутизации и участвовать в балансировке, он должен соответствовать двум критериям:
- Маршрут должен быть беспетлевым, являться возможным преемником или иметь объявленное расстояние, которое меньше суммарного расстояния
- Метрика маршрута должна быть меньше метрики оптимального маршрута (преемника), помноженной на отклонение, настроенное на маршрутизаторе
Настройка отклонения(коэффициента балансировки) производится командой:
R(config-router)# variance <value>- value - Во сколько раз метрика добавляемого маршрута может быть хуже используемого маршрута до этой же сети. Целое число
Балансировка нагрузки для маршрутов с разной стоимостью по умолчанию выключена. Включается командой:
R(config-router)# traffic-share balancedПоиск и устранение неисправностей в работе EIGRP
Если сеть не функционирует:
- Пропинговать соседей
- Неправильно настроены интерфейсы, неправильно настроенные интерфейсы соседа
- Неправильно указаны сети, учавствующие в работе протокола EIGRP (распространяемые)
- Прописаны лишние passive интерфейсы
- У всех маршрутизаторов совпадает номер автономной системы
- У всех маршрутизаторов совпадают коэффициенты, использующиеся при вычислении метрики до сети
- Таймеры Hello и Hold на всех интерфейсах всех маршрутизаторов непротиворечивы
Таблица соседей:
R# show ip eigrp neighborsR# show ipv6 eigrp neighborsТаблица маршрутизации
R# show ip routeR# show ipv6 routeНастройка протокола
R# show ip protocolsR# show ipv6 protocolsИнтерфейсы EIGRP, участвующие в работе протокола определяются из команды network
R# show ip eigrp interfacesR# show ipv6 eigrp interfacesКонфликт механизма балансировки нагрузки и механизма Объединения сетей

Если на R1 и на R3 настроено объединение, R2, получив записи о маршрутах в одну и ту же объединенную сеть через 2 маршрута, может начать “балансировать” нагрузку. Это может привести к непредсказуемым результатам
Решение: либо не допускаем такую ситуацию либо отключаем объединение сетей
В IPv6 такая ситуация невозможна