Cisco tips: Введение в EIGRP

Введение в EIGRP.

Цель этого документа - познакомить Вас с комплектом внутренних протоколов маршрутизации шлюза, разработанных и усовершенствованных фирмой Cisco Systems. Данный документ следует рассматривать как технологическую инструкцию; он не предоставляет развернутую спецификацию протокола или подробное описание продукта.

1.0. Что такое IGRP?

IGRP - это Внутренний протокол маршрутизации шлюза, разработанный фирмой Cisco, для работы с протоколами TCP/IP и OSI (Комплект протоколов взаимосвязи открытых систем) в сетях internets (группа локальных вычислительных сетей, объединенных общим протоколом связи).

Первая версия протокола IGRP была разработана в 1986 году и стала успешно распространяться. Она рассматривалась в качестве внутреннего протокола шлюза (IGP), но также широко применялась в качестве внешнего протокола шлюза для маршрутизации между доменами. IGRP основана на технологии маршрутизации дистанционных векторов. Суть подхода заключается в том, что каждому маршрутизатору не нужно знать все взаимосвязи всей сети. Каждый маршрутизатор объявляет пункты назначения с помощью соответствующей дистанции. Каждый маршрутизатор, получая информацию, корректирует дистанцию и передает ее соседним маршрутизаторам (соседям).

Дистанционная информация в IGRP представляется как целый набор сведений: полоса пропускания, время задержки, коэффициент загрузки и надежность связи. Это позволяет точно настраивать характеристики связи для выбора оптимальных путей.

2.0. Что такое EIGRP?

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

Технология конвергенции основывается на научно-исследовательских разработках, проводимых компанией SRI International. Результатом работ явился Распределенный обновляемый алгоритм (DUAL), применяемый для получения независимых циклов в каждый момент процесса расчета маршрута. Это дает возможность согласовывать по времени все маршрутизаторы, вовлеченные в изменение топологии. Маршрутизаторы, которых не коснулось изменение топологии, не вовлекаются в процесс пересчета. Время конвергенции по алгоритму DUAL значительно меньше, чем в любых других существующих протоколах маршрутизации.

Протокол EIGRP расширен и может выступать в качестве протокола, не зависимого от протоколов сетевого уровня, что позволяет с помощью алгоритма DUAL поддерживать другие группы протоколов.

3.0. Как работает EIGRP?

Протокол EIGRP состоит из четырех основных компонентов:

  • Обнаружение/Восстановление соседа (Neighbor Discovery/Recovery)
  • Надежный транспортный протокол (Reliable Transport Protocol)
  • Блок конечных состояний алгоритма DUAL (DUAL Finite State Machine)
  • Модули, зависимые от протоколов (Protocol Dependent Modules)

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

Надежный транспортный протокол отвечает за гарантированную, упорядоченную доставку пакетов EIGRP всем соседям. Он поддерживает разнотипную передачу пакетов как в режиме мультиотправки, так и одиночной отправки. Одни пакеты EIGRP должны передаваться с большой степенью надежности, а для других это совсем необязательно. Для повышения эффективности надежность предоставляется только в случае необходимости. Например, в сети с мультидоступом и возможностями мультиотправки, такой как Ethernet, нет нужды посылать повышающие надежность пакеты Hello всем соседям индивидуально. Поэтому EIGRP посылает в режиме мультиотправки один пакет Hello с указанием (записанным в пакете), информирующим получателей, что прием этого пакета не нужно подтверждать. Другие типы пакетов, например Update (Обновление), требуют подтверждения получения, что и указывается в пакете. Надежный транспортный протокол обеспечен средствами быстрой передачи пакетов в режиме мультиотправки в том случае, если неподтвержденные пакеты ожидают отправки. Такие средства помогают не увеличивать время конвергенции при наличии каналов связи, работающих с различной скоростью.

