В моей домашней установке я использую dnsmasq в качестве локального DNS и dhcp сервера. Это имеет опцию, через которую можно указать IP-адрес на основе того, что это назвало "идентификатором клиента DHCP", т.е. строкой, которая передается клиентом DHCP dhcp серверу при запросе арендного договора.
Я использую его для присвоения того же IP всем моим ноутбукам дома, или если они находятся на проводе или на соединении Wi-Fi (различные MAC, тот же IP).
Следовательно, то, о чем я думаю о Вашей проблеме, является Вами определяющий, поскольку много псевдонимов Вашего NIC (eth0, eth0:1, eth0:2...) по мере необходимости и затем имеющий dhclient запрашивают арендный договор на каждый псевдоним, указывающий каждый раз различный клиентский идентификатор (например, "eth0", "eth0_1", "eth0_2"...).
Я не то, если бы это работает, и кто-то мог бы хорошо доказать меня неправильно, но я дал бы этому попытку: быстрый и легкий протестировать.
Ну, после нескольких изменений, у меня все заработало, я постараюсь вспомнить, что Я исправил это:
Во-первых, я не заметил другой ошибки, которая появлялась при запуске:
subnets: create failed, 'net_range' start not within subnet
Проблема здесь в том, что с маской 255.255.255.0
, ] net_address
должен заканчиваться на .0:
<key>name</key>
<string>192.168.1</string>
<key>net_address</key>
<string>192.168.1.0</string>
<key>net_mask</key>
<string>255.255.255.0</string>
<key>net_range</key>
<array>
<string>192.168.1.2</string>
<string>192.168.1.254</string>
</array>
При сохранении адреса вашего сервера 192.
Я также добавлю, что вам понадобится установить для свойства «reply_threshold_seconds» значение «0» для некоторых устройств. Мне пришлось сделать это, чтобы мое устройство ESP8266 подключалось к моему Mac.
В противном случае служба bootpd просто не ответила бы.