Vous êtes sur la page 1sur 9

Roteiro de Práticas de Roteamento IGP

usando Quagga

RIP

O objetivo desse roteiro é mostrar como o pacote Quagga pode ser utilizado para construir
roteadores com suporte a protocolos de roteamento utilizando Linux.

No Linux, as principais funções de roteamento estão implementadas ao nível do Kernel.


Contudo, os protocolos de roteamento são considerados aplicações de mais alto nível, e não
estão no Kernel.

O Quagga não altera as funções de roteamento do Kernel do Linux. Ele é um pacote de alto
nível que introduz os protocolos de roteamento e uma interface de gerenciamento de alto
nível. A função do Quagga é preencher de forma automática as tabelas de roteamento.

É possível fazer um roteador com Linux sem utilizar o Quagga. Nesse caso, as tabelas de
roteamento deverão ser configuradas de forma manual.
Pacote Quagga

telnet

2602 2604 2605


ripd ospfd bgpd

administrador telnet
2601 Zebra

rotas

Kernel do Linux
(Roteamento)

roteador

O "Quagga Routing Suite" é um conjunto de programas que permite transformar um equipamento com
sistema operacional linux em um roteador com suporte aos protocolos de roteamento mais utilizados
no mundo IP. Os programas necessários para instalação do Quagga podem ser obtidos no site oficial
do projeto: www.quagga.net. O projeto quagga é oriundo de um projeto mais antigo, denominado
zebra. Trata-se, na verdade, do mesmo projeto.

Quando o projeto ainda se chamava zebra, ele contava com menos participantes. Quando o projeto
cresceu, ele foi renomeado, e passou a contar com a contribuição de uma comunidade mais ampla.
Como tantos outros programas para linux, o quagga pode ser instalado de duas formas: compilando-
se os programas fonte ou instalando pacotes já compilados (por exemplo, no formato rpm).

O quagga traz o seguinte conjunto de programas:


zebra: efetua a comunicação entre os protocolos de roteamento e o kernel do Linux. Não importa qual
protocolo de roteamento esteja sendo usado, o programa "zebra" precisará estar sempre rodando. Se
o zebra estiver inativo, não haverá criação de rotas nas tabelas de rotemento do linux. É possível
acessar esse deamon de maneira remota fazendo-se um telnet na porta TCP 2601. Através do telnet
é possível, por exemplo, verificar as tabelas de roteamento remotamente.
ripd: implementa o protocolo ripv1 e ripv2 para IPv4. Os parâmetros do rip podem ser configurados
remotamente por telnet, através da porta TCP 2602.
ospfd: implementa o protocolo ospfv2 para IPv4. Os parâmetros do ospf podem ser configurados
remotamente por telnet, através da porta TCP 2604.
bgpd: implementa o protocolo bgp para IPv4. Os parâmetros do bgp podem ser configurados
remotamente por telnet, através da porta TCP 2605.

O quagga traz ainda outros protocolos para IPv6, que não serão utilizados nessa prática.
Programas do Quagga para RIP

telnet

2602
ripd

ripd.conf
administrador telnet
2601 Zebra

rotas

Kernel do Linux zebra.conf


(Roteamento)

roteador

O "Quagga Routing Suite" utiliza dois programa para implementar roteadores com suporte ao
protocolo de roteamento RIP: zebra e ripd.

A sintaxe dos comandos do quagga é muito similar aos equipamento que seguem o IOS da cisco.
Após dar telnet em um programa, tem-se acesso a um conjunto de comandos que podem ser listados
com "?". Sempre que se tiver dúvidas sobre um comando, basta digitar "?" que será fornecido a lista
de parâmetros disponíveis para o comando. Por exemplo, se você digitar no zebra:

>> show ?

Serão fornecidas duas opções para completar o comando: route ou ip_forward. A primeira opção
mostra as tabelas de roteamento e a segundo mostra se o roteamento está habilitado ou não.

Os comandos disponíveis inicialmente via telnet não suportam alterações no roteador, apenas
visualização da configuração corrente. Para poder alterar a configuração do roteador (por exemplo,
habilitar remotamente o roteamento) é necessário digitar o comando "enable". Após o comando
"enable" uma lista mais ampla de opções estará disponível quando se digitar "?".
RIP:Configuração do Cenário
(passo 1: configurar VM1)

eth0 Código estudante:


10.13.14.0/25 20.13.14.1
10.13.14.1/25 (101) 11 12 13 14 - X
vlan 11
eth0.11
12.13.14.1/24
VM1
10.13.14.128/25 eth0.2
eth0.12
vlan 12
10.13.14.129/25
eth0 vlan 2
11.13.14.0/25 20.13.14.2 12.13.14.0/24
11.13.14.1/25
vlan 21
eth0.21
12.13.14.2/24
VM2
11.13.14.128/25 eth0.2
eth0.22
vlan 22
11.13.14.129/25

