В продолжении статьи https://litl-admin.ru/windows-2/baga-v-windows-7-povtoryayushhiesya-ip.html
Как выяснилось, способ решения данной проблемы внезапно перестал помогать. Сломал голову уже, что может быть за проблема. Эмпирически выяснилось, что бага проявляется, когда подключают один сетевой шнурок на свиче. Тогда после перезагрузки компьютера с Windows 7 он ругается на повторяющийся IP, хотя в сети явно с таким адресом никого нет. В этом я уверен точно, потому что подключенная в этот же сетевой шнурок Windows XP (вместо Seven) работает великолепно.
DHCP в сети я не использую, все адреса – статика.
Итак, что я выяснил ещё:
Сниффером Wireshark отловил пакеты, которые передает система в момент подключения сетевого кабеля. Там широковещательный ARP:
Who has 192.168.1.9? Tell 0.0.0.0
На что приходит ответ от коммутатора Alcatel, что IP адрес за ним числится. И всё равно, какой IP-адрес даёшь, приходит ответ в любом случае. В общем, Alcatel отвечает, что любой IP адрес принадлежит ей и всё тут.
Пробовал менять подсети и 10.10.1.0/24 и 192.168.0.0/24 – одинаковый результат.
Тогда решил, что нужно просто не посылать ARP-запрос.
Решение:
Открываем редактор реестра, ключ: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters]
Там создаём параметр: “ArpRetryCount”=dword:00000000
И перезагружаем машину. Всё работает нормально! АРПы не отправляются.
Теперь немного теории.
Такой пакет (первый) называется gratuitous Address Request Packet.
Посылает его система для того, чтобы убедиться, что в сети нет узла с таким же IP адресом. Поэтому он шлётся на широковещательный адрес, содержит MAC отправителя и 0.0.0.0 IP отправителя.
Узел с таким адресом непременно ответит, что адрес принадлежит ему (сообщит свой MAC), на MAC указанный в адресе отправителя. И семёрка отрапортует, что в сети адреса повторяются и работать она не будет.
Сделал reg-файлик, раскидал его на проблемные компы и решил проблему.
Непонятно только, почему этот хитрый коммутатор так отвечает на ARP-запросы при подключенном проводке?
Comments: