
Структура таблицы маршрутизации
Таблица маршрутизации состоит из следующих основных полей:
Destination(Адрес назначения) – содержит адрес сети или хоста назначения.
Gateway(Шлюз) – содержит адрес шлюза (маршрутизатора), через который будут отправляться пакеты по адресу, указанному в полеDestination.
Mask (МаскаIP-адреса) – содержит маску для определения того, что обозначает IP-адрес поля назначения – хост или сеть определенной размерности.
Flags (Флаги) – содержит информацию о состоянии указанной записи маршрутизации.U(Up) – показывает, что маршрут активен;H(Host) – указывает, что адресом назначения является адрес хоста;G(Gateway) – указывает, что маршрут пакета проходит через промежуточный маршрутизатор;S(Static) – указывает, что запись была введена вручную (статически).D(Dynamic) – указывает, что запись была создана динамически протоколом маршрутизации;M(Modified) – указывает, что запись была изменена динамически протоколом маршрутизации;Rили ! (Reject) – указывает, что адрес назначения не доступен.
Metric(Метрика) – расстояние до указаной сети (хоста)
Refcnt(Счетчик ссылок) – сколько раз на данный маршрут ссылались при движении пакетов.
Use– количество пакетов, переданных по данному маршруту.
Interface– имя интерфейса вUnix-маршрутизаторах
Источники записей в таблице маршрутизации.
Первым источником является ПО стека TCP/IP. При инициализации маршрутизатора это ПО автоматически заносит в таблицу несколько записей о локальных сетях и маршрутизаторе по умолчанию, о внутренних специальных адресах. Создается так называемая мининимальная таблица маршрутизации.
Вторым источником записей является администратор системы, непосредственно формирующий запись с помощью системной утилиты (например, route). Эти записи могут быть как постоянными, так и временными, т.е. хранящимися до перезагрузки системы.
Третьим источником являются протоколы маршрутизации (RIP, OSPF). Такие записи всегда являются динамическими и имеют ограниченный срок жизни.
Маршрутизация с использованием масок
Допустим, администратор получил в свое распоряжение адрес класса В: 129.44.0.0. Он может организовать сеть с большим числом узлов, номера которых он может брать из диапазона 0.0.0.1-0.0.255.254. Требуется, чтобы сеть была разделена на три отдельных подсети, при этом трафик в каждой подсети должен быть локализован. Это позволит легче диагностировать сеть и проводить в каждой из подсетей свою политику безопасности.
В качестве маски было выбрано значение 255.255.192.0. После наложения маски на этот адрес число разрядов, интерпретируемых как номер сети, увеличилось с 16 (стандартная маска сети класса В) до 18. Это позволяет сделать из одного, централизованно заданного ему номера сети, четыре: 129.44.0.0; 129.44.64.0; 129.44.128.0; 129.44.192.0.
Замечание. Некоторые программные и аппаратные маршрутизаторы не поддерживают номера подсетей, которые состаят либо только из одних нулей, либо только из одних единиц. Например, для некоторых типов оборудования номер сети 129.44.0.0 с маской 255.255.192.0, использованный в нашем примере, окажется недопустимым, поскольку в этом случае разряды в поле номера подсети имеют значение 00.
Рассмотрим, как изменяется работа модуля IP, когда становится необходимым учитывать наличие масок. Во-первых, в каждой записи таблицы маршрутизации появляется новое поле — поле маски. Во-вторых, меняется алгоритм определения маршрута по таблице маршрутизации. После того какIP-адрес извлекается из очередного полученногоIP-пакета, необходимо определить адрес следующего маршрутизатора, на который надо передать пакет с этим адресом. МодульIPпоследовательно просматривает все записи таблицы маршрутизации. С каждой записью производятся следующие действия.
Маска, содержащаяся в данной записи, накладывается на IP-адрес узла назначения, извлеченный из пакета.
Полученное в результате число является номером сети назначения обрабатываемого пакета. Оно сравнивается с номером сети, который помещен в данной записи таблицы маршрутизации.
Если номера сетей совпадают, то пакет передается маршрутизатору, адрес которого помещен в соответствующем поле данной записи.
Таблица 5.12. Таблица маршрутизатора М2 в сети с масками одинаковой длины
Номер сети
|
Маска
|
Адрес следующего маршрутизатора
|
Адрес порта
|
Расстояние
|
129.44.0.0 |
255.255.192.0 |
129.44.0.1 |
129.44.0.1 |
Подключена |
129.44.64.0 |
255.255.192.0 |
129.44.64.7 |
129.44.64.7 |
Подключена |
129.44.128.0 |
255.255.192.0 |
129.44.128.5 |
129.44.128.5 |
Подключена |
129.44.192.0 |
255.255.192.0 |
129.44.192.1 |
129.44.192.1 |
Подключена |
0.0.0.0 |
0.0.0.0 |
129.44.192.2 |
129.44.192.1 |
— |
Пусть, например, с маршрутизатора Mlна порт 129.44.192.1 маршрутизатора М2 поступает пакет с адресом назначения 129.44.78.200. МодульIPначинает последовательно просматривать все строки таблицы, до тех пор пока не найдет совпадения номера сети в адресе назначения и в строке таблицы. Маска из первой строки 255.255.192.0 накладывается на адрес 129.44.78.200, в результате чего тип чается номер сети 129.44.64.0. Полученный номер 129.44.64.0 совпадает с номером сети во второй строке таблицы, а значит, пакет должен быть отправлен на порт маршрутизатора 129.44.64.7 в сеть непосредственно подключенную к данному маршрутизатору.
Упр. Как маршрутизируется пакет сIP-адресом 129.44.141.15 (10000001 00101100 10001101 00001111).