Balanceamento de Carga

Este tuto foi feito em cima da distribuição Debian 5, com dois links de mesma velocidade.
Neste exemplo teremos 3 interface [eth0 192.168.1.100 e eth1 192.168.2.100 as duas internet] [eth2 192.168.3.1 rede local]

Primeiramente instalamos o pacote iproute 2
# aptitude update
# aptitude install iproute

Após configure as tabelas:

# vim /etc/iproute2/rt_tables
Adicione essas duas linhas no final do arquivo:

200 uplink1
201 uplink2

Vamos configurar nossa interface onde em eth0 192.168.1.1 / eth1 192.168.2.1 são os gateways
# vim /etc/network/interfaces

Reinicie o serviço:
# /etc/init.d/networking restart

Agora vamos criar um firewall, criaremos as rotas.

Use o comando “ip route show table main” para ver como ficou…
# ip route show table main

192.168.1.1/24 dev eth0 proto kernel scope link src 192.168.1.100
192.168.2.1/24 dev eth1 proto kernel scope link src 192.168.2.100
192.168.3.1/24 dev eth2 proto kernel scope link src 192.168.3.1
default
nexthop via 192.168.1.100 dev eth0 weight 1
nexthop via 192.168.2.100 dev eth1 weight 1

Adicione no cron o comando para limpar o cache dos dns a cada 10 min
# vim /etc/crontab
00-59/10 * * * * root ip route flush cached

Aqui fiz o siguinte script para verificar se algum dos link cai, assim refazendo a rota e deixadondo para o que estiver online.

# vim /root/uplink.sh

# chmod 755 /root/uplink.sh

Adicionamos ao cron (5min)
# vim /etc/crontab
00-59/5 * * * * root /root/uplink.sh

Carregue seu firewall na inicialização do sistema, utilize o iptraf para ver o trafego saindo pelas duas interfaces.
Se vc tem dois link com cargas diferente altere o weight.

Abraço

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

3 Resultados

  1. Fabio Florezi disse:

    Tenho um link Speedy de 2mb e outro link via rádio de 3mb, como fica o weight?

  2. BRuno disse:

    E ae cara Parabéns por mais um artigo incrivel e muito util mais deu erro pra mim de sintaxe na linha do (echo “$data -> Link 1 OFF” >> /root/links.log)

    ele da esse erro ( syntax error near unexpected token `&’)

    mais de resto esta tudo ok deixei comentado ate achar a solução.
    flw.

  3. João Bosco disse:

    Eita tutorial porreta, tudo simplese claro com agua cristalina, esta funcionando… agora vamos ver como fazemos as liberações por um link amarrando os ips validos só pelo outro para não ficar caindo os ip validos quando muda o link… se alguem tiver uma dica eu ja agradeço antecipadamente…

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *