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

Значения таймеров по умолчанию (рекомендуется)

Тип канала / Пропускная способностьСреда передачиИнтервал HelloHold Timer
1.544 Mbps или меньшеMultipoint Frame Relay60 seconds180 seconds
Больше 1.544 MbpsT1, Ethernet5 seconds15 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

Если сеть не функционирует:

  1. Пропинговать соседей
  2. Неправильно настроены интерфейсы, неправильно настроенные интерфейсы соседа
  3. Неправильно указаны сети, учавствующие в работе протокола EIGRP (распространяемые)
  4. Прописаны лишние passive интерфейсы
  5. У всех маршрутизаторов совпадает номер автономной системы
  6. У всех маршрутизаторов совпадают коэффициенты, использующиеся при вычислении метрики до сети
  7. Таймеры Hello и Hold на всех интерфейсах всех маршрутизаторов непротиворечивы

Таблица соседей:

R# show ip eigrp neighbors
R# show ipv6 eigrp neighbors

Таблица маршрутизации

R# show ip route
R# show ipv6 route

Настройка протокола

R# show ip protocols
R# show ipv6 protocols

Интерфейсы EIGRP, участвующие в работе протокола определяются из команды network

R# show ip eigrp interfaces
R# show ipv6 eigrp interfaces

Конфликт механизма балансировки нагрузки и механизма Объединения сетей

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

Решение: либо не допускаем такую ситуацию либо отключаем объединение сетей

В IPv6 такая ситуация невозможна