Bridge e iptables postrouting

2

Eu tenho um Linux 3.14 PC com três NICs e uma ponte entre duas das NICs ( eth1 e eth2 ).

Minha pergunta

Por que não há tráfego passando pela regra POSTROUTING? FYI, o tráfego está passando (encaminhado) a ponte muito bem. Alguém pode ser gentil o suficiente para me fornecer algumas dicas para conseguir este trabalho?

ifconfig eth1 down
ifconfig eth2 down

ifconfig eth1 up
ifconfig eth1 0.0.0.0

ifconfig eth2 up
ifconfig eth2 0.0.0.0

brctl addbr sm0
brctl addif sm0 eth1
brctl addif sm0 eth2

ifconfig sm0 up

iptables -t mangle -A POSTROUTING -o eth1 -p all  -j CLASSIFY --set-class 1:99

iptables -t mangle -A POSTROUTING -o eth2 -p all  -j CLASSIFY --set-class 2:99

Regras

o iptables -t mangle -nvL
Chain PREROUTING (policy ACCEPT 38914 packets, 2954K bytes)
 pkts bytes target     prot opt in    out     source         destination

Chain INPUT (policy ACCEPT 38210 packets, 2791K bytes)
 pkts bytes target     prot opt in    out     source         destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in    out     source         destination

Chain OUTPUT (policy ACCEPT 38072 packets, 2844K bytes)
 pkts bytes target     prot opt in    out     source         destination

Chain POSTROUTING (policy ACCEPT 38072 packets, 2844K bytes)
 pkts bytes target     prot opt in    out     source         destination
    0     0 CLASSIFY   all  --  *     eth1    0.0.0.0/0      0.0.0.0/0      CLASSIFY set 1:99
    0     0 CLASSIFY   all  --  *     eth2    0.0.0.0/0      0.0.0.0/0      CLASSIFY set 2:99

sysctl.conf

net.ipv4.ip_forward=1

Configurar os valores abaixo para 0 ou 1 não tem efeito no iptables

net.bridge.bridge-nf-call-arptables=1
net.bridge.bridge-nf-call-ipv6tables=1
net.bridge.bridge-nf-call-ipv4tables=1
    
por AlbertK 02.07.2015 / 15:58

1 resposta

0

Sua ponte não está roteando tráfego, então não há nada para passar pela regra POSTROUTING .

Veja a documentação do netfilter para bridge-netfilter para detalhes e um método para mudar esta configuração (kernel 3.2.0):

modprobe bridge    # Enable bridge-netfilter
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
    
por 02.07.2015 / 19:01