Saya memiliki setup ethernet bridge br0
yang berisi dua antarmuka eth0
dantap0
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
FORWARD
Kebijakan rantai default saya adalahDROP
iptables -P FORWARD DROP
Ketika saya tidak menambahkan aturan berikut, lalu lintas tidak melewati jembatan.
iptables -A FORWARD -p all -i br0 -j ACCEPT
Sejauh yang saya mengerti iptables
hanya bertanggung jawab untuk lapisan IP.
ebtables
harus bertanggung jawab untuk menyaring lalu lintas di jembatan ethernet.
Jadi mengapa saya harus menambahkan aturan ACCEPT di rantai FORWARD iptable?
echo "1" > /sys/devices/virtual/net/br0/bridge/nf_call_arptables
. Ada ide?Anda dapat menonaktifkan perilaku ini (membiarkan iptables menangani paket yang di-bridged) dengan mengetik:
(lihat http://ebtables.sourceforge.net/documentation/bridge-nf.html )
sumber
Rantai ebtables tidak akan melihat bingkai masuk pada port jembatan non-penerusan. Silakan lihat ini: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html
sumber
Jika Anda tidak perlu menggunakan iptables dengan bridge di sistem Anda, Anda dapat menonaktifkannya secara permanen dengan menggunakan salah satu dari berikut ini:
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
sumber