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