Balanceamento com 2 links ADSL
Tenho o seguinte script
#####################################
echo "Inicializando procedimento de rotas"
# RESETANDO TABELAS DE ROTAS, PADRAO DO SISTEMA
echo "255 local" > /etc/iproute2/rt_tables
echo "254 main" >> /etc/iproute2/rt_tables
echo "253 default" >> /etc/iproute2/rt_tables
echo "0 unspec" >> /etc/iproute2/rt_tables
# ADICIONANDO OUTRAS TABELAS
echo "200 router1" >> /etc/iproute2/rt_tables
echo "201 router2" >> /etc/iproute2/rt_tables
echo "202 router3" >> /etc/iproute2/rt_tables
echo " declarando variaveis"
GATE1=200.xxx.xxx.1
LINK1=200.xxx.xxx.ip
GATE2=192.168.1.1
LINK2=192.168.1.ip
# RESETANDO AS TABELAS
echo " resetando as tabelas"
ip route flush table router1
ip route flush table router2
ip route flush table router3
# CRIANDO A TABELA 1
echo " criando a tabela 1"
ip route show table main | grep -v ^default | while read ROUTE ; do
ip route add table router1 $ROUTE
done
ip route add $LINK1 via $GATE1 table router1
ip route add default via $GATE1 table router1
# CRIANDO A TABELA 2
echo " criando a tabela 2"
ip route show table main | grep -v ^default | while read ROUTE ; do
ip route add table router2 $ROUTE
done
ip route add $LINK2 via $GATE2 table router2
ip route add default via $GATE2 table router2
# CRIANDO A TABELA 3
echo " criando a tabela 3"
ip route add default table router3 nexthop dev eth0 via $GATE1 weight 1 nexthop dev eth1 via $GATE2 weight 1
ip rule add from $LINK1 table router1 prio 26
ip rule add from $LINK2 table router2 prio 27
ip rule add fwmark 1 table router1 prio 29
ip rule add fwmark 2 table router2 prio 30
ip rule add fwmark 3 table router3 prio 25
ip route flush cache
#####################################
foram criadas 3 tables de roteamento!
1 para ir por um link
2 para ir por outro link
3 para ir pelos 2 links, em nexthopes
depois no eh so marcar no firewall os pacotes, de acordo com a marcação, os pacotes sairão pelo tabela de roteamento escolhido!
### faz com que o servico dns faca consultas pelo outro link
$IPTABLES -t mangle -A OUTPUT -p UDP --dport 53 -m owner --uid-owner 25 -j MARK --set-mark 2
### faz o squid utilizar a tabela de roteamento com load balance
$IPTABLES -t mangle -A OUTPUT -p TCP -d ! 192.168.0.0/24 --dport 80 -m owner --uid-owner 23 -j MARK --set-mark 3
Por ai vai! depende da necessidade de cada um!
Detalhes: Utilizando o nexthop quando uma solicitação é estabelecida por um link, ela se mantem no mesmo!
Quando um download eh feito, ela nao usa os 2 links ao mesmo tempo! ele utiliza ate a velocidade maxima de um dos links!
Não é 100% balanceado, mais já eh uma boa solução!
Espero ter ajudade a todos!
Balanceamento com 2 links ADSL
Opa uma alma que teve sucesso... finally.
Bom quanto a nao ser um balanceamento 100% eh verdade... afinal ele vicia a rota e nao verifica se ela esta ativa... sao esses os problemas, tem um patch que visa a corrigir o lance da verificacao mas eu nao testei, pois como foi dito, se vc 'perder' um link ele nao recalcula as rotas e continua enviando pelo link down.
quanto ao vicio de rotas, uma solucao ... ops gambiarra seria da flush cache no cron de tempos em tempos...
*sniff* comprem um roteador e rodem um protocolo de roteamento
:cry:
Balanceamento com 2 links ADSL
Bom vou dar uma testada nesse script ae tb, e se achar melhorias posto ae.
falows
Balanceamento com 2 links ADSL
Obrigado! acho que ja é um bom inicio pra testar na rede
Por quanto vc falava sobre o funcionamento e a verifica dos gateways padrão seria suficiente um script no crontab a cada 1 ou dois minutos que da uma serie di ping nos gateways e verificam se estam ativos...então deveria automaticamente recuperar a rota....
Essa é uma solução posivel se o balanceamento de carga funcionar....
flws :)
Olha pessoal... Eu sei como fazer, mas tem um problema!
Consegui somar vários links de dados, sendo 02 adsl e 01 hdlc, para isto utilizei iproute2 + iptables.
Fiz vários downloads e realmente uniram os 3 circuitos, mas quando se trata de redundância... não funcionou...
Ex. Quanddo estou fazendo download de um arquivo em um server FTP e uma
adsl perde a conexão, os demais links não funcionam, e fica apenas em cache rota para a adsl que esta com problema, e quando divido o arquivo em varias partes, ex. flashget, e perde a conexão de uma adsl, ele continua sem nenhum problema...
Conclusão: funcionou apenas a junção dos circuitos, que rendeu o total de 2,6Mb. "02 adsl de 800Kb + 01 hdlc 1024Kb".
Obs.: Quando tenho apenas uma conexão a um host remoto e a conexão se faz pela adsl que apresentou problemas não consigo continuar o download...