我需要设置 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