我在 libvirt 上玩得很開心。我刪除了預設的 NAT 網絡,並嘗試為虛擬機器添加橋接器。根據 libvirt 的 wiki 和網路XML格式|使用現有的主橋,我有以下內容:
<network>
<name>host-bridge</name>
<forward mode="bridge"/>
<bridge name="br0"/>
</network>
我將文件另存為host-bridge.xml
。我把它複製到兩個/etc/libvirt/
和/usr/share/libvirt/schemas
。然而,無論我嘗試什麼,我總是得到:
$ sudo virsh net-create host-bridge
error: Failed to open file 'host-bridge': No such file or directory
$ sudo virsh net-create host-bridge.xml
error: Failed to open file 'host-bridge.xml': No such file or directory
該計算機正在執行 Ubuntu Server 14.03 LTS。根據brctl
, 橋br0
確實存在,而且它的使用eth1
。
libvirt 的網路設定檔應該保存在哪裡?
答案1
在我的基於(CentOS)的系統上,它們位於/var/lib/libvirt/network
(這對於libvirt.org維基百科的答案)但是烏班圖維基建議/etc/libvirt/qemu
(在 libvirt guest 配置部分)
答案2
為了添加@davidgo的答案......我執行了:
sudo mv /opt/libvirt/host-bridge.xml /etc/libvirt/qemu/networks
一旦網路檔案位於您想要的位置:
$ sudo cat /etc/libvirt/qemu/networks/host-bridge.xml
<network>
<name>host-bridge</name>
<uuid>88c0529e-4813-43fa-af27-01af164249ed</uuid>
<forward mode='bridge'/>
<bridge name='br0'/>
</network>
您仍然需要 (1) 定義它或 (2) 創建它實際上在虛擬機器中使用它。如果您希望它是持久的,那麼您需要定義它,因為它是永久的(創建是暫時的):
virsh net-define /etc/libvirt/qemu/networks/host-bridge.xml
定義網路後,將新增 UUID,然後您可以在虛擬機器的 XML 檔案中引用它:
sudo grep -R "host-bridge" /etc/libvirt/
/etc/libvirt/qemu/Debian_7_x86.xml: <source network='host-bridge'/>
/etc/libvirt/qemu/Debian_7_x64.xml: <source network='host-bridge'/>
/etc/libvirt/qemu/Debian_8_x86.xml: <source network='host-bridge'/>
/etc/libvirt/qemu/Debian_8_x32.xml: <source network='host-bridge'/>
/etc/libvirt/qemu/Debian_8_x64.xml: <source network='host-bridge'/>
...
它也將出現在networks/autostart
資料夾:
sudo grep -R "host-bridge" /etc/libvirt/
...
/etc/libvirt/qemu/networks/autostart/host-bridge.xml: <name>host-bridge</name>
最後,您應該會看到類似以下內容:
$ virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
host-bridge inactive yes yes
答案3
對我有用的只是將它放在我運行sudo virsh net-create host-bridge
的同一目錄中。