Ich habe eine Brücke eingerichtet, die br0an 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 br0Schnittstelle besitzt die IP-Adresse meines Host-Computers. eth0und vnet0aus Sicht des Hosts keine IP "besitzen". Die Windows-VM verfügt über eine statische IP-Konfiguration.
Wenn Sie meine iptablesRegel 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 eth0und 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