Mudanças entre as edições de "IER-2010-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 217: Linha 217:
  
 
== 16/12: Apresentação do projeto ==
 
== 16/12: Apresentação do projeto ==
 
== 21/09: Redes locais: experimento sobre desempenho do CSMA/CD ==
 
 
Realização de um experimento pra medir a utilização do meio de transmissão em uma rede local, com MAC do tipo CSMA/CD.
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5.pdf Roteiro da experiência]
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/emissor.c Programa emissor]: faça o download e compile com o comando: <syntaxhighlight lang=bash>
 
gcc -o emissor emissor.c
 
</syntaxhighlight>
 
 
** A experiência pode ser feita também com o simulador Omnet++:
 
*** [[Omnetpp-Instalacao|Intale o Omnet++ 4]]
 
*** Instale o modelo INET: <syntaxhighlight lang=bash>
 
# Faz o download do INET Framework (aprox. 23 MB)
 
wget http://github.com/downloads/inet-framework/inet/inet-20100323-src.tgz
 
 
# Descompacta o arquivo
 
tar xzf inet-20100323-src.tgz
 
 
# Compila o INET
 
cd inet
 
make makefiles
 
make
 
</syntaxhighlight>
 
*** Copie esses arquivos para dentro de ''inet/examples/ethernet/lans'':<br>[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/mu.ini mu.ini]<br>[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/mu2.ini mu2.ini]<br>[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/Networks.ned Networks.ned]
 
*** Para executar uma simulação interativa, com animação, faça assim: <syntaxhighlight lang=bash>
 
cd inet/examples/ethernet/lans
 
./run mu.ini
 
</syntaxhighlight>... e escolha um dos modelos para executar.
 
*** Para executar uma simulação não-interativa, com uma bateria de experimentos que variam a quantidade de estações (2 a 16) e tamanhos de quadros (256, 512 e 1480 bytes), faça assim: <syntaxhighlight lang=bash>
 
cd inet/examples/ethernet/lans
 
./run -u Cmdenv -c Hub1 mu2.ini
 
</syntaxhighlight>
 
*** Os resultados das simulações estarão em arquivos dentro do subdiretório ''inet/examples/ethernet/lans/results''. Por exemplo, o arquivo ''Hub1-0.sca'' contém o resultado da primeira simulação, e parte de seu conteúdo é mostrada abaixo (cada linha contém algum resultado ou estatística da simulação, e o título é auto-explicativo): <syntaxhighlight lang=text>
 
version 2
 
run Hub1-1-20100423-09:38:33-7627
 
attr bytes 256
 
attr configname Hub1
 
attr datetime 20100423-09:38:33
 
attr experiment Hub1
 
attr inifile mu2.ini
 
attr iterationvars "$bytes=256, $stations=3"
 
attr iterationvars2 "$bytes=256, $stations=3, $repetition=0"
 
attr measurement "$bytes=256, $stations=3"
 
attr network HubLAN2
 
attr processid 7627
 
attr repetition 0
 
attr replication #0
 
attr resultdir results
 
attr runnumber 1
 
attr seedset 1
 
attr stations 3
 
 
scalar .        bytes  256
 
scalar .        stations        3
 
scalar HubLAN2.sta[0].cli      "packets sent"  0
 
scalar HubLAN2.sta[0].cli      "packets rcvd"  0
 
scalar HubLAN2.sta[0].cli      "end-to-end delay mean"        0
 
scalar HubLAN2.sta[0].cli      "end-to-end delay stddev"      nan
 
scalar HubLAN2.sta[0].cli      "end-to-end delay min"  0
 
scalar HubLAN2.sta[0].cli      "end-to-end delay max"  0
 
scalar HubLAN2.sta[0].srv      "packets sent"  0
 
scalar HubLAN2.sta[0].srv      "packets rcvd"  247453
 
scalar HubLAN2.sta[0].srv      "end-to-end delay mean"        1.6121223100944
 
scalar HubLAN2.sta[0].srv      "end-to-end delay stddev"      1.0596723502417
 
scalar HubLAN2.sta[0].srv      "end-to-end delay min"  0.0002378
 
scalar HubLAN2.sta[0].srv      "end-to-end delay max"  5.18103003756
 
scalar HubLAN2.sta[0].llc      "dsaps registered"      1
 
scalar HubLAN2.sta[0].llc      "packets from higher layer"    0
 
scalar HubLAN2.sta[0].llc      "frames from MAC"      247453
 
scalar HubLAN2.sta[0].llc      "packets passed up"    247453
 
scalar HubLAN2.sta[0].llc      "packets dropped - unknown DSAP"        0
 
scalar HubLAN2.sta[0].mac      "simulated time"        60.0001141233
 
scalar HubLAN2.sta[0].mac      "txrate (Mb)"  10
 
scalar HubLAN2.sta[0].mac      "full duplex"  0
 
scalar HubLAN2.sta[0].mac      "frames sent"  0
 
scalar HubLAN2.sta[0].mac      "frames rcvd"  247453
 
scalar HubLAN2.sta[0].mac      "bytes sent"    0
 
scalar HubLAN2.sta[0].mac      "bytes rcvd"    68544481
 
scalar HubLAN2.sta[0].mac      "frames from higher layer"      0
 
