Что такое ARP?
Протокол разрешения адресов обычно используется для определения MAC-адреса. ARP - это протокол канального уровня, но он используется, когда IPv4 используется через Ethernet.
Зачем нужен ARP?
Давайте разберемся на простом примере.
У нас есть один компьютер [ПК1] с IP-адресом 192.168.1.6, и мы хотим отправить эхо-запрос на другой компьютер [ПК2] с IP-адресом 192.168.1.1. Теперь у нас есть MAC-адрес ПК1, но мы не знаем MAC-адрес ПК2, и без MAC-адреса мы не можем отправить ни один пакет.
Теперь посмотрим пошагово.
Примечание: Открыть команду в административном режиме.
Шаг 1: Проверить существующий ARP на ПК1. Выполнять arp -a в командной строке, чтобы увидеть существующую запись ARP.
Вот скриншот
Шаг 2: Удалить запись ARP. Выполнять arp -d команда в командной строке. А затем выполнить arp -a чтобы убедиться, что записи ARP были удалены.
Вот скриншот
Шаг 3: Откройте Wireshark и запустите его на ПК1.
Шаг 2: Выполните команду ниже на ПК1.
пинг 192.168.1.1Шаг 3: Теперь пинг должен быть успешным.
Вот скриншот
Шаг 4: Остановить Wireshark.
Теперь проверим, что происходит в фоновом режиме, когда мы удаляем запись arp и пингуем на новый IP-адрес.
Собственно, когда мы пингуем 192.168.1.1, перед отправкой пакета запроса ICMP произошел обмен пакетами ARP Request и ARP response. Итак, ПК1 получил MAC-адрес ПК2 и смог отправить ICMP-пакет.
Для получения дополнительной информации о ICMP см. Здесь
Анализ на Wireshark:
Типы ARP-пакетов:
- Запрос ARP.
- ARP-ответ.
Есть два других типа запроса RARP и ответа RARP, но они используются в определенных случаях.
Вернемся к нашему эксперименту.
Мы сделали пинг до 192.168.1.1 поэтому перед отправкой запроса ICMP ПК1 должен отправить широковещательную Запрос ARP и ПК2 должен отправлять одноадресную рассылку Ответ ARP.
Вот важные поля для запроса ARP.
Итак, мы понимаем, что основная цель ARP-запроса - получить MAC-адрес ПК2.
Теперь посмотрим ответ ARP в Wireshark.
Ответ ARP отправляется ПК2 после получения запроса ARP.
Вот важные поля ответа ARP.
Из этого ответа ARP мы видим, что ПК1 получил MAC-адрес ПК2 и обновил таблицу ARP.
Теперь ping должен быть успешным, поскольку ARP был разрешен.
Вот пакеты ping
Другие важные пакеты ARP:
RARP: Его противоположность нормальному ARP, который мы обсуждали. Это означает, что у вас есть MAC-адрес ПК2, но нет IP-адреса ПК2. В некоторых конкретных случаях требуется RARP.
Бесплатный ARP: Когда система получает IP-адрес после этого, система может бесплатно отправить ARP, информируя сеть о том, что у меня есть этот IP-адрес. Это сделано во избежание конфликта IP-адресов в одной сети.
Прокси-ARP: Из названия мы можем понять, что когда одно устройство отправляет запрос ARP и получает ответ ARP, но не формирует фактическое устройство. Это означает, что кто-то отправляет ответ ARP о поведении исходного устройства. Это реализовано в целях безопасности.
Резюме:
Пакеты ARP обмениваются в фоновом режиме всякий раз, когда мы пытаемся получить доступ к новому IP-адресу