Re: tcp_outgoing_address como fazer?
Citação:
Postado originalmente por
JorgeAldo
Quem tem que saber o gateway é o kernel, não o squid.
Pode ter certeza que se um pacote aparece no socket de roteamento do kernel e existe uma interface que é dessa mesma subrede no sistema, o pacote sairá por ela.
Ok, me expressei mal, sei que quem deve resolver isso é o kernel, mas não vejo como ele fará isso sem ter o gateway de cada rede dessa indicado de alga forma.
Minha lógica indica que no final das contas terei que criar uma tabela de roteamento para cada rede dessa configurada no squid e assim quando apontar no tcp_outgoing_address o ip por onde desejo direcionar aquele conteúdo o kernel terá a tabela de roteamento da rede e saberá por onde sair.
Não vejo necessidade de marcação de pacotes já que meu squid não realiza papel de gateway, somente proxy.
Bem, amanhã testarei tudo isso e mantenho vcs informados.
Abraços fraternos.
Re: tcp_outgoing_address como fazer?
Vc ta me dizendo que é simplesmente eu por o gateway de cada interface sem precisar criar as tabelas de roteamento avançado?
Mas ai todos os gateways não serão considerados default?
Isso não vai dar chabu?
Re: tcp_outgoing_address como fazer?
Aqui uso assim
Código :
ip route add default via 192.168.0.1 dev wlan0
E ainda tem um tal de metric, que é pra especificar a ordem de procura.
Citação:
metric NUMBER
preference NUMBER
the preference value of the route. NUMBER is an arbitrary 32bit number.
Tipo:
Código :
# ip route add default via 192.168.0.1 dev wlan0 metric 2003
# ip route add default via 192.168.0.2 dev wlan0 metric 2004
# ip route
default via 192.168.0.1 dev wlan0 metric 2003
default via 192.168.0.2 dev wlan0 metric 2004
Tem como parcar por src também, segue o mesmo princípio.
Re: tcp_outgoing_address como fazer?
Ai galera consegui fazer a parada funfar aqui direitinho, como havia imaginado, não adianta tentar fazer sem indicar os gateways de cada rede, assim como tb não adianta por o gateway em cada interface pq o sistema considera todos esses gateways como default e hora o trafego sai por um hora o trafego sai por outro, a parada fica meio randomica.
Tb tentei mexer na métrica de cada gateway indicando as prioridades de cada um como o amigo acima indicou, tinha apostado que isso poderia resolver, mais não resolveu, percebi que o squid faz o trabalho dele certinho indicando por qual IP o conteúdo seria direcionado mais todos os IPs tentavam sempre sair pelo gateway de maior prioridade.
Bem a solução foi criar as tabelas de roteamento e marcar o OUTPUT, isso eu sempre soube fazer mas achava que poderia de alguma forma economizar isso e fazer um config mais limpa, segue minha solução:
###################################
## Adicionar no final do arquivo "/etc/iproute2/rt_tables" isso "11 WAN01" ou rodar esse comando "echo 11 WAN01 >> /etc/iproute2/rt_tables" apenas uma vez.
## Adicionar no final do arquivo "/etc/iproute2/rt_tables" isso "12 WAN02" ou rodar esse comando "echo 12 WAN02 >> /etc/iproute2/rt_tables" apenas uma vez.
ip rule add fwmark 1 table 11
ip rule add fwmark 2 table 12
iptables -t mangle -A OUTPUT -s 10.0.253.1/24 -j MARK --set-mark 1 #IP da Eth1
iptables -t mangle -A OUTPUT -s 10.0.254.1/24 -j MARK --set-mark 2 #IP da Eth2
ip route add default via 10.0.253.254 table 11 #Gateway dessa rede
ip route add default via 10.0.254.254 table 12 #Gateway dessa rede
ip rule add from 10.0.253.1 lookup WAN01 #IP da Eth1
ip rule add from 10.0.254.1 lookup WAN02 #IP da Eth2
###################################
Como falei, tenho 3 links, mas só precisei criar 2 tabelas pq o link que considero principal eu pus o gateway normalmente no sistema.
Pode se testar o resultado com o ping forçando a interface de saída, assim:
ping -I eth0 globo.com
ping -I eth1 globo.com
ping -I eth2 globo.com
De resto é só criar as ACL e indica-las no tcp_outgoing_address, no squid.
Agradeço a todos que tentaram me ajudar.
Abraços fraternos.
Re: tcp_outgoing_address como fazer?
Talvez com src funcione:
Código :
ip route add default via 10.0.253.254 dev eth1 src 10.0.253.1
Mas aí é questão de teste...