libvirt:当有多个接口时,dnsmasq(DHCP)的 DNS 更新发生冲突

libvirt:当有多个接口时,dnsmasq(DHCP)的 DNS 更新发生冲突

对于我的客人,我提供了三个网络,vtunnel0以及vlocal0到服务器物理网卡的桥接器:

<interface type='network'>
  <mac address='30:00:7b:6b:bb:10'/>
  <source network='vtunnel0'/>
  <model type='e1000'/>
  <address type='pci' domain='0x0000' bus='0x10' slot='0x01' function='0x0'/>
</interface>

<interface type='network'>
  <mac address='40:00:7b:6b:bb:10'/>
  <source network='vlocal0'/>
  <model type='e1000'/>
  <address type='pci' domain='0x0000' bus='0x10' slot='0x02' function='0x0'/>
</interface>

<interface type='direct'>
  <mac address='50:00:7b:6b:bb:10'/>
  <source dev='enp4s0' mode='bridge'/>
  <model type='e1000'/>
  <address type='pci' domain='0x0000' bus='0x10' slot='0x03' function='0x0'/>
</interface>

配置vtunnel0如下:

<network>
  <name>vtunnel0</name>
  <uuid>b417a4a0-7bf8-4f20-9a04-72ac8a6d6afa</uuid>
  <forward mode='route'/>
  <bridge name='vtunnel0' stp='on' delay='0'/>
  <mac address='3e:81:59:5d:b7:fe'/>
  <ip address='203.0.113.2' netmask='255.255.255.192'>
    <dhcp>
      <range start='203.0.113.10' end='203.0.113.62'/>
    </dhcp>
  </ip>
</network>

如下vlocal0所示:

<network>
  <name>vlocal0</name>
  <uuid>1bbbe818-cbab-443d-9637-ee3e178e2c2b</uuid>
  <bridge name='vlocal0' stp='on' delay='0'/>
  <mac address='3c:3f:8a:c5:4b:c4'/>
  <ip address='10.8.17.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='10.8.17.6' end='10.8.17.254'/>
    </dhcp>
  </ip>
</network>

我现在的问题是,/etc/resolv.conf客户机的 每隔几分钟就会更新一次,内容也不同。有时它包含nameserver 203.0.113.2,有时包含nameserver 10.8.17.1,有时包含物理网卡的两个名称服务器。

因此,似乎libvirt或者dnsmasq有点不知道有三个网络。所有三个网络均由 DHCP 配置。

这是正常现象吗?我如何确保仅从物理网卡检索 DNS 服务器vtunnel0?我想从主持人,不是客人方。

答案1

您可以使用/etc/resolvconf/interface-order特定接口优先使用名称服务器

否则,您可以为每个接口添加supersede domain-name-servers "1.2.3.4","5.6.7.8";条目,以忽略它们从 DHCP 获取的任何 DNS 服务器。或者您可以从列表中dhclient.conf注释掉domain-name-serversrequest

相关内容