scalar HubLAN2.sta[0].mac      "frames from higher layer dropped (iface down)"        0
 
scalar HubLAN2.sta[0].mac      "frames dropped (bit error)"    0
 
scalar HubLAN2.sta[0].mac      "frames dropped (not for us)"  0
 
scalar HubLAN2.sta[0].mac      "frames passed up to HL"        247453
 
scalar HubLAN2.sta[0].mac      "PAUSE frames sent"    0
 
scalar HubLAN2.sta[0].mac      "PAUSE frames rcvd"    0
 
scalar HubLAN2.sta[0].mac      "frames/sec sent"      0
 
scalar HubLAN2.sta[0].mac      "frames/sec rcvd"      4124.2088221947
 
scalar HubLAN2.sta[0].mac      "bits/sec sent"        0
 
scalar HubLAN2.sta[0].mac      "bits/sec rcvd"        9139246.7499834
 
scalar HubLAN2.sta[0].mac      "rx channel idle (%)"  5.937858457565
 
scalar HubLAN2.sta[0].mac      "rx channel utilization (%)"    94.031961146038
 
scalar HubLAN2.sta[0].mac      "rx channel collision (%)"      0.030180396396893
 
scalar HubLAN2.sta[0].mac      collisions      4825
 
scalar HubLAN2.sta[0].mac      backoffs        0
 
</syntaxhighlight>
 
 
== 23/09: 2a avaliação ==
 
 
Envolve o conteúdo sobre Camada Física, e se baseará nas listas de exercícios 3 e 4.
 
 
== 28/09: Redes locais ==
 
 
* Para fins de comparação, conectar os computadores da bancada no switch (tomadas verdes), e repetir parte das medições (apenas aquelas que envolvem todos os computadores da bancada).
 
 
* Arquitetura IEEE 802 e Redes locais IEEE 802.3 (Ethernet)
 
 
[[Imagem:Ethernet.png|600px]]
 
 
''Desenho usado por Bob Metcalfe, um dos criadores da Ethernet, para apresentação em uma conferência em 1976.''
 
 
=== Desempenho de um MAC CSMA/CD ===
 
 
Uma análise feita no capítulo 4 do livro "Redes de Computadores, 4a ed." de Andrew Tanenbaum fornece a seguinte previsão de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.
 
 
* ''Utilização do meio:''
 
 
<math>U = \frac{1}{1 + \frac{2BLe}{cF}}</math>
 
 
* '''''B:''''' taxa de bits nominal
 
* '''''L:''''' comprimento do meio de transmissão
 
* '''''c: ''''' velocidade de propagação do sinal
 
* '''''F:''''' comprimento do quadro
 
 
[[Image:Csma-perf.png|400px]]
 
 
Essa figura mostra curvas para a utilização do meio em função da quantidade de estações prontas para transmitir, e para diferentes tamanhos de quadro. A conclusão é que quadros menores proporcionam desempenho inferior, assim como uma quantidade maior de estações resulta em uma provável menor utilização do meio. No entanto essa análise considera a rede numa situação de carga muito alta, o que não acontece normalmente. Há também algumas simplificações no desenvolvimento da análise, tal como considerar que a probabilidade de retransmissão constante em cada ''slot'', ao invés de analisar o algoritmo de recuo exponencial binário (''backoff''). Finalmente, esse resultado tem sentido para um meio de transmissão compartilhado, mas a atualmente as redes locais ethernet trabalham com meios de transmissão exclusivos (''ethernet comutada e full-duplex'', em que não há risco de colisão).
 
 
== 30/09: Redes locais: arquitetura IEEE 802 ==
 
 
Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista5.pdf 5a lista de exercícios].
 
 
Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula9-ieee.pdf transparências].
 
 
Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum.
 
 
Capítulo 14 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan.
 
 
* Detalhamento da norma IEEE 802.3 (Ethernet)
 
* Visualização de quadros ethernet
 
* Teste de desempenho com switches, para comparar com os resultados obtidos com hubs
 
 
'''''Ver também:'''''
 
* [http://www.arandanet.com.br/midiaonline/rti/2010/abril/index.html Ethernet 40 Gbps e 100 Gbps]
 
 
== 05/10: Redes locais: interligação de LANs e VLANs IEEE 802.1q ==
 
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula10.pdf transparências].
 
* Capítulo 16 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.
 
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.
 
 
* '''Interligação de LANs (norma IEEE802.1D):'''
 
** Operação de pontes e switches
 
*** Visualizar o aprendizado de endereços em um switch ou ponte (usando o switch D-Link).
 
*** Visualizar como um switch ou ponte propaga quadros em broadcast.
 
 
* '''VLANs'''
 
** Norma [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1Q-2005.pdf IEEE 802.1q]
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab7.pdf Roteiro da experiência]
 
*** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/manual-des3526.pdf manual do switch D-Link DES-3526]
 
** Definição de VLANs
 
** Criação de VLANs no switch D-Link
 
** Visualização do tráfego de VLANs
 
 
 
== 07/10: Redes locais: VLANs IEEE 802.1q; interligação de LANs e protocolo Spanning Tree (STP) ==
 
 
[http://www.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova2-2010-1.pdf Conceitos da 2a avaliação]
 
 
Fazer a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista6.pdf 6a lista de exercícios].
 
 
* Continuação da aula de 07/05 sobre VLANs
 
