TCP/IP

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

----------------------------------------------------------

| сеть флаг вида шлюз номер |

| маршрутизации интерфейса |

----------------------------------------------------------

| 223.1.2 прямая <пусто> 1 |

----------------------------------------------------------

Табл.10. Пример таблицы маршрутов с номерами сетей

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

Узел 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-пакет. Некоторые реализации протокола возвращают сообщение об ошибке “Сеть не доступна”

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

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

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

----------------------------------------------------------

| сеть флаг вида шлюз номер |

| маршрутизации интерфейса |

----------------------------------------------------------

| development прямая <пусто> 1 |

| accounting косвенная devnetrouter 1 |

| factory косвенная devnetrouter 1 |

----------------------------------------------------------

Табл.11. Таблица маршрутов в узле alpha

-------------

| delta |

------------- | 223.1.2.4 | -------------

| alpha | | 223.1.4.1 | | epsilon |

| 223.1.2.1 | | 223.1.3.1 | | 223.1.3.2 |

| 1 | | 1 2 3 | | 1 |

------------- ------------- -------------

| | | | |

------о------------------o- | -о-----------------о---------

Ethernet 1 | Ethernet 2

IP-сеть “development” | IP-сеть “accounting”

223.1.2 | 223.1.3

|

| -------------

| | iota |

| | 223.1.4.2 |

| | 1 |

| -------------

| |

---о----------о-------------------

Ethernet 3

IP-сеть “factory”

223.1.4

Рис.11. Подробная схема трех сетей

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

----------------------------------------------------------

| сеть флаг вида шлюз номер |

| маршрутизации интерфейса |

----------------------------------------------------------

| 223.1.2 прямая <пусто> 1 |

| 223.1.3 косвенная 223.1.2.4 1 |

| 223.1.4 косвенная 223.1.2.4 1 |

----------------------------------------------------------

Табл.12. Таблица маршрутов в узле alpha (с номерами)

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

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

Узел 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 выглядит так:

----------------------------------------------------------

| сеть флаг вида шлюз номер |

| маршрутизации интерфейса |

----------------------------------------------------------

| development прямая <пусто> 1 |

| accounting прямая <пусто> 3 |

| factory прямая <пусто> 2 |

----------------------------------------------------------

Табл.13. Таблица маршрутов в узле delta

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

----------------------------------------------------------

| сеть флаг вида шлюз номер |

| маршрутизации интерфейса |

----------------------------------------------------------

| 223.1.2 прямая <пусто> 1 |

| 223.1.3 прямая <пусто> 3 |

| 223.1.4 прямая <пусто> 2 |

----------------------------------------------------------

Табл.14. Таблица маршрутов в узле delta (с номерами)

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

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

6. Установка маршрутов

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

6.1. Фиксированные маршруты

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


Страница: