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: 51.610 ]

Por: Reinaldo Borges em 23/10/2009


Introdução e preparação



Introdução

Cenário:
  • Três redes locais (192.168.251.0/24, 192.168.252.0/24 e 192.168.253.0/24).
  • Três conexões com a internet (conexões ADSL PPPoE).
  • Firewall deve fazer distribuição do tráfego, cuidar da redundâncias das conexões e aceitar conexões de entrada nas duas ADSLs.

O Firewall roda Ubuntu Server 9.04. A localização dos arquivos de configuração podem variar se sua distribuição for diferente.

Bastam duas conexões para que a configuração funcione. Vou mostrar com três conexões, já que foi o meu caso. O processo é mesmo se quiser usar mais conexões.

1) Configurar conexões ADSL

Não vou entrar em detalhes, mas cada um dos modens deve estar conectado à uma interface (placa de rede) diferente, senão os pacotes de configuração da conexão PPPoE serão confundidos. Os modens devem estar no modo Bridge/Ponte.

Feito isso, crie um arquivo de configuração para cada provedor na pasta /etc/ppp/peers/

Exemplo de um arquivo (com comentários):

# recebe endereço IP do provedor
noipdefault
# define a rota padrão
defaultroute
# esconde a senha
hide-password
# não solicita que o provedor se autentique
noauth
# mantém a conexão ativa e tenta reconectar se cair
persist
# indique aqui em qual interface está o modem desse provedor (eth0, eth1, eth2, ...)
plugin rp-pppoe.so eth1
# nome do usuário
user "login@provedor.com.br"
# IMPORTANTE
# esse parâmetro define qual número de interface ppp recebera (ppp0, ppp1, ppp2, ...)
# É importante que tenha sempre o mesmo número para o funcionamento dos scripts
unit 1

Nos scripts usarei os arquivos /etc/ppp/peers/gvt1, /etc/ppp/peers/gvt2 e /etc/ppp/peers/oii.

As conexões da GVT serão sempre ppp1 e ppp2, e da Oi será ppp3.

Lembre-se também de configurar a senha nos arquivos /etc/ppp/chap-secrets e /etc/ppp/pap-secrets.

Basta acrescentar uma linha para cada provedor:

"login@provedor.com.br" * "senha"

Para conectar, digite:

# pon gvt1

Onde "gvt1" é o nome do arquivo que você criou em /etc/ppp/peers/.

Para desconectar, digite:

# poff gvt1

2) Preparar tabelas de rotas

Para facilitar o entendimento dos scripts, nomearemos nossas tabelas de roteamento. Para isso edite o arquivo /etc/iproute2/rt_tables e acrescente no final os números e nomes das tabelas de roteamento:

21   GVT1
22   GVT2
23   OI1

    Próxima página

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

Dois links de ADSL em um mesmo servidor

Como construir um firewall de baixo custo para sua empresa (parte 3)

Automatizando Firewall com IDS Snort e SnortSam

NoCatAuth - Construindo um firewall/gateway autenticado

Script de Firewall com redirecionamento de portas em Linux Debian

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts