Вопрос или проблема
Я имею в виду, что я играл с wireshark
и ping
на обоих моих исходном и целевом хостах, и я видел, как и ожидалось, каждый раз, когда я ping
IP-адрес хоста в моей локальной сети, он отправляет ARP
запросы в широковещательную рассылку, и после получения ARP
ответа от целевого хоста, начинает сессию ICMP echo
сообщений с их ответами.
Мой вопрос в следующем: когда целевой хост получает ARP-запрос
от моего исходного хоста, обновляет ли он свой ARP
кэш с информацией, содержащейся в запросе (так как исходный MAC-адрес
присутствует в ARP-запросе
)? Если да, то почему целевой хост иногда отправляет еще один ARP-запрос
для IP-адреса моего исходного хоста и отклоняет все ICMP echo
запросы, пока не получит обратно ARP-ответ
?
Обратите внимание, что это поведение наблюдается периодически, и иногда ICMP echo
ответ осуществляется до ARP-запроса
от моего целевого хоста, но такой ARP-запрос
всегда находится где-то в середине сессии ping. Я не знаю, связано ли это с обновлением таблиц ARP хостов из предыдущих ping-сессий или второй ARP-запрос
является просто протоколом, и целевой хост уже имеет информацию о MAC-адресе
исходного хоста из первого ARP-запроса
.
Или же дело в том, что целевому хосту вообще не нужен MAC-адрес
исходного хоста, так как он всегда инкапсулирован в каждом запросе ICMP echo
, и ответ на каждый такой запрос использует полученную информацию о MAC-адресах
и меняет их в ответном кадре?
Ответ или решение
Когда хост в локальной сети получает широковещательный ARP-запрос с адресом, совпадающим с его собственным IP-адресом, происходит ряд ключевых процессов. Разберем подробности этих процессов и возможные нюансы поведения.
Основные шаги обработки ARP-запроса
-
Обнаружение ARP-запроса: Когда хост получает широковещательный ARP-запрос, он проверяет, соответствует ли запрашиваемый IP-адрес его собственному. Это первый шаг в определении, как он должен отреагировать.
-
Актуализация ARP-кэша: Если IP-адрес в ARP-запросе совпадает с IP-адресом хоста, то хост используется заголовочные данные запроса, чтобы потенциально обновить свой ARP-кэш. В запросе находится MAC-адрес отправителя, и хост может сохранить эту информацию для последующих взаимодействий, чтобы избежать многократной отправки ARP-запросов в будущем.
-
Отправка ARP-ответа: После обновления ARP-кэша, хост отвечает на запрос, отправляя ARP-ответ. Ответ включает в себя собственный MAC-адрес хоста, который теперь становится доступен отправителю запроса для дальнейшей коммуникации.
Причина повторных ARP-запросов
Поведение, которое вы наблюдаете, когда хост периодически отправляет ARP-запросы, даже если предыдущая информация уже была получена, может быть связано с несколькими причинами:
-
Истечение срока действия ARP-кэша: Информация в ARP-кэше имеет ограниченный срок действия для обновления возможности изменения сети. И за этот период информация может быть просто удалена.
-
Обработка ICMP эхо-запросов: Когда хост получает ICMP эхо-запрос ("пинг"), отправленный на его IP-адрес, он извлекает информацию о MAC-адресе из ARP-кэша для отправки ICMP эхо-ответа. Если в это время запись о MAC-адресе истекла, он должен запросить ее снова.
-
Оптимизация сети и частные проблемы: Некоторое сетевое оборудование может периодически инициировать такие запросы для обеспечения непрерывности и надежности связи. Повторный запрос мог быть инициирован в результате агрегированной нагрузки сети или внутренних системных протоколов.
Заключение
ICMP эхо-запросы, даже если они содержат MAC-адрес отправителя в каждом кадре, требуют предварительного установления ARP-кэша на обоих концах для стабильного взаимодействия без лишней задержки. Поведение, наблюдаемое вами, может быть следствием динамического управления ARP-кэшами на устройствах и специфических особенностей сетевого оборудования.
Эти нюансы подчеркивают необходимость не только понимания сетевых протоколов, но и учета особенностей конкретных сетевых конфигураций и оборудования, что обязательно для решения кейсов на уровне профессионального сетевого администрирования и аудита.