libvirt nwfilter가 다른 VM의 네트워킹을 중단함

libvirt nwfilter가 다른 VM의 네트워킹을 중단함

방금 KVM을 사용하여 VirtualBox에서 Virt Manager로 전환했는데 이 전환에 매우 만족합니다(처음 동기는 libvirt를 위해 Virtualbox와 바닐라 Proxmox를 모두 버리고 데스크톱 VM과 서버 VM에 동일한 가상화를 사용하는 것이었습니다). 즉, 저는 제가 무엇을 하고 있는지 잘 모르므로 도움을 좀 받을 수 있습니다.

Debian 호스트에서 Debian VM을 실행합니다. 호스트(/etc/network/interfaces)에 간단한 브리지를 정의하고 모든 VM을 여기에 배치했습니다. 호스트는 UFW 기본 구성을 실행합니다. nwfilters를 사용하기 전까지는 모든 것이 행복합니다.

필터(virsh nwfilter-define)를 정의하고 이를 VM 'my-vm1'(my-vm1의 네트워크 장치에 있는 reffilter filter='my-vm1-filter'라고도 함)에 추가했습니다.'my-vm1'의 트래픽은 예상대로 필터링되지만 다른 VM의 연결은 성가시게 끊어집니다.:

  • 다른 VM을 재부팅해도 도움이 되지 않습니다. DHCP를 수행할 수 없는 것 같습니다.
  • my-vm1을 중지해도 도움이 되지 않습니다
  • 다른 VM에서 네트워킹을 복원하려면 호스트를 재부팅하고 my-vm1을 시작하지 않는 것이 필요합니다.
  • my-vm1을 시작한 후 iptables -L에 대한 변경 사항을 이해하려고 했는데 혼란스럽습니다. 하지만 저는 애초에 iptables에 대해 아무것도 모릅니다.

첫 번째 질문: 제가 비참하게 놓쳤던 nwfilters 사용에 대한 잘 알려진 문제나 단계 또는 제한 사항이 있습니까?

그렇지 않은 경우 다음에 무엇을 시도할지 제안해 주세요. 내 문제와 관련된 새로운 것을 배우게 되어 기쁩니다.

답변1

누군가 여기에 도착하면 다음과 같은 진전이 있습니다.

  • 나는 nft가 오래된 게시물에서 참조하는 iptables보다 더 나은 그림을 제공할 것이라는 것을 깨달았습니다. 내가 이해한 바로는 libvirt는 요즘 nftables를 사용합니다.
  • ufw는 libvirt와 잘 작동하지 않는 것으로 나타났습니다. 이를 비활성화하면 문제가 사라지고 nwfilter가 없는 다른 VM은 제대로 작동합니다.
  • 방화벽이 libvirt와 더 잘 작동할 수 있다는 내용을 읽어 보았지만 시도해 보지는 않았습니다.

편집: 나와 같은 멍청한 놈들에게는 최소한 내 간단한 사용 사례에서는 Firewalld가 실제로 훨씬 더 잘 작동합니다.

  • 호스트 브리지를 'libvirt' 영역에 넣습니다.
  • 해당 영역의 서비스, 포트 등은 호스트 수신 트래픽에만 적용됩니다(자체 nwfilter에 의존할 수 있는 VM은 해당되지 않음).
  • libvirt 영역의 대상은 '수락'(삭제 또는 거부가 아님) 상태를 유지해야 합니다. 다소 직관에 반하여 서비스/포트에 의해 처리되지 않는 패킷은 호스트에서 허용되지 않지만 VM 트래픽에는 '수락'이 필요합니다.

관련 정보