%20meine%20Bridge%20(brctl)%3F.png)
Ich habe eine Brücke eingerichtet, die br0
an zwei Schnittstellen „angeschlossen“ ist:
eth0
, meine physische Schnittstelle ist mit dem realen LAN verbunden,vnet0
, eine virtuelle KVM-Schnittstelle (verbunden mit einer Windows-VM).
Und ich habe diese einzelne Firewall-Regel in der Weiterleitungskette:
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-Rechners. Aus Sicht des Hosts „besitzt“ sie keine IP. Die Windows-VM hat eine statische IP-Konfiguration eth0
.vnet0
Wenn ich meine iptables
Regel ändere ACCEPT
(oder sogar eine noch restriktivere verwende iptables -A FORWARD -o br0 -j ACCEPT
), funktioniert alles einwandfrei! (d. h. ich kann von der VM aus jeden LAN-Computer anpingen und auch umgekehrt).
Alle Kerneloptionen zur IP-Weiterleitung 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 eth0
und implizieren vnet0
. Dennoch sieht es so aus, als ob das Zulassen von FORWARD-Verkehr mit -o br0
„funktioniert“ (ich habe das allerdings nicht sehr sorgfältig geprüft).
Antwort1
DerKommentarvon Stéphane Chazelas gibt den Hinweis auf die Antwort.
EntsprechendBridge-nf – Häufig gestellte Fragenbridge-nf ermöglicht es iptables, ip6tables oder arptables, überbrückten Datenverkehr anzuzeigen.
Ab Kernel-Version 2.6.1 gibt es fünfSysctl-Einträgefür die Bridge-NF-Verhaltenskontrolle:
bridge-nf-call-arptables
- überbrückten ARP-Verkehr an die FORWARD-Kette der Arptables weiterleiten.bridge-nf-call-iptables
- überbrückten IPv4-Verkehr an die Ketten von iptables weiterleiten.bridge-nf-call-ip6tables
- überbrückten IPv6-Verkehr an die Ketten von ip6tables weiterleiten.bridge-nf-filter-vlan-tagged
- Überbrückten, mit VLAN markierten ARP/IP-Verkehr an Arptables/Iptables weiterleiten.net.bridge.bridge-nf-filter-pppoe-tagged
- überbrückten, mit PPPoE markierten IP/IPv6-Verkehr an {ip,ip6}-Tabellen weiterleiten
Sie können die Blockierung der Netfilter-Firewall wie folgt deaktivieren:
# sysctl -w net.bridge.bridge-nf-call-iptables=0
# sysctl -w net.bridge.bridge-nf-call-ip6tables=0