69585

RIP практика

Практическая работа

Информатика, кибернетика и программирование

На прошлом уроке были рассмотрены основные приемы конфигурации протокола RIP. Для закрепления полученных знаний и приобретения практических навыков конфигурирования составных сетей, работающих под управлением протокола RIP, рассмотрим примеры настроек приведенных схем.

Русский

2014-10-07

3.01 MB

3 чел.

RIP практика

На прошлом уроке были рассмотрены основные приемы конфигурации протокола RIP. Для закрепления полученных знаний и приобретения практических навыков конфигурирования составных сетей, работающих под управлением протокола RIP, рассмотрим примеры настроек приведенных схем.

Схема 1

Реализация данной схемы в сети под управлением операционной системы Windows 2003 Server подразумевает использование следующей конфигурации:

Для R1

Протокол RIP активен на интерфейсе 11.0.0.2/8 (right)

Для R2

Протокол RIP активен на интерфейсе 11.0.0.1/8 (left) и 13.0.0.1/8 (right)

Для R3

Протокол RIP активен на интерфейсе 13.0.0.2/8 (left)

При неактивных механизмах улучшения работы RIP (как видно из приведенных примеров – на маршрутизаторах отключены все дополнительные возможности: split horizon, poisoning reverse, triggered update)

Тогда трафик на участке R1 – R2 имеет вид:

R1-> R2

Маршрутизатор R1 в начале взаимодействия передает своему соседу маршрут в единственную сеть, известную на данный момент – сеть 10.0.0.0/8 с метрикой 2.

R2 ->R1

В тоже время, маршрутизатор R2 отправляет своему соседу информацию об известных на данный момент сетях 12.0.0.0/8 и 13.0.0.0/8 с метрикой 2.

Спустя некоторое время, маршрутизаторы узнают новые маршруты и обмениваются информацией между собой, однако отсутствие технологии split horizon приводит к сообщению маршрутов тем маршрутизаторам, от которых данные маршруты были получены. Например, R2 ->R1, сообщается маршрут в сеть 10.0.0.0/8 и естественно с увеличенной на 1 метрикой, что в дальнейшем может послужить началом образования маршрутной петли.

Аналогично себя ведет и R1, принятый накануне от R2 маршрут в сеть 14.0.0.0/8 переобъявляется этому же маршрутизатору с увеличинной метрикой.

Результатом подобных взаимодействий, становится маршрутная петля, образующаяся при отказе интерфейса R1, подключенного в сеть 10.0.0.0/8

Как и в предыдущем случае, R2 объявляет о маршруте в сеть 10.0.0.0/8 и сообщает метрику 3. При нормальных условиях, маршрутизатор R1 знает сеть 10.0.0.0/8 как подключенную, т.е. сеть с метрикой 1 в следствии чего при сравнении принятого и существующего маршрутов R1 оставляет маршрут с минимальной метрикой и петли не возникает. При отказе интерфейса в сеть 10.0.0.0/8, на R1 маршрут в данную сеть удаляется, однако полученный в следующий момент времени пакет от R2, сообщает новый маршрут в сеть 10.0.0.0/8 и в соответствии с логикой работы RIP, шлюзом в данную сеть становится R2. Подтверждением образования маршрутной петли служит увеличение значения метрики маршрута в сеть 10.0.0.0/8 в объявлении маршрутизатора R1.

Для предотвращения образования маршрутных петель активируем технологию split horizon.

При этом маршрутизаторы не должны передавать друг другу информацию о маршрутах полученных при взаимном обмене данными. Проанализируем трафик между маршрутизаторами R1 и R2 спустя некоторое время после применения изменений (активации split horizon).

R2 -> R1

R1 -> R2

R2 -> R1

Представленный выше анализ трех последовательных пакетов переданных маршрутизаторами друг другу – дублирование маршрутов отсутствует. Каждый маршрутизатор сообщает только те маршруты, которые стали известны в результате иных взаимодействий, но не при обмене R1-R2.

Для усиления эффекта технологии split horizon, рекомендуется дополнительная технология – poisoning reverse, суть которой заключается в явном указании соседнему маршрутизатору тех маршрутов, которые были получены от этого маршрутизатора. Причем, маршрут сообщается с метрикой 16 и явно указанным шлюзом, адрес которого совпадает с адресом маршрутизатора, от которого был получен данный маршрут.

В результате применения новой конфигурации, взаимодействие между маршрутизаторами R1 и R2 имеет вид

R2 -> R1

R1 -> R2

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

Следующая полезная технология, позволяющая минимизировать время распространения информации об изменении маршрутной картины, называется triggered update. При этом, разрешается передавать информацию об изменениях, не дожидаясь наступления формального времени по интервалу 30 сек. При необходимости передачи подобной информации, маршрутизатор должен случайным образом выбрать значение времени из диапазона от 1 до 5 секунд, выждать это время и затем осуществить передачу. Такая процедура выполняется для предотвращения лавинообразного трафика при передаче изменений между маршрутизаторами в больших сетях.

После применения обновленной конфигурации, проанализируем взаимодействие между маршрутизаторами R1 и R2. В качестве изменения маршрутной картины используем замену адреса интерфейса маршрутизатора R1, подключенного в сеть 10.0.0.0/8. Изменим адрес с 10.0.0.1 на 55.0.0.1, при этом время нового объявления маршрутизатора R1 c указанием маршрута в сеть 55.0.0.0/8 должно быть в интервале меньшем, чем 30 секунд относительно предыдущего объявления R1.

Относительное время (момент времени) передачи объявления, как следует из снимка, составляет 34,88 секунды. Сразу, после этого объявления на R1 производится указанная замена адреса. А трафик в соединении R1-R2 продолжает записываться.

Следующее объявление маршрутизатор посылает в момент времени, соответствующий  49,88 секунды. Т.о. прошло 15 секунд, и это с учетом того, что в этом интервале происходило само по себе конфигурирование интерфейса (применение изменений IP). Рассчитанный интервал, вдвое меньше интервала по умолчанию (30 секунд), подобное нарушение расписания рассылки объявлений связано с использованием технологии triggered update.

Рассмотрим следующий пример конфигурации протокола RIP, в составной сети, работающей под управлением оборудования CISCO.

Схема 2

В качестве эмулятора, используем Bosson Netsim 6.0.

Собираем следующую схему (Router 3640, Switch 2950)

Для R1 выполняем следующие настройки

1. Присваиваем имя R1

2. Конфигурируем интерфейсы

