O roteamento dinâmico e robusto é tão essencial para trabalhadores da Internet que qualquer engenheiro de interligação de redes inexperiente deve não apenas entender seus conceitos, mas também colocá-los em prática em situações reais. Ao mesmo tempo, esta parte da cena de roteamento é dominada por produtos de fornecedores de equipamentos de rede de alta capacidade, como Cisco, fora dos meios da maioria dos indivíduos: o aprendizado deveria, de outra forma, estar limitado aos ambientes escolar ou de laboratório, com tempo e disponibilidade de recursos como adversários permanentes.
Encaramos um dilema quando organizamos uma aula sobre roteamento TCP/IP. Trabalhando com uma rede de teste pequena, queremos demonstrar os diversos cenários de balanceamento de carga com o Routing Information Protocol (RIP) e o Open Shortest Path First (OSPF). No entanto, estamos limitados pelo número de roteadores Cisco em mãos. Temos alguns PCs disponíveis, portanto, começamos procurando meios alternativos de simular os roteadores Cisco utilizando Linux.
Inicialmente, tentamos configurar nossa rede de teste utilizando os daemons roteados e com gateway tradicionais, mas percebemos rapidamente que suas configurações inadequadas e recursos limitados criavam mais obstáculos que valor. Decidimos buscar meios mais modernos de completar nossa rede e felizmente nos deparamos com o Zebra.
Zebra é um software de roteamento TCP/IP que suporta BGP-4, BGP-4+, OSPFv2, OSPFv3, RIPv1, RIPv2 e RIPng. Ele é distribuído em GNU General Public License e executado no Linux, bem como em outras variantes UNIX. O Zebra está incluído nas distribuições mais modernas como software de roteamento. A versão mais recente, junto com a documentação, está disponível no Web site do GNU Zebra (consulte Recursos para obter um link).
O pacote original Zebra foi escrito por Kunihiro Ishiguro e Yoshinari Yoshikawa em 1996. Hoje, o pacote é mantido principalmente pela IP Infusion -- da qual Mr. Ishiguro é gerente geral de TI -- com auxílio de engenheiros de rede e voluntários de software livre.
O Zebra é único em seu design pois obtém uma abordagem modular para os protocolos que ele gerencia. Os protocolos podem ser ativados ou desativados como ditam os requisitos de rede.
De longe, o recurso mais útil que encontramos com o Zebra foi sua grande similaridade com os formatos de configuração IOS da Cisco. Embora haja algumas diferenças em relação ao IOS, temos a sensação de que os engenheiros de rede já familiarizados com o IOS se sentirão muito confortáveis no ambiente.
Enquanto o Zebra ainda não atinge a versão 1.0 -- a versão no momento desta publicação era 0.93b -- a qualidade do produto é adequada a pequenas redes que precisam de um roteador principal. [Observe que este artigo foi escrito utilizando a versão 0.93b. Versões posteriores podem precisar ser instaladas e configuradas diferentemente. -Ed.]
Nossa plataforma de teste para o Zebra era um ThinkPad X20 antigo, mas robusto, que executava o Red Hat Linux 9. O ThinkPad possui uma porta Ethernet integrada e incluímos outra placa Ethernet PCMCIA para que ele pudesse atuar como roteador. Antes de continuar com a instalação do Zebra, nos certificamos de que as duas placas de rede haviam sido reconhecidas pelo Linux e confirmadas como funcionais.
Um RPM para Zebra-0.93b já é enviado com o Red Hat 9. como esta era a mesma versão disponível no Web site do Zebra, decidimos utilizá-la em vez de fazer download e compilar uma própria. O RPM Zebra instala binários, scripts e arquivos de configuração, bem como manuais de requisitos, exemplos e arquivos de documentação.
O daemon zebra é o gerenciador de roteamento real que controla os outros métodos; ele também fornece o ponto principal de interação com o usuário. Esta era a primeira coisa necessária para a configuração e isso foi feito com o arquivo /etc/zebra/zebra.conf.
O pacote RPM Zebra inclui um arquivo de configuração de amostra completo. Porém, precisamos, no mínimo, criar apenas um arquivo /etc/zebra/zebra.conf que contém as seguintes linhas:
Lista 1. Um Arquivo de Configuração Zebra Mínimo
hostname speedmetal password zebra enable password zebra |
A diretiva hostname especifica o nome do roteador sempre que você entra no modo de configuração interativo. Ela pode ser qualquer rótulo e não necessariamente precisa corresponder ao nome do host da máquina.
A diretiva password especifica a senha para efetuar login no terminal interativo do Zebra.
A diretiva enable password especifica a senha para um nível superior de acesso ao Zebra, quando é necessário fazer alterações de configuração.
Criado o arquivo /etc/zebra/zebra.conf, agora será possível iniciar o daemon zebra executando:
# service zebra start
Agora podemos entrar na sessão interativa do Zebra fazendo telnet na porta 2601 de nossa máquina.
Lista 2. Uma Sessão Zebra de Amostra
[root@speedmetal zebra]# telnet 127.0.0.1 2601 Tentando 127.0.0.1... Conectado a 127.0.0.1. O caractere de escape é '^]'. Este é o Zebra (versão 0.93b). Copyright 1996-2002 Kunihiro Ishiguro. Verificação de Acesso do Usuário Senha: zebra speedmetal> ativado Senha: zebra speedmetal# ? configure Configuração da interface vty copy Copiar configuração debug Funções de depuração (consulte também 'undebug') disable Desativar comando de modo privilegiado end Finalizar modo atual e mudar para o modo de ativação. exit Sair do modo atual e desativar modo anterior help Descrição do sistema de ajuda interativo list Imprimir lista de comandos no Negar um comando ou configurar seu padrão quit Sair do modo atual e desativar o modo anterior show Mostrar informações do sistema em execução terminal Configurar parâmetros da linha de terminal who Exibir quem está no vty write Gravar configuração em execução na memória, rede ou terminal speedmetal# |
A navegação dentro do terminal interativo é fácil. Para dicas sobre os comandos disponíveis, é possível pressionar ? a qualquer momento e as opções serão mostradas na tela. Se você estiver configurando seu próprio roteador Zebra, essa configuração deverá ser familiar se você tiver experiência com Cisco.
Aqui, somente o Zebra foi configurado e está em execução; nenhum dos outros protocolos está configurado. Depois, quando chegarmos na configuração, mostraremos como isso foi feito.
Configurando e Utilizando MRLG
O Multi-Router Looking Glass ou MRLG, escrito por John Frazier da EnterZone, é um utilitário baseado na Web que pode ser usado para exibir as interfaces e rotas reconhecidas pelo Zebra. O MRLG não é nada mais que uma interface da Web para o shell Zebra com um conjunto limitado de comandos, mas no decorrer de nosso teste, descobrimos nele uma forma rápida e útil de exibir rotas. Assim, antes de fazermos a configuração dos protocolos Zebra, mostraremos como instalá-lo.
O MRLG necessita do pacote Perl Net::Telnet, assim, ele pode se comunicar com o shell Zebra. Infelizmente, esse pacote não faz parte da distribuição de estoque do Red Hat 9, portanto, é necessário fazer o download dele (consulte Recursos para obter um link).
Como o MRLG é executado como um aplicativo CGI, também será necessário instalar um servidor da Web. Se você estiver tentando fazer isso, é possível utilizar o RPM httpd de estoque que acompanha o Red Hat 9.
Copiamos o arquivo mrlg.cgi de /usr/share/doc/zebra-0.93b/tools para /var/www/cgi-bin. Então modificamos a linha 36 de mrlg.cgi, alterando-a de:
$url="http://www.sample.com/mrlg.cgi";
para:
$url="http://127.0.0.1/cgi-bin/mrlg.cgi";
O bloco de linhas 168 para 174 também é modificado para que ele seja lido como a seguir:
if ($Form{'router'} eq 'router1')
{
$server = '127.0.0.1';
$login_pass = 'zebra';
$bgpd = "2605";
$zebra = "2601";
$full_tables=1;
|
Para acessar o MRLG, aponte o navegador para http://127.0.0.1/cgi-bin/mrlg.cgi.
Figura 1. O Multi-Router Looking Glass
Configuração Básica do Laboratório
A configuração de nosso laboratório consistiu de dois roteadores Cisco 3620 e um ThinkPad X20 com uma porta Ethernet integrada e uma placa Home-and-Away PCMCIA Ethernet. Os dois roteadores se comunicaram através de uma conexão serial e cada um deles se conectou ao ThinkPad através da Ethernet. Isso é mostrado em nosso diagrama de conexão:
Figura 2. Diagrama de Conexão do Laboratório
Configurando as Interfaces com o Zebra
Nossa primeira investida no roteamento com o Zebra começou com o RIP. Instalamos o Zebra no ThinkPad, como descrito acima. Como precisamos de outra interface de rede no ThinkPad, instalamos um dispositivo simulado de rede como este:
# modprobe dummy
# ifconfig dummy0
Fizemos telnet na porta do Zebra para iniciar a configuração. Nosso diálogo com o Zebra seguiu esta sequência:
Lista 3. Configurando Interfaces IP
Verificação de Acesso do Usuário Senha: zebra speedmetal> ativado Senha: zebra speedmetal# configure terminal speedmetal(config)# interface eth0 speedmetal(config-if)# ip address 192.168.2.1/30 speedmetal(config-if)# quit speedmetal(config)# interface eth1 speedmetal(config-if)# ip address 192.168.1.1/30 speedmetal(config-if)# quit speedmetal(config)# interface dummy0 speedmetal(config-if)# ip address 10.0.2.1/24 speedmetal(config-if)# write Configuração salva para /etc/zebra/zebra.conf speedmetal(config-if)# end speedmetal# show run Configuração atual: ! hostname speedmetal password zebra enable password zebra ! interface lo ! interface eth0 ip address 192.168.2.1/30 ! interface dummy0 ip address 10.0.2.1/24 ! interface eth1 ip address 192.168.1.1/30 ! ! line vty ! end |
Observe que não configuramos os endereços IP no ThinkPad utilizando meios comuns; ao contrário, os configuramos através do Zebra. As configurações são mantidas no arquivo de configuração, /etc/zebra/zebra.conf, para que sempre que o serviço Zebra inicializar, elas tenham efeito.
O conteúdo do nosso arquivo zebra.conf, como modificado pelo Zebra, é:
Lista 4. /etc/zebra/zebra.conf, como Modificado pelo Zebra
! ! Configuração do Zebra salva de vty ! 2003/08/20 00:07:51 ! hostname speedmetal password zebra enable password zebra ! interface lo ! interface eth0 ip address 192.168.2.1/30 ! interface dummy0 ip address 10.0.2.1/24 ! interface eth1 ip address 192.168.1.1/30 ! ! line vty ! |
Também é possível verificar o status das interfaces utilizando o MRLG, selecionando o padrão, "router1," escolhendo o botão de opções "mostrar interface," e clicando em "Executar."
Configurando o Roteamento de RIP com o Zebra
Agora que configuramos as interfaces de rede em nosso roteador ThinkPad/, o configuraremos para trabalhar com as atualizações do RIP. Como já mencionamos anteriormente, o Zebra implementa os protocolos de roteamento utilizando daemons separados, portanto, primeiro é necessário criar um arquivo de configuração simples, ripd.conf, para o daemon RIP em /etc/zebra.
Lista 5. Um Arquivo /etc/zebra/ripd.conf Básico
hostname speedmetal-rip password zebra enable password zebra |
Iniciamos o daemon ripd:
# service ripd start
Feito isso, é possível configurar o daemon RIP fazendo telnet na porta 2602 do nosso roteador Zebra.
Lista 6. Configurando o RIP
Verificação de Acesso do Usuário Senha: zebra speedmetal-rip> ativado Senha: zebra speedmetal-rip# configure terminal speedmetal-rip(config)# router rip speedmetal-rip(config-router)# network 10.0.0.0/8 speedmetal-rip(config-router)# network 192.168.0.0/16 speedmetal-rip(config-router)# end speedmetal-rip# show run Configuração atual: ! hostname speedmetal-rip password zebra enable password zebra ! interface lo ! interface eth0 ! interface dummy0 ! router rip network 0.0.0.0/0 network 192.168.0.0/16 ! line vty ! end speedmetal-rip# write Configuração salva para /etc/zebra/ripd.conf speedmetal-rip# |
O arquivo de configuração ripd.conf resultante é:
Lista 7. Arquivo /etc/zebra/ripd.conf Resultante
! ! Configuração do Zebra salva de vty ! 2003/08/19 13:50:30 ! hostname speedmetal-rip password zebra enable password zebra ! interface lo ! interface eth0 ! interface eth1 ! interface dummy0 ! router rip network 10.0.0.0/8 network 192.168.0.0/16 ! line vty ! |
Configurando o Roteamento de RIP em Roteadores Cisco
Para facilitar a configuração de dois roteadores Cisco 3620, chamados de "A" e "B," foram definidas apenas as configurações básicas para tornar a execução dos roteadores adequada. Isso incluiu a configuração de endereços IP da interface, o endereço de autorretorno e as taxas de transmissão serial para a comunicação correta da porta serial.
Lista 8. Configurando o Roteador A
Router#config terminal Router(config)#hostname RouterA RouterA(config)#int s0/0 RouterA(config-if)#ip address 192.168.0.1 255.255.255.252 RouterA(config-if)#no shut RouterA(config-if)# interface fastEthernet 0/0 RouterA(config-if)#ip address 192.168.2.2 255.255.255.252 RouterA(config-if)#no shut RouterA(config-if)#int loopback 0 RouterA(config-if)#ip address 10.0.0.1 255.255.255.0 RouterA(config-if)#end RouterA#write |
Seguimos um procedimento semelhante para o roteador B.
Lista 9. Configurando o Roteador B
Router#configure terminal Router(config)#hostname RouterB RouterB(config)#int s0/0 RouterB(config-if)#ip address 192.168.0.2 255.255.255.252 RouterB(config-if)#no shut RouterB(config-if)#int fastEthernet0/0 RouterB(config-if)#ip address 192.168.1.2 255.255.255.252 RouterB(config-if)#no shut RouterB(config-if)#int loopback 0 RouterB(config-if)#ip address 10.0.1.1 255.255.255.0 RouterB(config-router)#end RouterB#write |
Configurar o RIP nos roteadores 3620 é muito semelhante aos comandos no Zebra. Acessamos os dois 3620 através de cabos do console e emitimos os seguintes comandos:
Lista 10. Configurando o Roteador A para RIP
RouterA#conf t Digitar comandos de configuração, um por linha. Terminar com CNTL/Z. RouterA(config)#router rip RouterA(config-router)#network 10.0.0.0 RouterA(config-router)#network 192.168.0.0 RouterA(config-router)#network 192.168.2.0 RouterA(config-router)#version 2 RouterA(config-router)#end RouterA#write |
E no roteador B:
Lista 11. Configurando o Roteador B para RIP
RouterB#conf t Digitar comandos de configuração, um por linha. Terminar com CNTL/Z. RouterB(config)#router rip RouterB(config-router)#network 10.0.1.0 RouterB(config-router)#network 192.168.0.0 RouterB(config-router)#network 192.168.1.0 RouterB(config-router)#version 2 RouterB(config-router)#end RouterB#write |
O comando router rip ativa o processo RIP. O comando network informa ao roteador quais redes serão propagadas pelo RIP.
Roteadores Propagados com o RIP
Agora que os roteadores Cisco e o Zebra foram configurados, verificamos se os roteadores estão sendo propagados. Do MRLG, selecionamos "show ip route" e clicamos em "Executar." Isso gerou o seguinte relatório:
Lista 12. Zebra Refletindo nos Roteadores RIP
Códigos: K - rota do kernel, C - conectado, S - estático, R - RIP, O - OSPF,
B - BGP, > - rota selecionada, * - rota FIB
R>* 10.0.0.0/24 [120/2] via 192.168.2.2, eth0, 00:11:05
R>* 10.0.1.0/24 [120/2] via 192.168.1.2, eth1, 00:02:08
C>* 10.0.2.0/24 está diretamente conectado, dummy0
K * 127.0.0.0/8 está diretamente conectado, lo
C>* 127.0.0.0/8 está diretamente conectado, lo
R>* 192.168.0.0/30 [120/2] via 192.168.2.2, eth0, 00:11:05
C>* 192.168.1.0/30 está diretamente conectado, eth1
C>* 192.168.2.0/30 está diretamente conectado, eth0
|
As rotas feitas através do RIP são marcados com um R.
Observe que o Zebra agora conhece as redes 10.0.0.0/24 e 10.0.1.0/24, pois houve transmissão pelos roteadores A e B. Isso foi testado efetuando ping 10.0.0.1 e 10.0.1.1 a partir do roteador Zebra do ThinkPad e efetuando ping 10.0.2.1 (a interface simulada do ThinkPad) de cada roteador.
Para testar o roteador quanto ao failover, desconectamos a conexão da rede do roteador A, o que levou à rede 10.0.0.0/24. Depois do tempo de espera total, cerca de dois minutos, o Zebra conhecia a rota alternativa para a rede 10.0.0.0/24, através do roteador B. Observe que na lista abaixo, o Zebra atingiu 10.0.0.0/24 através de 192.168.1.2, e não de seu caminho anterior.
Lista 13. Zebra Refletindo nos Roteadores RIP
Códigos: K - rota do kernel, C - conectado, S - estático, R - RIP, O - OSPF,
B - BGP, > - rota selecionada, * - rota FIB
R>* 10.0.0.0/24 [120/3] via 192.168.1.2, eth0, 00:00:26
R>* 10.0.1.0/24 [120/2] via 192.168.1.2, eth1, 00:06:02
C>* 10.0.2.0/24 está diretamente conectado, dummy0
K * 127.0.0.0/8 está diretamente conectado, lo
C>* 127.0.0.0/8 está diretamente conectado, lo
R>* 192.168.0.0/30 [120/2] via 192.168.1.2, eth1, 00:00:26
C>* 192.168.1.0/30 está diretamente conectado, eth1
C>* 192.168.2.0/30 está diretamente conectado, eth0
|
Por que o tempo total de espera foi de dois minutos? O tempo de espera padrão para o RIP é de 30 segundos, mas o protocolo RIP especifica três novas tentativas (total de 90 segundos) antes de determinar que uma rota seja inválida e outro período para esvaziar a rota inválida (outros 240 segundos). O RIP geralmente é considerado lento ao responder a falhas de conexão e esse comportamento é claramente demonstrado aqui.
Aqui há uma saída mostrando a tabela de roteamento do roteador A antes da ocorrência do failover.
Lista 14. Tabela de Roteamento do Roteador A antes do Failover
RouterA#show ip route
Códigos: C - conectado, S - estático, I - IGRP, R - RIP, M - móvel, B - BGP
D - EIGRP, EX - EIGRP externo, O - OSPF, IA - OSPF entre áreas
N1 - tipo externo OSPF NSSA 1, N2 - tipo externo OSPF NSSA 2
E1 - tipo externo OSPF 1, E2 - tipo externo OSPF 2, E - EGP
i - IS-IS, L1 - IS-IS nível-1, L2 - IS-IS nível-2, ia - IS-IS entre áreas
* - candidato padrão, U - rota estática por usuário, o - ODR
P - rota estática com download periódico
O gateway do último local não está configurado
10.0.0.0/24 está com sub-rede, 3 sub-redes
R 10.0.2.0 [120/1] via 192.168.2.1, 00:00:11, FastEthernet0/0
C 10.0.0.0 está diretamente conectado, Loopback0
R 10.0.1.0 [120/1] via 192.168.0.2, 00:00:18, Serial0/0
192.168.0.0/30 está com sub-rede, 1 sub-rede
C 192.168.0.0 está diretamente conectado, Serial0/0
192.168.1.0/30 está com sub-rede, 1 sub-rede
R 192.168.1.0 [120/1] via 192.168.0.2, 00:00:18, Serial0/0
[120/1] via 192.168.2.1, 00:00:11, FastEthernet0/0
192.168.2.0/30 está com sub-rede, 1 sub-rede
C 192.168.2.0 está diretamente conectado, FastEthernet0/0
|
E depois do failover:
Lista 15. Tabela de Roteamento do Roteador A depois do Failover
RouterA#show ip route
Códigos: C - conectado, S - estático, I - IGRP, R - RIP, M - móvel, B - BGP
D - EIGRP, EX - EIGRP externo, O - OSPF, IA - OSPF entre áreas
N1 - tipo externo OSPF NSSA 1, N2 - tipo externo OSPF NSSA 2
E1 - tipo externo OSPF 1, E2 - tipo externo OSPF 2, E - EGP
i - IS-IS, L1 - IS-IS nível-1, L2 - IS-IS nível-2, ia - IS-IS entre áreas
* - candidato padrão, U - rota estática por usuário, o - ODR
P - rota estática com download periódico
O gateway do último local não está configurado
10.0.0.0/24 está com sub-rede, 3 sub-redes
R 10.0.2.0 [120/2] via 192.168.0.2, 00:00:09, Serial0/0
C 10.0.0.0 está diretamente conectado, Loopback0
R 10.0.1.0 [120/1] via 192.168.0.2, 00:00:09, Serial0/0
192.168.0.0/30 está com sub-rede, 1 sub-rede
C 192.168.0.0 está diretamente conectado, Serial0/0
192.168.1.0/30 está com sub-rede, 1 sub-rede
R 192.168.1.0 [120/1] via 192.168.0.2, 00:00:09, Serial0/0
192.168.2.0/30 está com sub-rede, 1 sub-rede
R 192.168.2.0 [120/2] via 192.168.0.2, 00:00:10, Serial0/0
|
Configurando o Roteamento de OSPF com o Zebra
Depois do RIP, vamos para o roteamento de OSPF. Embora o OSPF e o RIP possam ser utilizados juntos, preferimos trabalhar com uma configuração mais simples e utilizamos exclusivamente o OSPF. Para desativar o RIP do Zebra, simplesmente fechamos o serviço ripd.
# service ripd stop
Como antes, começamos com um arquivo de configuração básico para o OSPF, neste caso, ospfd.conf, ainda em /etc/zebra.
Lista 16. Um Arquivo /etc/zebra/ospfd.conf Básico
hostname speedmetal-ospf password zebra enable password zebra |
Depois, iniciamos o serviço OSPF:
# service ospfd start
A configuração de OSPF é realmente mais simples do que configurar o RIP: na mais básica, é necessário apenas pedir ao OSPF que ele transmita todas as rotas que conhece.
A porta para a configuração de OSPF é 2604.
Este foi o diálogo para a configuração do OSPF.
Lista 17. Diálogo de Configuração do OSPF
[root@speedmetal zebra]# telnet 127.0.0.1 2604 Verificação de Acesso do Usuário Senha: zebra speedmetal-ospf> ativado Senha: zebra speedmetal-ospf# configure terminal speedmetal-ospf(config)# router ospf speedmetal-ospf(config-router)# network 0.0.0.0/0 area 0 speedmetal-ospf(config-router)# end speedmetal-ospf# write Configuração salva para /etc/zebra/ospfd.conf speedmetal-ospf# show run Configuração atual: ! hostname speedmetal-ospf password zebra enable password zebra ! ! router ospf network 0.0.0.0/0 area 0 ! line vty ! end speedmetal-ospf# |
O arquivo de configuração resultante, ospfd.conf, era:
Lista 18. /etc/zebra/ospfd.conf, como Modificado pelo Zebra
! ! Configuração do Zebra salva de vty ! 2003/08/19 14:22:17 ! hostname speedmetal-ospf password zebra enable password zebra ! ! ! interface lo ! interface eth0 ! interface eth1 ! interface dummy0 ! router ospf network 0.0.0.0/0 area 0 ! line vty ! |
Configurando o OSPF em Roteadores Cisco
Para remover o RIP dos roteadores e incluir o OSPF, executamos os seguintes comandos:
Lista 19. Removendo o RIP e Incluindo o OSPF
RouterA#conf term RouterA(config)no router rip RouterA(config)#router ospf 100 RouterA(config-router)#network 0.0.0.0 255.255.255.255 area 0 RouterA(config-router)end |
Executamos as mesmas etapas para os roteadores A e B.
Roteadores Propagados com o OSPF
Nosso relatório do MRLG ficou semelhante a este:
Lista 20. Zebra Refletindo nos Roteadores OSPF
Códigos: K - rota do kernel, C - conectado, S - estático, R - RIP, O - OSPF,
B - BGP, > - rota selecionada, * - rota FIB
O>* 10.0.0.0/32 [110/11] via 192.168.2.2, eth0, 00:00:01
O>* 10.0.1.1/32 [110/11] via 192.168.1.2, eth1, 00:02:53
O 10.0.2.0/24 [110/10] está diretamente conectado, dummy0, 00:03:31
C>* 10.0.2.0/24 está diretamente conectado, dummy0
K * 127.0.0.0/8 está diretamente conectado, lo
C>* 127.0.0.0/8 está diretamente conectado, lo
O>* 192.168.0.0/30 [110/58] via 192.168.2.2, eth0, 00:00:01
via 192.168.1.2, eth1, 00:00:01
O 192.168.1.0/30 [110/10] está diretamente conectado, eth1, 00:03:21
C>* 192.168.1.0/30 está diretamente conectado, eth1
O 192.168.2.0/30 [110/10] está diretamente conectado, eth0, 00:03:31
C>* 192.168.2.0/30 está diretamente conectado, eth0
|
Observe que as rotas para 10.0.0.1/32 e 10.0.1.1/32 foram marcadas com O, indicando que foram conhecidas através do OSPF.
Quando desconectamos a conexão do roteador Zebra para o roteador A, as rotas foram automaticamente atualizadas. O MRLG reportou o seguinte:
Lista 21. Zebra Refletindo nos Roteadores OSPF após o Failover
Códigos: K - rota do kernel, C - conectado, S - estático, R - RIP, O - OSPF,
B - BGP, > - rota selecionada, * - rota FIB
O>* 10.0.0.1/32 [110/59] via 192.168.2.2, eth0, 00:01:10
O>* 10.0.1.1/32 [110/11] via 192.168.1.2, eth1, 00:09:46
O 10.0.2.0/24 [110/10] está diretamente conectado, dummy0, 00:10:24
C>* 10.0.2.0/24 está diretamente conectado, dummy0
K * 127.0.0.0/8 está diretamente conectado, lo
C>* 127.0.0.0/8 está diretamente conectado, lo
O>* 192.168.0.0/30 [110/58] via 192.168.1.2, eth1, 00:01:10
O 192.168.1.0/30 [110/10[ está diretamente conectado, eth1, 00:10:14
C>* 192.168.1.0/30 está diretamente conectado, eth1
O 192.168.2.0/30 [110/10] está diretamente conectado, eth0, 00:10:24
C>* 192.168.2.0/30 está diretamente conectado, eth0
|
Devido à natureza do estado do link do OSPF, o failover foi muito mais rápido: as novas rotas foram propagadas em 30 segundos.
Começamos com uma simples necessidade de encontrar um roteador Cisco substituto para nossa aula de rede cheia de equipamentos. O Zebra foi uma opção intrigante, da qual recebemos boas recomendações de revisores na Internet. Como mostra nosso teste, o Zebra é um substituto adequado para os roteadores Cisco em ambientes de rede simples e, possivelmente, para algumas instalações mais complexas.
Há, reconhecidamente, alguns níveis de aprendizagem do Zebra. O uso dos daemos de roteamento e os arquivos de configuração separados eram, de alguma forma, confusos a princípio, mas depois de organizados, suas afinidades gerais com o IOS Cisco imediatamente vieram à tona.
No geral, o Zebra faz do roteamento dinâmico em um ambiente Linux uma tarefa muito mais simples. Se você sempre se encontra em situações nas quais precisa configurar um roteador rapidamente com um orçamento limitado, deveria experimentar o Zebra.
- O Web site do GNU Zebra é o lugar ideal para localizar recursos relacionados ao Zebra.
- O Multi-Router Looking Glass requer que o pacote Perl Net::Telnet esteja disponível a partir do CPAN.
- Iljitsch van Beijnum, autor do livro O'Reilly BGP, fornece uma visão geral do Zebra neste artigo "Running Zebra on a Unix Machine".
- Se for necessário obter informações adicionais sobre os fundamentos para a criação de uma LAN Linux, leia "Setting up a Local Area Network" (developerWorks, fevereiro de 2001).
- Migrando para wireless? Leia "Building a wireless access point on Linux" (developerWorks, julho de 2003).
- Mais sobre o software de rede da IBM pode ser encontrado em nossa lista de Redes.
- Encontre mais recursos para desenvolvedores Linux no campo de texto de developerWorks .