Блок конечных состояний алгоритма DUAL реализует процесс принятия решений для расчетов всех маршрутов. Блок отслеживает все маршруты, объявленные всеми соседями. Дистанционная информация - это показатель, который используется алгоритмом DUAL для выбора эффективных путей, не содержащих циклов. Алгоритм DUAL выбирает маршруты, которые включаются в таблицу маршрутизации, основанную на принципе вероятных последующих элементов. Последующий элемент - это соседний маршрутизатор, используемый для передачи пакетов и имеющий самый дешевый путь к пункту назначения, при гарантии, что такой путь не является частью цикла маршрутизации. Когда нет вероятных последующих элементов, но есть соседи, объявляющие пункт назначения, необходимо производить пересчет. При этом определяется новый последующий элемент. Время пересчета влияет на общее время конвергенции. И хотя пересчет не требует интенсивного использования процессора, старайтесь избегать их без необходимости. При изменении топологии алгоритм DUAL проверяет наличие вероятных последующих элементов. Если они присутствуют, алгоритм использует все, которые обнаруживает, чтобы предотвратить лишние пересчеты. Более подробно вероятные последующие элементы будут рассмотрены ниже.

Модули, зависимые от протоколов, - отвечают за сетевой уровень и обрабатывают требования специфических протоколов. Например, модуль IP-EIGRP отвечает за отправку и получение пакетов EIGRP, инкапсулированных в протокол IP. Модуль IP-EIGRP отвечает за анализ (разбиение на компоненты) пакетов EIGRP и уведомление алгоритма DUAL о получении новой информации. IP-EIGRP обращается к алгоритму DUAL за принятием решений о маршрутизации, результаты которых хранятся в IP-таблице маршрутизации. IP-EIGRP отвечает за перераспределение маршрутов, обнаруженных другими IP-протоколами маршрутизации.

4.0. Концепции построения протокола EIGRP.

В этом разделе мы остановимся на реализации протокола Cisco EIGRP. Рассматриваются как концепция структуры данных, так и концепция алгоритма DUAL.

4.1. Таблица соседей (Neighbor Table).

Каждый маршрутизатор хранит сведения о смежных соседях. При обнаружении нового соседа записывается его адрес и интерфейс. Эта информация хранится в структуре данных этого соседа.

Таблица соседей содержит элементы этой структуры. Для каждого модуля, зависимого от протокола, ведется одна Таблица соседей. Когда маршрутизатор посылает пакет Hello, он объявляет HoldTime - время, в течение которого маршрутизатор ждет отклика соседа. Если пакет Hello не принимается в течение отведенного времени, то это свидетельствует о том, что сосед или недоступен, или не работает. Истечение времени HoldTime является признаком, по которому алгоритм DUAL определяет изменение топологии сети.

Элемент Таблицы соседей также включает в себя информацию, необходимую для механизма работы Надежного транспортного протокола. Для согласования подтверждения приема пакетов данных используются последовательные номера. Записывается последний последовательный номер, полученный от соседа, таким образом можно обнаружить несогласованные пакеты. Для постановки пакетов в очередь на случай повторной передачи применяется список передачи (transmission list), который составляется для каждого соседа. Для оценки оптимальных интервалов повторной передачи в структуре данных соседа хранятся Таймеры полного обхода маршрута.

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

Таблица топологии пополняется модулями, зависимыми от протоколов, а работает с ней блок конечных состояний алгоритма DUAL. Таблица содержит все пункты назначения, объявленные соседними маршрутизаторами. К каждому элементу привязан адрес пункта назначения и список соседей, объявивших данный пункт назначения. Для каждого соседа записывается объявленный показатель, который сосед хранит в таблице маршрутизации. Если сосед объявляет этот пункт назначения, то для передачи пакета должен использоваться маршрут, соответствующий данному показателю. Это важное правило, которого должны придерживаться дистанционные векторные протоколы.

Также к каждому пункту привязан показатель, который маршрутизатор использует для передачи к пункту назначения. Этот показатель представляет собой сумму лучших объявленных показателей всех соседей и стоимость связи к лучшему соседу. Этот суммарный показатель маршрутизатор использует в таблице маршрутизации и для объявления других маршрутизаторов.

4.3. Вероятные последующие элементы.

Элемент пункта назначения переносится из таблицы топологии в таблицу маршрутизации, когда в ней есть вероятный последующий элемент. Все самые дешевые пути к пункту назначения формируют группу, в которой соседи с объявленными показателями, меньшими, чем текущий показатель таблицы маршрутизации, считаются вероятными последующими элементами.

