Cisco IEGRP

Протокол IGRP (англ. Interior Gateway Routing Protocol) — протокол маршрутизации, разработанный фирмой Cisco, для своих многопротокольных маршрутизаторов в середине 80-х годов для маршрутизации в пределах автономной системы (AS), имеющей сложную топологию и разные характеристики полосы пропускания и задержки. IGRP является протоколом внутренних роутеров (IGP) с вектором расстояния.

Для выбора маршрута в IGRP используется комбинация показателей, таких как задержка сети, полоса пропускания, надежность и загруженность сети. Весовой коэффициент этих показателей может выбираться автоматически или задаваться администратором сети. Для надежности и загруженности сети это значения от 1 до 255, полоса пропускания — от 1200 бит/сек до 10 Гбит/сек, задержка может принимать значение до 24-го порядка.

Для повышения стабильности работы IGRP предусматривает такие механизмы, как удержание изменений, расщепленный горизонт (split-horizon) и корректировка отмены.

Удержание изменений Когда в сеть поступает информация об изменениях маршрутов (например, об обрыве связи) от одного из роутеров, то изменения в таблицы маршрутизации поступают не мгновенно, а в течение некоторого времени. В этот период роутер, ещё не получивший информацию об изменениях, может продолжать распространять информацию об уже несуществующем маршруте. При этом возможна ситуация, когда устройство, уже внёсшее изменения в свою таблицу маршрутизации, после получения этих данных внесёт повторную корректировку в таблицу. Временное удержание изменений — это механизм, по которому удерживаются все изменения, которые могут повлиять на маршруты в течение некоторого времени. Время удержания должно быть больше времени, необходимого для того, чтобы информация об измененных маршрутах распространилась по всем роутерам системы.

 

Корректировка отмены маршрута (route-poisoning) — это принудительное удаление маршрута и перевод в состояние удержания, применяется для борьбы с маршрутными петлями. Таймеры Таймер корректировки определяет, как часто должны отправляться сообщения о корректировке маршрутов. Таймер недействующих маршрутов определяет, сколько времени должен ожидать роутер при отсутствии сообщений о корректировке какого-нибудь конкретного маршрута, прежде чем объявить этот маршрут недействующим. Время по умолчанию IGRP для этой переменной в три раза превышает период корректировки. Переменная величина времени удерживания определяет промежуток времени удерживания. Время по умолчанию IGRP для этой переменной в три раза больше периода таймера корректировки, плюс 10 сек. И наконец, таймер отключения указывает, сколько времени должно пройти прежде, чем какой-нибудь роутер должен быть исключен из маршрутной таблицы. Время по умолчанию IGRP для этой величины в семь раз превышает период корректировки маршрутизации.

 

В начале 90-х годов разработана новая версия протокола IGRP — EIGRP с улучшенным алгоритмом оптимизации маршрутов, сокращенным временем установления и масками субсетей переменной длины. EIGRP поддерживает многие протоколы сетевого уровня. Рассылка маршрутной информации здесь производится лишь при измении маршрутной ситуации. Протокол периодически рассылает соседним маршрутизаторам короткие сообщения Hello. Получение отклика означает, что сосед функционален и можно осуществлять обмен маршрутной информацией. Протокол EIGRP использует таблицы соседей (адрес и интерфейс), топологические таблицы (адрес места назначения и список соседей, объявляющих о доступности этого адреса), состояния и метки маршрутов. Для каждого протокольного модуля создается своя таблица соседей. Протоколом используется сообщения типа hello (мультикастная адресация), подтверждени (acknowledgent), актуализация (update), запрос (query; всегда мультикастный) и отклик (reply; посылается отправителю запроса). Маршруты здесь делятся на внутренние и внешние — полученные от других протоколов или записанные в статических таблицах. Маршруты помечаются идентификаторами их начала. Внешние маршруты помечаются следующей информацией:

  • Идентификатор маршрутизатора EIGRP, который осуществляет рассылку информации о маршруте
  • Номер AS, где расположен адресат маршрута
  • Метка администратора
  • Идентификатор протокола
  • Метрика внешнего маршрута
  • Битовые флаги маршрута по умолчанию

Протокол EIGRP полностью совместим с IGRP

 

Общение через мультикаст происходит через IP  224.0.0.10

 

Перед тем как стать соседом и занести его в таблицу топологии , маршрутизатору необходимо :

— Совпадает ли у него номер AS

— Правильность аутентификации (пароль должен совпасть)

-IP адрес устройства-отправителя Hello-сообщения должен находиться в той же самой подсети

 

Для того чтобы маршрутизаторы стали EIGRP-соседями у них не обязаны совпадать Hello и Hold time.

Маршрутизатор использует значения таймеров полученные от соседа. Если на одном из маршрутизаторов изменены Hello или Hold time, то соседи этого маршрутизатора будут использовать эти значения. Для того чтобы сам маршрутизатор использовал другие значения, необходимо изменить таймер на соответствующем интерфейсе соседа. EIGRP может анонсировать сети secondary-адресов, но hello-пакеты отправляются с primary-адреса.

 

EIGRP-маршрутизаторы пересылают друг другу как полные, так и частичные обновления маршрутной информации. В полном обновлении пересылается информация обо всех известных устройству маршрутах, а в частичных — только информация об изменении топологии, т.е. об изменении состояния какого-либо маршрута. Полные обновления обычно пересылаются устройством, когда маршрутизатор загружается или обнаруживает соседнее устройство. Обменявшись такими обновлениями, маршрутизаторы пересылают друг другу частичные (между другими роутерами)обновления при изменении какой-либо маршрутной информации.

 

