我正在嘗試將虛擬機器新增至我透過網橋建立的 VLAN。我有一台有 4 個網路卡的伺服器。 2 個(eno1 和 eno2)是 1Gig 管理網卡,另外 2 個(enp1s0f0 和 enp1s0f1)是 10Gig 轉發網卡。這是我透過 netplan 中的 .yaml 進行的網路設定:
network:
version: 2
renderer: networkd
ethernets:
eno1: {}
eno2: {}
enp1s0f0: {}
enp1s0f1: {}
bonds:
bond_10G:
interfaces:
- enp1s0f0
- enp1s0f1
parameters:
mode: balance-rr
bond_mgmt:
addresses:
- 192.168.21.228/24
gateway4: 192.168.21.1
interfaces:
- eno1
- eno2
nameservers:
addresses:
- 192.168.91.5
- 192.168.91.6
search:
- blah.net
parameters:
mode: active-backup
vlans:
vlan66:
dhcp4: no
dhcp6: no
accept-ra: no
id: 66
link: bond_10G
vlan69:
dhcp4: no
dhcp6: no
accept-ra: no
id: 69
link: bond_10G
vlan2232:
dhcp4: no
dhcp6: no
accept-ra: no
id: 2232
link: bond_10G
bridges:
br66:
dhcp4: no
dhcp6: no
interfaces: [ vlan66 ]
br69:
dhcp4: no
dhcp6: no
interfaces: [ vlan69 ]
br2232:
dhcp4: no
dhcp6: no
interfaces: [ vlan2232 ]
當我執行以下操作時,我可以看到它們全部brctl show
:
$ brctl show
bridge name bridge id STP enabled interfaces
br2232 8000.9e3e2f786260 no vlan2232
br66 8000.16545d040c3a no vlan66
br69 8000.92c5912a358b no vlan69
virbr0 8000.525400e3bdfa yes virbr0-nic
當我透過 virt-manager 登入此 QEMU/KVM 時,我只獲得 virbr0 選項,其他橋接器未列為新增它們的選項。有沒有辦法通過virsh
或我只是在 virt-manager 中做錯了?
我也嘗試通過添加它,virt-install
但它沒有落入正確的 VLAN:
sudo virt-install \
--name deb9-vm \
--ram 2048 \
--vcpus 2 \
--disk path=/var/lib/libvirt/images/deb9-vm.qcow2,size=20 \
--os-type linux \
--os-variant debian9 \
--network bridge=br66 \
--graphics none \
--console pty,target_type=serial \
--location 'http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/' \
--extra-args 'console=ttyS0,115200n8 serial'
我想我的問題是如何讓其他橋顯示為虛擬機器的選項?
答案1
libvirt(以及 virt-manager、virt-install 等)不會偵測/了解系統上的實際橋接。您已經透過 netplan 定義了 VLAN 和網橋,這很好,也是正確的步驟 #1。
預設只有default
基於 NAT 的本地橋接網絡,您需要定義一個網絡。您可以控制使用哪些橋接器、轉送模式等 - 以及 libvirt 是否應該在其上產生 dhcp(就像在本機預設網橋上那樣)。
這裡有豐富的資源網路規劃範例尚未發現未記錄的案件。但你的情況相當常見,其中還有 libvirt 網路 xml 的最小片段,例如:
<network>
<name>vlan66</name>
<bridge name='br66'/>
<forward mode="bridge"/>
</network>
使用上述內容並根據您的需求進行調整,然後您就可以virsh net-define <xmlfilename>
使 libvirt 了解網路。然後您可以在virsh net-list
virt-manager 和其他工具中看到它們。