* Introdução a STP (ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula11.pdf transparências])
 
 
=== Atividades ===
 
 
* Um computador com Linux pode ser transformado em uma ponte ou switch, usando [https://help.ubuntu.com/community/NetworkConnectionBridge bridge-utils]. O utilitário [http://manpages.ubuntu.com/manpages/karmic/man8/brctl.8.html ''brctl''] possibilita configurar interfaces do tipo ''bridge'':
 
** Para criar uma ''bridge'': <syntaxhighlight lang=bash>
 
# Cria uma interface de rede do tipo bridge, chamada br0. O nome da interface
 
# pode ser qualquer coisa (ex: br0, ponte1, ...)
 
brctl addbr br0
 
</syntaxhighlight>
 
** Para adicionar interfaces de rede à ''bridge'' br0: <syntaxhighlight lang=bash>
 
brctl addif br0 eth0
 
brctl addif br0 eth1
 
</syntaxhighlight>
 
** Para ver as ''bridges existentes'': <syntaxhighlight lang=bash>
 
brctl show
 
</syntaxhighlight>
 
** Para ver os endereços MAC reconhecidos atualmente na bridge br0: <syntaxhighlight lang=bash>
 
brctl showmacs br0
 
</syntaxhighlight>
 
* No Linux é possível usar VLANs, configuradas com o utilitário [http://manpages.ubuntu.com/manpages/hardy/man8/vconfig.8.html vconfig] (contido no pacote ''vlan'', que pode ser instalado com ''sudo apt-get install vlan''). Cada VLAN configurada irá criar uma interface virtual correspondente. Ex: para configurar as VLANs 5 e 10 na interface eth0: <syntaxhighlight lang=bash>
 
vconfig add eth0 5
 
vconfig add eth0 10
 
</syntaxhighlight> Com isto serão criadas as interfaces ''eth0.5'' (interface virtual associada à VLAN 5) e ''eth0.10'' (interface virtual da VLAN 10). Essas interfaces podem ser configuradas com o utilitário ''ifconfig'', como qualquer outra interface de rede.
 
* Essas funcionalidades podem ser exploradas no [http://www.netkit.org Netkit].
 
 
==== Netkit ====
 
 
Um sistema para fazer experimentos com redes interligadas por pontes ou switches.
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/netkit/netkit.pdf Guia rápido de instalação]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/netkit/ Download]
 
* Para os experimentos abaixo:
 
** Fazer experimentos para visualizar como os quadros se propagam entre os segmentos através da ponte.
 
** Visualizar como a ponte aprende os endereços das estações de cada segmento.
 
** Testar o envio de quadros em broadcast, e observar como a ponte os propaga.
 
** Para os experimentos com VLAN, observar os quadros com ''tag'', nas interfaces que operam em modo ''tagged''. Teste também o isolamento entre VLANs.
 
* ''Exemplos de experimentos:'' faça o download e descompacte-os; em seguida entre no diretório do experimento, e execute '''lstart'''. Para terminar o experimento execute '''lhalt -q'''.
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/netkit/lan.tgz LAN simples]: uma LAN com quatro computadores (pc1, pc2, pc3, pc4). Os computadores virtuais têm IPs 192.168.1.X, sendo X o número computador (ex: pc1 tem IP 192.168.1.1). Use ping para fazer testes de comunicação.
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/netkit/bridge.tgz LAN com switch]: uma LAN com quatro computadores (pc1, pc2, pc3, pc4) interligados por um switch. O switch é implementado por um computador com Linux com 4 portas ethernet.
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/netkit/bridge1.tgz Switch e duas LANs]: duas LANs com quatro computadores cada (LAN1 tem IPs 192.168.1.0/24 e contém pc1, pc2, pc3, pc4; LAN2 tem IPs 192.168.2.0/24 e contém pc5, pc6, pc7, pc8). Um switch implementado por um computador com Linux com 9 portas ethernet interliga todos os computadores. No entanto, esse switch separa as duas LANs, como se fossem duas VLANs. O computador pc4 opera como gateway entre as LANs.
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/netkit/bridge2.tgz Switch e duas VLANs]: duas VLANs com quatro computadores cada. VLAN 5 tem IPs 192.168.1.0/24 e contém pc1, pc2, pc3, pc4; VLAN 10 tem IPs 192.168.2.0/24 e contém pc4, pc5, pc6, pc7. O switch Linux foi configurado para que a interface eth3 esteja nas VLANs 5 e 10 (i.e. em modo ''tagged''), as interfaces eth0, eth1, eth2 estejam na VLAN 5 em modo ''untagged'', e as interfaces eth4, eth5 e eth6 estejam na VLAN 10 em modo ''untagged''. O computador pc4 opera como gateway entre as VLANs, usando duas interfaces virtuais (i.e. a interface eth0 foi posta nas VLANs 5 e 10 em modo ''tagged'').
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/netkit/bridge3.tgz Dois switches e duas VLANs]: duas VLANs com quatro computadores cada. VLAN 5 tem IPs 192.168.1.0/24 e contém pc1, pc2, pc3, pc4; VLAN 10 tem IPs 192.168.2.0/24 e contém pc5, pc6, pc7, pc8. O switch Linux foi configurado para que a interface eth3 esteja nas VLANs 5 e 10 (i.e. em modo ''tagged''), as interfaces eth0, eth1, eth2 estejam na VLAN 5 em modo ''untagged'', e as interfaces eth4, eth5 e eth6 estejam na VLAN 10 em modo ''untagged''. O computador pc4 opera como gateway entre as VLANs, usando duas interfaces virtuais (i.e. a interface eth0 foi posta nas VLANs 5 e 10 em modo ''tagged''). O diagrama abaixo ilustra essa rede:
 
 
[[imagem:Bridge3.png]]
 
 
Leia os arquivos de inicialização ''switch1.startup'', ''switch2.startup'' e ''pc4.startup'' para entender como foram configuradas as VLANs.
 
 
== 14/10: Redes locais: interligação de LANs e protocolo Spanning Tree (STP) ==
 
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula11.pdf transparências].
 
