You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

virsh net-define无法应用dnsmasq配置选项问题排查

Libvirt网络dnsmasq配置段被忽略无法生效的解决方法

在Libvirt中配置网络时,添加的<dnsmasq:options>段始终被忽略,执行virsh net-define或virsh net-edit后,通过virsh net-dumpxml查看不到该配置段,导致通配符DNS解析无法生效。网络其他功能正常,日志显示完整XML已传递给libvirtd,但配置未被保留。

问题根源

原XML的<network>根元素未声明dnsmasq的命名空间,导致Libvirt解析XML时将<dnsmasq:options>及子元素视为无效内容直接丢弃。

修正后的完整XML配置

<network xmlns:dnsmasq="http://libvirt.org/schemas/network/dnsmasq/1.0">
  <name>network</name>
  <uuid>...</uuid>
  <forward dev='enp0s25' mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
    <interface dev='enp0s25'/>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='...'/>
  <domain name='network'/>
  <ip address='...' netmask='...'>
    <dhcp>
      <range start='...128' end='...254'/>
      <host mac='...' name='px2-test-oc' ip='...'/>
    </dhcp>
  </ip>
  <dnsmasq:options>
    <dnsmasq:option value='cname=*.px2-test-oc.network,px2-test-oc.network'/>
    <dnsmasq:option value='auth-zone=network'/>
    <dnsmasq:option value='auth-server=network,*'/>
  </dnsmasq:options>
</network>

关键修改点

在<network>标签中添加dnsmasq命名空间声明:

xmlns:dnsmasq="http://libvirt.org/schemas/network/dnsmasq/1.0"

操作步骤

  1. 停止现有网络:
    virsh net-destroy network
    
  2. 重新定义网络:
    virsh net-define network.xml
    
  3. 启动网络:
    virsh net-start network
    
  4. 验证配置是否保留:
    virsh net-dumpxml network
    

执行后应能看到<dnsmasq:options>段已被正确保留。

补充说明

Libvirt 6.0.0版本完全支持dnsmasq命名空间扩展,配置生效后,通配符*.px2-test-oc.network会被解析到px2-test-oc.network对应的IP地址。

内容的提问来源于stack exchange,提问作者Px2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 20:47:08