
Tenho dois gateways com ISP diferentes, um deles definido como padrão para o usuário da LAN e o outro ISP usado como padrão para servidores e tráfego VPN. Isto é feito usando tabelas de roteamento regulares configuradas com o DHCP.
Agora quero que o Google Drive e algum outro tráfego de software seja instalado nos laptops dos usuários da LAN que usam muito upload para sempre usar o outro ISP que não está definido como seu gw padrão. Como posso conseguir isso?
Minha ideia inicial é usar IPTABLES ou squid.
Eu tenho tentado com isso
iptables -t nat -A PREROUTING -d GOOGLE_IP -j DNAT --to-destination MY_SECOND_ISP
iptables -t nat -A POSTROUTING -s MY_SECOND_ISP -j SNAT --to-source GOOGLE_IP
iptables -t nat -A POSTROUTING -s MY_SECOND_ISP -j MASQUERADE
mas não funciona. Quando eu testo, o tráfego vai para o gw padrão
Alguma ideia de como fazer isso usando iptables, shorewall ou squid ??
Responder1
Supondo que o IP da LAN GW padrão (GW1) da LAN seja 192.168.1.1 e o IP da LAN GW padrão do servidor (GW2) seja 192.168.1.2, ou seja, a LAN vê os dois roteadores no mesmo segmento.
Você pode configurar uma rota estática no GW1 que aponta o tráfego cujo destino é GOOGLE_IP para o endereço IP da LAN GW2 do próximo salto.
Se o GW1 for Cisco: ip route GOOGLE_IP 255.255.255.255 GW2_LAN_IP
Se o GW1 for Linux: ip route add GOOGLE_IP/32 gw GW2_LAN_IP
Desta forma, quando qualquer host da LAN enviar tráfego para GOOGLE_IP, o tráfego irá para GW1.
Então a rota estática no GW1 encaminhará o tráfego para o GW2.
Então, o GW2 encaminhará o tráfego para fora de sua interface WAN.
O tráfego de retorno vindo da Internet para o GW2 será encaminhado para a LAN e chegará aos hosts.
Desta forma você cria a rota uma vez no GW1, para que funcione para todos os hosts da LAN.
Responder2
Como serviços como o Google Drive estão na nuvem e seus IPs podem mudar a qualquer momento, acredito que sua abordagem, mais cedo ou mais tarde, deixará de funcionar.
Existe outro método para diferenciar o tráfego dos aplicativos desejados, fazendo a marcação DSCP no nível do sistema operacional convidado.
As marcas DSCP serão 'anexadas' aos próprios pacotes para que você possa combiná-los com iptables em seu roteador e roteá-los através da VPN ou de qualquer outro gateway de sua preferência.
Dessa forma, você está dizendo que, por exemplo, googledrive.exe (ou qualquer aplicativo que você desejar) sempre será roteado através da VPN, não importa onde ele tente se conectar.
Aqui estão algumas instruções sobre como definir marcas DSCP personalizadas usando o Windows https://support.timso.com/index.php?/Knowledgebase/Article/View/24/3/windows-7-and-implementing-qos
Você pode combinar as marcas dscp com a opção de correspondência --dscp do iptables.
http://www.iptables.info/en/iptables-matches.html#DSCPMATCH
É claro que todas as opções acima não respondem à sua pergunta original. Você ainda precisará fazer o roteamento de políticas funcionar.