Назад
Раздел 4. Компьютерная сеть Интернет
299
большинство программ маршрутизации не обладают столь развитой логикой
и выбирают маршрут следования дейтаграммы, исходя из ряда сделанных
допущений о его минимальной длине.
Существует два способа маршрутизации: прямая (direct delivery) и
непрямая (indirect delivery) доставка дейтаграмм. Прямая доставка происхо-
дит при передаче дейтаграммы от источника до получателя, находящихся в
одной физической сети. Выполняя непосредственную доставку дейтаграм-
мы, источник использует процедуру ARP и определяет физический адрес
станции назначения.
Непрямая доставка производится в случае, когда конечный получатель
дейтаграммы располагается в другой физической сети. При этом отправи-
тель пересылает дейтаграмму ближайшему узлу маршрутизации, выпол-
няющему ее дальнейшую доставку до конечного получателя. В сети Интер-
нет непрямая доставка применяется намного чаще прямой.
Чтобы определить, находится ли получатель в одной физической сети
с отправителем, последний должен выделить номер сети из IP-адреса полу-
чателя и сравнить его с номером сети, выделенным из собственного IP-
адреса. Совпадение номеров означает, что дейтаграмма может быть послана
получателю напрямую.
В объединенной сети прямая доставка выполняется на заключитель-
ном этапе пересылки любой дейтаграммы от узла к хосту, независимо от то-
го, через какое количество сетей и промежуточных маршрутизаторов она
прошла. Последний из маршрутизаторов, находящийся на пути следования
дейтаграммы и подключенный к одной физической сети с конечным получа-
телем, выполняет ее прямую доставку до получателя. Таким образом, пря-
мую доставку дейтаграмм следует рассматривать как частный случай общего
процесса маршрутизации, выполняемого на всем этапе следования дейта-
граммы от отправителя до конечного получателя. При прямой доставке дей-
таграмма не проходит через промежуточные узлы маршрутизации.
Процесс непрямой доставки является намного сложнее по сравнению с
прямой доставкой дейтаграмм, поскольку отправителю нужно определить
адрес ближайшего маршрутизатора, находящегося в одной с ним сети, кото-
рому должна быть послана дейтаграмма.
В случае если одному из компьютеров сети нужно отправить дейта-
грамму другому компьютеру, он инкапсулирует ее в канальный кадр и пере-
сылает его по физической сети ближайшему маршрутизатору своей сети, так
как к каждой физической сети подключен как минимум один маршрутиза-
тор. Приняв дейтаграмму, маршрутизатор с помощью своего программного
обеспечения извлекает ее из сетевого кадра и передает на обработку про-
грамме маршрутизации протокола IP. После этого программа маршрутиза-
ции выполняют поиск адреса следующего маршрутизатора, находящегося на
Компьютерные сети
300
пути следования пакета до конечного получателя. Как только будет опреде-
лен IP-адрес следующего узла маршрутизации, дейтаграмма снова помеща-
ется в сетевой пакет и пересылается этому узлу по соответствующему участ-
ку физической сети. Этот процесс повторяется многократно до тех пор, пока
дейтаграмма не дойдет до физической сети, в которую включен получатель.
Далее дейтаграмма отправляется конечному получателю методом прямой
доставки.
Обычно маршрутизация дейтаграмм в объединенной сети выполняется
с помощью специальных таблиц межсетевой маршрутизации (Internet
routing table), которые иногда называют таблицами IP-маршрутизации (IP
routing table). В них хранится информация о возможных путях следования
дейтаграмм и способах их достижения. Поскольку в процесс маршрутизации
вовлечены как компьютеры пользователя, так и сетевые маршрутизаторы, то
такие таблицы должны храниться на каждом компьютере объединенной се-
ти, независимо от выполняемых ею функций. В момент отправки дейта-
граммы с компьютера пользователя запущенная на нем программа маршру-
тизации (она является частью программ поддержки протокола IP) с помо-
щью таблицы маршрутизации определяет узел сети, которому следует по-
слать эту дейтаграмму. В связи с тем, что в объединенной сети на межсете-
вом уровне происходит доставка пакетов от одной подсети к другой, таблица
маршрутизации должна содержать только префиксы адреса сети, а не пол-
ные IP-адреса всех ее компьютеров.
Использование выделенного из адреса получателя вместо полного ад-
реса узла префикса, идентифицирующего сеть, повышает эффективность
маршрутизации и сокращает размер соответствующих таблиц. Кроме того,
подобный подход позволяет скрыть информацию о структуре сети, сосредо-
точить данные о конкретных узлах в рамках локальной среды, к которой они
подключены. Обычно в таблице маршрутизации содержатся пары значений
(B, N), где B представляет IP-адрес сети получателя, a N является IP-адресом
"следующего" по порядку маршрутизатора, расположенного на пути движе-
ния пакетов до сети назначения. Маршрутизатор N называется ближайшей
точкой перехода (next hop), а сам способ хранения в таблице маршрутиза-
ции адреса ближайшей точки перехода для каждого получателя получил на-
звание маршрутизации на шаг вперед (next-hop routing). Таким образом, в
таблице маршрутизации, хранящейся на узле N, содержатся данные о пути
следования дейтаграмм от узла N до ближайшей точки перехода в направле-
нии сети получателя. Следует заметить, что маршрутизатор N не располагает
данными о полном маршруте дейтаграммы к конечному получателю.
Размер таблицы маршрутизации узла N зависит от количества физиче-
ских сетей в объединенной сети. Увеличение количества элементов в этой
таблице происходит только в случае подключения к объединенной сети но-
Раздел 4. Компьютерная сеть Интернет
301
вых подсетей. Однако на размер таблицы маршрутизации и на ее содержи-
мое не оказывает влияния количество индивидуальных компьютеров, под-
ключенных ко всем сетям.
Выше отмечалось, что в сетях TCP/IP маршрутизация выполняется на
основе адреса сети, а не полных адресов отдельных ее узлов. Тем не менее, в
большинстве реализаций протокола IP предусмотрена возможность выпол-
нения маршрутизации для адресов отдельных узлов. Это позволяет сетевым
администраторам более точно распределять потоки данных в сети, тестиро-
вать ее отдельные участки сети, а также управлять правами доступа к сете-
вым ресурсам. Возможность задать индивидуальный маршрут дейтаграмм до
конкретного компьютера особенно полезна при отладке сетевых подключе-
ний или проверке таблиц маршрутизации.
Алгоритм маршрутизации представляется в следующем виде.
1: Извлечь IP-адрес (DestID) места назначения из дейтаграммы.
2: Выделить IP-адрес сети назначения (NetID).
3: ЕСЛИ NetID соответствует какому-либо адресу данной подсети,
выполнить прямую доставку дейтаграммы по этому адресу.
4: ИНАЧЕ, ЕСЛИ NetID присутствует в маршрутной таблице, то по-
слать дейтаграмму на маршрутизатор, указанный в таблице.
5: ИНАЧЕ, ЕСЛИ описан маршрут по умолчанию, то послать дейта-
грамму к стандартному маршрутизатору, адрес которого берется из таблицы.
6: ИНАЧЕ выдать сообщение об ошибке маршрутизации.
Интернет, как уже неоднократно отмечалось, является всемирной се-
тью, которая состоит из многих независимых сетей. К наиболее крупным со-
ставным частям объединенной сети относятся так называемые автономные
системы. Автономной системой AS (Autonomous Systems) называют группу
сетей и маршрутизаторов (routers), объединенных общей политикой мар-
шрутизации и находящихся под управлением одного административного ор-
гана, например Укртелекома. Под политикой маршрутизации понимают ад-
министративное регулирование маршрутов путем внесения ограничений на
передачу и использования маршрутной информации.
AS являются автономными относительно распределения маршрутной
информации, т.е. информация о достижимости IP-адресов и префиксов IP-
адресов (маршрутизаторов) не передается другим автономным системам.
Следует заметить, что автономная сеть в свою очередь может состоять из не-
скольких сетей, однако управление ими всегда осуществляется единым ад-
министративным органом. Если маршрутная политика автономной системы
позволяет передавать через свои сети транзитный трафик других AS, то та-
кая автономная система называется транзитной.
Компьютерные сети
302
Для определения маршрута внутри AS применяется внутренние про-
токолы маршрутизации IGP (Interior Gateway Protocols). Наиболее распро-
страненными протоколами внутренней маршрутизации являются протоколы
RIP (Routing Information Protocol) и OSPF (Open Shortest Path First). В ста-
рых системах IGP иногда все еще используется протокол HELLO. Фирмой
Cisco был разработан протокол IGRP (Interior Gateway Routing Protocol)
альтернативный протоколу RIP. Затем Cisco представила улучшенный вари-
ант IGRP протокол EIGRP (Enhanced Interior Gateway Routing Protocol),
свободный от основного недостатка протоколов векторов расстояний за-
цикливанию маршрутов.
Каждая AS имеет однозначный AS-номер. Эти номера распределяются
международным информационным центром NIC (Network Information
Center). Организация NIC в свою очередь подразделяется на региональные
отделения (по странам).
Автономные системы, объединенные между собой при помощи внеш-
них маршрутизаторов, и образуют глобальную сеть Интернет (рисунок 4.18).
Изначально, по терминологии Интернет, внутренние и внешние мар-
шрутизаторы получили название шлюз (Gateway). Эти названия часто ис-
пользуются и по настоящее время как синонимы маршрутизаторам. Внешние
маршрутизаторы называют также пограничными (Border) маршрутизато-
рами.
Два маршрутизатора, которые обмениваются информацией о маршру-
тах, называются внутренними соседями в том случае, если они принадлежат
к одной автономной системе, и внешними, если они принадлежат к различ-
ным автономным системам. На рисунке 4.18 маршрутизаторы Ri являются
внутренними для автономных систем AS1 и AS2 соответственно. Re
1
и Re
2
совмещают функции внешнего и внутреннего маршрутизаторов. Маршрути-
затор Re
1
представляет для автономной системы AS2 маршруты к сетям, ко-
торые находятся в автономной системе AS1. Аналогичную функцию выпол-
Рисунок 4.18 – Область действия внутренних и внешних протоколов маршрутизации
Раздел 4. Компьютерная сеть Интернет
303
няет маршрутизатор Re
2
по отношению к маршрутам AS1.
Информационное взаимодействие между компонентами различных ав-
тономных систем может быть выполнено только через специальную область,
которая предназначена для интеграции всей системы в целом (рисунок 4.19).
Такая область, называется магистральной или опорной сетью (Backbone
Area).
Магистральная сеть в свою очередь может иметь различную тополо-
гию (кольцевую, многосвязную и пр.). Такая сеть строится на основе высо-
коскоростных маршрутизаторов и линий связи. Маршрутизация IP-пакетов в
глобальной сети Интернет может осуществляться только при возможности
обмена маршрутной информацией между внешними маршрутизаторами. Для
этого был разработан протокол внешней маршрутизации EGP (Exterior
Gateway Protocol). В соответствии с этим протоколом автономные системы
сообщают глобальной сети, какие IP-префиксы они используют. В качестве
внешнего протокола EGP в настоящее время применяется протокол BGP4
(Border Gateway Protocol) четвертой версии.
Следует подчеркнуть, что протоколы маршрутизации не осуществляют
маршрутизацию дейтаграмм. Маршрутизация в любом случае производится
модулем IP согласно записям в таблице маршрутов. Протоколы маршрути-
зации на основании тех или иных алгоритмов динамически редактируют
таблицу маршрутов, т.е. вносят и удаляют записи. При этом часть записей
может вноситься администратором вручную. Управление маршрутизатором
осуществляется путем подачи администратором команд с компьютера, под-
ключенного к консольному порту маршрутизатора или удаленным способом
посредством службы Telnet. В последнем случае команды передаются на IP-
адрес одного из портов маршрутизатора.
Рисунок 4.19 – Взаимодействие автономных сетей через магистральную сеть
Компьютерные сети
304
4.4.2. Дистанционно-векторный протокол RIP
Дистанционно-векторный протокол маршрутизации RIP (Routing
Information Protocol) предназначен для сравнительно небольших и относи-
тельно однородных сетей. Для нахождения оптимального пути используется
алгоритм Белмана-Форда (см. п.1.4.3). Маршрут в данном алгоритме харак-
теризуется вектором расстояния до места назначения (место назначение
направление вектора; метрика модуль вектора). Предполагается, что каж-
дый маршрутизатор является отправной точкой нескольких маршрутов до
сетей, с которыми он связан. Описания этих маршрутов хранится в специ-
альной маршрутной таблице. Таблица маршрутизации RIP содержит по од-
ной записи на каждый обслуживаемый компьютер (на каждый маршрут). За-
пись должна включать в себя следующее:
1) IP-адрес места назначения;
2) метрику маршрута (от 1…15 число шагов (hops) до места назна-
чения);
3) IP-адрес ближайшего маршрутизатора (gateway) по пути к месту на-
значения;
4) таймеры (счетчики времени) маршрута.
Каждый маршрут содержит счетчики тайм-аута и "сборщика мусора".
Счетчик тайм-аута сбрасывается в ноль в момент коррекции или инициали-
зации маршрута. Если с момента последней коррекции прошло 3 мин или
получено сообщение, что расстояние равно 16, то маршрут закрывается, од-
нако запись о нем не стирается до наступления времени "сборки мусора".
Функции RIP-модуля в маршрутизаторе состоят в рассылке, получе-
нии и обработке векторов расстояний до IP-сетей, находящихся в области
действия протокола. Каждый маршрутизатор один раз в 30 секунд посылает
всем смежным узлам, с которыми он непосредственно связан, сообщение об
изменении своей маршрутной таблицы (routing update). Маршрутизатор-
получатель просматривает таблицу изменений, и если в таблице присутству-
ет новый путь или сообщение о более коротком маршруте, либо произошли
изменения длин пути, то эти изменения фиксируются получателем в своей
маршрутной таблице. Если сетевой узел в течение определенного времени не
получил маршрутное сообщение от какого-либо соседа, то это воспринима-
ется как авария, и маршрут данного направления исключается из таблицы.
По протоколу RIP сообщения инкапсулируются в UDP-дейтаграммы,
при этом передача осуществляется через порт 520. В качестве метрики RIP
использует число шагов (хопов) до цели. Если между отправителем и при-
емником расположено три маршрутизатора (gateway), то считается, что меж-
ду ними 4 шага. Такой вид метрики не учитывает различий в пропускной
Раздел 4. Компьютерная сеть Интернет
305
способности или загруженности отдельных сегментов сети. Применение
вектора расстояния не может гарантировать оптимальность выбора маршру-
та, поскольку, например, два шага по сегментам сети Ethernet обеспечат
большую пропускную способность, чем один шаг через последовательный
канал на основе интерфейса RS-232С.
Формат сообщения протокола RIP имеет вид, показанный на рисунке
4.20. Поле "Команда" определяет вид маршрутизационного сообщения.
Имеется шесть кодов команд: 1Запрос на получение частичной или полной
маршрутной информации; 2 Отклик, содержащий информацию о расстоя-
ниях из маршрутной таблицы отправителя; 3 Включение режима трасси-
ровки; 4 – Выключение режима трассировки; 5-6 – Зарезервированы для
внутренних целей фирмы Sun Microsystem. Команды 3 и 4 применялись в
ранних версиях протокола.
Поле "Версия" для RIP равно 1 (для RIP-2 двум). Поле "Набор прото-
колов сети i " определяет набор протоколов, которые используются в соот-
ветствующей сети (для Интернет это поле имеет значение 2). Поле "Стои-
мость до сети i " содержит целое число шагов (от 1 до 15) до данной сети. В
одном маршрутном сообщении может присутствовать информация о 25
маршрутах.
При реализации RIP можно выделить следующие режимы.
Инициализация определение всех функционирующих интерфейсов
путем посылки запросов, получение таблиц от других маршрутизаторов.
Часто используются широковещательные запросы.
Рисунок 4.20 – Формат пакета протокола маршрутизации RIP
Компьютерные сети
306
Получен запрос. В зависимости от типа запроса адресату высылается
полная таблица маршрутизации или проводится индивидуальная обработка.
Получен отклик. Проводится коррекция таблицы маршрутизации
(удаление, исправление, добавление).
Регулярные коррекции. Каждые 30 секунд вся или часть таблицы
маршрутизации посылается всем соседним маршрутизаторам. Могут посы-
латься и специальные запросы при локальном изменении таблицы.
Неотъемлемой частью протокола маршрутизации RIP является реали-
зация правила "расщепленный горизонт" (Split horizon). Оно предназначено
для предотвращения появления циклических маршрутов в сети. В соответст-
вии с этим правилом маршрутизатор разделяет свои маршруты на столько
групп, сколько у него имеется активных интерфейсов. Причем, обновления
для маршрутов, которые были получены через k интерфейс, не должны
передаваться через этот же интерфейс.
Использование процедуры Split horizon позволяет избежать появления
зацикленного маршрута у двух шлюзов. Однако возможно возникновение
ситуации, когда в циклическом маршруте участвуют три шлюза. Использо-
вание процедуры Split horizon не сможет предотвратить появление такой
петли, поскольку сообщения о маршруте поступают не от того маршрутиза-
тора, которому передаются сообщения модификации. Следовательно, эта
петля будет разорвана только в случае, когда метрика циклического маршру-
та достигает заданного максимального значения.
Протокол RIP достаточно прост в эксплуатации и конфигурации, за
что он и получил широкое распространение. Однако ему присущ ряд недос-
татков.
1. RIP не работает с адресами подсетей. Если нормальный 16-битовый
идентификатор хоста класса B не равен 0, RIP не может определить является
ли ненулевая часть подсетевым ID, или полным IP-адресом.
2. RIP требует много времени для восстановления связи после сбоя в
маршрутизаторе (минуты). В процессе установления режима возможно за-
цикливание.
3. Число шагов важный, но не единственный параметр маршрута, да и
15 шагов становится ограничением для современных сетей.
Новой версией RIP, которая в дополнение к широковещательному ре-
жиму поддерживает групповую адресацию ультикастинг), является про-
токол RIP-2. Он передает информацию о масках сетей, позволяя работать с
бесклассовой адресацией. На рисунке 4.21 показан формат сообщения для
протокола RIP-2. Поле "Маршрутный демон" служит идентификатором ре-
зидентной программы-маршрутизатора, а поле "Метка маршрута" исполь-
зуется для поддержки внешних протоколов маршрутизации, сюда записыва-
ются коды автономных систем.
Раздел 4. Компьютерная сеть Интернет
307
4.4.3. Протокол маршрутизации с учетом состояния линий
Альтернативой протокола RIP для внутренней маршрутизации сетей
стал протокол OSPF (Open Shortest Path First). Он гораздо сложнее RIP-
протокола, однако OSPF может функционировать в сетях любой сложности
и не имеет ограничений, характерных для RIP. Время, используемое на по-
строение таблиц маршрутизации и загрузки сети служебной информацией, в
среднем меньше по сравнению с тем, что потребовал бы RIP для такой же
системы. Если между узлами сети существуют несколько маршрутов с оди-
наковыми или близкими по значению метриками, то протокол OSPF позво-
ляет разделять часть трафика по этим маршрутам обратно пропорцио-
нально значениям метрик. Например, если имеются два пути с метриками 1
и 2, то две трети трафика будет направлено по первому из них, а оставшаяся
треть по второму. Такая способность протокола позволяет равномерно за-
гружать направления сети и уменьшать среднее время задержки дейтаграмм.
Кроме этого, переходные процессы в OSPF завершаются быстрее, чем в RIP.
OSPF представляет собой протокол учета состояния маршрута.
Маршрутизация выполняется по алгоритму Дийкстры. В качестве метрики
используется коэффициент качества обслуживания QoS (Quality of Service).
Каждый маршрутизатор обладает полной информацией о состоянии всех ин-
терфейсов всех маршрутизаторов (узлов коммутации) автономной системы.
Протокол OSPF реализован программным модулем демоном маршрути-
зации gated, который поддерживает также RIP и внешний протокол маршру-
Рисунок 4.21 – Формат сообщений протокола RIP-2
Компьютерные сети
308
тизации BGP. Качество обслуживания (QoS) характеризуется следующими
параметрами:
пропускной способностью канала;
задержкой (временем распространения пакета);
числом дейтаграмм, стоящих в очереди для передачи;
загрузкой канала;
требованиями безопасности;
типом трафика;
числом шагов до места назначения;
возможностями промежуточных связей (например, многовариантность
достижения адресата);
надежностью передачи пакетов.
Доминирующими являются три характеристики: задержка, пропуск-
ная способность и надежность. На практике чаще всего метрика связи в
OSPF определяется как количество секунд, требуемых для передачи 100
Мбит по каналу, через который проложен маршрут. Например, метрика сети
на основе 10BASE-T Ethernet равна 10, метрика канала модемной связи со
скоростью 56 кбит/с составляет 1785, а канала со скоростью 100 Мбит и вы-
ше равна 1.
Для облегчения управления сетями и обеспечения возможности их
расширения протокол OSPF позволяет администрации сетевого центра раз-
делить свою сеть и маршрутизаторы на области (areas). Все области изоли-
рованы друг от друга. Это означает, что сведения о топологической схеме
области можно скрыть от других зон. В результате несколько групп компью-
теров, находящихся в пределах одного сетевого центра, могут использовать
протокол OSPF для маршрутизации пакетов между собой. При этом каждая
из групп может независимо от других областей изменять топологию своей
внутренней сети. Для транспортных целей OSPF применяет IP непосредст-
венно, т.е. не привлекая протоколы UDP или TCP. OSPF имеет свой код в
протокольном поле IP-заголовка. Код типа обслуживания TOS (type of
service) в IP-пакетах, содержащих OSPF-сообщения, равен нулю, значение
типа обслуживания TOS здесь задается в самих пакетах OSPF.
Маршрутизация в протоколе OSPF определяется IP-адресом и типом
сервиса. В связи с тем, что протокол не требует инкапсуляции пакетов, су-
щественно облегчается управление сетями с большим количеством мостов и
сложной топологией (исключается циркуляция пакетов, сокращается тран-
зитный трафик). Автономная система может быть поделена на отдельные
области, каждая из которых становится объектом маршрутизации, а внут-
ренняя структура снаружи не видна. Этот прием позволяет значительно со-
кратить необходимый объем маршрутной базы данных. В OSPF использует-
ся термин магистральная сеть (backbone), обозначающий среду для комму-