Temos uma ponte configurada no Ubuntu para vincular nossa LAN ao nosso gateway, que está na mesma sub-rede. Precisamos que isso seja capaz de controlar o tráfego e, no momento, não estamos em condições de alterar as sub-redes, de modo que não possamos simplesmente rotea-lo.
O gateway é controlado através de nosso ISP que fornece MPLS para várias outras / 24 sub-redes dentro de 192.168.0.0/16.
A configuração atual é a seguinte:
192.168.10.1 (gw) < - > eth0 < - > br0 (192.168.10.3) < - > eth1 < - > LAN (192.168.10.0/24)
br0 Link encap:Ethernet HWaddr ..
inet addr:192.168.10.3 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
eth0 Link encap:Ethernet HWaddr ..
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1 Link encap:Ethernet HWaddr ..
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Isso está funcionando bem e não está causando problemas.
Também temos uma VPN do Tinc para a nossa infraestrutura de datacenter no mesmo servidor (192.168.10.3) que não faz parte da ponte. ou seja:
tincvpn Link encap:Ethernet HWaddr ..
inet addr:192.168.10.3 Bcast:192.168.255.255 Mask:255.255.0.0
...
Gostaríamos de substituir o roteamento em pacotes que passam pela ponte da LAN para determinados destinos (por exemplo, 192.168.5.0/24) para fazer com que eles passem pelo tinc. ou seja: 192.168.10.x na LAN para 192.168.5.x deve passar por tinc e não para o gateway.
Gostaríamos que isso funcionasse para todas as máquinas na LAN sem ter que configurar nada, mas encontramos uma solução alternativa por enquanto que é adicionar a seguinte rota estática a cada PC / Servidor na LAN:
route add -net 192.168.5.0/24 via 192.168.10.3 dev eth0
Para a rota estática funcionar, também tivemos que habilitar proxy_arp para todas as interfaces em 192.168.10.3.
Nós tentamos a seguinte configuração, mas não funcionou:
ip rule add fwmark 20 lookup 20
ip route add 192.168.0.0/16 dev tincvpn table 20
ebtables -t broute -I BROUTING -i eth1 -p ipv4 --ip-dst 192.168.5.0/24 -j REDIRECT --redirect-target DROP
iptables -t mangle -I PREROUTING -i eth1 -d 192.168.5.0/24 -j MARK --set-mark 20
Com esta configuração, os pacotes chegaram à regra do mangle e foram marcados, mas não foram encaminhados para a interface tincvpn
Nosso entendimento era que precisávamos descartar os pacotes da ponte usando ebtables e depois usar o roteamento baseado em políticas para fazer os pacotes passarem pelo tinc. Esse entendimento está correto?
Se alguém tiver alguma idéia de por que isso não funcionou, será apreciado.
Muito obrigado,
Tom