Libvirt 默认网络配置详解:Dnsmasq 与 virNetworkCreateXML()

本篇文章将解析 libvirt 默认网络配置文件 default.conf,并阐述如何使用 libvirt SDK 创建默认网络。

default.conf 文件解析

当您安装 libvirt 后,会在 /var/lib/libvirt/dnsmasq/ 目录下找到一个名为 default.conf 的文件,该文件是 dnsmasq 的配置文件,用于管理 libvirt 默认网络的 DHCP 和 DNS 服务。

以下是 default.conf 文件内容示例:

#WARNING:  THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
#OVERWRITTEN AND LOST.  Changes to this configuration should be made using:
#    virsh net-edit default
# or other application using the libvirt API.
#
## dnsmasq conf file created by libvirt
strict-order
pid-file=/run/libvirt/network/default.pid
except-interface=lo
bind-dynamic
interface=virbr0
dhcp-range=192.168.122.2,192.168.122.254,255.255.255.0
dhcp-no-override
dhcp-authoritative
dhcp-lease-max=253
dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile
addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts

重要提示: 不要直接修改 default.conf 文件,因为您的更改可能会在下次 libvirt 操作时被覆盖。

您可以使用 virsh net-edit default 命令或 libvirt API 来修改默认网络配置。

使用 virNetworkCreateXML() 创建默认网络

在 libvirt SDK 中,您可以使用 virNetworkCreateXML() 方法创建默认网络。此方法接受一个 XML 描述文件作为参数,您可以在其中指定网络配置,包括 DHCP 范围、接口等。

以下是一个 XML 描述文件示例:

<network>
  <name>default</name>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

将以上 XML 内容保存到文件,例如 default_network.xml,然后使用以下代码创建默认网络:

import libvirt

conn = libvirt.open('qemu:///system')
network = conn.networkCreateXML(open('default_network.xml').read())
network.autostart(True)
network.create()
conn.close()

这段代码将:

  1. 连接到 libvirt
  2. 读取 XML 描述文件
  3. 使用 virNetworkCreateXML() 创建网络
  4. 设置网络自动启动
  5. 启动网络

总结

本文介绍了 libvirt 默认网络配置 default.conf 文件的内容和作用,并演示了如何使用 virNetworkCreateXML() 方法创建默认网络。了解这些内容将有助于您更好地管理 libvirt 网络环境。

Libvirt 默认网络配置详解:Dnsmasq 与 virNetworkCreateXML()

原文地址: https://www.cveoy.top/t/topic/fxQF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录