Mam skonfigurowany most Ethernet, br0
który zawiera dwa interfejsy eth0
itap0
brctl addbr br0
brctl addif eth0
brctl addif tap0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tap0 0.0.0.0 promisc up
ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255
Moja domyślna FORWARD
polityka łańcucha toDROP
iptables -P FORWARD DROP
Kiedy nie dodam następującej reguły, ruch nie przechodzi przez most.
iptables -A FORWARD -p all -i br0 -j ACCEPT
O ile rozumiem, iptables
odpowiada tylko za warstwę IP.
ebtables
powinien być odpowiedzialny za filtrowanie ruchu na moście Ethernet.
Dlaczego więc muszę dodać regułę ACCEPT do łańcucha FORTARD firmy iptable?
echo "1" > /sys/devices/virtual/net/br0/bridge/nf_call_arptables
. Jakieś pomysły?Możesz wyłączyć to zachowanie (pozwalając iptables na obsługę zmostkowanych pakietów), wpisując:
(patrz http://ebtables.sourceforge.net/documentation/bridge-nf.html )
źródło
Jeśli nie musisz używać iptables z mostem w swoim systemie, możesz go trwale wyłączyć, korzystając z jednego z poniższych:
iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
źródło
Łańcuchy ebtables nie zobaczą ramek wchodzących na nieprzekazywający port mostu. Może rzuć na to okiem: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html
źródło