TCP/IPРефераты >> Программирование и компьютеры >> TCP/IP
6.1. Фиксированные маршруты Простейший способ проведения маршрутизации состоит в установке марш-рутов при запуске системы с помощью специальных команд. Этот метод можноприменять в относительно маленьких IP-сетях, в особенности, если их кон-фигурации не часто меняются. На практике большинство машин автоматически формирует таблицы марш-рутов. Например, UNIX добавляет записи о IP-сетях, к которым есть непос-редственный доступ. Стартовый файл может содержать команды ifconfig ie0 128.6.4.4 netmask 255.255.255.0 ifconfig ie1 128.6.5.35 netmask 255.255.255.0 Они показывают, что существуют два сетевых интерфейса, и устанавливают ихIP-адреса. Система может автоматически создать две записи в таблицемаршрутов: ---------------------------------------------------------- | сеть флаг вида шлюз интерфейс | | маршрутизации | ---------------------------------------------------------- | 128.6.4 прямая <пусто> ie0 | | 128.6.5 прямая <пусто> ie1 | ---------------------------------------------------------- Табл.15. Автоматически создаваемые записи Эти записи определяют, что IP-пакеты для локальных подсетей 128.6.4 и128.6.5 должны посылаться через указанные интерфейсы. В стартовом файле могут быть команды, определяющие маршруты доступак другим IP-сетям. Например, route add 128.6.2.0 128.6.4.1 1 route add 128.6.6.0 128.6.5.35 0 Эти команды показывают, что в таблицу маршрутов должны быть добавлены двезаписи. Первый адрес в командах является IP-адресом сети, второй адресуказывает шлюз, который должен использоваться для доступа к данной IP-сети, а третий параметр является метрикой. Метрика показывает, на каком"расстоянии" находится описываемая IP-сеть. В данном случае метрика -это количество шлюзов на пути между двумя IP-сетями. Маршруты с метрикой1 и более определяют первый шлюз на пути к IP-сети. Маршруты с метрикой0 показывают, что никакой шлюз не нужен - данный маршрут задает дополни-тельный сетевой номер локальной IP-сети. Таким образом, команды, приведенные в примере, говорят о том, чтодля доступа к IP-сети 128.6.2 должен использоваться шлюз 128.6.4.1, аIP-сеть 128.6.6 - это просто дополнительный номер для физической сети,подключенной к интерфейсу 128.6.5.35. --------------------------------------------------------- | сеть флаг вида шлюз интерфейс | | маршрутизации | --------------------------------------------------------- | 128.6.2 косвенная 128.6.4.1 ie0 | | 128.6.6 прямая <пусто> ie1 | --------------------------------------------------------- Табл.16. Записи, добавляемые в таблицу маршрутов Можно определить маршрут по умолчанию, который используется в техслучаях, когда IP-адрес места назначения не встречается в таблице маршру-тов явно. Обычно маршрут по умолчанию указывает IP-адрес шлюза, которыйимеет достаточно информации для маршрутизации IP-пакетов со всеми возмож-ными адресами назначения. Если ваша IP-сеть имеет всего один шлюз, тогда все, что нужно сде-лать, - это установить единственную запись в таблице маршрутов, указавэтот шлюз как маршрут по умолчанию. После этого можно не заботиться оформировании маршрутов в других узлах. (Конечно, сам шлюз требует большевнимания.) Следующие разделы посвящены IP-сетям, где есть несколько шлюзов.
6.2. Перенаправление маршрутов Большинство экспертов по межсетевому взаимодействию рекомендуютоставлять решение проблем маршрутизации шлюзам. Плохо иметь на каждоймашине большую таблицу маршрутов. Дело в том, что при каких-либо измене-ниях в IP-сети приходится менять информацию во всех машинах. Например,при отключении какого-нибудь канала связи для восстановления нормальнойработы нужно ждать, пока кто-то заметит это изменение в конфигурации IP-сети и внесет исправления во все таблицы маршрутов. Простейший способ поддержания адекватности маршрутов заключается втом, что изменение таблицы маршрутов каждой машины выполняется по коман-дам только одного шлюза. Этот шлюз должен быть установлен как маршрут поумолчанию. (В ОС UNIX это делается командой "route add default128.6.4.27 1", где 128.6.4.27 является IP-адресом шлюза.) Как было опи-сано выше, каждая машина посылает IP-пакет шлюзу по умолчанию в том слу-чае, когда не находит лучшего маршрута. Однако, когда в IP-сети естьнесколько шлюзов, этот метод работает не так хорошо. Кроме того, еслитаблица маршрутов имеет только одну запись о маршруте по умолчанию, токак использовать другие шлюзы, если это более выгодно? Ответ состоит втом, что большинство шлюзов способны выполнять "перенаправление" в техслучаях, когда они получают IP-пакеты, для которых существуют болеевыгодные маршруты. "Перенаправление" является специальным типом сообще-ния протокола ICMP (Internet Control Message Protocol - протокол межсете-вых управляющих сообщений). Сообщение о перенаправлении содержит инфор-мацию, которую можно интерпретировать так: "В будущем для IP-адреса XXXXиспользуйте шлюз YYYY, а не меня". Корректные реализации TCP/IP должныиспользовать сообщения о перенаправлении для добавления записей в таблицумаршрутов. Предположим, таблица маршрутов в начале выглядит следующимобразом: -------------------------------------------------------- | адрес флаг вида шлюз интерфейс | | назначения маршрутизации | -------------------------------------------------------- | 127.0.0 прямая <пусто> lo0 | | 128.6.4 прямая <пусто> pe0 | | default косвенная 128.6.4.27 pe0 | -------------------------------------------------------- Табл.17. Таблица маршрутов в начале работы Эта таблица содержит запись о локальной IP-сети 128.6.4 и маршрут поумолчанию, указывающий шлюз 128.6.4.27. Допустим, что существует шлюз128.6.4.30, который является лучшим путем доступа к IP-сети 128.6.7. Каким воспользоваться? Предположим, что нужно посылать IP-пакеты по IP-адресу 128.6.7.23. Первый IP-пакет пойдет на шлюз по умолчанию, так какэто единственный подходящий маршрут, описанный в таблице. Однако шлюз128.6.4.27 знает, что существует лучший маршрут, проходящий через шлюз128.6.4.30. (Как он узнает об этом, мы сейчас не рассматриваем. Сущест-вует довольно простой метод определения лучшего маршрута.) В этом случаешлюз 128.6.4.27 возвращает сообщение перенаправления, где указывает, чтоIP-пакеты для узла 128.6.7.23 должны посылаться через шлюз 128.6.4.30.Модуль IP на машине-отправителе должен добавить запись в таблицу маршру-тов: -------------------------------------------------------- | адрес флаг вида шлюз интерфейс | | назначения маршрутизации | -------------------------------------------------------- | 128.6.7.23 косвенная 128.6.4.30 pe0 | -------------------------------------------------------- Табл.18. Новая запись в таблице маршрутов Все последующие IP-пакеты для узла 128.6.7.23 будут посланы прямо черезуказанный шлюз. До сих пор мы рассматривали способы добавления маршрутов в IP-таблицу, но не способы их исключения. Что случится, если шлюз будет вык-лючен? Хотелось бы иметь способ возврата к маршруту по умолчанию послетого, как какой-либо маршрут разрушен. Однако, если шлюз вышел из строяили был выключен, то он уже не может послать сообщение перенаправления.Поэтому должен существовать метод определения работоспособности шлюзов, скоторыми ваша машина связана непосредственно. Лучший способ обнаружениянеработающих шлюзов основан на выявлении "плохих" маршрутов. Модуль TCPподдерживает различные таймеры, которые помогают ему определить разрывсоединения. Когда случается сбой, то можно пометить маршрут как "плохой"и вернуться к маршруту по умолчанию. Аналогичный метод может использо-ваться при обработке ошибок шлюза по умолчанию. Если два шлюза отмеченыкак шлюзы по умолчанию, то машина может использовать их по очереди,переключаясь между ними при возникновении сбоев.