Load balance

1. Load balance

Max Leno
mleno

(usa Debian)

Enviado em 16/02/2011 - 08:22h

Caros Amigos,
Tenho dois links de internet e gostaria de um passo a passo para fazer load balance no meu servidor Debian.
Gostaria que quando um link caisse o outro percebesse e entrasse no ar automáticamente dai quando o link principal voltasse ele assumisse o comando novamente. Será que tem alguém que pode me ajudar a fazer isso?
Se alguem poder me ajudar ficarei muito grato.


  


2. Segue Script (Faça as alterações conforme sua necessidade)

Marx
hackingsnake

(usa Slackware)

Enviado em 16/02/2011 - 09:16h

Só altere os dados que estiverem em LETRA_MAIÚSCULAS=

depois disso salve esse script com o nome que vc quiser e execute via nohup ex.: salvei com o nome de failover.sh vou chamar este no rc.local nohup failover.sh

Boa Sorte.


# gwping

#IP Address or domain name to ping. The script relies on the domain being
#pingable and always available
##Modifique para um endereço mais perto, ou seja mais rápido, neste caso usei o IP da GVT
TESTIP=www.uol.com.br

# Relative weights of routes. Keep this to a low integer value. I am using 4
# for TATA connection because it is 4 times faster
## Peso das rotas, como o link da Gvt é 2x mais rápido que a BRT, deixei a proporção 2:1
W1=2
W2=1

# Broadband providers name; use your own names here.
## Mudei para o nome das minhas tabelas
NAME1=GVT
NAME2=BRT

# No of repeats of success or failure before changing status of connection.
## No meu caso se houver 4 tentativas sem resposta o link é desabilitado, uma tentativa com sucesso ele reabilida o link. Assim o script não vai trocar a rota padrão e achar que o link caiu quando houver sobrecarga.
SUCCESSREPEATCOUNT=1
FAILUREREPEATCOUNT=4

# Abaixo acrescentei as regras para desmarcar os pacotes caso um link caia,
# assim os pacotes marcados não retornaram sem resposta.

echo Switching to $NAME2
ip route replace default scope global via $GW2 dev $EXTIF2
ip rule del fwmark 0x10 lookup gvt prio 3 ##Deleta a marcação de pacotes
ip rule del fwmark 0x20 lookup brt prio 3 ##Deleta a marcação de pacotes
ip route flush cache #Limpa as rotas no cache

elif [[ $LLS1 -eq 0 && $LLS2 -eq 1 ]]; then
echo Switching to $NAME1
ip route replace default scope global via $GW1 dev $EXTIF1
ip rule del fwmark 0x10 lookup gvt prio 3 ##Deleta a marcação de pacotes
ip rule del fwmark 0x20 lookup brt prio 3 ##Deleta a marcação de pacotes
ip route flush cache #Limpa as rotas no cache

elif [[ $LLS1 -eq 0 && $LLS2 -eq 0 ]]; then
echo Restoring default load balancing
ip rule add fwmark 0x10 lookup gvt prio 3 ##Adiciona a marcação de pacotes quando voltar o link que caiu
ip rule add fwmark 0x20 lookup brt prio 3 ##Adiciona a marcação de pacotes quando voltar o link que caiu
ip route replace default scope global nexthop via $GW1 dev $EXTIF1 weight $W1 nexthop via $GW2 dev $EXTIF2 weight $W2
ip route flush cache ##Limpa as rotas no cache


3. Re: Load balance

Max Leno
mleno

(usa Debian)

Enviado em 16/02/2011 - 16:23h

Vc já fez isso em algum servidor e funfou perfeitamente? Vc está partindo do presuporto que já configurei todas minhas placas de rede.? e o nat como fica?


4. Funciona 1000%

Marx
hackingsnake

(usa Slackware)

Enviado em 16/02/2011 - 16:30h

Estou partindo que vc tenha o MASQUERADE já setado no seu firewall, sendo que esse script fica pura e simplesmente para o fail-over.:

iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE

ethx = eth0,eth1,eth2.... (A eth que está ou estão os links de internet) no caso como vc tem 2 links, terá que ter 2 regras -o uma para cada ETH

Good Luck


5. Re: Load balance

Max Leno
mleno

(usa Debian)

Enviado em 16/02/2011 - 16:36h

Entendi, vou experimentar nesse final de semana quando aqui não tem expediente dai fica legal de trabalhar.
Vamos torcer pra dar certo, pois nunca fiz essa façanha. srsrsrsr.
Mais uma vez irmão pinguim agradeço seu apoio qualquer coisa te chamo.srsrsr






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts