Laboratório: NetKit Roteamento: mudanças entre as edições
(67 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
=Laboratório: NetKit= | =Laboratório: NetKit Roteamento= | ||
O '''[http://wiki.sj.ifsc.edu.br/wiki/index.php/Netkit2 Netkit2]''' <ref name="Netkit2">http://wiki.sj.ifsc.edu.br/wiki/index.php/Netkit2</ref> é um ambiente para experimentos com redes de computadores desenvolvido no Câmpus São José, do IFSC, inspirado no ''' | O '''[http://wiki.sj.ifsc.edu.br/wiki/index.php/Netkit2 Netkit2]''' <ref name="Netkit2"> http://wiki.sj.ifsc.edu.br/wiki/index.php/Netkit2</ref> é um ambiente para experimentos com redes de computadores desenvolvido no Câmpus São José, do IFSC, inspirado no '''[http://wiki.netkit.org/index.php/Main_Page Netkit]''' <ref>http://wiki.netkit.org/index.php/Main_Page</ref>, desenvolvido pela Universidade de Roma, na Itália. | ||
O Netkit2 se compõe de '''máquinas virtuais Linux''' (implementadas com kernel Linux UML – ''User Mode Linux''), que funcionam como roteadores ou computadores e ''switches'' virtuais (UML ''switch'') para interligar as máquinas virtuais. Para todos os efeitos, cada máquina virtual funciona como se fosse um computador real, possuindo uma ou mais interfaces de rede. Com esses recursos é possível criar redes de configurações arbitrárias para estudar protocolos de comunicação e serviços de rede <ref name="Netkit2"/>. | O Netkit2 se compõe de '''máquinas virtuais Linux''' (implementadas com kernel Linux UML – ''User Mode Linux''), que funcionam como roteadores ou computadores e ''switches'' virtuais (UML ''switch'') para interligar as máquinas virtuais. Para todos os efeitos, cada máquina virtual funciona como se fosse um computador real, possuindo uma ou mais interfaces de rede. Com esses recursos é possível criar redes de configurações arbitrárias para estudar protocolos de comunicação e serviços de rede <ref name="Netkit2"/>. | ||
Linha 16: | Linha 16: | ||
pc1[type]=generic | pc1[type]=generic | ||
pc2[type]=generic | pc2[type]=generic | ||
pc1[eth0]=lan1:ip=192.168.0.1/24 | pc1[eth0]=lan1:ip=192.168.0.1/24 | ||
pc2[eth0]=lan1:ip=192.168.0.2/24 | pc2[eth0]=lan1:ip=192.168.0.2/24 | ||
Linha 23: | Linha 24: | ||
#Verifique as configurações de cada '''pc''' com o comando '''ifconfig'''; | #Verifique as configurações de cada '''pc''' com o comando '''ifconfig'''; | ||
#Verifique a conectividade em rede entre os '''pc''' com o comando '''ping'''; | #Verifique a conectividade em rede entre os '''pc''' com o comando '''ping'''; | ||
#Lance uma captura de pacotes com '''wireshark''' em um dos '''pc'''; | <!--#Lance uma captura de pacotes com '''wireshark''' em um dos '''pc'''; | ||
#Execute novamente o comando '''ping'''; | #Execute novamente o comando '''ping'''; | ||
#Verifique os '''pacotes ICMP''' capturados. | #Verifique os '''pacotes ICMP''' capturados.--> | ||
===Redes de computadores interligadas por roteador=== | |||
O ''script'' abaixo apresenta duas redes de computadores interligadas por um roteador: | |||
pc1[type]=generic | |||
r1[type]=gateway | |||
pc2[type]=generic | |||
pc1[eth0]=lan0:ip=192.168.0.1/24 | |||
r1[eth0]=lan0:ip=192.168.0.2/24 | |||
r1[eth1]=lan1:ip=192.168.1.2/24 | |||
pc2[eth0]=lan1:ip=192.168.1.1/24 | |||
pc1[default_gateway]=192.168.0.2 | |||
pc2[default_gateway]=192.168.1.2 | |||
<!-- | |||
===Redes de computadores interligadas por roteadores=== | ===Redes de computadores interligadas por roteadores=== | ||
O ''script'' abaixo apresenta duas redes de computadores interligadas por roteadores, sendo estes últimos conectados entre si por um enlace ponto a ponto (Fonte: <ref name="Netkit2"/>): | O ''script'' abaixo apresenta duas redes de computadores interligadas por roteadores, sendo estes últimos conectados entre si por um enlace ponto a ponto (Fonte: <ref name="Netkit2"/>): | ||
pc1[type]=generic | pc1[type]=generic | ||
pc2[type]=generic | pc2[type]=generic | ||
Linha 46: | Linha 62: | ||
r1[route]=192.168.1.0/24:dev=ppp0 | r1[route]=192.168.1.0/24:dev=ppp0 | ||
r2[route]=192.168.0.0/24:dev=ppp0 | r2[route]=192.168.0.0/24:dev=ppp0 | ||
--> | |||
#Edite um arquivo de texto e salve em uma pasta de trabalho (extensão .conf); | #Edite um arquivo de texto e salve em uma pasta de trabalho (extensão .conf); | ||
#Carregue no NetKit2 com a opção ''File -> Load and Run''; | #Carregue no NetKit2 com a opção ''File -> Load and Run''; | ||
Linha 53: | Linha 69: | ||
#Verifique a conectividade em rede entre as máquinas com o comando '''ping'''; | #Verifique a conectividade em rede entre as máquinas com o comando '''ping'''; | ||
#Verifique a rota dos pacotes entre os computadores '''pc1''' e '''pc3''' com o comando '''traceroute'''. | #Verifique a rota dos pacotes entre os computadores '''pc1''' e '''pc3''' com o comando '''traceroute'''. | ||
#Lance uma captura de pacotes com '''wireshark''' em um dos computadores da '''lan1'''; | <!--#Lance uma captura de pacotes com '''wireshark''' em um dos computadores da '''lan1'''; | ||
#Execute novamente o comando '''traceroute''' entre os computadores '''pc1''' e '''pc3'''; | #Execute novamente o comando '''traceroute''' entre os computadores '''pc1''' e '''pc3'''; | ||
#Verifique os '''pacotes ICMP''' capturados relativos ao '''traceroute'''. | #Verifique os '''pacotes ICMP''' capturados relativos ao '''traceroute'''.--> | ||
===Exercício=== | ==Exercício sobre Rede e Roteamento== | ||
Montar no NetKit2 a rede experimental mostrada na figura: | ===Exercício 1=== | ||
Montar no '''NetKit2''' a rede experimental mostrada na figura: | |||
[[Arquivo:Sub-redes.png]] | [[Arquivo:Sub-redes.png]] | ||
;Para entregar: | Exemplo de comandos para incluir no ''script'' a criação de '''rotas estáticas''': | ||
r1[route]=192.168.0.0/24:gateway=192.168.10.10 | |||
:Cria na máquina r1 uma rota para a rede 192.168.0.0 através do roteador 192.168.10.10. | |||
As '''rotas estáticas''' também podem ser criadas através do comando '''route''' diretamente no roteador em operação. | |||
Procedimentos: | |||
#Faça uma alocação de endereços IP para cada sub-rede (rede 1, 2 e 3); | |||
#Faça também uma alocação de endereços IP para cada enlace ponto a ponto ('''enlaces AB, AC e AB'''). | |||
#Defina as '''tabelas de roteamento''' entre para que os ''hosts'' possam trocar pacotes entre si. | |||
#Faça teste '''conectividade''' entre os ''hosts''. | |||
;Para entregar: '''PARTE 1''' | |||
#Relatório descrevendo a '''distribuição dos endereços''' IP. | #Relatório descrevendo a '''distribuição dos endereços''' IP. | ||
#'''''Script'' comentado''' da rede experimental. | #'''''Script'' comentado''' da rede experimental. | ||
#Descrição dos '''procedimentos de teste''' realizados com o Netkit, anexando: | #Descrição dos '''procedimentos de teste''' realizados com o Netkit, anexando: | ||
#*Telas ilustrando a '''configuração IP''' das máquinas em cada rede; | |||
#*Telas mostrando a '''conectividade em rede''' entre as máquinas (ping); | |||
#*Telas ilustrando as '''tabelas de roteamento''' de cada roteador (route); | |||
#*Telas ilustrando a '''rota''' seguida pelos pacotes entre hosts de duas redes remotas (traceroute). | |||
<!--#Captura de pacotes (tcpdump/wireshark) | |||
#*Executar '''ping''' entre duas máquinas e capturar os pacotes ICMP gerados. Explicar o funcionamento do ping. | |||
#*Executar '''traceroute''' entre duas máquinas e capturar os pacotes gerados. Explicar o funcionamento do traceroute com base nos pacotes capturados. Explicitar os diferentes tipos de pacotes gerados pelo traceroute. Explicar a função do campo TTL do cabeçalho IP utilizado pelo traceroute.--> | |||
==Comandos para configurar interfaces de rede e roteamento estático== | |||
===Configuração da interface de rede de um host=== | |||
Exemplo: host '''PC1''': | |||
*Configuração de uma interface, incluindo IP, máscara de rede e ''broadcast'': | |||
ifconfig eth0 192.168.0.1/24 broadcast 192.168.0.255 up | |||
*Configuração do '''roteador padrão''' da rede: | |||
route add default gw 192.168.0.254 dev eth0 | |||
*Visualizar a configuração de uma interface: | |||
ifconfig | |||
*Derrubar uma interface: | |||
ifconfig eth0 down | |||
*Subir uma interface com a configuração anterior: | |||
ifconfig eth0 up | |||
===Configuração das interfaces e rotas estáticas em roteadores=== | |||
Exemplo: roteador '''R1''': | |||
*Configuração das '''interfaces''' do roteador: | |||
ifconfig eth0 192.168.0.254/24 broadcast 192.168.0.255 up | |||
ifconfig eth1 10.0.0.1 netmask 255.255.255.252 broadcast 10.0.0.3 up | |||
:A máscara de rede pode ser adicionada com a notação "/" ou decimal. | |||
*Adição de uma '''rota estática''' em um roteador: | |||
route add -net 192.168.1.0/24 gw 10.0.0.2 dev eth1 | |||
*Visualizar as '''tabelas de roteamento''': | |||
route -n | |||
*Remover uma rota: | |||
route del -net 192.168.1.0/24 gw 10.0.0.2 dev eth1 | |||
===Exercício 2=== | |||
Use a rede do '''exercício 1''' para realizar os exercícios. | |||
#Modifique a '''interface de rede''' de um host e em seguida verifique a mudança com '''ifconfig''' e teste conectividade com '''ping''' a partir de outros hosts. | |||
#'''Derrube uma interface ponto a ponto''' de um dos '''enlaces''' entre dois roteadores e teste conectividade com ping. | |||
#'''Modifique o roteamento''' de forma a contornar o enlace derrubado e teste conectividade com ping entre todos os hosts. | |||
#:'''Atenção''': Lembre de configurar rotas em ambos os sentidos, pois no teste com ping temos pacotes ICMP ''Echo Request'' e ''Echo Replay'', ou seja, pacotes circulando nos dois sentidos. | |||
#Execute um '''traceroute''' para verificar a nova rota percorrida pelos pacotes. | |||
;Para entregar: '''PARTE 2''' | |||
#Anexar telas ilustrando as '''tabelas de roteamento''' depois que a interface do roteador for derrubada; | |||
#Anexar telas ilustrando a '''ausência de conectividade''' com ping; | |||
#Mostre os comandos utilizados para adicionar novas '''rotas estáticas''' e anexar telas com as novas '''tabelas de roteamento'''; | |||
#Anexar telas do '''traceroute''' para mostrar a nova rota percorrida pelos pacotes. | |||
==Protocolos de Roteamento Dinâmico == | |||
Os '''protocolos de roteamento dinâmicos''' permitem encontrar, de forma automática, o caminho que os '''datagramas''' tomarão entre a fonte e o destino. | |||
Dois protocolos de roteamento '''intra domínio''' bastante utilizados na Internet são o '''RIP''' e o '''OSPF''' | |||
No '''NetKit''' para ativar protocolos de roteamento é necessário usar máquinas virtuais do tipo '''''router'''''. Um '''''router''''' tem sua função de '''''gateway''''' ativada automaticamente e executa o programa [http://www.quagga.net/ Quagga], que implementa protocolos de roteamento (tais como OSPF, RIP e BGP). | |||
Veja abaixo como incluir no arquivo de configuração do NetKit máquinas tipo '''''router''''' e configurar suas interfaces: | |||
r1[type]=router | |||
r1[ppp0]=link0:ip=10.0.0.1/30 | |||
r1[eth0]=lan0:ip=192.168.0.254/24 | |||
:Nos exemplos acima, além de interfaces '''ethernet''' (eth0), note que é também possível criar nos roteadores interfaces '''ponto a ponto''' (ppp0). | |||
===Ativação dos protocolos de roteamento nos roteadores=== | |||
Para a ativação dos protocolos de roteamento no '''NetKit''', conforme <ref name="Netkit2"/>, é necessário incluir algumas diretivas no arquivo de configuração. Veja exemplos: | |||
# Ativa os protocolos RIP e OSPF no roteador r1 | |||
r1[router]=rip, ospf | |||
# Preserva as configurações do roteador r1 | |||
r1[preserve]=/etc/quagga | |||
====RIP==== | |||
O ''RIP'' (''Routing Information Protocol'') é um protocolo padronizado, definido na RFC 1058, e utiliza o algoritmo de roteamento '''vetor de distâncias'''. | |||
Há duas versões do protocolo: | |||
*RIP versão 1: '''''classfull''''', ou seja, suporta apenas classes cheias (A, B ou C); | |||
*RIP versão 2: suporta '''CIDR''' (''classless''). | |||
Em ambas as versões os roteadores trocam informações utilizando '''UDP''' na '''porta 520''' <ref>http://www.dltec.com.br/blog/cisco/configuracao-basica-do-rip-versao-1-e-2-para-o-ccna/</ref>. | |||
====Terminal vtysh dos roteadores==== | |||
Um roteador implementado com '''quagga''' apresenta um '''shell''' parecido com o de um '''roteador Cisco''' real, conhecido como '''vtysh''', e aceita comandos específicos para a configuração dos roteadores. O comando '''?''' mostra os demais comandos disponíveis. | |||
;Comandos para verificar a configuração do roteador: | |||
*Verificar a configuração de cada interface: | |||
show interface eth0 | |||
show interface ppp0 | |||
*Verificar as tabelas de roteamento: | |||
show ip route | |||
;Comandos para configuração do RIP versão 1: Exemplo '''roteador R1''' conectado a outros roteadores pelas '''interfaces ppp0''' e '''ppp1'''. Terminar configuração com '''CTRL-Z''': | |||
r1#conf t | |||
r1(config)#router rip | |||
r1(config-router)#redistribute connected | |||
r1(config-router)#network ppp0 | |||
r1(config-router)#network ppp1 | |||
r1(config-router)#^Z | |||
r1(config)# | |||
; | ;Comandos para configuração do RIP versão 2: Exemplo '''roteador R1''' conectado a outros roteadores pelas '''interfaces ppp0 (rede 10.0.0.0/30)''' e '''ppp1 (rede 10.0.0.4/30)'''. Terminar configuração com '''CTRL-Z''': | ||
r1#conf t | |||
r1(config)#router rip | |||
r1(config-router)#version 2 | |||
r1(config-router)#redistribute connected | |||
r1(config-router)#network 10.0.0.0/30 | |||
r1(config-router)#network 10.0.0.4/30 | |||
r1(config-router)#^Z | |||
r1(config)# | |||
===Exercício 3=== | |||
Use a rede do '''exercício 1''' para realizar os exercícios. | |||
#Substitua no arquivo de configuração todos roteadores tipo '''gateway''' por tipo '''router'''; | |||
#'''Remova''' todas as '''rotas estáticas''' do arquivo de configuração; | |||
#Carregue a rede no '''netkit''' e verifique se o leiaute ('''gráfico da rede''') está correto. | |||
#Verifique a configuração dos PC com '''ifconfig''' e '''route'''; | |||
#Teste conectividade com '''ping''' entre computadores pertencentes a mesma redes local e entre redes diferentes. | |||
#Acesse o terminal '''vtysh''' de cada roteador e verifique a configuração das '''interfaces''' e das '''tabelas de roteamento''': | |||
show interface eth0 | |||
show interface ppp0 | |||
show interface ppp1 | |||
show ip route | |||
;Ativação e teste do RIP versão 2: | |||
#Ativar o '''RIP versão 2''' em cada roteador, conforme explicado acima. Preste atenção nas '''redes''' ('''network''') onde as mensagens RIP devem ser propagadas, no caso devem ser as redes correspondentes as '''interfaces ponto a ponto''' de cada roteador (ppp0 e ppp1), com as respectivas '''máscaras de rede''' na notação com '''/'''; | |||
#Verificar as '''tabelas de roteamento''' em cada um dos roteadores (show ip route); | |||
#Realizar testes de conectividade com '''ping''' entre máquinas de redes diferentes; | |||
#Derrubar uma '''interface ponto a ponto''' de um roteador. Para tal, você deve sair do terminal '''vtysh''' com '''exit'''. Derrubar a interface com '''ifconfig ppp0 down'''. Voltar ao terminal '''vtysh''' digitando '''vtysh'''; | |||
#Esperar 30 segundos e verificar novamente as '''tabelas de roteamento''' dos roteadores (show ip route); | |||
#Realizar novamente testes de conectividade com '''ping''' entre máquinas de redes diferentes; | |||
#Realizar '''tracetoure''' entre máquinas de redes diferentes a fim de verificar os pacotes percorrendo a '''nova rota''' gerada pelo RIP. | |||
;Para entregar: '''PARTE 3''' | |||
#Anexar telas ilustrando as '''tabelas de roteamento''' de cada roteador antes da ativação do RIP (show ip route). Explicar as rotas presentes. | |||
#Anexar telas ilustrando as '''tabelas de roteamento''' de cada roteador depois da ativação do RIP (show ip route). Explicar as rotas presentes. | |||
#Anexar telas ilustrando a '''conectividade''' com ping entre as máquinas. | |||
#Anexar telas ilustrando a '''interface que foi derrubada'''; | |||
#Anexar telas ilustrando as '''tabelas de roteamento''' de cada roteador depois da reconfiguração do RIP (show ip route). Explicar as rotas presentes. | |||
#Anexar telas do '''traceroute''' para mostrar a nova rota percorrida pelos pacotes depois que o RIP reconfigurou as rotas. | |||
==Referências== | ==Referências== |
Edição atual tal como às 11h26min de 2 de dezembro de 2016
Laboratório: NetKit Roteamento
O Netkit2 [1] é um ambiente para experimentos com redes de computadores desenvolvido no Câmpus São José, do IFSC, inspirado no Netkit [2], desenvolvido pela Universidade de Roma, na Itália.
O Netkit2 se compõe de máquinas virtuais Linux (implementadas com kernel Linux UML – User Mode Linux), que funcionam como roteadores ou computadores e switches virtuais (UML switch) para interligar as máquinas virtuais. Para todos os efeitos, cada máquina virtual funciona como se fosse um computador real, possuindo uma ou mais interfaces de rede. Com esses recursos é possível criar redes de configurações arbitrárias para estudar protocolos de comunicação e serviços de rede [1].
Teste do Netkit2
O Netkit2 já está instalado no laboratório e pode ser iniciado com o comando:
netkit2
Caso deseja instalar o Netkit2 em outro computador Linux, consultar a referência [1].
Rede de computadores básica
O script abaixo apresenta uma rede de computadores básica para ser testado (Consulte [1] para mais detalhes sobre a sintaxe dos scripts):
pc1[type]=generic pc2[type]=generic pc1[eth0]=lan1:ip=192.168.0.1/24 pc2[eth0]=lan1:ip=192.168.0.2/24
- Edite um arquivo de texto e salve em uma pasta de trabalho (extensão .conf);
- Carregue o arquivo no NetKit2 com a opção File -> Load and Run;
- Clique na opção File -> Graph e veja a topologia da rede em execução;
- Verifique as configurações de cada pc com o comando ifconfig;
- Verifique a conectividade em rede entre os pc com o comando ping;
Redes de computadores interligadas por roteador
O script abaixo apresenta duas redes de computadores interligadas por um roteador:
pc1[type]=generic r1[type]=gateway pc2[type]=generic pc1[eth0]=lan0:ip=192.168.0.1/24 r1[eth0]=lan0:ip=192.168.0.2/24 r1[eth1]=lan1:ip=192.168.1.2/24 pc2[eth0]=lan1:ip=192.168.1.1/24 pc1[default_gateway]=192.168.0.2 pc2[default_gateway]=192.168.1.2
- Edite um arquivo de texto e salve em uma pasta de trabalho (extensão .conf);
- Carregue no NetKit2 com a opção File -> Load and Run;
- Clique na opção File -> Graph e veja a topologia da rede em execução;
- Verifique as configurações de cada máquina com o comando ifconfig;
- Verifique a conectividade em rede entre as máquinas com o comando ping;
- Verifique a rota dos pacotes entre os computadores pc1 e pc3 com o comando traceroute.
Exercício sobre Rede e Roteamento
Exercício 1
Montar no NetKit2 a rede experimental mostrada na figura:
Exemplo de comandos para incluir no script a criação de rotas estáticas:
r1[route]=192.168.0.0/24:gateway=192.168.10.10
- Cria na máquina r1 uma rota para a rede 192.168.0.0 através do roteador 192.168.10.10.
As rotas estáticas também podem ser criadas através do comando route diretamente no roteador em operação.
Procedimentos:
- Faça uma alocação de endereços IP para cada sub-rede (rede 1, 2 e 3);
- Faça também uma alocação de endereços IP para cada enlace ponto a ponto (enlaces AB, AC e AB).
- Defina as tabelas de roteamento entre para que os hosts possam trocar pacotes entre si.
- Faça teste conectividade entre os hosts.
- Para entregar
- PARTE 1
- Relatório descrevendo a distribuição dos endereços IP.
- Script comentado da rede experimental.
- Descrição dos procedimentos de teste realizados com o Netkit, anexando:
- Telas ilustrando a configuração IP das máquinas em cada rede;
- Telas mostrando a conectividade em rede entre as máquinas (ping);
- Telas ilustrando as tabelas de roteamento de cada roteador (route);
- Telas ilustrando a rota seguida pelos pacotes entre hosts de duas redes remotas (traceroute).
Comandos para configurar interfaces de rede e roteamento estático
Configuração da interface de rede de um host
Exemplo: host PC1:
- Configuração de uma interface, incluindo IP, máscara de rede e broadcast:
ifconfig eth0 192.168.0.1/24 broadcast 192.168.0.255 up
- Configuração do roteador padrão da rede:
route add default gw 192.168.0.254 dev eth0
- Visualizar a configuração de uma interface:
ifconfig
- Derrubar uma interface:
ifconfig eth0 down
- Subir uma interface com a configuração anterior:
ifconfig eth0 up
Configuração das interfaces e rotas estáticas em roteadores
Exemplo: roteador R1:
- Configuração das interfaces do roteador:
ifconfig eth0 192.168.0.254/24 broadcast 192.168.0.255 up ifconfig eth1 10.0.0.1 netmask 255.255.255.252 broadcast 10.0.0.3 up
- A máscara de rede pode ser adicionada com a notação "/" ou decimal.
- Adição de uma rota estática em um roteador:
route add -net 192.168.1.0/24 gw 10.0.0.2 dev eth1
- Visualizar as tabelas de roteamento:
route -n
- Remover uma rota:
route del -net 192.168.1.0/24 gw 10.0.0.2 dev eth1
Exercício 2
Use a rede do exercício 1 para realizar os exercícios.
- Modifique a interface de rede de um host e em seguida verifique a mudança com ifconfig e teste conectividade com ping a partir de outros hosts.
- Derrube uma interface ponto a ponto de um dos enlaces entre dois roteadores e teste conectividade com ping.
- Modifique o roteamento de forma a contornar o enlace derrubado e teste conectividade com ping entre todos os hosts.
- Atenção: Lembre de configurar rotas em ambos os sentidos, pois no teste com ping temos pacotes ICMP Echo Request e Echo Replay, ou seja, pacotes circulando nos dois sentidos.
- Execute um traceroute para verificar a nova rota percorrida pelos pacotes.
- Para entregar
- PARTE 2
- Anexar telas ilustrando as tabelas de roteamento depois que a interface do roteador for derrubada;
- Anexar telas ilustrando a ausência de conectividade com ping;
- Mostre os comandos utilizados para adicionar novas rotas estáticas e anexar telas com as novas tabelas de roteamento;
- Anexar telas do traceroute para mostrar a nova rota percorrida pelos pacotes.
Protocolos de Roteamento Dinâmico
Os protocolos de roteamento dinâmicos permitem encontrar, de forma automática, o caminho que os datagramas tomarão entre a fonte e o destino.
Dois protocolos de roteamento intra domínio bastante utilizados na Internet são o RIP e o OSPF
No NetKit para ativar protocolos de roteamento é necessário usar máquinas virtuais do tipo router. Um router tem sua função de gateway ativada automaticamente e executa o programa Quagga, que implementa protocolos de roteamento (tais como OSPF, RIP e BGP).
Veja abaixo como incluir no arquivo de configuração do NetKit máquinas tipo router e configurar suas interfaces:
r1[type]=router r1[ppp0]=link0:ip=10.0.0.1/30 r1[eth0]=lan0:ip=192.168.0.254/24
- Nos exemplos acima, além de interfaces ethernet (eth0), note que é também possível criar nos roteadores interfaces ponto a ponto (ppp0).
Ativação dos protocolos de roteamento nos roteadores
Para a ativação dos protocolos de roteamento no NetKit, conforme [1], é necessário incluir algumas diretivas no arquivo de configuração. Veja exemplos:
# Ativa os protocolos RIP e OSPF no roteador r1 r1[router]=rip, ospf # Preserva as configurações do roteador r1 r1[preserve]=/etc/quagga
RIP
O RIP (Routing Information Protocol) é um protocolo padronizado, definido na RFC 1058, e utiliza o algoritmo de roteamento vetor de distâncias.
Há duas versões do protocolo:
- RIP versão 1: classfull, ou seja, suporta apenas classes cheias (A, B ou C);
- RIP versão 2: suporta CIDR (classless).
Em ambas as versões os roteadores trocam informações utilizando UDP na porta 520 [3].
Terminal vtysh dos roteadores
Um roteador implementado com quagga apresenta um shell parecido com o de um roteador Cisco real, conhecido como vtysh, e aceita comandos específicos para a configuração dos roteadores. O comando ? mostra os demais comandos disponíveis.
- Comandos para verificar a configuração do roteador
- Verificar a configuração de cada interface:
show interface eth0 show interface ppp0
- Verificar as tabelas de roteamento:
show ip route
- Comandos para configuração do RIP versão 1
- Exemplo roteador R1 conectado a outros roteadores pelas interfaces ppp0 e ppp1. Terminar configuração com CTRL-Z:
r1#conf t r1(config)#router rip r1(config-router)#redistribute connected r1(config-router)#network ppp0 r1(config-router)#network ppp1 r1(config-router)#^Z r1(config)#
- Comandos para configuração do RIP versão 2
- Exemplo roteador R1 conectado a outros roteadores pelas interfaces ppp0 (rede 10.0.0.0/30) e ppp1 (rede 10.0.0.4/30). Terminar configuração com CTRL-Z:
r1#conf t r1(config)#router rip r1(config-router)#version 2 r1(config-router)#redistribute connected r1(config-router)#network 10.0.0.0/30 r1(config-router)#network 10.0.0.4/30 r1(config-router)#^Z r1(config)#
Exercício 3
Use a rede do exercício 1 para realizar os exercícios.
- Substitua no arquivo de configuração todos roteadores tipo gateway por tipo router;
- Remova todas as rotas estáticas do arquivo de configuração;
- Carregue a rede no netkit e verifique se o leiaute (gráfico da rede) está correto.
- Verifique a configuração dos PC com ifconfig e route;
- Teste conectividade com ping entre computadores pertencentes a mesma redes local e entre redes diferentes.
- Acesse o terminal vtysh de cada roteador e verifique a configuração das interfaces e das tabelas de roteamento:
show interface eth0 show interface ppp0 show interface ppp1 show ip route
- Ativação e teste do RIP versão 2
- Ativar o RIP versão 2 em cada roteador, conforme explicado acima. Preste atenção nas redes (network) onde as mensagens RIP devem ser propagadas, no caso devem ser as redes correspondentes as interfaces ponto a ponto de cada roteador (ppp0 e ppp1), com as respectivas máscaras de rede na notação com /;
- Verificar as tabelas de roteamento em cada um dos roteadores (show ip route);
- Realizar testes de conectividade com ping entre máquinas de redes diferentes;
- Derrubar uma interface ponto a ponto de um roteador. Para tal, você deve sair do terminal vtysh com exit. Derrubar a interface com ifconfig ppp0 down. Voltar ao terminal vtysh digitando vtysh;
- Esperar 30 segundos e verificar novamente as tabelas de roteamento dos roteadores (show ip route);
- Realizar novamente testes de conectividade com ping entre máquinas de redes diferentes;
- Realizar tracetoure entre máquinas de redes diferentes a fim de verificar os pacotes percorrendo a nova rota gerada pelo RIP.
- Para entregar
- PARTE 3
- Anexar telas ilustrando as tabelas de roteamento de cada roteador antes da ativação do RIP (show ip route). Explicar as rotas presentes.
- Anexar telas ilustrando as tabelas de roteamento de cada roteador depois da ativação do RIP (show ip route). Explicar as rotas presentes.
- Anexar telas ilustrando a conectividade com ping entre as máquinas.
- Anexar telas ilustrando a interface que foi derrubada;
- Anexar telas ilustrando as tabelas de roteamento de cada roteador depois da reconfiguração do RIP (show ip route). Explicar as rotas presentes.
- Anexar telas do traceroute para mostrar a nova rota percorrida pelos pacotes depois que o RIP reconfigurou as rotas.
Referências
--Evandro.cantu (discussão) 17h51min de 9 de junho de 2015 (BRT)