EIGRP * усовершенствованный дистанционно-векторный протокол динамической маршрутизации, разработанный компанией Cisco.
Это проприетарный протокол. Часть его спецификации открыли в 2013 году, но его реализацией все еще управляет Cisco.
Итак, чем хорош EIGRP?
Основные характеристики EIGRP:
Связь между таблицами.
Таблица маршрутизации (routing table) —RTP управляет процессом отправки и получения пакетов EIGRP.
RTP обеспечивает:
Все сообщения EIGRP инкапсулируются в IP-пакеты, номер EIGRP в поле protocol IP-пакета — 88.
EIGRP использует 5 типов сообщений:
Hello — маршрутизаторы используют hello-пакеты для обнаружения соседей. Пакеты отправляются multicast и не требуют подтверждения о получении.Update — содержится информация об изменении маршрутов. Они отправляются только маршрутизаторам, которых касается обновление. Эти пакеты могут быть отправлены конкретному маршрутизатору (unicast) или группе маршрутизаторов (multicast). Получение update-пакета подтверждается отправкой ACK.Query — когда маршрутизатор выполняет подсчет маршрута и у него нет feasible successor, он отправляет query-пакет своим соседям для того чтобы определить нет ли feasible successor для этого destination у них. Обычно query-пакеты отправляются multicast, но могут быть и unicast. Получение query-пакета подтверждается отправкой ACK получателем пакета.Reply — маршрутизатор отправляет reply-пакет в ответ на query-пакет. Reply-пакеты отправляются unicast тому, кто отправил query-пакет. Получение reply-пакета подтверждается отправкой ACK.ACK — пакет, который подтверждает получение пакетов update, query, reply. ACK-пакеты отправляются unicast и содержат в себе acknowledgment number. Фактически это hello-пакеты, которые не передают данных. Используется негарантированная доставка.Для установления отношений соседства EIGRP использует пакеты hello:
Для того чтобы маршрутизаторы стали соседями должны выполняться такие условия:
Маршрутизатор использует значения таймеров полученные от соседа.
Если на одном из маршрутизаторов изменены Hello или Hold time, то соседи этого маршрутизатора будут использовать эти значения. Для того чтобы сам маршрутизатор использовал другие значения, необходимо изменить таймер на соответствующем интерфейсе соседа.
Информация о всех обнаруженных соседях содержится в таблице соседей.
Таблица соседей (neighbor table) — список непосредственно присоединенных маршрутизаторов (на которых работает EIGRP) с которыми маршрутизатор установил отношения соседства. Одна таблица соседей существует для каждого PDM.
После того как маршрутизаторы стали соседями, они начинают обмениваться обновлениями (Update).
Эти пакеты могут быть отправлены конкретному маршрутизатору (unicast) или группе маршрутизаторов (multicast).
Процесс обмена обновлениями:
Обновления EIGRP:
Непериодические (Nonperiodic) — обновления отправляются не через регулярные интервалы времени, а при изменении топологии или метрики;Частичные (Partial) — в обновлениях передается не вся информация из таблицы маршрутизации, а только изменения;Ограниченные (Bounded) — обновления отправляются только задействованным маршрутизаторам.Diffusing Update Algorithm (DUAL) — логика которую использует EIGRP для вычисления новых маршрутов.
Терминология:
Advertised distance (AD), известная также как reported distance (RD) — стоимость расстояния между соседним маршрутизатором, который анонсирует маршрут, и сетью назначения.Feasible distance (FD) — стоимость расстояния от локального маршрутизатора до сети назначения = AD, которое анонсирует соседний маршрутизатор + стоимость расстояния между локальным маршрутизатором и соседним маршрутизатором.Successor — соседний маршрутизатор с путем без петель и с наименьшей стоимостью пути к сети назначения.Feasible successor — резервный маршрутизатор с путем без петель (AD feasible successor должно быть меньше чем FD текущего маршрута successor).Feasible condition — AD feasible successor должно быть меньше, чем FD текущего маршрута successor.Для изображенной топологии расписаны три маршрута от R1 через маршрутизаторы R2, R3 и R4 к сети хоста H2.
Возле каждого соединения подписана его стоимость.
| Соседний маршрутизатор | Роль соседнего маршрутизатора | Статус маршрута | FD | AD | Feasible condition |
|---|---|---|---|---|---|
| R2 | Не выбран | Не выбран | R1R2+R2R5 = 70 | R2R5 = 60 | Не выполняется |
| R3 | Feasible successor | Резервный маршрут | R1R3+R3R5 = 60 | R3R5 = 30 | Выполняется AD < FD (R3R5 < R1R4R5) |
| R4 | Successor | Лучший маршрут | R1R4+R4R5 = 50 | R4R5 = 30 | Лучший маршрут |
Таблица топологии (topology table) — список маршрутов выученных от каждого соседа.
Это правило обязательно должно соблюдаться для всех дистанционно-векторных протоколов.
Демонстрация этого правила есть в примерах в разделе Примеры настроек и демонстрация работы EIGRP.
В таблице топологии также хранится метрика, которую сообщает каждый сосед для каждого destination (AD) и метрика, которую локальный маршрутизатор будет использовать для того чтобы достигнуть destination через соседа (FD).
Таблица топологии обновляется, когда изменяется непосредственно присоединенный маршрут или интерфейс или когда соседний маршрутизатор сообщает об изменении маршрута.
Записи в таблице топологии могут находиться в двух состояниях: active и passive.
Маршрут находится в состоянии passive, когда маршрутизатор не выполняет пересчет маршрута, и в состоянии active — если выполняется пересчет маршрута.
Пересчет выполняется, когда для сети назначения нет feasible successor.
Маршрутизатор инициирует пересчет отправляя запрос (отправляет query packet) каждому соседнему маршрутизатору.
Если у соседа есть маршрут к сети назначения, то он отвечает (отправляет reply packet), если маршрута нет — сосед отправляет запрос своим соседям.
Маршрутизатор сравнивает все FD для достижения конкретной сети, выбирает маршрут с наименьшим FD и помещает его в таблицу маршрутизации.
В таблице топологии может хранится 6 маршрутов к сети получателя (основной и запасные).
Active Timer — интервал времени в течение которого маршрут может оставаться в состоянии active. Если таймер истечет до тех пор как будут получены все ответы от соседей (Reply), то маршрутизатор переводит маршрут в состояние stuck-in-active. Кроме того, разрываются отношения соседства с теми соседями, от которых не был получен ответ.Если в ответ на отправку любого multicast-пакета, который требует подтверждения о получении, не было отправлено подтверждение (ACK), то пакет будет передаваться unicast соседу, который не отвечает.
Если подтверждение не было получено после того как отправлено 16 unicast пакетов, то сосед считается неактивным.
Smooth round-trip time (SRTT) — время между отправкой пакета соседу и получением подтверждения от него. Измеряется в миллисекундах. Формула вычисления проприетарная.Multicast Flow Timer — максимальное значение интервала в секундах, в течение которого маршрутизатор будет ждать ACK пакета после отправки EIGRP-пакета на multicast адрес, прежде чем переключиться на unicast отправку. Вычисляется на основании SRTT, сама формула вычисления проприетарная.Retransmission timeout (RTO) — интервал между отправкой unicast-пакетов. Вычисляется на основании SRTT, сама формула вычисления проприетарная.Метрика EIGRP основана на таких 5 компонентах (по умолчанию используются только два):
По умолчанию для подсчета метрики используются bandwidth и delay.
Остальные критерии не рекомендуется использовать, так как это приведет к частым пересчетам маршрутов.
EIGRP подсчитывает метрику с использованием коэффициентов.
По умолчанию значения коэффициентов такие: K1 = K3 = 1, K2 = K4 = K5 = 0.
Общая метрика вычисляется при помощи значений bandwidth (пропускной способности) и delay (задержки). Используется следующая формула для вычисления значения bandwidth :
bandwidth = (10000000/bandwidth(i)) * 256
Где bandwidth(i) является наименьшей пропускной способностью (bandwidth) из всех исходящих интерфейсов по пути в сеть назначения представленная в килобитах.
Формула для вычисления значения delay:
delay = delay(i) * 256
где delay(i) является суммой всех задержек (delays) сконфигурированных на исходящих интерфейсах по пути в сеть назначения в десятках микросекунд (microseconds).
Задержка (delay) показываемая командой ip eigrp topology или show interface указана в микросекундах, соответственно это значение нужно поделить на 10 перед использованием в этой формуле.
EIGRP использует полученные значения при подсчете общей метрики.
При вычислении метрики, когда K5 = 0 (значение по умолчанию), используется такая формула:
Metric = (K1 * bandwidth) + [(K2 * bandwidth) / (256 - load)] + (K3 * delay)
Если значения коэффициентов K1, K2, K3 равны значениям по умолчанию, то формула превращается в такую:
Metric = bandwidth + delay
Если K5 не равно 0, то дополнительно выполняется такая операция:
Metric = metric * [K5 / (reliability + K4)]
Значения K-коэффициентов передаются в hello-пакетах.
Обычно не рекомендуется изменять эти коэффициенты.
EIGRP поддерживает несколько типов маршрутов, у каждого типа маршрута своё значение administrative distance:
internal – внутренние маршруты EIGRP. AD – 90,external – маршруты, перераспределенные в процесс EIGRP из других источников. AD – 170,summary – суммарные маршруты EIGRP. AD – 5 (по умолчанию, может быть любое - задается администратором при написании команды суммирования).Создание процесса EIGRP:
dyn1(config)# router eigrp <AS>
Номер автономной системы должен быть одинаковым на всех маршрутизаторах, которые должны обмениваться информацией по протоколу EIGRP.
Для того чтобы маршрутизаторы начали обмениваться информацией, необходимо включить EIGRP на интерфейсах.
Включение EIGRP на интерфейсах:
dyn1(config)# router eigrp 100 dyn1(config-router)# network <network> [wildcard mask]
Параметры команды network:
Команда network делает следующее:
Сеть интерфейса анонсируется только если интерфейс в состоянии up/up.
Команда network включает EIGRP на текущих интерфейсах и на всех следующих, которые появятся и совпадут с сетью, которая указана в команде network.
На схеме подписаны сети, которые используются и интерфейсы маршрутизаторов, которые находятся в этих сетях.
Четвертый октет во всех IP-адресах соответствует номеру маршрутизатора.
В примере настроены различные варианты использования команды network.
Это сделано специально для того чтобы показать как её можно использоваться вместе с wildcard маской и без.
Выбор варианта при настройке реальной сети будет зависеть от того, какие интерфейсы должны быть задействованы.
На dyn1 EIGRP включен на всех интерфейсах, IP-адреса которых начинаются на 192.168.1 и 192.168.3 (по умолчанию используется классовая маска /24):
router eigrp 100 network 192.168.1.0 network 192.168.3.0
На dyn2 EIGRP включен на всех интерфейсах, IP-адреса которых начинаются на 192.168:
router eigrp 100 network 192.168.0.0 0.0.255.255
На dyn4 EIGRP включен на всех интерфейсах независимо от адреса интерфейса:
router eigrp 100 network 0.0.0.0
На dyn6 EIGRP включен на конкретных интерфейсах:
router eigrp 100 network 192.168.8.6 0.0.0.0 network 192.168.9.6 0.0.0.0 network 192.168.10.6 0.0.0.0
Маршрут по умолчанию EIGRP может быть настроен с помощью команды:
dyn1(config)# ip default-network <network-number>
Например, для топологии изображенной на рисунке, задана такая ip default-network для dyn1:
dyn1(config)# ip default-network 192.168.1.0
На dyn1 после добавления этой команды добавляется маршрут по умолчанию отмеченный *.
Таблица маршрутизации до задания ip default-network на dyn5:
dyn5#sh ip route Gateway of last resort is not set C 192.168.4.0/24 is directly connected, FastEthernet0/0 C 192.168.5.0/24 is directly connected, FastEthernet1/0 D 192.168.1.0/24 [90/286720] via 192.168.4.3, 00:00:08, FastEthernet0/0 D 192.168.2.0/24 [90/30720] via 192.168.4.3, 00:00:08, FastEthernet0/0 D 192.168.3.0/24 [90/30720] via 192.168.4.3, 00:00:08, FastEthernet0/0
Таблица маршрутизации после задания ip default-network на dyn5:
dyn5#sh ip route Gateway of last resort is 192.168.4.3 to network 192.168.1.0 C 192.168.4.0/24 is directly connected, FastEthernet0/0 C 192.168.5.0/24 is directly connected, FastEthernet1/0 D* 192.168.1.0/24 [90/286720] via 192.168.4.3, 00:00:38, FastEthernet0/0 D 192.168.2.0/24 [90/30720] via 192.168.4.3, 00:02:24, FastEthernet0/0 D 192.168.3.0/24 [90/30720] via 192.168.4.3, 00:02:24, FastEthernet0/0
Суммарные маршруты EIGRP:
Отключение автоматического суммирования маршрутов:
dyn3(config-router)#no auto-summary
После отключения автоматического суммирования на локальном маршрутизаторе появляются такие сообщения:
dyn3(config-router)#no auto-summary dyn3(config-router)# * Sep 10 04:10:41.989: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.2.1 (FastEthernet0/0) is resync: summary configured * Sep 10 04:10:41.993: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.4.5 (FastEthernet2/0) is resync: summary configured
На соседе этого маршрутизатора:
dyn5(config-router)# * Sep 10 04:27:19.917: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.4.3 (FastEthernet0/0) is resync: peer graceful-restart
graceful-restart: это обычное Hello сообщение с выставленными К коэффициентами в максимальное значение равное 255. Такого типа Hello сообщение посылает роутер после специфических изменений. Если у вас роутер со старым релизом IOS - тогда будет сообщение типа K-values mismatch. Реакция идентичная.
Суммарный маршрут настраивается на интерфейсе:
dyn3(config-if)#ip summary-address eigrp <AS-number> <address> <mask> [admin-distance]
По умолчанию у суммарного маршрута EIGRP administrative distance — 5.
AD суммарного маршрута используется для того чтобы определить помещать ли маршрут в null0 для суммарного маршрута в таблицу маршрутизации.
AD является локальным параметром и не передается соседям. У соседей суммарный маршрут будет с AD = internal = 90.
Если необходимо чтобы маршрут в null0 не помещался в таблицу маршрутизации, то необходимо указать AD = 255.
Пример задания суммарного маршрута:
dyn3(config-if)#ip summary-address eigrp 1 172.16.0.0 255.255.0.0
Leak-map позволяет отдельно анонсировать специфический маршрут из суммарного маршрута.
Правила использования leak-map:
Указание leak-map для суммарного маршрута:
dyn3(config-if)# ip summary-address eigrp <AS-number> <address> <mask> [leak-map <map-name>]
Входящие или исходящие обновления EIGRP могут фильтроваться на любом интерфейсе или для всего процесса EIGRP.
Входящий фильтр не позволяет указанным сетям попасть в таблицу топологии EIGRP и, как следствие, в таблицу маршрутизации.
Фильтрация маршрутов с помощью distribute list:
dyn5(config-router)# distribute-list <acl | gateway | prefix | route-map> <in|out> [interface]
Перераспределение маршрутов (route redistribution) — передача маршрутов выученные с помощью одного протокола маршрутизации в другой протокол маршрутизации.
Кроме того, статические маршруты или непосредственно присоединенные сети, также могут быть перераспределены и, после этого, будут передаваться с помощью соответствующего протокола маршрутизации.
Для того чтобы перераспределить маршруты из одного источника в другой, должна быть как минимум одна точка где они перераспределяются.
То есть, должен быть маршрутизатор, который это выполняет.
Например, если перераспределяются маршруты протокола OSPF в маршруты EIGRP, то на таком маршрутизаторе должны быть настроены оба протокола, а затем правила перераспределения маршрутов из одного протокола в другой.
Если настроено перераспределение маршрутов в EIGRP из другого протокола маршрутизации, то маршрутизатор поместит в процесс EIGRP:
Иначе перераспределение не будет работать.
Перераспределение маршрутов в EIGRP:
dyn3(config-router)# redistribute <protocol> [process-id] [match <route-type>] [metric <metric-value>] [route-map <map-tag>]
Параметры команды redistribute:
Перераспределенные маршруты в EIGRP обозначаются как внешние.
Пример внешнего маршрута в таблице маршрутизации:
dyn6#sh 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, + - replicated route Gateway of last resort is not set **D EX 192.168.1.0/24 [170/2573568] via 192.168.8.4, 00:00:26, FastEthernet0/0** D 192.168.2.0/24 [90/30720] via 192.168.8.4, 00:26:09, FastEthernet0/0 D 192.168.3.0/24 [90/33280] via 192.168.8.4, 00:26:09, FastEthernet0/0 D 192.168.4.0/24 [90/30720] via 192.168.8.4, 00:26:09, FastEthernet0/0
Для внешних маршрутов EIGRP использует значение AD 170, а для внутренних 90.
Это значит, что если одинаковый маршрут был получен как внутренний и как внешний, то внутренний выиграет.
По умолчанию EIGRP выполняет балансировку нагрузки между 4 маршрутами с одинаковой метрикой.
Для старых версий IOS это число настраивается в диапазоне от 1 до 6. В поздних версиях количество одновременно используемых маршрутов увеличено до 16.
Для того чтобы отключить балансировку нагрузки, надо установить количество маршрутов равным 1.
Изменение количества маршрутов, между которыми выполняется балансировка нагрузки:
dyn1(config-router)# maximum-paths 6
В зависимости от того как маршрутизатор обрабатывает пакет балансировка нагрузки выполняется per-packet или per-destination:
При тестировании балансировки нагрузки надо учитывать, что, например, если пинговать маршрутизаторы или с маршрутизаторов с fast-switching интерфейсами, генерируется локальный трафик, который process-switched.
EIGRP может распределять трафик между несколькими маршрутами с различной метрикой.
Это регулируется заданием variance:
dyn3(config-router)# variance 2
Значение variance может быть от 1 до 128. Это множитель, на который будет умножаться FD текущего лучшего маршрута для определения feasible маршрутов.
Маршрут считается feasible при выполнении двух условий:
Без дополнительных настроек с помощью команды traffic-share, EIGRP балансирует нагрузку между маршрутами независимо от метрики.
Включение балансировки по принципу, чем меньше метрика маршрута, тем больше передается по нему трафика (обратно пропорционально метрике):
dyn3(config-router)# traffic-share balanced
Несмотря на то, что есть несколько маршрутов, отправлять трафик только по маршрутам с наименьшей метрикой:
dyn3(config-router)# traffic-share min
При использовании traffic-share min, если есть маршруты, которые попали в нужный диапазон, то они будут помещены в таблицу маршрутизации, но фактически не будут использоваться. Наличие маршрутов в таблице маршрутизации уменьшает время сходимости сети, в случае если маршрут с минимальной метрикой пропадёт.
Балансировать трафик отправляя его на различные исходящие интерфейсы:
dyn3(config-router)# traffic-share min across-interfaces
Изменения интервала отправки hello-пакетов:
router(config-if)# ip hello-interval eigrp <asn> <seconds>
Изменения hold-интервала:
router(config-if)# ip hold-time eigrp <asn> <seconds>
Однако, если изменить hello-интервал, то hold-интервал не изменится.
Отключение Active timer:
router(config-router)# timers active-time disabled
Изменение K-коэффициентов:
dyn3(config-router)# metric weights <TOS> <K1> <K2> <K3> <K4> <K5>
Опции команды:
По умолчанию у EIGRP значение maximum-hops равно 100.
То есть, маршрут, который достижим через 100 hop'ов считается недостижимым.
Изменение значения maximum-hops:
dyn3(config-router)# metric maximum-hops <1-255>
Для того чтобы обозначить маршрут как недостижимый в нём выставляется значение задержки равное 0xFFFFFF.
Просмотр информации о соседях:
dyn3#sh ip eigrp neighbors IP-EIGRP neighbors for process 1 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 1 192.168.4.5 Fa2/0 14 00:00:57 161 966 0 16 0 192.168.2.1 Fa0/0 12 00:00:57 180 1080 0 16
Пояснения к выводу команды sh ip eigrp neighbors:
Показывает версию IOS соседа и stub настройки:
dyn3#sh ip eigrp neighbors detail
Маршруты в таблице маршрутизации полученные по EIGRP:
dyn3# sh ip route eigrp D 192.168.5.0/24 [90/30720] via 192.168.4.5, 00:02:04, FastEthernet2/0 D 192.168.1.0/24 [90/284160] via 192.168.2.1, 00:02:04, FastEthernet0/0
Просмотр информации о настройках EIGRP (значения K-коэффициентов, значение maximum-hop и др.):
dyn3#sh ip protocols 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 metric weight K1=1, K2=0, K3=1, K4=0, K5=0 EIGRP maximum hopcount 100 EIGRP maximum metric variance 1 Redistributing: eigrp 1 EIGRP NSF-aware route hold timer is 240s Automatic network summarization is not in effect Maximum path: 6 Routing for Networks: 192.168.2.0 192.168.3.0 192.168.4.0 Routing Information Sources: Gateway Distance Last Update 192.168.4.5 90 00:03:30 192.168.2.1 90 00:03:30 Distance: internal 90 external 170
Информация об интерфейсах на которых настроен EIGRP:
dyn3#sh ip eigrp interfaces IP-EIGRP interfaces for process 1 Xmit Queue Mean Pacing Time Multicast Pending Interface Peers Un/Reliable SRTT Un/Reliable Flow Timer Routes Fa0/0 1 0/0 180 0/1 680 0 Fa1/0 0 0/0 0 0/1 0 0 Fa2/0 1 0/0 161 0/1 552 0
Таблица топологии EIGRP:
dyn3#sh ip eigrp topology IP-EIGRP Topology Table for AS(1)/ID(192.168.4.3) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 192.168.1.0/24, 1 successors, FD is 284160 via 192.168.2.1 (284160/281600), FastEthernet0/0 P 192.168.2.0/24, 1 successors, FD is 28160 via Connected, FastEthernet0/0 P 192.168.3.0/24, 1 successors, FD is 28160 via Connected, FastEthernet1/0 P 192.168.4.0/24, 1 successors, FD is 28160 via Connected, FastEthernet2/0 P 192.168.5.0/24, 1 successors, FD is 30720 via 192.168.4.5 (30720/28160), FastEthernet2/0
Статистика по переданным пакетам:
dyn3#sh ip eigrp traffic IP-EIGRP Traffic Statistics for AS 1 Hellos sent/received: 50219/37525 Updates sent/received: 39/31 Queries sent/received: 0/0 Replies sent/received: 0/0 Acks sent/received: 20/21 Input queue high water mark 5, 0 drops SIA-Queries sent/received: 0/0 SIA-Replies sent/received: 0/0 Hello Process ID: 224 PDM Process ID: 219
EIGRP accounting:
dyn3#sh ip eigrp accounting IP-EIGRP accounting for AS(1)/ID(192.168.4.3) Total Prefix Count: 5 States: A-Adjacency, P-Pending, D-Down State Address/Source Interface Prefix Restart Restart/ Count Count Reset(s) A 192.168.4.5 Fa2/0 1 0 0 A 192.168.2.1 Fa0/0 1 0 0
Просмотр отправленных и полученных пакетов EIGRP:
dyn3# debug ip eigrp
Пример вывода команды debug ip eigrp:
* Sep 27 16:14:35.302: IP-EIGRP(Default-IP-Routing-Table:1): Processing incoming UPDATE packet
* Sep 27 16:14:35.302: IP-EIGRP(Default-IP-Routing-Table:1): Int 10.1.12.0/24 M 2172416 - 1657856 514560 SM 2169856 -
* Sep 27 16:14:35.306: IP-EIGRP(Default-IP-Routing-Table:1): route installed for 10.1.12.0 ()
* Sep 27 16:14:36.018: IP-EIGRP(Default-IP-Routing-Table:1): Processing incoming UPDATE packet
* Sep 27 16:14:36.018: IP-EIGRP(Default-IP-Routing-Table:1): Int 10.1.24.0/24 M 2174976 - 1657856 517120 SM 2172416 -
* Sep 27 16:14:36.022: IP-EIGRP(Default-IP-Routing-Table:1): route installed for 10.1.24.0 ()
Описание полей в выводе:
* Int — указывает, что далее следует информация о внутренней сети назначения;
* Ext — указывает, что далее следует информация о внешней (external) сети назначения;
* SM — метрика маршрута, которую анонсирует сосед;
* M — метрика маршрута, которая состоит из суммы метрики анонсируемой соседом и стоимости пути между локальным маршрутизатором и соседом:
* Первой число — метрика маршрута,
* Последующие два числа — inverse bandwidth и delay, соответственно.
==== Очистка отношений соседства ====
Для того чтобы удалить соседа, маршруты полученные от него и заново начать процесс установки отношений соседства, необходимо выполнить команду:
<code>
dyn5# clear ip eigrp neighbors [ip-address]
При выполнении команды отношения соседства разрываются, пример выполнения команды:
dyn5# clear ip eigrp neighbors 192.168.2.3 dyn5# * Jul 27 19:13:31.923: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.2.3 (FastEthernet1/0) is down: manually cleared * Jul 27 19:13:36.327: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.2.3 (FastEthernet1/0) is up: new adjacency Очистить все отношения соседства, соответственно очищается вся таблица топологии: <code> dyn5# clear ip eigrp neighbors
Очистить все отношения соседства для указанного интерфейса:
dyn5# clear ip eigrp neighbors [interface]
Синхронизироваться с соседом без разрыва отношений соседства:
dyn5# clear ip eigrp neighbors soft * Jul 27 19:08:16.503: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 192.168.2.3 (FastEthernet1/0) is resync: manually cleared ===== Дополнительные возможности ===== ==== Bandwidth utilization ==== По умолчанию EIGRP использует на всех serial-интерфейсах bandwidth T1 (1,544 Mbps). Для point-to-point Frame Relay: * По умолчанию используется bandwidth T1, * Должна быть настроена вручную и равна значению CIR PVC. Для multipoint Frame Relay, ATM, ISDN PRI: * EIGRP использует bandwidth физического интерфейса, делит ее на количество соседей на этом интерфейсе для получения значения bandwidth, которое использует для отдельного соседа. * Если на multipoint интерфейсе разные CIR у соседей, то берется минимальное значение CIR, умножается на количество соседей и bandwidth настраивается равным полученному значению. Настройка процента bandwidth, который будет использовать EIGRP: <code> dyn3(config-if)#ip bandwidth-percent eigrp <AS-number> <percent>
Создание цепочки ключей:
dyn3(config)#key chain passw dyn3(config-keychain)#key 1 dyn3(config-keychain-key)#key-string password1
Настройка аутентификации:
dyn3(config-if)#ip authentication mode eigrp 1 md5 dyn3(config-if)#ip authentication key-chain eigrp 1 passw
Если маршрутизатор получает информацию о том, что его сосед stub-маршрутизатор, то он не отправляет ему запросы о каких-либо маршрутах.
Настройка EIGRP stub маршрутизатора:
dyn3(config-router)#eigrp stub [connected | leak-map | receive-only | redistributed | static | summary]
Опции команды eigrp stub:
Если один из соседей не отвечает на запрос о маршруте в течение 3 минут (по умолчанию), то маршрут попадает в состояние SIA и маршрутизатор разрывает отношение соседства с соседом, который не ответил на запрос.
Сброс (reset) отношений соседства с соседом означает, что локальный маршрутизатор переводит все маршруты, известные через соседа, в состояние active и отправляет все маршруты о которых он знает соседу.
Для улучшения реагирования маршрутизатора на состояние active маршрута, дополнительно введены два типа сообщений:
Когда процесс EIGRP завершается, маршрутизатор отправляет широковещательное goodbye сообщение.
Это позволяет соседям маршрутизатора сразу обнаружить то, что маршрутизатор и, соответственно, маршруты доступные через него, более недоступны.
Goodbye сообщение отправляется в hello-пакетах. В таком пакете все K-коэффициенты выставляются равными 255.
Топология для примера:
Пример таблицы топологии на R3:
R3#sh ip eigrp topology EIGRP-IPv4 Topology Table for AS(100)/ID(150.1.3.3) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 150.1.7.7/32, 1 successors, FD is 1709056 via Redistributed (1709056/0) P 155.1.23.0/24, 1 successors, FD is 2169856 via Connected, Serial1/3 P 150.1.2.2/32, 1 successors, FD is 1709056 via Redistributed (1709056/0) P 150.1.2.0/24, 1 successors, FD is 2297856 via 155.1.23.2 (2297856/128256), Serial1/3 P 155.1.37.0/24, 1 successors, FD is 1709056 via Redistributed (1709056/0) P 192.10.1.0/24, 1 successors, FD is 2195456 via 155.1.23.2 (2195456/281600), Serial1/3
Таблица топологии на R2:
R2#sh ip eigrp topology EIGRP-IPv4 Topology Table for AS(100)/ID(150.1.2.2) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 150.1.7.7/32, 1 successors, FD is 2221056 via 155.1.23.3 (2221056/1709056), Serial1/1 P 155.1.23.0/24, 1 successors, FD is 2169856 via Connected, Serial1/1 P 150.1.2.0/24, 1 successors, FD is 128256 via Connected, Loopback0 P 155.1.37.0/24, 1 successors, FD is 2221056 via 155.1.23.3 (2221056/1709056), Serial1/1 P 192.10.1.0/24, 1 successors, FD is 281600 via Connected, Ethernet0/0
Подробная информация о внутреннем маршруте на R3:
R3#sh ip ei topology 192.10.1.0/24 EIGRP-IPv4 Topology Entry for AS(100)/ID(150.1.3.3) for 192.10.1.0/24 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2195456 Descriptor Blocks: 155.1.23.2 (Serial1/3), from 155.1.23.2, Send flag is 0x0 Composite metric is (2195456/281600), route is Internal Vector metric: Minimum bandwidth is 1544 Kbit Total delay is 21000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 1 Originating router is 150.1.2.2
Подробная информация о внешнем маршруте на R2:
R2#sh ip eigrp topology 155.1.37.0/24 EIGRP-IPv4 Topology Entry for AS(100)/ID(150.1.2.2) for 155.1.37.0/24 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2221056 Descriptor Blocks: 155.1.23.3 (Serial1/1), from 155.1.23.3, Send flag is 0x0 Composite metric is (2221056/1709056), route is External Vector metric: Minimum bandwidth is 1500 Kbit Total delay is 20100 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 1 Originating router is 150.1.3.3 External data: AS number of route is 100 External protocol is OSPF, external metric is 0 Administrator tag is 0 (0x00000000)
Таблица маршрутизации на R2:
R2#sh ip route 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, + - replicated route Gateway of last resort is not set 150.1.0.0/16 is variably subnetted, 3 subnets, 2 masks C 150.1.2.0/24 is directly connected, Loopback0 D EX 150.1.7.7/32 [170/2221056] via 155.1.23.3, 00:04:19, Serial1/1 155.1.0.0/16 is variably subnetted, 3 subnets, 2 masks C 155.1.23.0/24 is directly connected, Serial1/1 D EX 155.1.37.0/24 [170/2221056] via 155.1.23.3, 00:04:19, Serial1/1 192.10.1.0/24 is variably subnetted, 2 subnets, 2 masks C 192.10.1.0/24 is directly connected, Ethernet0/0
Настройка OSPF на R1:
router ospf 100 network 0.0.0.0 255.255.255.255 area 0
Настройка OSPF и EIGRP на R3:
router eigrp 100 network 155.1.23.0 0.0.0.255 redistribute ospf 100 metric 1500 10 255 1 1500 no auto-summary ! router ospf 100 network 155.1.23.0 0.0.0.255 area 0 network 155.1.37.0 0.0.0.255 area 0
Настройка EIGRP на R2:
router eigrp 100 network 0.0.0.0 no auto-summary
На изображенной топологии, по сравнению с предыдущей, добавилась настройка OSPF на R2.
Например, происходит перевод сети с EIGRP на OSPF. И предыдущая схема была первым этапом, когда одна часть сети работала по OSPF, а другая – по EIGRP. И выполнялось перераспределение маршрутов на R3.
Теперь на R2 поднят OSPF и часть маршрутов приходят и как внешние EIGRP, из-за настроенного перераспределения, и как внутренние маршруты OSPF.
Маршруты которые не попали в таблицу маршрутизации из-за того, что был лучший кандидат (по значению AD), видны в таблице топологии EIGRP с максимальной метрикой и отмечены как Inaccessible. Данные маршруты «проиграли» OSPF (AD = 110) из-за того, что это внешний маршруты EIGRP, а у них значение AD = 170.
Маршруты отмечены в таблице топологии FD is Inaccessible:
R2#sh ip eigrp topology EIGRP-IPv4 Topology Table for AS(100)/ID(150.1.2.2) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 150.1.7.7/32, 0 successors, **FD is Inaccessible** via 155.1.23.3 (2221056/1709056), Serial1/1 P 155.1.23.0/24, 1 successors, FD is 2169856 via Connected, Serial1/1 P 150.1.2.2/32, 0 successors, **FD is Inaccessible** via 155.1.23.3 (2221056/1709056), Serial1/1 P 150.1.2.0/24, 1 successors, FD is 128256 via Connected, Loopback0 P 155.1.37.0/24, 0 successors, **FD is Inaccessible** via 155.1.23.3 (2221056/1709056), Serial1/1 P 192.10.1.0/24, 1 successors, FD is 281600 via Connected, Ethernet0/0
Более подробная информация о маршруте с такой пометкой:
R2#sh ip eigrp topology 155.1.37.0/24 EIGRP-IPv4 Topology Entry for AS(100)/ID(150.1.2.2) for 155.1.37.0/24 State is Passive, Query origin flag is 1, 0 Successor(s), FD is **4294967295** Descriptor Blocks: 155.1.23.3 (Serial1/1), from 155.1.23.3, Send flag is 0x0 Composite metric is (2221056/1709056), route is External Vector metric: Minimum bandwidth is 1500 Kbit Total delay is 20100 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 1 Originating router is 150.1.3.3 External data: AS number of route is 100 External protocol is OSPF, external metric is 0 Administrator tag is 0 (0x00000000)
Проверка маршрута в таблице маршрутизации (маршрут есть в таблице маршрутизации, только получен он по OSPF):
R2#sh ip route 155.1.37.0 Routing entry for 155.1.37.0/24 **Known via "ospf 100"**, distance 110, metric 74, type intra area Last update from 155.1.23.3 on Serial1/1, 00:07:15 ago Routing Descriptor Blocks: * 155.1.23.3, from 150.1.7.7, 00:07:15 ago, via Serial1/1
Настройка OSPF на R1:
router ospf 100 network 0.0.0.0 255.255.255.255 area 0
Настройка OSPF и EIGRP на R3:
router eigrp 100 network 155.1.23.0 0.0.0.255 redistribute ospf 100 metric 1500 10 255 1 1500 no auto-summary ! router ospf 100 network 155.1.23.0 0.0.0.255 area 0 network 155.1.37.0 0.0.0.255 area 0
Настройка EIGRP и OSPF на R2:
router eigrp 100 network 0.0.0.0 no auto-summary ! router ospf 100 log-adjacency-changes network 0.0.0.0 255.255.255.255 area 0
В это подразделе будет пример, который демонстрирует следующее правило:
:маршрутизатор отправляет соседям только те маршруты EIGRP, которые сам использует (то есть, они находятся в таблице маршрутизации)
Схема:
На всех маршрутизаторах настроен EIGRP.
Таблица маршрутизации на R1:
R1#sh ip route 150.1.0.0/16 is variably subnetted, 3 subnets, 2 masks D 150.1.2.0/24 [90/2323456] via 155.1.37.3, 00:01:18, Ethernet0/3 C 150.1.7.0/24 is directly connected, Loopback0 L 150.1.7.7/32 is directly connected, Loopback0 155.1.0.0/16 is variably subnetted, 3 subnets, 2 masks D 155.1.23.0/24 [90/2195456] via 155.1.37.3, 00:01:18, Ethernet0/3 C 155.1.37.0/24 is directly connected, Ethernet0/3 L 155.1.37.7/32 is directly connected, Ethernet0/3 D 192.10.1.0/24 [90/2221056] via 155.1.37.3, 00:01:18, Ethernet0/3
Таблица маршрутизации на R3:
R3#sh ip route 150.1.0.0/16 is variably subnetted, 4 subnets, 2 masks D 150.1.2.0/24 [90/2297856] via 155.1.23.2, 00:08:02, Serial1/3 C 150.1.3.0/24 is directly connected, Loopback0 L 150.1.3.3/32 is directly connected, Loopback0 D 150.1.7.0/24 [90/409600] via 155.1.37.7, 00:06:47, Ethernet0/0 155.1.0.0/16 is variably subnetted, 6 subnets, 2 masks C 155.1.13.0/24 is directly connected, Serial1/2 L 155.1.13.3/32 is directly connected, Serial1/2 C 155.1.23.0/24 is directly connected, Serial1/3 L 155.1.23.3/32 is directly connected, Serial1/3 C 155.1.37.0/24 is directly connected, Ethernet0/0 L 155.1.37.3/32 is directly connected, Ethernet0/0 D 192.10.1.0/24 [90/2195456] via 155.1.23.2, 00:08:02, Serial1/3
Таблица маршрутизации на R2:
R2#sh ip route 150.1.0.0/16 is variably subnetted, 3 subnets, 2 masks C 150.1.2.0/24 is directly connected, Loopback0 L 150.1.2.2/32 is directly connected, Loopback0 D 150.1.7.0/24 [90/2323456] via 155.1.23.3, 00:07:51, Serial1/1 155.1.0.0/16 is variably subnetted, 3 subnets, 2 masks C 155.1.23.0/24 is directly connected, Serial1/1 L 155.1.23.2/32 is directly connected, Serial1/1 D 155.1.37.0/24 [90/2195456] via 155.1.23.3, 00:07:51, Serial1/1 192.10.1.0/24 is variably subnetted, 2 subnets, 2 masks C 192.10.1.0/24 is directly connected, Ethernet0/0 L 192.10.1.2/32 is directly connected, Ethernet0/0
Правило будет показано на сети 150.1.7.0/24 (loopback R1), поэтому сначала проверка его доступности:
R2#ping 150.1.7.7 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 150.1.7.7, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/16/16 ms
Если на R3 настроить статический маршрут в сеть 150.1.7.0/24, то он заменит маршрут полученный по EIGRP в таблице маршрутизации:
R3(config)#ip route 150.1.7.0 255.255.255.0 155.1.37.7 R3#sh ip route 150.1.0.0/16 is variably subnetted, 4 subnets, 2 masks D 150.1.2.0/24 [90/2297856] via 155.1.23.2, 00:10:30, Serial1/3 C 150.1.3.0/24 is directly connected, Loopback0 L 150.1.3.3/32 is directly connected, Loopback0 **S 150.1.7.0/24 [1/0] via 155.1.37.7** 155.1.0.0/16 is variably subnetted, 6 subnets, 2 masks C 155.1.13.0/24 is directly connected, Serial1/2 L 155.1.13.3/32 is directly connected, Serial1/2 C 155.1.23.0/24 is directly connected, Serial1/3 L 155.1.23.3/32 is directly connected, Serial1/3 C 155.1.37.0/24 is directly connected, Ethernet0/0 L 155.1.37.3/32 is directly connected, Ethernet0/0 D 192.10.1.0/24 [90/2195456] via 155.1.23.2, 00:10:30, Serial1/3
В таблице топологии на R3 теперь он отмечен как inaccessible:
R3#sh ip eigrp topology EIGRP-IPv4 Topology Table for AS(100)/ID(150.1.3.3) Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply, r - reply Status, s - sia Status P 150.1.7.0/24, 0 successors, **FD is Inaccessible** via 155.1.37.7 (409600/128256), Ethernet0/0 P 155.1.23.0/24, 1 successors, FD is 2169856 via Connected, Serial1/3 P 150.1.2.0/24, 1 successors, FD is 2297856 via 155.1.23.2 (2297856/128256), Serial1/3 P 155.1.37.0/24, 1 successors, FD is 281600 via Connected, Ethernet0/0 P 192.10.1.0/24, 1 successors, FD is 2195456 via 155.1.23.2 (2195456/281600), Serial1/3
На R2 маршрута нет, так как R3 его больше не анонсирует:
R2#sh ip route 150.1.7.0 255.255.255.0 % Subnet not in table R2#sh ip route 150.1.0.0/16 is variably subnetted, 2 subnets, 2 masks C 150.1.2.0/24 is directly connected, Loopback0 L 150.1.2.2/32 is directly connected, Loopback0 155.1.0.0/16 is variably subnetted, 3 subnets, 2 masks C 155.1.23.0/24 is directly connected, Serial1/1 L 155.1.23.2/32 is directly connected, Serial1/1 D 155.1.37.0/24 [90/2195456] via 155.1.23.3, 00:10:49, Serial1/1 192.10.1.0/24 is variably subnetted, 2 subnets, 2 masks C 192.10.1.0/24 is directly connected, Ethernet0/0 L 192.10.1.2/32 is directly connected, Ethernet0/0
Теперь с R2 не доступен loopback R1:
R2#ping 150.1.7.7 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 150.1.7.7, timeout is 2 seconds: ..... Success rate is 0 percent (0/5)