ARP использует два типа пакетов: ARP-запрос, отправляемый на широковещательный MAC-адрес, и ARP-ответ, отправляемый методом unicast от целевого хоста к хосту-источнику. Рассмотрим анализ этих пакетов в Wireshark.
Захват пакетов ARP
Для захвата пакетов ARP отключим, а затем включим сетевой интерфейс (например, Wi-Fi-адаптер). Запустим захват пакетов, выбрав соответствующий адаптер. После включения адаптера подождём некоторое время. В фильтре отображения укажем «arp». Остановим захват. Мы увидим несколько ARP-запросов и ответов.
Анализ ARP-запроса
Найдём ARP-запрос, отправленный с нашего MAC-адреса (например, Apple MAC-адрес) на широковещательный MAC-адрес (FF:FF:FF:FF:FF:FF). Запрос содержит вопрос: «Кто имеет IP-адрес 192.168.1.1 (адрес шлюза по умолчанию)? Сообщите 192.168.1.182 (IP-адрес, назначенный DHCP этому компьютеру)».
Рассмотрим структуру этого ARP-запроса:
- Frame: Описание всего принятого Wireshark фрейма.
- Ethernet II header: Здесь Destination MAC address установлен в широковещательный адрес (FF:FF:FF:FF:FF:FF), Source MAC address — это MAC-адрес нашего сетевого интерфейса, а поле Type имеет значение 0x0806 (шестнадцатеричное), зарезервированное для протокола ARP. Это указывает на то, что за заголовком Ethernet II следует раздел ARP.
- ARP section: Этот раздел содержит следующие данные:
- Hardware type: Ethernet.
- Protocol type: IPv4. Это означает, что запрос MAC-адреса осуществляется по IPv4-адресу.
- Sender MAC address и Sender IP address: Адреса нашего компьютера.
- Target MAC address: Все нули, так как целевой MAC-адрес неизвестен (запрос ARP и служит для его получения).
- Target IP address: Адрес шлюза по умолчанию (192.168.1.1).
Анализ ARP-ответа
Найдём ответ на этот ARP-запрос. Он должен поступить с MAC-адреса беспроводного маршрутизатора.
В разделе Ethernet II header: Destination MAC address — MAC-адрес нашего компьютера, Source MAC address — MAC-адрес сетевого интерфейса маршрутизатора, а Type — ARP.
В разделе ARP section:
- Sender MAC address и Sender IP address: MAC-адрес и IP-адрес беспроводного маршрутизатора (шлюза по умолчанию).
- Target MAC address и Target IP address: MAC-адрес и IP-адрес нашего компьютера.
ARP-ответ отправляется напрямую на наш компьютер с помощью unicast ethernet фрейма. Wireshark отобразит информацию: IP-адрес 192.168.1.1 находится по MAC-адресу (например, 98:XX:XX:XX:XX:D8).
ARP-кэш
После получения ARP-ответа компьютер имеет запись о связке удалённого IP-адреса и MAC-адреса в локальном ARP-кэше. Проверить записи ARP-кэша можно командой arp -a в командной строке. Первая строка покажет запись, полученную с помощью протокола ARP: IP-адрес 192.168.1.1 связан с полученным MAC-адресом. В кэше могут быть и другие записи, например, для широковещательного адреса сети и мультиадресных IP-адресов.