QEMU 네트워크 통신이 손상되었습니다

QEMU 네트워크 통신이 손상되었습니다

pacman가상 머신( ) 내에서 패키지 관리자를 사용하면 무작위로 다음과 같은 손상된 패키지가 제공됩니다.

error: <package>: signature from "<whomever>" is invalid
:: File /mnt/var/cache/pacman/pkg/<package>.pkg.tar.xz is corrupted (invalid or corrupted packgage (PGP signature))

나는 다음과 같은 설정을 가지고 있습니다 :

  • Arch Linux 호스트(커널 5.3.11.1)
  • 그런 다음 UFW 방화벽을 사용하십시오 ( 0.36)
  • tun0그런 다음 OpenVPN( )에서 생성된 네트워크 인터페이스를 통해서만 연결을 허용하도록 구성합니다 2.4.8.

네트워크 연결은 최소 5년 동안 콘솔의 모든 측면에서 잘 작동했습니다. 4.1.0다음 옵션을 사용하여 QEMU(QEMU)를 사용하는 Arch Linux 인 게스트 설정을 시도했습니다 .

qemu-system-x86_64 \
    -name 'Arch Linux' \
    -display vnc=:0 \
    -m size=8G \
    -enable-kvm \
    -cpu host \
    -smp cores=2,threads=2 \
    -k en-us \
    -boot order=d \
    -cdrom "<iso>" \
    -drive "if=pflash,format=raw,readonly,file=<file>" \
    -drive "if=pflash,format=raw,file=<file>" \
    -drive "if=virtio,format=qcow2,file=<file>"

-nic user내가 이해한 바에 따르면 추가 항목을 지정하지 않고 게스트가 인터넷에 연결되어 있으면 기본값으로 설정됩니다.

가상 하드 드라이브가 문제의 원인이길 바라며 전체 시스템을 다양한 물리적 위치(SSD, HDD)에 백만 번 재설치해 보았으나 아무것도 해결되지 않았습니다. 완전성을 위해 가상 드라이브는 다음과 같이 생성됩니다.

qemu-img create -f qcow2 "<file>" 16G

때로는 충분히 시도하고 운이 좋아서 컨테이너를 다운로드할 때 손상된 데이터에 대해 동일한 무작위 오류를 제공하는 docker게스트 내부 설치 작업으로 끝나게 됩니다. 이로 인해 네트워크 구성 관련 오류라고 믿게 됩니다. 나는 단지 구성이 잘못되었기를 바라면서 QEMU ( 및 ) docker위에 그것을 사용해 보았 으나 다시 같은 문제에 부딪혔습니다.libvirtvirshvirt-manager

어느 시점에서 내 설정은 다음과 같은 네트워크 구성을 사용했습니다.

# ...
-net "user,hostfwd=tcp::2222-:22,hostfwd=tcp::8000-:8000,hostfwd=tcp::4200-:4200,hostfwd=tcp::9222-:9222,smb=<path>" \
-net nic,model=virtio \
# ...

하지만 그것도 더 이상 작동하지 않습니다. 이쯤 되면 내가 뭘 잘못하고 있는 건지 너무 혼란스럽네요...

답변1

이 문제의 원인이 정확히 무엇인지 말씀드릴 수는 없지만 몇 가지 문제 해결 방법을 알려드릴 수는 있습니다.

네트워크에 문제가 있다고 의심되는지 확인할 수 있습니다 /proc/net/snmp. 원본이 좀 헷갈려서 추천합니다 </proc/net/snmp column -t | less -S. 이름에 해당 항목이 포함된 열을 봅니다 CsumErrors.

손상이 디스크 수준에서 발생한 것으로 의심되는 경우(제가 의심한 것) 거기에서 Btrfs를 사용하면 확실히 찾을 수 있습니다. 이는 체크섬 FS를 많이 사용하는 Linux의 유일한 경량 범용 목적이기 때문입니다.

— 게스트 VM, 특히 Btrfs를 사용할 때 Qcow2에서 몇 가지 문제를 발견했습니다 fstrim. ;-)

답변2

KVM 가상 머신 관리자를 사용하여 VM을 시작하고 있습니까? 그렇다면 GUI의 장치 구성 파일로 이동하여 nic를 virtio로 확인하고 변경할 수 있습니다. 다른 nic 항목이 있으면 제거하십시오.

관련 정보