Я создал виртуальную подсеть, используя интерфейсы Tap & Bridge. Поверх этой подсети я установил dnsmasq, который служит DHCP-сервером.
Все работает на сервере Ubuntu 17.10.
Мой соответствующий netstat показывает активное разрешение имен:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 2729/systemd-resolv
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 3998/dnsmasq
tcp6 0 0 :::5355 :::* LISTEN 2729/systemd-resolv
tcp6 0 0 :::53 :::* LISTEN 3998/dnsmasq
udp 8448 0 0.0.0.0:5355 0.0.0.0:* 2729/systemd-resolv
udp 16896 0 0.0.0.0:53 0.0.0.0:* 3998/dnsmasq
udp 0 0 127.0.0.53:53 0.0.0.0:* 2729/systemd-resolv
udp 6144 0 0.0.0.0:67 0.0.0.0:* 3998/dnsmasq
udp6 52992 0 :::5355 :::* 2729/systemd-resolv
udp6 0 0 :::53 :::* 3998/dnsmasq
Хотя я не уверен, стоит ли мне просто отключить systemd-resolv и заставить netmasq обслуживать все.
соответствующая часть dnsmasq.conf:
domain-needed
bogus-priv
no-resolv
domain=server.local
interface=br0
dhcp-authoritative
dhcp-range=192.168.10.50,192.168.10.254,255.255.255.0,1d
Эта настройка дает мне очень смешанные результаты: когда я тестировал ее на локальном (настольном) Ubuntu 17.04, казалось, все работало. Но теперь, когда я "развернут" на сервере 17.10, я не получаю правильное разрешение имен:
- хост-машина не может найти гостей, подключенных к интерфейсу tap / bridge
- гости имеют частичный успех, находя других гостей (некоторые работают, некоторые нет)
- гости не могут найти хозяина
Я проверяю это, запустив ping host
или ping guest_n
Что меня больше всего беспокоит, так это # 2: кажется, что "старые" виртуальные машины работают, а новые - нет. Единственное другое существенное отличие между ними заключается в том, что на новом работает сервер 18.04. Однако: я создал похожего гостя только вчера, и он работает?!?! Так что ... что - это всего лишь один день, чтобы имя распространялось через что-нибудь?
В любом случае, есть какие-нибудь намеки на то, что я здесь делаю неправильно? Как я могу получить правильно работающее разрешение имен?
Редактировать: получил # 2 - это была блокировка UFW (и не регистрировать те же блоки)