четверг, 25 ноября 2010 г.

EIGRP

Enhanced Interior Gateway Routing Protocol - динамический протокол маршрутизации разработанный Cisco как замена устаревшему классовому протоколу IGRP, проприетарный. Относится к протоколам внутреннего шлюза (IGP), дистанционно-векторный. Скорость сходимости eigrp даже больше чем ospf.

Основные характеристики.

Ведет три таблицы:
1. Таблица соседей (neighbors table)  - записывает маршрутизаторы с которыми он установил соседство и обменивается информацией.
2. Таблица топологий (topology table) - хранит в ней маршруты с указанием основных next-hop и резервных.
3. Таблица маршрутизации (routing table)

Умеет работать с несколькими протоколами третьего уровня. Использует для этого технологию Protocol Dependent Modules. Для каждого из протоколов (ip, ipx, apple talk) строятся свои таблицы - таблица соседей, таблица топологий, таблица маршрутизации.

В виду того, что eigrp работает поверх различных протоколов третьего уровня (а tcp, udp работают только с ip), он использует собственный протокол Reliable Transport Protocol. Данный протокол может доставлять пакеты как надёжно так и ненадёжно. Для пакетов ip указывается номер протокола 88.

Обновления eigrp в отличие от RIP, отсылаются не периодически, а только при изменениях или по запросу:
Частичные (parted) - отсылается не вся таблица маршрутизации, а только изменившиеся маршруты.
Ограниченные (bounded) - обновления отсылаются только тем соседям на которых они влияют.

Сообщения eigrp рассылает мультикастом (224.0.0.10) или юникастом. В заголовке сообщения eigrp можно выделить два важных поля opcode (указывает тип сообщения) и AS number (номер процесса eigrp).
Типы сообщений:
1. Hello - пакеты используемые для установления соседства, рассылаются периодически всем соседям (5 сек для сетей более 1,5 мегабит, и 60 сек для сетей менее 1,5 мегабит). Рассылаются ненадежно.
2. Update - пакеты для обмена маршрутами. Рассылаются надежно, т.е. требуют подтверждений. Opcode = 1.
3. Query - используются для запроса маршрутов у соседей. Opcode = 3. всегда подтверждаются сообщениями replay, даже если у роутера нет маршрутов в запрошенную сеть.
4. Reply - используются для подтверждения получения запроса. Opcode = 4.
5. Acknowledgment - используются для подтверждения получения сообщений. Opcode = 5.

Данные в сообщениях eigrp, так же можно условно разделить на три типа.
1. Parameters - содержит веса (K1,K2,K3,K4,K5) и Hold time.
2. IP internal routes - содержит сетевой адрес маршрута, префикс, метрику, параметры для подсчёта метрики bandwidth и delay, reliability, load.
3. IP external routes - содержит те же поля что и предыдущее, и дополнительные: роутер редистрибьютор, AS системы от которой получен маршрут, внешняя метрика, идентификатор внешнего протокола.

Маршруты eigrp в таблице маршрутизации помечаются буквой D, административная дистанция:
Суммарные маршруты - 5
Внутренние маршруты - 90
Внешние маршруты - 170

Помимо таймера hello, у eigrp есть таймер hold time. Он используется для определения работает ли сосед или же отключился. По умолчанию равен трем интервалам hello.

EIGRP использует композитную метрику. Считается она из 4х параметров сети.
Полная формула:
metric = [K1*Bandwidth + (K2*bandwidth)/(256 - load) + K3*delay]*[K5/(reliability + K4)]
Так как по умолчанию используются только два коэффициента K1 и K3 (=1), а остальные не используются (=0), то формула упрощается:
metric = K1*Bandwidth + K3*delay
В качестве пропускной способности используется скорость самого медленного сегмента (Serial 1544Kbit, FastEthernet 100000 Kbit). А в качестве задержки используется сумма задержек всех сегментов (Serial 20000μS, FastEthernet 100μS).
В итоге считается так:
(10000000/bandwidth)*256 + (sum of delay/10)*256
Параметр надёжность (Reliability) это вероятность отказа линка, а так же уровень ошибок. Используется число от 0 до 255. 255 самый наёжный, 0 ненадёжный. Параметр загрузка (load) это уровень загрузки канал. Используется число от 0 до 255. 0 канал свободен, 255 полностью заполнен.
Использование двух последних параметров для расчёта метрики не рекомендуется.

