Учебник для вузов в. Олифер Н. Олифер Компьютерные Принципы, технологии, протоколы
Скачать 22.28 Mb.
|
реализациями маршрутизаторов. 526 Глава 16. Протокол межсетевого взаимодействия Несмотря на достаточно заметные внешние различия, во всех трех «реальных» таблицах присутствуют все ключевые данные из рассмотренной упрощенной таблицы, без которых невозможна маршрутизация пакетов. К таким данным, во-первых, относятся адреса сети назначения (столбцы «Адрес назначе ния» в аппаратном маршрутизаторе и маршрутизаторе Unix или столбец «Сетевой адрес» в маршрутизаторе ОС Windows ХР). Вторым обязательным полем таблицы маршрутизации является адрес следующего марш рутизатора (столбцы «Шлюз» в аппаратном маршрутизаторе и маршрутизаторе Unix или столбец «Адрес шлюза» в маршрутизаторе ОС Windows ХР). Третий ключевой параметр — адрес порта, на который нужно направить пакет, в некото рых таблицах указывается прямо (столбец «Интерфейс» в таблице маршрутизатора ОС Windows ХР), а в некоторых — косвенно. Так, в таблице маршрутизатора Unix вместо адре са порта задается его условное наименование — 1е0 для порта с адресом 198.21.17.5, lei для порта с адресом 213.34.12.3 и 1о0 для внутреннего порта с адресом 127.0.0.1. В аппаратном маршрутизаторе поле, обозначающее выходной порт в какой-либо форме, вообще отсут ствует. Это объясняется тем, что адрес выходного порта всегда можно косвенно определить по адресу следующего маршрутизатора. Например, определим по табл. 16.6 адрес выход ного порта для сети 56.0.0.0. Из таблицы следует, что следующим маршрутизатором для этой сети будет маршрутизатор с адресом 213.34.12.4. Адрес следующего маршрутизатора должен принадлежать одной из непосредственно присоединенных к маршрутизатору сетей, и в данном случае это сеть 213.34.12.0. Маршрутизатор имеет порт, присоединенный к этой сети, и адрес этого порта 213.34.12.3 мы находим в столбце «Шлюз» второй строки таблицы маршрутизации, которая описывает непосредственно присоединенную сеть 213.34.12.0. Для непосредственно присоединенных сетей адресом следующего маршрутизатора всегда является адрес собственного порта маршрутизатора. Таким образом, для сети 56.0.0 адресом выходного порта является 213.34.12.3. Стандартным решением сегодня является использование поля маски в каждой записи таблицы, как это сделано в таблицах маршрутизатора ОС Windows ХР и аппаратного маршрутизатора (столбцы «Маска»). Механизм обработки масок при принятии решения маршрутизаторами рассматривается далее. Отсутствие поля маски говорит о том, что либо маршрутизатор рассчитан на работу только с тремя стандартными классами адресов, либо для всех записей используется одна и та же маска, что снижает гибкость маршрутизации. Поскольку в таблице маршрутизации маршрутизатора Unix каждая сеть назначения упомянута только один раз, а значит, возможность выбора маршрута отсутствует, то поле метрики является необязательным параметром. В остальных двух таблицах поле метрики используется только для указания на то, что сеть подключена непосредственно. Метрика 0 для аппаратного маршрутизатора или 1 для маршрутизатора ОС Windows ХР говорит маршрутизатору, что эта сеть непосредственно подключена к его порту, а другое значение метрики соответствует удаленной сети. Выбор метрики для непосредственно подключенной сети (1 или 0) является произвольным, главное, чтобы метрика удаленной сети отсчитывалась с учетом этого выбранного начального значения. В маршрутизаторе Unix используется поле признаков, где флаг G (Gateway — шлюз) отмечает удаленную сеть, а его отсутствие — непосредственно подключенную. йодаадоёйной b^nnl; fоаррі^г что пакету*» йо- /с&ИГ<то^ сет^сп^тому п р о тр у ^ а к т и в и з и р у е т IP-адреса узла Схема IP-маршрутизации 527 Однако существуют ситуации, когда маршрутизатор Должен обязательно хранить значе ние метрики для записи о каждой удаленной сети. Эти ситуации возникают, когда записи в таблице маршрутизации являются результатом работы некоторых протоколов маршру тизации, например протокола RIP. В таких протоколах новая информация о какой-либо удаленной сети сравнивается с информацией, содержащейся в таблице в данный момент, и если значение новой метрики лучше текущей, то новая запись вытесняет имеющуюся. В таблице маршрутизатора Unix поле метрики отсутствует, и это значит, что он не ис пользует протокол RIP. Флаги записей присутствуют только в таблице маршрутизатора Unix. □ U — маршрут активен и работоспособен. Аналогичный смысл имеет поле статуса в ап паратном маршрутизаторе. □ Н — признак специфического маршрута к определенному хосту. □ G — означает, что маршрут пакета проходит через промежуточный маршрутизатор (шлюз). Отсутствие этого флага отмечает непосредственно подключенную сеть. □ D — означает, что маршрут получен из перенаправленного сообщения протокола ICMP. Этот признак может присутствовать только в таблице маршрутизации конечного узла. Признак означает, что конечный узел при какой-то предыдущей передаче пакета вы брал не самый рациональный следующий маршрутизатор на пути к данной сети, и этот маршрутизатор с помощью протокола ICMP сообщил конечному узлу, что все после дующие пакеты к данной сети нужно отправлять через другой маршрутизатор. В таблице маршрутизатора Unix используются еще два поля, имеющих справочное значе ние. Поле числа ссылок показывает, сколько раз на данный маршрут ссылались при про движении пакетов. Поле загрузки отражает количество байтов, переданных по данному маршруту. В записях таблиц аппаратного маршрутизатора также имеются два справочных поля. Поле времени жизни записи (TTL) в данном случае никак не связано со временем жизни пакета. Здесь оно показывает время, в течение которого значение данной записи еще действитель но. Поле источника говорит об источнике появления записи в таблице маршрутизации. Источники и типы записей в таблице маршрутизации Практически для всех маршрутизаторов существуют три основных источника записей в таблице. □ Одним из источников записей в таблице маршрутизации является программное обе спечение стека TCP/IP, которое при инициализации маршрутизатора автоматически заносит в таблицу несколько записей, в результате чего создается так называемая минимальная таблица маршрутизации. Программное обеспечение формирует записи о непосредственно подключенных сетях и маршрутах по умолчанию, информация о ко торых появляется в стеке при ручном конфигурировании интерфейсов компьютера или маршрутизатора. К таким записям в приведенных примерах относятся записи о сетях 213.34.12.0 и 198.21.17.0, а также запись о маршруте по умолчанию в маршрутизаторе Unix и запись 0.0.0.0 в маршрутизаторе ОС Windows ХР. Кроме того, программное обе спечение автоматически заносит в таблицу маршрутизации записи об адресах особого назначения. В приведенных примерах таблица маршрутизатора ОС Windows 2000 со держит наиболее полный набор записей такого рода. Несколько записей в этой таблице 528 Глава 16. Протокол межсетевого взаимодействия связано с особым адресом 127.0.0.0. Записи с адресом 224.0.0.0 требуются для обработки групповых адресов. Кроме того, в таблицу могут быть занесены адреса, предназначенные для обработки широковещательных рассылок (например, записи 8 и 11 содержат адрес отправки широковещательного сообщения в соответствующих подсетях, а последняя запись в таблице — адрес ограниченной широковещательной рассылки). Заметим, что в некоторых таблицах записи об особых адресах вообще отсутствуют. □ Еще одним источником записей в таблице является администратор, непосредственно формирующий записи с помощью некоторой системной утилиты, например программы route, имеющейся в операционных системах Unix и Windows XR В аппаратных марш рутизаторах также всегда имеется команда для ручного задания записей таблицы марш рутизации. Заданные вручную записи всегда являются статическими, то есть они не имеют срока жизни. Эти записи могут быть как постоянными, то есть сохраняющимися при перезагрузке маршрутизатора, так и временными, хранящимися в таблице только до выключения устройства. Часто администратор вручную заносит запись о маршруте по умолчанию. Таким же образом в таблицу маршрутизации может быть внесена запись о специфическом для узла маршруте. □ И наконец, третьим источником записей могут быть протоколы маршрутизации, такие как RIP или OSPF. Эти записи всегда являются динамическими, то есть имеют ограни ченный срок жизни. Программные маршрутизаторы Windows ХР и Unix не показывают источник появления той или иной записи в таблице, а аппаратный маршрутизатор использует для этой цели поле источника. В приведенном в табл. 16.6 примере первые две записи созданы программ ным обеспечением стека на основании данных о конфигурации портов маршрутизатора — это показывает признак «Подключена». Следующие две записи обозначены как стати ческие — это означает, что их ввел вручную администратор. Последняя запись является следствием работы протокола RIP, поэтому в ее поле «TTL» имеется значение 160. Пример IР>маршрутизации без масок Рассмотрим процесс продвижения пакета в составной сети на примере IP-сети, показан ной на рис. 16.4. При этом будем считать, что все узлы сети, рассматриваемой в примере, имеют адреса, основанные на классах. Особое внимание будет уделено взаимодействию протокола IP с протоколами разрешения адресов ARP и DNS. Итак, пусть пользователю компьютера cit.mgu.com, находящегося в сети 129.13.0.0, необхо димо установить связь с FTP-сервером. Пользователю известно символьное имя сервера unix.mgu.com, поэтому он набирает на клавиатуре команду обращения к FTP-серверу по имени: > f t p u n i x . m g u . c o m Выполнение этой команды инициирует три последовательные операции: 1. DNS-клиент (работающий на компьютере cit.mgu.com) передает DNS-серверу сообще ние, в котором содержится запрос об IP-адресе сервера unix.mgu.com, с которым он хочет связаться по протоколу FTP. 2. DNS-сервер, выполнив поиск, передает ответ DNS-клиенту о найденном 1Р-адресе сервера unix.mgu.com. 3. FTP-клиент (работающий на том же компьютере cit.mgu.com), используя найденный IP- адрес сервера unix.mgu.com, передает сообщение работающему на нем FTP-серверу. Схема IP-маршрутизации 529 Конфигурационные параметры: Маршрутизатор по умолчанию IP-129.13.5.1 DNS-сервер IP-200.5.16.6 FTP-клиент IP-200.5.16.3 М AC-00E0F734F5C0 Н .............. ,PDNS-200-5-16-6 IP-200.5.16.12 MAC-00E0F71AB7F0 U JM A C DNS-00E0F7751231 Подсеть 200.5.16.0 Рис. 16.4. Пример IP-маршрутизации Давайте последовательно, по шагам, рассмотрим, как при решении этих задач взаимо действуют между собой протоколы DNS, IP, ARP и Ethernet и что происходит при этом с кадрами и пакетами. 1. Формирование IP-пакета с инкапсулированным в него DNS-запросом. Программный модуль FTP-клиента, получив команду > f tp uni х .mgu. com, передает запрос к рабо тающей на этом же компьютере клиентской части протокола DNS, которая, в свою очередь, формирует к DNS-серверу запрос, интерпретируемый примерно так: «Какой IP-адрес соответствует символьному имени unix.mgu.com?» Запрос упаковывается в UDP-дейтаграмму, затем в IP-пакет. В заголовке пакета в качестве адреса назначения указывается 1Р-адрес 200.5.16.6 DNS-сервера. Этот адрес известен программному обе спечению клиентского компьютера, так как он входит в число его конфигурационных параметров. Сформированный IP-пакет будет перемещаться по сети в неизменном виде (как показано на рис. 16.5), пока не дойдет до адресата — DNS-сервера. 2. Передача кадра Ethernet с ІР-пакетом маршрутизатору R3. Для передачи этого ІР- пакета необходимо его упаковать в кадр Ethernet, указав в заголовке МАС-адрес полу чателя. Технология Ethernet способна доставлять кадры только тем адресатам, которые Глава 16. Протокол межсетевого взаимодей< находятся в пределах одной подсети с отправителем. Если же адресат расположеі этой подсети, то кадр надо передать ближайшему маршрутизатору, чтобы тот вз* себя заботу о дальнейшем перемещении пакета. Для этого модуль IP, сравнив но сетей в адресах отправителя и получателя, то есть 129.13.23.17 и 200.5.16.6, выяс что пакет направляется в другую сеть, следовательно, его необходимо передать м рутизатору, в данном случае маршрутизатору по умолчанию. ІР-адрес маршрутиза по умолчанию также известен клиентскому узлу, поскольку он входит в число КО] гурационных параметров. Однако для кадра Ethernet необходимо указать не IP-a, а МАС-адрес получателя. Эта проблема решается с помощью протокола ARP, коте для ответа на вопрос: «Какой МАС-адрес соответствует 1Р-адресу 194.87.23.1?» — де поиск в своей ARP-таблице. Поскольку обращения к маршрутизатору происходят ч будем считать, что нужный МАС-адрес обнаруживается в таблице и имеет знач 008048ЕВ7Е60. После получения этой информации клиентский компьютер cit.mgu отправляет маршрутизатору R3 пакет, упакованный в кадр Ethernet (рис. 16.6). и IP DNS-сервера IP DNS-клиента DNS-запрос: unlx.mgu.com? 129.13.23.17 200.5.16.6 ■Р к г Рис. 16.5. ІР-пакет с инкапсулированным в него DNS-запросом Интерфейс Интерфейс маршрутизатора компьютера R3 FTP-клиента DNS-клиента cit.mgu.com IP-129.13.5.1 IP-129.13.23.17 MAC - 008048ЕВ7Е60 MAC - 008048А17652 5 ' ............................................................. MAC клиента IP клиента 008048А17652 129.13.23.17 * DNS-запрос: I MAC мар-ра R3 IP DNS-сервера unlx.mgu.com? I 008048ЕВ7Е60 200.5.16.6 Рис. 16.6. Кадр Ethernet с инкапсулированным IP-пакетом, отправленный с клиентского компьютера 3. Определение IP-адреса и МАС-адреса следующего маршрутизатора R2. Кадр принт ся интерфейсом 129.13.5,1 маршрутизатора R3. Протокол Ethernet, работающий на: интерфейсе, извлекает из этого кадра ІР-пакет и передает его протоколу IP. Протоке Схема ІР-маршрутизации 531 таблицы маршрутизации. Пусть маршрутизатор R3 не обнаруживает специфического маршрута для адреса назначения 200.5.16.6, но находит в своей таблице следующую запись: 200.5.16.0 198.21.17.7 198.21.17.6 Эта запись говорит о том, что пакеты для сети 200.5.16.0 маршрутизатор R3 должен передавать на свой выходной интерфейс 198.21.17.6, с которого они поступят на интер фейс следующего маршрутизатора R2, имеющего 1Р-адрес 198.21.17.7. Однако знания IP-адреса недостаточно, чтобы передать пакет по сети Ethernet. Необходимо определить МАС-адрес маршрутизатора R3. Как известно, такой работой занимается протокол ARP. Пусть на этот раз в ARP-таблице нет записи об адресе маршрутизатора R3. Тогда в сеть отправляется широковещательный ARP-запрос, который поступает на все интерфейсы сети 198.21.17.0. Ответ приходит только от интерфейса маршрутизатора R3: «Я имею 1Р-адрес 198.21.17.7 и мой МАС-адрес 00E0F77F5A02» (рис. 16.7). Интерфейс маршрутизатора R2 IP -198.21.17.7 MAC - 00E0F77F5A02 Кадры Ethernet Интерфейс маршрутизатора R3 IP-129.13.5.1 MAC - 008048ЕВ7Е60 MAC маршрутизатора R3 - 008048ЕВ7Е60 * ARR-wmpoc: - Широковещательный MAC FFFFFFFFFFFF «Ш 0 Й МАС-адрес ИМоег. • узел с ІР-адресдм 19121,17.7?» ARP-в п и т: «Я*мфо имей мА&ядрес MAC маршрутизатора R2 - 00E0F77F5A02 MAC маршрутизатора R3 - 008048ЕВ7Е60 Рис. 16.7. Кадры Ethernet с инкапсулированными ARP-запросом и ARP-ответом Теперь, зная МАС-адрес маршрутизатора R2 (00E0F77F5A02), маршрутизатор R3 от сылает ему IP-пакет с DNS-запросом (рис. 16.8). 4. Маршрутизатор R2 доставляет пакет DNS-серверу. Модуль IP на маршрутизато ре R2 действует в соответствии с уже не раз описанной нами процедурой: отбросив заголовок кадра Ethernet, он извлекает из пакета ІР-адрес назначения и просматривает свою таблицу маршрутизации. Там он обнаруживает, что сеть назначения 200.5.16.0 является непосредственно присоединенной к его второму интерфейсу. Следовательно, пакет не нужно маршрутизировать, однако требуется определить МАС-адрес узла на значения. Протокол ARP «по просьбе» протокола IP находит (либо из ARP-таблицы, либо по запросу) требуемый МАС-адрес 00E0F7751231 DNS-сервера. Получив ответ 532 Глава 16. Протокол межсетевого взаимодействия о МАС-адресе, маршрутизатор R2 отправляет в сеть назначения кадр Ethernet с DNS- запросом (рис. 16.9). Интерфейс маршрутизатора R2 Интерфейс маршрутизатора R3 IP -198.21.17.7 MAC - 00E0F77F5A02 IP -129.13.5.1 MAC - 008048EB7E60 KI А/*4 1| Л Щ 11Г\(1Т 1 4 4 9 Т Л П О ID і/пиаита м а о маршрутизатора R3 - 008048ЕВ7Е60 1 г клиента 129.13.23.17 U D P DNS-запрос: I MAC маршрутизатора R2 - 00E0F77F5A02 IP DNS-сервера 200.5.16.6 unlx.mgu.com? I Рис. 16.8. Кадр Ethernet с DNS-запросом, отправленный с маршрутизатора R3 маршрутизатору R2 Интерфейс DNS- сервера IP -200.5.16.6 п MAC - 00E0F7751231 Интерфейс маршрутизатора R2 IP -198.21.17.7 MAC - 00E0F77F5A02 MAC маршрутизатора R2 - 00E0F77F5A02 IP клиента 129.13.23.17 U D P DNS-запрос: I unix.mgu.com? 1 MAC DNS-сервера 00E0F7751231 IP DNS-сервера 200.5.16.6 Рис. 16.9. Кадр Ethernet с DNS-запросом, отправленный с маршрутизатора R2 5. Сетевой адаптер DNS-сервера захватывает кадр Ethernet, обнаруживает совпадение МАС-адреса назначения, содержащегося в заголовке, со своим собственным адресом и направляет его модулю IP. После анализа полей заголовка IP из пакета извлекаются данные вышележащих протоколов. DNS-запрос передается программному модулю DNS-сервера DNS-сервер просматривает свои таблицы, возможно, обращается к другим DNS-серверам и в результате формирует ответ, смысл которого состоит в следующем: «Символьному имени |