He configurado el puente de ethernet br0que contiene dos interfaces eth0ytap0
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
Mi FORWARDpolítica de cadena predeterminada esDROP
iptables -P FORWARD DROP
Cuando no agrego la siguiente regla, el tráfico no pasa por el puente.
iptables -A FORWARD -p all -i br0 -j ACCEPT
Por lo que entiendo, iptablessolo es responsable de la capa IP.
ebtables debe ser responsable de filtrar el tráfico en el puente de ethernet.
Entonces, ¿por qué debo agregar la regla ACEPTAR en la cadena FORWARD de iptable?

echo "1" > /sys/devices/virtual/net/br0/bridge/nf_call_arptables. ¿Algunas ideas?Puede deshabilitar este comportamiento (permitiendo que iptables maneje paquetes en puente) escribiendo:
(ver http://ebtables.sourceforge.net/documentation/bridge-nf.html )
fuente
Las cadenas de ebtables no verán tramas entrando en un puerto de puente no reenviador. Podría echar un vistazo a esto: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html
fuente
Si no tiene la necesidad de usar iptables con el puente en su sistema, puede deshabilitarlo permanentemente usando cualquiera de los siguientes:
iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPTnet.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0fuente