Criar um Roteador de Rede no Linux

O Zebra oferece um substituto competente para roteadores Cisco dedicados

Zebra é o software de roteamento TCP/IP livre semelhante ao Internetworking Operating System (IOS) da Cisco. Flexível e poderoso, ele pode rotear protocolos como Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Border Gateway Protocol (BGP) e todos os seus recursos. Este artigo mostra como nossos autores configuram o Zebra e o utilizam para gerenciar roteamentos dinamicamente, em conjunto com o hardware real Cisco.

Dominique Cimafranca, Architect, IBM Global Emerging and Competitive Markets

Dominique Cimafranca é um especialista em Linux TI da IBM Filipinas. Ele implementou o Linux no intervalo total de plataformas de hardware da IBM para clientes de várias empresas. Escreveu sobre o Linux e questões relacionadas à tecnologia nos últimos três anos.



08/Out/2003

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.

O que É 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.]


Instalando o Zebra

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.

Configuração Básica do Zebra

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
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
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.


Resumo

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.

Recursos

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux, Software livre
ArticleID=382569
ArticleTitle=Criar um Roteador de Rede no Linux
publish-date=10082003