dnsmasq:обслуживать DHCP на мосту, чей IP-адрес находится вне подсети

Я хочу использовать dnsmasq для обслуживания DHCP на мосту Linux:

  • ожидается, что только одна виртуальная машина будет подключаться к мосту
  • MAC-адрес виртуальной машины фиксирован
  • ВМ должна получить статический IP-адрес через DHCP
  • сам мост не должен брать какой-либо IP-адрес из подсети (, но он может использовать фиктивный IP-адрес, например 169.254.xx/16)

Ниже приведена конфигурация I' m с использованием:

port=0
bind-interfaces
interface=br0
dhcp-range=10.0.0.2,static,255.255.0.0
dhcp-host=52:54:00:d1:82:c4,10.0.0.2,infinite

Проблема в том, что мне кажется, что я должен дать мосту IP-адрес в подсети (, например 10.0.0.1/16), чтобы все это заработало. Если я не укажу никакого IP-адреса на мосту или просто укажу фиктивный IP-адрес (, например 169.254.x.x/16), моя виртуальная машина не получит никакого IP-адреса от DHCP.

Итак, есть ли какая-либо опция/флаг dnsmasq, которую я могу использовать, чтобы заставить это работать? Большое спасибо!

0
задан 3 December 2021 в 09:41
2 ответа

DHCP требует связи между клиентом и сервером в локальной подсети.

Начальное DISCOVER, OFFER, REQUEST и ACK выполняются между 0.0.0.0 и 255.255.255.255, но сервер отвечает со своего собственного IP-адреса. Любое обновление, однако, передается непосредственно на IP-адрес сервера.

Итак, то, что вы хотите сделать, немного не соответствует спецификации, с учетом сказанного, это может быть возможно с дополнительным уровнем ретрансляции DHCP.

0
ответ дан 3 December 2021 в 22:20

После копания в исходном коде dnsmasq функция общей сети, похоже, работает для меня. Добавлено shared-network=... Line сделала свое дело, хотя я не уверен на 100%, что это правильный/безопасный путь.

port=0
bind-interfaces
interface=br0
shared-network=br0,10.0.0.101
dhcp-range=10.0.0.101,static,255.255.0.0
dhcp-host=52:54:00:d1:82:c4,10.0.0.101,infinite
0
ответ дан 6 December 2021 в 06:32

Теги

Похожие вопросы