Ich habe eine Brücke eingerichtet, die br0
an zwei Schnittstellen "angeschlossen" ist:
eth0
, meine physische Schnittstelle mit dem realen LAN verbunden,vnet0
, eine virtuelle KVM-Schnittstelle (verbunden mit einer Windows-VM).
Und ich habe diese einzige Firewall-Regel in der Vorwärtskette:
iptables -A FORWARD -j REJECT
Jetzt funktioniert nur noch der Ping von der VM zum Host.
Die br0
Schnittstelle besitzt die IP-Adresse meines Host-Computers. eth0
und vnet0
aus Sicht des Hosts keine IP "besitzen". Die Windows-VM verfügt über eine statische IP-Konfiguration.
Wenn Sie meine iptables
Regel in ändern ACCEPT
(oder sogar eine restriktivere verwenden iptables -A FORWARD -o br0 -j ACCEPT
), funktioniert alles einwandfrei! (dh ich kann jeden LAN-Computer von der VM aus anpingen und umgekehrt auch).
Alle IP-Weiterleitungskerneloptionen sind deaktiviert (wie net.ipv4.ip_forward = 0
).
Wie kann die Netfilter-Firewall etwas blockieren, das nicht einmal aktiviert ist?
Darüber hinaus sollte der VM-LAN-Verkehr nur implizieren eth0
und vnet0
. Es sieht jedoch so aus, als würde FORWARD-Verkehr mit -o br0
"Works" zugelassen (ich habe dies jedoch nicht sehr sorgfältig überprüft).
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