Conexões redundantes e com balanceamento de carga - Ubuntu 9.04

Como distribuir o tráfego da rede local por várias conexões de internet, dividindo por redes, e deixá-las redundantes (se uma cair, a outra assume todo o tráfego). Configuração feita em um Ubuntu Server 9.04.

[ Hits: 50.253 ]

Por: Reinaldo Borges em 23/10/2009


Início automático e conclusão



7) Iniciar o script automaticamente

Para que seu script inicie automaticamente ao ligar seu firewall, execute:

# cd /etc/rc2.d
# ln -s ../init.d/roteamento S99roteamento


Conclusão

Fizemos o balanceamento de conexões simplesmente dividindo o tráfego de cada uma das três redes entre as três conexões de internet.

Você pode usar outra estratégia para balancear as conexões. Para isso, modifique essa parte do script:

# ### MARCAR PACOTES DA REDE LOCAL ###
# Marcaremos apenas os pacotes que não forem direcionados para IPs da rede local (192.168.0.0/16)
# para evitar que o firewall tente entregar os pacotes da rede local pelas conexões de internet

# Pacotes da rede 1
iptables -t mangle -$CMD PREROUTING -i eth0 -s 192.168.251.0/24 -d ! 192.168.0.0/16 -j MARK --set-mark 1
# Pacotes da rede 2
iptables -t mangle -$CMD PREROUTING -i eth0 -s 192.168.252.0/24 -d ! 192.168.0.0/16 -j MARK --set-mark 2
# Pacotes da rede 3
iptables -t mangle -$CMD PREROUTING -i eth0 -s 192.168.253.0/24 -d ! 192.168.0.0/16 -j MARK --set-mark 3

# Demais pacotes (todos os que ainda não foram marcados) - Serão marcados como Rede 1
iptables -t mangle -$CMD PREROUTING -i eth0 -m mark --mark 0 -d ! 192.168.0.0/16 -j MARK --set-mark 1

Alguns exemplos de forma de divisão de tráfego:
  • Por porta: conexões para porta 80 (http), 443 (https) e 21 (ftp) usam tabela 1, porta 25 (smtp) e 110 (pop) usam tabela 2 e restante usam tabela 3.
  • Por destino: acessos ao site X (IP nnn.nnn.nnn.nnn) usam tabela 1, ao site Y usam tabela 2 e demais tabela 3.
  • Estatística: a cada três novas conexões, a primeira usa tabela 1, a segunda tabela 2, e a terceira tabela 3.

Para saber mais sobre essas possibilidades, pesquise as opções para a tabela Mangle do Iptables.

Página anterior    

Páginas do artigo
   1. Introdução e preparação
   2. Personalizar script de conexão e desconexão
   3. Configurar as rotas e regras
   4. Início automático e conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Firewall iptables com NAT

Análise da distribuição Mandrake Security

Criando um firewall simples e compartilhando a conexão usando o IPtables

Bloqueando programas P2P com iptables

Criando firewalls dinâmicos com Iptables Recent

  
Comentários
[1] Comentário enviado por grandmaster em 24/10/2009 - 08:21h

Sempre util.

---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[2] Comentário enviado por xloko em 17/11/2009 - 13:51h

Olá! isso funciona no DEBIAN?

[3] Comentário enviado por zarreff em 29/05/2011 - 12:59h

Muito bom mesmo!

Mas se eu quisesse utilizar uma conexão para toda a rede, e manter uma outra apenas para conexão do servidor para internet.
Como eu faria?
Preciso utilizar DMZ no modem da outra conexão, mas não está funcionando.
O servidor não está se comunicando.

A solução seria mesmo o iproute2.

[4] Comentário enviado por reinaldoborges em 21/01/2013 - 09:53h

ERRATA!!!

No passo (3), antes das linhas:

# Atualizar tabela de rotas
ip route flush cache


Acrescente a seguinte linha:

ip rule add from $PPP_LOCAL/32 lookup $TABELA prio 10


E no passo (4), acrescente no final do arquivo as linhas:

ip rule del from $PPP_LOCAL/32 lookup $TABELA prio 10
ip route flush cache


Contribuir com comentário