Mudanças entre as edições de "RCO3-2014-2-CST Redes de Computadores 3 - CST"
Linha 436: | Linha 436: | ||
=AULA 11 - 22/9/2014 - Avaliação 1= | =AULA 11 - 22/9/2014 - Avaliação 1= | ||
− | =AULA 12 - 29/9/2014 - (7h30) - Desenvolvimento | + | =AULA 12 - 29/9/2014 - (7h30) - Desenvolvimento Desafio RIP= |
− | |||
=AULA 13 - 29/9/2014 - (10h30) - Laboratório Avançado RIP= | =AULA 13 - 29/9/2014 - (10h30) - Laboratório Avançado RIP= |
Edição das 07h54min de 29 de setembro de 2014
Cronograma
Aula | Data | Horas | Conteúdo | Recursos | |
---|---|---|---|---|---|
1 | 4/8 | 2 | Plano de Ensino. Revisão de conceitos em redes.Experimento de Rota Estática dos Labs do NETKIT. | Laboratório | |
2 | 4/8 | 2 | Continuação experimento de rota estática – desafio | Laboratório | |
3 | 11/8 | 2 | Caracterizar as funcionalidades da camada de rede. Protocolos de Roteamento. Protocolo de Estado de Enlace | Laboratório | |
11/8 | 0 | Laboratório | |||
4 | 18/8 | 2 | Laboratório de Estado de Enlace. | Laboratório | |
5 | 18/8 | 2 | Protocolo de Vetor de Distância. | Laboratório | |
6 | 25/8 | 2 | Avaliação I | Laboratório | |
25/8 | 0 | Laboratório | |||
7 | 1/9 | 2 | Experimento de Rota Estática com Quagga | Laboratório | |
8 | 1/9 | 2 | Introdução ao Protocolo RIP. Laboratório Básico | Laboratório | |
9 | 8/9 | 2 | Protocolo RIP. Laboratório Avançado. Questionário | Laboratório | |
8/9 | 0 | Laboratório | |||
10 | 15/9 | 2 | Introdução ao Protocolo OSPF. Laboratório Básico | Laboratório | |
11 | 15/9 | 2 | Laboratório de Àreas no OSPF. Questionário | Laboratório | |
12 | 22/9 | 2 | Avaliação II | Laboratório | |
22/9 | 0 | Laboratório | |||
13 | 29/9 | 2 | Apresentação do trabalho Redes Adhoc | Laboratório | |
14 | 29/9 | 2 | Apresentação do trabalho Redes Adhoc | Laboratório | |
15 | 6/10 | 2 | Introdução ao Protocolo BGP. Roteamento na Internet. | Laboratório | |
6/10 | 0 | Laboratório | |||
16 | 13/10 | 2 | Laboratório 1 de BGP | Laboratório | |
17 | 13/10 | 2 | Laboratório 2 de BGP | Laboratório | |
18 | 20/10 | 2 | Laboratório 3 de BGP / Questionário BGP | Laboratório | |
0 | 20/10 | Laboratório | |||
19 | 27/10 | 2 | Laboratório | ||
20 | 27/10 | 2 | Roteamento Multicast | Laboratório | |
21 | 3/11 | 2 | Roteamento Multicast / Questionário | Laboratório | |
0 | 3/11 | Laboratório | |||
22 | 10/11 | 2 | Mobilidade IP | Laboratório | |
23 | 10/11 | 2 | Mobilidade IP / Questionário | Laboratório | |
24 | 17/11 | 2 | Apresentação da proposta Projeto Final. Desenvolvimento Projeto | Laboratório | |
0 | 17/11 | Laboratório | |||
25 | 24/11 | 2 | Desenvolvimento Projeto | Laboratório | |
26 | 24/11 | 2 | Desenvolvimento Projeto | Laboratório | |
27 | 1/12 | 2 | Desenvolvimento Projeto | Laboratório | |
0 | 1/12 | Laboratório | |||
28 | 8/12 | 2 | Desenvolvimento Projeto | Laboratório | |
29 | 8/12 | 2 | Apresentação do Projeto Final | Laboratório | |
30 | 15/12 | 2 | Recuperação | Laboratório | |
0 | 15/12 | Laboratório | |||
TOTAL | 60 |
Aula 1 - 4/8/2014
OBJETIVOS DA AULA
- Apresentar o plano de Ensino;
- Rever conceitos de rede;
- Instalar o NETKIT;
- Aprender a utilizar o NETKIT;
- Realizar o experimento de Rota Estática dos Labs do NETKIT;
- Implementar o laboratório desafio despertando para o problema de loops em roteamento.
Plano de Ensino
Apresentação do cronograma. Avaliações: Avaliação I e II (escritas), Desafios (enviados por email), Projeto Final e Recuperação (prova escrita).
Conceitos em rede
Discussão informal com os alunos.
Instalação do NETKIT
O NETKIT deve estar instalado no lab de redes II. O procedimento a seguir é para quem quiser instalar em casa.
1.Baixar os seguintes arquivos para este diretorio:
- http://www.sj.ifsc.edu.br/~eraldo/RCO3/netkit-2.8.tar.bz2]
- http://www.sj.ifsc.edu.br/~eraldo/RCO3/netkit-filesystem-i386-F5.2.tar.bz2]
- http://www.sj.ifsc.edu.br/~eraldo/RCO3/netkit-kernel-i386-K2.8.tar.bz2]
2.Descompactá-los usando:
tar xvfj netkit-2.8.tar.bz2 tar xvfj netkit-filesystem-i386-F5.2.tar.bz2 tar xvfj netkit-kernel-i386-K2.8.tar.bz2
3.Editar ~/.bashrc ou ~/.profile e inserir as variáveis
export NETKIT_HOME=~/netkit export PATH=$PATH:$NETKIT_HOME/bin export MANPATH=:$MANPATH:$NETKIT_HOME/man
4,Testar a instalação
. ~/.profile cd $NETKIT_HOME ./check_configuration.sh
Aprendendo a utilizar o NETKIT
Laboratório de Rota Estática do NETKIT
Baixar o laboratório daqui e descompactá-lo:
- Para executar o laboratório, basta entrar no diretório e fazer:
lstart
NOTA: para iniciar as máquinas em paralelo use lstart -p
- Para parar o laboratório:
lhalt
Note que este comando não remove as imagens dos discos das máquinas (.disk). Para remover use lcrash
Desafio
Seja a rede abaixo com os seguintes prefixos:
- SN1 : 200.10.1.0/24
- SN2 : 200.10.2.0/24
- SN3 : 200.10.3.0/24
- SN4 : 200.10.4.0/24
- SN5 : 200.10.5.0/24
- SN6 : 200.10.6.0/24
- SN7 : 200.10.7.0/24
- SN8 : 200.10.8.0/24
- Configure estaticamente os roteadores, usando o Netkit, de forma que a rota entre H1 e H2 passe pelas subnets SN2,SN5 e SN6 na transmissão de pacotes de H1 para H2 e passe por SN6 e SN3 para transmissão de pacotes de H2 para H1. Teste a configuração com um ping de H1 para H2. Capture pacotes com o tcpdump em R3 e R4 de forma a demonstrar a passagem de pacotes ICMP do ping por estas rotas.
- Monte um pequeno relatório mostrando as capturas da tela da execução do tcpdump e explicando o sucesso dos resultados. Coloque também as tabelas de roteamento dos roteadores envolvidos (use route -n) e explique cada uma das linhas das tabelas de roteamento.
- Na configuração anterior, acrescente um hospedeiro H3 na rede SN1, mas com endereçamento da rede SN8. Faça este hospedeiro ser "pingável" a partir de H2. A rota de H2 para H3 deve passar por SN4.
- Adicione os resultados ao relatório demonstrando que H3 é alcançado. Para isto use o tcpdump e as tabelas de roteamento de interesse.
- Prepare um exemplo de roteamento mostrando a formação de um loop quando H1 transmite para H2. Para testar use um ping que gere um TIME TO LIVE de tamanho 10.
PROBLEMAS COMUNS:
- Esquecer de rota reversa. O ping REPLY não voltará;
- Usar como IP de um gateway de encaminhamento, o próprio endereço do roteador;
- Usar como IP de um gateway de encaminhamento um endereço IP não pingável;
- Interfaces não estão configuradas com endereço IP ou não estão UP (ativas);
- Netkit não funciona porque o diretório do netkit não está em ~/netkit. Ajustar o caminho nas variáveis;
- As interfaces do roteador ou host não aparecem ou não estão com IP configurados: problema no lab.conf. O nome da máquina no lab.conf é o mesmo do .startup? O arquivo .startup configura corretamente a interface?
- Você está em dúvida se uma máquina linux está configurada para ser roteador? Faça:
cat /proc/sys/net/ipv4/ip_forward
Se resultar em 1 está configurada. Se quiser configurar, fazer:
echo 1 > /proc/sys/net/ipv4/ip_forward NOTA: as máquinas UML do netkit já estão configuradas para roteador.
Lembrete:escolha de rota pelo prefixo mais longo
Referências
Aula 2 - 4/8/2014 (Parte 2)
Desafio
Aula 3 -11/8/2014 (Parte 2)
Reapresentação da aula para os que haviam faltado
Aula 4 - 12/8/2014 (Parte 2)
Aula 5 - 18/8/2014
- Finalizar apresentações da aula anterior;
- Caracterizar as funcionalidades da camada de rede;
- Compreender a necessidade de algoritmos de roteamento para construção dinâmica de tabelas de roteamento.
- Compreender o funcionamento de um algoritmo de estado de enlace;
- Construir a tabela de custos manualmente de um algoritmo de estado de enalce.
Media:Aula1-CamadaRede-EstadoEnlace.pdf
Aula 6 - 25/8/14 - Continuação Estado Enlace
OBJETIVOS DA AULA
- Revisar o algoritmo de estado de enlace;
- Repassar um exercício para os alunos implementar;
- Implementar o laboratório
- Conferir resultados com o exercício
- Implementar o desafio
- Verificação dos resultados em sala.
Programa C do livro do Tanenbaum com o algoritmo link-state:
#include <stdio.h> // Network from Tanenbaum text
#define MAX_NODES 6 // Distance from i to j node
#define INFINITY 1000000000 // 0 if i=j or not connected
int n;
int dist[MAX_NODES][MAX_NODES] =
{ // A B C D E F
{0, 2, 5, 1, 0, 0 },
{2, 0, 3, 2, 0, 0 },
{5, 3, 0, 3, 1, 1 },
{1, 2, 3, 0, 1, 0 },
{0, 0, 1, 1, 0, 2 },
{0, 0, 1, 0, 2, 0 }};
typedef enum {permanent, tentative} labelID;
int num_perm=1;
struct state {
int predecessor;
int length;
labelID label;
} state[MAX_NODES];
void shortest_path(int s){
int i, k, min;
n = MAX_NODES;
for(i=0; i<n; i++) {
if (dist[s][i]!=0) {
state[i].predecessor = s;
state[i].length = dist[s][i];
}else {
state[i].predecessor = -1;
state[i].length = INFINITY;
}
state[i].label = tentative;
}
state[s].length = 0;
state[s].label=permanent;
do {
min = INFINITY;
for (i=0; i<n; i++) {
if( state[i].label == tentative && state[i].length < min) {
min=state[i].length;
k=i;
}
}
state[k].label = permanent; // No de menor custo se torna permanente
num_perm++;
for(i=0; i<n; i++) {
if(dist[k][i] != 0 && state[i].label == tentative)
if(state[k].length+dist[k][i] < state[i].length) {
state[i].predecessor = k;
state[i].length = state[k].length+dist[k][i];
}
}
} while(num_perm!=MAX_NODES);
}
main()
{
int i,dest;
printf("entre com o destino => ");
scanf("%d", &dest);
shortest_path(0);
i=dest;
printf("CAMINHO REVERSO\n");
do {
printf("\n%d ",state[i].predecessor);
i=state[i].predecessor;
} while (state[i].predecessor!=-1);
printf("\nFIM\n");
}
Aula 7 - 25/8/14 (PARTE 2)-
Objetivos
Implementação Desafio/Defesa do Desafio 1
Aula 8 - 1/9/2013
Objetivos
-Apresentar o algoritmo vetor de distância;
-Discutir problema de contagem infinita e uma solução: reverso envenenado;
Desenvolvimento da Aula
Ver material em:
Desafio a ser entregue: tabela de cálculo de vetor de distância do exercício proposto no doc acima.
Aula 9 - 8/9/2013 (continuação)
Objetivos
-Apresentar o algoritmo vetor de distância;
-Discutir problema de contagem infinita e uma solução: reverso envenenado;
Desenvolvimento da Aula
Ver material em:
Desafio a ser entregue: tabela de cálculo de vetor de distância do exercício proposto no doc acima.
AULA 10 - 15/09/2014 - Aula de Introdução ao Protocolo RIP
OBJETIVOS DA AULA
- Apresentar as características básicas do protocolo RIP;
- Configurar uma rede simples com o Protocolo RIP.
Características do Protocolo RIP
- Protocolo de vetor de distâncias: uma evolução do Gateway Information Protocol da Xerox;
- No começo da década de 80 os sistemas UNIX o incluiram em servidores para que estes atuassem como roteadores;
- Descrito nas RFCs 1058 (RIPv1) e RFCs 1388, 1723, e 2453 (RIPv2);
- O RIP é baseado no algoritmo de vetor de distância e utiliza como métrica o número de hops ou saltos entre roteadores. Uma rede diretamente conectada tem hop 0. Uma rede ligada diretamente a um roteador vizinho tem contador 1. Um destino com contador de hop 16 é considerado inalcançável;
- O RIPv1 é um protocolo de roteamento classfull (redes classe A,B,C);
- O RIPv2 possui as seguintes características adicionais:
- Suporte para máscaras de tamanho variável (VLSM);
- As mensagens de atualização de rota (updates) são realizadas via multicast no endereço 224.0.0.9;
- As atualizações de rota podem ser autenticadas com senhas criptografadas;
- Suporta anuncio de rotas por roteadores sem RIP: campo next-hop router na mensagem;
- Se utiliza da porta UDP 520 para toda a troca de pacotes;
- O protocolo RIP é interessante para uso em pequenas redes;
Funcionamento Básico do RIP
- Um roteador RIP envia, a cada 30s, toda a sua tabela de roteamento para todos os roteadores diretamente conectados a ele, mesmo que não exista nenhuma mudança nesta tabela! Desperdício de banda...
- O RIP classifica os roteadores em ativos e passivos. Os roteadores ativos enviam normalmente suas tabelas de roteamento para seus vizinhos enquanto os passivos somente escutam e atualizam suas rotas.
- A operação típica do RIP usa dois pacotes: requisição e resposta. Ao ser iniciado, um roteador envia pacotes de requisição por todas as suas interfaces (a versão 1 usa endereço broadcast 255.255.255.255 e a versão usa multicast no endereço 224.0.0.9).
- Pacotes de requisição serão sempre respondidos por pacotes de resposta. Um pacote de resposta pode conter até 25 rotas. Estes pacotes nunca serão encaminhados para outros roteadores, ou seja, um roteador sempre aprende através de seus vizinhos}.
- O roteador agrupa a informação das várias tabelas de roteamento recebidas para construir a sua própria tabela, escolhendo os caminhos com menor distância ou hops. Uma rota que não é atualizada durante 3 min é removida ou colocada com custo infinito (poisened reverse).
- Um roteador, analisando um pacote de resposta, deve incluir eventuais novas redes a sua tabela de roteamento ou trocar rotas de redes existentes se as rotas recebidas possuem menores métricas
Exemplo de funcionamento
Considere o exemplo da figura abaixo. O roteador C publica a rede 192.168.5.0 para o roteador B. O roteador B adiciona a rede a sua tabela de roteamento com métrica 1 e next hop 192.168.4.2. O roteador B publica a sua própria tabela de roteamento para o roteador A e para o roteador C. O roteador A aprende do roteador B sobre as redes 192.168.3.0 e 192.168.5.0. O roteador A adiciona a rede 192.168.3.0 com métrica 1 e a rede 192.168.5.0 com métrica 2. O endereço next hop para ambas as redes é 192.168.2.2. O roteador A agora sabe que ele pode enviar pacotes destinados para a rede B ou C através de B.
Exemplo de Funcionamento do RIP
Laboratório: Configuração básica do RIP com o Zebra
ETAPA 1
Esta etapa já está implementada no link : Laboratório RIP básico
- Construa um cenário conforme a rede da Figura acima, usando o netkit. Coloque endereços em todos os hospedeiros bem como as
rotas default nas tabelas de roteamento dos mesmos;
NOTE que o RIP não se executa nos hospedeiros.
- Faça um zebra.conf para configurar os endereços dos roteadores, tal como no laboratório anterior;
- Crie os arquivos de configuração para o RIP em cada roteador, colocando-os dentro dos diretórios dos mesmos. Edite o arquivo ripd.conf para cada roteador, acrescentando as linhas:
router rip redistribute connected redistribute static network eth0 network eth1
- Execute o zebra e o rip, nos arquivos de startup dos roteadores:
zebra -d -f /hostlab/EUA/zebra.conf
ripd -d -f /hostlab/EUA/ripd.conf
ETAPA 2
- Verifique as tabelas de roteamento usando o vtysh no zebra;
- Use o ping e o traceroute para testar todos os caminhos percorridos pelos
pacotes, tanto entre roteadores como entre máquinas clientes. Baseado nesta observação qual métrica você acha que o RIP utiliza para computar as rotas?
- “Derrube” o enlace BRASIL-ITÁLIA (desative uma interfaces tal como no laboratório anterior) e volte a testar a conectividade;
- Religue a interface e volte a verificar as tabelas de roteamento.
ETAPA 2 - DESAFIO
Configurar o RIP na rede abaixo. Use os endereços indicados. Force através de rota estática, uma rota de H2 para H1 passando por SN6, SN5 e SN2.
- SN1: 200.10.1.0/24
- SN2: 200.10.2.0/24
- SN3: 200.10.3.0/24
- SN4: 200.10.4.0/24
- SN5: 200.10.5.0/24
- SN6: 200.10.6.0/24
- SN7: 200.10.7.0/24
- SN8: 200.10.8.0/24
AULA 10 - - 15/09/2014 - Preparação para Avaliação 1
Exercícios
Fazer em dupla: