Balanceamento de 3 links com redundância no Linux

Como continuação do artigo anterior, neste apresento um script atualizado e modificado para uso de redundância entre 3 links de internet.

[ Hits: 66.417 ]

Por: Cristiano Landsmann em 08/06/2009


Introdução



Seguindo a sequência dos artigos sobre balanceamento e redundância, segue o script atualizado e modificado para uso de três links de internet.

Referência:
Últimas modificações:
  1. Balanceamento de 3 links + Redundância para os 3 links;
  2. Data e Hora dos eventos;
  3. Modificação nas regras para marcar e desmarcar rotas.

Funcionamento:

1. Se cair um link, ele continua fazendo o balanceamento entre 2 links.

2. Caso caiam 2 links, a rede continua funcionando em 1 link.

3. *Soma dos links, é feita da seguinte maneira: 1ª conexão estabilizada pelo link 1, 2ª conexão estabilizada pelo link 2, 3ª conexão estabilizada pelo link 3; estamos usando peso 1:1:1.

4. Os serviços podem ser divididos e remanejados para determinados links usando regras de marcação.

5. Este método de balanceamento e redundância só serve como saída para a Internet.

* Use um programa do tipo download manager que possa dividir o arquivo em partes para testar.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Modificando as tabelas e rotas
   3. Script gwping.sh
Outros artigos deste autor

Squid - Níveis de bloqueio para usuários

Balanceamento de links + redundância + acesso remoto + sites de bancos

Leitura recomendada

Criando um Arch Linux de bolso a partir de qualquer distribuição

Pós-instalação no Slackware 10

Instalação Kickstart (revisado)

Instalando Apache Tomcat em Linux 2.6

Configurando mod_gzip no Apache

  
Comentários
[1] Comentário enviado por gustavoisouza em 09/06/2009 - 07:50h

Primeiramente parabéns pelo artigo.
Já implementei algumas vezes balanceamento, parando nesse problema de sites de banco que interrompem a conexão quando identificam a troca do IP proveniente.
Não tive a chance de testar se poderíamos colocar, em vez do nome de todos os bancos no IPTABLES, colocar --dport 443 para sair por 1 link só resolveria esse problema.

[2] Comentário enviado por info24hs em 09/06/2009 - 08:20h

Amigo,

Veja esse exemplo abaixo, essa regra uso atualmente para me conectar com o Banrisul. Entenda a regra, tudo que vier pela interface da rede interna com origem da minha rede interna e com destino ao ip do banco usando protocolo tcp e as portas 80 e 443 são marcadas para sair pelo link 1. Coloque o ip do banco ai invés do nome para evitar resolução de nomes ou alguma falha com o dns.

# Marcação Banco Banrisul
iptables -I PREROUTING -t mangle -i eth0 -s 192.168.0.0/24 -d 201.55.240.10 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 0x10

Utilizo essa regra para o Banrisul e tmb tenho outras similar para acessar outros bancos...

Abraço..

[3] Comentário enviado por gustavoisouza em 09/06/2009 - 08:31h

Entendi.....

Meu intuito era reduzir o número de linhas e trabalho para pegar todos os IP`s de banco ou outros sites que usam esse tipo de restrição de segurança na unha..... Mas perfeito.

Novamente parabéns, e em breve testo por aqui.

Abç.

[4] Comentário enviado por rafaelturazzi em 10/06/2009 - 08:26h

Parabéns pelo artigo!
Apenas uma pergunta: Como você trabalha com 3 links, você usa no linux as 3 rotas (uma de cada link) ou somente a do link com maior banda? Pergunto isso para saber como devemos proceder para sar um suporte remoto, entro por qual link?
Abraços,
Rafael

[5] Comentário enviado por info24hs em 10/06/2009 - 09:36h

Rafael,

Como tu pode ter visto no esquema acima é necessário configurar as 3 rotas.. uma para cada link, a seguir o comando que irá fazer o balanceamento configura a primeira rota como padrão do sistema, ou seja a segunda rota e a terceira na respectiva ordem. Veja exemplo:

# 1º rota ip x.x.1.1, 2º rota ip x.x.2.1, 3º rota ip x.x.3.1, nesse exemplo a rota padrao será o link 1 porque ele esta na frente de todos. A primeira conexão estabelecida sempre é feita pelo link da rota padrão do sistema, no caso abaixo o 3º será o último link a ser utilizado.

ip route add default scope global nexthop via 192.168.1.1 dev eth1 weight 2 nexthop via 192.168.2.1 dev eth2 weight 1
nexthop via 192.168.3.1 dev eth3 weight 1

# Veja abaixo a regra para acesso remoto configurada e marcada para ser usado pelo link 2, lembrando que o link 1 é a minha rota padrão.

iptables -I FORWARD -p tcp --dport 4893 -j ACCEPT
iptables -t nat -I PREROUTING -i eth2 -p tcp --dport 4893 -j DNAT --to-dest 192.168.0.3
iptables -t mangle -A PREROUTING -p tcp -s 192.168.0.3 --sport 4893 -j MARK --set-mark 0x20


[6] Comentário enviado por qxada07 em 21/06/2009 - 08:26h

Cara.... Meus parabéns... Paguei um pau para este artigo.... Te garanto que muita genth irá precisar deste artigo...

Flw e continue assim!!!!!!!!!!

[7] Comentário enviado por gersonraymond em 24/07/2009 - 20:59h

Amigo dispensa comentários, pois trata -se de artigo de extrema utilidade, show de bola !!! Parabéns !!! e muito mais.

Um grande abraço.

[8] Comentário enviado por fell em 19/11/2009 - 10:04h

Uma duvida como este script faz a chacagem dos links,pois estou vendo que ele checa quando se executa o script,mas depois de carregando o script como que é feito esta checagem dos links.

[9] Comentário enviado por wellington.linux em 12/05/2010 - 16:46h

Ola, tenho uma dúvida e se o link que caiu voltar, esse script vai entender e voltar tudo ao normal?

[10] Comentário enviado por faosfbi em 16/11/2010 - 14:44h

Olá, primeiramente parabenizo pelo excelente artigo, de grande utilidade.
Apenas tenho uma dúvida.
Quando faço um teste de velocidade de uma estação de trabalho que está dentro desta infraestrutura o mesmo me retorna a velocidade de um link e não a somatória de todos os links. É assim mesmo ou o resultado teria de ser a soma de todos os links?

[11] Comentário enviado por giuseppeinfo em 28/03/2014 - 13:11h

Bom dia,

Meu script da erro no while :; do, tem alguma solução para isso.

Obrigado

[12] Comentário enviado por wagnerfs em 09/09/2014 - 18:16h

Parabéns amigo por compartilhar o conhecimento. Sucesso em tua vida.

[13] Comentário enviado por nunesdutra em 06/07/2015 - 11:37h


Bom dia Amigos!!!!

Estou com uma duvida!!!

Eu preciso do SCRIPT GWPING.SH para funcionar? Ou se eu apenas acrescentar as linhas no RC.local ja estarei em redundância???

Obrigado!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts