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단계입니다.

기본적으로 NAT 기반 로컬 브리지인 네트워크만 있으므로 default네트워크를 정의해야 합니다. 어떤 브리지, 전달 모드 등이 사용되는지 제어하고 libvirt가 예를 들어 dhcp를 생성하도록 가정하는 경우(로컬 기본 브리지에서 수행하는 것처럼).

엄청난 자원이 있다넷플랜 예시아직 문서화되지 않은 사례가 발견되면서 여전히 연장되었습니다. 그러나 귀하의 경우는 다소 일반적이며 거기에는 다음과 같은 libvirt 네트워크 xml의 최소한의 조각도 있습니다.

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

위의 내용을 사용하고 필요에 맞게 조정하면 virsh net-define <xmlfilename>libvirt가 네트워크에 대해 알 수 있습니다. 그런 다음 virsh net-listvirt-manager 및 기타 도구에서 볼 수 있습니다 .

관련 정보