Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дибров М.В. Маршрутизаторы.pdf
Скачиваний:
674
Добавлен:
06.03.2016
Размер:
5.01 Mб
Скачать

6 Протокол EIGRP

Протокол EIGRP (Enhanced Interior Getaway Routing Protocol) – расширенный протокол маршрутизации внутреннего шлюза является расширенной версией протокола IGRP. Он является фирменным протоколом корпорации Cisco представленным в 1994 году, однако в настоящее время ряд сторонних производителей лицензировал EIGRP для реализации в своем телекоммуникационном оборудовании.

Протокол EIGRP берет свое начало от дистанционно–векторной маршрутизации. Как и его предшественник, протокол IGRP, EIGRP прост в настройке и нашел применение в большом спектре сетевых топологий.

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

Однако в основе протокола EIGRP лежит не алгоритм Беллмана-Форда, а алгоритм DUAL (Diffusing Update Algorithm), алгоритм диффузионного обновления. Сам алгоритм ведет свое начало от работы Эдсгера Дейкстры и К. С. Шольтена (Edsger Dijkstra, C. S. Sholten) «Termination Detection for Diffusing Computations» изданной в 1980 году.

Алгоритм DUAL подкреплен многими математическими работами, основной из которых является «Loop-Free Routing Using Diffusing Computations», написанная Х. Х. Гарсия-Луна-Асевесом (J. J. Garcia-Luna-Aceves).

6.1 Алгоритм диффузионного обновления

Алгоритм DUAL лежит в основе протокола EIGRP. Поэтому рассмотрим его первым. Начнем с классического алгоритма DUAL. А затем рассмотрим необходимые изменения для адаптации алгоритма для протокола маршрутизации EIGRP.

Протоколы маршрутизации на основе дистанционно-векторного алгоритма Беллмана-Форда, имеют две фундаментальные проблемы:

Маршрутные петли;

Счет до бесконечности.

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

98

До достижения сходимости сети, метрики могут неточно отражать действительную стоимость маршрутов, что может привести к маршрутным петлям.

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

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

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

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

Возникает вопрос: что такого ценного в заявленном расстоянии? На рисунке 6.1 изображена топология сети, с маршрутизатором R1 в центре. У маршрутизатора R1 имеется маршрут к некоторой сети получателю (СП) через маршрутизатор R2.

99

5 0 1

40

0 4 1

R5

5 135

R1

30

105

 

R4

СП

0 0 1

5R2

1

 

0

 

0

100

R3

Рисунок 6.1 – Обработка топологии сети алгоритмом Беллмана-Форда

Стрелки с числами указывают, с какой метрикой маршрутизатор, с которого указывает стрелка, объявляет маршрут до СП на соответствующем канале связи. Числа в кругах указывают стоимость каналов связи. Маршрутизаторы вычисляют свои метрики сложением метрики из маршрутного обновления со стоимостью канала связи, через который обновление было получено.

Маршрутизатор R1 изначально выбрал маршрутизатор R2 в качестве следующего маршрутизатора к СП, поскольку объявленная метрика маршрутизатора R2 (100) в сумме со стоимостью канала связи до него (5) дала наименьшее значение (100 + 5 = 105).

Расположение маршрутизаторов R4 и R5 таково, что независимо от того, какой путь они изберут для передачи трафика, направленного до СП, этот путь пролегает через маршрутизатор R1. Например, маршрутизатор R5 может отправить трафик непосредственно на маршрутизатор R1 через канал связи между двумя этими маршрутизаторами. Или же он может выбрать альтернативный маршрут, показанный на рисунке 6.1 в виде пунктирной линии. Этот путь сначала приводит трафик на маршрутизатор R4, который затем передает его на маршрутизатор R1.

Как показано на рисунке метрика пути по альтернативному маршруту меньше, чем метрика прямого маршрута через маршрутизатор R1, следовательно, маршрутизатор R5 выбирает альтернативный маршрут. Несмотря на то, что объявляемая маршрутизатором R1 метрика (105) меньше, маршрутизатор R5 выбирает маршрут через другого соседа, поскольку объявляемая соседом метрика (135) в сумме со стоимостью сегмента, дает меньшее значение (135 + 5 = 140), чем метрика маршрута через маршрутизатор R1 (105 + 40 = 145).

