Configurando 2 (dois) links ADSL no mesmo servidor
Nesse artigo mostrarei como configurar, iniciar e autenticar 2 (dois) links ADSL em um mesmo servidor, além de fazermos um balanceamento nesses links aliviando muito o tráfego de nossa rede. Falaremos também um pouco sobre roteamento avançado em Linux, pois iremos usar esse incrível recurso disponível para fazer o balanceamento.
Parte 2: O Linux e suas tabelas de roteamento
Antes de começar, gostaria de dizer que a distribuição usada para fazer
a estrutura de um Advanced Router foi um Slackware 10.1
(instalação full), tendo como hardware um Pentium MMX com 64MB. Você pode
construir seu servidor em qualquer distro, bastando apenas ter os seguintes pacotes instalados:
No Linux pode-se ter múltiplas tabelas de roteamento no kernel. Estas tabelas são identificadas por um número variando de 1 a 255 ou por um nome de acordo com o arquivo /etc/iproute2/rt_tables. Com novas tabelas pode-se criar uma flexível estrutura para implementar uma Política de Roteamento.
Abaixo temos o conteúdo do arquivo /etc/iproute2/rt_tables:
- iptables 1.2.7 ou superior
- iproute2
- rp-pppoe-3.x (para configurarmos nossa conexão ADSL)
Tabelas de roteamento
No Linux pode-se ter múltiplas tabelas de roteamento no kernel. Estas tabelas são identificadas por um número variando de 1 a 255 ou por um nome de acordo com o arquivo /etc/iproute2/rt_tables. Com novas tabelas pode-se criar uma flexível estrutura para implementar uma Política de Roteamento.
Abaixo temos o conteúdo do arquivo /etc/iproute2/rt_tables:
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
- 255 local: A tabela "local" contém rotas para endereços locais, esses endereços locais estão localizados no próprio computador, como os endereços que ele possui, a rede dele mesmo e seus broadcast. NUNCA, nunca manipule essa tabela ou retire-a da ordem nas regras. Ela não é útil para o roteamento de uma rede, só para o próprio computador.
- 254 main: Tabela de roteamento principal. É nela que que ficam as rotas quando adicionamos com o comando route ou ip route. Essa tabela armazena as rotas das redes disponíveis localmente, bem como a rota padrão adicionada com o comando route ou ip route.
- 253 default: A tabela "default" é uma tabela solitária, quase nunca é usada se você tem um "default gateway" na tabela "main".
NOTA: NUNCA, nunca, nunca confunda tabela "default" com "default gateway". "default gateway" é uma rota dentro de uma tabela, "default" é uma tabela. Nome parecido para coisas diferentes.
Veremos agora a saída do comando ip route show table main:
# ip route show table main
200.217.72.1 dev ppp0 proto kernel scope link src 200.164.113.232
10.12.0.0/24 dev eth0 proto kernel scope link src 10.12.0.1
127.0.0.0/8 dev lo scope link
default via 200.217.72.1 dev ppp0
Podemos ver que existem diferentes rotas dentro da tabela de roteamento main. Como já disse, essa é a tabela principal de roteamento do kernel e tem como default gateway o ip do roteador que é o 200.217.72.1, além de rotas para a rede local como a rede 10.12.0.0/24 que tem como destino de saída a interface eth0.
Agora vamos às regras:
Elas definem em que ordem as tabelas serão consultadas. A prioridade vai de 0 até 32767 em ordem crescente, o menor número tem maior prioridade.
As regras não tem nomes, apenas números de prioridade. Já as tabelas têm números e podem ser referenciadas por nomes no arquivo /etc/iproute2/rt_tables.
Por curiosidade iremos ver a saída do seguinte comando:
# ip rule show
0: from all lookup local 32766: from all lookup main 32767: from all lookup defaultTemos que ficar atentos que números de tabelas nada têm a ver com número de regras. A regra 200 nada tem a ver com a tabela 200. Podemos observar também que podemos ver a prioridade das tabelas onde a tabela main possui uma prioridade maior que a tabela default (por ser a tabela principal de roteamento).
Nota: Quanto menor for o número, maior a prioridade de roteamento. Nesse caso a tabela "main" possui o número 32766, que é menor que 32767 e como conseqüência a tabela main tem prioridade maior que a tabela default. O valor máximo de prioridade é 32767, que por padrão já se encontra em uso, bastando apenas utilizarmos prioridades menores que 32766.
Para começarmos a brincar, vamos agora criar uma tabela de roteamento. Mas lembre-se que por enquanto nada vai acontecer com essa tabela, pois ainda não inserimos uma rota nela. Para criarmos uma tabela de roteamento, basta abrir o arquivo /etc/iproute2/rt_tables inserindo a seguinte linha em seu final:
200 velox2
O arquivo ficaria da seguinte forma:
# cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
200 velox2
Pronto, criamos uma tabela de roteamento chamada velox2. Agora vamos ver o conteúdo dessa tabela com o seguinte comando:
# ip route show table velox2
Como vimos, esse comando não resultou em nada. Isso porque a tabela que acabamos de criar não possui rotas inseridas dentro dela. Para frisar, vamos rever a conteúdo da tabela de roteamento chamada main, que por sinal possui rotas e regras dentro dela:
# ip route show table main
200.217.72.1 dev ppp0 proto kernel scope link src 200.164.113.232
10.12.0.0/24 dev eth0 proto kernel scope link src 10.12.0.1
127.0.0.0/8 dev lo scope link
default via 200.217.72.1 dev ppp0
Bom, já criamos nossa primeira tabela de roteamento. Espero que todos que estão lendo esse artigo consigam diferenciar tabelas de roteamento sobre rotas ou regras dentro de uma tabela de roteamento. Também tentei explicar a função da tabela de roteamento main e as rotas contidas dentro dela, mas que ficarão claras no final do artigo, onde faremos isso tudo na prática.
No próximo capítulo, iremos configurar as duas conexões ADSL no mesmo servidor e inserir uma rota na tabela de roteamento que criamos.
Já viu algo sobre dobrar a banda?
Abraços....