Squid com problemas usando Load Balance
-
para restringir o acesso a bancos e determinados sites somente por um link.
modo fácil:
Criar uma regra na LAN com
source LAN NET
destination any
destination port 443
gateway: (gatewayA ou gatewayB ou fail over criado na aba routing)modo mais detalhado e seguro:
Crie um alias chamado hosts_bancos por exemplo
defina ele com tipo hostadicione todas os hosts de url que voce conhece do banco.
exemplo
www.bb.com.br
www.itau.com.brcaso o banco tenha vários hosts com nomes diferentes para o servico de https( www2,www333,www01)
resolva o ip do site principalnslookup www.bb.com.br Non-authoritative answer: Name: www.bb.com.br Address: 170.66.11.10
pesquise o ip encontrado no site whois.registro.br, para encontrar a faixa de ip deste banco
no caso do banco do brasil, a faixa é 170.66/16
crie um segundo alias chamado redes_bancos
defina ele com tipo network
adicione as redes encontradas
170.66.0.0/16Depois de criar e associar todos os sites nos aliases,
vá em firewall -> rules -> lan e crie uma regra para cada alias de banco da seguinte forma
Criar uma regra na LAN com
source LAN NET
destination hosts_bancos
destination port 443
gateway: (gatewayA ou gatewayB ou fail over criado na aba routing)source LAN NET
destination redes_bancos
destination port 443
gateway: (gatewayA ou gatewayB ou fail over criado na aba routing) -
Na verdade nem precisa de tudo isso.
Se seu PFSense for o 2.0.0 ou o 2.0.1, basta configurar os Gateways em SYSTEC>ROUTING e depois no mesmo lugar criar um Grupo.
Tutorial em Ingles: http://doc.pfsense.org/index.php/Multi-WAN_2.0
Tutorial em Portugues: http://pontoexe.wordpress.com/2010/11/01/configurando-loadbalance-no-pfsense-2-0/Depois que fizer o que esta descrito nos tutoriais, va em System> Advanced e clique na aba Miscellaneous, clique na opcao Allow default gateway switching.
Nao esqueca de colocar o Gateway nas regras de saida Firewall, o Squid ira alternar entre as conexoes normalmente, apenas com um lease de 2 a 3 segundos.
-
Marcello.
Seguindo o tutorial, em Services - Proxy server / General settings, escolhendo LAN e loopback interface a seguinte mensagem de erro ocorre com todas as tentativas de acesso a qualquer página:
ERRO
A URL solicitada não pode ser recuperadaNa tentativa de recuperar a URL:
GET / HTTP/1.1
Host: www.terra.com.br
User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-aliveO seguinte erro foi encontrado:
Requisição inválida.
Alguns aspectos de requisição HTTP são invalidos. Possíveis causas:
Método desconhecido ou faltando (GET, POST)
Faltou a URL
Faltou o identificador HTTP (HTTP/1.0)
A requisição pode ser muito grande
Hostname com caracter inválido; não é permitido o uso de underscoresSe eu tirar a interface LoopBack a páginas voltam ao normal. O que poderia tá errado?
Abraços…
ATT
Breno Alencar
-
Qual tutorial você esta seguindo? O seu ou um dos que foi postado?
Você esta usando proxy transparente ou marcado no browser?
-
Marcello:
A - Segui o tutorial:
http://securite-ti.com/pfSense_Web_Proxy_with_multi-WAN_links.pdf
Usando PFSense:
2.0.1-RELEASE (i386)
built on Mon Dec 12 18:24:17 EST 2011B - Pacotes:
Squid + SquidGuard + HAPV
C - 2 Links de Internet:
1 - OI ( OPT1 ) ADSL
2 - Embratel ( WAN ) Link Dedicado Frame RelayEm System: Advanced: Miscellaneous - As opções:
- Use sticky connections
- Allow default gateway switching
Estão Marcadas.
Se precisar de mais algum detalhe estou a disposição.
ATT
Breno Alencar
-
Onde está o havp nesta hierarquia de proxy?
-
Marcello. Sinceramente não entendi sua pergunta.
Desculpas.
ATT
Breno Alencar
-
Galera,
Bom dia, tambem seguir a risca os passos do tutorial - Tutorial em Ingles: http://doc.pfsense.org/index.php/Multi-WAN_2.0
o Loab Balance Funcionou até Instalar o Squid em modo transparente, que acusou o mesmo erro do colega acimaERRO
A URL solicitada não pode ser recuperadaNa tentativa de recuperar a URL:
GET / HTTP/1.1
Host: www.terra.com.br
User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-aliveO seguinte erro foi encontrado:
Requisição inválida.
Alguns aspectos de requisição HTTP são invalidos. Possíveis causas:
Método desconhecido ou faltando (GET, POST)
Faltou a URL
Faltou o identificador HTTP (HTTP/1.0)
A requisição pode ser muito grande
Hostname com caracter inválido; não é permitido o uso de underscoresO que será que falta ??
-
Marcello. Sinceramente não entendi sua pergunta.
Como você integrou o pacote havp com o squid?
O havp é parent do squid ou é ele quem esta funcionando em modo transparente?
-
Marcello. O HAVP estava como parent do squid. Mas para dar continuidade ao nosso tópico sem mudar de direção acabei desistalando o HAPV para que o tópico fique somente relativo ao loadbalance + squid.
Mas um colega no tópico relata um erro igual ao meu usando o squid em modo transparente com loadbalance.
Ficamos no aguardo de suas orientações.
Abraços
ATT
Breno Alencar
-
Ficamos no aguardo de suas orientações.
Não fui eu que fiz o tutorial, apenas o indiquei para ilustar como criar as regras na "floating rules" :)
Vou tentar seguir os passos para ver onde para, mas não tenho este ambiente aqui em casa, pode demorar um pouco.
Tente ver o que pode estar errado comparando este tutorial de squid.
att,
Marcello Coutinho -
Marcelo,
Vc pode simular o ambiente usando virtual box e tres placas virtuais, eu mesmo simulei aqui em casa, só que usando uma maquina física que tenho para teste, coloquei os dois links, um com ip fixo e outro com dhcp e seguir o tutorial.. e tambem apresentou o mesmo erro dos demais colegas, somente o uso do squid.
pode q pode ter aalgo errado ai..
-
Galera,
aparece que o negocio é mais serio que eu imaginava.
http://forum.pfsense.org/index.php?topic=37083.45
E fica duvida.. será que funciona mesmo o Balanceamento de Carga+Failover+squid ?? Já tentei de tudo, inclusive
adicionado uma regra de DNS 53 em FloatingRules e não funcionou.. -
você configurou estes passos?
After manually adding my subnet in the "Allowed subnets" box, my dual wan, squid setup is now functioning using pfSense Version 2.0-Release (i386)
but as the Ermal said, just putting the "tcp_outgoing_address 127.0.0.1" worked for me.
-
Marcelo,
a segunda opção sim.. porem a primeira onde fica essa configuração.
Eu só espero não ter que mudar para outra distribuição.. já sai do endian para pfsense justamente
por isso. -
Eu utilizou loadbalance com squid sem problmas
-
Souza,
Poderia passar as telas de configuração que vc fez. seria uma ótima, talvez estamos esquecendo de habilitar ou configurar algo.
-
a segunda opção sim.. porem a primeira onde fica essa configuração.
aba access control primeiro campo
-
Ta osso..
acabei de colocar a faixa de ip da minha rede.. em access control.. e não funcionou..
-
OK segue um passo a passo do que eu exatamente fiz e quando monitoro os link observo navegação em ambos os link, utilizo Squid + SquidGuard
E quando desligo um o outro assume
Melhorias pode falar
Bom não sei se podia mas estou colocando o link do docx para download
www.piocom.com.br/download/Loadbalance+FailOver.docx
abs
Por Favor postem os resultado aqui.
Souza Linux
-
Senhores,
É exatamente como o texto confeccionado pelo Souza Linux. Não há segredo algum fazer Loadbalance/Failover para conexões HTTP/HTTPS com Squid. Basta marcar as opções citadas no texto dele em: System->Advanced->Miscellaneous:
-
Use sticky connections: Que preserva seções HTTPS
-
Allow default gateway switching: Que executa o switching entre os gateways (procurem trabalhar sem "default gateway"… usem os pesos (Tiers) como fez o Souza Linux)
Nas versões BETA e RCs do pfSense 2.0 nós até tínhamos alguns bugs em relação ao LoadBalance com Squid. Mas tudo isso foi resolvido na versão 2.0 Final e está 100% funcional.
- Não é mais preciso gerar uma regra em Floating!~
Abraços!
Jack -
-
Bem, ao que parece estamos enfrentando uma pequena e momentânea instabilidade no blog da comunidade. Mas isso deve ser resolvido até segunda-feira.
No estamos mais… o blog está novamente no ar: http://www.pfsense-br.org/blog/
;)
Abraços!
Jack -
JackL.
Poderia fazer um tutorial definitivo em relação ao Load Balance + Squid?
Assim voce poderia tirar todas as duvidas restantes a esse tema e darmos como resolvido o asssunto.
No tutorial voce poderia explicar como funciona os TIER's. Como e quando colocar TIER1 e TIER2. Esclarecer qual é relação de peso dos links e como configurar de forma correta.
Poderia explicar a opção advanced e suas respectivas funções.
Toda a comunidade iria agradecer mais essa imensa ajuda sua.
Esperamos pelo seu retorno.
Abraços
ATT
Breno Alencar
-
JackL.
Poderia fazer um tutorial definitivo em relação ao Load Balance + Squid?
Assim voce poderia tirar todas as duvidas restantes a esse tema e darmos como resolvido o asssunto.
No tutorial voce poderia explicar como funciona os TIER's. Como e quando colocar TIER1 e TIER2. Esclarecer qual é relação de peso dos links e como configurar de forma correta.
Poderia explicar a opção advanced e suas respectivas funções.
Toda a comunidade iria agradecer mais essa imensa ajuda sua.
Esperamos pelo seu retorno.
Abraços
ATT
Breno Alencar
O balanceamento baseado em tier, tenta usar todos os gateway definidos no mesmo tier antes de tentar outro nível.
Se você tiver dois links em tier1 e um link em tier2, este último só será utilizado caso os dois primeiros fiquem offline
-
Souza,
Vc já testou acessar a internet quando o link 1 estiver fora ?? pq o load balance+fail over junto com squid funciona somente com
o link 1 ativo, se ele cair da erro..Faz o teste ai.. por favor.. e posta o resultado..
-
Pessoal,
Queria dizer a todos que reinstalei o pfsense, instalei o squid, refiz toda configuração do load balancee e deu certo.. Estou usando o seguindo
link e não apresenta a mensagem de erro do squid. -
OK pode postar qual tutorial você seguiu e versão do pfsense para que nossos amigos que estão com problema poderem resolver?
abs
Souza Linux
-
JackL.
Poderia fazer um tutorial definitivo em relação ao Load Balance + Squid?
Assim voce poderia tirar todas as duvidas restantes a esse tema e darmos como resolvido o asssunto.
No tutorial voce poderia explicar como funciona os TIER's. Como e quando colocar TIER1 e TIER2. Esclarecer qual é relação de peso dos links e como configurar de forma correta.
Poderia explicar a opção advanced e suas respectivas funções.
Toda a comunidade iria agradecer mais essa imensa ajuda sua.
Esperamos pelo seu retorno.O balanceamento baseado em tier, tenta usar todos os gateway definidos no mesmo tier antes de tentar outro nível.
Se você tiver dois links em tier1 e um link em tier2, este último só será utilizado caso os dois primeiros fiquem offlineBem, em relação aos Tiers (pesos/prioridades), o marcelloc já matou a lebre. Funciona exatamente como ele colocou… Em outras palavras, no caso específico de 2 links WANs, se ambos tiverem o mesmo Tier, você tem um LoadBalance implementado. Do contrário (gateways com Tiers diferentes), você tem um Failover implementado. Lembrando que quanto menor o Tier, maior sua prioridade no grupo de gateways!
breno.uni, assim que eu conseguir o menor tempo disponível possível, farei um tutorial "mais completo'' sobre o tema e deixarei no nosso blog (é sempre bacana visitar o blog semanalmente, pelo menos - afim de se manter atualizado com o material postado por lá): http://www.pfsense-br.org/blog/
Abraços!
Jack -
Ótima noticia Jackl.
Com o seu tutorial elaborado com certeza poderemos dar como resolvido todos os tópicos relativos ao loadbalance + squid e assim ajudar todos os colegas que estão tendo dificuldades em relação ao assunto.
Nossos agradecimentos pela ajuda e aguardamos o seu material em nosso blog.
Abraço e um ótimo dia de trabalho.
ATT
Breno Alencar
-
JackL,
O domínio está suspenso do blog pfsense…. se vc tiver problemas em ativar.. eu tenho dois servidores de hospendagem..
e posso disponibilizar sem custo para o blog.Qualquer coisa entra em contato..
-
Tenho conta em provedor de hospedagem também, um domínio ou 100 é o mesmo preço ;)
-
Perfeitamente Senhores…
O problema de inoperância do blog se deu em função de um incidente técnico com a VM do webhosting. O pessoal responsável já está verificando e em breve tudo deve estar normalizado.
Nota importante: Se o problema persistir ou tivermos limitações técnicas para executarmos o nosso planejamento (repositório dos pacotes desenvolvidos por nossos membros, etc…), certamente vamos migrar o blog para outro webhosting! ;)
Abraços!
Jack -
O blog está no ar novamente! ;)
Abraços!
Jack -
Opa blz
e o tuto defintivo para o loadbalance ?
Pois nosso amigo resolveu o problema mas não publicou qual tutorial utilizou isso iria agilizar o fum num todo quando resolvermos algo e postar qual tudo foi utilizado, versão etc
abs
Souza Linux
-
Jackl. Boa tarde.
Sei que seu tempo anda muito, muito corrido esses dias. Curso, Forum, etc..etc..etc..
Mas voce poderia nos passar alguma posição sobre o seu tutorial definitivo do Load Balance + Squid? O amigo que postou a duvida chegou na solução mais não compartilhou ainda conosco.
Muito obrigado e um ótimo dia pra voce.
ATT
Breno Alencar
-
amigo,
Eu não compartilhei ainda.. pq o servidor que eu fiz o load balance esta indo via correio para outro estado.. Assim que ele estive no ar.. eu coloco as telas.
porem já adianto que é quase idêntico ao restante do tutorial..Thiago
-
Ótimo Thiago. Aguardamos seu tutorial. Obrigado pelo retorno.
Abraços
ATT
Breno Alencar
-
Breno,
Os dois tutoriais que eu postei estão totalmente completos e funcionam perfeitamente com a versão 2.0 e 2.0.1 do PFSense. Se com você não está funcionando, ou alguma informação foi passada errada ou não foi passada para nós. Não há segredo como os colegas disseram.
Sobre as Tier, pense o seguinte, as Tier vão de 1 até 5… Eu tenho 3 conexões, quero que elas façam Load Balance e Fail Over entre elas.
Supondo que:
Conexão 1 > 20 Mbps
Conexão 2 > 10 Mbps
Conexão 3 > 1 MbpsNesse caso os Tiers ficariam:
Conexão 1 > Tier 1
Conexão 2 > Tier 2
Conexão 3 > Tier 3Dessa forma as conexões são feitas pela conexão 1, se ela estiver sobrecarregada ou fora do ar, a conexão 2 assume, e se a 2 falhar a 3 assume, tudo isso automaticamente, para o Squid nada mudou.
Siga os tutoriais passo a passo, verifique se não há regras de firewall bagunçando o caminho dos pacotes e etc.
EDITADO:
Eu tenho quatro clientes com conexões redundantes(Fail Over) que mesmo com Tier 1 e Tier 2 fazem load Balance, basta mudar o tipo do Grupo de "Member Down" para "High Latency or Packet Loss".
Isso faz com que o PFSense verifique a latencia da conexão, se ela estiver sendo usada, obviamente a latencia aumenta, assim o PFSense joga para a conexão no Tier abaixo.
Com a perca de pacotes é a mesma coisa, se a conexão não oferece resultados de ICPM(Ping), obviamente ela está offline.
Fiz esse teste em um cliente com duas conexões de 4Mbps, coloquei um download com o FTP da UNICAMP e ocupou a banda da conexão 1, quando abri um video no youtube, lá estava a banda da conexão 2 sendo usada.Eu realmente achei fantástica a facilidade(de configuração) como isso foi implementado no PFSense.
-
Pessoal,
Acho que os usuários breno.ui e manutenspb postaram algo relevante em seus posts sobre os erros apresentados:
http://forum.pfsense.org/index.php/topic,45232.msg236249.html#msg236249
http://forum.pfsense.org/index.php/topic,45232.msg236409.html#msg236409Tentei realizar o seguinte procedimento seguindo o tutorial postado pelo marcello no mesmo post e obtive o mesmo problema apresentado pelo breno.ui e o manutenspb. Então fui investigar e achei algo um tanto interessante.
O squid.conf gerado pelo Pfsense contem o trecho abaixo
Do not edit manually !
http_port 192.168.X.X:3128
http_port 127.0.0.1:3128
http_port 127.0.0.1:3128 transparentO que ao meu ver pode está errado, pois o modo transparente deveria funcionar na minha rede http_port 192.168.X.X:3128 ( se eu selecionar somente a interface LAN na tela do squid o codigo é gerado perfeitamente)
Do not edit manually !
http_port 192.168.X.X:3128 transparent
Então modifiquei manualmente o squid.conf para o seguinte
Do not edit manually !
http_port 192.168.X.X:3128 transparent
http_port 127.0.0.1:3128 transparent
http_port 127.0.0.1:3128BINGO! o Loadbalance passou a funcionar!
Em resumo:
** Funciona (codigo alterado manualmente)**
# Do not edit manually !
http_port 192.168.X.X:3128 transparent
http_port 127.0.0.1:3128 transparent
http_port 127.0.0.1:3128** Não FUnciona (codigo gerado pela interface)**
# Do not edit manually !
http_port 192.168.X.X:3128
http_port 127.0.0.1:3128
http_port 127.0.0.1:3128 transparentResultado
while [ $ ]; do links -dump www.whatismyip.com | grep ' Your IP Address Is:' ; sleep 2; done
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 189.29.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXX
Your IP Address Is: 187.17.XXX.XXXAlguém por favor poderia testar isso!?
att,
-
Vou testar..