* [http://www.cisco.com/warp/public/473/spanning_tree1.swf Uma animação sobre STP].
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/stp.pdf Um texto explicativo sobre  STP]
 
* [http://en.wikipedia.org/wiki/Spanning_tree_protocol STP na  Wikipedia]
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista7.pdf 7a Lista de exercícios]
 
 
=== Atividades ===
 
 
# Experimento com Spanning Tree:
 
#* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab8.pdf Usando os switches do laboratório]
 
#* [http://www.sj.ifsc.edu.br/~msobral/RCO2/netkit/bridge4.tgz Usando o Netkit]. <br><br>Esse segundo experimento implementa esta rede:<br><br>[[Imagem:Stp_netkit.png]]<br><br>
 
#*# Iniciar o laboratório do Netkit, com comando '''lstart'''
 
#*# Rodar o '''tcpdump''' nas interfaces dos switches: <syntaxhighlight lang=bash>
 
tcpdump -i any -ln
 
</syntaxhighlight>
 
#*# Em qualquer um dos PC faça um ping para qualquer outro PC. Observe as respostas do ''ping'', e o tráfego mostrado pelo ''tcpdump''.
 
#*# Em cada um dos switches ative o protocolo STP: <syntaxhighlight lang=bash>
 
brctl stp br0 on
 
</syntaxhighlight>
 
#*# Observe as respostas do ping, e o tráfego  revelado pelo ''tcpdump''.
 
#*# Veja como  ficou a topologia lógica após a ativação do STP. Quer dizer, veja os estados das portas dos switches: <syntaxhighlight lang=bash>
 
brctl showstp br0
 
</syntaxhighlight>
 
#*# Modifique a prioridade STP dos switches (um número  entre 0 e 65535), e veja o resultado na topologia lógica criada pelo STP: <syntaxhighlight lang=bash>
 
brctl setbridgeprio br0 PRIORIDADE
 
</syntaxhighlight>
 
#*# Pare o ''ping'' e ''tcpdump''. Em seguida desative o STP nos switches: <syntaxhighlight lang=bash>
 
brctl stp br0 off
 
</syntaxhighlight>
 
#*# Execute novamente o tcpdump em todos os switches: <syntaxhighlight lang=bash>
 
# N é o número  do switch
 
tcpdump -i any -ln -w switchN.cap
 
</syntaxhighlight>
 
#*# Reative o STP nos switches: <syntaxhighlight lang=bash>
 
brctl stp br0 on
 
</syntaxhighlight>
 
#*# Pare o ''tcpdump'', e copie cada arquivo ''switchN.cap'' para o diretório /lab de cada switch. Esse diretório corresponde ao diretório do laboratório no  sistema Linux real.
 
