Структура и принципы работы маршрутизаторов

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

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

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

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

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

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

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

 
 

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

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

Случайное раннее обнаружение (Random Early Detection — RED) представляет собой альтернативу очередям FIFO. Оно позволяет смягчить эффект от потери трафика даже при очень больших нагрузках. Такая очередь по-прежнему использует принцип FIFO, но трафик отбрасывается статически, когда средняя длина очереди за данный промежуток времени превосходит установленное значение. Этим достигается оптимизация заполнения очереди. Наряду с бесприоритетной дисциплиной обслуживания очередей (FIFO и случайная выборка из очереди) используется и дисциплина с относительными приоритетами.

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

Определение маршрута (уровень маршрутизации) реализовано програм-мными методами. Реализации этой функции носят названия протоколов маршрутизации. Алгоритмы, заложенные в протоколы маршрутизации, описывают процесс определения наиболее предпочтительного маршрута движения информации к адресату на основании информации в таблицах маршрутизации. Алгоритмы маршрутизации базируются на различных показателях или их комбинациях. Простейшие алгоритмы маршрутизации выбирают маршрут с наименьшим числом промежуточных (транзитных) узлов. Более сложные учитывают задержку передачи пакетов, пропускную способность каналов связи или стоимость связи. Основным результатом работы алгоритма маршрутизации является инициализация и поддержка таблицы маршрутизации, в которой содержится вся маршрутная информация. Содержание таблицы маршрутизации зависит от типа используемого протокола. Таблица маршрутизации может содержать следующую информацию:

· действительный адрес или множество действительных адресов в сети;

· информацию, вычисленную протоколом маршрутизации или необходимую для его функционирования;

· информацию, необходимую для пересылки пакетов на один маршрутизатор ближе к получателю.

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

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

Алгоритмы маршрутизации могут быть: 1) статическими или динамическими; 2) одномаршрутными или многомаршрутными; 3) одноуровневыми или иерархическими; 4) внутридоменными или междоменными; 5) одноадресными или групповыми.

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

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

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

Существует три основные группы протоколов маршрутизации. Деление на группы определяется типом реализуемого алгоритма определения оптимального маршрута. К этим группам относятся: протоколы длины вектора; протоколы состояния канала; протоколы политики маршрутизации.

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

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

К третьей группе протоколов относятся протоколы политики (правил) маршрутизации. Они наиболее эффективно решают задачу доставки получателю информации по разрешенным путям. Эта категория протоколов используется при маршрутизации в сети Internet и позволяет операторам получать информацию о маршрутизации от соседних операторов на основании специальных критериев. Алгоритмы, используемые для политики маршрутизации, опираются на алгоритмы длины вектора, но информация о показателях путей базируется на списке операторов магистрали.

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

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