Если при отправке Hellо пакера за время hello (время hello зависит от скорости порта Ethernet 5 сек ) не было ответа , то сосед считается недоступным .

 

отношения соседства должны устанавливаться на primary-адресах (когда приходит hello-пакет, маршрутизатор проверяет принадлежит ли адрес отправителя сети на primary-адресе интерфейса)

 

Обновления (Update)

 

После того как маршрутизаторы стали соседями, они начинают обмениваться обновлениями (Update). Эти пакеты могут быть отправлены конкретному маршрутизатору (unicast) или группе маршрутизаторов (multicast).

Процесс обмена обновлениями:

  • изначально отправляются полные обновления, в которые включены все маршруты, за исключением тех, которые попадают под правило split horizon (Расщепленный горизонт (split-horizon) Суть этого механизма состоит в том, для предотвращения зацикливания маршрутов между соседними роутерами, информация об изменении маршрута не должна распространяться в направлении того роутера, от которого она пришла если пришло обновление о сети 192.168.0.0\24 через Fa0/0 то обновление о сети  192.168.0.0\24 нельзя отправить через интерфейс Fa 0/0.);
  • после того как обмен маршрутами завершился, обновления не отправляются;
  • в дальнейшем обновления отправляются, если изменился один или более маршрутов;
  • если отношения соседства разрываются, а затем восстанавливаются, то отправляются полные обновления.

Обновления EIGRP:

  • Непериодические (Nonperiodic) — обновления отправляются не через регулярные интервалы времени, а при изменении топологии или метрики;
  • Частичные (Partial) — в обновлениях передается не вся информация из таблицы маршрутизации, а только изменения;
  • Ограниченные (Bounded) — обновления отправляются только задействованным маршрутизаторам.

 

DUAL

 

Diffusing Update Algorithm (DUAL) — логика которую использует EIGRP для вычисления новых маршрутов.

Терминология:

  • Advertised distance (AD) — стоимость расстояния между соседним маршрутизатором, который анонсирует маршрут и сетью назначения.
  • Feasible distance (FD) — стоимость расстояния от локального маршрутизатора до сети назначения = AD, которое анонсирует соседний маршрутизатор + стоимость расстояния между локальным маршрутизатором и соседним маршрутизатором.
  • Successor — соседний маршрутизатор с путем без петель и с наименьшей стоимостью пути к сети назначения.
  • Feasible successor — резервный маршрутизатор с путем без петель (AD feasible successor должно быть меньше чем FD текущего маршрута successor).
  • Feasible condition — AD feasible successor должно быть меньше чем FD текущего маршрута successor.

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

 

В таблице топологии также хранится метрика, которую сообщает каждый сосед для каждого 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

 

Метрика EIGRP основана на таких 5 компонентах (по умолчанию используются только два):

  • Bandwidth — наименьшая bandwidth между source и destination (используется по умолчанию);
  • Delay — cumulative interface delay всего пути(задержка);
  • Reliability — наихудший показатель надежности на всем пути, на основании keepalive;
  • Loading — наихудший показатель загрузки линка на всем пути, на основании packet rate и настроенной bandwidth на интерфейсе;
  • MTU — наименьшее MTU на всем пути. MTU включается в обновления EIGRP, но фактически не используется для подсчета метрики.

По умолчанию для подсчета метрики используются bandwidth и delay. Остальные критерии не рекомендуется использовать, так как это приведет к частым пересчетам маршрутов.

 

Если значения коэффициентов равны значениям по умолчанию, то формула превращается в такую:

Metric = bandwidth + delay

Значения коэффициентов передаются в hello-пакетах. Обычно не рекомендуется изменять эти коэффициенты.

 

Типы маршрутов EIGRP

EIGRP поддерживает несколько типов маршрутов, у каждого типа маршрута своё значение administrative distance:

  • internal — внутренние маршруты EIGRP. AD — 90,
  • external — маршруты, перераспределенные в процесс EIGRP из других источников. AD — 170,
  • summary — суммарные маршруты EIGRP. AD — 5 (по умолчанию, может быть любое — задается администратором при написании команды суммирования).

 

А в IGRP есть след. отличия :

Каждые 90 сек . происходит широковещательные запросы об изменениях в сети

Улучшенний алгоритм оптимизации маршрутов

Рассылка маршрутной информации здесь производится лишь при измении маршрутной ситуации. Протокол периодически рассылает соседним маршрутизаторам короткие сообщения Hello. Получение отклика означает, что сосед функционален и можно осуществлять обмен маршрутной информацией. Протокол EIGRP использует таблицы соседей (адрес и интерфейс), топологические таблицы (адрес места назначения и список соседей, объявляющих о доступности этого адреса), состояния и метки маршрутов. Для каждого протокольного модуля создается своя таблица соседей. Протоколом используется сообщения типа hello (мультикастная адресация), подтверждени (acknowledgent), актуализация (update), запрос (query; всегда мультикастный) и отклик (reply; посылается отправителю запроса). Маршруты здесь делятся на внутренние и внешние — полученные от других протоколов или записанные в статических таблицах.

 

Более подробно в этой статье .