У меня есть ситуация, где я могу запустить изображения CentOS 6.6 на подсети, таким образом, что экземпляры VM получают свои IP-адреса от виртуального шлюза подсети. Теперь этот шлюз пошел wonky, и у меня нет доступа для фиксации его, таким образом, я настроил свой собственный сервер DHCP на этой подсети.
Таким образом, теперь существует 2 сервера DHCP на этой подсети, и мои VMs получают случайные IP-адреса, иногда с одного сервера DHCP и иногда с другого. Мой вопрос состоит в том что, как я могу настроить клиента DHCP на своем VMs так, чтобы они сделали запросы DHCP только к моему серверу DHCP, а не дефектному? man dhcp.conf
не было очень полезно.
DHCP работает через многоадресный запрос IP-адреса. Которая получает IP-адрес от первого DHCP-сервера для ответа. Я не знаю способа заставить клиента получить DHCP-адрес с определенного сервера.
Фактически, запуск двух DHCP-серверов, которые не знают друг друга, спрашивает, с какой проблемой вы столкнулись. Вам необходимо отключить или отремонтировать неисправный.
На CentOS 7 этого можно добиться, создав файл /etc/dhcp/dhclient.conf
и добавив строку типа
reject 192.168.56.0/24;
для отклонения DHCP предложений с одного сервера или с другого (или, в данном примере, со всех DHCP серверов в определенной подсети).
Чтобы отфильтровать DHCP предложения только на определенном интерфейсе, поместите директиву reject
внутри блока interface
:
interface "eth0" {
reject 192.168.56.0/24;
}
Обратите внимание, что имя интерфейса (здесь eth0
) должно быть помещено в кавычки, в отличие от примера, показанного в man-странице для dhclient. conf
.
Во всех случаях запустите systemctl restart network.service
в качестве суперпользователя, чтобы изменения вступили в силу.
На CentOS 6.7 действуют те же самые инструкции, однако
reject
будет /etc/dhcp/dhclient-eth0.conf
(и, очевидно, нет необходимости использовать блок interface
). перезапуск служебной сети
, которая снова должна быть вызвана в качестве суперпользователя.