У меня есть настройка Ethernet-мост, br0
который содержит два интерфейса eth0
иtap0
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
политика цепочки по умолчаниюDROP
iptables -P FORWARD DROP
Когда я не добавляю следующее правило, трафик не проходит через мост.
iptables -A FORWARD -p all -i br0 -j ACCEPT
Насколько я понимаю, iptables
это только ответственность за уровень IP.
ebtables
должен отвечать за фильтрацию трафика по мосту Ethernet.
Так почему я должен добавить правило ACCEPT в цепочку FORWARD iptable?
echo "1" > /sys/devices/virtual/net/br0/bridge/nf_call_arptables
. Есть идеи?Вы можете отключить это поведение (позволяя iptables обрабатывать мостовые пакеты), набрав:
(см. http://ebtables.sourceforge.net/documentation/bridge-nf.html ).
источник
Если у вас нет необходимости использовать iptables с мостом в вашей системе, вы можете навсегда отключить его, выполнив одно из следующих действий:
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
источник
Цепочки ebtables не будут видеть фреймы, входящие в порт непередающего моста. Можете взглянуть на это: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html
источник