Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сети_лекции2.doc
Скачиваний:
146
Добавлен:
11.03.2015
Размер:
25.77 Mб
Скачать

8.2. Объединение сетей с помощью маршрутизаторов

Маршрутизатор обеспечивает объединение сетей на сетевом уровне эталонной модели OSI посредством передачи пакетов данных из одной сети в другую. Маршрутизаторы решают задачу выбора маршрута передачи пакета данных. Этот процесс называется маршру­тизацией.

Маршрут выбирается из нескольких возможных на основании имеющейся у маршрутизаторов таблицы маршрутизации. Таблица маршрутизации (routing table) - это база данных, расположенная в памяти маршрутизатора. Записи этой базы данных называются марш­рутами и состоят из адреса сети, адреса следующего маршрутизатора на пути в пункт назначения, а также разного рода метрик.

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

Таблица маршрутизации может заполняться вручную администра­тором сети или же автоматически за счет протокола маршрутизации (routing protocol). В первом случае речь идет о статической маршру­тизации, а во втором - о динамической маршрутизации.

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

Преимущества и недостатки динамической маршрутизации прямо противоположны характеристикам статической маршрутизации.

П рою кол ы марш руги за ц и и

Существуют два варианта классификации протоколов маршрути­зации. Во-первых, они могут классифицироваться в зависимости от типа алгоритмов, на которых они основаны. Здесь есть две разновид­ности: протоколы, основанные на дистанционно-векторном алго­ритме (Distance Vector Algorithm), и протоколы, основанные на алго­ритме с учетом состояния канала (Link State Algorithm).

Второй вариант классификации связан с так называемыми авто­номными системами (Autonomous System, AS). Протокол маршрути­зации, применяемый в пределах одной автономной системы, называет­ся внутренним шлюзовым протоколом (Interior Gateway Protocol. IGP)., а протокол, предназначенный для соединения таких систем, называется внешним шлюзовым протоколом (Exterior Gateway Pro­tocol, EGP).

Дистанционно-векторный алгоритм маршрутизации

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

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

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

Алгоритм маршрутизации с учетом состояния капала

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

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

Внешние шлюзовые протоколы

Особо крупные сети разделяют автономные системы. Маршрути­заторы, соединяющие автономные системы, называются маршрутиза­торами границ автономных систем (Autonomous Systems Border Routers. ASBR). Обмен маршрутной информацией между автономны­ми системами происходит посредством внешних шлюзовых протоко­лов.

Первым протоколом этого типа является протокол EGP (Exterior Gateway Protocol - внешний шлюзовой протокол). Спецификация про­токола EGP содержится в документе RFC 9()4. На смену протоколу EGP пришел протокол BGP (Border Gateway Protocol - пограничный межсетевой протокол). В настоящее время наиболее используемым является протокол BGP версии 4, описанный в документе RFC 1772.

