Назад | Перейти на главную страницу

Как настроить dhclient на CentOS для получения IP от определенного DHCP-сервера

У меня есть ситуация, когда я могу запускать образы CentOS 6.6 в подсети, так что экземпляры виртуальных машин получают свои IP-адреса из виртуального шлюза подсети. Теперь этот шлюз стал шатким, и у меня нет доступа, чтобы его исправить, поэтому я настроил свой собственный DHCP-сервер в этой подсети.

Итак, теперь в этой подсети есть 2 DHCP-сервера, и мои виртуальные машины получают случайные IP-адреса, иногда с одного DHCP-сервера, а иногда с другого. Мой вопрос в том, как я могу настроить dhcp-клиент на моих виртуальных машинах, чтобы они отправляли DHCP-запросы только моему DHCP-серверу, а не неисправному? man dhcp.conf не очень помог.

В 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) должны быть заключены в кавычки, в отличие от примера, показанного на странице руководства для dhclient.conf.

Во всех случаях запускайте systemctl restart network.service как суперпользователь, чтобы изменения вступили в силу.


В CentOS 6.7 работают те же инструкции, но

  • Каждый интерфейс использует отдельный файл конфигурации для dhclient. В приведенном выше примере файл, к которому reject правило будет добавлено будет /etc/dhcp/dhclient-eth0.conf (и явно не нужно было бы использовать interface блок).
  • Команда для повторной инициализации сетевых интерфейсов системы: service network restart, который снова должен быть вызван как суперпользователь.

DHCP работает через многоадресный запрос IP-адреса. Которая получает IP-адрес от первого DHCP-сервера для ответа. Я не знаю способа заставить клиента получить DHCP-адрес с определенного сервера.

Фактически, запуск двух DHCP-серверов, которые не знают друг друга, спрашивает о типе проблемы, с которой вы столкнулись. Вам необходимо отключить или отремонтировать неисправный.