+ Responder ao Tópico



  1. #1

    Padrão 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.

  2. #2

    Padrã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.

  3. #3

    Padrão 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?

  4. #4

    Padrão 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?

  5. #5

    Padrão 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?

  6. #6

    Padrão 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?

  7. #7

    Padrão Re: tcp_outgoing_address como fazer?

    Citação Postado originalmente por JorgeAldo Ver Post
    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?

  8. #8
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão Re: tcp_outgoing_address como fazer?

    Citação Postado originalmente por warllock01 Ver Post
    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?

  9. #9

    Padrã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.

  10. #10

    Padrão Re: tcp_outgoing_address como fazer?


  11. #11

    Padrão Re: tcp_outgoing_address como fazer?

    Citação Postado originalmente por JorgeAldo Ver Post
    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.

  12. #12

    Padrão 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?

  13. #13
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão 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.
    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.

  14. #14

    Padrão 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.

  15. #15
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão 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...