ARP-запрос отправляется, даже если Windows имеет запись в кеше (ARP Table)
У нас есть продукт под управлением Windows XP Embedded SP1. Мы настраиваем поддельный (не существует) MAC-адрес для поддельного IP-адреса в таблице ARP. Когда происходит обмен данными, Windows отправляет пакеты на поддельный MAC и fakeIP, а затем мы заменяем его на реальные в драйвере. Так устроено программное обеспечение.
Проблема в том, что иногда Windows начинает отправлять ARP-запросы на поддельный IP-адрес, даже если для этого есть запись в таблице ARP. Я понятия не имел, почему это происходит, и в слепой попытке воспроизвести проблему я написал скрипт для удаления записи ARP, а затем через несколько секунд добавил ее снова. После некоторых попыток я увидел, что проблема произошла.
Любые идеи о том, что я должен проверить / изменить?
1 ответ
Можете ли вы проверить MAC-адреса кадра Ethernet в обоих случаях, в случае, когда есть запись и когда нет записи в кэше arp. Кроме того, проверьте ваш код, я думаю, вы найдете некоторую ссылку на IP-адрес FAKE внутри вашего кода (который вы, возможно, забыли изменить). Существует много протоколов прикладного уровня, которые требуют использования ARP до их передачи, поэтому я думаю, возможно, вы используете один из этих протоколов в своем коде и указываете ему, что код должен взаимодействовать с поддельным IP-адресом, поэтому при вызове этого протокола он использует arp для поиска mac-адреса поддельного IP-адреса. Дайте мне знать, если это ответит на ваш вопрос.