Se eu estiver entendendo suas intenções corretamente, você deseja que seu servidor da Web normalmente use o ISP-2 como seu gateway padrão para o tráfego de saída, com exceção de suas respostas a solicitações da Web externas, que devem transitar pelo ISP-1. Aqui está um esboço de uma solução usando o roteamento de políticas:
echo "101 webtraffic" >> /etc/iproute2/rt_tables
ip route add default table webtraffic via $ISP1_GW_LAN_IP
ip rule add fwmark 1 table webtraffic
iptables -t mangle -A OUTPUT -d \! $LAN_NET_PREFIX \
-p tcp -m tcp --sport 443 \
-j MARK --set-mark 1
onde:
-
LAN_NET_PREFIX
é o prefixo de rede da sua LAN (por exemplo, 192.168.100.0/24) e -
ISP1_GW_LAN_IP
é o endereço IP da LAN do seu gateway para o ISP-1 (por exemplo, 192.168.100.100).
O primeiro comando ip
define a rota padrão na tabela webtraffic
para o seu gateway ISP-1, e a segunda assegura que os pacotes marcados com 1
sejam roteados usando a tabela webtraffic
. Por fim, a regra iptables
marca os pacotes de saída apropriados, garantindo que o próximo salto seja para o ISP-1.
Aqui está uma solução alternativa que usa um módulo iptables
experimental, a meta ROUTE:
iptables -t mangle -A POSTROUTING -d \! $LAN_NET_PREFIX \
-p tcp -m tcp --sport 443 \
-j ROUTE --gw $ISP1_GW_LAN_IP
Essa regra substituiria a decisão de roteamento dos pacotes de resposta da Web de saída, enviando-os ao seu gateway ISP-1, em vez de ao ISP-2 padrão. Todo o outro tráfego, incluindo respostas da Web a clientes na sua LAN, não seria afetado. Como foi apontado nos comentários, é bem provável que a meta ROUTE não seja implementada em nenhum sistema que não tenha sido remendado explicitamente no kernel, desde que seja experimental .