O objetivo deste primeiro cenário é ilustrar a utilização do Quagga para configurar roteadores com
suporte ao protocolo RIP. Para execução dessa prática será necessário criar duas máquinas virtuais,
denominadas de VM1 e VM2 na figura. Conforme mostra o cenário, existem 5 redes interconectadas
por dois roteadores. Para simular várias redes distintas, nós utilizaremos VLANs, de forma
semelhante ao que foi feito no módulo da disciplina de TCP/IP.

1) Preparação do roteador VM1:


1.a) NA ESPEC. Crie uma pasta no seu diretório na espec, e inicialize uma máquina virtual com o
nome VM1
> mkdir quagga
> cd quagga
> linux32.redes VM1
1.b) NA VM1. Configure o endereço IP na máquina virtual para ganhar acesso a espec. Para evitar
conflitos de endereço, utilize parte do seu código de estudante para formar o endereço. Supondo que
seu código de estudante é (101) 11 12 13 14 - X, defina o IP da seguinte forma:
> ifconfig eth0 20.13.14.1/8
1.c) NA VM1. Faça o download do pacote com os programas necessários para prática
> wget 20.0.0.1/~jamhour/pacotes/quagga_rpm.tar.gz
> tar -xzf quagga <TAB>
> cd quagga <TAB>
> ./install.sh
1.d) NA VM1. Configure as VLANs, os endereços IP e habilite o roteamento
> vconfig add eth0 2
> ifconfig eth0.2 12.13.14.1/24 up
> vconfig add eth0 11
> ifconfig eth0.11 10.13.14.1/25 up
> vconfig add eth0 12
> ifconfig eth0.12 10.13.14.129/25 up
> sysctl -w net.ipv4.ip_forward=1
RIP:Configuração do Cenário
(passo 2: configurar VM2)

eth0 Código estudante:


10.13.14.0/25 20.13.14.1
10.13.14.1/25 (101) 11 12 13 14 - X
vlan 11
eth0.11
12.13.14.1/24
VM1
10.13.14.128/25 eth0.2
eth0.12
vlan 12
10.13.14.129/25
eth0 vlan 2
11.13.14.0/25 20.13.14.2 12.13.14.0/24
11.13.14.1/25
vlan 21
eth0.21
12.13.14.2/24
VM2
11.13.14.128/25 eth0.2
eth0.22
vlan 22
11.13.14.129/25

2) Preparação do roteador VM2:


2.a) NA ESPEC. Crie uma pasta no seu diretório na espec, e inicialize uma máquina virtual com o
nome VM1
> mkdir quagga
> cd quagga
> linux32.redes VM2
2.b) NA VM2. Configure o endereço IP na máquina virtual para ganhar acesso a espec. Para evitar
conflitos de endereço, utilize parte do seu código de estudante para formar o endereço. Supondo que
seu código de estudante é (101) 11 12 13 14 - X, defina o IP da seguinte forma:
> ifconfig eth0 20.13.14.2/8
2.c) NA VM2. Faça o download do pacote com os programas necessários para prática
> wget 20.0.0.1/~jamhour/pacotes/quagga_rpm.tar.gz
> tar -xzf quagga <TAB>
> cd quagga <TAB>
> ./install.sh
2.d) NA VM2. Configure as VLANs, os endereços IP e habilite o roteamento
> vconfig add eth0 2
> ifconfig eth0.2 12.13.14.2/24 up
> vconfig add eth0 21
> ifconfig eth0.21 11.13.14.1/25 up
> vconfig add eth0 22
> ifconfig eth0.22 11.13.14.129/25 up
> sysctl -w net.ipv4.ip_forward=1
RIP: Verificação das Rotas
(passo 3: rotas estáticas em VM1 e VM2)

eth0
10.13.14.0/25 20.13.14.1
10.13.14.1/25
vlan 11
eth0.11
12.13.14.1/24
VM1
10.13.14.128/25 eth0.2
eth0.12
vlan 12
10.13.14.129/25
eth0 vlan 2
11.13.14.0/25 20.13.14.2 12.13.14.0/24
11.13.14.1/25
vlan 21
eth0.21
12.13.14.2/24
VM2
11.13.14.128/25 eth0.2
eth0.22
vlan 22
11.13.14.129/25

3) Verificação das rotas :

3.a) NA VM1. Verifique o conjunto de rotas estáticas na VM1. Observe que essas rotas foram criadas
automaticamente quando da atribuição dos endereços IP às interfaces do roteador. Após verificar as
rotas, salve-as em um arquivo txt usando os comandos a seguir:

 route -n

 route –n > rotasEstaticasVM1.txt

3.b) NA VM2. Repita o mesmo procedimento na VM2

 route -n

 route –n > rotasEstaticasVM2.txt


RIP: Configuração do RIP
(passo 4: inicializar o Zebra)

! Exemplo de arquivo de configuração do zebra


