Косвенная маршрутизация
На рис.8.3 представлена более реалистичная картина сети Internet. В данном случае сеть Internet состоит из трех сетей Ethernet, на базе которых работают три IP-сети, объединенные шлюзом D. Каждая IP-сеть включает четыре машины; каждая машина имеет свои собственные IP- и Ethernet-адреса. За исключением D все машины имеют стек протоколов, аналогичный показанному на рис.1. Шлюз D соединяет все три сети и, следовательно, имеет три IP-адреса и три Ethernet-адреса. Машина D имеет стек протоколов TCP/IP, похожий на тот, что показан на рис.5.1, но вместо двух модулей ARP и двух драйверов, он содержит три модуля ARP и три драйвера Ethernet. Обратим внимание на то, что машина D имеет только один модуль IP. Менеджер сети присваивает каждой сети Ethernet уникальный номер, называемый IP-номером сети. На рис.8.3 IP-номера не показаны, вместо них используются имена сетей. Когда машина A посылает IP-пакет машине B, то процесс передачи идет в пределах одной сети. При всех взаимодействиях между машинами, подключенными к одной IP-сети, используется прямая маршрутизация, обсуждавшаяся в предыдущем примере. Когда машина D взаимодействует с машиной A, то это прямое взаимодействие. Когда машина D взаимодействует с машиной E, то это прямое взаимодействие. Когда машина D взаимодействует с машиной H, то это прямое взаимодействие. Это так, поскольку каждая пара этих машин принадлежит одной IP-сети.
Рис.8.3. Сеть Internet, состоящая из трех IP-сетей Однако, когда машина A взаимодействует с машинами, включенными в другую IP-сеть, то взаимодействие уже не будет прямым. Машина A должна использовать шлюз D для ретрансляции IP-пакетов в другую IP-сеть. Такое взаимодействие называется "косвенным". Маршрутизация IP-пакетов выполняется модулями IP и является прозрачной для модулей TCP, UDP и прикладных процессов. Если машина A посылает машине E IP-пакет, то IP-адрес и Ethernet-адрес отправителя соответствуют адресам A. IP-адрес места назначения является адресом E, но поскольку модуль IP в A посылает IP-пакет через D, Ethernet-адрес места назначения является адресом D. Табл.8.4. Адреса в Ethernet-кадре, передающем IP-пакет от A к Е через шлюз D.
Модуль IP в машине D получает IP-пакет и проверяет IP-адрес места назначения. Определив, что это не его IP-адрес, шлюз D посылает этот IP-пакет прямо к E. Табл.8.5. Адреса в Ethernet-кадре, содержащем IP-пакет от A к E (после шлюза D)
Итак, при прямой маршрутизации IP- и Ethernet-адреса отправителя соответствуют адресам того узла, который послал IP-пакет, а IP- и Ethernet-адреса места назначения соответствуют адресам получателя. При косвенной маршрутизации IP- и Ethernet-адреса не образуют таких пар. В данном примере сеть Internet является очень простой. Реальные сети могут быть гораздо сложнее, так как могут содержать несколько шлюзов и несколько типов физических сред передачи. В приведенном примере несколько сетей Ethernet объединяются одним шлюзом для того, чтобы локализовать широковещательный трафик в каждой сети. Процедура косвенной маршрутизации Рассмотрим более сложный порядок маршрутизации в IP-сети, изображенной на рис.8.3. Таблица маршрутов (табл.8.6.) в узле А выглядит так:
Табл.8.6. Таблица маршрутов в узле А
Та же таблица в узле А с IP-адресами вместо названий (табл.8.7). Табл.8.7. Таблица маршрутов в узле А
В столбце "шлюз" таблицы маршрутов узла А указывается IP-адрес точки соединения узла D с сетью development.
Процедура косвенной маршрутизации Узел А посылает IP-пакет узлу Е. Этот пакет находится в модуле IP узла А, и IP-адрес места назначения равен IP-адресу узла е (223.1.3.2). Модуль IP выделяет сетевой номер из IP-адреса (223.1.3) и ищет соответствующую ему строку в таблице маршрутов. Соответствие находится во второй строке. Запись в этой строке указывает на то, что машины требуемой сети доступны через шлюз D. Модуль IP в узле А осуществляет поиск в ARP-таблице, с помощью которого определяет Ethernet-адрес, соответствующий IP-адресуD. Затем IP-пакет, содержащий IP-адрес места назначения Е, посылается через интерфейс 1 шлюзу D. IP-пакет принимается сетевым интерфейсом в узле D и передается модулю IP. Проверяется IP-адрес места назначения, и, поскольку он не соответствует ни одному из собственных IP-адресов D, шлюз решает ретранслировать IP-пакет. Модуль IP в узле D выделяет сетевой номер из IP-адреса места назначения IP-пакета (223.1.3) и ищет соответствующую запись в таблице маршрутов. Таблица маршрутов в узле D (табл.8.8) выглядит так:
Табл.8.8. Таблица маршрутов в узле D
Та же таблица с IP-адресами в узле D (табл. 8.9) вместо названий. Табл.8.9. Таблица маршрутов в узле D
Соответствие находится во второй строке. Теперь модуль IP напрямую посылает IP-пакет узлу Е через интерфейс номер 3. Пакет содержит IP- и Ethernet-адреса места назначения равные Е. Узел Е принимает IP-пакет, и его модуль IP проверяет IP-адрес места назначения. Он соответствует IP-адресу Е, поэтому содержащееся в IP-пакете сообщение передается протокольному модулю верхнего уровня.
|