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

 

Задача маршрутизации решается на основе таблицы маршрутизации, размещаемой на всех маршрутизаторах и всех конечных узлах сети. Основная работа по созданию этих таблиц выполняется автоматически. Для этого способа построения таблиц маршрутизаторы обмениваются информацией о топологии составной сети в соответствии со специальным служебным протоколом (протоклы маршрутизации или маршрутизирующие протоколы). Пример – RIP (Routing Information Protocol , протокол информации о доступных маршрутах, работающих в соответствии с алгоритмом дистанционно-векторного типа) и OSPF (Open Shortest Path First, приоритет выбора кротчайшего пути).

Указанные протоколы маршрутизации следует отличать от собственно протокола сетевого уровня модели OSI для стека TCP/IP – IP. Протокол IP, выполняя функции сетевого уровня модели OSI, принимает участие в доставке пакетов адресату через разнородную составную сеть. Если протоколы маршрутизации RIP и OSPF собирают и передают по сети сугубо служебную информацию, то IP передает пользовательские данные, как протоколы канального уровня. Протоколы маршрутизации используют сетевой уровень протокола IP как транспортное средство.

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

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

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

1. алгоритмы фиксированной (статической) маршрутизации;

2. алгоритмы простой маршрутизации;

3. алгоритмы адаптивной (динамической) маршрутизации.

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

1. Случайная маршрутизация (прибывший пакет посылается в первом попавшим в случайном направлении кроме исходного);

2. Лавинная маршрутизация (пакеты широковещательно посылаются по всем возможным направлениям кроме исходного (здесь просматривается аналогия с мостами и коммутаторами кадров в режиме самообучения мостов и коммутаторов при отсутствии в таблице MAC-адреса узла назначения));

3. Маршрутизация по предыдущему опыту (выбор маршрута осуществляется по таблице, но при этом таблица строится по принципу моста или коммутатора путем анализа адресных полей пакетов, появляющихся на входных портах);

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

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

2. Адаптивные алгоритмы не должны требовать слишком большого объема вычислений и порождать интенсивный служебный траффик.

3. Адаптивные алгоритмы должны обладать свойством сходимости

4. Всегда приводить к однозначному результату за приемлемое время

Все адаптивные протоколы построенные на адаптивных алгоритмах обмена маршрутной информацией делятся на 2 группы: дистанционно-векторные алгоритмы (Distance Vector Algorithms, DVA) и алгоритмы состояния связей (Link State Algorithms, LSA).

В алгоритмах DVA каждый маршрутизатор периодически и широковещательно рассылает по составной сети вектор, компонентами которого являются расстояния от данного маршрутизатора до всех известных ему сетей. Здесь под расстоянием понимается число хопов. При этом возможна и другая метрика: учитывается, на ряду с числом хопов, время, за которое пакет проходит между сетями. При получении векторов от соседа маршрутизатор наращивает расстояние до указанных в векторе сетей на расстояние до данного соседа. Получив вектор от соседнего маршрутизатора каждый маршрутизатор добавляет к нему информацию об известных ему других сетях, о которых он узнал непосредственно (т.е. подключены к его портам) или из аналогичных объявлений других маршрутизаторов, и далее рассылает значение вектора по составной сети. В конце концов каждый маршрутизатор узнает информацию обо всех имеющихся в составной сети сетях и о расстояниях через соседние маршрутизаторы. Алгоритмы DVA хорошо работают только в небольших составных сетях. Работа маршрутизатора в соответствии с DVA напоминает работу моста, поскольку точной топологической картины всей составной сети такой маршрутизатор не имеет. Наиболее распространенным протоколом из TCP/IP работа которого основана на DVA является протокол RIP, который работает совместно с протоколом IP, используя его как транспорт.

Алгоритм состояния связей (LSA) обеспечивает каждый маршрутизатор информацией, которая является достаточной для построения точного графа связей составной сети. При этом все маршрутизаторы работают на принципе одинаковых графов. Это делает процесс маршрутизации более устойчивым к изменению конфигурации. Вершинами графа являются как маршрутизаторы, так и объединяемые ими сети. Распространяемая по сети (составной сети) информация состоит из описания связей типов: маршрутизатор-маршрутизатор, маршрутизатор-сеть. Чтобы понять в каком состоянии находятся линии связи, подключенные к его портам, маршрутизатор периодически обменивается короткими пакетами («HELLO») со своими ближайшими соседями. Несомненно, что эти пакеты являясь служебным траффиком, засоряют составную сеть, но не в такой степени как RIP-пакеты, поскольку пакеты «HELLO» имеют куда меньший объем. Примером протокола маршрутизации из TCP/IP, работа которого основана на использовании алгоритма состояния связей (LSA) является протокол OSPF.