Border Gateway Protocol (BGP)
В зависимости от структуры распределенной сети некоторые маршрутизаторы могут одновременно поддерживать несколько протоколов маршрутизации. В табл. 11.1 приведен пример простой таблицы маршрутизации. В этой таблице содержатся записи, типичные для таких протоколов маршрутизации, как RIPIP, которые используют в качестве метрики маршрута количество переходов (hop count). В некоторых технических источниках встречается обозначение транзитный узел.
Таблица 11.1. Запись в таблице маршрутизации
Номер сети получателя 128.3.0.0 | |||
Следующий маршрутизатор в пути | Количество переходов | Протокол маршрутизации | Таймер |
128.5.3.2 | RIP | ||
128.5.4.7 | RIP | ||
128.5.3.9 | б | RIP |
Каждая запись в таблице маршрутизации включает следующую информацию:
§ Следующий маршрутизатор в пути— IP-адрес удаленного маршрутизатора, которому необходимо послать дейтаграммы для доставки их по назна-• чению;
§ Количество переходов— число переходов между текущим маршрутизатором и получателем пакета. Количество переходов — это число маршрутизаторов, которые должен пересечь пакет до прихода к получателю;
§ Протокол маршрутизации— протокол маршрутизации, который отвечает за запись;
§ Таймер— время, прошедшее с момента последнего обновления записи. Таймер сбрасывается при каждом обновлении.
Как правило, в таблицах маршрутизации содержится только один маршрут для каждой сети. Но некоторые реализации протоколов маршрутизации, например OSPF, поддерживают несколько маршрутов.
Рассмотрим пример. На рис. 11.2 показана небольшая распределенная сеть, состоящая из четырех локальных сетей, связанных тремя маршрутизаторами. В табл. 11.3 показано содержимое таблиц маршрутизации связующих маршрутизаторов. Таблицы маршрутизации содержат одну запись для каждого маршрута.
Рис. 11.2. Пример распределенной сети
Таблица 11.3. Таблицы маршрутизаиии
Маршрутизатор Ml | ||
Номер сети | Следующий маршрутизатор в пути | Количество переходов |
128.1.О.0 | Подключена напрямую. Порт 1 | |
128.2.0.0 | Подключена напрямую. Порт 2 | |
128.3.0.0 | 128.2.0.3 | |
128.4.0.0 | 128.2.0.3 | |
Маршрутизатор М2 | ||
Номер сети | Следующий маршрутизатор в пути | Количество переходов |
128.1.0.0 | 128.2.0.2 | |
128.2.0.0 | Подключена напрямую. Порт 1 | |
128.3.0.0 | Подключена напрямую. Порт 2 | |
128.4.0.0 | 128.3.0.3 | |
Маршрутизатор МЗ | ||
Номер сети | Следующий маршрутизатор в пути | Количество переходов |
128.1.0.0 | 128.3.0.2 | |
128.2.0.0 | 128.3.0.3 | |
128.3.0.0 | Подключена напрямую. Порт 1 | |
128.4.0.0 | Подключена напрямую. Порт 2 |
Основываясь на рис. 11.2, рассмотрим процесс передачи информации от станции А к станции Б через три промежуточных маршрутизатора и четыре сети. Распределенную сеть можно рассматривать как одну большую виртуальную сеть. Путь, по которому будет передаваться дейтаграмма, не определяется ее отправителем. Каждый маршрутизатор отвечает за доставку дейтаграммы только на один шаг, то есть полагается на следующий маршрутизатор. Эти промежуточные маршрутизаторы пересылают ее в следующую сеть. Только когда дейтаграмма достигнет получателя, локальный драйвер IP извлечет передаваемое сообщение из дейтаграммы и передаст его протоколам верхнего уровня.
Предположим, что станции А в сети с адресом 128.1.0.0 необходимо передать информацию станции Б в сети с адресом 128.4.0.0. При передаче дейтаграмм от маршрутизатора к маршрутизатору нужно обратить внимание, что IP-заголовок дейтаграммы, сформированный станцией А, остается неизменным, а изменяются только физические адреса кадра канального уровня.
Так как станции А и Б располагаются в различных сетях, то станции А приходится выполнять косвенную маршрутизацию. Для этого она должна послать информацию на ближайший известный ей маршрутизатор или на маршрутизатор по умолчанию. После инициализации станция А знает только адрес маршрутизатора по умолчанию — 128.1.0.2. Поэтому станция А будет использовать маршрутизатор Ml для передачи информации любому устройству, расположенному в удаленной сети. Если в ARP-таблице станции А нет записи о маршрутизаторе по умолчанию, то она сформирует ARP-запрос и будет ждать, когда маршрутизатор Ml ответит на него. После того как она выяснит физический адрес маршрутизатора (%080002001231, порт 1 маршрутизатора Ml), станция А передаст ему кадр канального уровня.
После получения кадра маршрутизатор Ml удалит его заголовок канального уровня и прочтет номер сети в IP-дейтаграмме — 128.4.0.0. Затем он отыщет соответствующую запись в своей таблице маршрутизации. Маршрутизатор Ml знает, что нужная сеть находится на расстоянии двух переходов от него, и что он должен передать эту дейтаграмму на порт 1 маршрутизатора М2 с IP-адресом 128.2.0.3. Если маршрутизатор Ml не имеет в своей ARP-таблице физического адреса порта 1 маршрутизатора М2, он сформирует ARP-запрос и будет ждать, когда маршрутизатор М2 ответит на него. После этого маршрутизатор Ml передаст кадр с физическим адресом %080002001233 (порт 1 маршрутизатора М2).
После получения кадра маршрутизатор М2 удалит его заголовок канального уровня и прочтет номер сети в IP-дейтаграмме — 128.4.0.0. Затем он отыщет соответствующую запись в своей таблице маршрутизации. Маршрутизатор М2 знает, что нужная сеть находится на расстоянии одного перехода от него, и он должен передать эту дейтаграмму на порт 1 маршрутизатора МЗ с IP-адресом 128.3.0.3. Если маршрутизатор М2 не имеет в своей ARP-таблице физического адреса порта 1 маршрутизатора МЗ, он сформирует ARP-запрос и будет ждать, когда маршрутизатор МЗ ответит на него. После этого маршрутизатор М2 передаст кадр с физическим адресом %080002001235 (порт 1 маршрутизатора МЗ).
После получения кадра маршрутизатор МЗ удалит заголовок канального уровня и прочтет номер сети в IP-дейтаграмме — 128.4.0.0. Затем он отыщет соответствующую запись в своей таблице маршрутизации. Таким образом он узнает, что нужная сеть подключена напрямую к его порту 2, — так что он не должен передавать эту дейтаграмму другому маршрутизатору. Он может доставить ее получателю напрямую. Если маршрутизатор МЗ не имеет в своей ARP-таблице физического адреса станции Б, он сформирует ARP-запрос и будет ждать, когда станция ответит на него. После этого маршрутизатор МЗ передаст кадр по физическому адресу %.О8ООО2ОО2222 станции Б.
Как видно, маршрутизаторы должны проверять свои таблицы маршрутизации для определения того, куда доставить каждую дейтаграмму. Если маршрут не найден, то маршрутизатор должен удалить дейтаграмму. Однако существует специальный IP-адрес 0.0.0.0, который собственно и является маршрутом по умолчанию. Если путь в требуемую сеть не найден, а в таблице маршрутизации есть запись для маршрута по умолчанию, маршрутизатор не будет удалять дейтаграмму, а передаст ее по этому маршруту. Введение маршрута по умолчанию позволяет уменьшить размер таблиц маршрутизации. В результате процесс маршрутизации упрощается, так как таблица маршрутизации содержит несколько записей для локальных сетей и маршрут по умолчанию для всех остальных. Маршрут по умолчанию незаменим в таких больших сетях, как Internet. Кроме уменьшения размера таблиц маршрутизации, использование маршрута по умолчанию позволяет значительно уменьшить размеры сообщений, которыми обмениваются маршрутизаторы. Недостатком маршрута по умолчанию является возможность образования петель маршрутизации.
На рис. 11.4 показан алгоритм обработки IP-дейтаграмм маршрутизатором.
Рис. 11.4. Алгоритм обработки IP-дейтаграмм маршрутизатором
Следует отметить, что таблица маршрутизации существует не только у маршрутизаторов с несколькими портами, но и у рабочих станций, подключаемых к сети через один сетевой адаптер. На рис. 11.5 показан пример таблицы маршрутизации на компьютере, работающем под управлением операционной системы Microsoft Windows NT. Отличие состоит в том, что все дейтаграммы должны передаваться через один единственный сетевой адаптер, вне зависимости от их адресата. Таблицу маршрутизации можно посмотреть по команде route print.
Network Address Netmask Gateway Address Interface Metric
0.0.0.0 0.0.0.0 199.199.40.1 199.199.40.123 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
199.199.40.0 255.255.255.0 199.199.40.123 199.199.40.123 1
199.199.40.123 255.255.255.255 127.0.0.1 127.0.0.1 1
199.199.40.255 255.255.255.255 199.199.40.123 199.199.40.123 1
224.0.0.0 224.0.0.0 199.199.40.123 199.199.40.123 1
255.255.255.255 255.255.255.255 199.199.40.123 199.199.40.123 1
Рис. 11.5. Таблица маршрутизаиии на рабочей станиии