Vlan

libvirt:使用啟用 dhcp 的 openvswitch 創建橋接網路

  • June 20, 2019

我正在嘗試使用 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'

我的網路知識有限,所以我不確定我想要做的事情是否可行。

該模式本質上支持兩類設置。託管設置基於 libvirt 自己創建的傳統橋接設備,並為 DNS/DHCP 服務執行 dnsmasq。非託管設置基於傳統網橋、openvswitch 或 macvtap 或其他幾個選項。在後一種情況下,libvirt 實際上並沒有自己創建任何東西——它只是將 libvirt 與外部創建的網路基礎設施相關聯的一種方式。因此,libvirt 也不會為這些執行 dnsmasq,因此它拒絕您設置 IP 地址/dhcp 範圍的請求。

引用自:https://serverfault.com/questions/972135