Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Как уже было сказано, никакой функциональной зависимости между локальным адресом и его IP-адресом не существует, следовательно, единственный способ установления соответствия — ведение таблиц. В результате конфигурирования сети каждый интерфейс «знает» свои IP-адрес и локальный адрес, что можно рассматривать как таблицу, состоящую из одной строки. Проблема состоит в том, как организовать обмен имеющейся информацией между узлами сети.
Для определения локального адреса по IP-адресу используется протокол разрешения адресов (Address Resolution Protocol, ARP). Протокол разрешения адресов реализуется различным образом в зависимости от того, работает ли в данной сети протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещания или же какой-либо из протоколов глобальной сети (Frame Relay, ATM), которые, как правило, не поддерживают широковещательный доступ.
Рассмотрим работу протокола ARP в локальных сетях с широковещанием.
На рис. 15.6 показан фрагмент IP-сети, включающий две сети — Ethernetl (из трех конечных узлов А, В и С) и Ethernet2 (из двух конечных узлов D и E).
Рис. 15.6. Схема работы протокола ARP
Сети подключены соответственно к интерфейсам 1 и 2 маршрутизатора. Каждый сетевой интерфейс имеет IP-адрес и МАС-адрес. Пусть в какой-то момент IP-модуль узла С направляет пакет узлу D. Протокол IP узла С определил IP-адрес интерфейса следующего маршрутизатора — это IPt. Теперь, прежде чем упаковать пакет в кадр Ethernet и направить его маршрутизатору, необходимо определить соответствующий MAC-адрес. Для решения этой задачи протокол IP обращается к протоколу ARP. Протокол ARP поддерживает на каждом интерфейсе сетевого адаптера или маршрутизатора отдельную ARP-таблицу, в которой в ходе функционирования сети накапливается информация о соответствии между IP-адресами и МАС-адресами других интерфейсов данной сети. Первоначально, при включении компьютера или маршрутизатора в сеть все его ARP-таблицы пусты.
1. На первом шаге происходит передача от протокола IP протоколу ARP примерно такого сообщения: «Какой МАС-адрес имеет интерфейс с адресом IP1?»
2. Работа протокола ARP начинается с просмотра собственной ARP-таблицы. Предположим, что среди содержащихся в ней записей отсутствует запрашиваемый IP-адрес.
3. В этом случае исходящий IP-пакет, для которого оказалось невозможным определить локальный адрес из ARP-таблицы, запоминается в буфере, а протокол ARP формирует ARP-запрос, вкладывает его в кадр протокола Ethernet и широковещательно рассылает.
4. Все интерфейсы сети Ethernetl получают ARP-запрос и направляют его «своему» протоколу ARP. ARP сравнивает указанный в запросе адрес IP1 с IP-адресом интерфейса, на который поступил этот запрос. Протокол ARP, который констатировал совпадение (в данном случае это ARP маршрутизатора 1), формирует ARP-ответ.
В ARP-ответе маршрутизатор указывает локальный адрес MAC1 своего интерфейса и отправляет его запрашивающему узлу (в данном примере узлу С), используя его локальный адрес. Широковещательный ответ в этом случае не требуется, так как формат ARP-запроса предусматривает поля локального и сетевого адресов отправителя. Заметим, что зона распространения ARP-запросов ограничивается сетью Ethernetl, так как на пути широковещательных кадров барьером стоит маршрутизатор.
На рис. 15.7 показан кадр Ethernet с вложенным в него ARP-сообщением. ARP-запросы и ARP-ответы имеют один и тот же формат. В табл. 15.2 в качестве примера приведены значения полей реального ARP-запроса, переданного по сети Ethernet[50].
Рис. 15.7. Инкапсуляция ARP-сообщений в кадр Ethernet
В поле типа сети для сетей Ethernet указывается значение 1. Поле типа протокола позволяет использовать протокол ARP не только с протоколом IP, но и с другими сетевыми протоколами. Для IP значение этого поля равно 0x0800. Длина локального адреса для протокола Ethernet равна 6 байт, а длина IP-адреса — 4 байта. В поле операции для ARP-запросов указывается значение 1, для ARP-ответов — значение 2. Из этого запроса видно, что в сети Ethernet узел с IP-адресом 194.85.135.75 пытается определить, какой МАС-адрес имеет другой узел той же сети, сетевой адрес которого 194.85.135.65. Поле искомого локального адреса заполнено нулями.
Таблица 15.2. Пример ARP-запроса
Поле | Значение |
Тип сети | 1(0x1) |
Тип протокола | 2048 (0x800) |
Длина локального адреса | 6(0x6) |
Длина сетевого адреса | 4(0x4) |
Операция | 1(0x1) |
Локальный адрес отправителя | 008048ЕВ7Е60 |
Сетевой адрес отправителя | 194.85.135.75 |
Локальный (искомый) адрес получателя | |
Сетевой адрес получателя | 194.85.135.65 |
Ответ присылает узел, опознавший свой IP-адрес. Если в сети нет машины с искомым IP- адресом, то ARP-ответа не будет. Протокол IP уничтожает IP-пакеты, направляемые по этому адресу. В табл. 15.3 показаны значения полей ARP-ответа, который мог бы поступить на приведенный в табл. 15.2 ARP-запрос.
Таблица 15.3. Пример ARP-ответа
Поле | Значение |
Тип сети | 1(0x1) |
Тип протокола | 2048(0x800) |
Длина локального адреса | 6(0x6) |
Длина сетевого адреса | 4(0x4) |
Операция | 2(0x1) |
Локальный адрес отправителя | 00E0F77F1920 |
Сетевой адрес отправителя | 194.85.135.65 |
Локальный (искомый) адрес получателя | 008048ЕВ7Е60 |
Сетевой адрес получателя | 194.85.135.75 |
В результате обмена ARP-сообщениями модуль IP, пославший запрос с интерфейса, имеющего адрес 194.85.135.75, определил, что IP-адресу 194.85.135.65 соответствует MAC-адрес 00E0F77F1920. Этот адрес затем помещается в заголовок кадра Ethernet, ожидавшего отправления IP-пакета.
Чтобы уменьшить число ARP-обращений в сети, найденное соответствие между IP-адресом и МАС-адресом сохраняется в ARP-таблице соответствующего интерфейса, в данном случае — это запись:
194.85.135.65 - 00E0F77F1920
Данная запись в ARP-таблице появляется автоматически, спустя несколько миллисекунд после того, как модуль ARP проанализирует ARP-ответ. Теперь, если вдруг вновь возникнет необходимость послать пакет по адресу 194.85.135.65, то протокол IP прежде, чем посылать широковещательный запрос, проверит, нет ли уже такого адреса в ARP-таблице.
ARP-таблица пополняется не только за счет поступающих на данный интерфейс ARP- ответов, но и в результате извлечения полезной информации из широковещательных ARP-запросов. Действительно, в каждом запросе, как это видно из табл. 15.2 и 15.3, содержатся IP-адрес и MAC-адрес отправителя. Все интерфейсы, получившие этот запрос, могут поместить информацию о соответствии локального и сетевого адресов отправителя в собственную ARP-таблицу. В частности, все узлы, получившие ARP-запрос (см. табл. 15.2), могут пополнить свою ARP-таблицу записью:
194.85.135.75 - 008048ЕВ7Е60
Таким образом, вид ARP-таблицы, в которую в ходе работы сети были добавлены две упомянутые нами записи, иллюстрирует табл. 15.4.
Таблица 15.4. Пример ARP-таблицы
IP-адрес | МАС-адрес | Тип записи |
194.85.135.65 | 00E0F77F1920 | Динамический |
194.85.135.75 | 008048ЕВ7Е60 | Динамический |
194.85.60.21 | 008048ЕВ7567 | Статический |
В ARP-таблицах существует два типа записей: динамические и статические.
Статические записи создаются вручную с помощью утилиты агр и не имеют срока устаревания, точнее, они существуют до тех пор, пока компьютер или маршрутизатор остается включенным.
Динамические записи должны периодически обновляться. Если запись не обновлялась в течение определенного времени (порядка нескольких минут), то она исключается из таблицы.
Таким образом, в ARP-таблице содержатся записи не обо всех узлах сети, а только о тех, которые активно участвуют в сетевых операциях. Поскольку такой способ хранения информации называют кэшированием, ARP-таблицы иногда называют ARP-кэшем.
ПРИМЕЧАНИЕ
Некоторые реализации протоколов IP и ARP не ставят IP-пакеты в очередь на время ожидания ARP- ответов. Вместо этого IP-пакет просто уничтожается, а его восстановление возлагается на модуль TCP или прикладной процесс, работающий через протокол UDP. Такое восстановление выполняется за счет тайм-аутов и повторных передач. Повторная передача сообщения проходит успешно, так как первая попытка уже вызвала заполнение ARP-таблицы.
Совсем другой способ разрешения адресов используется в глобальных сетях, в которых не поддерживается широковещательная рассылка. Здесь администратору сети чаще всего приходится вручную формировать и помещать на какой-либо сервер ARP-таблицы, в которых он задает, например, соответствие IP-адресов адресам Х.25, имеющих для протокола IP смысл локальных адресов. В то же время сегодня наметилась тенденция автоматизации работы протокола ARP и в глобальных сетях. Для этой цели среди всех маршрутизаторов, подключенных к какой-либо глобальной сети, выделяется специальный маршрутизатор, который ведет ARP-таблицу для всех остальных узлов и маршрутизаторов этой сети. При таком централизованном подходе вручную нужно задать для всех узлов и маршрутизаторов только IP-адрес и локальный адрес выделенного для этих целей маршрутизатора. При включении каждый узел и маршрутизатор регистрирует свои адреса в выделенном маршрутизаторе. Всякий раз, когда возникает необходимость определения по IP-адресу локального адреса, модуль ARP обращается к выделенному маршрутизатору с запросом и автоматически получает ответ без участия администратора. Работающий таким образом маршрутизатор называют ARP-сервером.
В некоторых случаях возникает обратная задача — нахождение IP-адреса по известному локальному адресу. Тогда в действие вступает реверсивный протокол разрешения адресов (Reverse Address Resolution Protocol, RARP). Этот протокол используется, например, при старте бездисковых станций, не знающих в начальный момент времени своего IP-адреса, но знающих МАС-адрес своего сетевого адаптера.
Дата публикования: 2014-10-25; Прочитано: 1427 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!