Balanceamento e Redundância utilizando 2 Links Speedy (ip fixo)
O script tem a função de realizar o balanceamento e redundância através de 2 Links Speedy
(ip fixo). A idéia é deixar agendado a execução do script, por exemplo, a cada 30 minutos,
verificando se os links estão ativos.
Quando os dois links estiverem funcionando será realizado o balanceamento do acesso a
internet. Em caso de queda dos links será desativado o balanceamento, passando o acesso ao
link ativo.
(ip fixo). A idéia é deixar agendado a execução do script, por exemplo, a cada 30 minutos,
verificando se os links estão ativos.
Quando os dois links estiverem funcionando será realizado o balanceamento do acesso a
internet. Em caso de queda dos links será desativado o balanceamento, passando o acesso ao
link ativo.
Descrição
O script tem a função de realizar o balanceamento e redundância através de 2 Links Speedy
(ip fixo). A idéia é deixar agendado a execução do script, por exemplo, a cada 30 minutos,
verificando se os links estão ativos.
Quando os dois links estiverem funcionando será realizado o balanceamento do acesso a
internet. Em caso de queda dos links será desativado o balanceamento, passando o acesso ao
link ativo.
(ip fixo). A idéia é deixar agendado a execução do script, por exemplo, a cada 30 minutos,
verificando se os links estão ativos.
Quando os dois links estiverem funcionando será realizado o balanceamento do acesso a
internet. Em caso de queda dos links será desativado o balanceamento, passando o acesso ao
link ativo.
# Criado em 11/07/2008 por Marcelo Ferreira(Ten Ferreira)-marceferreira@hotmail.com # Alterado em 24/06/2009 por Marcelo Ferreira(Ten Ferreira)-marceferreira@hotmail.com # #!/bin/bash ################### # Balanceamento e Redundancia com 2 Links de internet SPEEDY ###################### echo "Carregando modulos" modprobe ip_conntrack_ftp modprobe ip_nat_ftp modprobe ipt_mark modprobe ipt_MARK # echo "Habilitar FORWARD" echo "1" > /proc/sys/net/ipv4/ip_forward # echo "Habilitar roteamento com 2 links" echo "0" > /proc/sys/net/ipv4/conf/default/rp_filter # echo "Protecao Contra IP Spoofing" for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 >$i done ################### echo "Definicao de variaveis" GWSPEEDY1="200.204.157.1" GWSPEEDY2="200.171.248.1" GWLOCAL="192.168.10.2" # IPSPEEDY1="200.204.157.192" IPSPEEDY2="200.171.248.36" # REDESPEEDY1="200.204.157.0/24" REDESPEEDY2="200.171.248.0/24" # PLACASPEEDY1="eth2" PLACASPEEDY2="eth1" # ROTADEL="route del default gw" ROTAADD="ip route add" TABLEFLUSH="ip route flush table" # APAGAROTAS=` # GWSPEEDY2 route del -net 200.171.248.0 netmask 255.255.255.0 dev eth1 route add -net 200.171.248.0 netmask 255.255.255.0 gw 200.171.248.36 dev eth1 # GWSPEEDY1 route del -net 200.204.157.0 netmask 255.255.255.0 dev eth2 route add -net 200.204.157.0 netmask 255.255.255.0 gw 200.204.157.192 dev eth2 # REDELOCAL route del -net 192.168.10.0 netmask 255.255.255.0 dev eth5 route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.10.1 dev eth5 ` # ROTAS2LINKS=` # Removendo_rotas $ROTADEL $GWSPEEDY1 $ROTADEL $GWSPEEDY2 # Limpando Rotas das tabelas definidas em /etc/iproute2/rt_tables $TABLEFLUSH speedy1 $TABLEFLUSH speedy2 # Adicionando Rotas $ROTAADD $REDESPEEDY1 dev $PLACASPEEDY1 src $IPSPEEDY1 table speedy1 $ROTAADD default via $GWSPEEDY1 dev $PLACASPEEDY1 table speedy1 $ROTAADD $REDESPEEDY2 dev $PLACASPEEDY2 src $IPSPEEDY2 table speedy2 $ROTAADD default via $GWSPEEDY2 dev $PLACASPEEDY2 table speedy2 # Limpando e adicionando rules as tabelas definidas em /etc/iproute2/rt_tables ip rule del lookup speedy1 ip rule del lookup speedy2 ip rule add from $IPSPEEDY1 table speedy1 ip rule add from $IPSPEEDY2 table speedy2` ################### echo "substituindo rotas" $APAGAROTAS ################### #A regra abaixo é responsável pelo balanceamento com os 2 links (GWSPEEDY1 e GWSPEEDY2) $ROTAS2LINKS echo "Adicionando Rota Default para balanceamento entre os links $GWSPEEDY1 e $GWSPEEDY2 ($PLACASPEEDY1+$PLACASPEEDY2)" > /tmp/rotas.log $ROTAADD default scope global nexthop via $GWSPEEDY1 dev $PLACASPEEDY1 nexthop via $GWSPEEDY2 dev $PLACASPEEDY2 ip route flush cache #Limpa as rotas no cache ################### # $?=0 link estah up ou $?=1 link estah down echo "Teste de conexao aos links de internet" ping 4.2.2.2 -c 2 -I $PLACASPEEDY1 ; TESTESPEEDY1=$? ping 4.2.2.2 -c 2 -I $PLACASPEEDY2 ; TESTESPEEDY2=$? ################### #A regra abaixo informa que nao ha conexao ou link if [[ $TESTESPEEDY1 -eq 1 && $TESTESPEEDY2 -eq 1 ]]; then echo "!!!!!!!!!Atencao nao ha conexao com a internet!!!!!!!!!" > /tmp/rotas.log ################### #A regra abaixo é responsável pelo balanceamento soh com o link GWSPEEDY1 elif [[ $TESTESPEEDY1 -eq 0 && $TESTESPEEDY2 -eq 1 ]]; then echo "Adicionando Rota Default para balanceamento soh com o link $GWSPEEDY1 ($PLACASPEEDY1)" > /tmp/rotas.log $ROTADEL $GWSPEEDY1 $ROTADEL $GWSPEEDY2 $TABLEFLUSH speedy2 $ROTAADD default scope global via $GWSPEEDY1 dev $PLACASPEEDY1 ip route flush cache #Limpa as rotas no cache ################### #A regra abaixo é responsável pelo balanceamento soh com o link GWSPEEDY2 elif [[ $TESTESPEEDY1 -eq 1 && $TESTESPEEDY2 -eq 0 ]]; then echo "Adicionando Rota Default para balanceamento soh com o link $GWSPEEDY2 ($PLACASPEEDY2)" > /tmp/rotas.log $ROTADEL $GWSPEEDY1 $ROTADEL $GWSPEEDY2 $TABLEFLUSH speedy1 $ROTAADD default scope global via $GWSPEEDY2 dev $PLACASPEEDY2 ip route flush cache #Limpa as rotas no cache fi
Eu sou um usuário de nivel basico para intermetiario do linux
já faço algumas coisas leguais no linux, mas não to conseguindo realizar o balanceamento entre dois links de internet
Minha situação:
Tenho um modem do velox 1MB de IP: 192.168.254.254
Tenho outro modem do velox 1MB de IP: 192.168.1.1
onde:
O primeiro modem é ligado na placa eth0 de ip: 192.168.254.1
O segundo modem é ligado na placa eth1 de ip: 192.168.254.2
e a terceira placa eth2 deve liberar o sinal de internet para a rede ela tm o ip 192.168.254.3
Bem o que eu desejo e receber os dois linkes em suas repectivas placas de rede e libera-lo pela eth2 de ip 192.168.254.3
Só Lembrando:
Não tenho ip fixos, tipo doda hora que estabelece a conecxão o modem ganha um ip diferente.
Utilizo o ubuntu desktop 9.04 tem como me passar o que devo fazer ou um artigo que me informe como fazer isso?
Desde já muito Obrigado!