7. EIGRP

Особенности

  • Разработан Cisco в 1993 году на основе протокола IGRP

    • Бесклассовая маршрутизация

    • Активное использование мультикаста (224.0.0.10 и FF02::A)

    • Использует RTP (Reliable Transport Protocol, вложение в IP 88)

    • Инкрементальные обновления для экономии трафика

    • DUAL: Diffusing Update Algorithm

  • Спецификации опубликованы в 2013 году, RFC 7868 - 2016 г.

  • В большинстве сценариев быстро отрабатывает изменения в сети

  • Позволяет выполнять балансировку при нескольких доступных маршрутах до сети, в том числе и неодинаковых

  • Гарантирует защиту от петель маршрутизации

Дистанционно-векторная природа EIGRP

  • Маршрутизаторы обмениваются векторами метрик для маршрутов

  • При получении маршрута от соседа маршрутизатор складывает полученный вектор метрик с вектором интерфейса до соседа

Компонент

Размер

Описание

Bandwidth

24 бита

Минимальная полоса пропускания среди транзитных интерфейсов

Delay

24 бита

Кумулятивная задержка на транзитных интерфейсах

Load

8 бит

Максимальная загрузка среди транзитных интерфейсов

Reliability

8 бит

Минимальная надежность среди транзитных интерфейсов

MTU

24 бита

Минимальный MTU среди транзитных интерфейсов

Hop Count

8 бит

Количество транзитных интерфейсов на маршруте

Jitter

TLV, 16xN бит

Кумулятивный Jitter на транзитных интерфейсах

Energy

TLV, 16xN бит

Кумулятивные затраты энергии на транзитных интерфейсах

Пакеты EIGRP

  • Используется мультикаст 224.0.0.10

  • Соседство устанавливается через обмен Hello пакетами

  • Обмен маршрутами осуществляется через:

    • Update (unicast вначале, затем multicast)

    • Acknowledgments (всегда unicast)

    • Query

    • Reply

  • В Hello пакетах используется Sequnce Number, на основании которого и осуществляется acknowledgement сообщения соседа

Категории маршрутов

  • Internal - маршруты, зародившиеся внутри автономной системы

    • AD = 90

  • External - маршруты, зародившиеся во внешних автономных системах, маршруты через редистрибуцию из других протоколов

    • AD = 170

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

  • Перед обменом маршрутами роутеры должны установить соседство (neighbor relationship) путем обмена сообщениями Hello

    • Сосед должен быть настроен непротиворечиво (Source IP подсеть, одинаковые значения множителей метрики, номер AS)

    • Таймер Hello по умолчанию: 5 секунд на каналах быстрее T1 и 60 секунд на медленных

    • HoldTime по умолчанию равен трехкратному таймеру Hello

    • Таймеры не обязаны совпадать

Таблица топологии

  • После установления соседства идет обмен маршрутами

  • Все полученные маршруты сохраняются в таблице топологии

Метрики EIGRP

  • У каждого маршрута есть метрика EIGRP (меньше = лучше)

    • не путать с метрикой RIB

  • Предшественник - IGRP Metric

    • 24 бита

    • функция от bandwidth, delay, reliabilty, load

    • модифицирующие коэффиценты К1-К5

  • EIGRP Classic Metric

    • 32 бита, та же функция, что у IGRP (x256)

  • EIGRP Wide Metric

    • 64 бита, механизм адаптации под 32-битные метрики RIB

    • функция от bandwidth, delay, reliability, load, energy, jitter

    • модифицирующие коэффиценты К1-К6

    • обратно совместима с Classic Metric

Классическая метрика

Расширенная метрика

  • Различает интерфейсы быстрее 10GE (BW>=10^7 kbps, DLY<=10nanos)

    • С классической метрикой BWmin=10^7/10^7=1, DLY=1

  • Результат не помещается в 32-бита

    • Для конвертации в метрику RIB нужно метрику EIGRP разделить на EIGRP_RIB_SCALE (по умолчанию 128, локальный косметический параметр)

  • Обратно совместима с классической метрикой

    • Не обязательно иметь поддержку Wide Metric во всей AS

Computed Distance и Reported Distance

  • EIGRP запоминает как анонсированные соседом параметры маршрута, так и вычисленные локальные параметры

  • Вычисляется как локальная метрика Computed Distance (CD), так и метрика анонсировавшего маршрут соседа Reported Distance (RD)

  • Из нескольких маршрутов до одной сети EIGRP:

    • считает лучшим (best path) тот, у которого CD меньше

    • с классической метрикой метрика равна CD

    • c расширенной метрикой равна CD/EIGRP_RIB_SCALE (default CD/128)