!
hostname VM1
password zebra
enable password zebra
!
! Descrição das interfaces
!
!interface lo
! Interface de loopback
!
!interface sit0
! Interface com suporte a multicast
!
! Rota default estática
!ip route 0.0.0.0/0 203.181.89.241
!
!log file zebra.log

/etc/quagga/zebra.conf.sample

4) Inicializar e Testar o Zebra


Todos os programas do quagga utilizam um arquivo texto de inicialização, que contém parâmetros
que controlam o funcionamento do programa. Após a instalação do quagga, um arquivo modelo para
cada programa é criado no diretório /etc/quagga. O arquivo modelo para o zebra está ilustrado na
figura acima. As linhas que começam com ! são comentários. No arquivo modelo, apenas as linhas
que dão o nome ao roteador e definem a senha de acesso via telnet não estão comentadas.

4.a) Na VM1: inicialize o zebra


 cd /etc/quagga
 zebra –d –f zebra.conf.sample

OBS. O parâmetro –d indica que o zebra deve rodar como deamon. Sem ele, o zebra irá travar o
terminal da VM. O parâmetro –f indica qual arquivo de configuração deverá ser usado. Sem ele, o
arquivo default /etc/quagga/zebra.conf será usado.

4.b) Na VM2: inicialize o zebra


 cd /etc/quagga
 zebra –d –f zebra.conf.sample

4.c) Na espec. Verifique se o zebra está rodando dando um telnet nas VMs. Explore alguns
comandos para verificar o funcionamento do zebra.
 telnet IP_VM1 2601
 Password: zebra
 Router> show ip ?
 Router> show ip route
 Router > show ip forwar<TAB>
 Router> exit
RIP: Configuração do RIP
(passo 5: inicializar o rip)

!CONFIGURACAO DA VM1 !CONFIGURACAO DA VM2


! !
hostname ripd hostname ripd
password zebra password zebra
log stdout log stdout
! !
interface eth0 interface eth0
ip rip authentication mode text ip rip authentication mode text
ip rip authentication string teste ip rip authentication string teste
interface eth0.11 interface eth0.21
ip rip authentication mode text ip rip authentication mode text
ip rip authentication string teste ip rip authentication string teste
interface eth0.12 interface eth0.22
ip rip authentication mode text ip rip authentication mode text
ip rip authentication string teste ip rip authentication string teste
! !
router rip router rip
redistribute kernel redistribute kernel
redistribute static redistribute static
network 0.0.0.0/0 network 0.0.0.0/0
! !
line vty line vty
! !

5) Configurar e Inicializar o RIP (ripd)


Para interpretar os arquivos de configuração mostrados na figura, faça referência ao cenário descrito
no passo 3 deste roteiro. O arquivo de configuração do RIP é bastante simples. Basicamente, ele traz
as opções de autenticação para cada interface. Para que as mensagens RIP sejam aceitas por outros
roteadores, as opções de autenticação precisam ser idênticas. As opções de redistribuição indicam
que além das rotas rip recebidas, as rotas estáticas e aquelas criadas pelo kernel também serão
distribuídas. A opção network indica que serão aceitas rotas oriundas de qualquer range de endereço
IP.

5.a) Na VM1: crie um arquivo /quagga/etc/ripd.conf idêntico ao da figura e inicialize o ripd


> cd /etc/quagga
> vi ripd.conf <INSERT> .... Copie o texto da figura ..... salve com <ESC>wq
> ripd –d –f ripd.conf

5.b) Na VM2: crie um arquivo /quagga/etc/ripd.conf idêntico ao da figura e inicialize o ripd


> cd /etc/quagga
> vi ripd.conf .... Copie o texto da figura ..... salve com <ESC>wq
> ripd –d –f ripd.conf

5.c) NA espec: verifique a configuração dos roteadores rip


> telnet IP_VM 2602
> password zebra
> enable
> show ru<TAB>
> exit

5.d) Na VM1: verifique e salve as rotas criadas na VM1


 route –n
 route –n > rotasRIPVM1.txt

5.e) Na VM2: verifique e salve as rotas criadas na VM2


 route –n
 route –n > rotasRIPVM2.txt
Relatório RIP

• Responda as seguintes perguntas em um arquivo txt:

• A) Quais as rotas que apareceram em VM1 antes do RIP


• B) Quais as rotas que apareceram em VM2 antes do RIP
• C) Quais as rotas que apareceram em VM1 depois do
RIP
• D) Quais as rotas que apareceram em VM2 depois do
RIP

Para entrega desse relatório, crie um arquivo texto com as respostas de A até D.

Para ilustrar as rotas, use a mesma sintaxe que você obteve com o comando “route –n”.
Preferencialmente, copie o texto da rotas diretamente dos arquivos criados nos passos 3a,
3b, 5d e 5e.

Para transferir os arquivos de rota para espec utilize o seguinte comando na VM:

scp *.txt login_espec@20.0.0.1:.

Não esqueça de sair das máquinas virtuais com halt.