KVM은 자체 netfilter 규칙을 어떻게 설정합니까?

KVM은 자체 netfilter 규칙을 어떻게 설정합니까?

Centos 6.4에서 KVM VM 작업을 해왔지만 VM에 인터넷이 연결되어 있지 않아 이상한 점을 발견했습니다.

머신을 시작한 후 iptables는 FORWARD 체인에 규칙을 적용하여 트래픽이 가상 머신을 통과하도록 허용하며 모든 것이 정상입니다. 그러나 실행하면 (모든 전달 거부의 기본 설정)에서 구성 규칙을 가져오는 service iptables restart것처럼 보이 /etc/sysconfig/iptables므로 물리적 호스트에서 방화벽을 완전히 제거하거나 재부팅하여 추가하도록 강등되었습니다. 전달 규칙이 다시 작동합니다.

편집하다:
사실 방화벽 규칙을 직접 수정하여 이를 허용할 수도 있지만 이것이 이 질문의 요점은 아닙니다. 나는 질문 # 1에 대해 더 관심이 있습니다.

내 질문은 다음과 같습니다

  1. 이러한 FORWARD 규칙은 언제(또는 어떤 메커니즘에 의해) 추가됩니까?
  2. 컴퓨터를 다시 시작하지 않고 FORWARD 규칙을 복원하려면 어떻게 해야 합니까?

솔직히 말해서, 나는 이 문제를 어디서부터 찾아야 할지조차 모릅니다. 내가 찾은이 페이지/etc/sysctl.confnetfilter가 브리지 연결 트래픽을 무시하게 만드는 다음 변수를 수정하라는 메시지가 표시됩니다 .

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

문제는 내 것이 sysctl.conf이런 식으로 설정되어 있는데 netfilter가 여전히 제 역할을 하면서 가상 머신의 모든 것을 차단한다는 것입니다.

답변1

KVM 자체는 VM을 실행하는 것 외에는 아무 작업도 수행하지 않습니다. iptables 규칙은 libvirt(또는 하드코어 및 수동 작업을 수행하는 경우 qemu-ifup 스크립트)에 의해 만들어집니다.

그럼에도 불구하고 iptables의 복잡성을 피하려면 NAT 구성에서 가상 머신을 사용하지 말고 대신 브리지나 OVS를 사용하십시오.

OVS 구성

브리지 네트워크

관련 정보