Сначала позвольте мне описать мою среду:
Теперь проблема, с которой я столкнулся, заключается в том, что когда я развертываю новую виртуальную машину в общедоступной сети, виртуальная машина получает IP-адрес от DHCP-сервера шлюзовой виртуальной машины. Но DHCP-сервер шлюза должен предлагать IP только частной сети.
Как запретить DHCP-серверу шлюза предлагать IP в общедоступную сеть?
DHCP использует широковещательный трафик для процесса обнаружения. Маршрутизаторы НЕ пересылают широковещательный трафик.
Если ваша виртуальная машина на «внутренней» стороне / eth1 вашего маршрутизатора получает аренду от вашего модема / маршрутизатора на «внешней» стороне / eth0, то у вас есть мост где-то между двумя сетями; либо ваш "маршрутизатор" на самом деле является мостом (у вас есть интерфейс с именем br0
или подобное на роутере?), или вы используете тот же переключатель, что-то неправильно исправлено и т. д.
РЕДАКТИРОВАТЬ: Я просто перечитал ваш вопрос и, возможно, неправильно понял. Вы хотите запретить клиентам в «общедоступной» сети получать аренду от DHCP-сервера в этой сети, но этот сервер НЕ является вашим сервером «шлюза»?
Если вы перезапустили свой DHCP-сервер уже после DHCPDARGS = eth1, но проблема все еще существует, вам нужно что-то сделать, чтобы найти причину проблемы.
Проверьте, действительно ли DHCP работает на eth0. Например, с помощью netstat -tulpn. Если он все еще работает на eth0 - проблема с настройкой DHCP-сервера.
Если нет, проверьте виртуальную машину, откуда она получает IP. Например:
меньше /var/lib/dhcp3/dhclient.leases
Как писал fukawi2, может быть, ваша конфигурация DHCP в порядке, это просто ваши общедоступные и частные сети, подключенные / соединенные мостом?
Опять же, сколько хостов у вас в «публичной» сети? Их конфигурация теперь тоже испорчена, так как у вас там 2 DHCP-сервера? Если одна виртуальная машина получает IP-адрес от неправильного DHCP, другие узлы должны иметь аналогичную проблему.