Página 7 de 7 PrimeiroPrimeiro ... 234567
+ Responder ao Tópico



  1. Até onde eu saiba cada tentativa de navegação sairá por um link diferente pois eles estão como mesmo peso. Tanto é que o MSN por exemplo, quando utilizado o esquema de balanceamento de links, cai a cada 1 minuto.

    Lógico, essa situação do MSN e de outros serviços cair acontece se não for definido um link padrão para uma determinada rede ou ainda marcar pacotes por serviço e encaminhar por uma determinada tabela com somente um link.

    A vantagem de se trabalhar com esse balanceamento é poder fazer NAT para qualquer endereço interno utilizando qualquer link para entrada, coisa que trabalhando sem o load balancing não seria possível pois contamos com apenas um link disponível por vez.

    Há várias maneiras de fazer, esta sem dúvida é bem tranquila!

  2. Citação Postado originalmente por PEdroArthurJEdi Ver Post
    Como muitos tem dúvidas de como balancear o acesso a Internet por diversos links, resolvi escrever esse mini-howto para evitar a necessidade de novos post no fórum.

    Vamos ao problema. Imaginemos um roteador rodando kernel GNU/Linux com as opções de roteamento avançado ativado. Este computador está conectado a N links dedicados. Desejamos balancear a carga das requisições entre esses N links. Sejam LIP0, LIP1, ... , LIPN os endereços IP atribuidos aos links, LIF0, LIF1, ... , LIFN as interfaces de rede, LNTW, LNTW1, ... , LNTWN as redes e LGW0, LGW1, ... , LGWN os gateways de cada link.

    Primeiramente devemos criar N tabelas de roteamento, onde N é o número total de links que o gateway possui:
    echo 10 tb0 >> /etc/iproute2/rt_tables
    echo 11 tb1 >> /etc/iproute2/rt_tables
    ...
    echo XX tbN >> /etc/iproute2/rt_tables
    Feito isso, devemos atribuir as redes dos links as suas respectivas tabelas de roteamento:
    ip route add LNTW0 dev LIF0 src LIP0 table tb0
    ip route add to 0/0 via LGW0 table tb0

    ip route add LNTW1 dev LIF1 src LIP1 table tb1
    ip route add to 0/0 via LGW1 table tb1
    ...
    ip route add LNTWN dev LIFN src LIPN table tbN
    ip route add to 0/0 via LGWN table tbN
    deve-se, também, incluir informações sobre a rede local:
    ip route add LOCALNET dev IFLOCALNET table tb0
    ip route add LOCALNET dev IFLOCALNET table tb1
    ...
    ip route add LOCALNET dev IFLOCALNET table tbN
    obs: todas as redes locais devem estar presentes em todas as tabelas!!!

    Agora, devemos definir as rotas das redes através da tabela padrão:
    ip route add LNTW0 dev LIF0 src LIP0
    ip route add LNTW1 dev LIF1 src LIP1
    ...
    ip route add LNTWN dev LIFN src LIPN
    obs: se você está com seus link configurados através dos arquivos de configuração das distribuiçoes, a etapa anterior pode ser omitida. Basicamente se ao tentar inserir uma rota na tabela padrão, e a mesma já existir você receberá a seguinte mensagem:
    RTNETLINK answers: File exists

    Agora você adiciona regras que decidem por onde os pacotes de vem passar:
    ip rule add from LIP0 table tb0
    ip rule add from LIP1 table tb1
    ...
    ip rule add from LIPN table tbN
    Por ultimo, porém o não menos importante, na verdade escencial pois até agora não fizemos nada... Devemos definir o balanceamento de carga:
    ip route add to 0/0 nexthop via LGW0 dev LIF0 weight 1 nexthop via LGW1 dev LIF1 weight 1 ... nexthop via LGWN dev LIFN weight 1
    Note que o parâmetro weight pode ser explorado para atribuir maior prioridade de envio por um provedor. E você também pode (deve) atribuir um link padrão:
    ip route add to 0/0 via LGWP
    Bem, pronto... Agora apenas algumas considerações...

    O kernel mantém tabelas de roteamento estátcas, portanto, se N pessoas tentarem acessar o site Google por exemplo, todas as tentativas de conexão sairão pelo mesmo link.

    Existem alguns patchs disponíveis para melhorar o mecanismo de roteamento. Procurem, informem-se e vejam se são adequados as suas realidades.

    Com o uso de regras de roteamento (ip rule) você pode definir qual link padrão para a saída de pacotes de uma determinada rede. Ex:
    ip rule add from 10.1.0.0/24 table tb0
    ip rule add from 10.2.0.0/24 table tb1
    Pode-se. também, dividir por seviços. ex:
    iptables -t mangle -A PREROUTING -i LOCALNET -p tcp --dport 21 -j MARK --set-mark 0x60
    ip rule add fwmark 0x60 table tbN
    Só isso... fiz este post com o intuíto dele se tornar permanente... espero que os moderadores aceitem...
    Ainda não obtive exito utilizando uma unica interface para odos os links.

    A propósito, glaucio você é irmão do gustavo?



  3. Olá o único problema ao meu ver é que a cada pouco reseta as conexões e cai os serviços abertos.


















    O único poblema com esse esquema com iproute

  4. Citação Postado originalmente por m4d3 Ver Post
    Ainda não obtive exito utilizando uma unica interface para odos os links.

    A propósito, glaucio você é irmão do gustavo?
    Sim! Vc é o Luciano Rampanelli de Realeza?






Tópicos Similares

  1. Balanceamento de Carga do Link
    Por SeuMadruga no fórum Redes
    Respostas: 27
    Último Post: 10-05-2015, 19:55
  2. Balanceamento de portas entre 2 links
    Por angelangra no fórum Redes
    Respostas: 15
    Último Post: 20-11-2007, 01:03
  3. Balanceamento de carga usando 2 links
    Por dumer99 no fórum Redes
    Respostas: 16
    Último Post: 14-12-2006, 15:42
  4. Respostas: 1
    Último Post: 16-08-2006, 09:08
  5. Respostas: 3
    Último Post: 19-01-2003, 10:32

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L