Примеры таблиц маршрутизации разных форматов

Структура реальных таблиц маршрутизации стека TCP/IP в целом соответствует упрощенной структуре рассмотренных ранее таблиц. Отметим, однако, что вид таблицы IP-маршрутизации зависит от конкретной реализации стека TCP/IP. Приведем пример нескольких вариантов таблицы маршрутизации, с которыми мог бы работать маршрутизатор R1 в сети, представленной на рис. 1.

Начнем с «придуманного» предельно упрощенного варианта таблицы маршрутизации (табл. 1). Здесь имеются три маршрута к сетям (записи 56.0.0.0,116.0.0.0 и 129.13.0.0), две записи о непосредственно подсоединенных сетях (198.21.17.0 и 213.34.12.0), а также запись о маршруте по умолчанию.

Таблица 1. Упрощенная таблица маршрутизации маршрутизатора R1

Адрес сети назначения    Адрес следующего маршрутизатора Адрес выходного интерфейса                Расстояние до сети назначения
            15
            13
            2
            1 (подсоединена)
            1
 
56.0.0.0    213.34.12.4 213.34.12.3 15
116.0.0.0 213.34.12.4 213.34.12.3 13
129.13.0.0   198.21.17.6 198.21.17.5 2
198.21.17.0 198.21.17.5 198.21.17.5 1(подсоединена)
213.34.12.0   213.34.12.3 213.34.12.3 1(подсоединена)
Маршрут по умолчанию  198.21.17.7 198.21.17.5 -

Более сложный вид имеют таблицы, которые генерируются в промышленно выпускаемом сетевом оборудовании.

Если представить, что в качестве маршрутизатора R1 в данной сети работает штатный программный маршрутизатор операционной системы Microsoft Windows ХР, то его таблица маршрутизации могла бы выглядеть так, как табл. 2.

Рис. 1 Пример маршрутизируемой сети

Таблица 2. Таблица программного маршрутизатора ОС Windows ХР

Сетевой адрес  Маска Адрес шлюза             Интерфейс                 Метрика
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
0.0.0.0   0.0.0.0  198.21.17.7 198.21.17.5 1
56.0.0.0  255.0.0.0 213.34.12.4 213.34.12.3 15
116.0.0.0 255.0.0.0 213.34.12.4 213.34.12.3 13
129.13.0.0  255.255.0.0 198.21.17.6 198.21.17.5 2
198.21.17.0 255.255.255.0 198.21.17.5 198.21.17.5 1
198.21.17.5 255.255.255.255 127.0.0.1 127.0.0.1 1
198.21.17.255 255.255.255.255 198.21.17.5 198.21.17.5 1
213.34.12.0  255.255.255.0   213.34.12.3  213.34.12.3  1
213.34.12.3 255.255.255.255 127.0.0.1 127.0.0.1  1
213.34.12.255 255.255.255.255 213.34.12.3 213.34.12.3 1
224.0.0.0 224.0.0.0 198.21.17.6 198.21.17.6 1
224.0.0.0 224.0.0.0 213.34.12.3 213.34.12.3 1
255.255.255.255 255.255.255.255 198.21.17.6 198.21.17.6 1

Если на месте маршрутизатора R1 установить один из популярных аппаратных маршрутизаторов, то его таблица маршрутизации для этой же сети может выглядеть совсем иначе (табл. 3).

Таблица 3. Таблица маршрутизации аппаратного маршрутизатора

Адрес назначения     Маска         Шлюз Метрика Статус  TTL Источник
198.21.17.0  255.255.255.0 198.21.17.5 0 Up   Подключена
213.34.12.0  255.255.255.0 213.34.12.3 0 Up - Подключена
56.0.0.0  255.0.0.0 213.34.12.4 14 Up - Статическая
116.0.0.0 255.0.0.0 213.34.12.4 12 Up - Статическая
129.13.0.0 255.255.0.0  198.21.17.6 1 Up 160 RIP

И наконец табл. 4 представляет собой таблицу маршрутизации для того же маршрутизатора R1, реализованного в виде программного маршрутизатора одной из версий операционной системы Unix.

Таблица 4. Таблица маршрутизации Unix-маршрутизатора

Адрес назначения     Шлюз Флаги Число ссылок   Загрузка Интерфейс
127.0.0.0  127.0.0.1 UH 1 154   1о0
Маршрут по умолчанию 198.21.17.7 UG 5 43270 1е0
198.21.17.0 198.21.17.5 U 35 246876 1е0
213.34.12.0 213.34.12.3 U 44 132435 le1
129.13.0.0 198.21.1.7.6 UG 6 16450 1е0
56.0.0.0   213.34.12.4 UG 12 5764 le1
116.0.0.0 213.34.12.4 UG 21 23544 le1

