- •8 Межсетевой протокол: маршрутизация ip-дейтаграмм
- •8.1 Введение
- •8.2 Маршрутизация в Интернете
- •8.3 Прямая и косвенная доставка
- •8.3.1 Доставка дейтаграммы по одной сети
- •8.3.2 Косвенная маршрутизация
- •8.5 Маршруты по умолчанию
- •8.6 Маршруты, специфичные для гвм
- •8.7 Итоговый алгоритм
- •8.8 Маршрутизация для ip-адресов
- •8.9 Обработка приходящих дейтаграмм
- •8.10 Работа с таблицами маршрутизации
- •8.11 Итоги
8.5 Маршруты по умолчанию
Другой технологией, используемой для работы при минимуме информации и маленьких таблицах маршрутизации, является объединение нескольких элементов таблицы в случай по умолчанию. Идея состоит в том, что сначала программное обеспечение IP-маршрутизации ищет сеть назначения в таблице маршрутизации. Если для нее нет маршрута в таблице, процедуры маршрутизации посылают дейтаграмму к шлюзу по умолчанию.
Маршрутизация по умолчанию особенно полезна, когда сеть имеет несколько ГВМ и только одно соединение с интернетом. Например, маршруты по умолчанию хорошо работают для машин, которые присоединены только к одной физической сети и используют только один шлюз для достижения остальной части интернета. Все решение о выборе маршрута в таком случае состоит из двух проверок: одной - на нахождение в локальной сети, и одной - случая по умолчанию, указывающего на единственный возможный шлюз. Даже, если место(site) имеет в своем составе несколько локальных сетей, маршрутизация проста, так как состоит из нескольких проверок на локальные сети и умолчания для всех остальных мест назначения.
8.6 Маршруты, специфичные для гвм
Хотя мы сказали, что вся маршрутизация основывается на сетях, а не на отдельных ГВМ, большая часть программного обеспечения IP-маршрутизации позволяет указывать как особый случай маршруты для отдельных ГВМ. Наличие маршрутов для ГВМ предоставляет администратору локальной сети большие возможности по слежению за использованием сети и может быть использовано для наблюдения за доступом к сети и обеспечения секретности. При отладке сетевых соединений или таблиц маршрутизации способность указывать специальный путь для отдельной машины оказывается особенно полезной.
8.7 Итоговый алгоритм
Принимая во внимание все вышесказанное, получаем следующий вид алгоритма IP-маршрутизации:
Алгоритм:
Маршрутизир_дейтаграмму_IP(дейтаграмма,таблица_маршрутизации)
Выделить IP-адрес назначения, Id, из дейтаграммы
Вычислить IP-адрес сети назначения,In
Если In соответствует адресу одной из достижимых напрямую сетей, послать дейтаграмму к назначению по этой сети; (это включает разрешение Id в физический адрес, инкапсуляцию дейтаграммы и посылку кадра) иначе если для Id определен маршрут, специфичный для ГВМ маршрутизировать дейтаграмму, как это определено в таблице; иначе если In определено в таблице маршрутизации маршрутизировать дейтаграмму, как это определено в таблице; иначе если указан маршрут по умолчанию маршрутизировать дейтаграмму к шлюзу по умолчанию; иначе выдать сообщение об ошибке при маршрутизации;
Рисунок 8.3 Алгоритм IP-маршрутизации. Имея в качестве исходных данных IP-дейтаграмму и таблицу маршрутизации, этот алгоритм выбирает следующую машину, на которую будет послана дейтаграмма. Таблицы маршрутизации всегда указывают в качестве следующей машины ту, что находится в сети, достижимой напрямую.
8.8 Маршрутизация для ip-адресов
Важно понимать, что IP-маршрутизация не изменяет исходную дейтаграмму. В частности, поля отправителя и получателя дейтаграммы остаются неизменными; они всегда указывают IP-адрес первоначального отправителя и IP-адрес конечного получателя. Когда IP исполняет алгоритм маршрутизации, он вычисляет новый адрес, IP-адрес очередной машины, на которую надо послать дейтаграмму. Этот новый адрес по всей видимости будет адресом шлюза. Тем не менее, если дейтаграмма может быть доставлена напрямую, этот новый адрес будет совпадать с адресом конечного назначения.
IP-адрес, вычисленный алгоритмом IP-маршрутизации, известен как адрес следующей попытки(hop), так как он определяет, куда послать дейтаграмму в следующий раз(хотя это место может и не быть местом конечного назначения). Где же IP сохраняет адрес следующей попытки ? Не в дейтаграмме; там для него нет места. По сути дела IP не сохраняет адрес следующей попытки вообще. После выполнения алгоритма маршрутизации IP передает дейтаграмму и адрес следующей попытки программному обеспечению сетевого интерфейса той сети, по которой должна быть передана дейтаграмма. Программное обеспечение сетевого интерфейса связывает адрес следующей попытки с физическим адресом, формирует кадр, используя этот физический адрес, помещает дейтаграмму в поле данных кадра и посылает результат. После использования адреса следующей попытки для нахождения физического адреса программное обеспечение сетевого интерфейса удаляет адрес следующей попытки.
Может показаться странным, что таблицы маршрутизации хранят IP-адрес следующей попытки для каждой сети назначения, в то время как эти адреса должны транслироваться в соответствующие физические адреса перед посылкой дейтаграммы. Если мы представим ГВМ, посылающий последовательность дейтаграмм одному и тому же назначению, такое использование IP-адресов будет явно неэффективным. IP послушно выделяет адрес назначения в каждой дейтаграмме и использует таблицу маршрутизации для определения адреса следующей попытки. Затем он передает дейтаграмму и адрес следующей попытки сетевому интерфейсу, который находит физический адрес. Если бы таблица маршрутизации использовала физические адрес, определение соответствия между IP-адресом следующей попытки и физическим адресом могло бы выполняться лишь один раз. Почему же программное обеспечение IP избегает пользоваться физическими адресами при хранении и вычислении маршрутов ? Как показывает рисунок 8.4, существуют две важные причины.
ПРОВЕРКА ИЛИ МАРШРУТИЗИРУЕМАЯ
ОБНОВЛЕНИЕ МАРШРУТОВ | ДЕЙТАГРАММА
V
---------------- ----------------
| таблица | / алгоритм \
| маршрутизации|--------->| маршрутизации |
| | \ в IP /
---------------- \---------------/
|
используются IP-адреса |
-------------------------------------------------------------
используются физические адреса | отправляемая дейтаграмма и
V адрес следующей попытки
Рисунок 8.4 Программное обеспечение IP и таблица маршрутизации, которую оно использует, находятся выше границы адресов. Использование только IP-адресов делает маршруты удобными для проверки и изменения и скрывает детали физических адресов на самом нижнем из возможных уровней.
Во-первых, таблица маршрутизации обеспечивает особенно ясный интерфейс между программным обеспечением IP, маршрутизирующим дейтаграммы, и высокоуровневым программным обеспечением, управляющим путями. Для отладки ошибок маршрутизации сетевым администраторам часто нужно проверять таблицы маршрутизации. Использование только IP-адресов в таблице маршрутизации приводит к тому, что администраторам становится легко понимать таблицу и обнаруживать корректность изменения таблицы программным обеспечением. Во-вторых, одной из главных целей разработки Межсетевого Протокола являлось создание абстракции, скрывающей детали нижележащих сетей.
Рисунок 8.4 показывает границу адресов, важную концептуальную границу между низкоуровневым программным обеспечением, понимающим физические адреса, и межсетевым программным обеспечением, использующим только высокоуровневые адреса. Выше этой границы все программное обеспечение для взаимодействия может быть написано с использованием только межсетевых адресов; знание физических адресов предоставляется нескольким небольшим низкоуровневым процедурам. Мы увидим, что выделение этой границы также помогает сделать реализацию остальных протоколов TCP/IP легкой для понимания, проверки и модификации.
