Página 3 de 12 PrimeiroPrimeiro 12345678 ... ÚltimoÚltimo
+ Responder ao Tópico



  1. #13

    Padrão Balanceamento - dois links em um único servidor (não dá)

    Citação Postado originalmente por ruyneto
    Agora que o primeiro disse que funciona assim que tiver outra oportunidade com certeza irei testar, então tenho de aproveitar agora pra resolver as duvidas, heehehhe
    falows
    ruy,

    Como eu falei anteriormente não posso crer de maneira alguma que o linux iria pecar em algo tão simples (pelo menos na minha cabeça) e não é apenas o Guilherme que diz ter funcionando, existem muitos provedores no Brasil usando.

    O problema é que o povo têm medo de divulgar porque normalmente ele usa ilegalmente um DSL para fazer isso.

    Para que tu tenha uma idéia vi um screen em um newsgroup inglês onde um cada fez loadbalance entre 4 links DSL e, detalhe, TODOS eles estavam ligados na mesma interface (fazendo alias de ip).

    Ele usou Slackware, mas não divulgou o script para tal feito... O pior é que o cara mandou gráficos de tudo e screens do box... Bah, fiquei de cara.

    Eu testei o balanceamento até que ele trave ele distribui muito bem o tráfego entre os links, mas depois de uns 10 a 15 minutos trava tudo e não abre mais nada...

    Att,

    Nataniel Klug

  2. #14

    Padrão Balanceamento - dois links em um único servidor (não dá)

    Citação Postado originalmente por nataniel
    Citação Postado originalmente por ruyneto
    Agora que o primeiro disse que funciona assim que tiver outra oportunidade com certeza irei testar, então tenho de aproveitar agora pra resolver as duvidas, heehehhe
    falows
    ruy,

    Como eu falei anteriormente não posso crer de maneira alguma que o linux iria pecar em algo tão simples (pelo menos na minha cabeça) e não é apenas o Guilherme que diz ter funcionando, existem muitos provedores no Brasil usando.

    O problema é que o povo têm medo de divulgar porque normalmente ele usa ilegalmente um DSL para fazer isso.

    Para que tu tenha uma idéia vi um screen em um newsgroup inglês onde um cada fez loadbalance entre 4 links DSL e, detalhe, TODOS eles estavam ligados na mesma interface (fazendo alias de ip).

    Ele usou Slackware, mas não divulgou o script para tal feito... O pior é que o cara mandou gráficos de tudo e screens do box... Bah, fiquei de cara.

    Eu testei o balanceamento até que ele trave ele distribui muito bem o tráfego entre os links, mas depois de uns 10 a 15 minutos trava tudo e não abre mais nada...

    Att,

    Nataniel Klug

    Eu tb acho que é possivel, mas ate hoje tentei todos os how to inclusive esse do nano, aplicando todos os patches antes que o shadow reclame, e sempre deu algum probleminha, no momento não tem como eu testar, mas assim que puder testarei de nvo, mas com certeza tem de fazer como funcionar, so que tem alguma dica que o pessoal não divulga, tenho quase certeza disso.

    falows



  3. #15

    Padrão Balanceamento - dois links em um único servidor (não dá)

    Citação Postado originalmente por ruyneto
    Eu tb acho que é possivel, mas ate hoje tentei todos os how to inclusive esse do nano, aplicando todos os patches antes que o shadow reclame, e sempre deu algum probleminha, no momento não tem como eu testar, mas assim que puder testarei de nvo, mas com certeza tem de fazer como funcionar, so que tem alguma dica que o pessoal não divulga, tenho quase certeza disso.
    Exatamente o que eu disse... Também concordo que tenha alguma coisa faltando em algum desses documentos e por isso to lendo uma montanha de papeis...

    Os patchs que são instalados é apenas o do Julian Anastasov (http://www.ssi.bg/~ja/routes-2.6.13-12.diff) que fariam isso:

    Static, Alternative Routes, Dead Gateway Detection, NAT
    Eu fiz esse patch no meu kernel e compilou sem problema algum e sem erro nenhum. Funciona perfeitamente bem o kernel, mas não sei quanto ao patch. Se existe algum outro me avisem, pq não conheço.

    Att,

    Nataniel Klug

  4. #16

    Padrão balanceamento

    Olá Pessoal,

    posso explicar porque nao funciona em alguns casos.

    Algumas informações:

    - o linux limpa de tempos em tempo o cache, remove rotas problematicas entre outras opcoes, tudo isso pode ser configurado (o tempo) nos arquivos em /proc/sys/net/ipv4/route

    - o linux realmente balancea entre dois ou mais link com peso e outra opcoes.

    - não é necessário nenhum patch, basta que tenha total suporte a iproute2 e suas opcoes de roteamento avançado no kernel.

    Caso:

    tenho um laboratorio completo aqui, fiz testes com 6 roteadores e 1 linux pra balancear, e o problema surgiu quando o NAT entrou no cenário, fora isso, tudo funcionou.

    O problema aconteceu porque o NAT é uma técnica orientada a portas de conexoes UDP e TCP, e o que realmente acontece não é uma simples troca de endereço de origem/destino.

    Quando um cliente 192.168.0.20 abre uma porta local alta (ex.: 9812) e se conecta em uma porta remota 80 na web, o linux faz uma assimilação da porta alta do cliente com uma porta alta local no ip da interface por onde o pacote sai, isso pode ser visto no iptraf, ou seja, o que acontece é isso:

    192.168.0.20:9812 -----(linux 200.0.0.2:19218)-------> 200.160.2.3:80

    Assim, quando um pacote da web retorna para a porta alta do linux aberta para um NAT, ele sabe que pode reescrever o destino e entregar para o cliente daquele NAT.

    A porta alta do linux é escolhida aleatoriamente.

    Agora suponha que o linux tem duas interfaces web (eth0 e eth1) e uma local (eth2) onde estão os clientes. na eth0 vc tem 200.0.0.2 e na eth1 201.20.0.3, se o cliente sobre NAT, quando ele for balanceado para a eth0 ele vai sofrer NAT com o ip 200.0.0.2 e uma porta local aleatoria, se sair pela eth1, vai sair com 201.20.0.3 com OUTRA PORTA aleatoria.

    Problema: Se o host web 200.160.2.3:80 sabe que tem uma conexao estabelecida com 200.0.0.2:10284, ele só vai trocar informações nesse "tunel", ou seja, quando o cliente mudar de link e o pacote chegar da porta 201.20.0.3:49244 para 200.160.2.3, não haverá negociação porque o 200.160.2.3 não estabeleceu nenhuma conexão com esse ip nessa porta alta.

    Agora, sempre que um cliente inicia uma conexão, o linux cria um cache da rota seguida da origem e do destino, esse cache tem um limite de registros e um tempo de vida (veja /proc/sys/net/ipv4/route/*). No caso do balanceamento, ele inicia efetivamente, mas quando o cache é limpo e o linux refaz o algoritmo de balanceamento, se o cliente mudar de interface de saida a conexao será perdida, o resultado disso é:

    - downloads serão quebrados
    - msn cai
    - skype cai
    - etc....

    Solução:

    1 - não usar NAT e balancear clientes com IP válido entre dois links de ip fixo contratado e totalmente roteados na internet (rotas conhecidas).

    2 - balancear por serviços e não dinamicamente se for usar NAT.

    3 - fazer a zona do balanceamento com NAT e aumentar o tempo de limpeza do cache para um valor muito alto.

    entenderam?



  5. #17

    Padrão Re: balanceamento

    Citação Postado originalmente por PatrickBrandao
    Solução:

    1 - não usar NAT e balancear clientes com IP válido entre dois links de ip fixo contratado e totalmente roteados na internet (rotas conhecidas).

    2 - balancear por serviços e não dinamicamente se for usar NAT.

    3 - fazer a zona do balanceamento com NAT e aumentar o tempo de limpeza do cache para um valor muito alto.
    Ok Patrick,

    1 - Impossível já que normalmente os backbones vêm com poucos IPs roteáveis, como é o meu caso que tenho apenas 64 IPs em um link de 2 Mbps.

    2 - Correto. Mas como fazer com que determinado serviço vá para tal tabela de roteamento. Tentei com o MARK na tabela mangle (PREROUTING) e usando o fwmark mas não deu certo.

    3 - O que é zone de balanceamento com NAT?

    Att,

    Nataniel Klug

  6. #18

    Padrão Balanceamento - dois links em um único servidor (não dá)

    Caro Patrick, concordo com várias coisas que vc escreveu, mas acho q se equivocou em algumas. Principalmente em relaçao ao NAT. E é exatamente por isso que precisa colocar os PATCHES no Kernel.
    Eu tenho os sistemas funcionando todos com NAT.

    Ele funciona pq tem o sistema de tracking, ou statefull firewall.

    Peço que lêem com calma o tutorial no qual mandei o link.

    Desculpem mas nao tenho muito tempo agora.

    Att,

    Guilherme F. Weidle Jr