KVM: 特定のブリッジに VM を追加する方法

KVM: 特定のブリッジに VM を追加する方法

ブリッジ経由で作成した VLAN に VM を追加しようとしています。4 つの NIC を備えたサーバーがあります。2 つ (eno1 と eno2) は 1Gig 管理 NIC で、他の 2 つ (enp1s0f0 と enp1s0f1) は 10Gig 転送 NIC です。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'

私の質問は、他のブリッジを VM のオプションとして表示するにはどうすればよいかということです。

答え1

libvirt (および virt-manager、virt-install など) は、システム上の実際のブリッジをプローブ/認識しません。netplan を介して VLAN とブリッジをすでに定義しています。これは素晴らしいことであり、正しいステップ 1 です。

デフォルトでは、defaultNAT ベースのローカル ブリッジであるネットワークのみが存在するため、ネットワークを定義する必要があります。その中で、使用するブリッジ、転送モードなどを制御し、libvirt が (ローカルのデフォルト ブリッジで行われるように) たとえば DHCP を生成するかどうかも制御します。

素晴らしい資源がありますネットプランの例これらはまだ拡張されており、まだ文書化されていないケースが見つかります。しかし、あなたのケースはかなり一般的であり、そこには次のような libvirt ネットワーク xml の最小限のスニペットもあります。

<network>
  <name>vlan66</name>
  <bridge name='br66'/>
  <forward mode="bridge"/>
</network>

上記を使用して、ニーズに合わせて調整すると、virsh net-define <xmlfilename>libvirt にネットワークを認識させることができます。その後、virsh net-listvirt-manager やその他のツールでそれらを確認できるようになります。

関連情報