Маршрутизация IP.

Глава 5.

Маршрутизация IP.

  1. Прямая маршрутизация.
  2. Косвенная маршрутизация.
  3. Правила маршрутизации в модуле IP.
  4. IP-таблица маршрутов.
  5. Подробости прямой маршрутизации.
  6. Порядок прямой маршрутизации.
  7. Подробности косвенной маршрутизации.
  8. Порядок косвенной маршрутизации.


Центральной частью IP является его таблица маршрутов. Протокол IP использует эту таблицу при принятии всех решений о маршрутизации IP-пакетов.Содержание таблицы маршрутов определяется администратором сети.Ошибки приустановке маршрутов могут заблокировать передачи. Чтобы понять технику межсетевого взаимодействия, нужно понять то,как используется таблица маршрутов. Это понимание необходимо для успешного администрирования и сопровождения IP-сетей.


1 . Прямая маршрутизация .

На рис.5.1 показана небольшая IP-сеть, состоящая из 3 машин: A, B и C.Каждая машина имеет стандартный стек протоколов TCP/IP. Каждый сетевой адаптер этих машин имеет свой Ethernet-адрес. Менеджер сети должен присвоить машинам уникальные IP-адреса.

Рис.5.1

Простая IP-сеть

Когда A посылает IP-пакет B, то заголовок IP-пакета содержит в поле отправителя IP-адрес узла A, а заголовок Ethernet-кадра содержит в поле отправителя Ethernet-адрес A. Кроме этого, IP-заголовок содержит в поле получателя IP-адрес узла B, а Ethernet-заголовок содержит в поле получателя Ethernet-адрес B.

В этом простом примере протокол IP является излишеством, которое мало что добавляет к услугам, предоставляемым сетью Ethernet.Однако протокол IP требует дополнительных расходов на создание, передачу и обработку IP-заголовка.Когда в машине B модуль IP получает IP-пакет от машины A, он сопоставляет IP-адрес места назначения со своим и, если адреса совпадают, то передает датаграмму протоколу верхнего уровня.

В данном случае при взаимодействии A с B используется прямая маршрутизация.


2 . Косвенная маршрутизация.

На рис.5.2 представлена более реалистичная картина сети internet.В данном случае сеть internet состоит из трех сетей Ethernet, на базе которых работают три IP-сети, об'единенные шлюзом D.Каждая IP-сеть включает четыре машины;каждая машина имеет свои собственные IP- и Ethernet-адреса.

Рис.5.2

Сеть internet, состоящая из трех IP-сетей

Шлюз D соединяет все три сети и, следовательно, имеет три IP-адреса и три Ethernet-адреса.Машина D имеет стек протоколов TCP/IP, но вместо двух модулей ARP и двух драйверов, он содержит три модуля ARP и три драйвера Ethernet.

Обратим внимание на то, что машина D имеет только один модуль IP.

Менеджер сети присваивает каждой сети Ethernet уникальный номер,называемый IP-номером сети. На рис.5.2 IP-номера не показаны, вместо них используются имена сетей.

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

Когда машина D взаимодействует с машиной A, то это прямое взаимодействие. Когда машина D взаимодействует с машиной E, то это прямое взаимодействие. Когда машина D взаимодействует с машиной H, то это прямое взаимодействие.Это так, поскольку каждая пара этих машин принадлежит одной 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.

Модуль IP в машине D получает IP-пакет и проверяет IP-адрес места назначения.Определив,что это не его IP-адрес, шлюз D посылает этот IP-пакет прямо к E.

Итак, при прямой маршрутизации IP- и Ethernet-адреса отправителя соответствуют адресам того узла, который послал IP-пакет, а IP- и Ethernet-адреса места назначения соответствуют адресам получателя.При косвенной маршрутизации IP- и Ethernet-адреса не образуют таких пар.

В данном примере сеть internet является очень простой.Реальные сети могут быть гораздо сложнее, так как могут содержать несколько шлюзов и несколько типов физических сред передачи.В приведенном примере несколько сетей Ethernet об'единяются шлюзом для того, чтобы локализовать широковещательный трафик в каждой сети.


3 . Правила маршрутизации в модуле IP .

Выше мы показали, что происходит при передаче сообщений,а теперь рассмотрим правила или алгоритм маршрутизации.

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

Для принимаемых IP-пакетов, поступающих от сетевых драйверов, модуль IP должен решить, нужно ли ретранслировать IP-пакет по другой сети или передать его на верхний уровень. Если модуль IP решит, что IP-пакет должен быть ретранслирован, то дальнейшая работа с ним осуществляется также,как с отправляемыми IP-пакетами.

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

Решение о маршрутизации принимается до того, как IP-пакет передается сетевому драйверу, и до того, как происходит обращение к ARP-таблице.


4 . IP-таблица маршрутов .

Как модуль IP узнает, какой именно сетевой интерфейс нужно использовать для отправления IP-пакета? Модуль IP осуществляет поиск в таблице маршрутов.Ключом поиска служит номер IP-сети, выделенный из IP-адреса места назначения IP-пакета.

