Ошибка DHCP сервера BAD_ADDRESS. Vista при запуске теряет адрес.

Причина известна и хорошо документирована тут, тут - искать в тексте BAD_ADDRESS.

Если DHCP-сервер (под MS Windows) обладает резервированием на некий МАС-адрес и некто начинает статически использовать этот адрес (который DHCP-сервер хочет раздавать), то сервер (или клиент) сам это диагностирует и помечает данное резервирование меткой BAD_ADDRESS. При этом в свойствах этого конкретного резервирования стирается ранее прописанный МАС-адрес, и пишется IP адрес в обратном виде в HEX записи.

DHCP BAD_ADDRESS

В итоге - резервирование "портится" и после того, как "оккупант" со статическим адресом исчезает из сети, резервирование остается испорченным и в будущем не выдает адрес тому МАСу, для которого создавалось. Эта "особенность" работы DHCP сервера от Microsoft (по крайней мере в Windows Server 2008 R2 и ранее работало именно так).

Попробовать исправить это можно, включив определение конфликтов DHCP (см. тут). Надо открыть консоль DHCP сервера, нажать правой кнопкой на IPv4, свойства, вкладка дополнительно, выбрать количество пингов для определения конфликта. Ставить надо от 1 до 3, т.к. большие значения приведут к сильным тормозам в работе системы.

DHCP Server Conflict Detection

Варианты решения:

1. сделать скрипт с периодическим запуском, который будет вычислять плохие записи, и соответственно возвращать их на место из заранее подготовленной копии.

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

И еще одно - в системах MS Windows Vista и старше, при каждом запуске системы, ОС пытается найти DHCP сервер, и если не находит, то перестает использовать ранее выданный адрес. Описание и решение проблемы смотреть тут. Если кратко, то в реестре

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters надо создать DWORD Value с именем DontPingGateway, и присвоить ему значение 1. Это решит проблему.