tcp_outgoing_address como fazer?
Amigos tenho 3 links de internet e estou precisando fazer tcp_outgoing_address, meu squid não é gateway ele é apenas proxy mesmo e os tutos que encontrei por ai a fora percebo que são para squid quando gateway pq tem um monte de regras de marcação de pacotes como se fosse para um load balance.
Bem, alguém pode me ajudar na configuração limpa do tcp_outgoing_address para o squid?
Desde já agradeço.
Re: tcp_outgoing_address como fazer?
vc tem que marcar e os os pacotes e os gw deles , fazer o ip rule pros pacotes de entrada, ai vai funcionar.
Re: tcp_outgoing_address como fazer?
Então realmente tem que marcar?!
Imaginei que seria apenas criar as tabelas de roteamento e depois o squid faria o resto tendo em vista que as varias rotas estariam funcionando.
Alguém pode me ajudar explicando exatamente oq deve ser feito?
Re: tcp_outgoing_address como fazer?
Cara meu ambiente é bem simples:
Clientes --> MyAuth3 --> Gateway1
000000000000\/00000--> Gateway2
0000000000Squid0000--> Gateway3
Entendeu?
Os clientes tem acesso ao Myauth que tem acesso ao Squid e aos Gateways, o Squid por sua vez tem acesso as MyAuth e aos Gateways.
Isso ajuda?
Re: tcp_outgoing_address como fazer?
Amigão oq quero é direcionar downloads de alguns tipos de arquivos para um link, alguns sites específicos para outro link e todo o resto para o terceiro link, no squid isso é feito pelo tcp_outgoing_address.
Acho que vc não percebeu que o squid tem acesso aos gateways sem precisar passar pelo Myauth se eu fizer como falou "Pense que o squid é um cliente qualquer da sua rede, e permita o trafego entre 192.168.0.0/24 e 192.168.1.0/24 pelas duas portas locais." meus clientes terão acesso a internet sem precisar se autenticar.
Entendeu?
Re: tcp_outgoing_address como fazer?
Mexer com tcp_outgoing_address vi que é relativamente facil, as duvidas que tenho são as seguintes.
Preciso criar tabelas de rotas e fazer marcação de pacotes para fazer ele funcionar mesmo meu squid não sendo o roteador da rede dos meus clientes?
O ip que especifico no tcp_outgoing_address é o do próprio squid como fala em alguns tutos ou o ip do gateway que por onde quero direcionar o conteúdo?
Re: tcp_outgoing_address como fazer?
Citação:
Postado originalmente por
JorgeAldo
nada de tabelas de rotas nem marcacao de pacotes, o myauth nao precisa nem saber a respeito do tráfego de saida do squid.
FOI ISSO QUE IMAGINEI.
o ip do tcp_outgoing_address é o ip da placa de rede que esta na maquina do squid ligada ao link
Vamos supor :
Squid 192.168.1.10 ---Cabo de rede---> 192.168.1.1 modem adsl
Squid 192.168.2.10 ---Cabo de rede---> 192.168.2.1 modem adsl
Squid 192.168.3.10 ---Cabo de rede---> 192.168.3.1 modem adsl
Voce usará 192.168.1.10 192.168.2.10 e 192.168.3.10 como ip nos comandos tcp_outgoing_address, assim :
tcp_outgoing_address 192.168.1.10 acl_trafego_normal
tcp_outgoing_address 192.168.2.10 acl_trafego_videos
tcp_outgoing_address 192.168.3.10 acl_trafego_downloads
Cara apontando o ip da própria interface ligada a cada rede como vc ta falando e muitos tutos tb, como o squid vai saber qual é o gateway de cada rede dessa?
Re: tcp_outgoing_address como fazer?
Citação:
Postado originalmente por
warllock01
Cara apontando o ip da própria interface ligada a cada rede como vc ta falando e muitos tutos tb, como o squid vai saber qual é o gateway de cada rede dessa?
Aí é problema do kernel, não?
Re: tcp_outgoing_address como fazer?
Oq ele vai fazer?
Vai sair procurando um gateway na rede para sair?
Não que isso não possa ser feito, essa é até uma pratica comum em protocolos avançados de roteamento, mas se tratando de squid acho estranho.
Bem, vou testar, se funfar blz, mas tenho certeza que retornarei sem exito.
Re: tcp_outgoing_address como fazer?
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...