Таблица маршрутов содержит по одной строке для каждого маршрута.Основными столбцами таблицы маршрутов являются номер сети, флаг прямой или косвенной маршрутизации, IP-адрес шлюза и номер сетевого интерфейса. Эта таблица используется модулем IP при обработке каждого отправляемого IP-пакета.

В большинстве систем таблица маршрутов может быть изменена с помощью команды "route". Содержание таблицы маршрутов определяется менеджером сети, поскольку менеджер сети присваивает машинам IP-адреса.


5 . Подробности прямой маршрутизации .

Рассмотрим более подробно, как происходит маршрутизация в одной физической сети.

Рис.5.3.

Одна физическая сеть

Таблица маршрутов в узле alpha выглядит так:

Табл.5.4.

Пример таблицы маршрутов.
СетьВид маршрутизацииШлюзНомер интерфейса
developmentпрямаяпусто1

В данном простом примере все узлы сети имеют одинаковые таблицы маршрутов.

Для сравнения ниже представлена та же таблица, но вместо названия сети указан ее номер.

Табл.5.5.

Пример таблицы маршрутов.
СетьВид маршрутизацииШлюзНомер интерфейса
223 . 1 . 2прямаяпусто1

6 . Порядок прямой маршрутизации .

Узел alpha посылает IP-пакет узлу beta. Этот пакет находится в модуле IP узла alpha, и IP-адрес места назначения равен IP-адресу beta (223.1.2.2). Модуль IP с помощью маски подсети выделяет номер сети из IP-адреса и ищет соответствующую ему строку в таблице маршрутов.В данном случае подходит первая строка.

Остальная информация в найденной строке указывает на то, что машины этой сети доступны напрямую через интерфейс номер 1. С помощью ARP-таблицы выполняется преобразование IP-адреса в соответствующий Ethernet-адрес, и через интерфейс 1 Ethernet-кадр посылается узлу beta.

Если прикладная программа пытается послать данные по IP-адресу,который не принадлежит сети development, то модуль IP не сможет найти соответствующую запись в таблице маршрутов. В этом случае модуль IP отбрасывает IP-пакет.Некоторые реализации протокола возвращают сообщение об ошибке "Сеть не доступна".


7 . Подробности косвенной маршрутизации.

Теперь рассмотрим более сложный порядок маршрутизации в IP-сети,изображенной на рис.5.6.

Рис.5.6

Подробная схема трех сетей

Таблица маршрутов в узле alpha выглядит так:

Табл.5.7.

Пример таблицы маршрутов.
СетьВид маршрутизацииШлюзНомер интерфейса
developmentпрямаяпусто1
accountingкосвеннаяdevnetrouter1
factoryкосвеннаяdevnetrouter1

Та же таблица с IP-адресами вместо названий.

Табл.5.8.

Пример таблицы маршрутов.
СетьВид маршрутизацииШлюзНомер интерфейса
223 . 1 . 2прямаяпусто1
223 . 1 . 3косвеннаяdevnetrouter1
223 . 1 . 4косвеннаяdevnetrouter1

В столбце "шлюз" таблицы маршрутов узла alpha указывается IP-адрес точки соединения узла delta с сетью development.


8 . Порядок косвенной маршрутизации .

Узел alpha посылает IP-пакет узлу epsilon. Этот пакет находится в модуле IP узла alpha, и IP-адрес места назначения равен IP-адресу узла epsilon (223.1.3.2).Модуль IP выделяет сетевой номер из IP-адреса (223.1.3) и ищет соответствующую ему строку в таблице маршрутов.Соответствие находится во второй строке.

Запись в этой строке указывает на то, что машины требуемой сети доступны через шлюз devnetrouter. Модуль IP в узле alpha осуществляет поиск в ARP-таблице, с помощью которого определяет Ethernet-адрес, соответствующий IP-адресу devnetrouter. Затем IP-пакет, содержащий IP-адрес места назначения epsilon, посылается через интерфейс 1 шлюзу devnetrouter.

IP-пакет принимается сетевым интерфейсом в узле delta и передается модулю IP.Проверяется IP-адрес места назначения, и, поскольку он не соответствует ни одному из собственных IP-адресов delta, шлюз решает ретранслировать IP-пакет.

Модуль IP в узле delta выделяет сетевой номер из IP-адреса места назначения IP-пакета (223.1.3) и ищет соответствующую запись в таблице маршрутов. Таблица маршрутов в узле delta выглядит так:

Табл.5.9.

Пример таблицы маршрутов.
СетьВид маршрутизацииШлюзНомер интерфейса
developmentпрямаяпусто1
accountingпрямаяпусто3
factoryпрямаяпусто2

Соответствие находится во второй строке. Теперь модуль IP напрямую посылает IP-пакет узлу epsilon через интерфейс номер 3. Пакет содержит IP- и Ethernet-адреса места назначения равные epsilon.

Узел epsilon принимает IP-пакет, и его модуль IP проверяет IP-адрес места назначения. Он соответствует IP-адресу epsilon, поэтому содержащееся в IP-пакете сообщение передается протокольному модулю верхнего уровня.


Предыдущая глава | Оглавление | Следующая глава