Я пытаюсь добавить vm к vlan, который я создал через мост. У меня есть сервер с 4 сетевыми картами. 2 (eno1 и eno2) являются сетевыми сетевыми картами 1Gig, а остальные 2 (enp1s0f0 и enp1s0f1) являются сетевыми сетевыми картами 10Gig. Вот моя конфигурация сети через .yaml в netplan:
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
Когда я вхожу в этот QEMU / KVM через virt-manager я получаю только опцию 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'
Наверное, мой вопрос: как мне заставить другие мосты отображаться в качестве параметров для виртуальной машины?
libvirt (и таким образом virt-менеджер, virt-установка...) не зондируют/знают фактические мосты в системе. Вы уже определили свои VLAN и мосты через netplan, который является большим и корректный шаг № 1.
По умолчанию только существует default
сеть, которая является NAT, основывала локальный мост, необходимо определить сеть. В этом Вы управляете тем, какие мосты, режимы пересылки и так далее используются - и если бы libvirt, как предполагается, мечет икру, например, dhcp на нем (как он сделал бы на локальном мосту по умолчанию).
Существует большой ресурс netplan примеров, которые расширяются, все еще пока еще недокументированные случаи найдены. Но Ваш падеж довольно общ и там, он также имеет минимальный отрывок этого libvirt сеть xml как:
<network>
<name>vlan66</name>
<bridge name='br66'/>
<forward mode="bridge"/>
</network>
Используя вышеупомянутое и адаптацию его к Вашим потребностям Вы можете затем virsh net-define <xmlfilename>
который заставит libvirt знать о сети. Вы затем видите их в virsh net-list
но в virt-менеджере и других инструментах.