Feasible Distance и Feasibility Condition (DUAL)

  • Свойства маршрута (и CD как следствие) могут изменяться

  • Reported Distance (Advertised Distance) - расстояние до сети назначения, которое сообщает сосед

  • Маршрутизатор запоминает для каждого маршрута самую выгодную метрику (CD) за всю историю стабильной работы маршрута

    • Эта метрика называется Feasible Distance ("возможная метрика")

    • FD может уменьшится, но никогда не может увеличиться

  • Маршрут удовлетворяет условию Feasibility Condition, если RD<FD

    • Гарантированно не содержит петель

    • Может быть установлен в RIB

    • Если RD>=FD, сосед не может являться Feasible Successor, так как такое значение RD может обозначать петлю

  • Feasible Successor - сосед, предложивший попавший под FC маршрут

  • Successor - сосед, предложивший наилучший маршрут

Feasibilty Condition:

  • Feasible Distance < Reported Distance

    • Достаточное (но не обязательно необходимое) условие отсутствия петли

    • Если не один маршрут не удовлетворяет FC - запускается DUAL, обновляя FD

Базовая настройка EIGRP

  • Назначить одинаковый номер автономной системы на всех роутерах

  • Включить EIGRP на интерфейсах

    • Команда network задает условие ACL (использование маски не обязательно, без маски будет анонсироваться классовая сеть)

    • EIGRP включается на интерфейсе, если IP-адрес на нем попадает под ACL

  • На включенных интерфейсах начинается обмен Hello-пакетами, а подключенные сети на них попадают в таблицу топологии

Router(config)#router eigrp 65001
Router(config-router)#network 192.168.0.0 0.0.255.255
Router(config-router)#network 10.0.0.1 0.0.0.0

Источники маршрутной информации

Router#show ip protocols
Routing Protocol is "eigrp 65001"
  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(65001)
    Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
    Soft SIA disabled
    NSF-aware route hold timer is 240
    Router-ID: 1.1.1.1
    Topology : 0 (base) 
      Active Timer: 3 min
      Distance: internal 90 external 170
      Maximum path: 4
      Maximum hopcount 100
      Maximum metric variance 1

  Automatic Summarization: disabled
  Maximum path: 4
  Routing for Networks:
    1.1.1.1/32
    10.0.0.0/24
    192.168.1.0
  Routing Information Sources:
    Gateway         Distance      Last Update
    192.168.1.2           90      00:00:20
  Distance: internal 90 external 170
Router#show ip eigrp event

Проверка интерфейсов

  • Отобразить все интерфейсы EIGRP, кроме пассивных:

    • show ip eigrp interfaces (старый синтаксис)

    • show eigrp address-family ipv4 interfaces (новый синтаксис)

  • Интерфейс может отсутствовать в списке по трем причинам:

    • выключен

    • помечен как passive

    • IP-адрес на нем не попадает под условие команды network

Router#show ip eigrp interfaces
EIGRP-IPv4 Interfaces for AS(65001)
                              Xmit Queue   PeerQ        Mean   Pacing Time   Multicast    Pending
Interface              Peers  Un/Reliable  Un/Reliable  SRTT   Un/Reliable   Flow Timer   Routes
Et0/0                    1        0/0       0/0          10       0/2           50           0
Et0/1                    0        0/0       0/0           0       0/0            0           0
Lo0                      0        0/0       0/0           0       0/0            0           0

Проверка соседей

  • Отобразить установленные соседства

    • show ip eigrp neighbors (старый синтаксис)

    • show eigrp address-family ipv4 neighbors (новый синтаксис)

  • Некоторые проблемы, влияющие на установление соседства:

    • Несовпадение номеров AS

    • Несовпадение адресов сетей для primary и secondary адресов

    • Несовпадение К-коэффицентов метрики

    • ACL, запрещающий протокол 88

    • Недовключенный EIGRP на интерфейсах между соседями

Router#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(65001)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   192.168.1.2             Et0/0                    13 00:05:56   10   100  0  5

Проверка топологии

  • Отобразить таблицу топологии:

    • show ip eigrp topology <X.X.X.X/X>(старый синтаксис)

    • show ip eigrp address-family ipv4 topology (новый синтаксис)

  • По умолчанию показывает только маршруты, удовлетворяющие FC

    • ключ all показывает вообще все полученные от соседей маршруты

Router#show ip eigrp topology <all-links>
EIGRP-IPv4 Topology Table for AS(65001)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status 

P 172.16.0.0/24, 1 successors, FD is 307200
        via 192.168.1.2 (307200/281600), Ethernet0/0
P 10.0.0.0/24, 1 successors, FD is 281600
        via Connected, Ethernet0/1
P 192.168.1.0/24, 1 successors, FD is 281600
        via Connected, Ethernet0/0
P 2.2.2.2/32, 1 successors, FD is 409600
        via 192.168.1.2 (409600/128256), Ethernet0/0
P 1.1.1.1/32, 1 successors, FD is 128256
        via Connected, Loopback0

Проверка таблицы маршрутизации

  • Отобразить только маршруты EIGRP: show ip route eigrp

  • В таблице маршрутизации запоминаются свойства EIGRP

