Список протоколов маршрутизации не исчерпывается такими названиями, как RIP, OSPF и IS-IS. Есть и другие, менее известные протоколы.
Где найти информацию о NLSP
Где найти информацию о IGRP и EGRP
Наши заметки задумывались как продолжение опубликованной в октябрьском номере "LAN Magazine/Русское издание" статьи Джима Гейера "Дороги, которые мы выбираем". Гейер рассказал о задачах, решаемых протоколами маршрутизации, и описал конкретные реализации протоколов типа RIP, OSPF и IS-IS. Мы же расскажем о менее популярных протоколах: NLSP, IGRP, EIGRP, EGP, BGP, а протоколу NLSP, основному, как нам кажется, "кандидату" на более широкое применение, будет уделено особое внимание.
NLSP - ШАГ ВПЕРЕД
Первоначально для своих сетей компания Novell разработала два типа протоколов для распространения служебной информации: IPX RIP/SAP. IPX RIP представляет собою протокол маршрутизации на базе алгоритма вектора расстояния, а SAP применяется для "рекламирования" услуг, предоставляемых различными устройствами в сети (файловыми серверами, принтерами и т.д). Оба этих протокола периодически (примерно раз в минуту) рассылают информацию по сети, что позволяет другим узлам быстро узнать о маршрутах и услугах, однако при этом они сильно загружают сеть. IPX RIP/SAP разрабатывались, когда большие, распределенные сети были редкостью. В малых же сетях они оправданы и по сей день, поскольку практически все производители маршрутизаторов включают в свои устройства поддержку этих протоколов, а их реализация не требует больших вычислительных затрат и оперативной памяти, что, несомненно, способствует снижению конечной стоимости маршрутизаторов.
Для преодоления недостатков протоколов IPX RIP/SAP фирма Novell разработала еще один протокол - NetWare Link Services Protocol (NLSP). Протокол маршрутизации NLSP работает по алгоритму состояния канала; примерами подобных протоколов служат Open Shortest Path First (OSPF) в сетях TCP/IP и IS-IS, разработанный комитетом ISO для сетей в архитектуре OSI.
Рисунок 1.
Пример смешанной топологии.
По сравнению с RIP протокол NLSP предоставляет больше возможностей при проектировании распределенных сетей и применяется в основном в сложных, смешанных топологиях, достоинством которых является наличие резервных путей. Обрыв одной связи не препятствует обмену данными между узлами. Пример смешанной топологии приведен на Рисунке 1. Если в этом примере будут использованы протоколы IPX RIP/SAP, то их служебный трафик практически полностью заполнит всю полосу пропускания (особенно в случае медленных каналов связи), поэтому лучшим вариантом применения протоколов IPX RIP/SAP служит древовидная сетевая топология, пример которой приведен на Рисунке 2.
Рисунок 2.
Пример древовидной топологии.
ДОСТОИНСТВА NLSP
Протокол NLSP по сравнению с IPX RIP/SAP обладает рядом преимуществ, среди которых можно выделить следующие.
1. Низкая загруженность сети. Каждый маршрутизатор, работающий по протоколам RIP/SAP, периодически рассылает пакеты со своей таблицей маршрутов и таблицей услуг. Поскольку широковещательные пакеты посылаются и тогда, когда изменений в сетевой топологии нет, возникает избыточный трафик во всей сети, и особенно это загружает низкоскоростные каналы глобальной сети. В отличие от протоколов RIP/SAP, протокол NLSP рассылает информацию только при каких-либо изменениях в сетевой топологии или каждые два часа, что несомненно уменьшает объем служебной информации. На Рисунке 4 приведены сравнительные диаграммы загрузки сети в байт/сек. служебным трафиком в случае протокола NLSP и IPX RIP/SAP для разного соотношения количества серверов и сетей (пример взят из курса # 216 фирмы Novell - Fundamentals of Internetworking Instructor"s Guide).
Рисунок 4.
Загрузка сети служебным трафиком в зависимости от соотношения количества
серверов к числу сетей.
Как видно из диаграммы, протокол NLSP дает очень незначительное увеличение служебного трафика по мере роста сети, однако в малых сетях его применение нецелесообразно. Протоколы RIP/SAP, напротив, хороши именно в малых сетях, а при увеличении количества серверов дают большую загрузку служебной информацией.
2. Распределение потока данных (Load Balancing). Если существуют два или более маршрутов с одинаковыми стоимостями, то протокол NLSP позволяет организовать распределение потока данных через них, что повышает эффективность использования линий связи. Протокол NLSP поддерживает распределение данных по восьми маршрутам с одинаковой стоимостью. Этот метод называется еще Load Sharing.
3. Возможность создания больших распределенных сетей. При проектировании сетей на базе протокола RIP вы должны учитывать существенное ограничение - количество транзитных узлов (hop count) между источником и приемником не может превышать 15, а значит, создание больших распределенных сетей становится невозможным. Протокол же NLSP поддерживает до 127 транзитных узлов.
4. Возможность вручную назначать стоимость линий связи. При выборе оптимального маршрута протокол IPX RIP использует две метрики: задержку при достижении заданной сети в тиках (number-of-ticks), где один тик равен 1/18 секунды, и количество транзитных узлов. При выборе оптимального маршрута меньшая задержка имеет преимущество перед количеством транзитных узлов. Протокол NLSP позволяет администратору сети вручную назначить стоимость канала связи, что дает возможность более гибко распределять трафик в сети. Кроме того, протокол может самостоятельно присвоить стоимость каналу связи, основываясь на данных из Табл. 1. Для выбора наилучшего маршрута NLSP суммирует стоимости всех каналов связи, через которые передается информация получателю, и выбирает маршрут с наименьшей общей стоимостью.
Несомненным достоинствм протокола NLSP является полная совместимость с IPX RIP/SAP. Вы можете использовать маршрутизаторы, работающие по протоколам NLSP и RIP/SAP, совместно в одной сети. Протокол позволяет использовать в одном сегменте сети Ethernet до 230 маршрутизаторов и серверов. Их количество зависит от размера пакета, передаваемого по сети; в сетях Token Ring и FDDI это число будет больше.
ИЕРАРХИЧЕСКАЯ СЕТЕВАЯ ТОПОЛОГИЯ
Цель разработки протокола NLSP - создание иерархической среды маршрутизации, где области (areas) маршрутизации объединяются в домены маршрутизации, а те, в свою очередь, образуют глобальную сеть (см. Рисунок 3).
Рисунок 3.
Пример иерархической сети.
Текущие версии протокола NLSP поддерживают работу только внутри области маршрутизации (level 1 routing). Будущие реализации смогут организовывать связь областей маршрутизации в домены (level 2 routing), а домены - в глобальную сеть IPX (level 3 routing).
Для организации иерархической сети вводится специальная адресация областей маршрутизации. Каждая область идентифицируется восьмибайтовым числом, состоящим из двух частей: адреса области и маски. Например:
08068500 (адрес области) FFFFFF00 (маска)
Первые 24 бита - 080685 - представляют область маршрутизации, следовательно, адрес каждой IPX-сети внутри этой области должен начинаться с 080685 (напомним, что адрес сети IPX - это четырехбайтовое число). Оставшийся байт служит для обозначения конкретной IPX-сети, например 080685AB.
Тому, кто хочет больше узнать об областях маршрутизации и адресации, принятой для них, автор рекомендует прочитать главу "Novell Guide to NLSP Migration" в документации на продукт фирмы Novell NetWare MultiProtocol Router v3.1.
Как уже отмечено, только будущие реализации протокола NLSP смогут поддерживать организацию областей в домены, пока же адресацию областей можно и не использовать при настройке маршрутизаторов на протокол NLSP.
В настоящее время фирма Novell предоставляет услугу Novell Network RegistrySM. Цель этой услуги состоит в закреплении за организациями уникальных адресов для их сетей IPX, что позволит в дальнейшем различным компаниям обмениваться данными без внесения изменений в существующую систему адресации. Размер выделяемого пула адресов зависит от количества в компании сетей NetWare (с учетом будущего роста). Если вы хотите получить свой пул адресов, просто напишите по адресу: registry@novell.com.
Что касается поддержки производителями протокола NLSP, то здесь, как нам кажется, дела обстоят не очень хорошо. Так, сравнительная таблица "Магистральные маршрутизаторы уровня предприятия" в журнале "LAN Magazine/Русское издание" (февраль 1996 г., стр. 61) содержит только три модели, обеспечивающие работу с протоколом NLSP, - Cisco 7500, IEN 3000 и IEN 5000 фирмы Hypercom Network Systems. Кроме этого, программный продукт MultiProtocol Router v3.1 фирмы Novell также поддерживает протокол NLSP (обратное было бы странно). Однако в будущем можно ожидать более широкой поддержки протокола NLPS, так как количество компаний, работающих на базе протокола IPX и желающих получать все достоинства протокола NLSP при построении своих распределенных сетей, довольно велико.
Что касается формата пакетов NLSP, то поскольку он разрабатывался на основе протокола IS-IS, то форматы заголовков пакетов у обоих протоколов, как правило, совпадают. Фиксированная часть пакета NLSP той же длины, что и у IS-IS. Некоторые поля, использующиеся в IS-IS, зарезервированы в NLSP (например "Длина идентификатора" и "Максимум адресов областей"), и наоборот. Основное отличие этих двух протоколов состоит в том, что к пакету NLSP добавляется заголовок IPX, тогда как пакету IS-другого заголовка не требуется.
IGRP И EIGRP - ХОРОШИЙ ВЫБОР ДЛЯ БОЛЬШИХ СЕТЕЙ
Протокол IGRP (Interior Gateway Routing Protocol) разработан фирмой Cisco в 1980 году; работает он по алгоритму вектора расстояния, и его текущая реализация предназначена для сетей TCP/IP.
При разработке протокола IGRP были поставлены следующие задачи:
- устойчивость в очень больших, сложных сетях и недопустимость, при этом, образования узлов маршрутизации;
- быстрое восстановление работоспособности при изменениях в сетевой топологии;
- низкая загрузка сети служебным трафиком;
- возможность распределения потока данных между маршрутами с одинаковой стоимостью.
Для достижения устойчивости в больших сетях IGRP использует алгоритмы holddowns, split horizon, triggered updates и poisoning. Данные алгоритмы разработаны для предотвращения применения маршрутизаторами ошибочных маршрутов. Как описано в RFC 1058, это происходит, когда маршрут становится недоступным вследствие аппаратной ошибки одного из маршрутизаторов. В принципе, соседние маршрутизаторы должны определить недоступность маршрута и разослать по сети обновленную информацию, в которой данный маршрут обозначается как неиспользуемый. Однако существует вероятность того, что эти сообщения не достигнут некоторых частей распределенной сети или будут идти слишком долго, тогда как маршрутизаторы в ней продолжат рассылку информации с предложением недоступного маршрута. При подобном положении дел появление узлов маршрутизации неизбежно.
Алгоритм poisoning предназначен для предупреждения образования крупных узлов, в отличие от split horizon, который предотвращает узлы между соседними маршрутизаторами. Алгоритм poisoning основывается на правиле, что если в процессе работы метрика маршрута значительно увеличилась, то это следствие образования узла, и данный маршрут должен быть удален из таблицы маршрутов.
Triggered updates заставляет маршрутизатор рассылать информацию об изменениях в маршрутах, даже если рассылка не укладывается во временной интервал рассылок (для алгоритма IGRP этот интервал составляет 90 с).
Алгоритмы holddowns и split horizon были рассмотрены в статье Джима Гейера.
Можно сказать, что протокол IGRP был призван придти на смену RIP IP, поскольку последний не приспособлен для организации больших сетей. Основное отличие протокола IGRP от RIP IP, позволяющих строить распределенные сети, состоит в метриках маршрутов. Протокол RIP IP применяет в качестве метрики количество транзитных узлов, которое может быть числом от 1 до 15. Кроме ограничения на размер сети, в некоторых случаях существование одной метрики может быть причиной выбора неподходящего маршрута. В отличие от протокола RIP IP, IGRP использует следующие метрики:
- время задержки;
- пропускная способность канала;
- загруженность канала;
- надежность канала связи.
Под временем задержки понимается время достижения получателя в незагруженной трафиком сети. Пропускная способность канала - это скорость, измеряемая в количестве бит в секунду, для самого медленного канала связи в пути. Загруженность канала показывает, какая часть из всей данной пропускной способности занята в текущий момент. Надежность определяется количеством ошибок при передаче.
Основываясь на этих метриках, с помощью специальной математической формулы вычисляется обобщенная метрика для каждого маршрута, на основе которой и определяется наилучший маршрут. Формула имеет следующий вид:
[(K1/Be)+(K2 * Dc)]r,
где K1, K2 - константы;
Be - эффективная пропускная способность
= незагруженная полоса пропускания ? ( 1 - загруженность канала в данный
момент);
Dc - время задержки;
r - надежность (процент успешно переданной информации следующему узлу).
Константы используются для присвоения определенного "веса" пропускной способности и задержке, при этом вес зависит от типа передаваемой по сети информации. Например, интерактивный трафик может иметь более низкую задержку, передача файлов - широкую полосу пропускания.
Путь, имеющий наименьшую обобщенную метрику, и будет предпочтителен.
Несомненное достоинство протокола IGRP в применении обобщенной метрики для выбора наиболее подходящего маршрута в распределенной сети, с которой каналы связи различаются по скорости и надежности.
На Рисунке 5 приведен формат заголовка служебных пакетов протокола IGRP, после которого следует маршрутная информация. IGRP рассылает свою информацию, используя дейтаграммы IP с номером протокола, равным 9 (IGP).
Рисунок 5.
Заголовок пакета IGRP содержит информацию о сетях и подсетях АС.
Ниже даны пояснения к полям в заголовке.
- "Версия" - версия протокола. Текущая версия протокола равна 1. Пакеты, имеющие другое значение, будут игнорироваться.
- "Код операции" используется для обозначения типа сообщения:
1 - Update message (сообщения, содержащие обновленную информацию из таблицы маршрутов. Эти пакеты рассылаются в ответ на запрос других маршрутизаторов предоставить новую информацию о маршрутах).
2 - Request message (запрос на посылку новой информации из таблицы маршрутизации). - "Редакция" - число, увеличивающееся всякий раз при изменении в таблице маршрутизации. Это поле позволяет маршрутизатору не вносить обновления, если они уже были сделаны.
- "Номер АС" - идентификатор Автономной Системы. Это поле указывает, к какой АС принадлежит маршрутизатор.
- "Количество подсетей в сети", "Количество сетей в АС", "Количество сетей вне АС" - используются только при формировании пакетов, содержащих обновленную информацию из таблицы маршрутов (updates message).
- "CRC" - контрольная сумма, вычисляемая по тому же самому алгоритму, что и для UDP-пакетов. Контрольная сумма вычисляется для заголовка IGRP и любых данных после него, однако она не затрагивает заголовок IP-пакета.
Фирма Cisco, в продолжение IGRP, разработала протокол EIGRP (Enhanced Interior Gateway Routing Protocol). Он объединяет в себе достоинства алгоритмов вектора расстояния и состояния канала, включая низкую загрузку служебным трафиком, быстрое восстановление после изменений в сетевой топологии (fast convergence) и возможность использования маски подсети (subnet masks) в IP-адресации.
Протокол EIGRP представляет собой первую реализацию алгоритма DUAL (Distributed Update Algorithm), который позволяет маршрутизатору восстанавливать свою работоспособность сразу же после изменения в сетевой топологии, что сильно увеличивает надежность работы распределенной сети. В большинстве ситуаций маршрутизаторы, работающие по протоколу EIGRP, перестраиваются в соответствии с изменениями в топологии меньше чем за одну секунду. Таким образом, хотя протокол EIGRP и перенял технологии алгоритма вектора расстояния от IGRP, он обладает возможностями протоколов, работающих по алгоритму состояния канала, таких как IS-IS и OSPF.
Протокол EIGRP обеспечивает малое время восстановления благодаря применению модели "запрос-ответ", при которой пакеты, содержащие обновленную информацию, посылаются только тем маршрутизаторам, на работу которых может повлиять очередное изменение в сетевой топологии.
В версии 10.0 системы IOS (Internetwork Operating System) компания Cisco расширила протокол EIGRP для работы в сетях Novell IPX и Apple Talk, и, кроме того, реализовала технологию RSUP (Reliable SAP Update Protocol). Эта технология позволяет маршрутизатору рассылать стандартные пакеты Novell SAP не периодически, а только в случае обнаружения изменений в рекламируемых услугах.
RSUP очень сильно помогает при проектировании распределенных сетей с использованием каналов связи глобальной сети. К примеру, при применении RSUP маршрутизаторы могут рекламировать по низкоскоростным каналам глобальной сети только изменения в услугах, однако эти же маршрутизаторы в локальных сетях будут продолжать периодическую рассылку SAP-пакетов.
Как видно из сравнительной таблицы маршрутизаторов, протоколы IGRP и EIGRP поддерживают только модели фирмы Cisco, что необходимо учитывать при построении распределенной сети.
НЕМНОГО О EGP И BGP
Протоколы, управляющие маршрутной информацией внутри автономной системы, относятся к классу так называемых протоколов IGP (Interior Gateway Protocols). Для протоколов класса IGP ключевым моментом является производительность. Эти протоколы должны немедленно подстраиваться под изменения в сетевой топологии и находить маршрут с наименьшей стоимостью. Примерами IGP могут служить RIP, NLSP, OSPF, IGRP, EIGRP.
Автономная система (АС) представляет собою группу сетей и маршрутизаторов, управляемую уполномоченным. Разработка АС позволяет различным частям сети Internet быть управляемыми раздельно и разрешает маршрутизаторам внутри различных автономных систем использовать разные протоколы маршрутизации. Каждая сеть внутри АС должна быть доступна из Internet. Для этого между ними организуется связь при помощи протокола EGP (Exterior Gateway Protocol).
Протокол EGP описан в RFC 904 (апрель 1984). EGP служит для организации связи между корневыми маршрутизаторами в сети Internet, которые, в свою очередь, принадлежат различным АС. Необходимо учитывать, что для связи с маршрутизаторами внутри своей автономной системы корневой маршрутизатор, кроме поддержки EGP, должен также поддерживать протоколы класса IGP, так как всю информацию о своей АС протокол EGP получает от IGP.
Хотя EGP относится к динамическим протоколам маршрутизации, он очень прост. Протокол не использует метрики и, следовательно, не может выполнять "интеллектуальную" маршрутизацию. EGP рассылает своим соседям обновленную информацию через регулярные интервалы времени. Эта информация о всех сетях, к которым маршрутизатор непосредственно подключен, и служит основой построения таблиц маршрутизации. На Рисунке 6 приведен формат заголовка пакетов протокола EGP.
Рисунок 6.
Несмотря на обилие полей в заголовке пакета, протокол EGP очень прост.
Поля имеют следующие значения.
- "Версия" идентифицирует версию протокола EGP. Текущая версия - два. В некоторых публикациях может встретиться обозначение EGP2, т.е. версия 2 EGP.
- "Тип сообщения" определяет, какое сообщение передается в этом пакете. Каждое сообщение имеет собственный заголовок и помещается в поле "Данные".
- "Код операции", "Статус сообщения" используются совместно с полем "Тип операции". Сообщение каждого ипа выполняет специфичные подзадачи, вот они-то и определяются этими полями.
- "CRC" - контрольная сумма считается для заголовка с данными, и при ее вычислении само поле "CRC" задается равным нулю.
- "Номер АС" - номер автономной системы, которой данное сообщение принадлежит.
- "Состояние" показывает состояние посылки или приема информации.
С ростом сети Internet все недостатки протокола EGP, такие как возможность организации узлов маршрутизации, очень большие размеры служебной информации, рассылаемой по сети, и невозможность "интеллектуальной" маршрутизации, становились все более очевидными, вследствие чего был разработан протокол BGP (Border Gateway Protocol), который призван решить эти проблемы EGP.
Как и EGP, протокол BGP используется для связи корневых маршрутизаторов сети Internet, однако в отличие от EGP, он разработан для обнаружения узлов маршрутизации и применения метрик для "интеллектуальной" маршрутизации. В настоящее время BGP постепенно вытесняет EGP из сети Internet. Описание протокола BGP можно найти в RFC 1163.
BGP использует протокол транспортного уровня для передачи служебной информации. Это сильно повышает надежность, поскольку протоколы транспортного уровня спроектированы для гарантированной доставки информации. В качестве транспортного протокола применяется TCP. BGP использует порт 179 протокола TCP для установления соединений. Первоначально маршрутизаторы, работающие по протоколу BGP, обмениваются полными таблицами маршрутов, затем рассылаются только обновления при изменениях в таблицах. В отличие от других протоколов, BGP не требует периодического обновления таблиц маршрутизации, взамен сохраняются последние версии таблиц соседей. Хотя протокол обслуживает всевозможные пути в определенную сеть, в своих сообщениях об обновлениях (updates messages) он рекламирует только наилучший путь.
BGP-метрики - это числа, присваиваемые сетевым администратором, которые показывают "степень предпочтительности" какого-либо маршрута. "Степень предпочтительности" может основываться на любых критериях, таких как скорость каналов, надежность и т.д.
На Рисунке 7 приведен формат заголовка сообщений протокола BGP. Каждое сообщение имеет заголовок фиксированного размера. После заголовка данные могут как присутствовать, так и отсутствовать - это зависит от типа сообщения.
Рисунок 7.
Протокол BGP приходит на смену EGP.
Поля имеют следующие значения.
- "Маркер" используется для определения потери синхронизации между двумя маршрутизаторами BGP и для установления подлинности входящих сообщений BGP.
- "Длина" - общая длина сообщения, включая заголовок.
- "Тип" - тип передаваемого сообщения. Он может быть:
1 - OPEN (сообщение такого типа рассылается сразу после установки соединения транспортными протоколами);
2 - UPDATE (передача маршрутной информации между маршрутизаторами EGP);
3 - NOTIFICATION (сообщение посылается при обнаружении ошибки в работе протокола, после чего соединение немедленно разрывается);
4 - KEEPALIVE (маршрутизаторы обмениваются этими сообщениями для определения работоспособности своих соседей; необходимо отметить, что BGP не использует данную функцию протокола TCP).
Возвращаясь к сравнительной таблице маршрутизаторов, следует отметить, что практически все маршрутизаторы поддерживают протокол EGP. Что касается протокола BGP, то мы смогли найти только одну модель фирмы Digital Equipment DECNIS 500/600.
ЗАКЛЮЧЕНИЕ
Необходимо отметить, что самостоятельное проектирование и создание больших распределенных сетей с использованием маршрутизаторов довольно трудоемкий и сложный процесс: ошибка здесь может привести к печальным последствиям. Это дело лучше доверить системным интеграторам, имеющим опыт реализации подобных проектов.
Максим Владимирович Кульгин - менеджер по проектам компании ComputerLand/St.Petersburg. С ним можно связаться по телефонам: (812) 224-1622, 224-0217, 224-2329 или через Internet по адресу: mk@cml.spb.su.
ТАБЛИЦА 1 - СТОИМОСТИ КАНАЛОВ СВЯЗИ ДЛЯ ПРОТОКОЛА NLSP ПО УМОЛЧАНИЮ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ТАБЛИЦА 2 - ПРОТОКОЛЫ МАРШРУТИЗАЦИИ КЛАССА IGP
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Где найти информацию о NLSP
1. Документация на NetWare MultiProtocol Router v3.1, часть Concepts, глава How NLSP Works: An Overview.
2. TID1203342 в Network Support Encyclopedia 96-9. Это ссылка на архивный файл, содержащий полное описание протокола NLSP в формате PostScript.
3. Публикация NetWare Link Services Protocol: Link-State Routing in a NetWare Environment в Novell Application Notes за май 1994 года (Network Support Encyclopedia 96-9).
Где найти информацию о IGRP и EGRP
1. "An Introduction to IGRP", http://www.cisco.com/warp/public/103/5.html
2. "Introduction to Enhanced IGRP (EIGRP )", http://www.cisco.com/warp/public/103/1.html
3. "Q&A Protocol Enhancements for WANs", http://www.cisco.com/warp/public/621/8.htm
4. "Which Routing Protocol Should I Use?", http://www.cisco.com/warp/public/417/26.html