Маршрутизация IP-дейтаграмм

Важнейшей задачей сетевого уровня является маршрутизация (Routing) дейтаграмм в составной сети, суть которой сводится к поиску маршрутизаторами оптимального пути (маршрута) к получателю дейтаграммы. Маршрутизация выполняется сетевыми устройствами, называемыми маршрутизаторы (Router). Любой маршрутизатор обладает более чем одним сетевым интерфейсом, к которым подключены сети/подсети, которые он соединяет (функции маршрутизатора могут выполнять и компьютеры, оснащенные двумя и более сетевыми интерфейсами). Например, маршрутизатор R1 на рис. 3.9 связывает сети N1, N2 и N7, имеющие маски подсети М1, М2 и М7, соответственно, через свои интерфейсы R1(1), R1(2) и R1(3). Следует отметить, что даже если в сети отсутствуют пользовательские хосты, она все равно считается сетью/подсетью, имеет свой адрес и обладает другими свойствами, характерными для сетей/подсетей (такими сетями/подсетями являются сети с адресами N7, N8 и N9 связей «точка – точка» (Point-to-Point) между маршрутизаторами на рис. 3.9).

Рис. 3.9. Маршрутизация в составной сети

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

Критериями могут быть: количество маршрутизаторов на маршруте (hops), время прохождения тестового пакета до следующего по пути маршрутизатора, пропускная способность линии связи к следующему маршрутизатору и другие. Для каждой записи в первом столбце таблицы маршрутизации (рис. 3.9) указывается адрес сети/подсети/хоста назначения дейтаграммы, во втором маска подсети назначения, в третьем – сетевой адрес следующего по маршруту маршрутизатора, на который необходимо направить дейтаграмму, чтобы она продвигалась по рациональному маршруту к получателю. В четвертом столбце указывается сетевой адрес порта текущего маршрутизатора, через который должна уйти по выбранному маршруту дейтаграмма. В пятом столбце указывается метрика маршрута – один из приведенных выше критериев выбора маршрута (в таблицах маршрутизации на рис. 3.9 в качестве метрики приведено количество промежуточных маршрутизаторов на маршруте – hops). Метрика маршрута указывается для выбора оптимального маршрута при наличии в таблице маршрутизации нескольких строк с маршрутами к одной и той же сети (например, маршруты к сети N4 в таблице маршрутизации маршрутизатора R2 на рис. 3.9). Количество записей в таблице маршрутизации может быть достаточно большим даже для относительно небольшой составной сети вследствие наличия альтернативных маршрутов, кроме того, в больших составных сетях (примером такой сети является Интернет) адреса удаленных сетей/подсетей просто неизвестны. Поэтому обычно в последней строке таблиц маршрутизации указывается так называемый маршрут по умолчанию (default route), по которому будет направлена дейтаграмма в случае неудачного поиска адреса сети назначения дейтаграммы в первом столбце таблицы маршрутизации. Для хостов в маршруте по умолчанию в качестве следующего маршрутизатора по маршруту обычно указывается адрес шлюза локальной сети (как для хоста А на рис. 3.9), а для маршрутизаторов – адрес маршрутизатора, следующего по маршруту, который используется большей частью исходящих дейтаграмм (как для маршрутизатора R2 на рис. 3.9). Достаточно часто маршрут по умолчанию граничного маршрутизатора организации указывает на маршрутизатор провайдера Интернета для этой организации, маршрутизатор этого провайдера Интернета в качестве маршрута по умолчанию может использовать маршрут к маршрутизатору интернет-провайдера более высокого уровня и т.д.

Записи в таблицу маршрутизации заносятся либо вручную, в этом случае маршрутизация называется статической (статическая маршрутизация обычно используется в относительно небольших составных сетях), или записи заносятся в результате работы протоколов динамической маршрутизации, задача которых – изучение топологии и адресной информации сетей/подсетей, формирующих составную сеть, и обмен записями маршрутных таблиц между маршрутизаторами составной сети. Популярными в настоящее время протоколами динамической маршрутизации являются протокол маршрутной информации (Routing Information ProtocolRIP), протокол кратчайшего пути (Open Shortest Path FirstOSPF) и протокол граничного шлюза (Border Gateway ProtocolBGP).

Маршрутизаторы определяют следующий от них шаг маршрута дейтаграммы по следующему алгоритму:

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

– если адрес получателя в первом столбце не найден, из адреса получателя восстанавливается адрес сети получателя путем умножения адреса получателя на маску подсети назначения во втором столбце первой строки;

– после получения адреса сети выполняется его сравнение с адресом сети/подсети назначения в первом столбце первой строки;