Router#show ip route eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      2.0.0.0/32 is subnetted, 1 subnets
D        2.2.2.2 [90/409600] via 192.168.1.2, 00:11:16, Ethernet0/0
      172.16.0.0/24 is subnetted, 1 subnets
D        172.16.0.0 [90/307200] via 192.168.1.2, 00:11:23, Ethernet0/0
Router#show ip route 172.16.0.1
Routing entry for 172.16.0.0/24
  Known via "eigrp 65001", distance 90, metric 307200, type internal
  Redistributing via eigrp 65001
  Last update from 192.168.1.2 on Ethernet0/0, 00:11:58 ago
  Routing Descriptor Blocks:
  * 192.168.1.2, from 192.168.1.2, 00:11:58 ago, via Ethernet0/0
      Route metric is 307200, traffic share count is 1
      Total delay is 2000 microseconds, minimum bandwidth is 10000 Kbit
      Reliability 255/255, minimum MTU 1500 bytes
      Loading 1/255, Hops 1

Балансировка в EIGRP

  • EIGRP может добавить в таблицу маршрутизации маршруты, CD которых отличается незначительно от самого выгодного маршрута

    • В таблицу маршрутизации могут попасть только Feasible Successor'ы

    • До 4 маршрутов, параметром maximum-paths можно задать 1-32 (ранее 16)

  • Задается мультипликатор допустимого расхождения метрики

    • По умолчанию - 1 (расхождение не допускается), Equal Cost Load Balancing

    • Команда variance <1-127> в настройке EIGRP, Unequal Cost Load Balancing

Router(config-if)#delay <1-16777215> (tens of microseconds)
Router(config-if)#bandwidth <1-10000000> (in kilobits)

Пассивные интерфейсы

  • Если интерфейс помечен пассивным, но включен в EIGRP:

    • Пакеты Hello не отправляются, соседство не устанавливается

    • Подключенные сети попадают в таблицу топологии

  • Рекомендуется включать на пользовательских интерфейсах

Router(config)#router eigrp 65001
Router(config-router)#passive-interface fa0/0
  • Можно пометить пассивными все интерфейсы по умолчанию, а затем явно задать интерфейсы, на которых требуется соседство

Router(config)#router eigrp 65001
Router(config-router)#passive-interface default
Router(config-router)#no passive-interface gi0/0

Автосуммирование

  • Выключено по умолчанию, начиная с IOS версии 15.0(1)М

    • Включено по умолчанию на старых версиях IOS, вызывает проблемы!

  • Соседу посылается только классовая сеть (но не ее подсети из таблицы топологии), если сосед находится в другой классовой сети

Router(config-router)#auto-summary
Router2(config)#do sh ip route eigrp

      1.0.0.0/32 is subnetted, 1 subnets
D        1.1.1.1 [90/409600] via 192.168.1.1, 00:31:26, Ethernet0/0
      10.0.0.0/24 is subnetted, 2 subnets
D        10.0.0.0 [90/307200] via 192.168.1.1, 00:31:26, Ethernet0/0
D        10.0.1.0 [90/307200] via 192.168.1.1, 00:00:15, Ethernet0/0

Router1(config-router)#auto-summary

Router2(config)#do sh ip route eigrp

D     1.0.0.0/8 [90/409600] via 192.168.1.1, 00:00:13, Ethernet0/0
D     10.0.0.0/8 [90/307200] via 192.168.1.1, 00:00:13, Ethernet0/0

EIGRP для IPv6

  • EIGRP - протокол, работающий поверх IP (как IPv4, так и IPv6)

    • При работе поверх IPv6 используется групповой адрес FF02::A

    • Работает с маршрутами того адресного семейства, поверх которого работает

    • Пиринг происходит с Link-Local адресами

    • Next-Hop также Link-Local адрес

  • Алгоритм работы для IPv6 не изменился

    • Перед началом работы EIGRP включается на интерфейсах

    • Устанавливается соседство

    • Алгоритм DUAL отправляет обновления с маршрутами, получает обновления от соседей, запоминает их и выбирает лучшие

  • Синтаксис команд общий для IPv4 и IPv6

Базовая настройка EIGRP для IPv6

  • Назначить одинаковый номер автономной системы на всех роутерах

    • Может не совпадать с номером AS, используемым для IPv4

  • Включить EIGRP на интерфейсах

    • Команды network больше нет, есть команда ipv6 eigrp <#AS> на интерфейсе

  • EIGRP не запустится без выбранного Router ID

    • Если нет ни одного адреса IPv4 - нужно задать Router ID вручную

Router(config)#ipv6 unicast-routing
Router(config)#ipv6 router eigrp 65001
Router(config)#no shutdown ! в зависимости от версии IOS
Router(config-rtr)#eigrp router-id 0.0.0.1
Router(config)#interface range Gi0/0, fa0/0-2
Router(config-int-range)#ipv6 eigrp 65001

Last updated