#*# Execute o wireshark, e use-o para interpretar os arquivos ''switchN.cap''. Veja as PDUs STP trocadas entre os switches.
 
 
== 19/10: Redes locais: controle de acesso com IEEE 802.1x e VLANs dinâmicas ==
 
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula12.pdf transparências]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab10.pdf Roteiro da experiência]
 
 
=== Norma IEEE 802.1x ===
 
 
A norma [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1X-2004.pdf IEEE 802.1x] define um framework para controle de acesso a redes locais IEEE 802, sendo usado tanto em redes cabeadas quanto sem-fio. O propósito dessa norma é criar mecanismos para identificar e autorizar ou não o acesso de um usuário à infraestrutura da rede. Esses mecanismos são implementados em três componentes que forma a estrutura de controle de acesso IEEE 802.1x, mostrada na figura abaixo:
 
 
[[imagem:Ieee-8021x.png]]
 
 
* '''Supplicant:''' o cliente que deseja se autenticar. Implementado com um software (ex: [http://hostap.epitest.fi/wpa_supplicant/ wpa_supplicant], [http://open1x.sourceforge.net/ xsupplicant]).
 
* '''Autenticador:''' o equipamento que dá acesso à rede para o cliente, e onde é feito o bloqueio ou liberação do uso da rede. Implementado em switches e Access Points (no caso de redes sem-fio).
 
* '''Servidor de Autenticação:''' o equipamento que verifica as credenciais fornecidas pelo ''supplicant'', e informa ao ''autenticador'' se ele pode ou não acessar a rede. Implementado comumente em um servidor [http://en.wikipedia.org/wiki/RADIUS Radius].
 
 
A autenticação se faz com protocolos específicos definidos na norma IEEE 802.1x:
 
 
* '''EAP (Extensible Authentication Protocol):''' protocolo para intercâmbio de informações de autenticação entre supplicant e servidor de autenticação.
 
* '''EAPOL (EAP over LAN):''' protocolo para transportar as PDUs EAP entre supplicant e autenticador.
 
 
[[imagem:Ieee-802x-eap.png]]
 
 
Existem vários métodos EAP, que correspondem a diferentes mecanismos de autenticação. Assim, o método de autenticação pode ser escolhido de acordo com as necessidades de uma rede.
 
 
* '''EAP-MD5:''' baseado em login e senha, usa um desafio MD5 para autenticar o usuário.
 
* '''EAP-TLS:''' baseado em certificados digitais X.509, usados para autenticar a rede para o supplicant, e o supplicant para a rede.
 
* '''EAP-TTLS:''' também baseado em certificados digitais, mas somente para autenticar a rede pro supplicant. O supplicant se autentica com algum outro método EAP mais simples, como EAP-MD5.
 
* ... [http://freeradius.org/features/eap.html e muitos outros !]
 
 
== 21/10: IEEE 802.1x e VLANs dinâmicas ==
 
 
A 3a avaliação foi adiada para 28/05.
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova3-2009-2.pdf Avaliação do semestre 2009-2]
 
 
* Finalização do experimento sobre IEEE 802.1x:
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab10.pdf Roteiro da experiência sobre VLANs dinâmicas]
 
 
== 26/10: WAN: Introdução; Frame-Relay ==
 
 
Aula até 11:30 h (usaremos o horário do Pedro Armando).
 
 
* Introdução a WAN: conceitos básicos (ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula13.pdf transparências])
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab12.pdf Experimento sobre Frame-Relay]
 
 
'''Ver também:'''
 
*Capítulo 18 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.
 
*Capítulos 12 a 15 do livro ''Comunicação entre Computadores e Tecnologias de Rede'', de Michael Gallo e William Hancock.
 
 
== 28/10: 3a avaliação ==
 
 
Na sala de aula  ...
 
 
=== Conceitos ===
 
 
== 04/11: WAN: Frame-Relay e MPLS ==
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista8.pdf 8a lista de exercícios]
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab12.pdf Experimento com Frame-Relay]
 