ПРИМЕЧАНИЕ
Заметим, что поскольку между структурой сети и таблицей маршрутизации нет однозначного соответствия, для каждого из приведенных вариантов таблицы можно предложить свои «подварианты», отличающиеся выбранным маршрутом к той или иной сети. В данном случае внимание концентрируется на существенных различиях в форме представления маршрутной информации разными реализациями маршрутизаторов.

Несмотря на достаточно заметные внешние различия, во всех трех «реальных» таблицах присутствуют все ключевые данные из рассмотренной упрощенной таблицы, без которых невозможна маршрутизация пакетов.

К таким данным, во-первых, относятся адреса сети назначения (столбцы «Адрес назначения» в аппаратном маршрутизаторе и маршрутизаторе Unix или столбец «Сетевой адрес» в маршрутизаторе ОС Windows ХР).

Вторым обязательным полем таблицы маршрутизации является адрес следующего маршрутизатора (столбцы «Шлюз» в аппаратном маршрутизаторе и маршрутизаторе Unix или столбец «Адрес шлюза» в маршрутизаторе ОС Windows ХР).

Третий ключевой параметр — адрес порта, на который нужно направить пакет, в некоторых таблицах указывается прямо (столбец «Интерфейс» в таблице маршрутизатора ОС Windows ХР), а в некоторых — косвенно. Так, в таблице маршрутизатора Unix вместо адреса порта задается его условное наименование — 1е0 для порта с адресом 198.21.17.5, lei для порта с адресом 213.34.12.3 и 1о0 для внутреннего порта с адресом 127.0.0.1. В адпаратном маршрутизаторе поле, обозначающее выходной порт в какой-либо форме, вообще отсутствует. Это объясняется тем, что адрес выходного порта всегда можно косвенно определить по адресу следующего маршрутизатора. Например, определим по табл. 3 адрес выходного порта для сети 56.0.0.0. Из таблицы следует, что следующим маршрутизатором для этой сети будет маршрутизатор с адресом 213.34.12.4. Адрес следующего маршрутизатора должен принадлежать одной из непосредственно присоединенных к маршрутизатору сетей, и в данном случае это сеть 213.34.12.0. Маршрутизатор имеет порт, присоединенный к этой сети, и адрес этого порта 213.34.12.3 мы находим в столбце «Шлюз» второй строки таблицы маршрутизации, которая описывает непосредственно присоединенную сеть 213.34.12.0. Для непосредственно присоединенных сетей адресом следующего маршрутизатора всегда является адрес собственного порта маршрутизатора. Таким образом, для сети 56.0.0 адресом выходного порта является 213.34.12.3.

Стандартным решением сегодня является использование поля маски в каждой записи таблицы, как это сделано в таблицах маршрутизатора ОС Windows ХР и аппаратного маршрутизатора (столбцы «Маска»). Механизм обработки масок при принятии решения маршрутизаторами рассматривается далее. Отсутствие поля маски говорит о том, что либо маршрутизатор рассчитан на работу только с тремя стандартными классами адресов, либо для всех записей используется одна и та же маска, что снижает гибкость маршрутизации.
Поскольку в таблице маршрутизации маршрутизатора Unix каждая сеть назначения упомянута только один раз, а значит, возможность выбора маршрута отсутствует, то поле метрики является необязательным параметром. В остальных двух таблицах поле метрики используется только для указания на то, что сеть подключена непосредственно. Метрика 0 для аппаратного маршрутизатора или 1 для маршрутизатора ОС Windows ХР говорит маршрутизатору, что эта сеть непосредственно подключена к его порту, а другое значение метрики соответствует удаленной сети. Выбор метрики для непосредственно подключенной сети (1 или 0) является произвольным, главное, чтобы метрика удаленной сети отсчитывалась с учетом этого выбранного начального значения. В маршрутизаторе Unix используется поле признаков, где флаг G (Gateway — шлюз) отмечает удаленную сеть, а его отсутствие — непосредственно подключенную.

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

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

Флаги записей присутствуют только в таблице маршрутизатора Unix.

  • U — маршрут активен и работоспособен. Аналогичный смысл имеет поле статуса в аппаратном маршрутизаторе.
  • Н — признак специфического маршрута к определенному хосту.
  • G — означает, что маршрут пакета проходит через промежуточный маршрутизатор (шлюз). Отсутствие этого флага отмечает непосредственно подключенную сеть.
  • D — означает, что маршрут получен из перенаправленного сообщения протокола ICMP. Этот признак может присутствовать только в таблице маршрутизации конечного узла. Признак означает, что конечный узел при какой-то предыдущей передаче пакета выбрал не самый рациональный следующий маршрутизатор на пути к данной сети, и этот маршрутизатор с помощью протокола ICMP сообщил конечному узлу, что все последующие пакеты к данной сети нужно отправлять через другой маршрутизатор.

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

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