Direcionamento de trafego - Load Balance com 2 WAN's



  • Pessoal, tenho o seguinte cenário:

    • PFSense 2.0.1
    • 2 WAN's em Load Balance MEMBER DOWN
    • 1 LAN

    O que preciso é que apenas 5 máquinas da minha rede saiam pelo link WAN1 e o restante utilizem o link WAN2.

    • Criei 2 grupos de gateways, o Grupo1 prioriza o link WAN1 e o Grupo2 prioriza o link WAN2;
    • Criei um ALIAS com os 5 IP's destas máquinas que precisam sair pela WAN1;
    • Criei a regra no Firewall, na ABA da minha LAN, direcionando todo o trafego originado deste ALIAS para o Grupo1. Esta regra foi incluída ANTES da regra padrão da LAN (não sei se esta regra deveria vir depois da regra default).

    O que acontece é que, mesmo o IP da minha máquina estando dentro do ALIAS, quando acesso um site externo de descoberta de IP, como speedtest.net ou meuip.com, o IP que retorna é o do link WAN2 e não o do WAN1, logo dá a impressão que a regra de direcionamento não esta valendo.

    Fiz um outro teste com o comando TRACERT e neste teste ele me mostra que esta saindo pelo GATEWAY certo, da WAN1…

    Por isto realmente não sei se o redirecionamento está certo, se tem algum erro na configuração e peço a ajuda do fórum!

    Se precisarem de mais alguma informação, postem aqui... tentei ser o mais claro possível. Grato!



  • Olá!

    Você tem Squid em modo transparente nesse Servidor?
    Se tiver, pode ser o cache.

    Outra coisa, utilize a opção Package Loss and High Latency, são mais precisas e seguras pra Load Balance.



  • Olá amigo, sim, utilizo o proxy transparente! Você diz que pode ser o cache do squid no pfsense?

    Como limpo o cache no PFSense?

    Você saberia me indicar uma boa configuração de cache pra que isto não aconteça?

    Quanto ao Load Balance, eu utilizo o Member Down pois o segundo link é só de backup mesmo… só faço o direcionamento de trafego para o link não ficar inutilizado.

    Grato.



  • Olá.

    Para limpar o cache do Squid:

    1- Pare o serviço do Squid
    2 - No console do PFSense, execute o comando: rm -r /var/squid/cache/*

    Espere terminar a limpeza…

    3 - No console do PFSense execute: squid -z

    4 - Suba o Serviço do Squid denovo.

    Com relação a condição do grupo do Load Balance, eu geralmente só uso Member down no Fail Over se a conexão for PPPoE. Só lembrando que usando Member Down os grupos são de Fail Over e não Load Balance.
    Load Balance como a tradução do nome sugere, é quando duas conexões dividem o fornecimento de banda para os usuários em tempo real. No caso se for preciso que uma conexão caia para usar a outra é um Fail Over.



  • Fiz a limpeza do cache como mencionado, mas ainda assim, quando acesso speedtest.net ou meuip.com.br, exibe meu IP como da minha WAN1 e não da WAN2 como deveria… :-[

    Pelo "tracert" sai pelo link certo (WAN2), só estes sites que exibem nossos endereços externos que não estão me exibindo o certo.

    Alguém já percebeu isto quando configurou um direcionamento de tráfego???



  • Ninguém tem uma luz!??



  • @ascuriza:

    Ninguém tem uma luz!??

    Como você está usando proxy transparente, não importa o que você escolhe em "gateway" na regra de firewall. O seu pfSense sempre pegará pra si a conexão, e sairá pelo default gateway.

    Para resolver isso, pesquise (aqui mesmo no fórum) sobre a diretiva "tcp_outgoing_address" do Squid.

    Abraços!
    Jack



  • Amigos, sinceramente estou batendo cabeça e não consegui fazer funcionar o direcionamento de trafego.

    Pelo que entendi isto não funciona se eu utilizar proxy transparente, é isto?

    Como fazer esta configuração sem utilizar o transparente então?

    Já utilizei o tcp_outgoing, as regras floating, mas não deu certo…alguém tem um passo a passo que funcione?

    Grato.



  • @ascuriza:

    Já utilizei o tcp_outgoing, as regras floating, mas não deu certo…alguém tem um passo a passo que funcione?

    posta o que você já fez com screenshots e tenta monitorar o trafego via tcpdump na console/ssh



  • Como fazer esta configuração sem utilizar o transparente então?

    Esse tutorial que fiz ensina failOver, basta colocar os GW no mesmo Tier e seguir a explicação.
    http://forum.pfsense.org/index.php/topic,52942.msg283313.html#msg283313

    Se vc quer que alguns ips saiam por um link ou outro, criei uma ACL com os ips no squid e use a diretiva 'tcp_outgoing_address IP_WAN(2||1) ACL'.
    Se vc quer que todo mundo saia por um link que não seja o default, basta colocar 'tcp_outgoing_address IP_WAN2'.



  • Vamos lá, vou descrever em detalhes todo o processo para alguém me ajudar a identificar o erro:

    Tenho 3 interfaces: LAN, WAN1 e WAN2

    CONFIGURAÇÃO DO FAILOVER

    1. Criei 2 grupos de Gateways:

    Nome do Grupo: LB01

    • WAN1 (Tier1)
    • WAN2 (Tier2)
      Trigger Level: MEMBER DOWN

    Nome do Grupo: LB02

    • WAN1 (Tier2)
    • WAN2 (Tier1)
      Trigger Level: MEMBER DOWN

    1. Alterei a regra padrão de firewall da LAN:
    • inclui o grupo LB01 como Gateway da LAN
    1. Ativei as duas opções de Load Balancing em System: Advanced: Miscellaneous
    • Use sticky connections
    • Allow default gateway switching

    Aqui sempre tive UMA DÚVIDA em relação aos DNS's. Qual é a configuração correta a se deixar, neste ambiente que estou descrevendo? Segue abaixo minha configuração DNS atual:

    CONFIGURAÇÃO DO DIRECIONAMENTO DE TRÁFEGO

    1. Criei um ALIAS chamado Link_Secundario com os IP's das máquinas que quero que saiam pelo segundo link

    1. Criei uma regra de firewall na LAN direcionando o tráfego originado deste ALIAS para o grupo de gateways LB02, lembrando que acrescentei esta regra ANTES da regra padrão da LAN, que direciona o tráfego para o grupo LB01

    Até aqui tudo FUNCIONA PERFEITAMENTE, exatamente como preciso, ou seja, os IP's que estão no ALIAS saem para a Internet pela WAN2 e o restante dos clientes saem pela WAN1, e em ambos existe o FAILOVER.

    O problema começa quando instalo o Squid.

    CONFIGURAÇÃO DO SQUID

    1. Instalei somente o pacote SQUID versão 2.7.9 pkg v.4.3.1

    2. Configurações:

    • Proxy interface: somente a LAN
    • Proxy Transparente: ATIVADO
    • Log habilitado em /var/squid/log
    • Proxy Port: 3128
    • Em Custom Options foi incluído tcp_outgoing_address 127.0.0.1

    Após a instalação do SQUID, o meu redirecionamento de tráfego para de funcionar. Todos os clientes, inclusive os que estão no ALIAS, saem pela WAN1.

    Alguém consegue me ajudar a resolver esta incompatibilidade do SQUID com Redirecionamento de Tráfego?

    Grato.












  • Escolha o DNS saindo pelos GW.. aqui no meu funciona
    coloquei quatro DNS, dois saindo por um GW

    avisa depois se deu certo !!!



  • Não deu certo amigo, o DNS não é o problema… é alguma incompatibilidade ou má configuração do SQUID.  :-\



  • O problema não é o squid.  Você colocou proxy e balanceamento na mesma maquina.
    Depois que o tráfego chega no squid, o ponto de saída é único via lo0 no lugar de opt1,lan,etc.

    Muda o desenho da rede ou define um único método de balanceamento.



  • Marcello, por favor me corrija se estiver errado, mas não entendi sua resposta pois tenho um failover com direcionamento de tráfego que funciona muito bem até eu instalar o proxy (squid), que é para controle de acesso à Internet. Quando desinstalo o SQUID todo o ambiente passa a funcionar normalmente, quando instalo e habilito o mesmo, o direcionamento para de funcionar!
    Obrigado.



  • Vou tentar explicar melhor então:

    Quando você não usa o squid, o firewall recebe o pacote direto da estação. Neste caso você consegue balancear de acordo com o ip de origem e interface.

    Quando você usa o squid, todas as estações mandam as requisições para o squid buscar. Neste caso você tem um único host com ip de origem (127.0.0.1) o que impossibilita mais de uma regra de balanceamento.

    Não é limitação do squid mas sim do design da sua rede.

    Um squid em cada segmento de rede recebendo o trafego e enviando para o balanceador seria a solução para o que você precisa.

    Ficou claro agora?  ???



  • Opa, agora entendi sim!!! Mas então o problema só ocorre se eu usar o proxy transparente, que é neste caso que ele fica capturando todos os pacotes das estações, certo!? E não existe alguma configuração no PFSENSE que eu consiga "burlar" este problema e fazer funcionar o balanceamento junto do proxy na mesma máquina? Ví alguns tópicos que o pessoal fala pra usar a opção tcp_outgoing_address 127.0.0.1 no Proxy, mas não consegui fazer funcionar ainda. :-\



  • @ascuriza:

    E não existe alguma configuração no PFSENSE que eu consiga "burlar" este problema e fazer funcionar o balanceamento junto do proxy na mesma máquina?

    Da forma que você quer, não.

    Esta situação vai acontecer com qualquer configuração de proxy (transparente ou não)



  • Aproveitando,

    e se usar um segundo equipamento (físico ou virtualizando), e setar o novo proxy na opção de Upstream do Squid, funcionaria o Failover/Load Balance?



  • Resumindo para não esticar muito este tópico

    Um squid em cada segmento de rede recebendo o trafego e enviando para o balanceador seria a solução para o que você precisa.



  • Ainda pesquisando encontrei muitos tópicos que dizem que o FAILOVER funciona com o Squid, só o balanceamento que não, e muitos dizem ter o ambiente funcionando desta maneira (com Failover). Só não consegui encontrar o passo a passo das configurações para o PFSense 2.0.1. :-[



  • @ascuriza:

    Ainda pesquisando encontrei muitos tópicos que dizem que o FAILOVER funciona com o Squid, só o balanceamento que não

    No pfsense, a diferença entre failover e load balance esta somente na definição do grupo de roteamento, o resto da configuração é exatamente igual.



  • Uso balanceamento e funciona, porem não é proxy transparente.



  • @mantunespb:

    Uso balanceamento e funciona, porem não é proxy transparente.

    Usando Floating?
    Estamos estudando em como vamos aplicar o proxy aqui, transparente ou não e sem mexer com os grupos de failover, que são três para cada rede.



  • Não usei nenhuma regra floating

    em system–> gateways não está marcado nenhum "Default Gateway"

    em groups todos estão "Tier 1" e a opção "Packet Loss e High Latency"

    no squid..

    Proxy interface"LAN"
    e não habilitado "Transparent proxy"

    opção

    tcp_outgoing_address 127.0.0.1;redirect_program /usr/local/bin/squidGuard -c /usr/local/etc/squidGuard/squidGuard.conf;redirector_bypass on;redirect_children 3
    

Locked