** [http://www.ciscopress.com/articles/article.asp?p=170741 Guia da Cisco sobre Frame Relay]
 
 
* '''''Referências sobre MPLS:'''''
 
** Capítulo 5 (seção 5.4.5) do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum.
 
** [http://www.opalsoft.net/qos/MPLS.htm MPLS Related Notes]
 
** [http://www.netcraftsmen.net/resources/archived-articles/423-introduction-to-mpls.html MPLS Tutorial]
 
** [http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS na Wikipedia]
 
** [http://www.ietf.org/rfc/rfc3031.txt RFC 3031: MPLS  Architecture]
 
** [http://www.ietf.org/rfc/rfc3032.txt MPLS Label Stack Encoding]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/mpls-linux Documentação sobre os experimentos com MPLS (tirados do projeto MPLS-Linux)]
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab13-mpls.pdf 1o Experimento com MPLS]
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/netkit/testbed.tar.gz Lab do netkit com o experimento[]
 
 
== 09/11: WAN: MPLS ==
 
 
'''''Para casa:'''''
 
* Ler [http://www.networkcomputing.com/1113/1113ws2.html texto sobre MPLS]
 
* Ler [http://www.alcatel-lucent.com/solutions/mpls4ips/docs/MPLS_EEI_wp.pdf este outro texto sobre MPLS], da Alcatel-Lucent.
 
 
 
'''''Exemplos de serviços baseados em MPLS em operadoras:'''''
 
* [http://www.gvt.com.br/portal/grandesempresas/solucoesdedados/vpnmpls/index.jsp GVT]
 
* [http://www.embratel.com.br/Embratel02/cda/portal/0,2997,MG_P_11340,00.html Embratel]
 
 
 
'''''Atividade de hoje: Labelspaces e túneis'''''
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14-mpls.pdf Roteiro sobre labelspaces e túneis MPLS]
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14/labelspaces.tgz Laboratório do netkit sobre labelspaces]
 
 
== 11/11: WAN: MPLS ==
 
 
'''Atenção: 4a avaliação'''
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/trabalhos/trab3-wan-2010-1.pdf Trabalho sobre WAN]
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/trabalhos/wan-2010-1.tgz  Laboratório do Netkit necessário para o trabalho]
 
 
[[Imagem:Wan-2010-1.png|640px]]
 
 
 
'''''Atividade de hoje: túneis'''''
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14-mpls.pdf Roteiro sobre labelspaces e túneis MPLS]
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14/tuneis.tgz Laboratório do netkit sobre túneis]
 
 
''Questão: para que serviria um túnel  MPLS ?''
 
 
=== Operações MPLS no Linux ===
 
 
'''''CUIDADO:''''' Não use rótulos entre 0 e 15, pois são reservados (ver [http://www.networkers-online.com/blog/2009/01/mpls-labels/ detalhes]).'''
 
 
As operações MPLS no Linux são definidas por sequências de comandos não muito claros à primeira vista. Assim segue abaixo um rápido guia sobre como realizá-las:
 
 
* '''PUSH:''' da rede IP para a rede MPLS <syntaxhighlight lang=bash>
 
# Cria primeiro um NHLFE que adiciona o rótulo 100, e encaminha a PDU MPLS pela interface eth3. O endereço IP 10.0.1.5 corresponde
 
# ao próximo roteador.
 
var=`mpls nhlfe add key 0 instructions push gen 100 nexthop eth3 ipv4 10.0.1.5 |grep key | cut -c 17-26`
 
 
# Mapeia FEC (Forward Equivalence Class) e NHLFE. FEC é a classificação do tráfego que está entrando na rede MPLS (note
 
# que nesse exemplo trata-se somente de um conceito).
 
ip route add 172.16.30.0/24 via 10.0.1.5 mpls $var
 
</syntaxhighlight>
 
* '''POP:''' da rede MPLS para a rede IP <syntaxhighlight lang=bash>
 
# Adiciona a interface eth3 ao labelspace 0
 
mpls labelspace set dev eth3 labelspace 0
 
 
# Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
 
# Esse comando sozinho faz o POP do rótulo
 
mpls ilm add label gen 300 labelspace 0
 
</syntaxhighlight>
 
* '''SWAP:''' comutando rótulos dentro da rede MPLS <syntaxhighlight lang=bash>
 
# Adiciona a interface eth0 ao labelspace 0
 
mpls labelspace set dev eth0 labelspace 0
 
 
# Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
 
# Esse comando sozinho faz o POP do rótulo
 
mpls ilm add label gen 2000 labelspace 0
 
 
# Cria NHLFE que adiciona o rótulo 3000, e encaminha a PDU MPLS pela interface eth1. O endereço IP 10.0.6.3 corresponde
 
# ao próximo roteador.
 
var1=`mpls nhlfe add key 0 instructions push gen 3000 nexthop eth1  ipv4 10.0.6.3 |grep key | cut -c 17-26`
 
 
# Faz a comutação de fato: a PDU MPLS identificada pela ILM com rótulo 2000 e vinda pelo labelspace 0 deve ser encaminhada
 
# de acordo com o que estiver determinado na NHLFE acima
 
mpls xc add ilm_label gen 2000 ilm_labelspace 0 nhlfe_key $var1
 
</syntaxhighlight>
 
* ''Caso especial: entrada em túnel, que se faz com '''SWAP''' e em seguida '''PUSH''':'' <syntaxhighlight lang=bash>
 
# Adiciona a interface eth1 ao labelspace 0
 
mpls labelspace set dev eth1 labelspace 0
 
 
# Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
 
# Esse comando sozinho faz o POP do rótulo
 
mpls ilm add label gen 100 labelspace 0
 
 
# Cria NHLFE que adiciona o rótulo 2000, e encaminha a PDU MPLS pela interface eth0.
 
var1=`mpls nhlfe add key 0 instructions push gen 2000  nexthop eth0 ipv4 10.0.4.4 |grep key | cut -c 17-26`
 
 
# Cria NHLFE que adiciona o rótulo 200, e encaminha a PDU MPLS de acordo com as instruções da NHLFE acima
 
# Isto terá o efeito de empilhar o rótulo 2000 sobre o rótulo 200.
 
var2=`mpls nhlfe add key 0 instructions push gen 200 forward $var1 |grep key| cut -c 17-26`
 
 
# Faz a comutação de fato: a PDU MPLS identificada pela ILM com rótulo 100 e vinda pelo labelspace 0 deve ser encaminhada
 
# de acordo com o que estiver determinado na NHLFE acima
 
mpls xc add ilm_label gen 100 ilm_labelspace 0 nhlfe_key $var2
 
</syntaxhighlight>
 
* ''Caso especial: saída do túnel MPLS, quando deve ser feito um '''POP''' e em seguida '''SWAP''''' (obs: se aplica somente ao caso em que a mensagem que sai do túnel deve ir a outro LSR. Se ao sair do túnel também for sair do LSP interno, então deve ser feito outro POP ao invés de SWAP).<syntaxhighlight lang=bash>
 
# Adiciona a interface eth1 ao labelspace 0
 
mpls labelspace set dev eth1 labelspace 0
 
 
# Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
 
# Esse comando sozinho faz o POP do rótulo 3000
 
mpls ilm add label gen 3000 labelspace 0
 
 
# Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
 
# Esse comando sozinho faz o POP do rótulo 200
 
mpls ilm add label gen 200 labelspace 0
 
 
# Cria NHLFE que adiciona o rótulo 300, e encaminha a PDU MPLS pela interface eth2
 
key=`mpls nhlfe add key 0 instructions push gen 300 nexthop eth2 ipv4 10.0.5.1 |grep key |cut -c 17-26`
 
 
# Faz a comutação de fato: a PDU MPLS identificada pela ILM com rótulo 200 e vinda pelo labelspace 0 deve ser encaminhada
 
# de acordo com o que estiver determinado na NHLFE acima.
 
# Repare que o comando abaixo irá atuar somente depois que a PDU tiver saído do túnel (i.e. depois que tiver feito o POP 3000)
 
mpls xc add ilm_label gen 200 ilm_labelspace 0 nhlfe_key $key
 
</syntaxhighlight>
 
 
''Obs: cada interface precisa ser adicionada a um labelspace apenas uma vez''
 
 
== 16/11: WAN: MPLS ==
 
 
* ''Label merging:'' [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab15-mpls.pdf roteiro do experimento]
 
 
Obs: não foi realizado esse experimento, pois aproveitou-se a aula para esclarecer o projeto sobre WAN.
 
 
== 18/11: Redes sem-fio: introdução ==
 
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula15.pdf transparências]
 
* Ver capítulo 15 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.
 
* Ver este [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/livros/livro-802_11.chm livro on-line] sobre redes IEEE 802.11.
 
 
== 23/11: Redes sem-fio: padrão IEEE 802.11 ==
 
 
* Resolver a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista9.pdf 9a lista de exercícios]
 
 
Será feito um  experimento para configurar, usar e verificar a vazão de uma rede local sem-fio. Também será investigado o tráfego nessa rede, usando o analisador de protocolo wireshark.
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab16-wlan.pdf Roteiro do experimento]
 
 
Após a realização do experimento, obtiveram-se vazões da ordem de 20 Mbps (com um caso que chegou a 29 Mbps). Vale lembrar que o protocolo MAC da rede IEEE 802.11 faz controle de erros do tipo Stop-and-Wait, e comparar os resultados com a [[RCO2-2010-1#Desempenho_do_Stop-and-wait|análise de desempenho para um protocolo Stop-and-Wait na ausência de erros]], feita no início do semestre. Há inclusive a questão 19 da [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista1.pdf 1a lista de exercícios], que pede que se calcule a taxa efetiva de transmissão (em outras palavra, a vazão máxima possível) numa rede sem-fios IEEE 802.11. Essa questão foi resolvida em aula, e obteve-se uma taxa efetiva de aproximadamente 34 Mbps. Esse resultado é otimista, pois assume um tráfego unidirecional e com apenas uma estação transmitindo. Apesar disso, os valores obtidos no experimento são da mesma ordem de grandeza, não estando muito distantes do previsto.
 
 
== 25/11: Redes sem-fio: redes ad hoc ==
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab17-wlan.pdf Roteiro do experimento]
 
 
'''''Redes Ad Hoc'''''
 
* Ausência de uma estação base (ou ''Access Point'')
 
* Cada estação pode se comunicar diretamente com qualquer outra estação em seu alcance
 
* Problemas dos nodos  escondidos e expostos se manifestam intensamente
 
* Demandam roteamento especializado (ex: [http://en.wikipedia.org/wiki/Ad_hoc_On-Demand_Distance_Vector_Routing AODV], [http://en.wikipedia.org/wiki/OLSR OLSR])
 
 
 
[[imagem:Adhoc1.jpg]]
 
<br>''Podem  possibilitar a criação de uma rede local temporária em um ambiente previamente sem infraestrutura (AP)''
 
 
 
 
[[imagem:Adhocnet.gif|400px]]
 
<br>''Podem formar redes temporárias entre equipamentos móveis''
 
 
 
 
[[imagem:Vanet.gif|400px]]
 
<br>''Podem  ser usadas como base para aplicações inovadoras, como  redes veiculares ''
 
 
=== Problemas sobre nodos escondidos e expostos ===
 
 
# De acordo com a rede sem-fio em modo ad hoc mostrada na figura abaixo, identifique (assuma que o MAC  seja o CSMA/CA):
 
#* Que estações não conseguem transmitir simultaneamente, devido ao problema dos nodos expostos
 
#* Para cada estação, identifique todas as estações que podem transmitir simultaneamente (independente da estação destino) <br><br>[[imagem:Rede-sem-fio1.png|600px]]<br>
 
# Faça a mesma análise para a rede mostrada abaixo: <br><br>[[imagem:Rede-sem-fio2.png|600px]]
 
 
== 30/11: Redes sem-fio: transição entre BSS em rede infra-estruturada (handover) ==
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab17-wlan.pdf Roteiro do experimento]
 

Edição das 09h03min de 30 de julho de 2010

Instalação de Equipamentos de Redes: Diário de Aula 2010-2

Professor: Marcelo Maia Sobral (msobral@gmail.com)
Lista de email (forum): ier-ifsc@googlegroups.com
Atendimento paralelo: 2a e 3a de 10h às 11 h, 3a e 5a de 16h às 17h.

Bibliografia

Curiosidades

Listas de exercícios

Avaliações

29/07: Introdução e camada de enlace

  • Capítulos 1, 11 e 12 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (há uma cópia no xerox).


Apresentação da disciplina: conteúdo, bibliografia e avaliação, laboratório.


Apresentou-se uma visão geral dos conceitos sobre comunicação de dados, amparada em transparências. Nesta aula se planta a base para iniciar o estudo com maior profundidade da camada de enlace e da camada física.

Nosso ponto de partida serão pequenas redes compostas por uma ou mais redes locais (LANs) que se interligam, incluindo conexão para a Internet. Em cada rede investigaremos seu funcionamento, incluindo as configurações da subrede IP e os equipamentos usados.

Rede1-IER.png
Figura 1: uma pequena rede local (LAN) com conexão para Internet


Rede2-IER.png
Figura 2: duas redes locais (LAN) interligadas por um enlace de longa distância (WAN)

Será feito um experimento com base nas redes acima.

Enlaces de dados (Data Link)

Data-link.png

Os serviços identificados na figura acima estão descritos abaixo. A eles foram acrescentados outros dois:

  • Encapsulamento (ou enquadramento): identificação das PDUs (quadros) de enlace dentro de sequências de bits enviadas e recebidas da camada física
  • Controle de erros: garantir que quadros sejam entregues no destino
    • Detecção de erros: verificação da integridade do conteúdo de quadros (se foram recebidos sem erros de bits)
  • Controle de fluxo: ajuste da quantidade de quadros transmitidos, de acordo com a capacidade do meio de transmissão (incluindo o atraso de transmissão) e do receptor
  • Endereçamento: necessário quando o enlace for do tipo multi-ponto, em que vários equipamentos compartilham o meio de transmissão (ex: redes locais e redes sem-fio)
  • Controle de acesso ao meio (MAC): também necessário para meios compartilhados, para disciplinar as transmissões dos diversos equipamentos de forma a evitar ou reduzir a chance de haver colisões (transmissões sobrepostas)
  • Gerenciamento de enlace: funções para ativar, desativar e manter enlaces

05/08: Enquadramento e Detecção de erros

Nesta aula serão configurados enlaces entre dois roteadores Cisco usando os protocolos PPP e HDLC. O objetivo é ter um contato com esse tipo de equipamento, e ver os protocolos em ação. Além disto, será feita uma medição de vazão (throughput) com cada um dos protocolos.

Nesta aula se criarão enlaces ponto-a-ponto entre computadores, usando o protocolo PPP. A partir de alguns experimentos se discutem os serviços da camada de enlace, em particular o enquadramento e detecção de erros.

Roteiro do primeiro laboratório

Foi apresentado como funciona o enquadramento (ou sincronização de quadro) do tipo sentinela (usado pelo PPP e HDLC). Nesse caso, usa-se uma flag delimitadora para informar o início e fim de quadro. Há uma segunda flag, chamada de escape (ESC), para evitar que um byte com o valor de flag delimitadora, o qual apareça em algum campo do quadro (ex: dados ou campos de controle) seja erroneamente interpretado como fim de quadro.

Probabilidade de erros de transmissão (BER - Bit Error Rate), códigos de detecção de erro e CRC.

Há um resumo nas transparências.

O experimento com o gerador de CRC-16 do PPP pode ser repetido em casa. Ele é capaz de verificar um quadro PPP, que pode ser conseguido usando-se a opção record do pppd. Essa opção grava em um arquivo de log os conteúdos dos quadros PPP enviados e recebidos, que podem depois serem visualizados (ou terem seu bytes extraídos) com o utilitário pppdump. Porém o gerador de CRC-16 fornecido inclui dois arquivos contendo quadros PPP previamente coletados: quadro_correto.raw e quadro_errado.raw. Eles podem ser verificados com o programa fcs (o verificador de CRC-16):

# descompacta o arquivo do gerador de CRC-16
tar czf fcs-rfc.tgz
cd fcs

# Testa o quadro correto
./fcs quadro_correto.raw

# Testa o quadro_errado
./fcs quadro_errado.raw

Há um testador que modifica aleatoriamente uma certa quantidade de bits do quadro_correto.raw, até que encontre um caso em que o erro não seja detectado. Para usá-lo deve-se executar o programa testa.py:

# executa testa.py com 4 erros de bit por quadro gerados aleatoriamente
./testa.py 4

O código fonte do gerador de CRC-16 está no arquivo fcs-rfc.c, o qual foi obtido diretamente da RFC 1662.

12/08:

Detalhes sobre esses protocolos. Ver as transparências:

19/08:

Ver capítulos 3, 4 e 5 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).

Ver transparências.


Serviços da camada física:

Servicos-Camada-Fisica.png
(Adaptado do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Berhouz Forouzan)


Transmissão digital:

26/08:

Ver transparências sobre modems.

Resolver a 3a lista.

Hoje foi realizada a experiência com modems síncronos, em que se configuram modems SDSL.

Ver capítulos 3 e 4 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).

Ver transparências sobre códigos de linha.

Ver transparências.

Roteiro do experimento

Modems analógicos e Interfaces digitais

Ver capítulo 5 e 6 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).

Ver transparências sobre modems analógicos.

Ver transparências sobre interfaces digitais.

02/09:

09/09:

Introdução a redes locais

  • Transparências:
  • Capítulo 13 do livro "Comunicação de Dados e Redes de Computadores", de Berhouz Forouzan (tem no xerox)
  • Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum (tem na biblioteca)


Distinção entre WAN, MAN e LAN

  • Aplicações de cada um desses tipos de rede
  • Tecnologias envolvidas
  • "Backbones" da Internet Brasileira:
Brasil em 1996
RNP 1991,1992,1996,1998,2000,2001,2005,2006, 2007.
Embratel Mapa 1,Mapa 2
Eletronet Mapa Eletronet


LANs

  • Características
  • Topologias
  • O problema do acesso ao meio

16/09:

23/09:

30/09:

07/10:

14/10:

21/10:

28/10:

04/11:

11/11:

18/11: Segurança em redes sem-fio IEEE 802.11

25/11: Projeto Integrador

02/12: Projeto Integrador

09/12: Projeto Integrador

16/12: Apresentação do projeto