TCP/IPРефераты >> Программирование и компьютеры >> TCP/IP
6.3. Слежение за маршрутизацией Заметим, что сообщения перенаправления не могут использоватьсясамими шлюзами. Перенаправление - это просто способ оповещения обычногоузла о том, что нужно использовать другой шлюз. Сами шлюзы должны иметьполную картину о положении дел в сети internet и уметь вычислять опти-мальные маршруты доступа к каждой подсети. Обычно они поддерживают этукартину, обмениваясь информацией между собой. Для этой цели существуютнесколько специальных протоколов маршрутизации. Один из способов, спомощью которого узлы могут определять действующие шлюзы, состоит в сле-жении за обменом сообщениями между ними. Для большинства протоколовмаршрутизации существует программное обеспечение, позволяющее обычнымузлам осуществлять такое слежение. При этом на узлах поддерживается пол-ная картина положения дел в сети internet точно также, как это делается вшлюзах. Динамическая корректировка таблицы маршрутов позволяет посылатьIP-пакеты по оптимальным маршрутам. Таким образом, слежение за маршрутизацией в некотором смысле"решает" проблему поддержания корректности таблиц маршрутов. Однакосуществуют несколько причин, по которым этот метод применять не рекомен-дуется. Наиболее серьезной проблемой является то, что протоколы маршру-тизации пока еще подвергаются частым пересмотрам и изменениям. Появля-ются новые протоколы маршрутизации. Эти изменения должны учитываться впрограммном обеспечении всех машин. Несколько более специальная проблема связана с бездисковыми рабочимистанциями. По своей природе бездисковые машины сильно зависят от сети иот файл-серверов, с которых они осуществляют загрузку программ, и гдерасполагается их область своппинга. Исполнение программ, следящих зашироковещательными передачами в сети, на бездисковых машинах связано сбольшими трудностями. Протоколы маршрутизации построены в основном нашироковещательных передачах. Например, все сетевые шлюзы могут широкове-щательно передавать содержание своих таблиц маршрутов через каждые 30секунд. Программы, которые следят за такими передачами, должны быть заг-ружены на бездисковые станции через сеть. На достаточно занятой машинепрограммы, которые не используются в течение нескольких секунд, обычноотправляются в область своппинга. Поэтому программы, следящие за маршру-тизацией, большую часть времени находятся в своппинге. Когда они вновьактивизируются, должна производиться подкачка из своппинга. Как толькопосылается широковещательное сообщение, все машины активизируют прог-раммы, следящие за маршрутизацией. Это приводит к тому, что многие без-дисковые станции будут выполнять подкачку из своппинга в одно и тожевремя. Поэтому в сети возникнет временная перегрузка. Таким образом,исполнение программ, прослушивающих широковещательные передачи, на без-дисковых рабочих станциях очень нежелательно.
6.4. Протокол ARP с представителем Протокол ARP с представителем является альтернативным методом, поз-воляющим шлюзам принимать все необходимые решения о маршрутизации. Онприменяется в сетях с широковещательной передачей, где для отображенияIP-адресов в сетевые адреса используется протокол ARP или ему подобный.Здесь мы вновь будем предполагать, что имеем дело с сетью Ethernet. Во многом метод, реализуемый протоколом ARP с представителем, анало-гичен использованию маршрутов по умолчанию и сообщений перенаправления.Но протокол ARP с представителем не затрагивает таблиц маршрутов, вседелается на уровне адресов Ethernet. Протокол ARP с представителем можетиспользоваться либо для маршрутизации IP-пакетов ко всем сетям, либотолько в локальной сети, либо в какой-то комбинации подсетей. Прощевсего продемонстрировать его использование при работе со всеми адресами. Чтобы использовать протокол, нужно настроить узел так, как будто всемашины в мире подключены непосредственно к вашей локальной сети Ethernet.В ОС UNIX это делается командой "route add default 128.6.4.2 0", где128.6.4.2 - IP-адрес вашего узла. Как уже отмечалось, метрика 0 говорито том, что все IP-пакеты, которым подходит данный маршрут, должны посы-латься напрямую по локальной сети. Когда нужно послать IP-пакет узлу в локальной сети Ethernet, вашамашина должна определить Ethernet-адрес этого узла. Для этого онаиспользует ARP-таблицу. Если в ARP-таблице уже есть запись, соответству-ющая IP-адресу места назначения, то из нее просто берется Ethernet-адрес,и кадр, содержащий IP-пакет, отправляется. Если такой записи нет, топосылается широковещательный ARP-запрос. Узел с искомым IP-адресом наз-начения принимает его и в ARP-ответе сообщает свой Ethernet-адрес. Этидействия соответствуют обычному протоколу ARP, описанному выше. Протокол ARP с представителем основан на том, что шлюзы работают какпредставители удаленных узлов. Предположим, в подсети 128.6.5 имеетсяузел 128.6.5.2 (узел A на рис.12). Он желает послать IP-пакет узлу128.6.4.194, который подключен к другой сети Ethernet (узел B в подсети128.6.4). Существует шлюз с IP-адресом 128.6.5.1, соединяющий две под-сети (шлюз R). сеть 1 сеть 2 128.6.5 128.6.4 ----o----------------o--- --o---------------o-------- | | | | ------------- ------------- --------------- | 128.6.5.2 | | 128.6.5.1 | | 128.6.4.194 | | A | | 128.6.4.1 | | B | ------------- | R | --------------- ------------- Рис.12. Сеть, использующая протокол ARP с представителем Если в ARP-таблице узла A нет маршрута доступа к узлу B, то узел A посы-лает ARP-запрос узлу B. Фактически машина A спрашивает: "Если кто-нибудьзнает Ethernet-адрес узла 128.6.4.194, сообщите мне его". Узел B неможет ответить на запрос самостоятельно. Он подключен к другой сети Eth-ernet и никогда даже не увидит этот ARP-запрос. Однако шлюз R можетработать от его имени. Шлюз R отвечает: "Я здесь, IP-адресу 128.6.4.194соответствует Ethernet-адрес 2:7:1:0:EB:CD", где 2:7:1:0:EB:CD в действи-тельности является Ethernet-адресом шлюза. Это создает иллюзию, что узел128.6.4.194 подключен непосредственно к той же локальной сети Ethernet,что и узел A, и имеет Ethernet-адрес 2:7:1:0:EB:CD. Когда узел A захочетпослать новый IP-пакет узлу B, он использует указанный Ethernet-адрес.Кадр, содержащий IP-пакет, попадет к шлюзу R, а он переправит его по наз-начению. Заметим, что полученный эффект такой же, как если бы в таблице марш-рутов была запись -------------------------------------------------------- | адрес флаг вида шлюз интерфейс | | назначения маршрутизации | -------------------------------------------------------- | 128.6.4.194 косвенная 128.6.5.1 pe0 | -------------------------------------------------------- за исключением того, что маршрутизация выполняется на уровне модуля ARP,а не модуля IP. Обычно рекомендуется использовать таблицу маршрутов, так как архи-тектура протоколов TCP/IP предусматривает выполнение маршрутизации намежсетевом уровне. Однако иногда протокол ARP с представителем оченьполезен. Он может помочь в следующих случаях: 1) в IP-сети есть узел, который не умеет работать с подсетями; 2) в IP-сети есть узел, который не может соответствующим образом реаги- ровать на сообщения перенаправления; 3) нежелательно выбирать какой-либо шлюз как маршрут по умолчанию; 4) программное обеспечение не способно восстанавливаться при сбоях на маршрутах. Иногда протокол ARP с представителем выбирают из-за удобства. Делов том, что он упрощает работу по начальной установке таблицы маршрутов.Даже в простейших IP-сетях требуется устанавливать маршрут по умолчанию,то есть использовать команду типа "route add defailt .", как в ОС UNIX.При изменении IP-адреса шлюза эту команду приходится менять во всехузлах. Если же использовать протокол ARP с представителем, т.е. вкоманде установки маршрута по умолчанию указать метрику 0, то при заменеIP-адреса шлюза команду начальной установки менять не придется, так какпротокол ARP с представителем не требует явного задания IP-адресов шлю-зов. Любой шлюз может ответить на ARP-запрос. Для того, чтобы избавить пользователей от обязательной начальнойустановки маршрутов, некоторые реализации TCP/IP используют протокол ARPс представителем по умолчанию в тех случаях, когда не находят подходящихзаписей в таблице маршрутов.