Mudanças entre as edições de "RCO3-2014-2-CST Redes de Computadores 3 - CST"
Linha 163: | Linha 163: | ||
Continuação | Continuação | ||
− | =Aula 3 - 11/8/2014 | + | =Aula 3 - 11/8/2014= |
* Finalizar apresentações da aula anterior; | * Finalizar apresentações da aula anterior; |
Edição das 07h35min de 11 de agosto 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.
Referências
Aula 2 - 4/8/2014 (Parte 2)
Continuação
Aula 3 - 11/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 3 - Continuação
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 4 - 30/8/2013
Objetivos
-Apresentar o algoritmo vetor de distância;
-Discutir problema de contagem infinita e uma solução: reverso envenenado;
-Apresentar um java applet para calcular rotas com algoritmos SP e VD;
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.