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-пакетами, а подключенные сети на них попадают в таблицу топологии
Источники маршрутной информации
Проверка интерфейсов
Отобразить все интерфейсы EIGRP, кроме пассивных:
show ip eigrp interfaces (старый синтаксис)
show eigrp address-family ipv4 interfaces (новый синтаксис)
Интерфейс может отсутствовать в списке по трем причинам:
выключен
помечен как passive
IP-адрес на нем не попадает под условие команды network
Проверка соседей
Отобразить установленные соседства
show ip eigrp neighbors (старый синтаксис)
show eigrp address-family ipv4 neighbors (новый синтаксис)
Некоторые проблемы, влияющие на установление соседства:
Несовпадение номеров AS
Несовпадение адресов сетей для primary и secondary адресов
Несовпадение К-коэффицентов метрики
ACL, запрещающий протокол 88
Недовключенный EIGRP на интерфейсах между соседями
Проверка топологии
Отобразить таблицу топологии:
show ip eigrp topology <X.X.X.X/X>(старый синтаксис)
show ip eigrp address-family ipv4 topology (новый синтаксис)
По умолчанию показывает только маршруты, удовлетворяющие FC
ключ all показывает вообще все полученные от соседей маршруты
Проверка таблицы маршрутизации
Отобразить только маршруты EIGRP: show ip route eigrp
В таблице маршрутизации запоминаются свойства EIGRP
Балансировка в EIGRP
EIGRP может добавить в таблицу маршрутизации маршруты, CD которых отличается незначительно от самого выгодного маршрута
В таблицу маршрутизации могут попасть только Feasible Successor'ы
До 4 маршрутов, параметром maximum-paths можно задать 1-32 (ранее 16)
Задается мультипликатор допустимого расхождения метрики
По умолчанию - 1 (расхождение не допускается), Equal Cost Load Balancing
Команда variance <1-127> в настройке EIGRP, Unequal Cost Load Balancing
Пассивные интерфейсы
Если интерфейс помечен пассивным, но включен в EIGRP:
Пакеты Hello не отправляются, соседство не устанавливается
Подключенные сети попадают в таблицу топологии
Рекомендуется включать на пользовательских интерфейсах
Можно пометить пассивными все интерфейсы по умолчанию, а затем явно задать интерфейсы, на которых требуется соседство
Автосуммирование
Выключено по умолчанию, начиная с IOS версии 15.0(1)М
Включено по умолчанию на старых версиях IOS, вызывает проблемы!
Соседу посылается только классовая сеть (но не ее подсети из таблицы топологии), если сосед находится в другой классовой сети
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 вручную
Last updated