Протокол преобразования адресов (ARP)
Создана 29.04.2023
Отредактирована 20.05.2023
Отредактирована 20.05.2023
Для взаимодействия устройств друг с другом необходимо, чтобы у передающего устройства был IP- и MAC-адреса получателя. Когда одно из устройств пытается установить связь с другим, с известным IP-адресом, ему необходимо определить MAC-адрес получателя. Набор протоколов TCP/IP имеет в своём составе специальный протокол, называемый ARP (Address Resolution Protocol - протокол преобразования адресов), который позволяет автоматически получить MAC-адрес.
Термин локальный ARP (local ARP) используется в том случае, когда узел запроса и узел пункта назначения находятся в одной и той же подсети или подсоединены к общей передающей среде. Далее приведен пример, где все устройства находятся в одной подсети.
Рис. 1. Широковещательный ARP-запрос
В данной схеме ни один из ПК не имеет в своей таблице ARP информацию о MAC-адресах соседних устройств. Давайте выполним команду ping c ПК3 на ПК1.
Так как у ПК3 таблица MAC-адресов пустая, ПК3 отправляет ARP-запрос в сеть, используя широковещательный ARP-запрос, для того чтобы узнать MAC-адрес хоста с IP-адресом 192.168.163.4 для дальнейшей отправки ping
ARP-запрос от ПК3 |
---|
Leyer 2: Ethernet 2 Header 00-01-97-7A-4E-C9 >> ff-ff-ff-ff-ff-ff ARP Packet Src. IP: 192.168.163.6 Dest. IP: 192.168.163.4 |
Примечание: в схеме MAC-адресации широковещательный адрес содержит во всех битах шестнадцатеричное число f и имеет, таким образом, вид ff-ff-ff-ff-ff-ff или FFFF.FFFF.FFFF.FFFF (так обозначает cisco)
- ПК3 отправляет широковещательный ARP-запрос;
- Коммутатор получает ARP-запрос и передаёт его на все свои активные интерфейсы;
- ПК1, ПК2 и маршрутизатор получают ARP-запрос и проверяют его, сравнивают свой IP c IP Dest. (destination);
- Если IP-адрес узла не совпадает с широковещательным ARP-запросом, то узел отбрасывает ARP-запрос;
- Если IP-адрес узла совпадает с широковещательным ARP-запросом, то хост отправляет ARP-ответ.
Рис. 2. APR-ответ от ПК1
ARP-ответ от ПК1 |
---|
Leyer 2: Ethernet 2 Header 00-04-9a-63-55-b3 >> 00-01-97-7a-4e-c9 ARP Packet Src. IP: 192.168.163.4 Dest. IP: 192.168.163.6 |
- 6. ПК3 получает ARP-ответ с MAC-адресом ПК1 и заносит в свой ARP кэш (таблицу), для этого выполните команду в терминале arp -a
7. Теперь у ПК3 есть IP и MAC-адреса для отправки сообщений с эхо-запросом по протоколу ICMP (команда ping). После каждой передачи выводится соответствующее сообщение с эхо-ответом, смотрите ниже.
Если узел назначения находится в другой локальной сети
Если узел назначения IPv4 находится в другой локальной сети, узлу источника необходимо доставить кадр к интерфейсу маршрутизатора, который является шлюзом, или следующим переходом, используемым для достижения этого узла назначения. Исходный узел будет использовать MAC-адрес шлюза в качестве адреса назначения для кадров, которые содержат пакет IPv4, адресованный узлам в других сетях.
Адрес шлюза интерфейса маршрутизатора сохраняется в IPv4-конфигурации узлов. Когда узел создает пакет для адресата, он сравнивает IP-адрес назначения и свой собственный IP-адрес, чтобы определить, находятся ли эти два IP-адреса в одной и той же сети уровня 3 (сетевого уровня). Если узел-получатель находится в пределах другой сети, источник использует процесс ARP для определения MAC-адреса интерфейса маршрутизатора, выступающего в качестве шлюза (в том случае, если запись шлюза отсутствует в таблице ARP).