3. Конфигурируем RIP

указываем, что через интерфейс e0/0 ненужно рассылать объявления, т.к. этот интерфейс подключен в тупиковую сеть

Для PC1

Аналогично, настраиваем остальных участников схемы. По окончании настройки, взаимодействия между маршрутизаторами анализируются при помощи команды #debug ip rip.

Спустя некоторое время (~1 мин) на каждом маршрутизаторе проверяется таблица маршрутизации.

Для R1

Для R2

Для R3

Для R4

Работу схемы проверяют командой trace, выполняемой на одной из станций в адрес максимально удаленной станции. Например PC1 -> PC4

Для PC1

при этом замечается маршрут следования пакетов, в данном случае это путь через R1-R3-R4 (10.0.0.1-11.0.0.1-15.0.0.1). После чего на одном из транзитных маршрутизаторов выключается интерфейс, имитируя отказ маршрута.

после отключения интерфейса, отслеживается работа RIP на маршрутизаторе, к которому подключен источник пакетов, в данном случае R1. При верной настройке, отказавший маршрут должен быть переобъявлен с другой стороны схемы, в данном случае – через R2.

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

повторная проверка достижимости PC1->PC4 подтверждает правильность настройки протокола RIP, и показывает новый путь следования пакетов R1-R2-R4 (10.0.0.1-17.0.0.2-13.0.0.2)

Аналогичные проверки можно производить для любого участка схемы.

Для более подробного изучения приемов конфигурирования работы протокола RIP под управлением операционной системы CISCO IOS предлагается использовать эмулятор IPFLOW. Данный эмулятор предоставляет возможность изучения настроек маршрутизаторов CISCO серии 7200. Отличительной особенностью IPFLOW, является принцип эмуляции устройства, а именно – в качестве программного обеспечения используется реальная операционная система CISCO IOS, но в качестве аппаратной платформы используется PC и подключенные сетевые интерфейсы. Таким образом, проигрыш от эмуляции заключается только лишь в ощутимом падении производительности системы, в следствие отличия потенциалов аппаратной части маршрутизаторов CISCO и конфигурации большинства компьютеров платформы PC.

Для запуска IPFLOW под операционной системой MS Windows, кроме самого эмулятора необходимы библиотеки cygwin и winpcap.

Библиотека cygwin.dll доступна вместе с IPFLOW по адресу:

http://www.ipflow.utc.fr/dynamips/dynamips-0.2.4-cygwin.zip

Библиотека winpcap доступна по адресу:

http://www.winpcap.org/

Рекомендации по установки IPFlow в ОС MS Windows.

1. Установить winpcap.

2. Создать каталог, например C:\IPFLOW\

3. В данный каталог распаковать содержимое dynamips-0.2.4-cygwin.zip

4. В командной строке выполняем команду C:\IPFLOW\dynamips.exe –e

- результатом выполнения будет вывод на экран информации примерно следующего содержания

Cisco 7200 Simulation Platform (version 0.2.4-x86)

Copyright (c) 2005,2006 Christophe Fillot.