Для расчёта наилучшего, без петлевого маршрута в eigrp используется cобственный алгоритм DUAL. Некоторые определения используемые в eigrp.
Роутер с наилучшей метрикой до сети называется successor. Именно он фигурирует в таблице маршрутизации как next-hop. Метрика до сети через него называется feasible distance. Именно она указывается в таблице маршрутизации после административной дистанции. Reported distance это метрика до сети которую нам сообщает next-hop. Для ускорения сходимости сети, а так же чтобы лишний раз не пересчитывать маршруты eigrp хранит резервные маршруты в таблице топологии. Исходя из условия feasible condition = feasible successor это next-hop в туже сеть что и successor, но с reported distance меньше чем feasible distance. Резервный next-hop всегда выбирается исходя из данного условия. Если next-hop не соответствует условию, то он не станет feasible successor.

Одно из важных отличий EIGRP в том, что он может балансировать нагрузку как на маршрутах с одинаковой метрикой, так и на маршрутах с неодинаковой метрикой.

Для конфигурации eirgp используется команда router eigrp AS. AS в данном случае не настоящий номер автономной системы, а номер процесса eigrp запущенного на роутере. Главное условие, AS номера должны совпадать на всех маршрутизаторах. Иначе не будет соседства.

Для объявления сети используется команда network net-address wildcard-mask. Т.е. используется не обычная маска сети, а инверсная. Получить ее можно простым вычитанием маски из 255.255.255.255.
Пример: 255.255.255.255 - 255.255.255.0 = 0.0.0.255

Для отключения анонсирования сетей на интерфейсах так же как и в RIP используется команда passive-interface fa 0/0.

Так же как и RIP протокол eigrp автоматически суммаризует маршруты по классовой границе. Так же, если на интерфейсе маршрутизатора задана подсеть и включена авто-суммаризация то eigrp добавляет в таблицу маршрутизации запись второго уровня, классовый маршрут в ту же сеть, но с выходным интерфейсом null0. Для того чтобы убрать этот маршрут достаточно отключить автосуммаризацию командой no auto-summary.

EIGRP поддерживает ручную суммаризацию. Суммировать можно как в сеть так и в суперсеть. Для этого на интерфейсе используется команда ip summary-address eigrp as-number net-adress net-mask.

Если нужно раздать соседям статические маршруты или маршруты от других протоколов маршрутизации, используется команда redistribute. В этом случаем в таблицах маршрутизации соседей маршруты будут помечены как EX и с административной дистанцией 170.

Чтобы посмотреть successor и feasible successor используем команду show ip eigrp topology. Она покажет маршруты, главных хопов и резервных.

По умолчанию eigrp использует 50% пропускной способности канала для своего трафика. Есть возможность изменить этот процент на интерфейсе вручную командой ip bandwidth-percent eigrp AS %.

Коэффициенты используемые для подсчёта метрики можно объявить вручную. Делается это командой metric weights tos k1 k2 k3 k4 k5 (tos = 0). Изменять коэффициенты не рекомендуется.

Еще одна гибкость в том что таймеры eigrp можно настроить вручную. Делается это на интерфейсах командами  ip hello-interval eigrp AS Sec и ip hold-time eigrp AS Sec. Изменение таймеров не рекомендуется, но даже если таймеры соседей отличаются это не сильно повлияет на сходимость сети.

1 комментарий:

  1. На serial интерфейсах следует применять команду bandwidth для более точного расчета метрики

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.