Proxy saindo por um link em Multi-WAN com FailOver



  • Bom dia,

    Tenho dois links e preciso que toda a navegação web passe pelo squid e saia pelo primeiro link (WAN1), além disso, deve haver um failover para que o proxy passe pelo segundo link(WAN2) caso o primeiro pare de funcionar.
          Pra melhorar a situação, todo tipo de trafego que não seja web, deve passar pelo segundo link.
          Pensei em fazer assim, crio um grupo failover, WAN1 tier1, WAN2 tier2 do tipo Member Down.
          A minha duvida é se na regra da LAN onde libero a porta 3128 pro LAN Address, colocando o GW FailOver, vai funcionar da forma que expliquei acima.
          Deixando o WAN2 como GW default, e marcando a opção "Allow default gateway switching" todo o trafego exceto do proxy passaria pelo segundo link e o WAN2 assumiria quando o proxy deixasse de funcionar na WAN1 ?
          Algo a mais que deveria configurar, tipo tcp_outgoing_address do squid ?



  • @kelsen:

    Algo a mais que deveria configurar, tipo tcp_outgoing_address do squid ?

    Sim, a regra a aba floating.



  • não funcionou..
    postei umas ss ai pra ver se fica mais claro oque fiz..observe que estou fazendo isso em ambiente de teste com o mesmo link ou seja, mesmo gw, disseram que isso não funciona.. pelo menos o failover sem o squid funcionou, e se for o caso, olhando pelas ss alguém pode dizer se estar certo pra eu poder levar isso prum ambiente de produção?

    OBS: no squid eu coloquei tanto LAN quanto loopback.












  • kelsen,

    Deve haver um caminhão de posts aqui mesmo no fórum abordando a temática.

    Eis um dos últimos publicados: http://forum.pfsense.org/index.php/topic,38882.0.html

    Abraços!
    Jack



  • vlw JackL, embora eu esperasse um how-to, consegui fazer funcionar a partir de alguns tópicos aqui do fórum, então pra quem já se desesperou, aqui vai um howto funcionando perfeitamente em ambiente de teste:

    PfSense 2.0.1 - HOWTO FailOver Squid modo normal (não-transparente)

    Com os Gateways definidos, deixe um como default.
    Obs: Defina os dois Gateway com peso 1; não funcionou utilizando pesos 1:2.

    Criei um grupo para o failOver, cada gateway deve estar em tier diferente, como no exemplo.

    Em Firewall -> Rules -> Floating Rules
    crie uma regra como mostra a figura, selecione as duas interfaces WAN, Protocolo TCP, Qualquer Origem e Destino, Porta de Destino HTTP/HTTPS e Gateway Failover criado anteriormente.

    Em Firewalll -> Rules -> LAN
    crie uma regra como mostra a figura, observe que na regra do proxy (3128) o destino é * (any) e não Lan Address.

    Em Services ->Proxy Server
    selecione somente a interface LAN, não utilize a interface loopback como muitos já disseram em outros posts.
    em Custom Options, adicione a linha " tcp_outgoing_address 127.0.0.1".

    Pronto, basta fazer um teste, retire um GW e veja em Diagnostic -> Routes se a rota default mudou e tente navegar.



  • Esqueci de algo importantíssimo.
    Essas informações foram obtidas pelo site http://www.communig8.com/articles/64-open-source/137-pfsense-multi-wan-how-to-really-make-it-work



  • @kelsen:

    aqui vai um howto funcionando perfeitamente em ambiente de teste:

    Parabéns pela contribuição…

    Fica a sugestão de fazer um post (escrever este seu artigo) lá no blog da comunidade brasileira do pfSense: http://www.pfsense-br.org/blog/

    Basta se registrar e começar a contribuir.

    Abraços!
    Jack



  • Olá,

    É necessário fazer uma correção na regra de Floating.

    A regra deve abranger apenas a porta 80, se a 443 for incluida pode causar Loop, principalmente se o Squid estiver em modo transparente.

    Outro erro é que o Range está de HTTP a HTTPS, isso inclui todas as portas de 80 a 443, ou seja…(81,82,83,84,85... 441,442).

    Testado com o Squid 2.7 e 3.1 e funcionando.



  • @LFCavalcanti:

    Outro erro é que o Range está de HTTP a HTTPS, isso inclui todas as portas de 80 a 443, ou seja…(81,82,83,84,85... 441,442).

    Cool LFCavalcanti!

    Bem observado…



  • Outro erro é que o Range está de HTTP a HTTPS, isso inclui todas as portas de 80 a 443, ou seja…(81,82,83,84,85... 441,442

    é verdade! basta criar um alias com as duas portas.

    A regra deve abranger apenas a porta 80, se a 443 for incluida pode causar Loop, principalmente se o Squid estiver em modo transparente.

    No caso o tutorial é pra squid modo normal (não transparente), poderia explicar o pq da porta 443 causar loop?



  • Olá,

    O Loop ocorre porque o NAT Outbound(conexões de saida) entrega as conexões direto na WAN ativa, independente do SQUID, e com a regra de Floating tentando capturar estes pacotes, a conexão pode entrar em Loop dentro do PFSense e o usuário receber um erro de tempo esgotado. Como o tráfego HTTP é capturado automaticamente pelo Squid e o HTTPS não, o resultado é o erro nas conexões HTTPS.

    Então só recomendo criar a regra HTTPS em Squid não transparente, mas isso não testei ainda.



  • isso tem lógica caso o squid esteja no modo transparente, que no caso o HTTPS não é redirecionado pro squid, mas como o tutorial é pra squid mono normal, acredito que não vá dar nenhum problema, se fosse um bom tempo atrás poderia testar isso mas agora não tenho esse ambiente pra testar.



  • Eu fiz questão de chamar a atenção para isso porque no Link que você usou como base o procedimento é feito para Squid Transparente, o que pode causar algum engano.

    Como a solução é viavel para os dois modos de operação de proxy, seria legal editar o tuto.

    Deixo claro que não estou criticando, só colaborando  ;D


Log in to reply