br0
두 개의 인터페이스에 "연결된" 브리지를 설정했습니다 .
eth0
실제 인터페이스는 실제 LAN에 연결되어 있습니다.vnet0
, KVM 가상 인터페이스 (Windows VM에 연결됨).
그리고 순방향 체인 에이 단일 방화벽 규칙이 있습니다.
iptables -A FORWARD -j REJECT
이제 작동하는 유일한 Ping은 VM에서 호스트까지입니다.
br0
인터페이스 내 호스트 시스템의 IP 주소를 소유하고있다. eth0
및 vnet0
보기의 호스트의 관점에서, 어떤 IP를 "소유"하지 않습니다. Windows VM에는 고정 IP 구성이 있습니다.
내 iptables
규칙을로 변경 ACCEPT
하거나 더 제한적으로 사용하면 iptables -A FORWARD -o br0 -j ACCEPT
모든 것이 잘 작동합니다! (즉, VM에서 LAN 시스템을 핑 (ping) 할 수 있으며 다른 방법으로도 핑할 수 있음)
모든 IP 전달 커널 옵션이 비활성화됩니다 (예 net.ipv4.ip_forward = 0
:).
그렇다면 넷 필터 방화벽은 어떻게 활성화되지 않은 것을 차단할 수 있습니까?
또한 VM-LAN 트래픽은 eth0
및을 암시해야합니다 vnet0
. 그러나 -o br0
"works"로 FORWARD 트래픽을 허용하는 것처럼 보입니다 (매우 신중하게 확인하지는 않았습니다).
sysctl -a | grep bridge-nf
net.bridge.bridge-nf-call-arptables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-filter-vlan-tagged = 0
net.bridge.bridge-nf-filter-pppoe-tagged = 0