KVM: как добавить vm к конкретному мосту

Я пытаюсь добавить 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'

Наверное, мой вопрос: как мне заставить другие мосты отображаться в качестве параметров для виртуальной машины?

1
задан 22 October 2019 в 01:58

1 ответ

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-менеджере и других инструментах.

1
ответ дан 1 December 2019 в 17:25

Другие вопросы по тегам:

Похожие вопросы: