Руководство для начинающих по протоколам разрешения адресов (ARP)

Протоколы разрешения адресов (ARP) определяют способ разрешения локальных IP-адресов между компьютерами в сети.

В простейшей форме представьте, что у вас есть компьютер, например ноутбук, и вы хотите общаться с вашим Raspberry Pi, которые оба подключены как часть вашего локального широкополосного соединения.

Обычно вы можете увидеть, доступен ли Raspberry PI в сети, выполнив команду ping. Как только вы пингуете Raspberry Pi или пытаетесь установить какое-либо другое соединение с Raspberry Pi, вы избавитесь от необходимости разрешения адреса. Думайте об этом как о форме рукопожатия.

ARP сравнивает адрес и маски подсети хоста и целевого компьютера. Если они совпадают, то адрес был эффективно разрешен в локальной сети.

Так как же этот процесс на самом деле работает?

Ваш компьютер будет иметь кэш ARP, к которому сначала обращаются, чтобы попытаться определить адрес. 

Если в кеше нет информации, необходимой для разрешения адреса, запрос отправляется на каждый компьютер в сети.

Если у машины в сети нет искомого IP-адреса, он просто проигнорирует запрос, но если у машины есть совпадение, он добавит информацию для вызывающего компьютера в свой собственный кэш ARP. Затем он отправит ответ обратно на исходный вызывающий компьютер.

После получения подтверждения адреса целевого компьютера соединение установлено, и таким образом может быть обработан пинг или другой сетевой запрос.

Фактическая информация, которую исходный компьютер ищет от конечного компьютера, — это его MAC-адрес или, как его иногда называют, адрес HW.

Рабочий пример с использованием команды ARP

Чтобы это было легче понять, вам нужно подключить к сети два компьютера. 

Убедитесь, что оба компьютера включены и могут подключаться к Интернету.

Теперь откройте окно терминала с помощью Linux и введите следующую команду:

агр

Отображаемая информация — это информация, которая в данный момент хранится в кэше ARP вашего компьютера.

Результаты могут просто показать вашу машину, вы можете вообще ничего не видеть, или результаты могут включать имя другого компьютера, если вы подключались к нему ранее.

Информация, предоставленная командой arp, выглядит следующим образом:

  • Адрес
  • Тип HW
  • HW Адрес
  • Флаги
  • маскировать
  • Я лицо

Если у вас ничего не отображается, не беспокойтесь, потому что это скоро изменится. Если вы видите другой компьютер, то, скорее всего, увидите, что адрес HW установлен на «(не полностью)».

Вам нужно знать имя компьютера, к которому вы подключаетесь. В нашем случае мы подключаем к Raspberry PI ноль.

В терминале выполните следующую команду, заменив слова raspberrypizero на имя компьютера, к которому вы подключаетесь.

ping raspberrypizero

Произошло то, что компьютер, который вы используете, посмотрел в своем кэше ARP и обнаружил, что у него нет информации или недостаточно информации о машине, на которую вы пытаетесь пропинговать. Поэтому он отправил запрос по сети, спрашивая все остальные машины в сети, действительно ли они являются тем компьютером, который вы ищете.

Каждый компьютер в сети будет просматривать запрошенный IP-адрес и маску, и все, кроме того, который имеет этот IP-адрес, отклонят запрос.

Компьютер с запрошенным IP-адресом и маской выкрикнет: «Эй, это я!» и отправит свой HW-адрес обратно запрашивающему компьютеру. Затем он будет добавлен в кэш ARP вызывающего компьютера.

Не верь этому? Запустите команду arp еще раз.

агр

На этот раз вы должны увидеть имя компьютера, который вы пропинговали, и вы также увидите адрес HW. 

Показать IP-адреса вместо имени хоста компьютера

По умолчанию команда arp покажет имя хоста элементов в кэше ARP, но вы можете заставить ее отображать IP-адреса, используя следующий параметр:

arp -n

В качестве альтернативы вы можете использовать следующий переключатель, который будет отображать вывод по-другому:

arp -a

Вывод команды, приведенной выше, будет примерно таким:

raspberrypi (172.16.15.254) при d4: ca: 6d: 0e: d6: 19 [эфир] на wlp2s0

На этот раз вы получите имя компьютера, IP-адрес, HW-адрес, HW-тип и сеть.

Как удалить записи из кэша ARP

Кэш ARP не удерживает свои данные очень долго, но если у вас возникают проблемы с подключением к определенному компьютеру, и вы подозреваете, что это из-за неправильных данных об адресе, вы можете удалить запись из кэша следующим образом ,

Сначала запустите команду arp, чтобы получить HW-адрес записи, которую вы хотите удалить.

Теперь запустите следующую команду:

ARP -D HWADDR

Замените HWADDR адресом HW для записи, которую вы хотите удалить.

Резюме

Команда arp обычно не используется обычным пользователем компьютера и будет полезна большинству людей только при устранении неполадок в сети.

Ссылка на основную публикацию