Протоколы EGP и BGP являются протоколами прикладного уров­ня стека протоколов TCP/IP и реализуются на базе протокола TCP [ 11.

Протокол RIP

RIP (Routing Information Protocol - протокол маршрутной инфор­мации) - внутренний шлюзовый протокол маршрутизации, основан­ный на дистанционно-векторном алгоритме. В работе маршрутизато­ров, работающих по протоколу RIP, можно выделить несколько режи­мов работы:

Инициализация. В данном режиме происходит определение всех активных сетевых интерфейсов путем посылки на них запросов.

  • Получение запроса. В данном режиме высылается таблица марш­рутизации отправителю запроса.

  • Получение ответа. В данном режиме выполняется коррекция таб-лицы маршрутизации.

  • Регулярные коррекции. В данном режиме каждые 30 секунд табли­ца маршрутизации посылается всем соседним маршрутизаторам.

Существует две версии протокола RIP: версия 1 (RIPvl). задоку­ментированная в RFC 1058, и версия 2 (RIPv2) задокументированная в RFC 2453. Протокол RIPvl не поддерживает маски подсетей, поэтому маршрутизаторы считают, что идентификаторы сети зависят от класса сети (А,В и С). А в протоколе RIPv2 маски подсетей уже поддержива­ются.

Обе версии протокола RIP основаны на транспортном протоколе UDP, при этом передача осуществляется через порт 520. Один RIP-пакет может содержать информацию не более чем о 25 маршрутах и его размер не превышает 512 байт.

На рис. 8.3 представлен формат RIP-пакета версии 1 [8]. Все заре­зервированные поля приравниваются к пулю.

Рис. 8.3. Формат пакета протокола RIPvl

Поле «Команда» длиной 1 байт определяет, является ли пакет за­просом (1) или ответом (2).

Поле «Версия» длиной 1 байт содержит информацию о версии протокола. Для RIPvl значение поля должно быть равно 1.

Поле «Идентификатор семейства адресов» длиной 2 байта опре­деляет протокол, используемый для сетевой адресации. Значение 2 соответствует протоколу IPv4. Поле «Сетевой адрес» длиной 4 байта содержит IP-адрес определенной сети.

Поле «Метрика» длиной 4 байта определяет расстояние (в пере­ходах) до указанной сети. (В запросах что поле не используется.)

На рис. 8.4 представлен формат RIP-пакета версии 2 [8]. В пакетах протокола RIPv2 содержатся новые поля, а старые используются по-иному.

Рис. 8.4. Формат пакета протокола RIPv2

Поле «Команда» длиной 1 байт определяет, является ли пакет за­просом (1) или ответом (2).

Поле «Версия» длиной 1 байт содержит информацию о версии протокола. Для RIPv2 значение поля должно быть равно 2.

Поле «Идентификатор семейства адресов» (2 байта) определяет протокол, используемый для сетевой адресации. Значение 2 соответ­ствует протоколу IPv4.

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

Поле «Сетевой адрес» длиной 4 байта содержит IP-адрес опреде­ленной сети. Поле «Маска подсети» длиной 4 байта определяет маску подсети, связанную с указанным IP-адресом.

Поле «Следующий маршрутизатор» длиной 4 байта содержит IP-адрес маршрутизатора к месту назначения. Значение 0.0.0.0 означа­ет, что маршрутизатором к месту назначения является отправитель пакета.

Поле «Метрика» длиной 4 байта определяет расстояние (в пере­ходах) до указанной сети. (В запросах это поле не используется.)

В протоколе RIPv2 при необходимости управления доступом можно использовать первый блок из 20 байт в качестве блока аутенти­фикации, тогда в одном пакете может поместиться информация только о 24 маршрутах. Формат блока аутентификации протокола RIPv2 представлен на рис. 8.5.

Рис. 8.5. Блок аутентификации в пакете протокола RIPv2

70

Поле «Идентификатор семейства адресов» длиной 2 байта при­нимает значение FFFFie, которое указывает на то, что следующие 18 байт содержат данные аутентификации.

Поле «Тип аутентификации» имеет длину 2 байта и согласно названию определяет тип аутентификации. Па настоящий момент определен лишь один тип - 2.

Поле «Информации аутентификации» длиной 16 байт содержит пароль. Если пароль короче 16 байт, он дополняется справа символами с ASCII-кодом 0.

Протокол OSPF

OSPF (Open Shortest Path First - выбора первого кратчайшего пу­ти) - это внутренний шлюзовый протокол маршрутизации, основан­ный на алгоритме с учетом состояния канала. Протокол OSPF исполь­зуется в сложных и больших сетях, в отличие от протокола RIP. кото­рый применяется в небольших и несложных сетях. Протокол OSPF основывается на настраиваемых метриках, которые могут быть связа­ны с пропускной способностью или задержкой сети. По умолчанию метрика, предназначенная для определения маршрутов, базируется на пропускной способности сети. Описание протокола OSPF можно найти в документе RFC 2328.

Маршрутизация на основе протокола OSPF характеризуется сле­дующими этапами:

  1. Маршрутизаторы отправляют через все свои порты приветствен­ные пакеты (Hello Packets) с целью определения своих соседей.

  2. После получения таких пакетов друг от друга маршрутизаторы формируют базу данных смежности (adjacencies database), кото­рая содержит информацию только о подключенных к ним сетях и соседних маршрутизаторах.

  3. Каждый маршрутизатор посылает всем соседним маршрутизато­рам объявление о состоянии канала (Link-State Advertisement, LSA), включая в него информацию о своих соседях и расстоянии до них.

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

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

  3. Каждый маршрутизатор строит таблицу маршрутизации исходя из своего дерева кратчайших путей.

Чтобы уменьшить количество записей в базе данных смежности, протокол OSPF использует обласги (areas), в которые входят смежные группы сетей. Спецификация протокола OSPF определяет необходи­мость магистральной области (backbone area) - области 0.0.0.0. Все остальные области напрямую соединяются с ней. Маршрутизато­ры, обеспечивающие соединение областей, называются маршрутиза­торами границ областей (Area Border Routers, ABR).

На рис. 8.6 изображена объединенная сеть, в которой выделено не­сколько областей. В этом примере область 0.0.0.1 состоит из трех сетей. Вместо того чтобы объявить каждую из них маршрутизатор 1 складывает все три сети в единую запись - 192.1.0.0/16. Маршру­тизатору 2 необходима лишь запись, объединяющая все три сети. По­добным образом, область 0.0.0.2 состаатяют три сети, которые мо­гут б ыть представлены как 192.2.0.0/16.

OG.uu.ib 0.0.0.0 Mai ivipxiutiu oAjiicib

Рис. 8.6. Области OSPF

Чтобы уменьшить число LSA-сообщений, передаваемых между соседними маршрутизаторами, в протоколе OSPF применяется прин­цип назначенного маршрутизатора (Designated Router, DR). На каж­дую область объединенной сети приходится по одному назначенному маршрутизатору, который выбирается исходя из его приоритета (по шкале от 0 до 255, где большие числа являются предпочтительными). Маршрутизатор со вторым по значимости приоритетом становится резервным назначенным маршрутизатором (Backup Designated Router. BDR). Эти два маршрутизатора устанавливают смежности со всеми остальными маршрутизаторами области, а те в свою очередь устанавливают лишь две смежности: с назначенным маршрутизатором и с резервным назначенным маршрутизатором. Обязанностью назна­ченною маршрутизатора является извещение всех маршрутизаторов области LSA-сообщениями. Назначением резервного назначенного маршрутизатора является обеспечение быстрого восстановления связи в случае, если назначенный маршрутизатор выйдет из строя.

Все маршрутизаторы, работающие по протоколу OSPF, отсылают LSA-сообщения на групповой адрес 224.0.0.6, который соответ­ствует назначенному маршрутизатору и резервному назначенному маршрутизатору. Существует пять основных типов LSA-сообщений:

  1. Объявление о состоянии каналов маршрутизатора (Router LSA). Это сообщение распространяется в пределах области и содержит информацию о соседях маршрутизатора. Сообщения этого типа отсылаются всем маршрутизаторам.

  2. Объявление о состоянии каналов сети (Network LSA). Это сооб­щение распространяется в пределах области и содержит информа­цию обо всех маршрутизаторах, присутствующие в сети. Сообще­ния этого типа отсылаются только назначенным маршрутизаторам.

  3. Общее объявление о состоянии каналов сети (Network Summary LSA). Это сообщение распространяется маршрутизатором границ областей и указывает доступные сети вне области. Сообщения этого типа отсылается только маршрутизаторам границ областей.

  4. Общее объявление о состоянии каналов маршрутизатора границ автономных систем (ASBR Summary LSA). Это сообщение рас­пространяется маршрутизаторами границ автономных систем и содержит информацию о маршрутизаторе границ автономных си­стем. Сообщения этого типа отсылается только маршрутизаторам границ областей.

  5. Объявление о состоянии внешних каналов автономной системы. (AS External LSA). Это сообщение распространяется всеми марш­рутизаторами в пределах автономной системы и описывает марш­руты внешние для автономной системы. Сообщения этого типа от­сылаются только маршрутизаторам границ автономных систем.

OSPF-пакет, в котором передаются LSA-сообщения, инкапсулиру­ется непосредственно в поле данных IP-пакета. Значение поля «Прото­кол верхнего уровня» в заголовке IP-пакета для OSPF равно 89. На рис. 8.7 представлен формат заголовка OSPF-пакета.

0

I

2 3

(1 1 :>!><.-

8 9 HI II 12 13 II 15

16 1" Is 19 20 21 22 2» 21 2< 2(- 27 2s 2'» Ю Л

0

Версия

Тип

Д.И111.1 пакет

32

Идентификатор маршрутизатора

'.1

Идентификатор области

И

Контрольная сумма

Тип аутентификации

i2s

Аутентификация

Рис. 8.7. Заголовок OSPF-пакета

Поле «Версия» длиной 1 байт содержит номер версии протокола OSPF. Наиболее используемой версией на данный момент является версия 2, которая поддерживает протокол IPv4. Также существует 3 версия протокола OSPF. которая поддерживает протокол IPv6.

Поле «Тин» длиной 1 байт определяет назначение OSPF-пакета. Данное поле принимает следующие значения:

  1. Приветственный пакет (Hello Packet). Применяется для опреде­ления местоположения соседних маршрутизаторов.

  2. Описание базы данных (Database Description). Применяется для передачи резюмирующей информации базы данных.

  3. Запрос состояния канала (Link-State Request). Применяется для осуществления запросов на резюмирующую информацию базы данных.

  4. Обновление состояния канала (Link-State Update). Применяется для распространения сообщений LSA в других сетях.

  5. Подтверждение состояния канала (Link-State Acknowledgment). Применяет для подтверждения приема информации о состоянии канала.

Поле «Длина пакета» длиной 2 байта содержит длину данного OSPF-пакета. включая заголовок.

Поле «Идентификатор маршрутизатора» длиной 4 байта содер­жит идентификатор передающего маршрутизатора.

Поле «Идентификатор области» длиной 4 байта содержит иден­тификатор области, к которой принадлежит передающий маршрутиза­тор.

so

Поле «Контрольная сумма» длиной 2 байта содержит значение, которое представляет собой результат вычисления контрольной суммы содержимого OSPF-пакета.

Поле «Тин аутентификации» дтиной 2 байта определяет тип аутентификации, применяемый в пакете (0 - аутентификация не ис­пользуется, 1 - аутентификация открытым текстом, 2 - аутентифика­ция с использованием алгоритма шифрования MD5). Поле «Аутенти­фикация» длиной 8 байт содержит пароль.

Что касается формата блока данных, следующего за заголовком OSPF-пакета, то он варьируется в зависимости от типа OSPF-пакета.

Сходимость маршрутов

Сходимость маршрутов - что процесс распространения новой маршрутной информации по объединенной сети. В идеале, сеть долж­на находиться в состоянии конвергенции (converged state), когда все маршрутизаторы располагают информацией обо всех доступных сетях и связанных с ними издержками.

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

Существует несколько методов, которые могут помочь в повыше­нии скорости сходимости. К таким методам относятся разделение го­ризонта (split horizon) и негативный отклик (poison reverse).

Разделение горизонта

Основное правило разделения горизонта запрещает объявление маршрута тому интерфейсу, от которого этот маршрут был получен ранее. На рис. 8.8 рассмотрен пример разделения горизонта. Маршру­тизатор 2 узнал о существовании сети 1 от маршрутизатора 1. После чего маршрутизатор 2 распространяет эту информацию в сеть 3. В со­ответствии с правилами разделения горизонта, маршрутизатор 2 не может объявлять маршрут к сети 1 маршрутизатору 1, от которого он о ней узнал.

Негативный отклик

Маршрутизаторы могут распространять маршруты через интер­фейсы, которые явились их источниками. Но эти маршруты будут идентифицироваться как недостижимые. Идея этого метода проста. Рассмотрим пример на рис. 8.9. Если маршрутизатор 1 направляет па­кеты маршрутизатору 3 через маршрутизатор 2, тогда маршрутизатор 3 объявит маршрутизатору 2, что маршрут через него к маршрутизато­ру 1 является недопустимым. Поскольку маршрутизатор 2 полагает, что у маршрутизатора 3 нет пути к маршрутизатору 1, он (маршрути­затору 2) никогда не станет пытаться посылать пакеты маршрутизато­ру 1 через маршрутизатору 3.