ARP (Address Resolution Protocol — протокол разрешения адресов) — протокол сетевого уровня (Network Link layer), предназначенный для преобразования IP- адресов (адресов сетевого уровня) в MAC -адрес- адреса (адреса канального уровня) в сетях TCP/IP. Он определён в RFC 826.
Утилита arp:
arp -a выводит содержимое таблицы ARP. arp <host> выводит ARP-запись для заданного хоста. arp -d <host> удаляет запись, соответствующую хосту. arp -d -a удаляет все записи таблицы. arp -s <host> <MAC-address> добавляет запись. arp -f <file> добавляет записи из файла соответствия <file>.
#!/bin/sh I=1 while [ $I -le 254 ] do arp -d 192.168.1.${I} arp -s 192.168.1.${I} 0:0:0:0:0:0 I=`expr $I + 1` done arp -f /etc/ethers.local
ip neigh flush all
В рамках протокола ARP возможны самообращенные запросы (gratuitous ARP). При таком запросе инициатор формирует пакет, где в качестве IP используется его собственный адрес. Это бывает нужно, когда осуществляется стартовая конфигурация сетевого интерфейса. В таком запросе IP-адреса отправителя и получателя совпадают.
Самообращенный запрос позволяет ЭВМ решить две проблемы. Во-первых, определить, нет ли в сети объекта, имеющего тот же IР-адрес. Если на такой запрос придет отклик, то ЭВМ выдаст на консоль сообщение Dublicate IP address sent from Ethernet address <…>. Во-вторых, в случае смены сетевой карты производится корректировка записи в АRP-таблицах ЭВМ, которые содержали старый МАС-адрес инициатора. Машина, получающая ARP-запрос c адресом, который содержится в ее таблице, должна обновить эту запись.
Вторая особенность такого запроса позволяет резервному файловому серверу заменить основной, послав самообращенный запрос со своим МАС-адресом, но с IP вышедшего из строя сервера. Этот запрос вынудит перенаправление кадров, адресованных основному серверу на резервный. Клиенты сервера при этом могут и не знать о выходе основного сервера из строя. При этом возможны и неудачи, если программные реализании в ЭВМ не в полной мере следуют регламентациям протокола ARP.