Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава_2.DOC
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
564 Кб
Скачать
☆

Протокол arp

Протокол ARP (Address Resolution Protocol) — это протокол разрешения адресов. Он описан в документе RFC 826. Необходимость использования протокола ARP продиктована тем обстоятельством, что IP-адреса устройств в сети назначаются независимо от их физических адресов. Поэтому для доставки сообщений по сети необходимо определить соответствие между физическим адресом устройства и его IP-адресом. Эта процедура называется разрешением адресов (address resolution). В большинстве случаев прикладные программы используют именно IP-адреса. А так как схемы физической адресации устройств весьма разнообразны, то необ­ходим специальный, универсальный протокол.

Для того чтобы получить адрес протокола IP, зная физический адрес устрой­ства, существует процедура, называемая обратным разрешением адресов (reverse address resolution). Программное обеспечение маршрутизаторов Cisco IOS поддер­живает следующие протоколы, связанные с процедурами разрешения адресов: про­токол ARP, proxy ARP, reverse ARP, — которые описаны в документах RFC 826, 1027 и 903. Кроме того, поддерживается протокол Probe, разработанный компани­ей Hewlett-Packard для использования в сетях IEEE-802.3.

Реверсный ARP (или обратное разрешение) работает аналогично протоколу ARP, за исключением того, что в его задачи входит определение физического адре­са по известному адресу сетевого уровня. Использование этого протокола требует наличия в сети сервера RARP, подключенного к тому же сегменту сети, что и ин терфейс маршрутизатора. Наиболее часто этот протокол используется для запус­ка бездисковых рабочих станций. Маршрутизатор, работающий под управлением операционной системы Cisco IOS, будет использовать этот протокол, если в про­цессе своей загрузки он обнаружит, что интерфейсу не назначен адрес протокола IP. Отметим тот факт, что маршрутизатор может работать как сервер RARP, отве­чая на запросы клиетов.

Разрешение адресов может быть выполнено двумя способами: с помощью пря­мого отображения и с помощью динамического связывания (dynamic mapping). Протокол ARP использует механизм динамического связывания. Функциональ­но протокол ARP состоит из двух частей. Одна часть протокола определяет физи­ческие адреса при посылке дейтаграммы, другая отвечает на запросы устройств в сети. Протокол ARP предполагает, что каждое устройство «знает» как свой IP-адрес, так и свой физический адрес.

Для того чтобы уменьшить количество посылаемых запросов ARP, каждое уст­ройство в сети, использующее протокол ARP, должно иметь специальную буфер­ную память. В этой памяти хранятся пары адресов (IP-адрес, физический адрес) устройств в сети. Всякий раз, когда устройство получает ARP-ответ, оно сохраняет в этой памяти соответствующую пару. Если адрес есть в списке пар, то нет необхо­димости посылать ARP-запрос. Эта буферная память называется ARP-таблицей.

В ARP-таблице могут быть как статические, так и динамические записи. Дина­мические записи добавляются и удаляются автоматически, статические могут быть добавлены вручную.

Так как большинство устройств в сети поддерживает динамическое разреше­ние адресов, то администратору, как правило, нет необходимости вручную указы­вать записи протокола ARP в таблице адресов.

Кроме того, ARP-таблица всегда содержит запись с физическим широковеща­тельным адресом (OxFFFFFFFFFFFF) для локальной сети. Эта запись позволяет устройству принимать широковещательные ARP-запросы. Каждая запись в ARP-таблице имеет свое время жизни, например, для операционной системы Microsoft Windows NT оно составляет 10 мин. При добавлении записи ей присваивается тай­мер. Если запись не используется в первые две минуты, она удаляется. Если ис­пользуется — время ее жизни составляет 10 мин. В некоторых реализациях прото­кола ARP новый таймер устанавливается после каждого использования записи в ARP-таблице.

Для того чтобы просмотреть содержимое таблицы на маршрутизаторе, следует воспользоваться командой show агр, выполняемой в пользовательском режиме. Если необходимо очистить таблицу, следует воспользоваться командой clear arp-cache, выполняемой в привилегированном режиме.

Ciscol601>show агр

Protocol Address Age (min) Hardware Addr Type Interface

Internet 192.168.3.113 16 0090.2751.c4f0 ARPA Ethernet0

