Założyłem most br0
„podłączony” do dwóch interfejsów:
eth0
, mój fizyczny interfejs podłączony do prawdziwej sieci LAN,vnet0
, wirtualny interfejs KVM (podłączony do maszyny wirtualnej z systemem Windows).
I mam jedną regułę zapory ogniowej w łańcuchu przesyłania dalej:
iptables -A FORWARD -j REJECT
Teraz jedynym działającym pingiem jest maszyna wirtualna do hosta.
br0
Interfejs posiada adres IP mojego komputera hosta. eth0
i vnet0
nie „posiadają” żadnych adresów IP z punktu widzenia hosta. Maszyna wirtualna z systemem Windows ma konfigurację statycznego adresu IP.
Jeśli zmienisz moją iptables
regułę na ACCEPT
(lub nawet zastosujesz bardziej restrykcyjne iptables -A FORWARD -o br0 -j ACCEPT
), wszystko działa dobrze! (tzn. mogę pingować dowolną maszynę LAN z maszyny wirtualnej i odwrotnie).
Wszystkie opcje jądra przekierowującego IP są wyłączone (jak net.ipv4.ip_forward = 0
).
Jak więc zapora sieciowa filtru sieciowego może blokować coś, co nawet nie jest włączone?
Ponadto ruch VM - LAN powinien jedynie sugerować eth0
i vnet0
. Wygląda jednak na to, że zezwala się na ruch DO PRZODU z -o br0
„działaniami” (nie sprawdziłem jednak bardzo dokładnie).
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
Odpowiedzi:
Komentarz od Stéphane Chazelas stanowi wskazówkę do odpowiedzi.
Według często zadawanych pytań Bridge-nf Bridge-nf umożliwia iptables, ip6tables lub arptables, aby zobaczyć zmostkowany ruch.
Od wersji jądra 2.6.1 dostępnych jest pięć wpisów sysctl do kontroli behawioralnej most-nf:
bridge-nf-call-arptables
- przekazywać zmostkowany ruch ARP do łańcucha FORWARD firmy arptables.bridge-nf-call-iptables
- przekazywać zmostkowany ruch IPv4 do łańcuchów iptables.bridge-nf-call-ip6tables
- przekazywać zmostkowany ruch IPv6 do łańcuchów ip6tables.bridge-nf-filter-vlan-tagged
- przekazywać zmostkowany ruch ARP / IP ze znacznikiem vlan do arptables / iptables.net.bridge.bridge-nf-filter-pppoe-tagged
- przekazywać zmostkowany ruch IP / IPv6 ze znacznikiem pppoe do tabel {ip, ip6}Możesz wyłączyć blokowanie zapory sieciowej filtru sieciowego za pomocą:
źródło
br_netfilter
modułu. Brak załadowanego modułu oznacza również, że nie ma/proc/sys/net/bridge/
wpisu.