– если адреса совпадают, в качестве следующего адреса маршрута выбирается адрес из третьего столбца первой строки;

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

– если адреса не совпадают, алгоритм вычисления сети/подсети и сравнения повторяются для остальных строк таблицы, пока не будет найдено совпадение;

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

На рис. 3.10 приведен пример, иллюстрирующий обработку таблицы маршрутизации при поиске маршрута для дейтаграммы с адресом назначения 192.168.3.25 (11000000 10101000 00000011 00011001). Сравнение адресов выполняется побитово с помощью логической операции XOR, а ее нулевой результат свидетельствует о совпадении сравниваемых адресов. Совпадение вычисленного адреса сети назначения и адреса сети в первом столбце таблицы маршрутизации достигнуто в третьей строке, поэтому следующим маршрутизатором по пути будет выбран 192.168.2.2, а маршрут по умолчанию проверяться не будет. Однако, если бы он проверялся, то совпадение было бы получено для любых проверяемых адресов-хоста получателя.

Сеть назначения Маска подсети назначения Следующий маршрутизатор Исходящий интерфейс Метрика
192.168.1.0 255.255.255.0 192.168.5.1 192.168.4.1  
192.168.3.0 255.255.255.240 192.168.2.1 192.168.4.2  
192.168.3.16 255.255.255.240 192.168.2.2 192.168.4.3  
0.0.0.0 0.0.0.0 192.168.5.2 192.168.4.1
обработка 1-й строки
  11000000 10101000 00000011 00011001 = 192.168.3.25
AND 11111111 11111111 11111111 00000000 = 255.255.255.0
  11000000 10101000 00000011 00000000 = 192.168.3.0
XOR 11000000 10101000 00000001 00000000 = 192.168.1.0
  00000000 00000000 00000010 00000000  
обработка 2-й строки
  11000000 10101000 00000011 00011001 = 192.168.3.25
AND 11111111 11111111 11111111 11110000 = 255.255.255.240
  11000000 10101000 00000011 00010000 = 192.168.3.16
XOR 11000000 10101000 00000011 00000000 = 192.168.3.0
  00000000 00000000 00000000 0001000  
обработка 3-й строки
  11000000 10101000 00000011 00011001 = 192.168.3.25
AND 11111111 11111111 11111111 11110000 = 255.255.255.240
  11000000 10101000 00000011 00010000 = 192.168.3.16
XOR 11000000 10101000 00000011 00010000 = 192.168.3.16
  00000000 00000000 00000000 00000000 =  

Рис. 3.10. Пример обработки записей таблицы маршрутизации

для адреса 192.168.3.25

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

В примере на рис. 3.11 IP-адреса отправителя (IP1) и получателя (IP2) не меняются на всем маршруте дейтаграммы, в то время как МАС-адреса меняются в каждой сети. IP-адреса маршрутизаторов используются только для ARP-запросов.

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

Рис. 3.11. Изменение адресов канального уровня

при передаче дейтаграммы в составной сети

Команда route print в Windows выводит эту таблицу на экран, а также позволяет задавать и удалять маршруты (рис. 3.12). Хосты в большей степени, чем маршрутизаторы пользуются маршрутом по умолчанию, обычно в качестве следующего по маршруту маршрутизатора для маршрута по умолчанию указывается шлюз локальной сети хоста (с IP-адресом 192.168.1.129 для примера на рис. 3.12).

Следует отметить, что в таблицу маршрутизации автоматически заносится адрес сети 127.0.0.0. Если в поле IP-адрес получателя находится адрес этой сети, то передачи пакета на канальный уровень (и, следовательно, в сеть) не происходит, а этот пакет возвращается отправителю (путем обмена адресов отправителя и получателя в соответствующих полях пакета). Аналогично может вноситься запись для сетевых адресов собственных портов маршрутизатора для них адресом следующего маршрутизатора и выходного интерфейса указывается адрес 127.0.0.1 – loopback. Также в таблицу автоматически заносятся записи для сети с адресом 224.0.0.0 - они требуются для обработки групповых адресов (multicast address). Кроме того, в таблицу могут быть занесены адреса, предназначенные для обработки широковещательных рассылок в сетях, подсоединенных к портам маршрутизатора, – это адреса, заканчивающиеся на последовательность единиц (255). Одни указывают маршрут для отправки широковещательных сообщений в составной сети для определенных подсетей – сетевой адрес подключенного к этим сетям порта маршрутизатора, адрес 255.255.255.255 – адрес ограниченной широковещательной рассылки – пакет с таким адресом рассылается всем узлам, находящимся в той же подсети, что и отправитель.

Рис. 3.12. Пример таблицы маршрутизации хоста и команда добавления маршрута


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: