libvirt:使用启用了 dhcp 的 openvswitch 创建桥接网络

libvirt:使用启用了 dhcp 的 openvswitch 创建桥接网络

我正在尝试使用 libvirt + dsnmasq + openvswitch 创建启用了 dhcp 的桥接网络。我使用以下 XML 创建了一个 libvirt 网络:

<network connections='1'>
  <name>ovs-net</name>
  <uuid>fffd6fea-a753-4fca-b684-76fb24866ba3</uuid>
  <forward mode='bridge'/>
  <bridge name='ovsbr0'/>
  <vlan>
    <tag id='1298'/>
  </vlan>
  <virtualport type='openvswitch'/>
</network>

我可以使用此网络创建访客,例如:

<domain>
...
    <interface type='network'>
        <mac address='52:54:00:a6:3b:48'/>
        <source network='ovs-net'/>
        <model type='virtio'/>
        <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0001'/>
    </interface>
</domain>

我可以在客户机上手动配置 IP 地址并发送入站/出站流量。当我编辑 ovs-net xml 以包含 IP 地址和 DHCP 配置时,它会失败,如下所示:

virsh net-edit --network ovs-net 

<network connections='1'>
<name>ovs-net</name>
...
<ip address='10.20.101.121' netmask='255.255.255.0'>
    <dhcp>
      <range start='10.20.101.121' end='10.20.101.130'/>
      <host mac='52:54:00:7a:6d:e7' name='test.com' ip='10.20.101.120'/>
    </dhcp>
  </ip>
</network>

error: unsupported configuration: Unsupported <ip> element in network ovs-net with forward mode='bridge'

我的网络知识有限,所以我不确定我尝试做的事情是否可行。

答案1

该模式本质上支持两类设置。托管设置基于 libvirt 自行创建的传统桥接设备,并运行 dnsmasq 以提供 DNS/DHCP 服务。非托管设置基于传统桥接、openvswitch 或 macvtap 或其他几个选项。在后一种情况下,libvirt 实际上不会自行创建任何东西 - 它只是一种将 libvirt 与外部创建的网络基础设施相关联的方式。因此,libvirt 也不会为这些运行 dnsmasq,因此它拒绝您设置 IP 地址/dhcp 范围的请求。

相关内容