- •Протокол ip
- •Классы адресов и их маски
- •Подсети
- •Маска подсети
- •Практика выделения ip-подсетей
- •Маска подсети переменной длины
- •Практическое использование маски подсети переменной длины
- •Использование технологии cidr
- •Пример использования технологии cidr
- •Настройка протокола ip на маршрутизаторе' Cisco Systems
- •Протокол arp
- •Использование протокола arp для проведения атак
Протокол 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).
Обратите внимание на то, что ответ посылается уже не широковещательно — отправитель знает МАС-адрес инициатора запроса и поэтому передает пакет целенаправленно.