Network device list:

  \Device\NPF_{6C9CC61C-A270-4D58-931D-692665C97021}: Realtek 8139-series PCI NIC

           (Microsoft's Packet Scheduler)

  \Device\NPF_{A059E98E-99A6-489F-BF0A-12242C5A2EE4}: Intel(R) PRO/100 VE Network Connection (Microsoft's Packet Scheduler)

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

5. Создать run.cmd или run.bat файл, содержащий следующую запись (пример для вышеописанного эха, все в одну строчку)

dynamips.exe -t npe-400 -p 0:C7200-IO-FE -s 0:C7200-IO-FE:gen_eth:"\Device\NPF_{6C9CC61C-A270-4D58-931D-692665C97021}"  -p 1:PA-FE-TX  -s 1:PA-FE-TX:gen_eth:"\Device\NPF_{A059E98E-99A6-489F-BF0A-12242C5A2EE4}"  c7200-advipservicesk9-mz.124-4.T1.bin

, где c7200-advipservicesk9-mz.124-4.T1.bin – файл, содержащий образ реальной CISCO IOS.

В результате, после запуска файла run, в окне консоли эмулируется терминал управления маршрутизатором CISCO.

Конфигурация и настройка происходят так же как и эмуляторе Bosson NetSim, в добавок становятся доступны указанные ниже команды в контексте конфигурации протокола Rip.

ЗАМЕЧАНИЕ: перед настройкой протокола RIP в данном маршрутизаторе необходимо включить маршрутизацию, это осуществляется командой

                     R1(config)#ip routing

distribute-list in - указывает условие (фильтр) приема объявляемых другими маршрутизаторами сетей.

Пример разрешения приема маршрутов в направление 0.0.0.0 и 131.108.0.0:

access-list 1 permit 0.0.0.0

access-list 1 permit 131.108.0.0

access-list 1 deny 0.0.0.0 255.255.255.255

router rip 

 network 131.108.0.0

 distribute-list 1 in

distribute-list out - указывает условие (фильтр) объявления известных маршрутизатору сетей.

Пример разрешения объявления маршрута в сеть 131.108.0.0:

access-list 1 permit 131.108.0.0

access-list 1 deny 0.0.0.0 255.255.255.255

router rip

 network 131.108.0.0

 distribute-list 1 out

ip rip receive version - указывает, объявления каких версий RIP можно принимать

Пример разрешения всех версий

ip rip receive version 1 2

Пример разрешения только версии 1

ip rip receive version 1

ip rip send version - указывает, в какой версии формировать пакеты при объявлениях

Пример разрешения всех версий

ip rip send version 1 2

Пример разрешения только версии 1

ip rip send version 1

ip rip triggered - разрешает внеочередные объявления об изменениях через данный интерфейс

Пример разрешения на сериал интерфейсе

interface serial 0

 ip rip triggered

ip rip v2-broadcast - разрешает отправку широковещательных объявлений через интерфейс (по умолчанию во второй версии объявления оправляются как мультикаст).

Пример разрешения для интерфейса e3/1

Router(config) interface ethernet3/1

Router(config-if) ip address 172.1.1.1 255.255.255.0

Router(config-if) ip rip v2-broadcast

.

.

Router(config-if) router rip

Router(config-if) version 2

Router(config-if) network 172.0.0.0

Дополнительно необходимо проверить сообщения отладки,

если команда выполнена, то эхо имеет вид:

Router# debug ip rip

14:41:59: RIP: sending v2 update to 255.255.255.255 via Ethernet3/1 (172.1.1.1)

если команда не выполнена, то эхо имеет вид:

Router# debug ip rip

15:45:16: RIP: sending v2 update to 244.0.0.9 via Ethernet3.1 (172.1.1.1)

ip split-horizon – включает режим split horizon на заданном интерфейсе

Пример включения для e0/1

interface e0/1

ip split-horizon

neighbor – указывает соседние маршрутизаторы для обмена данными

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

router rip

 network 10.108.0.0

 passive-interface ethernet 1

 neighbor 10.108.20.4

show ip rip database – выводит информацию накопленную протоколом RIP в процессе работы

Пример

Router# show ip rip database

10.0.0.0/8    auto-summary

10.11.11.0/24    directly connected, Ethernet2

10.1.0.0/8    auto-summary

10.11.0.0/16    int-summary

^^^^^^^^^^^^^^^^^^^^^^^^^^^

10.11.10.0/24    directly connected, Ethernet3

10.11.11.0/24    directly connected, Ethernet4

10.11.12.0/24    directly connected, Ethernet5

следующий синтаксис позволяет уточнить диапазон интересующих подсетей:

Router# show ip rip database 172.19.86.0 255.255.255.0

172.19.86.0/24

   [1] via 172.19.67.38, 00:00:25, Serial0

   [2] via 172.19.70.36, 00:00:14, Serial1

timers basic – установка таймеров протокола RIP в секундах

Формат timers basic update invalid holddown flush

Пример

router rip

 timers basic 5  15  15  30

Все доступные команды протокола RIP можно найти по адресу:

http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fiprrp_r/1rfrip.htm

IGRP

Протокол маршрутизации внутреннего шлюза (Interior Gateway Routing Protokol - IGRP), является протоколом маршрутизации, разработанным в середине 1980 гг. компанией Cisco Systems, Inc. Главной целью, которую преследовала Cisco при разработке IGRP, было создание протокола для маршрутизации в пределах автономной системы (AS), имеющей произвольную сложную топологию и включающую в себя магистрали с разнообразными характеристиками ширины полосы и задержки. AS является набором сетей, которые находятся под единым управлением и совместно используют общую стратегию маршрутизации. Обычно, AS присваивается уникальный 16-битовый номер, который назначается Центром Сетевой Информации (Network Information Center - NIC).

В середине 1980 гг. наибольшую популярность среди протоколов маршрутизации, используемых внутри AS, приобрел протокол RIP. RIP  использовался для маршрутизации в пределах относительно однородных составных сетей небольшого или среднего размера образующих AS, а ограничения данного протокола сдерживали дальнейший рост автономных систем.  В частности, небольшая допустимая величина числа пересылок (15) RIP ограничивала размер объединенной сети, а его единственный показатель – метрика по количеству пересылок, не обеспечивал достаточную гибкость в сложно организованных сетях. Популярность маршрутизаторов Cisco и функциональность вновь созданного протокола IGRP явились решающими факторами, повлиявшими на переход большинства провайдеров крупных составных сетей на использование протокола IGRP, вместо устаревшего RIP.

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

IGRP использует в качестве вектора расстояния - комбинацию свойств сообщаемого маршрута, а именно: задержка составной сети (internetwork delay), ширина полосы (bandwidth), надежность (reliability) и нагрузка (load) - все эти показатели учитываются в виде коэффициентов при принятии решения об использовании того или иного маршрута. Администраторы сети могут устанавливать факторы весомости для каждого из этих показателей, т.е допустимые пределы показателей свойств маршрута, которые будут определять возможность его использования и в общем – дальнейшую судьбу данного маршрута. IGRP использует либо установленные администратором, либо устанавливаемые по умолчанию весомости для автоматического расчета оптимальных маршрутов.

IGRP предусматривает широкий диапазон значений для своих показателей. Например, надежность и нагрузка могут принимать любое значение в интервале от 1 до 255, ширина полосы может принимать значения, отражающие скорости пропускания от 1200 до 10 гигабит в секунду, в то время как задержка может принимать любое значение от 1-2 до 24-го порядка. Широкие диапазоны значений показателей позволяют производить удовлетворительную регулировку показателя в составной сети с большим диапазоном изменения характеристик производительности. Самым важным является то, что компоненты показателей объединяются по алгоритму, который определяет пользователь. В результате администраторы сети могут оказывать влияние на выбор маршрута, используя наборы правил, называемые политиками.

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

Преимущества протокола IGRP по сравнению с RIP:

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

Однако, как и RIPv1, протокол IGRP не поддерживал распространение информации о масках подсетей.

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

  •  время задержки;
  •  пропускную способность самого слабого сегмента пути (в битах в сек);
  •  загруженность канала (относительную);
  •  надежность канала (определяется долей пакетов, достигших места назначения неповрежденными).

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

Среди параметров, которые контролируются, но не учитываются метрикой, находятся число шагов до цели и MTU (maximum transfer unit - размер пакета пересылаемого без фрагментации). Расчет метрики производится для каждого сегмента пути.

Время от времени каждый маршрутизатор широковещательно рассылает свою маршрутную информацию всем соседним маршрутизаторам. Получатель сравнивает эти данные с уже имеющимися маршрутами и вносит, если требуется, необходимые коррекции. На основании вновь полученной информации могут быть приняты решения об изменении маршрутов. Эта процедура типична для многих маршрутизаторов, а такой алгоритм носит имя Белмана-Форда. (RFC-1058). Наилучший путь выбирается с использованием комбинированной метрики, вычисленной по формуле:

Метрика =  (K1*Bw) + (K2*Bw)/(256-Load) + (K3*Delay)*(K5/(Reliability + K4))                  [1]

Для IGMP используют следующие значения коэффициентов

K1 = 1

K2 = 0

K3 = 1

K4 = 0

K5 = 0

Bw  - коэффициент пропускной способности маршрута

Load - загруженность маршрута в долях (от 1 до 255)

Delay - топологическая задержка маршрута в десятках миллисекунд

Reliability - надежность маршрута в долях (от 1 до 255)

Более подробно приведенные переменные рассматриваются при описании структуры пакета IGRP, далее в тексте урока.

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

Пусть маршрутизатор R2 связан, через соответствующие интерфейсы, с сетями 2 и 3.

Таким образом, в исходный момент маршрутизатор R2 знает только о доступности сетей 2 и 3. За счет обмена информацией, полученной при инициализации и присланной позднее соседями, маршрутизаторы дополняют свои таблицы. Так R2 спустя некоторое время получит информацию от маршрутизатора R1 о доступности сети 1 и от R3 - о сети 4. В свою очередь R2 проинформирует R3 о доступе сети 1 и т.д. Очень быстро информация о доступности дойдет до всех маршрутизаторов и разрозненные сети объединятся по средствам созданных маршрутных таблиц. Для пояснения выбора маршрута в условиях многовариантности рассмотрим схему:

Пусть каждый из маршрутизаторов уже вычислил комбинированную метрику для системы, изображенной на схеме. Для маршрута в сеть 6 маршрутизатор R1 вычислит метрику для двух путей, через маршрутизаторы R2 и R3. В действительности же существует три маршрута для R1 в сеть 6:

- непосредственно через R2
- через R3, а затем через R2
- через R3, а затем через R4

Маршрутизатору R1 не нужно выбирать между двумя маршрутами через R3. Маршрутная таблица R1содержит только одну запись, соответствующую пути к R3. Если маршрутизатор R1 посылает пакет маршрутизатору R3, то именно R3 решает, использовать далее путь через маршрутизаторы R2 или R4. Для каждого типа канала используется свое стандартное значение комбинированной задержки. Ниже приведен пример того, как может выглядеть маршрутная таблица в маршрутизаторе R1 для составной сети, изображенной на схеме

Направление

Следующий маршрутизатор

Метрика

Сеть 1

Нет

0

Сеть 2

Нет

0

Сеть 3

Нет

0

Сеть 4

R3

1270

Сеть 4

R2

1180

Сеть 5

R3

1270

Сеть 5

R2

2130

Сеть 6

R3

2040

Сеть 6

R2

1180

Для того чтобы обеспечить работу с большими и сложными сетями, в IGRP введены три усовершенствования алгоритма Белмана-Форда:

  1.  Для описания маршрута введена комбинированная метрика. Расчет комбинированной метрики проводится с использованием формулы [1]. Применение комбинированной метрики позволяет конфигурировать систему с учетом различных видов сервиса.
  2.  Вместо выбора одного пути с минимальной метрикой, информационный поток может быть поделен между несколькими путями с метрикой, лежащей в заданном интервале. Распределение потоков определяется соотношением величин комбинированной метрики. Таким образом, используются маршруты с комбинированной метрикой меньше некоторого предельного значения M, а также с метрикой меньше V*M, где V - значение вариации M (обычно задается оператором сети).
  3.  Существуют определенные проблемы с вариацией. Трудно определить стратегию использования вариации V>1 и избежать зацикливания пакетов. В современных реализациях V=1.
  4.  Разработан ряд мер, препятствующих осцилляциям маршрутов при изменении топологии сети.

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

Протокол маршрутизации IGRP предназначен для работы с несколькими типами сервиса (TOS) и несколькими протоколами. Под типами сервиса в TCP/IP подразумевается оптимизация маршрутизации по пропускной способности, задержке, надежности и т.д. Для решения этой задачи можно использовать весовые коэффициента K1 и K3 (формула [1]). При этом для каждого TOS подготавливается своя маршрутная таблица.

Для достижения устойчивости в больших сетях IGRP использует алгоритмы holddowns, split horizon, triggered updates и poisoning. Данные алгоритмы разработаны для предотвращения применения маршрутизаторами ошибочных маршрутов. Как описано в RFC 1058, это происходит, когда маршрут становится недоступным вследствие аппаратной ошибки одного из маршрутизаторов. В принципе, соседние маршрутизаторы должны определить недоступность маршрута и разослать по сети обновленную информацию, в которой данный маршрут обозначается как неиспользуемый. Однако существует вероятность того, что эти сообщения не достигнут некоторых частей распределенной сети или будут идти слишком долго, тогда как маршрутизаторы в ней продолжат рассылку информации с предложением недоступного маршрута. При подобном положении дел появление узлов маршрутизации неизбежно.

Алгоритм poisoning предназначен для предупреждения образования крупных узлов, в отличие от split horizon, который предотвращает узлы между соседними маршрутизаторами. Алгоритм poisoning основывается на правиле, что если в процессе работы метрика маршрута значительно увеличилась, то это следствие образования узла, и данный маршрут должен быть удален из таблицы маршрутов.

Triggered updates заставляет маршрутизатор рассылать информацию об изменениях в маршрутах, даже если время рассылки еще не пришло, т.е. осуществлять рассылку вне расписания формального интервала рассылок (для алгоритма IGRP этот интервал составляет 90 с).

Сообщения об изменении маршрутов должны содержать:

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

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

Существует 4 временные константы, управляющие процессом распространения маршрутной информации (эти константы определяются администратором сети):

Update Timer - период рассылки широковещательных сообщений об изменении маршрутов (это время по умолчанию равно 90 сек);

Invalid Timer - время жизни - если за это время не поступило никаких сообщений о данном маршруте, он считается нерабочим. Это время в несколько раз больше периода сообщений об изменениях (по умолчанию в 3 раза).

Holddown Timer - время удержания - когда какая то сеть становится недостижимой, такой маршрут переходит в режим удержания. В этом режиме информация о данном маршруте распространяется, как о недостижимом. Длительность этого режима и называется временем удержания. Обычно это время составляет  Invalid Timer + 10 секунд

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

IGRP-сообщение инкапсулируется в IP-пакет, это сообщение имеет следующие поля:

Version - версия протокола. Текущая версия протокола равна 0х01. Пакеты, имеющие другое значение, будут игнорироваться.

Opcode - используется для обозначения типа сообщения:
0х01 - Update message. Сообщения, содержащие обновленную информацию из таблицы маршрутов. Эти пакеты рассылаются в ответ на запрос других маршрутизаторов предоставить новую информацию о маршрутах.
0х02 - Request message. Запрос на посылку новой информации из таблицы маршрутизации.

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

AS Number - идентификатор автономной системы IGRP. Это поле указывает, к какой АS принадлежит маршрутизатор. Маршрутизатор может входить в более чем одну автономную систему. В каждой AS работает свой протокол, при этом таблицы протоколов разных AS различны и независимы. Хотя в IGRP допускается "утечка" маршрутной информации из одной автономной системы в другую, но это определяется не протоколом, а администратором.

Number of Interior routes – количество внутренних маршрутов, показывает, сколько маршрутных записей в данном объявлении, являются подсетями в подключенных сетях.

Number of System routes – количество системных маршрутов, показывает, сколько маршрутных записей в данном объявлении, не принадлежат подключенным сетям.

Number of Exterior routes - количество внешних маршрутов, показывает, сколько маршрутных записей в данном объявлении, являются агрегированными маршрутами.

Checksum - контрольная сумма, вычисляется для заголовка IGRP,  не учитывает заголовок IP-пакета.

IGRP запрос требует от адресата прислать свою маршрутную таблицу. Сообщение содержит только заголовок. Используются поля version, opcode и asystem, остальные поля обнуляются. IP-пакет, содержащий сообщение об изменении маршрутов, имеет 1500 байт (включая IP-заголовок). Для описанной выше схемы это позволяет включить в пакет до 104 записей. Если требуется больше записей, посылается несколько пакетов. Фрагментация пакетов не применяется.

Destination – содержит последние три октета для внутреннего маршрута (interior routes), например 24.5.0 для подключенной сети 10.24.5.0, т.к. первый октет известен (сеть подключена). Для системных (System) и внешних (Exterior) маршрутов – это соответственно первые три октета. В этом случае сообщаемые сети суммируются, так что последний октет всегда равен 0, т.е. направление 10.24.5.0 описывается как 10.24.5.

Delay – топологическая задержка, указывается в десятках микросекунд, из которых складывается задержка. Если поле задержки содержит только единицы, то направление недостижимо.

Bandwidth – пропускная способность маршрута. Пропускная способность измеряется в величинах, обратных бит/сек, умноженных на 1000. (Т.е., если пропускная способность равна N Кбит/с, то ее измерением в IGRP будет 10000000/N.).

MTU   - MTU, принимаемый маршрутизатором для передачи в данную сеть.

Reliability - надежность, указывается в диапазоне от 0х01 до 0xFF и показывает относительный уровень надежности сообщаемого маршрута в долях. 0xFF – указывает на надежный маршрут.

Load  - загруженность (занятость по полосе пропускания), указывается в диапазоне 0х01 до 0xFF и показывает загруженность сообщаемого маршрута в долях. 0xFF – указывает на полностью загруженный маршрут.

Hop Count - количество переходов, указывается в диапазоне между 0x00 (означает подключенную сеть) и 0xFF.

Значения по умолчанию для величин задержки и пропускной способности:

Media

Bandwidth (Kбит/сек)

Bw

Delay (мсек)

Delay

ATM 155Mb/s

155000

65

100

10

Fast Ethernet

100000

100

100

10

FDDI

100000

100

100

10

HSSI

45045

222

20000

2000

Token Ring (16Mb/s)

16000

625

630

63

Ethernet

10000

1000

1000

100

T1

1544

6476

20000

2000

E1

2048

5000

20000

2000

DS0

64

156250

20000

2000

56Kb/s

56

178571

20000

2000

Tunnel

9

1111111

500000

50000

Пример расчета метрики для линии с пропускной способностью 128Кбит/с и задержкой 84000 мкс. Значения коэффициентов К приняты по умолчанию, тогда

 М = Bw + Delay = 107/128 + 84000/10 =  86525

Таким образом, протокол динамической маршрутизации IGRP является логическим продолжением использования дистанционно-векторного алгоритма, впервые воплощенного в протоколе RIP. Улучшения IGRP касаются, прежде всего, изменения алгоритма определения метрик, ровно, как и понятия метрики в целом. И хотя в IGRP метрика маршрута также  является определяющей характеристикой, определение значения метрики происходит гораздо сложнее, при этом учитываются характеристики качества маршрута, допустимые значения которых определяются администратором сети. Однако, IGRP как и RIP v1 не поддерживал работу с подсетями, т.е. областью его применения были сети, использующие стандартные маски, соответствующие классам IP адресов. Учитывая явные преимущества IGRP, компания CISCO продолжила работу по дальнейшему развитию протокола. И как следствие, в начале 90-х годов была разработана новая версия протокола IGRP - EIGRP с улучшенным алгоритмом оптимизации маршрутов, сокращенным временем взаимодействия и поддержкой масок подсетей переменной длины.

EIGRP (Enhanced Interior Gateway Routing Protocol)

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

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

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

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

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

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

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

Блок конечных состояний алгоритма DUAL реализует процесс принятия решений при расчете маршрутов. Так же блок отслеживает маршруты, объявленные соседями. Алгоритм DUAL выбирает маршруты, которые включаются в таблицу маршрутизации, основанную на принципе «вероятных заместителей». Суть принципа заключается в использовании одного основного шлюза в заданную сеть и одного запасного шлюза. Запасной шлюз не используется до тех пор, пока маршрут в заданную сеть достижим через основной шлюз. В случае недостижимости маршрута в заданную сеть через основной шлюз, вместо него начинает использоваться запасной – т.е. запасной становится основным, а на место запасного шлюза подыскивается следующий шлюз и т.д. Назначение основного и запасного шлюза происходит по значению метрики маршрута в заданную сеть. У основного шлюза метрика в заданную сеть имеет наилучшее значение (минимальна), тогда запасной шлюз выбирается из списка шлюзов имеющих маршрут в заданную сеть по минимальному значению метрики этих маршрутов. В результате выбирается лучший из оставшихся шлюзов, у которого существует маршрут в заданную сеть и значение метрики минимально, но, все-таки, хуже (больше) чем значение метрики основного шлюза.

В терминологии CISCO, используемой при описании протокола EIGRP основной шлюз называется successor, а запасной feasible successor («вероятный заместитель»). Тогда  successor имеет наилучший маршрут в заданную сеть, а feasible successor соответственно – лучший из оставшихся маршрутов.

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

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

Рассмотрим концепцию структуры данных протокола EIGRP. Начнем с Таблицы соседей (Neighbor Table). Как и в предыдущих рассмотренных протоколах маршрутизации, в EIGRP каждый маршрутизатор хранит сведения о соседних маршрутизаторах. При обнаружении нового соседнего маршрутизатора информация о нем записывается в виде адреса и интерфейса, через который доступен данный маршрутизатор. Эта информация хранится в так называемой Таблице соседей. Для каждого модуля зависимых протоколов, ведется своя Таблица соседей. Когда маршрутизатор посылает пакет Hello, включается таймер HoldTime - время, в течение которого маршрутизатор ждет отклика соседа. Если пакет Hello не принимается в течение отведенного времени, то это свидетельствует о том, что сосед или недоступен, или не работает. Истечение времени HoldTime является признаком, по которому алгоритм DUAL определяет изменение топологии сети.

Среди элементов Таблицы соседей также присутствует информация, необходимая для поддержки механизма работы транспортного протокола RTP. А именно – номера последовательностей полученных пакетов. Для подтверждения приема пакетов данных используются номера последовательности, которые указываются в передаваемых пакетах. При получении пакета от соседнего маршрутизатора, записывается его номер последовательности, а при следующем получении – номера пакетов сравниваются, и, в случае несоблюдения последовательности, соседнему маршрутизатору отправляется требование на повторную передачу, таким образом можно обнаружить несогласованные пакеты. Для постановки пакетов в очередь на случай повторной передачи применяется список передачи (transmission list), который составляется для каждого соседнего маршрутизатора. Также, для оценки оптимальных интервалов повторной передачи в структуре данных таблицы хранятся Таймеры полного обхода маршрута (RTT Round-trip timers).

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

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

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

Далее рассмотрим форматы пакетов, используемые в EIGRP.

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

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

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

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

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

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

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

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

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

EIGRP Metric = 256*((K1*Bw) + (K2*Bw)/(256-Load) + (K3*Delay)*(K5/(Reliability + K4))).

По умолчанию: K1=1, K2=0, K3=1, K4=0, K5=0. Тогда формула имеет вид

EIGRP Metric= 256*(Bw + Delay).

В качестве примера возьмем коммутируемую линию с пропускной способностью 128Кбит/с и задержкой 84000 мкс. Значение метрики:

EIGRP Metric= 256*(107/128 + 84000/10) = 256*86525 = 22150400

Дополнительно, значения коэффициентов К могут сообщаться в пакете EIGRP.

Формат пакета EIGRP приведен ниже:

Version – ноемр версии, 0х01

Opcode – тип операции, указывает на один из типов пакета EIGRP:

1 - Update

3 - Query

4 - Reply

5 - Hello

6 - IPX SAP

Checksum – контрольная сумма, рассчитывается для всего пакета EIGRP

Flags – поле флагов. Значение LSB (link state bit) равное 0x00000001 указывает, что это Init бит – значит, маршрут объявляемый в этом пакете является впервые полученным от нового соседнего маршрутизатора. Следующее значение 0x00000002 указывает, что это Conditional Receive bit (бит условного приема) используемый  для обозначения пакета, передаваемого при помощи Cisco's Reliable Multicasting algorithm (алгоритма групповой передачи), пакеты такого типа принимаются всеми маршрутизаторами EIGRP.

Sequence - номер последовательности, используемый для надежной передачи по протоколу RTP.

ACK – номер последовательности указанной в последнем полученном от соседнего маршрутизатора пакете. Пакет типа Hello с ненулевым значением этого поля используются для подтверждения принятого пакета.

AS Number – номер автономной системы домена EIGRP.

Type/Length/Value (TLV) – сложное поле TLVs (Тип/Длина/Значение). Каждая запись начинается с 16 битового поля Type (Тип) и 16-ти битового поля Length (длина). Ниже приведены значения поля Type полей для каждого типа пакета EIGRP.

General TLVs (Общие признаки TLV)

0x0001 – Общие параметры EIGRP (используется для любого пакета EIGRP независимо от протокола сетевого уровня)

0x0003 – Последовательность (используется для Cisco's Reliable Multicast)

0x0004 – EIGRP версия, исходная версия указывает 0, но текущая версия указывает 1 (используется Cisco's Reliable Multicast)

0x0005 – Следующий номер последовательности Multicast (используется Cisco's Reliable Multicast)

IP TLVs

0x0102 – внутренний маршрут IP

0x0103 – внешний маршрут IP

AppleTalk TLVs

0x0202 - внутренний маршрут  AppleTalk internal

0x0203 - внешний маршрут  AppleTalk 

0x0204 – инициализация кабеля AppleTalk 

IPX TLVs

0x0302 - внутренний маршрут IPX

0x0303 - внешний маршрут IPX

IP internal routes TLV

Type  - тип, всегда 0x0102

Length  - длина записи TLV в байтах

Next Hop  - адрес шлюза для сообщаемого маршрута

Delay  - количество десятков микросекунд (значение задержки)

Bandwidth  - пропускная способность, равна 256 * IGRP bandwidth 

MTU   - размер MTU для сообщаемого маршрута.

Hop Count  - количество переходов. Значение между 0x00 - соответствует подключенной сети, и 0xFF.

Reliability - надежность. Значение от 0x01 до 0xFF. 0xFF – максимальная надежность.

Load  - загрузка. Значение от 0x01 до 0xFF. 0xFF – максимальная загрузка канала.

Reserved - резерв. Значение 0x0000 в расчетах не учитывается.

Prefix Length - длина сетевого префикса (количество 1 в маске)

Destination - сообщаемая сеть назначения

IP external routes TLV

Type  - тип, всегда 0x0103

Length - длина записи TLV в байтах

Next Hop - адрес шлюза для сообщаемого маршрута

Originating Autonomous System - номер AS источника маршрута 

Tag  - тэг используемый в Карте маршрутов (Route Maps) для передачи маршрута получателю

External Protocol Metric – мтрика сообщаемого маршрута, используемая протоколом внешней маршрутизации, например IGRP, OSPF, RIP 

Reserved - резерв. Значение 0x0000 не используется.

External Protocol ID - идентификатор протокола внешней маршрутизации объявляющего данный маршрут

0x01 - IGRP

0x02 - EIGRP (из другой AS)

0x03 – статическая маршрутизация 

0x04 - RIP

0x05 - Hello

0x06 - OSPF

0x07 - IS-IS

0x08 - EGP

0x09 - BGP

0x0A - IDRP

0x0B – подключенная сеть

Flags  - 0x01 указывает что это внешний маршрут, 0x02 означает что этот маршрут может использоавться как default.

Delay  -количество десятков микросекунд (величина задержки)

Bandwidth  - пропускная способность, 256 * IGRP bandwidth

MTU  - размер MTU для сообщаемого маршрута.

Hop Count  - количество переходов. Значение между 0x00 - соответствует подключенной сети, и 0xFF.

Reliability  - надежность. Значение от 0x01 до 0xFF. 0xFF – максимальная надежность.

Load   - загрузка. Значение от 0x01 до 0xFF. 0xFF – максимальная загрузка канала.

Reserved  - резерв. Значение 0x0000 в расчетах не учитывается.

Prefix Length - длина сетевого префикса (количество 1 в маске)

Destination - сообщаемая сеть назначения

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

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

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

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

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

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

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

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

Рассмотрим пример работы протокола EIGRP. Пусть маршрутизаторы подключены по приведенной схеме. С целью упрощения описания процесса построения таблиц маршрутизации принимаем, что метрика линка R4-R5 равна 0,5 , а метрики остальных связей равны 1.


При инициализации схемы маршрутизатор R3 получает от маршрутизатора R5 элемент вектора расстояний, указывающих расстояние до сети А равное 1 (А=1), от R4 следовательно 0,5+1=1,5 (А=1,5), от R2 0,5+1+1=2,5, а от R1 0,5+1+1+1=3,5. В соответствии с алгоритмом работы EIGRP, при получении от соседей векторов расстояний, маршрутизатор для каждой сети назначения определяет не только основной шлюз, обеспечивающий минимальную метрику маршрута, но и вероятных заместителей (feasible successors), обладающих допустимыми значениями метрик в интересующую сеть.  Следуя описанному принципу, в таблице маршрутизатора R3 шлюз R5 становится следующим маршрутизатором на пути в сеть А, а узел R4 соответственно - вероятным заместителем, так как заявленная им метрика маршрута в сеть А составляет 1,5. Данное значение метрики больше метрики маршрута в сеть А, проходящего через R5, которая равна 1.  Если настройки R3, позволяют иметь нескольких вероятных заместителей, то вторым замом становится маршрутизатор R2, объявивший метрику 2,5. Если же количество заместителей ограничено одним, то в соответствии со значениями метрик маршрута в сеть А, маршрутизаторы R1 и R2 не учувствуют в дальнейшем взаимодействии R3 - Сеть А, так как значение заявленных метрик соответствующих данным маршрутизаторам максимально.

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

А новым вероятным заместителем становится R2, так как его значение метрики маршрута в  сеть А составляет 0,5+1+1=2,5 против 1,5 для R4 – данное соотношение является наилучшим в сложившейся ситуации. Маршрутизатор R1 – по-прежнему остается не у дел. Анализируя дальнейшее развитие ситуации, например отказ линка R3-R4, получим значение следующего основного шлюза R2 с метрикой для сети А равной 2,5 и вероятного заместителя R1 с соответствующей метрикой 3,5. В случае выхода из строя линка R4-R5, сеть А становится недостижима.

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

Если же ни одного вероятного заместителя не найдено, то маршрутизатор переходит в активное состояние и начинает опрос всех своих соседей на предмет наличия маршрута в сеть А, сообщая при этом что его собственное расстояние до А равно бесконечности. При этом вступает в работу алгоритм DUAL (Diffusing Update Algorithm). Следуя этому алгоритму, сосед отвечает на запрос только тогда, когда у него есть либо готовый маршрут в А, либо вероятный заместитель – в любом из этих случаев сосед присылает в узел R3 свое расстояние до А. Иначе соседний маршрутизатор сам переходит в активное состояние и процесс повторяется (разумеется с той разницей, что к маршрутизатору R3 запрос не посылается; кроме того, маршрутизатор, находящийся в активном состоянии, сам может отвечать на запросы, посылая в ответ свое текущее значение расстояния до А). Таким образом область "активизированных" маршрутизаторов расширяется до тех пор, пока не будет обнаружен маршрут в сеть А или доказано его отсутствие, после чего волна сходится в обратном направлении к инициировавшему процесс узлу, при этом все маршрутизаторы вносят в свои таблицы надлежащие изменения.

Рассмотрим следующий вариант развития ситуации. Пусть произошел отказ линков R3-R5 и R2-R4, как показано на схеме:

В результате обмена информацией, маршрутизаторы R2 и R1, перестраивают свои таблицы таким образом, что направление в сеть А реализуется через R3. А R3, соответственно «понимает», что вероятные заместители отсутствуют. И после выхода из строя линка R4-R5

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

Естественно, что подобная процедура (поиск вероятного заместителя, а при отсутствии такого – запуск алгоритма DUAL) происходит не только при обрыве связи, а также и в общем случае: если следующий маршрутизатор на пути в А прислал вектор, в котором расстояние до сети А увеличилось по сравнению с предыдущим сообщением от того же маршрутизатора.

В протоколе EIGRP также реализованы процедуры Split Horizon и Poison Reverse, которые выполняются не всегда, а в зависимости от состояния маршрутизатора и его соседей.

Из-за того, что EIGRP-маршрутизатор не просто принимает от соседей векторы расстояний, а строит на их основе некоторое представление от топологии сети ("вероятные заместители"), кроме этого, EIGRP так же контролирует состояние связи с соседями и использует алгоритм DUAL. Все это вместе напоминает протоколы состояния связей, однако EIGRP основан на векторном алгоритме. Для преодоления противоречий, компания разработчик (Cisco) классифицирует EIGRP как "гибридный" протокол.

Рассмотрим пример конфигурации протокола EIGRP в приведенной схеме

Конфигурация EIGRP для R1.

После назначения интерфейсам IP адресов, и включения интерфейсов переходим к конфигурированию маршрутизации:

- включаем маршрутизацию

R1(config)# ip routing

- включаем EIGRP и назначаем номер AS, например 10

R1(config)# router eigrp 10

- объявляем сети

R1(config)# network 17.0.0.0

R1(config)# network 15.0.0.0

- на интерфейсе, подключенному к  R2 включаем split horizon

R1(config)# int fa0/0

R1(config-if)# ip split-horizon eigrp 10

Аналогичные настройки осуществляются для остальных участников схемы.

В результате взаимодействий на каждом из маршрутизаторов появляется таблица маршрутизации, содержащая маршруты во все сети, присутствующие на схеме. Например, для R1

Рассмотрим пример трафика EIGRP при взаимодействии на участке R1-R2

R2 отправляет пакет Hello группе Multicast, соответствующей протоколу EIGRP. Номер подтверждения Acknowledge равен нулю, значит это пакет для поиска соседей, причем соседей в автономной системе Autonomous System 10. Объявленное время ожидания ответа Hold Time равно 15 секунд.

Аналогичные действия предпринимает и R1

После взаимного обнаружения, маршрутизаторы R1 и R2 начинают обмен пакетами типа Update в режиме Unicast рассылки, для согласования номеров последовательностей и обмена маршрутной информацией.

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

Итак,  R1 объявил номер последовательности равный 1, независимо от этого, маршрутизатор R2 объявил номер последовательности равный 5. После отправки пакетов, маршрутизаторы переходят в режим ожидания, так как пока не известно, насколько быстрый канал их объединяет, а значит неизвестны возможные величины таймеров и метрик.

Как только один из маршрутизаторов получает Update, подтверждающий получение ранее отправленного пакета Update данного маршрутизатора, то происходит расчет таймеров и отправка известных маршрутов в адрес источника данного Update пакета. В приведенном ниже пример, после того как R1 подтвердил R2  его номер последовательности 5, R2 оправил в адрес R2 маршруты в известные сети.

Данное объявлении сообщает маршруты в сети 16.0.0.0/8 и 18.0.0.0/8. При этом, для каждого маршрута сообщаются дополнительные характеристики. Например, для сети 18.0.0.0:

Тип – внутренний маршрут

Задержка – 5120 * 10 мкс = 51200 мкс, время достижения сети

Пропускная способность канала в эту сеть (коэффициент) 25600

- значит, скорость канала N=256 * 10000000/25600 = 100 000 Кбит/сек

или 100 Мбит/с, что является верным значением, т.к. R3 подключен по сети Fast Ethernet.

MTU – 1500 byte

Количество переходов до указанной сети относительно R2 – 1 маршрутизатор (R1)

Надежность – 255, т.е. максимально надежна

Загрузка канала – 1, т.е. канал полностью разгружен

Длина сетевого префикса – 8 бит

В пакете Update, полученном R1 от R2, так же содержится подтверждение номера последовательности, указанного ранее в пакете Update маршрутизатором R1. Поэтому, R1 отправляет в адрес R2 маршрутную информацию, накопленную на данный момент. При этом номер последовательности возрастает последовательно до 2.

После приема информации от R1, маршрутизатор R2 подтверждает успешное получение пакетом ACK, с указанием соответствующего номера последовательности в поле Acknowledge

Таким образом происходит построение таблиц маршрутизации EIGRP. Для предотвращения возникновения маршрутных петель маршрутизаторы обмениваются соответствующими пакетами, реализуя принципы технологии split horizon + poisoning reverse. Ниже приведен пример такого пакета Update, посылаемого маршрутизатором R1 в адрес R2

В данном пакете явным образом указывается, что сети 18.0.0.0/8 и 16.0.0.0/8 недоступны. В качестве индикатора недоступности выступает поле Delay (время достижения сети назначения). Обратите внимание – значение поля Delay записано в максимально возможном значении FF:FF:FF:FF, что и является указанием недостижимости сети.

Аналогично поступает и R2

Далее, между маршрутизаторами происходит обмен пакетами Hello, для подтверждения взаимной достижимости. При этом, объявленные ранее маршруты, не сообщаются для экономии полосы пропускания каналов связи. Пакеты типа Update появляются при изменении маршрутной картины, например при отказе объявленных ранее маршрутов.

Рассмотрим взаимодействие между R1 и R2 в случае отказа маршрута в сеть 17.0.0.0/8. Для это на маршрутизаторе R1 отключим соответствующий интерфейс.

После отказа интерфейса, маршрутизатор R1 посылает пакет Query, адресованный группе получателе 224.0.0.10, соответствующей маршрутизаторам EIGRP.

В пакете сообщается о недостижимости сети 17.0.0.0/8 уже известным методом максимального значения Delay.

R2 подтверждает получение этого сообщения

Кроме этого, R2 сообщает группе маршрутизаторов, что теперь данное направление (17.0.0.0/8) так же не доступно и через R2, так как до отказа маршрутизатор R2 ходил в сеть 17.0.0.0/8 через R1.

Так как никто не сообщил о новом пути в сеть 17.0.0.0/8, то маршрут считается утерянным.

Восстановим работоспособность интерфейса R1 подключенного в сеть 17.0.0.0/8. И проанализируем поведение маршрутизаторов R1 и R2.

Из приведенного выше следует, что маршрутизатор R1 возобновил работу с сетью 17.0.0.0/8, о чем и сообщает пакетом Update. Далее взаимодействия между R1 и R2 происходят по рассмотренному ранее сценарию, т.е. представляют собой обмен пакетами Hello, до первого изменения маршрутной картины рассматриваемой схемы.

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


 

А также другие работы, которые могут Вас заинтересовать

51391. Подсчитать количество точек, пробелов и символов «b» в потоке данных 17.77 KB
  Алгоритм Начало Обьявление переменных ch=0 pt=0 sp=0 bi=0 Вывод списка команд Getchr=EOF вывод подсказки на экран printf vvedide chislo n; while ch=getchr=EOF до тех пор пока ch не равно EOF выполнять цикл ifch.
51393. Прямые измерения активного электрического сопротивления.(Измерения омметром, мультиметром и мостом) 1.4 MB
  Цель работы Получение навыков измерения активного электрического сопротивления далее сопротивления. Ознакомление с методами измерения активного сопротивления. Сведения необходимые для выполнения работы Перед выполнением работы повторите вопросы обработки и представления результата прямых и косвенных измерений и ознакомьтесь со следующими вопросами: Измерение электрического сопротивления постоянному току методами непосредственной оценки и сравнения с мерой.
51394. Измерение постоянного напряжения методом компенсации 978 KB
  Измерение постоянного напряжения методом компенсации Получение сведений о погрешностях измерения напряжения компенсационным методом. Устройство принцип действия и основные характеристики делителя постоянного напряжения. Компенсаторы потенциометры постоянного тока предназначены для измерения методом сравнения с мерой ЭДС напряжения и величин функционально с ними связанных.
51395. Индуктивные измерительные преобразователи. Измерение перемещения 589.46 KB
  Цель работы Ознакомление с устройством и применением индуктивного измерительного преобразователя на примере измерителя перемещения изучение метрологических характеристик измерительных преобразователей и схем их включения. В измерительной технике используются конструкции преобразователя с переменным воздушным зазором и соленоидные или плунжерные преобразователи которые и изучаются в данной работе. Это вызывает изменение магнитного сопротивления и индуктивности преобразователя L. При некоторых допущениях индуктивность преобразователя можно...
51397. Создание блок-схем с помощью MS Visio 381.5 KB
  Фигуры готовые символы включенные в поставку Visio это ключ к быстрому созданию эффективных диаграмм. Наилучшим способом создания новой диаграммы является использование шаблона файла включающего все инструменты стили параметры и фигуры которые потребуются для создания определенного типа схемы или диаграммы. Например если нужно создать блоксхему используйте шаблон Bsic Flowchrt Базовая блоксхема включающий фигуры которые представляют данные процессы решения и другие элементы. Категория шаблонов Назначение Block Digrm...