Internet 192.168.3.14 3 0090.27e0.041e ARPA Ethernet0

Internet 192.168.3.3 79 0090.271d.c8ee ARPA Ethernet0

Internet 192.168.3.5 9 00a0.c9da.f6f6 ARPA Ethernet0

Internet 192.168.3.4 5 00a0.c928.2d07 ARPA Ethernet0

Если необходимо изменить время жизни записей в таблице, можно воспользо­ваться командой агр timeout, выполняемой в режиме конфигурации интерфейсов. В качестве аргумента используется временной интервал в секундах.

По умолчанию на маршрутизаторах применяется стандартный тип инкапсуля­ции протокола ARP, который обозначается ключевым словом ARPA. Администра­тор сети может изменить метод инкапсуляции на SNAP или HP Probe исходя из требований конкретной сети. Для изменения метода инкапсуляции можно восполь­зоваться командой агр в режиме конфигурации интерфейсов. При этом в качестве аргумента может указываться агра, probe, snap. Получить информацию об исполь­зующемся методе инкапсуляции можно с помощью команды show i nterfaces.

Ciscol601#show interfaces ethernet 0

Ethernet0 is up. line protocol is up

Hardware is QUICC Ethernet, address is 0010.7bef.4478 (bia 0010.7bef.4478)

Description: connected to Internal LAN - 192.168.3.x

Internet address is 192.168.3.254/24

MTU 1500 bytes. BW 10000 Kbit. DLY 1000 usec. rely 255/255. load 1/255

Encapsulation ARPA. loopback not set, keepalive not set

ARP type: ARPA. ARP Timeout 04:00:00

Протокол proxy ARP маршрутизатор использует (как это определено в доку­менте RFC 1027) для того, чтобы помочь устройствам, не имеющим информации о маршрутизации, определить физический адрес устройств, находящихся в дру­гой подсети. Например, если маршрутизатор получает широковещательный зап­рос протокола ARP для устройства, которое находится в разных сетях с отправи­телем запроса, и если этот маршрутизатор знает все маршруты к этому устройству через другие свои интерфейсы, он генерирует ответ ARP с указанием физического адреса своего интерфейса. Затем устройство, пославшее запрос ARP, будет адре­совать свои пакеты маршрутизатору, который и передаст их нужному устройству. Этот механизм включен по умолчанию, и если его необходимо отключить, то сле­дует воспользоваться командой no ip proxy-агр, выполняемой в режиме конфигу­рации интерфейсов. Просмотреть результат работы этого механизма можно с по­мощью команды show ip interface.

Ciscol601#show ip interface ethernet 0 EthernetO is up. line protocol is up

Internet address is 192.168.3.254/24

Broadcast address is 255.255.255.255

Proxy ARP is enabled

Сообщения протокола ARP при передаче по сети инкапсулируются в поле дан­ных кадра. Они не содержат IP-заголовка. В отличие от сообщений большинства протоколов, сообщения ARP не имеют фиксированного формата заголовка. Это объясняется тем, что протокол был разработан таким образом, чтобы его можно было использовать для разрешения адресов в различных сетях. Фактически про­токол можно использовать с произвольными физическими адресами и сетевыми протоколами.

Рисунки 2.29 и 2.30 содержат результаты работы анализатора пакетов, которые наглядно показывают структуру запросов и ответов протокола ARP. Анализируя структуру запроса, можно увидеть, что компьютер с адресом 192.168.3.2 делает попытку узнать МАС-адрес компьютера с IP-адресом 192.168.3.12. Для этого он посылает широковещательный запрос, содержащий IP-адрес, с МАС-адресом, установленным в 00:00:00:00:00:00. Следует обратить внимание на заголовок MAC header — точнее, на поле Destination, установка которого в FF:FF:FF:FF:FF:FF как раз и указывает на широковещательный характер запроса.

Когда компьютер с адресом 192.168.3.12 получает этот широковещательный запрос, он анализирует IP-адрес, для которого выполняется разрешение. Опреде­лив, что его адрес совпадает с искомым, он формирует ответ протокола ARP, в котором указывает свой МАС-адрес (см. рис. 2.30).

Обратите внимание на то, что ответ посылается уже не широковещательно — отправитель знает МАС-адрес инициатора запроса и поэтому передает пакет целе­направленно.