Eu pesquisei detalhes sobre como fazer isso, mas não obtive sucesso - imaginei se alguém poderia oferecer alguns conselhos.
Eu tenho 2 placas de rede (LAN e 3G no meu caso), LAN é minha interface principal (estática) e 3G é dinâmica.
Eu tenho um servidor proxy personalizado instalado na máquina e é acessível através do IP externo estático da LAN na porta 19000. Ele funciona, mas é roteado pela minha interface LAN principal e preciso rotear esse tráfego de proxy pela interface 3G.
Veja como minhas interfaces e tabela de roteamento se parecem:
eth0 Link encap:Ethernet HWaddr 0e:93:9f:f1:98:10
inet addr:10.100.9.35 Bcast:10.100.9.255 Mask:255.255.255.0
eth1 Link encap:Ethernet HWaddr 02:1e:10:1f:00:00
inet addr:10.226.59.139 Bcast:10.226.59.143 Mask:255.255.255.248
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.100.9.1 0.0.0.0 UG 0 0 0 eth0
10.100.9.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.226.59.136 0.0.0.0 255.255.255.248 U 0 0 0 eth1
ip route list
default via 10.100.9.1 dev eth0
10.100.9.0/24 dev eth0 proto kernel scope link src 10.100.9.35
10.226.59.136/29 dev eth1 proto kernel scope link src 10.226.59.139
Interface eth0 é minha placa de rede e interface eth1 é meu cartão 3G. O problema também é que o IP da interface 3G continua mudando toda vez que ele se reconecta à internet móvel, então o IP é diferente a cada vez na eth1.
Então, digamos que com o proxy squid é possível configurar http_port para tcp_outgoing_address, mas qual endereço deve ser configurado se o endereço eth1 for alterado toda vez?
por exemplo,
http_port 19000
tcp_outgoing_address ?
Eu fiz um pequeno teste com a adição de um IP da Web externo à tabela de roteamento e, em seguida, acessei-o por meio de proxy e ele foi roteado adequadamente por meio de eth1 de 3G.
ip route replace 216.146.206.83 dev eth1
Mas, nesse caso, devo adicionar ao meu servidor proxy para adicionar cada IP acessado à minha tabela de roteamento e forçá-lo sobre a eth1, mas isso pode terminar com muitos IPs na tabela de roteamento ...
Também com o nome de curl e interface, os pacotes estão passando pela eth1, mas com o IP da interface eth1, recebo o tempo limite da conexão:
curl --interface eth1 checkip.dyndns.org
curl --interface 10.226.59.139 checkip.dyndns.org
Estou perdido neste ponto em que mais tentar. Socorro? Qualquer conselho é bem-vindo.
Tags internet networking linux raspbian