Вероятные последующие элементы рассматриваются маршрутизатором как соседи, расположенные ближе к пункту назначения. Эти соседи и связанные с ними показатели помещаются в таблицу продвижения.

Когда сосед при объявлении изменяет показатель или в сети происходит изменение топологии, возможно, что группу вероятных последующих элементов придется переоценивать. Однако это не классифицируется как пересчет маршрута.

4.4. Состояния маршрута.

Элемент таблицы топологии для пункта назначения может находиться в одном из двух состояний. Считается, что маршрут находится в пассивном состоянии (Passive state), когда в этот момент маршрутизатор не производит пересчет маршрута. Маршрут находится в активном состоянии (Active state), когда в этот момент маршрутизатор производит пересчет маршрута. Если всегда есть вероятные последующие элементы, маршрут никогда не переходит в активное состояние, и таким образом нет необходимости пересчитывать маршрут.

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

Когда связь с соседом, который представляет собой только вероятный последующий элемент, прерывается, все маршрутизаторы, связанные с ним, начинают пересчет маршрута, и он переходит в активное состояние.

4.5. Форматы пакетов.

Протокол EIGRP использует пять типов пакетов:

  • Hello/Ack(nowledgment) (Приветствие/Подтверждение)
  • Update (Обновление)
  • Query (Запрос)
  • Reply (Отклик)
  • Request (Запрос-требование)

Как отмечалось выше, пакеты Hello направляются в режиме мультиотправки для обнаружения/восстановления соседа. Им не требуется подтверждения. Пакеты Hello, не содержащие данных, также используется как подтверждение.

Пакеты подтверждений (Acks) всегда посылаются в режиме одиночной отправки и содержат ненулевой номер подтверждения.

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

Пакеты запросов (Query) и откликов (Reply) посылаются, когда маршруты назначений переходят в активное состояние. Пакеты

Query всегда посылаются в режиме мультиотправки, за исключением тех случаев, когда они направляются в ответ на полученный запрос. В этом случае запрос посылается в режиме одиночной отправки обратно последующему элементу, создавшему первоначальный запрос. Пакеты Reply всегда посылаются в ответ на запрос Query, чтобы оповестить запрашивающего о том, что переходить в активное состояние не нужно, так как откликающийся располагает вероятными последующими элементами. Пакеты Reply посылаются в режиме одиночной отправки запрашивающему. Как пакеты Query, так и пакеты Reply передаются с помощью Надежного транспортного протокола.

Пакеты запросов-требований Request используются для получения специфической информации от одного или нескольких соседей. Пакеты Request используются прикладными приложениями маршрутных серверов. Пакеты Request могут посылаться в режиме мультиотправки и одиночной отправки. Пакеты Request передаются без использования Надежного транспортного протокола.

4.6. Тегирование маршрута.

В протоколе EIGRP существует определение внутренних и внешних маршрутов.

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

Внешние маршруты - это маршруты, которые распознаются другим протоколом маршрутизации или постоянно хранятся в таблице маршрутизации как статические маршруты. Такие маршруты тегируются индивидуально идентично их происхождению.

Внешние маршруты тегируются со следующей информацией:

- Идентификатор маршрутизатора EIGRP, который перераспределяет маршрут.

- Номер автономной системы AS, где постоянно хранится маршрут.

- Конфигурируемый тег администратора.

- Идентификатор внешнего протокола.

- Показатель из внешнего протокола.

- Битовые флаги для маршрутизации по умолчанию.

В качестве примера предположим, что у нас есть автономная система AS с тремя граничными маршрутизаторами. Граничный маршрутизатор - это маршрутизатор, который работает более чем с одним протоколом маршрутизации. Система AS пользуется протоколом EIGRP в качестве протокола маршрутизации. Предположим, что два граничных маршрутизатора BR1 и BR2 используют OSPF (Открытый протокол предпочтения кратчайшего пути), а третий BR3 - RIP (Протокол маршрутизации для сетей TCP/IP).

Маршруты, распознаваемые одним из граничных маршрутизаторов

BR1, могут условно перераспределяться в EIGRP. Это означает, что протокол EIGRP, выполняемый на BR1, будет объявлять маршруты OSPF внутри своей собственной AS. При этом он будет объявлять маршрут и тегировать его в качестве опознанного маршрута OSPF с показателем, равным показателю таблицы маршрутизации маршрута OSPF. Идентификатор маршрутизатора будет установлен = BR1. Маршрут EIGRP будет передаваться другим граничным маршрутизаторам.

