Маршрутизация

Когда пользователь отправляет данный другому узлу внутри локальной сети, узел-отправитель сначала шлёт в сеть ARP-запрос для вычисления MAC-адреса получателя (если он неизвестен), затем отправляет данные по полученному MAC-адресу.

Если необходимо отправить данные в другую сеть (или подсеть), то данные будут отправлены шлюзу, а тот в свою очередь направит данные дальше по маршруту.

Шлюз (Gateway) – устройство, соединяющее две или более сетей, которые могут использовать различные протоколы. Шлюзы могут быть программными и аппаратными.

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

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

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

В случае использования маршрутизации от источника сам отправитель помещает в пакет информацию о том, по какому маршруту пройдут данные до получателя. На основе этой информации каждый маршрутизатор продвигает данные дальше по сетям. В таком случае отправитель должен знать о маршруте следования данных. Маршруты могут вводиться вручную администратором сети либо при помощи протоколов маршрутизации, сообщающих отправителю о топологии и состоянии сети. Такой способ маршрутизации был опробован ещё на этапе зарождения сети Интернет, но остался невостребованным в рамках использования IPv4. В IPv6 маршрутизация от источника является одним из стандартных режимов продвижения пакетов.

Таблица маршрутизации

Данные способы находят очень редкое применение, в основном маршрутизация выполняется на специальных устройствах (маршрутизаторах) с использованием таблиц маршрутизации. Пример такой таблицы для рисунка 9.1:



Таблица маршрутизации для маршрутизатора 2

Адрес сети (Network address) Маска подсети (Subnet Mask) Адрес следующего маршрутизатора[1] (Next hop address) Интерфейс[2] (Interface) Метрика (Metric)
129.13.0.0 255.255.0.0 129.13.0.1
198.21.17.0 255.255.255.0 198.21.17.6
213.34.12.0 255.255.255.0 198.21.17.1 198.21.17.6
213.34.12.0 255.255.255.0 198.21.17.7 198.21.17.6
213.34.12.22 255.255.255.255 198.21.17.7 198.21.17.6
56.0.0.0 255.0.0.0 198.21.17.7 198.21.17.6
56.0.0.0 255.0.0.0 198.21.17.1 198.21.17.6
116.0.0.0 255.0.0.0 198.21.17.1 198.21.17.6
116.0.0.0 255.0.0.0 198.21.17.7 198.21.17.6
0.0.0.0 0.0.0.0 198.21.17.7 198.21.17.6

Данная таблица является многомаршрутной, т.к. до некоторых сетей имеются две записи пути. В случае построения одномаршрутной таблицы необходимо указывать только один маршрут для каждой сети по наименьшему значению метрики, т.е. в данном примере не будет строк 4, 7 и 9. Записи из таблицы маршрутизации читаются следующим образом: чтобы передать пакет в сеть с адресом 56.0.0.0и маской 255.0.0.0, нужно послать пакет по IP-адресу 198.21.17.7 через свой интерфейс с адресом 198.21.17.6, а «стоимость» доставки равна 1.

В таблице в столбце «Адрес сети» указываются адреса всех сетей, которым данный маршрутизатор может передавать пакеты. В стеке TCP/IP принят так называемый одношаговый подход к оптимизации маршрута продвижения пакета (next-hop routing) – каждый маршрутизатор принимает участие в выборе только одного шага передачи пакета. Поэтому в каждой строке таблицы маршрутизации указывается не весь маршрут в виде последовательности IP-адресов маршрутизаторов, через которые должен пройти пакет, а только один IP-адрес – адрес следующего маршрутизатора. Вместе с пакетом следующему маршрутизатору передается ответственность за выбор следующего шага маршрутизации. Одношаговый подход к маршрутизации означает распределенное решение задачи выбора маршрута. Это снимает ограничение на максимальное количество транзитных маршрутизаторов на пути пакета.



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

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

Специфичный для узла маршрут содержит вместо номера сети адрес узла, то есть полный IP-адрес. Предполагается, что для такого конечного узла маршрут должен выбираться не так, как для всех остальных узлов сети, к которой он относится. В случае, когда в таблице есть разные записи о продвижении пакетов для всей сети (строка 3) и её отдельного узла (строка 5), при поступлении пакета, адресованного этому узлу, маршрутизатор отдаст предпочтение записи о специфичном маршруте.

В записях таблицы маршрутизации, относящихся к сетям, непосредственно подключенным к маршрутизатору, в поле «Метрика» записан ноль (строки 1 и 2), а в поле «Адрес следующего узла» указано «Подключена напрямую» (Directly connected – для оборудования Cisco, On-link – для ОС Windows).

Таблицы маршрутизации есть не только у маршрутизаторов. На каждом узле также ведётся своя таблица маршрутизации. На рисунке 9.2 изображена таблица маршрутизации ОС Windows. Изменение настроек маршрутизации на узле под управлением ОС Windows или Unix осуществляется с помощью командыroute.

Рисунок 9.2. Пример таблицы маршрутизации для ОС Windows

Для вычисления маршрута от своего до необходимого конечного узла используется инструмент traceroute (tracert для ОС Windows). На рисунке 9.3 показан пример выполнения команды. Здесь параметр –d применён для того, чтобы не отображались доменные имена узлов.

Рисунок 9.3. Пример выполнения команды tracert

Для определения промежуточных маршрутизаторов traceroute отправляет целевому узлу серию ICMP-пакетов (по умолчанию 3 пакета), с каждым шагом увеличивая значение поля TTL на 1. Это поле указывает максимальное количество маршрутизаторов, которое может быть пройдено пакетом. Первая серия пакетов отправляется с TTL=1, и поэтому первый же маршрутизатор возвращает обратно ICMP-сообщение «Time exceeded in transit», указывающее на невозможность доставки данных. Программа фиксирует адрес маршрутизатора, а также время между отправкой пакета и получением ответа. Затем tracerouteповторяет отправку серии пакетов, но уже с TTL=2, что заставляет первый маршрутизатор уменьшить TTL пакетов на единицу и направить их ко второму маршрутизатору. Второй маршрутизатор, получив пакеты с TTL=1, так же возвращает сообщение «Time exceeded in transit». Процесс повторяется до тех пор, пока пакет не достигнет целевого узла. При получении ответа от этого узла процесс трассировки считается завершённым.

На оконечном узле IP-пакет с TTL=1 не отбрасывается и не вызывает ICMP-сообщения типа «истёк срок доставки», а должна быть отдана приложению. Достижение пункта назначения определяется следующим образом: отсылаемыеtraceroute пакеты содержат UDP-сегмент с заведомо неиспользуемым номером порта на адресуемом узле. Номер порта будет равен 33434 + (максимальное количество транзитных участков до узла) – 1. В пункте назначения UDP-модуль, получая подобные сегменты, возвращает ICMP-сообщения об ошибке «порт недоступен». Таким образом, чтобы узнать о завершении работы, программеtraceroute достаточно обнаружить, что поступило ICMP-сообщение об ошибке этого типа.

Классификация протоколов маршрутизации

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

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

Различают статическую и динамическую (адаптивную) маршрутизации.

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

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

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

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

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


2332927229383730.html
2333001814641130.html
    PR.RU™