Как работает бесплатный ARP?

36

Работает ли бесплатный ARP как обычный запрос ARP?

Почему безвозмездная ARP используется для HSRP?

троянский
источник
3
Вы где-нибудь читали об этом? Если вы этого не сделали, вы должны. Если вы это сделали и что-то не понятно, пожалуйста, уточните свой вопрос.
Гербен
@Gerben Мне ясно, как работает arp, но эта концепция - моя запутанная часть, особенно в HSRP, как работает этот ARP ..
Троян
Один говорит, что Grauitous ARP - это запрос, а другой показывает схему Wireshark, в которой говорится, что это ответ. Это какое-то случайное поведение? На моем компьютере прослушанный пакет ARP Gratuitous также был отмечен как Запрос (код операции: 1).
VITOR FERNANDES DE BARROS

Ответы:

42

Бесплатное ARP - это своего рода «предварительное уведомление», оно обновляет кэш ARP других систем, прежде чем они запрашивают его (без запроса ARP) или обновляют устаревшую информацию.

Когда речь идет о безвозмездной ARP, пакеты на самом деле являются специальными пакетами запроса ARP, а не ответными пакетами ARP, как можно было бы ожидать. Некоторые причины этого объясняются в RFC 5227 .

Бесплатный пакет ARP имеет следующие характеристики:

  • И IP-адрес источника, и адрес назначения в пакете являются IP-адресом хоста, выдающего бесплатный ARP.
  • MAC-адрес получателя является широковещательным MAC-адресом ( ff:ff:ff:ff:ff:ff).
    • Это означает, что пакет будет загружен на все порты коммутатора.
  • Никакого ответа не ожидается

Бесплатная ARP используется по нескольким причинам:

  • Обновите таблицы ARP после изменения MAC-адреса для IP-адреса (аварийное переключение, новый сетевой адаптер и т. Д.)
  • Обновите таблицы MAC-адресов на устройствах L2 (коммутаторах), которые теперь MAC-адрес находится на другом порту
  • Отправляйте бесплатную ARP, когда интерфейс работает, чтобы уведомить другие хосты о новых привязках MAC / IP заранее, чтобы им не приходилось использовать ARP-запросы для выяснения
  • Когда вы получаете ответ на бесплатный ARP-запрос, вы знаете, что в вашей сети конфликт IP-адресов

Что касается второй части вашего вопроса, HSRP , VRRP и т. Д. Используют бесплатный ARP для обновления таблиц MAC-адресов на устройствах L2 (коммутаторах). Также есть возможность использовать сгоревший MAC-адрес для HSRP вместо «виртуального». В этом случае бесплатный ARP также обновит таблицы ARP на устройствах / хостах L3.

Себастьян Визингер
источник
Как просмотреть бесплатные пакеты ARP?
Троян
Используйте сетевой анализатор, как Wireshark
Себастьян Визингер,
Есть ли какие-либо проволочные захваты для безвозмездной ARP ..
Троян
1
Вы можете увидеть пример пакета на домашней странице Wireshark
Себастьян Визингер
1
Потому что вы получаете ответ на запрос ARP, в котором есть ваш собственный IP. Так что кто-то еще имеет этот IP и отвечает соответственно.
Себастьян Визингер
14

Безвозмездное ARP является ARP ответ , который не был вызван запрос ARP. Бесплатная ARP отправляется как широковещательный кадр, как способ для узла объявить или обновить свое сопоставление IP с MAC для всей сети.

Пакет ARP содержит поле « Код операции », которое указывает, является ли пакет запросом или ответом. В Gratuitous ARP поле Opcode установлено на 2, что указывает Ответ:

введите описание изображения здесь

Существует множество вариантов использования Gratuitous ARP , и все они обычно связаны с необходимостью обновления таблиц MAC-адресов ARP Mapping или Switchport.

HSRP (и многие другие протоколы резервирования) часто используют бесплатную ARP. Эта анимация проиллюстрирует, как:

введите описание изображения здесь

Обратите внимание, что RouterA и RouterB совместно используют IP-адрес 10.0.0.1и MAC-адрес 0053.ffff.1111. Хосты настроены с использованием шлюза по умолчанию 10.0.0.1, и каждый из них имеет сопоставление ARP, указывающее сопоставления 10.0.0.1IP-адреса с 0053.ffff.1111MAC-адресом. Поскольку MAC-адрес и IP-адрес совместно используются двумя маршрутизаторами, сопоставление ARP никогда не потребуется обновлять.

Однако , когда RouterA является активным маршрутизатором HSRP, MAC-адрес обслуживается устройством, подключенным к порту коммутатора 1. В случае сбоя RouterA RouterB отправляет бесплатный ARP для обновления таблицы MAC-адресов коммутатора, которой MAC-адрес 0053.ffff.1111теперь обслуживается. устройство, подключенное к порту коммутатора 2.

Процесс происходит снова, если RouterB дает сбой, и RouterA необходимо вернуть обслуживание IP / MAC 10.0.0.1/0053.ffff.1111

Захват пакетов переходов HSRP и пакетов GARP в приведенной выше анимации можно загрузить и изучить в Wireshark .


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

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

Причиной этого является, по определению, бесплатный ARP, предназначенный для обновления сопоставлений ARP других устройств в сети. Если IP не является уникальным, мы бы не хотели, чтобы «тест на уникальность» приводил к обновлению неправильной записи ARP.

В действительности, для обнаружения дублирующихся адресов используется определенный набор сообщений ARP: ARP Probe и ARP Announcement .

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

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

Объявление ARP еще больше похоже на бесплатный ARP, но технически оно (также) не является тем же, поскольку в сообщении ARP указан код операции1 , указывающий запрос (где в качестве бесплатного ARP код операции будет иметь код операции2 ).

Эдди
источник