Criando as regras para fazer o balanceamento

Crie um arquivo de script “.sh” e digite o código abaixo:

# nano /etc/script/balanceamento.sh
#!/bin/bash
# aqui apenas criamos as variáveis com todas as informações da sua rede

# como ip, mascara de sub-rede e gateway.
IF0=eth0
P0_NET="`ip route | grep -v default | grep src | grep $IF0 | awk '{print $1}'`"
IF1=eth1
P1_NET="`ip route | grep -v default | grep src | grep $IF1 | awk '{print $1}'`"
P1="`ip route | grep -v default | grep src | grep $IF1 | awk -F. '{print $1"."$2"."$3".1"}'`"
IP1=`ip addr show dev $IF1 | grep "inet " | awk '{print $2}' | awk -F/ '{print $1}'`
IF2=ppp0
P2_NET="`ip route | grep -v default | grep src | grep $IF2 | awk '{print $1}'`"
P2="`ip route | grep -v default | grep src | grep $IF2 | awk -F. '{print $1"."$2"."$3".1"}'`"

IP2=`ip addr show dev $IF2 | grep "inet " | awk '{print $2}' | awk -F/ '{print $1}'`

# você esta preenchendo as tabelas de roteamento com as variáveis.

# assim, tudo que vier da rede eth1 irá para a tabela link1
ip route add $P1_NET dev $IF1 src $IP1 table link1
ip route add default via $P1 table link1

# tudo que vier da rede ppp0 irá para a tabela link2
ip route add $P2_NET dev $IF2 src $IP2 table link2
ip route add default via $P2 table link2

# na tabela link1 também deverá conter os endereços da eth0 (rede local)

# ppp0 (a outra internet) e o seu computador localhost
ip route add $P0_NET dev $IF0 table link1
ip route add $P2_NET dev $IF2 table link1
ip route add 127.0.0.0/8 dev lo table link1

# na tabela link2 também deverá conter os endereços da eth0 (rede local)

# eth1 (a outra internet) e o seu computador localhost
ip route add $P0_NET dev $IF0 table link2
ip route add $P1_NET dev $IF1 table link2
ip route add 127.0.0.0/8 dev lo table link2

# estamos indicando qual a tabela certa para fazer o roteamento

# indicando o IP de origem e a tabela
ip rule add from $IP1 table link1
ip rule add from $IP2 table link2

# aqui é a parte importante em que ele divide a conexão ao meio usando o 'weight 1'

# significa que seu link1 e link2 são da mesma velocidade
ip route change default scope global nexthop via $P1 dev $IF1 weight 1 nexthop via $P2 dev $IF2 weight 1
Transforme o seu ‘.sh’ em executável:
# chmod +x /etc/script/balanceamento.sh
Salve o arquivo e crie um atalho para que ele execute automaticamente ao iniciar o PC, geralmente eu sempre uso o rc.local para que meus scripts iniciem.
# nano /etc/rc.local

#[adicione no final do arquivo:]/etc/script/balanceamento.sh
Adicionando as tabelas de roteamento:
Edite também o arquivo onde contem as tabelas, só assim o link1 e o link2 serão referenciados.
# /etc/iproute2/rt_tables
E adicione o que estiver o link1 e link2, siga o exemplo abaixo, digite apenas o que estiver em negrito.
#
# reserved values
#

255     local
254     main
253     default
0       unspec

#
# local
#

#1      inr.ruhep

1 link1
2 link2

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X