Рейтинг:0

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

флаг in

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

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

Ниже приведена конфигурация, которую я использую:

порт=0
интерфейсы привязки
интерфейс=br0
DHCP-диапазон = 10.0.0.2, статический, 255.255.0.0
DHCP-хост = 52:54:00:d1:82:c4,10.0.0.2, бесконечный

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

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

флаг in
Можете ли вы добавить вывод `ip add dev br0`?
Рейтинг:0
флаг in

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

порт=0
интерфейсы привязки
интерфейс=br0
общая сеть = br0,10.0.0.101
DHCP-диапазон = 10.0.0.101, статический, 255.255.0.0
DHCP-хост = 52:54:00:d1:82:c4,10.0.0.101, бесконечный
Рейтинг:0
флаг in

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

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

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

fengye87 avatar
флаг in
Я действительно могу заставить его работать с помощью [Golang DHCP lib] (https://github.com/insomniacslk/dhcp). Но то, как я его использую, немного хакерское и может не охватывать все крайние случаи. Просто интересно, есть ли у dnsmasq достойный способ поддержать этот сценарий.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.