A política de roteamento não está funcionando

4

Eu tenho um ponto de acesso com OpenWrt. Em outro host da mesma LAN existe um squid (endereço IP 192.168.80.148). Gostaria de rotear pacotes com a porta de destino 80 para 192.168.80.148.

Então eu tenho

root@ap:/tmp# iptables -L -vn -t mangle
Chain PREROUTING (policy ACCEPT 67354 packets, 54M bytes)
 pkts bytes target     prot opt in     out     source               destination         
67358   54M fwmark     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

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

Chain FORWARD (policy ACCEPT 65789 packets, 54M bytes)
 pkts bytes target     prot opt in     out     source               destination         
65789   54M mssfix     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

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

Chain POSTROUTING (policy ACCEPT 66808 packets, 54M bytes)
 pkts bytes target     prot opt in     out     source               destination         
25686 1564K MARK       tcp  --  *      br-lan  0.0.0.0/0            0.0.0.0/0            PHYSDEV match ! --physdev-in eth0+ tcp dpt:80 MARK set 0x1

Chain fwmark (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain mssfix (1 references)
 pkts bytes target     prot opt in     out     source               destination         
root@ap:/tmp# ip rule ls
0:      from all lookup 128 
0:      from all fwmark 0x1 lookup squid1 
1:      from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default 
root@ap:/tmp# ip route show table squid1
default via 192.168.80.148 dev br-lan 

Então, mas o roteamento não está funcionando, não vejo pacotes saindo da minha estação para a caixa com o squid.

Uma coisa importante: o Access Point não é o gateway padrão da estação. Todas as portas do AP estão na mesma VLAN e então o AP tem um único endereço IP com está na mesma LAN que a interna ADSL da Internet modem. O endereço IP da LAN do modem ADSL é o gateway padrão.

O que estou fazendo de errado?

EDITADO:

Eu adicionei uma regra de teste:

iptables -t mangle -A OUTPUT -o br-lan -p tcp -m physdev ! --physdev-in eth0+ -m tcp --dport 80 -
j MARK --set-xmark 0x1/0xffffffff

E descobri que, nesse caso, o roteamento funciona (o tráfego do próprio AP passa pela caixa do squid). Então, o problema é que o tráfego da estação não está sendo roteado. Por quê?

    
por sebelk 26.03.2016 / 00:49

0 respostas