Предположим, что BR3 - граничный маршрутизатор протокола RIP - также объявляет те же пункты назначения, что и BR1. Поэтому BR3 перераспределяет маршруты протокола RIP в автономную систему AS протокола EIGRP. После этого маршрутизатор BR2 обладает достаточной информацией для определения: точки входа маршрута в систему AS, используемого начального протокола маршрутизации и показателя.

Далее, администратор сети мог задать значения тегов специфическим пунктам назначения при перераспределении маршрута. BR2 может воспользоваться любым вариантом следующей информации: 1) пользоваться маршрутом или 2) переобъявить его, вернувшись в OSPF.

Использование тегирования маршрута в протоколе EIGRP может предоставить администратору сети гибкий стратегический контроль и помочь настроить маршрутизацию в соответствии с нуждами пользователей.

Тегирование маршрутов - особенно полезно в транзитных автономных системах, в которых протокол EIGRP обычно взаимодействует с протоколами маршрутизации между доменами, что обеспечивает осуществление более глобальных стратегий. Тегирование помогает проводить маршрутизацию для расширяемых стратегий.

5.0. Режим совместимости.

Протокол EIGRP обеспечивает совместимость и полное взаимодействие с маршрутизаторами IGRP. Это важное свойство, так как пользователи могут получать преимущества от обоих протоколов. Совместимость позволяет пользователям не назначать "особый день" для перехода на протокол EIGRP. Протокол EIGRP можно сделать доступным на стратегических пунктах, не прерывая работу в протоколе IGRP.

С помощью автоматического механизма перераспределения маршруты IGRP импортируются в EIGRP и наоборот. Так как показатели обоих протоколов направленно транслируемые, они легко сличимы, как если бы они были маршрутами, порожденными в собственных автономных системах. Кроме того, маршруты IGRP рассматриваются как внешние маршруты протокола EIGRP, поэтому доступны возможности тегирования для настройки маршрутов пользователей.

По умолчанию маршруты IGRP имеют более высокий приоритет, чем маршруты EIGRP. Такую установку можно изменить с помощью команды конфигурации, для чего не надо перезапускать процесс маршрутизации.

6.0. Пример алгоритма DUAL.

Следующая топология иллюстрирует, как происходит конвергенция по алгоритму DUAL. В примере рассматривается лишь один пункт назначения - N. Около каждого узла в скобках приведена стоимость линии связи. "Стрелки" указывают на последующий элемент. Например, C использует A, чтобы добраться до N, и стоимость - (2).


Если связь между A и B прерывается, B посылает запрос Query, информирующий его соседа, что В потерял вероятный последующий элемент. D получает запрос и определяет, есть ли у него любые другие вероятные последующие элементы. Если таковых нет, ему придется начать расчет маршрута и перейти в активное состояние. Однако в данном случае C является вероятным последующим элементом, так как стоимость (2) меньше текущей стоимости D - (3) до пункта назначения N. D может переключиться на C как на свой последующий элемент.

Заметьте, что A и C не принимали участия, потому что они не были затронуты изменением.

Теперь давайте вызовем необходимость пересчета маршрута. Пусть теперь прерывается связь между A и C. C определяет, что потерял свой последующий элемент и что нет никаких других вероятных последующих элементов. D не рассматривается как вероятный последующий элемент, потому что его объявленный показатель - (3), а это больше, чем текущий показатель C - (2). C должен выполнять пересчет маршрута для пункта назначения N. C посылает запрос своему единственному соседу - D. D посылает отклик (Reply), потому что его последующий элемент не изменился. D не нужно выполнять пересчет маршрута. Когда C получает отклик, он узнает, что все соседи обработали сообщение о разрыве связи с пунктом N. С этого момента C может выбрать свой новый вероятный последующий элемент - D со стоимостью 4 до пункта назначения N.

Заметьте, что A и B не были затронуты изменением топологии, и D нужно просто откликнуться C.

 

ООО "Новаком" тел./факс (343) 263-74-66 (многоканальный),   info@novacom.ru