100

На рисунках 6.2 и 6.3 показаны представления маршрутизатора R1 о топологии после обнаружения им отказа маршрутизатора R2. Разница между двумя рисунками заключается в том, что на рисунке 6.2 маршрутизатор R1 отбросил объявленные его соседом метрики для сети получателя СП, тогда как на рисунке 6.3 он их запомнил.

СП

R2

180

 

R1

200

 

 

 

40

100

 

 

 

30

 

R5

 

R3

5

R4

Рисунок 6.2 – Поиск альтернативного маршрута алгоритмом Беллмана-Форда

На рисунке 6.2 перед маршрутизатором R1 стоит дилемма: два маршрутизатора которые недавно объявляли СП, это маршрутизаторы R3 и R5. Те менее, несмотря на меньшую результирующую метрику маршрута к СП через маршрутизатор R5, маршрутизатор не может положиться на эту метрику, поскольку она может быть устаревшей. Поэтому маршрутизатор R1 должен использовать нормальные процедуры достижения стабильности, такие, как таймеры удержания информации, мгновенные обновления, а также другие описанные ранее методы, чтобы убедиться, что он не имеет дело с устаревшей информацией о метрике.

На рисунке 6.3 маршрутизатор R1 запомнил метрики, с которыми был объявлен СП всеми его соседями. Поэтому при обнаружении отказа маршрутизатора R2 маршрутизатор R1 способен сразу определить, что он не может положиться на лучшую метрику маршрутизатора R5, поскольку его объявленная метрика (140) больше, чем собственная метрика маршрутизатора R1 (105) через отказавший маршрутизатор R2. Это значит, что маршрутизатор R5 изначально находился дальше от СП, чем маршрутизатор R1.

101

СП

105

R2

R5

180

R1

200

 

 

00

 

 

 

1

40

 

100

 

 

 

 

0

 

 

 

4

 

 

 

1

30

 

 

 

 

 

 

 

 

R3

5

R4

Рисунок 6.3 – Поиск альтернативного маршрута алгоритмом DUAL

Наоборот, объявленная метрика маршрутизатором R3 равна 100, что меньше, чем 105, а значит, маршрутизатор R3 был изначально ближе к СП. Тем не менее, несмотря на более близкое исходное расположение маршрутизатора R3 к СП, «плохая» метрика маршрута через него 200 против 180, метрики через маршрутизатор R5 не позволяет маршрутизатору R1 выбрать этот маршрут.

В этой конкретной ситуации маршрутизатор R1 до сих пор не знает точно, может ли он использовать маршрутизатор R5 в качестве нового следующего маршрутизатора для СП, поскольку он не знает еще, почему объявленная маршрутизатором R5 метрика больше, чем собственная метрика маршрутизатора R1. Возможно, причина в том, что маршрут маршрутизатора R5 лежит через маршрут самого R1, и тогда восстановление маршрута через маршрутизатор R5 приведет к созданию маршрутной петли. Или, может быть, маршрут маршрутизатора R5 просто более длинный, но он не лежит через маршрутизатор R1, в таком случае восстановление маршрута через R5 допустимо.

До сих пор могло казаться, что знание маршрутизатором R1 метрик своих соседей для СП не представляет никаких преимуществ.

Представим, что стоимость сегмента, соединяющего маршрутизаторы R1 и R3, равна 10 (Рисунок 6.4).

Изначально маршрутизатор R1 все равно бы использовал маршрут через маршрутизатор R2. Но после отказа маршрутизатора R2 маршрутизатор R1 мог бы сразу выбрать маршрутизатор R3 в качестве нового следующего маршрутизатора, поскольку маршрутизатор R3 дал бы новую, лучшую метрику - 110 против 180 для маршрутизатора R5.

102