限制 dnsmasq 仅为本地主机上的虚拟机提供 DHCP?

限制 dnsmasq 仅为本地主机上的虚拟机提供 DHCP?

我需要设置 dnsmasq 以仅向在本地主机上运行的虚拟机提供 DHCP(以及可选的 DNS),而不向运行 dnsmasq 的框外部的任何其他执行 DHCP Discover 的系统提供 DHCP。我是否只需设置以下选项:

interface=lo0
bind-interfaces

或者是否需要其他配置?

答案1

监听环回接口可能不起作用,因为您的虚拟机未连接到环回接口(因此dnsmasq看不到它们的 DHCP 请求)。

您需要dnsmasq监听虚拟机所连接的接口。通常,这将是一个桥接接口。如果不了解您的系统是如何配置的,很难提供更详细的答案。

如果您正在使用libvirt,那么默认情况下(至少在 RedHat-ish 系统下),您会得到一个在启动时dnsmasq监听的实例,如下所示:virbr0

/sbin/dnsmasq --strict-order --local=// --domain-needed \
  --pid-file=/var/run/libvirt/network/default.pid \
  --conf-file= --except-interface lo --bind-dynamic --interface virbr0 \
  --dhcp-range 192.168.122.2,192.168.122.254 \
  --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases \
  --dhcp-lease-max=253 --dhcp-no-override

相关内容