Soluzione 1:
A causa del codice br-nf disponibile come patch per Linux 2.4 e utilizzato in Linux 2.6:
Il codice br-nf fa passare i frame/pacchetti IP con bridge attraverso iptableschains. Ebtables filtra sul livello Ethernet, mentre iptables filtra solo i pacchetti IP.
Poiché il traffico su cui stai lavorando è ip, iptables
le regole si applicano ancora a causa di br-nf passando i pacchetti con bridge a iptables
.
Questa è un'ottima risorsa da leggere sull'interazione e descrive in dettaglio la funzionalità di br-nf codice, incluso come disabilitare tutte o alcune delle funzionalità (ad esempio non passare il traffico bridge a iptables).
Soluzione 2:
Puoi disabilitare questo comportamento (consentendo a iptables di gestire i pacchetti con bridge) digitando:
echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables
(vedi http://ebtables.sourceforge.net/documentation/bridge-nf.html)
Soluzione 3:
Se non hai la necessità di utilizzare iptables con il bridge sul tuo sistema, puoi disabilitarlo permanentemente utilizzando uno dei seguenti metodi:
- Aggiunta di una regola iptables:
iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
- O modificare /etc/sysctl.conf:
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0