TCP/IPРефераты >> Программирование и компьютеры >> 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-сетях, в особенности, если их конфигурации не часто меняются