Ubuntu Server 20에서 QEMU-KVM 및 Netplan을 사용하여 브리지 라우팅을 설정하는 방법은 무엇입니까?

Ubuntu Server 20에서 QEMU-KVM 및 Netplan을 사용하여 브리지 라우팅을 설정하는 방법은 무엇입니까?

여기 스택 교환 사용자가 처음이므로 어떤 식으로든 프로토콜을 위반하는 경우 미리 사과드립니다. 그리고 아직은 리눅스와 라우팅에 대해 초보라서 무지한점 양해부탁드립니다.

기본적인 문제는 qemu-kvm, libvirt 및 netplan을 함께 작동시킬 수 없다는 것입니다. 나에게는 그것들이 서로의 네트워크 구성을 깨뜨리는 것처럼 보이지만, 나는 그것들을 올바르게 사용하고 있지 않은지 확인하기 위해 질문을 제기하고 싶었습니다.

우분투 서버 20.04.3 LTS를 설치한 후 네트워크 인터페이스와 경로는 다음과 같습니다("ip 라우팅"을 통해).

여기에 이미지 설명을 입력하세요.

qemu-kvm, libvirt-daemon-system, libvirt-clients 등을 성공적으로 설치했습니다. 그러면 시스템에 가상 브리지와 가상 인터페이스가 추가됩니다.

여기에 이미지 설명을 입력하세요.

다음으로 /etc/netplan/<default.yaml>에서 netplan 구성 파일을 편집합니다. 이것은 내 파일입니다:

여기에 이미지 설명을 입력하세요.

sudo netplangenerate를 통해 성공적으로 컴파일되고 sudo netplan try를 통해 "성공적으로" 적용되고 확인이 입력되지만... 아무것도 없습니다. 네트워크 인터페이스를 보면 다음이 표시됩니다.

여기에 이미지 설명을 입력하세요.

기존 IP 주소는 모두 손실됩니다. 브리지가 생성되지 않았고 인터페이스가 연결되지 않았습니다.

경로를 살펴보니 다음과 같습니다.

여기에 이미지 설명을 입력하세요.

가상교량으로 가는 경로를 제외한 모든 경로가 사라졌습니다. 인터페이스 상태를 되돌아보면 작동 중인 링크 레이어가 있는 것처럼 보이지만 작동하는 라우팅은 없습니다.

네트워크 계획을 적용하면 내 경로가 사라지는 이유는 무엇입니까?

내가 이 일을 제대로 하고 있는 걸까? 아니면 QEMU-KVM, libvirt 및 netplan 간의 네트워크 인터페이스 및 IP 라우팅 생성/관리와 관련된 현재 문제를 아는 사람이 있습니까?

참고로, 재설치와 다른 설치 순서를 시도하고 nic#2에서 브리지를 성공적으로 생성하고 해결한 다음 qemu-kvm 및 libvirt를 설치했습니다. 그 결과 netplan으로 구현한 브리지가 사라지고 위의 그림 4와 같이 kvm 가상 인터페이스와 브리지가 나타나며 netplan을 적용할 수는 있지만 눈에 띄는 변경 사항은 없으며 모든 경로가 손실됩니다.

도와주셔서 감사합니다!

업데이트: 이제 시작 스크립트를 만들어 이 문제를 해결했습니다. Netplan을 통해 브리지를 인스턴스화할 수 없지만 "ip link"를 사용하여 미리 수동으로 생성하면 작동하는 것 같습니다.

sudo ip link add br0 type bridge
sudo ip link set eno1 up
sudo ip link set eno2 up
sudo ip link set eno2 master br0
sudo ip link set br0 up
sudo netplan apply
sudo dhclient -v -r

서비스 파일은 다음과 같습니다.

[Unit]
After=network.service
[Service]
ExecStart=/bin/bash /home/<username>/Scripts/netplanApply.sh
[Install]
WantedBy=default.target

또한 새로운 netplan config.yaml 파일도 있습니다.

network:
    ethernets:
        eno1:
            dhcp4: true
            dhcp6: false
        eno2:
            dhcp4: false
            dhcp6: false
    bridges:
        br0:
            interfaces: [eno2]
            macaddress: 11:41:14:11:41:14
            dhcp4: true
            dhcp6: false
    version: 2
    renderer: networkd

시작 시 자세한 출력을 보면 "네트워크 서비스" 서비스가 시작하지 못한 것(빨간색)을 알 수 있지만 구별하기는 어렵습니다. 나중에 검사하기 위해 시작 시 자세한 출력을 파일로 덤프하는 방법이 있습니까? qemu-kvm 또는 libvirt 설치가 기본 네트워크 구성을 손상시키거나 시작 시 netplan 구현을 어떻게든 방해하는 것처럼 느껴집니다.

관련 정보