Mudanças entre as edições de "IER-2014-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(112 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 
= Instalação de Equipamentos de Redes: Diário de Aula 2014-1 =
 
= Instalação de Equipamentos de Redes: Diário de Aula 2014-1 =
  
'''Professor:''' [[Kleber Vieira|Kleber Vieira]] (kleber.magno@gmail.com)
+
'''Professor:''' [[Jorge Henrique B. Casagrande|Jorge Casagrande]] (casagrande@ifsc.edu.br)
<br>'''Atendimento paralelo:'''  3a feira 19:40h - 20:40h (Lab. de Desenvolvimento de Tele)
+
<br>'''Atendimento paralelo:'''  4a feira 11:35h - 12:30h  e 4a feira 16:35h - 17:30h
  
 
* [[Instalação_de_Equipamentos_de_Rede_(técnico)|Ementa]]
 
* [[Instalação_de_Equipamentos_de_Rede_(técnico)|Ementa]]
 +
 +
==[[IER (Plano de Ensino) | Plano de Ensino]]==
 +
 +
== ANEXOS ==
 +
;[[IER (Plano de Ensino) | Cronograma de atividades]]
 +
;[http://tele.sj.ifsc.edu.br/arquivos/publicos/Horario/ Horário de Aula e Atendimento Paralelo]
 +
 +
== Dados Importantes ==
 +
''Professor'': [[Jorge Henrique B. Casagrande]]
 +
<br>''Email'': casagrande@ifsc.edu.br
 +
<br>''Atendimento paralelo'': 4a feira 11:35h - 12:30h e 4a feira 16:35h - 17:300h (Sala dos professores de TELE - ao lado da reprografia)
 +
<br> ''Endereço do grupo'': https://www.facebook.com/groups/IFSCTeleSubsequente2013.1/
 +
<br> ''Link alternativo para Material de Apoio da disciplina'': http://www.sj.ifsc.edu.br/~casagrande/RED
 +
<br><br> Toda vez que voce encontrar a marcação <math>\blacklozenge</math> ao lado de alguma atividade extra, significa que essa atividade será computada na avaliação individual. O prazo estabelecido para entrega estará destacado ao lado da atividade. Portanto, não perca o prazo limite para entrega. '''Atividades entregues fora do prazo não serão aceitas!'''
 +
 +
== Recados Importantes ==
 +
<br> '''20/02 ATENÇÃO:''' Uma avaliação só pode ser recuperada somente se existir justificativa reconhecida pela coordenação. Desse modo, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.
 +
<br>
 +
<br> '''21/02 Uso da Wiki:''' A partir dessa data,todo o repositório de material de apoio e referências de nossas aulas passam a usar a Wiki de tele. Para interação fora da sala de aula, acessem nosso [https://www.facebook.com/groups/IFSCTeleSubsequente2013.1/ grupo] do facebook. Os planos de uso do Moodle que eu comentei para voces serão adiados em função do projeto ampliado que o IFSC está construindo para usar esse ambiente.
 +
 +
=Resultados das Avaliações=
 +
 +
{| border="1" cellpadding="5" cellspacing="0"
 +
!Aluno
 +
![http://www.sj.ifsc.edu.br/~casagrande/IER/lista1.pdf '''Lista 1''']
 +
![http://www.sj.ifsc.edu.br/~casagrande/IER/exercicios/lista2.pdf '''Lista 2''']
 +
!AE0
 +
!A1
 +
!RecA1
 +
!PI
 +
!NF
 +
!conceito
 +
|-
 +
|Angelo  || ||65 || ||30 ||40 ||75 ||59 ||C
 +
|-
 +
|Erik || 60 || 65 ||  || || 43 ||55 ||47 ||D
 +
|-
 +
|Francin ||65 ||70 || V||37||43 ||80 ||61 ||C
 +
|-
 +
|Gerson || 60 ||85  || V ||24 ||43  ||85 ||62 ||C
 +
|-
 +
|Guilherme || 80 || 60 || V ||53 ||65 ||85 ||75 ||B
 +
|-
 +
|Hyowatha ||  ||85  ||  || || || || ||
 +
|-
 +
|Jeferson || 60 ||85  || V ||64|| ||85 ||75 ||B
 +
|-
 +
|Lucas || 80 || 65 ||V  ||40|| 63 ||65 ||65 ||C
 +
|-
 +
|Marina || 90 || 60 || V ||84 ||  ||75 ||81 ||B
 +
|-
 +
|Mathias || 65 || 70 || V ||62 ||  ||85 ||74 ||B
 +
|-
 +
|Nicholas ||  || 60 ||  ||38||32 ||65 ||48 ||D
 +
|-
 +
|Rafael ||30  ||70  ||  ||38||53 ||90 ||69 ||C
 +
|-
 +
|Ronaldo || 30 ||60  ||V  || || || ||13 ||D
 +
|-
 +
|Samuel || 30 || 65 ||  || 38||67 ||75 ||71 ||B
 +
|-
 +
|Sidnei || 55 ||70  || V ||38 ||43 ||90 ||66 ||C
 +
|-
 +
|Vinicius || 60 || 85 || V ||53 ||72 ||80 ||76 ||B
 +
|-
 +
|}
 +
 +
;Atividades Extras
 +
* [http://www.sj.ifsc.edu.br/~casagrande/IER/lista1.pdf '''Lista 1'''  <math>\blacklozenge</math>] '''prazo:''' 07/05/14 às 18:30Hs. '''Execução''': em dupla. '''Como:''' Manuscrita, impressa ou via email<br>
 +
* [http://www.sj.ifsc.edu.br/~casagrande/IER/lista2.pdf '''Lista 2'''  <math>\blacklozenge</math>] '''prazo:''' 30/06/14 às 18:30Hs. '''Execução''': em equipe conforme integrantes do PI. '''Como:''' Manuscrita, impressa ou via email<br>
 +
* '''[[AE0 - Aplicando VLAN]]''' <math>\blacklozenge</math> '''prazo:''' 21/05/14 às 18:30Hs. '''Execução''': em dupla. '''Como:''' Manuscrita, impressa ou via email<br>
 +
* '''A1''' prevista:'''02/07/14 às 20:40Hs.''' Conteúdo: '''toda a matéria''' <br>
 +
* '''REC A1''' prevista:'''09/07/14 às 20:40Hs.''' Conteúdo: '''toda a matéria''' <br>
 +
* '''PI''' prevista:'''11/07/14 às 18:30Hs''' Apresentação da equipe'''<br><BR>
 +
 +
'''COMPOSIÇÃO DA NOTA FINAL''':  '''NF''' = 0,48(maior_nota{A1,REC A1}) + 0,32PI + 0,1(média{Lista1;Lista2}) + 0,1(avaliação individual)
 +
 +
'''ATENÇÃO: A NOTA DE PI É O VALOR FINAL DA MÉDIA ENTRE A NOTA DA EQUIPE E NOTA INDIVIDUAL. DEMAIS RESULTADOS DA RECUPERAÇÃO E NOTAS DA AE, PODEM ME PROCURAR.'''
 +
 +
Se '''NF''' < 6,0  = '''D''' --> '''Reprovado''' <br>
 +
Se  60 =< '''NF''' < 75  = '''C''' --> '''Aprovado''' <br>
 +
Se  75 =< '''NF''' < 90  = '''B''' --> '''Aprovado'''<br>
 +
Se  '''NF''' >= 90 = '''A''' --> '''Aprovado'''<br>
 +
 +
 +
 +
== Material de Apoio ==
 +
 +
;Slides utilizados durante algumas aulas
 +
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/fundamentos1.pdf Aulas 1 e 2]
 +
:* [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/fundamentos2.pdf Aulas 3 e 4]
 +
:* [http://tele.sj.ifsc.edu.br/~msobral/IER/slides/aula1-2012-1.pdf Aula 4: Slides prof. Sobral - Introdução a camada de enlace], [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-ppp.pdf PPP], [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-hdlc.pdf HDLC]
 +
:* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula8.pdf LANs e acesso ao meio]
 +
:* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/slides/aula9-ieee.pdf Arquitetura IEEE].
 +
 +
;Manuais e outros
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/manuais/Guia_DT2048_SHDSL_T_E_S_VG_210.5088.00-1.pdf Guia Rápido de Configuração Modem DT2048SHDSL]
  
 
== Bibliografia ==
 
== Bibliografia ==
Linha 31: Linha 128:
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/dlink Alguns procedimentos para o switch D-Link DES-3526 em português]
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/dlink Alguns procedimentos para o switch D-Link DES-3526 em português]
  
== Listas de exercícios ==
+
== Softwares ==
 
 
* [http://tele.sj.ifsc.edu.br/~msobral/IER/listas/lista1-2012-1.pdf 1a lista de exercícios (redes locais)]
 
* [http://tele.sj.ifsc.edu.br/~msobral/IER/listas/lista2-2012-1.pdf 2a lista de exercícios (redes locais)]
 
* [http://tele.sj.ifsc.edu.br/~msobral/IER/listas/lista3-2012-1.pdf 3a lista de exercícios (redes sem-fio)]
 
* [http://tele.sj.ifsc.edu.br/~msobral/IER/listas/lista4-2012-1.pdf 4a lista de exercícios (enlaces ponto-a-ponto)]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista5-2012-2.pdf 5a lista de exercícios (enlaces físicos: modems e interfaces digitais)]
 
<!--
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista3-2010-1.pdf 2a lista de exercícios]
 
* [http://tele.sj.ifsc.edu.br/~msobral/IER/listas/lista3-2011-1.pdf 3a lista de exercícios]
 
* [http://www.sj.ifsc.edu.br/~msobral/IER/listas/lista7.pdf 4a lista de exercícios]
 
* [http://www.sj.ifsc.edu.br/~msobral/IER/listas/lista7.pdf 5a lista de exercícios]
 
* [http://www.sj.ifsc.edu.br/~msobral/IER/listas/lista7.pdf 6a lista de exercícios]
 
* [http://www.sj.ifsc.edu.br/~msobral/IER/listas/lista8.pdf 7a lista de exercícios]
 
-->
 
 
 
== Avaliações ==
 
  
 +
* [[Netkit]]: possibilita criar experimentos com redes compostas por máquinas virtuais Linux
 +
* [http://tele.sj.ifsc.edu.br/~msobral/IER/ipkit/ IPKit]: um simulador de encaminhamento IP (roda direto dentro do navegador)
  
 +
= Diário de Aulas =
  
'''Legenda:'''
+
{{Collapse top |Aula 1 - 26/03 - Modelo Básico de Comunicação de Dados }}
* ''X+'': conceito pode ser promovido, dependendo de entrevista com professor.
+
== Aula 1 - 26/03 - Modelo Básico de Comunicação de Dados  ==
* ''D*:'' não fez avaliação.
+
* Apresentação da disciplina;
 +
* Conceitos importantes em comunicação de dados;
 +
* Componentes de uma infra-estrutura de telecomunicações;
 +
* Modelo Básico de comunicação de dados.
 +
{{Collapse bottom}}
  
'''OBS:''' Projeto Integrador (P.I) será usado para aumentar conceitos de quem se destacar em sua execução.
+
{{Collapse top |Aula 2 - 02/04 - Componentes de Redes e Comunicação Serial e Laboratório de comunicação básica entre DTEs}}
 +
== Aula 2 - 02/04 - Componentes de Redes e Comunicação Serial e Laboratório de comunicação básica entre DTEs ==
 +
* Arquiteturas Básicas dos Protocolos da camada de enlace:
 +
Protocolos orientados à Byte <br>
 +
Protocolos orientados à Bit
 +
* Interfaces Digitais - Final dos slides  - não será cobrado sobre RS485;
 +
* Laboratório de comunicação básica entre DTEs
 +
{{Collapse bottom}}
  
== Softwares ==
+
{{Collapse top |Aula 3 - 09/04 - Modens Analógicos e Digitais e Laboratório de Circuito Básico de Comunicação de Dados }}
 +
== Aula 3 - 09/04 - Modens Analógicos e Digitais e Laboratório de Circuito Básico de Comunicação de Dados ==
 +
* Modens Analógicos e Digitais
 +
* Enlaces de teste e protocolos
 +
* Laboratório de Circuito Básico de Comunicação de Dados
 +
{{Collapse bottom}}
 +
{{Collapse top |Aula 4 - 16/04 - Laboratório de Interligação entre LANs com uso de roteadores em modo físico - Configuração dos Roteadores e Introdução A camada de Enlace}}
  
* [[Netkit]]: possibilita criar experimentos com redes compostas por máquinas virtuais Linux
+
==Aula 4 - 16/04 - Laboratório de Interligação entre LANs com uso de roteadores em modo físico - Configuração dos Roteadores e Introdução A camada de Enlace ==
* [http://tele.sj.ifsc.edu.br/~msobral/IER/ipkit/ IPKit]: um simulador de encaminhamento IP (roda direto dentro do navegador)
 
  
== 30/10: Enlaces WAN ==
+
'''Resumo da aula:'''
 +
* Serviços da Camada de enlace
 +
* Laboratório - Continuação da Interligação entre LANs com uso de roteadores em modo físico
  
 +
'''Bibliografia relacionada:'''
 
* Parte III e capítulos 10 e 11 do livro "Comunicação de Dados e Redes de Computadores, 4a ed.", de Behrouz Forouzan
 
* Parte III e capítulos 10 e 11 do livro "Comunicação de Dados e Redes de Computadores, 4a ed.", de Behrouz Forouzan
 
* Capítulo 3 do livro "Redes de Computadores" de Andrew Tanenbaum.
 
* Capítulo 3 do livro "Redes de Computadores" de Andrew Tanenbaum.
* [http://tele.sj.ifsc.edu.br/~msobral/IER/listas/lista1-2011-2.pdf 4a lista de exercícios]
 
  
Um típico enlace WAN, do ponto de vista de uma rede de computadores de usuário, é representado por um enlace ponto-a-ponto, como pode ser visto na figura abaixo. Nele, dois roteadores se comunicam por um meio físico dedicado, usando um protocolo de enlace especializado. Como o meio é dedicado, não existem colisões, e por isso não é necessário um controle de acesso ao meio (MAC). Além disso, como somente esses dois roteadores estão envolvidos, não há necessidade de endereçamento no protocolo de enlace.
+
'''Fundamentos Teóricos'''
 
 
[[imagem:Rede-ier-wan.png]]
 
  
 
=== Enlaces lógicos ===
 
=== Enlaces lógicos ===
  
* [http://tele.sj.ifsc.edu.br/~msobral/IER/slides/aula1-2012-1.pdf Transparências]
+
* [http://tele.sj.ifsc.edu.br/~msobral/IER/slides/aula1-2012-1.pdf Slides prof. Sobral - Introdução a camada de enlace]
  
 
Equipamentos de rede se comunicam por meio de enlaces (''links''). Um enlace é composto por uma '''parte física''', composta pelo meio de transmissão e o hardware necessário para transmitir e receber um sinal que transporta a informação, e uma '''parte lógica''', responsável por empacotar os dados a serem transmitidos. O diagrama abaixo ilustra um enlace entre dois equipamentos, realçando as formas com que a informação é representada durante a transmissão e recepção. Nesse diagrama, a ''parte lógica'' está representada no bloco ''Enlace'', e a ''parte física'' está no bloco ''Física''; a informação transmitida, representada por ''Dados'', pode ser, por exemplo, um datagrama IP.
 
Equipamentos de rede se comunicam por meio de enlaces (''links''). Um enlace é composto por uma '''parte física''', composta pelo meio de transmissão e o hardware necessário para transmitir e receber um sinal que transporta a informação, e uma '''parte lógica''', responsável por empacotar os dados a serem transmitidos. O diagrama abaixo ilustra um enlace entre dois equipamentos, realçando as formas com que a informação é representada durante a transmissão e recepção. Nesse diagrama, a ''parte lógica'' está representada no bloco ''Enlace'', e a ''parte física'' está no bloco ''Física''; a informação transmitida, representada por ''Dados'', pode ser, por exemplo, um datagrama IP.
Linha 80: Linha 180:
 
[[imagem:Datalink-phy.png|600px]]
 
[[imagem:Datalink-phy.png|600px]]
  
 
+
O enlace lógico tem uma dependência total em relação à parte física. Isso quer dizer que o tipo de tecnologia de transmissão existente na parte física traz requisitos para o projeto da parte lógica.
Inicialmente vamos estudar a parte lógica do enlace. Apesar disso, deve ficar claro que existe uma dependência em relação à parte física. Isso quer dizer que o tipo de tecnologia de transmissão existente na parte física traz requisitos para o projeto da parte lógica.
 
  
 
Deste ponto em diante, a ''parte lógica'' será chamada simplesmente de '''Camada de Enlace''', e a parte física de '''Camada Física'''.
 
Deste ponto em diante, a ''parte lógica'' será chamada simplesmente de '''Camada de Enlace''', e a parte física de '''Camada Física'''.
  
 
Em nosso estudo vamos investigar '''enlaces ponto-a-ponto''', os quais necessitam de protocolos específicos. Para ficar mais claro o que deve fazer um protocolo de enlace ponto-a-ponto, vamos listar os serviços típicos existentes na camada de enlace.  
 
Em nosso estudo vamos investigar '''enlaces ponto-a-ponto''', os quais necessitam de protocolos específicos. Para ficar mais claro o que deve fazer um protocolo de enlace ponto-a-ponto, vamos listar os serviços típicos existentes na camada de enlace.  
 +
 +
===== Serviços da camada de enlace =====
  
 
[[Image:Data-link.png]]
 
[[Image:Data-link.png]]
Linha 114: Linha 215:
 
Esses protocolos foram criados para uso com comunicação serial síncrona (ver capítulo 4, seção 4.3 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan). O PPP funciona também com [http://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_serial_ass%C3%ADncrona comunicação serial assíncrona].
 
Esses protocolos foram criados para uso com comunicação serial síncrona (ver capítulo 4, seção 4.3 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan). O PPP funciona também com [http://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_serial_ass%C3%ADncrona comunicação serial assíncrona].
  
==== Atividade 1: enlaces PPP ====
+
Agora, usando os conceitos básicos sobre enlaces PPP e HDLC, realize o laboratório a seguir com os seguintes passos:
 
 
<!-- * [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab3-2011-1.pdf Roteiro da experiência]
 
* [http://www.cisco.com/warp/cpropub/45/tutorial.htm Tutorial da interface de linha de comando Cisco (CLI)]
 
* [http://www.cisco.com/en/US/tech/tk713/tk507/technologies_tech_note09186a008019cfa7.shtml#ppp01 Resolução de problemas com PPP em roteadores Cisco]-->
 
 
 
[[imagem:Ppp-exp1.png|480px]]
 
<br>''Rede do experimento''
 
 
 
 
 
Esse experimento será feito usando o Netkit. Três roteadores estarão interligados por enlaces PPP. A interface mostrada no Netkit para os roteadores é muito parecida com a CLI de roteadores Cisco reais (graças ao software [http://www.quagga.net/ Quagga], que é usado em máquinas virtuais do Netkit que agem como roteadores). No entanto, as interfaces seriais de enlaces ponto-a-ponto no Quagga são identificadas pelos nomes ''ppp0'', ''ppp1'' e assim por diante (ao contrário de ''Serial 0'' e ''Serial 1'' usados no Cisco). Abaixo segue a configuração do Netkit que reproduz o experimento:
 
 
 
{{collapse top|Configuração do experimento para o Netkit}}
 
<syntaxhighlight lang=text>
 
# Os três roteadores
 
r1[type]=router
 
r2[type]=router
 
r3[type]=router
 
 
 
# O computador que fica na subrede da esquerda
 
pc1[type]=generic
 
 
 
# O computador que fica na subrede da direita
 
pc2[type]=generic
 
 
 
# Um computador que representa a Internet
 
internet[type]=generic
 
 
 
# Os enlaces ponto-a-ponto entre os roteadores
 
r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30:debug=1
 
r1[ppp1]=linkDireito:ip=10.0.0.5/30:debug=1
 
r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30:debug=1
 
r3[ppp0]=linkDireito:ip=10.0.0.6/30:debug=1
 
 
 
# a subrede do laboratório, que representa a Internet
 
r1[eth0]=lanExterna:ip=192.168.1.230/24
 
internet[eth0]=lanExterna:ip=192.168.1.1/24
 
 
 
# A subrede do lado esquerdo
 
r2[eth0]=lanEsquerda:ip=172.18.0.30/28
 
pc1[eth0]=lanEsquerda:ip=172.18.0.17/28
 
 
 
# A subrede do lado direito
 
r3[eth0]=lanDireita:ip=172.18.10.110/28
 
pc2[eth0]=lanDireita:ip=172.18.10.97/28
 
 
 
# As rotas ...
 
pc1[default_gateway]=172.18.0.30
 
pc2[default_gateway]=172.18.10.110
 
r2[default_gateway]=10.0.0.1
 
r3[default_gateway]=10.0.0.5
 
r1[route]=172.18.0.16/28:gateway=10.0.0.2
 
r1[route]=172.18.10.96/28:gateway=10.0.0.6
 
internet[route]=172.18.0.0/16:gateway=192.168.1.230
 
</syntaxhighlight>
 
{{collapse bottom}}
 
 
 
Com base nessa rede, as seguintes atividades serão realizadas:
 
# Observe as informações sobre as interfaces PPP nos roteadores, e compare com o que é mostrado para interfaces ethernet: <syntaxhighlight lang=bash>
 
r1# show interface ppp0
 
</syntaxhighlight> ... ou ... <syntaxhighlight lang=bash>
 
r1# start-shell
 
# ifconfig ppp0
 
# ifconfig eth0
 
</syntaxhighlight>
 
# Teste a comunicação pelos enlaces PPP. Por exemplo, no roteador ''r1'' pode ser feito o seguinte: <syntaxhighlight lang=bash>
 
r1# ping 10.0.0.2
 
r1# ping 10.0.0.6
 
</syntaxhighlight>
 
# Adicione rotas nos roteadores, de forma que as redes fiquem totalmente alcançáveis:
 
#* '''r1:''' <syntaxhighlight lang=bash>
 
# configure terminal
 
(conf)# ip route 172.18.0.16/28 ppp0
 
(conf)# ip route 172.18.10.96/28 ppp1
 
(conf)# exit
 
</syntaxhighlight>
 
#* '''r2:''' <syntaxhighlight lang=bash>
 
# configure terminal
 
(conf)# ip route 0.0.0.0/0 ppp0
 
(conf)# exit
 
</syntaxhighlight>
 
#* '''r3:''' <syntaxhighlight lang=bash>
 
# configure terminal
 
(conf)# ip route 0.0.0.0/0 ppp0
 
(conf)# exit
 
</syntaxhighlight>
 
# Compare o encapsulamento de datagramas IP na rede ethernet e no enlace PPP. Para isso use o wireshark, executando-o para a interface eth0 do roteador ''r1'' e também para a interface ''ppp0''. Para haver datagramas passando pelo roteador, deixe um ping em execução entre os computadores ''pc1'' e ''internet''.
 
 
 
==== Atividade 2: enlaces PPP e HDLC com roteadores ====
 
  
 
Para esta atividade será criada uma rede composta por três roteadores Cisco, que estarão interligados como mostrado abaixo:
 
Para esta atividade será criada uma rede composta por três roteadores Cisco, que estarão interligados como mostrado abaixo:
 
  
 
[[imagem:Rede-modems.png|600px]]
 
[[imagem:Rede-modems.png|600px]]
  
 
+
#Criar os circuitos com modems operando a 2 Mbps. Os Modens da DIGITEL modelo DT2048SHDSL devem possuir a seguinte configuração: (chaves em ON)
Os circuitos com modems já estão configurados e funcionais, e estão operando a 2 Mbps.
+
* Modens do rack central: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5
 
+
* Modens do rack direito e esquerdo: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5
 
 
O experimento deve ser realizado com os seguintes passos:
 
 
# Acesse a interface de gerência (console) do seu roteador. O roteador R2 está no rack esquerdo, o roteador R1 está no rack do centro, e R2 está no rack direito. Para acessar a console, faça o seguinte:
 
# Acesse a interface de gerência (console) do seu roteador. O roteador R2 está no rack esquerdo, o roteador R1 está no rack do centro, e R2 está no rack direito. Para acessar a console, faça o seguinte:
 
## Conecte um cabo serial ''cross'' na interface serial RS-232 do seu computador. Conecte esse cabo também na interface ''console'' do roteador, que fica no painel traseiro. Como os roteadores estão distantes das bancadas, será necessário usar as tomadas azuis, que conectam as bancadas aos racks.
 
## Conecte um cabo serial ''cross'' na interface serial RS-232 do seu computador. Conecte esse cabo também na interface ''console'' do roteador, que fica no painel traseiro. Como os roteadores estão distantes das bancadas, será necessário usar as tomadas azuis, que conectam as bancadas aos racks.
Linha 222: Linha 232:
 
# Configure os roteadores da seguinte forma:
 
# Configure os roteadores da seguinte forma:
 
#* '''R1:''' <syntaxhighlight lang=text>
 
#* '''R1:''' <syntaxhighlight lang=text>
> enable
+
> enable     (password "a")
 
# configure terminal
 
# configure terminal
(conf)# interface ethernet 0
+
(conf)# interface fastethernet 0
 
(conf-intf)# ip address 192.168.20.254 255.255.255.0
 
(conf-intf)# ip address 192.168.20.254 255.255.255.0
 +
(conf-intf)# no shutdown
 
(conf-intf)# exit
 
(conf-intf)# exit
 
(conf)# interface serial 0
 
(conf)# interface serial 0
 
(conf-intf)# encapsulation ppp
 
(conf-intf)# encapsulation ppp
(conf-intf)# ip address 10.0.0.1 255.255.255.255
+
(conf-intf)# ip address 10.1.1.2 255.255.255.252
 +
(conf-intf)# no shutdown
 
(conf-intf)# exit
 
(conf-intf)# exit
 
(conf)# ip route 0.0.0.0 0.0.0.0 serial 0
 
(conf)# ip route 0.0.0.0 0.0.0.0 serial 0
 
(conf)# exit
 
(conf)# exit
 +
# wr
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
#* '''R2:''' <syntaxhighlight lang=text>
 
#* '''R2:''' <syntaxhighlight lang=text>
 
> enable
 
> enable
Linha 239: Linha 253:
 
(conf)# interface fastethernet 0
 
(conf)# interface fastethernet 0
 
(conf-intf)# ip address 192.168.10.254 255.255.255.0
 
(conf-intf)# ip address 192.168.10.254 255.255.255.0
 +
(conf-intf)# no shutdown
 
(conf-intf)# exit
 
(conf-intf)# exit
 
(conf)# interface serial 0
 
(conf)# interface serial 0
 
(conf-intf)# encapsulation ppp
 
(conf-intf)# encapsulation ppp
(conf-intf)# ip address 10.0.0.5 255.255.255.255
+
(conf-intf)# ip address 10.1.1.6 255.255.255.252
 +
(conf-intf)# no shutdown
 
(conf-intf)# exit
 
(conf-intf)# exit
 
(conf)# ip route 0.0.0.0 0.0.0.0 serial 0
 
(conf)# ip route 0.0.0.0 0.0.0.0 serial 0
 
(conf)# exit
 
(conf)# exit
 +
# wr
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
#* '''R3:''' <syntaxhighlight lang=text>
 
#* '''R3:''' <syntaxhighlight lang=text>
 
> enable
 
> enable
 
# configure terminal
 
# configure terminal
(conf)# interface fastethernet 0
+
(conf)# interface ethernet 0
 
(conf-intf)# ip address 192.168.1.231 255.255.255.0
 
(conf-intf)# ip address 192.168.1.231 255.255.255.0
 +
(conf-intf)# no shutdown
 
(conf-intf)# exit
 
(conf-intf)# exit
 
(conf)# interface serial 0
 
(conf)# interface serial 0
 
(conf-intf)# encapsulation ppp
 
(conf-intf)# encapsulation ppp
(conf-intf)# ip address 10.0.0.2 255.255.255.255
+
(conf-intf)# ip address 10.1.1.5 255.255.255.252
 +
(conf-intf)# no shutdown
 
(conf-intf)# exit
 
(conf-intf)# exit
 
(conf)# interface serial 1
 
(conf)# interface serial 1
 
(conf-intf)# encapsulation ppp
 
(conf-intf)# encapsulation ppp
(conf-intf)# ip address 10.0.0.6 255.255.255.255
+
(conf-intf)# ip address 10.1.1.1 255.255.255.252
 +
(conf-intf)# no shutdown
 
(conf-intf)# exit
 
(conf-intf)# exit
 
(conf)# ip route 0.0.0.0 0.0.0.0 192.168.1.1
 
(conf)# ip route 0.0.0.0 0.0.0.0 192.168.1.1
 
(conf)# exit
 
(conf)# exit
 +
# wr
 
</syntaxhighlight>
 
</syntaxhighlight>
# Para conferir as configurações das interfaces, use o comando ''show interface'': <syntaxhighlight lang=text>
+
 
 +
# Para conferir as configurações das interfaces, use o comando ''show interface'' (detalhado) ou ''show ip interface brief'' (resumidos configuração e status):
 +
<syntaxhighlight lang=text>
 
# show interface serial 0
 
# show interface serial 0
 
</syntaxhighlight>
 
</syntaxhighlight>
# Assim que os enlaces forem estabelecidos, o que pode ser conferido com o comando ''show interface'' aplicado às interaces seriais, termine a configuração da rede. Ela deve ser configurada de forma que um computador possa se comunicar com qualquer outro computador da outra rede, e também acessar a Internet.
 
# Teste a vazão pelos enlaces ponto-a-ponto. Em algum computador da subrede esquerda execute: <syntaxhighlight lang=bash>
 
netperf -f k -H 192.168.1.1
 
</syntaxhighlight>Faça isso também usando um computador da subrede da direita.
 
# É possível usar o protocolo HDLC ao invés do PPP, bastando nos roteadores substituir o comando ''encapsulation ppp'' por ''encapsulation hdlc''. Após fazer essa alteração, e se certificar de os enlaces foram reativados, repita a medição de vazão. Há alguma diferença ?
 
# Observe as informações fornecidas pelos roteadores sobre os enlaces ponto-a-ponto. Para isso, execute ''show interface'' nas interfaces seriais, e leia o sumário resultante.
 
  
=== Enlaces WAN: a parte física do enlace ponto-a-ponto ===
+
{{Collapse bottom}}
 +
{{Collapse top |Aula 5 - 23/04 - Laboratório de Interligação entre LANs com uso de roteadores em modo físico - Configuração final da Rede - Uso do NETKIT}}
 +
== Aula 5 - 23/04 - Laboratório de Interligação entre LANs com uso de roteadores em modo físico - Configuração final da Rede - Uso do NETKIT==
 +
===Configuração final da rede===
  
* Ver capítulos 3, 4 e 5 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan.
+
Para finalizar o laboratório da aula anterior, vamos analisar a conectividade  de todas as sub redes, incluindo o acesso à internet.  
* Introdução: ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-fisica.pdf transparências].
 
* Ver livro online: [http://ebook-download-now.com/g/online/1580530893/Broadband-Local-Loops-for-High-Speed-Internet-Access-%28Artech-House-Telecommunications-Library%29/ Broadband Local Loops for High-Speed Internet Access]
 
* [http://en.wikipedia.org/wiki/List_of_device_bandwidths Tabela comparativa de diferentes tecnologias de transmissão]
 
  
 +
*Roteiro
  
A parte física do enlace ponto-a-ponto, usualmente chamada de ''circuito'', corresponde à '''camada física''' da arquitetura de redes. Ele se compõe de equipamentos e técnicas criados para fazer a ''transmissão de dados'' por meio de sinais elétricos.
+
# Assim que os enlaces forem estabelecidos (interfaces e protocolos dos 3 roteadores em '''UP'''), o que pode ser conferido com o comando ''show interface'' aplicado às interaces seriais, ''conclua'' a configuração da rede (rotas nos pcs e roteadores). Ela deve ser configurada de forma que um computador possa se comunicar com qualquer outro computador da outra rede, e também acessar a Internet. Para isso, use os comandos nos PCs como:
 +
#* sudo ifconfg eth0 x.x.x.x netmask m.m.m.m up - para atribuir outro endereço na placa de rede;
 +
#* sudo route add default gw x.x.x.x - para atribuir um novo gateway para a placa de rede;
 +
#* sudo route add -net x.x.x.x netmask m.m.m.m eth0 - para associar uma nova rede a interface eth0;
 +
#* use a opção ''del'' no lugar de ''add'' para apagar configurações correspondentes;
 +
#* route -n  - para ver a tabela atual de roteamento;
 +
#:E monte a tabela de roteamento com o comando (conf)# ip route x.x.x.x m.m.m.m y.y.y.y onde x é o endereço de rede com mask m a ser alcançado e y é o próximo salto (endereço da interface do próximo roteador). O y também pode ser o nome da interface.
 +
# Solução para os roteadores:
 +
#:'''R1:''' <syntaxhighlight lang=text>
 +
  > enable    (password "a")
 +
  # configure terminal
 +
  (conf)# ip route 192.168.20.0 255.255.255.0 fastethernet 0
 +
  (conf)# ip route 192.168.10.0 255.255.255.0 10.1.1.1
 +
  # wr </syntaxhighlight>
 +
#:'''R2:''' <syntaxhighlight lang=text>
 +
  > enable    (password "a")
 +
  # configure terminal
 +
  (conf)# ip route 192.168.10.0 255.255.255.0 fastethernet 0
 +
  (conf)# ip route 192.168.20.0 255.255.255.0 10.1.1.5
 +
  # wr </syntaxhighlight>
 +
#:'''R3:''' <syntaxhighlight lang=text>
 +
  > enable    (password "a")
 +
  # configure terminal <
 +
  (conf)# ip route 192.168.10.0 255.255.255.0 10.1.1.6
 +
  (conf)# ip route 192.168.20.0 255.255.255.0 10.1.1.2
 +
  (conf)# ip route 192.168.1.0 255.255.255.0 ethernet 0
 +
  # wr </syntaxhighlight>
 +
# Para o PC do professor <syntaxhighlight lang=text>
 +
  $ sudo route add -net 192.168.10.0 netmask 255.255.255.0 eth0
 +
  $ sudo route add -net 192.168.20.0 netmask 255.255.255.0 eth0 </syntaxhighlight>
 +
# Para os PCs das subredes direita e esquerda <syntaxhighlight lang=text>
 +
  $ sudo ifconfg eth0 192.168.x.y netmask 255.255.255.0 up  onde x={10,20}; y={1,2,3,4}
 +
  $ sudo route add default gw 192.168.x.254 onde x={10,20} </syntaxhighlight>
 +
# Verificar e anotar todas as configurações dos componentes de redes, modens, cabos, adaptadores, manobras dos cabos, etc...
 +
# Acessar as redes mutuamente qualquer computador de um subrede deve acessar qualquer outro da outra subrede;
 +
# Acessar a internet em todos os PCs;
 +
# Teste a vazão pelos enlaces ponto-a-ponto. Em algum computador da subrede esquerda execute:<syntaxhighlight lang=bash>
 +
netperf -f k -H 192.168.1.1</syntaxhighlight>
 +
#:Realize pelo menos três medidas para cada teste e use a média desses valores como resultado final;
 +
# Faça isso também usando um computador da subrede da direita e depois entre computadores das subredes direta e esquerda.
 +
# Excute o ''netperf'' entre computadores da ''mesma subrede'', anote os valores e compare com o anterior que atravessa a rede até atingir a rede 192.168.1.1.
 +
# É possível usar o protocolo HDLC ao invés do PPP, bastando nos roteadores substituir o comando ''encapsulation ppp'' por ''encapsulation hdlc''.
  
[[imagem:Enlace-fisico.png]]
+
=== O uso do NETKIT ===
  
Dentro da arquitetura de redes estudada em Redes na 2a fase, a camada física se situa no nível mais baixo. Ela deve portanto transmitir de fato a informação através de um meio de transmissão, a qual deve ser representada por algum sinal. Essa representação implica algum tipo de modulação ou codificação.
+
A partir de hoje iremos usar o [[Netkit]] para simular vários experimentos sem a necessidade de recorrer a complicadas instalações físicas que envolvem muitos componentes de rede e consequentemente muitos pontos de prováveis problemas de funcionamento. Vá até o link [[Netkit]] e faça uma leitura até o item 4.1.5 para entender como se utiliza esta poderosa ferramenta. Após isso faça os experimentos seguintes.  
  
[[imagem:Osi-tcpip.png]]
+
====[http://tele.sj.ifsc.edu.br/~casagrande/RED/labs/netkit/lan.tar.gz LAN simples]====
  
 +
Uma LAN com quatro computadores (pc1, pc2, pc3, pc4). Os computadores virtuais têm IPs 192.168.0.X, sendo X o número computador (ex: pc1 tem IP 192.168.0.1). Use ping para fazer testes de comunicação. Veja o arquivo ''Lab.conf'' (configuração da rede). A rede criada nesse experimento está mostrada abaixo:
  
===== Serviços da camada física =====
+
[[imagem:Exemplo-Lan1-netkit.png]]
  
[[Imagem:Servicos-Camada-Fisica.png|600px]]
+
Ao executar esse experimento quatro abas dos computadores virtuais surgirão (um para cada pc virtual). Realize um ping entre os pcs para constatar a operação da LAN.
<br>''(Adaptado do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Berhouz Forouzan)''
 
  
===== Modems =====
+
====[http://tele.sj.ifsc.edu.br/~casagrande/RED/labs/netkit/bridge.tar.gz  LAN com switch]====
  
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula5-modems.pdf Uma introdução a modems e interfaces digitais]
+
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. Analise o arquivo ''Lab.conf''. A rede do experimento está mostrada abaixo:
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/SHDSL_wp.pdf Tutorial sobre SHDSL]
 
  
Modems são equipamentos que realizam a modulação ou codificação de um sinal digital, de forma a pode ser transmitido apropriadamente por um meio de transmissão. Essa transformação é nececssária para que a informação possa viajar por uma distância maior no meio, e possa ser recuperada pelo equipamento receptor (o modem do outro lado da linha).  
+
[[imagem:Exemplo-Bridge-netkit.png]]
  
Em nossa aula serão usados modems síncronos [http://en.wikipedia.org/wiki/Single-pair_high-speed_digital_subscriber_line SHDSL], que são bastante comuns de serem encontrados em instalações reais. O modelo dos modems do laboratório operam com um meio de transmissão composto por um ou dois pares metálicos padrão telefonia. Com eles podem-se estabelecer enlaces físicos com taxas de 64 kbps a 2.304 Mbps (com incrementos de 64 kbps), usando uma codificação do tipo [http://en.wikipedia.org/wiki/TC-PAM TC-PAM]. Se forem usados quatro pares metálicos, a taxa máxima chega a 4.608 Mbps. Modems SHDSL versão BIS podem obter taxas ainda maiores (5.6 Mbps ou 11.2 Mbps), como por exemplo alguns [http://www.datacom.ind.br/new/en/taxonomy/term/51 modems Datacom]. Alguns modelos chegam a 22.8 Mbps, como [http://www.shdslmodem.com/radproducts.htm estes da RAD].
+
====[http://tele.sj.ifsc.edu.br/~casagrande/RED/labs/netkit/lan2.tar.gz LAN com 2 switches]====
  
Para instalar modems síncronos, deve-se observar o seguinte:
+
Uma LAN com 6 computadores (pc1 a pc6) interligados por dois switches (switch1 e switch2). Ambos switches são implementados por computadores com Linux com 4 portas ethernet. Observe os valores de tempo de teste dos pings entre pcs de um mesmo switch e entre os dois switches. Compare com a LAN simples (com hub). A rede do experimento está mostrada abaixo:
* '''Qual modem é a fonte de sincronismo:''' um dos modems deve gerar o sincronismo do circuito. Assim, um dos modems deve usar seu relógio interno, e o outro deve usar relógio regenerado.
 
* '''Qual modem comanda (inicia) o circuito:''' o modem que inicia o circuito toma a inciativa de estabelecer o enlace físico com o modem remoto. Esse modem dever ser configurado como NTU (Network Termination Unit), e o modem remoto deve ser LTU (Local Termination Unit).
 
* '''A taxa de bits a ser usada:''' ambos modems devem ser configurados com a mesma taxa de bits.
 
* '''A quantidade de pares metálicos:''' ambos modems devem usar a mesma quantidade de pares metálicos.
 
* '''O tipo de interface digital:''' a interface  digital comunica modem e DTE (ex: roteador), portanto o mdoem deve ser configurado para usar a mesma interface digitak que o DTE. Por exemplo, uma escolha bastante comum é a interface [http://encyclopedia2.thefreedictionary.com/V.35 V.35]. Outro tipo de interface de interface digital é [http://ckp.made-it.com/g703.html G.703], usada em linhas do tipo [http://en.wikipedia.org/wiki/E-carrier E1].
 
  
Existem muitas interfaces digitais normatizadas e proprietárias, que foram criadas para serem usadas com diferentes meios de transmissão e equipamentos. A turma de IER de 2011-1 fez uma pesquisa sobre interfaces digitais usadas em equipamentos de comunicação, incluindo suas características. O resultado dessa investigação pode ser vista em:
+
[[imagem:Exemplo-lan2.png]]
  
[[Interfaces_Digitais_IER|Catálogo de interfaces digitais]]
+
====[http://tele.sj.ifsc.edu.br/~casagrande/RED/labs/netkit/lan-ext.tar.gz  Uplink para a rede real]====
  
==== Interfaces digitais ====
+
O Netkit possibilita que se criem links para a rede real, e com isto as máquinas virtuais podem acessar a rede externa e mesmo a Internet. O link para a rede real funciona como um enlace ponto-a-ponto ethernet entre uma máquina virtual e a máquina real (o sistema hospedeiro), como pode ser visto neste exemplo:
  
Material de referência:
+
[[imagem:Netkit-uplink.png]]
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula6-modems-analogicos.pdf transparências].
 
* Capítulos 5 e 6 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula5-modems.pdf transparências sobre interfaces digitais].
 
* [http://www.jbmelectronics.com/product/signal.htm um tutorial sobre RS-232 e V.35]
 
  
 +
A criação do link para rede externa deve ser feita com o link especial ''uplink''. Ele deve ter um endereço IP que será usado somente para criar o link entre a máquina virtual e o sistema hospedeiro. O IP no sistema hospedeiro é sempre o último endereço possível dentro da subrede especificada (no exemplo, seria o IP 10.0.0.2).
  
Em algumas tecnologias de interfaces digitais se usa a terminologia '''DTE/DCE''':
+
<syntaxhighlight lang=text>
* '''DTE:''' componente que quer se comunicar com outro componente remoto, tal como um PC se comunicando com outro PC, ou um roteador comunicando com outro roteador.  
+
pc2[eth1]=uplink:ip=10.0.0.1/30
* '''DCE:''' componente que realmente faz a comunicação, ou que efetua as funções de gerador e receptor discutidas em padrões de comunicação (ver RS-232, RS-422 e RS-485, por exemplo). Um modem é um típico exemplo de DCE.
+
</syntaxhighlight>
 +
 
 +
Se outras máquinas virtuais precisarem acessar a rede externa, devem ter rotas configuradas para usarem o gateway onde foi feito o ''uplink''. Além disso, será necessário ativar o NAT nesse gateway. O NAT pode ser ativado em máquinas virtuais do tipo ''gateway''. Em sua configuração deve-se informar qual a interface de saída onde será feito o NAT:
 +
 
 +
<syntaxhighlight lang=text>
 +
pc2[type]=gateway
 +
 
 +
pc2[nat]=eth1
 +
</syntaxhighlight>
 +
 
 +
Assim, todos datagramas que sairem pela interface ''eth1'' do gateway ''pc2'' terão seus endereços IP de origem substituídos pelo endereço IP dessa interface.
 +
 
 +
Por fim, a criaçao do ''uplink'' implica executar alguns comandos como ''root'' no sistema hospedeiro. Assim, ao ativar a rede o Netkit irá usar o ''sudo'' para executar esses comandos. Por isso é possível que a sua senha seja solicitada durante a inicialização da rede virtual.
  
 +
===== Uplink em modo ''bridge'' =====
  
[[imagem:Dte-dce.png]]
+
Às vezes uma interface de uma máquina virtual precisa ser exposta na rede real, como se ela pertencesse ao sistema hospedeiro. Neste caso, deve-se criar uma ''bridge'' entre a interface da máquina virtual e uma interface real do sistema hospedeiro (de forma semelhante ao que faz o Virtualbox e outros tipos de máquinas virtuais). Uma ''bridge'' é um mecanismo existente no Linux para interligar interfaces ethernet em nível de enlace, como se elas formassem um ''switch''. O procedimento para criar uma ''bridge'' integrada a uma interface do tipo ''uplink'' do Netkit é um tanto trabalhoso, e por isso esse processo foi automatizado.
  
 +
A criação de um ''uplink'' em modo bridge deve ser feita usando o  parâmetro ''bridge'' ao se declarar uma interface de rede, como mostrado abaixo:
  
[[imagem:Tabela-ids.png|600px]]
+
<syntaxhighlight lang=text>
<br>''Tabela comparativa de padrões elétricos de algumas interfaces digitais de uso comum <br>(obtida dos slides da disciplina de Comunicação de Dados da UNIP)''
+
pc[eth0]=uplink:bridge=eth0:ip=192.168.1.100/24
 +
</syntaxhighlight>
  
 +
Neste exemplo, será criada uma ''bridge'' entre a interface ''eth0'' da máquina virtual ''pc'' e a interface ''eth0'' do sistema hospedeiro. Como com isso a interface da máquina virtual estará exposta na rede real, seu endereço IP pode pertencer à subrede da rede real. Se esse endereço IP for de alguma outra subrede, a máquina virtual não conseguirá se comunicar com as máquinas reais, tampouco acessar a Internet. Mas isso pode ser desejável se a intenção for interligar redes virtuais que estejam sendo executadas em diferentes computadores.
  
[[imagem:Tabela-ids-funcionais.png|600px]]
+
Final das atividades da aula de hoje
<br>''Tabela comparativa de padrões funcionais de algumas interfaces digitais de uso comum <br>(obtida dos slides da disciplina de Comunicação de Dados da UNIP)''
+
----
  
==== Atividade ====
+
'''Atividade para casa:''' <math>\blacklozenge</math> '''prazo:''' 30/04/14 às 18:30Hs. '''Execução''': em dupla. '''Como:''' Manuscrita, impressa ou via email<br>
 +
# Implemente a rede "Laboratório de Interligação entre LANs com uso de roteadores em modo físico" iniciada na aula 4 e finalizada hoje usando a ferramenta Netkit. Voce "só" precisa enviar o arquivo ''lab.conf'' para o professor;
 +
# Redesenhe a rede destacando todos os componentes de rede ativos e passivos utilizados (cabos, adaptadores, switches, etc) conforme voce anotou durante o roteiro nas aulas 4 e 5.
  
Uma rede com enlaces WAN feitos com modems digitais SHDSL.
+
{{Collapse bottom}}
* [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/lab4-2011-2.pdf Roteiro da experiência]
+
{{Collapse top |Aula 6 - 30/04 - Comutação de Circuitos Virtuais}}
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/manuais/Guia_DT2048_SHDSL_T_E_S_VG_210.5088.00-1.pdf Manual do modem Digitel DT2048 SHDSL]
 
  
[[imagem:Rede-modems.png|600px]]
+
==Aula 6 - 30/04 - Comutação de Circuitos Virtuais ==
 +
Conteúdos Relacionados com:
 +
* Capítulo 6 e 18 do livro "''Comunicação de Dados e Redes de Computadores''", de Berhouz Forouzan
 +
* Capítulo 2 do livro "''Redes de Computadores''", de Andrew Tanenbaum
 +
 
 +
* [http://www.sj.ifsc.edu.br/~casagrande/IER/lista1.pdf Lista 1  <math>\blacklozenge</math>] '''prazo:''' 07/05/14 às 18:30Hs. '''Execução''': em dupla. '''Como:''' Manuscrita, impressa ou via email<br>
 +
 
 +
* Slides sobre multiplexadores [http://www.sj.ifsc.edu.br/~casagrande/RED/slides/fundamentos2.pdf Aulas 3 e 4] (a partir do item "Redes de Telecomunicações")
 +
 
 +
==== Distinção entre WAN, MAN e LAN ====
 +
 
 +
* "Backbones" da Internet Brasileira:
 +
 +
 
 +
''Algumas redes WAN:''
 +
* Brasil em [http://www.webmaster.pt/brasileiro-orkut-mudancas-10153.html 1996]
 +
* RNP [http://www.rnp.br/_media/backbone/bkb_mapa1991.png 1991],[http://www.rnp.br/_media/backbone/bkb_mapa1994.png 1992],[http://www.rnp.br/_media/backbone/bkb_mapa1996.png 1996], [http://i116.photobucket.com/albums/o34/almeidaris/1998.gif 1998],[http://www.rnp.br/_media/backbone/bkb_mapa2000.png 2000],[http://i116.photobucket.com/albums/o34/almeidaris/2001.gif 2001],[http://i116.photobucket.com/albums/o34/almeidaris/2005.jpg 2005],[http://i116.photobucket.com/albums/o34/almeidaris/2006.jpg 2006], [http://i116.photobucket.com/albums/o34/almeidaris/2007.jpg 2007].
 +
* Embratel [http://www.embratel.com.br/Embratel02/images/secoes/11/07/951/MG_40_10_20_mapa1.jpg Mapa 1],[http://www.embratel.com.br/Embratel02/images/secoes/11/07/951/MG_40_10_20_mapa2.jpg Mapa 2]
 +
* Eletronet [http://www.eletronet.com/images/mapa_rede_eletronet.jpg Mapa Eletronet]
 +
 
 +
''Uma rede MAN MetroEthernet em Florianópolis.''
 +
 
 +
[[imagem:Man-metro.png]]
 +
 
 +
 
 +
=== Ferramenta de apoio para configuração de redes: O IPKIT ===
 +
 
 +
Como vimos na aula anterior, o Netkit é uma ótima opção para complementar o estudo. Ele funciona como um laboratório de redes, onde se pode criar redes como aquelas que exemplificamos em sala de aula ou mesmo inventar novas redes.  Seu uso se destina a fixar conceitos, para que o eventual uso e configuração dos equipamentos reais seja facilitado.
 +
 
 +
Além do Netkit, o seguinte simulador de roteamento IP, que roda dentro do próprio navegador, pode ajudar a exercitar a divisão de sub redes e a criação de rotas estáticas.
 +
* [http://tele.sj.ifsc.edu.br/~msobral/IER/ipkit/ Ipkit: Simulador de encaminhamento IP]
 +
 
 +
==== Exercícios ====
 +
 
 +
1. Usando o [[Netkit]] crie as seguintes redes. Não esqueça de definir as rotas estáticas.
 +
 
 +
[[imagem:Rede1-1.png|400px]]
 +
{{collapse top|Arquivo do experimento}}
 +
<syntaxhighlight lang=text>
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
pc3[type]=generic
 +
r1[type]=gateway
 +
r2[type]=gateway
 +
 
 +
pc1[eth0]=link0:ip=192.168.0.1/24
 +
pc2[eth0]=link1:ip=192.168.1.2/24
 +
pc3[eth0]=link2:ip=192.168.2.3/24
 +
 
 +
r1[eth0]=link0:ip=192.168.0.254/24
 +
r1[eth1]=link1:ip=192.168.1.254/24
 +
 
 +
r2[eth0]=link0:ip=192.168.0.253/24
 +
r2[eth1]=link2:ip=192.168.2.254/24
 +
 
 +
pc1[default_gateway]=192.168.0.254
 +
pc2[default_gateway]=192.168.1.254
 +
pc3[default_gateway]=192.168.2.254
 +
 
 +
r1[route]=192.168.2.0/24:gateway=192.168.0.253
 +
r2[route]=192.168.1.0/24:gateway=192.168.0.254
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 
 +
[[imagem:rco2-Rede-intro2.png|400px]]
 +
{{collapse top|Arquivo do experimento}}
 +
<syntaxhighlight lang=text>
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
pc3[type]=generic
 +
pc4[type]=generic
 +
r1[type]=gateway
 +
r2[type]=gateway
 +
r3[type]=gateway
 +
r4[type]=gateway
  
== 06/11: Enlaces WAN: ADSL ==
+
pc1[eth0]=lan1:ip=192.168.1.1/24
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/adsl.pdf Uma visão geral sobre aDSL(com alguns detalhes)]
+
pc2[eth0]=lan2:ip=192.168.2.1/24
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/dslam.pdf Uma descrição sobre DSLAM]
+
pc3[eth0]=lan3:ip=192.168.3.1/24
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/dsl-technologies.pdf Outro bom texto sobre ADSL]
+
pc4[eth0]=lan4:ip=192.168.4.1/24
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/gdslarch.pdf Tipos de enlace que se podem criar com ADSL]
 
* [http://www.kitz.co.uk/adsl/adsl_technology.htm Um guia rápido e bastante explicativo sobre ADSL (principalmente a modulação)]
 
  
=== ADSL ===
+
r1[eth0]=lan1:ip=192.168.1.254/24
 +
r1[eth1]=lan2:ip=192.168.2.254/24
  
<!-- [[imagem:Dsl-network.gif]] -->
+
r2[eth0]=lan2:ip=192.168.2.254/24
 +
r2[eth1]=lan3:ip=192.168.3.254/24
  
ADSL (Asymetric Digital Subscriber Line) é uma tecnologia para provimento de enlace de dados para assinantes de linhas telefônicas residenciais. Ao contrário da modems analógicos (ex: [http://en.wikipedia.org/wiki/V.92 V.92]), ADSL não está limitado à largura de banda de canal de voz (~ 4kHz). Com isso, podem-se obter taxas de dados muito superiores, dependendo da versão de ADSL em uso. A tabela abaixo ilustra os vários padrões ADSL existentes e suas características.
+
r3[eth0]=lan1:ip=192.168.1.254/24
 +
r3[eth1]=lan4:ip=192.168.4.254/24
  
 +
r4[eth0]=lan3:ip=192.168.3.254/24
 +
r4[eth1]=lan4:ip=192.168.4.254/24
 +
</syntaxhighlight>
 +
{{collapse bottom}}
  
[[imagem:Adsl-taxas.png]]
+
<!--<br>[http://tele.sj.ifsc.edu.br/~msobral/RCO2/Lab2.conf Arquivo do experimento (Lab2.conf)]-->
<br>''Tabela de versões de ADSL e suas características.<br>Obtido em http://en.wikipedia.org/wiki/Asymmetric_digital_subscriber_line#ADSL_standards''
 
  
  
ADSL consegue obter taxas de dados muito superiores às de modems analógicos (que chegavam no máximo a 56 kbps) porque na verdade não usa um canal de voz. A ideia é usar a fiação telefônica para estabelecer um enlace de dados entre o assinante residencial e a operadora, mas não a rede telefônica em si. Por isso que com ADSL pode-se ter o enlace de dados e falar ao telefone ao mesmo tempo. Para isso, na central onde chega a linha do assinante é feita uma separação entre o sinal de dados e o de voz: o de dados vai para uma rede de dados, e o de voz segue pela infraestrutura de telefonia. Em consequência, é necessário haver uma rede de dados separada da rede telefônica. A figura a seguir ilustra um enlace ADSL para um assinante residencial, evidenciando os componentes da infraestrutura da rede dados.
+
[[imagem:rco2-Rede-intro3.png|350px]]
 +
{{collapse top|Arquivo do experimento}}
 +
<syntaxhighlight lang=text>
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
pc3[type]=generic
 +
pc4[type]=generic
 +
r1[type]=gateway
 +
r2[type]=gateway
  
 +
pc1[eth0]=lan1:ip=10.0.1.1/26
 +
pc2[eth0]=lan2:ip=192.168.1.1/24
 +
pc3[eth0]=lan3:ip=192.168.2.129/26
 +
pc4[eth0]=lan4:ip=192.168.2.193/26
  
[[imagem:Dsl-architecture.png]]
+
r1[eth0]=lan1:ip=10.0.1.62/26
 +
r1[eth1]=lan2:ip=192.168.1.254/24
  
 +
r2[eth0]=lan2:ip=192.168.1.253/24
 +
r2[eth1]=lan3:ip=192.168.2.190/26
 +
r2[eth2]=lan4:ip=192.168.2.254/26
 +
</syntaxhighlight>
 +
{{collapse bottom}}
  
A separação entre os canais de voz e de dados, feita por um ''filtro passa-baixa'', está destacada na figura abaixo:
+
2. Teste a comunicação entre os computadores e roteadores usando o comando ping. Use também o tcpdump ou wireshark para monitorar as interfaces de rede.
  
[[imagem:Adsl-model.png]]
 
  
Na infraestrutura ADSL, cabem destacar alguns elementos:
+
{{Collapse bottom}}
* '''modem ADSL:''' equipamento responsável pela ponta do enlace do lado do assinante, fazendo os encapsulamentos das PDUs dos protocolos envolvidos nesse enlace, e a modulação do sinal digital resultante.
+
{{Collapse top |Aula 7 - 07/05 - Redes Locais e Arquitetura IEEE802}}
* '''DSLAM (DSL Access Multiplexer):''' multiplexador de acesso ADSL, que recebe as linhas dos assinantes do lado da operadora. Esse componente faz a intermediação entre os assinantes e a rede de dados da operadora. Dentre suas atribuições, destacam-se a modulação do sinal das linhas dos assinantes, a limitação das taxas de ''downstream'' e ''upstream'' de acordo com o contratado pelos assinantes, e as conversões de protocolos de enlace (quando necessárias) para a rede da operadora. No entanto.
 
* '''splitter:''' filtro que separa os sinais de voz e de dados. São usados tanto do lado do assinante quanto no DSLAM.
 
* '''AC (concentrador de acesso):''' equipamento que concentra as pontas dos enlaces de dados dos assinantes no lado da rede da operadora.
 
  
A parte da infraestrutura ADSL dentro da rede de dados da operadora inclui equipamentos DSLAM (muitos deles), um ou mais AC e as redes de comunicação para interligá-los. Note-se que quem dá acesso de fato à Internet é o AC. A figura abaixo ilustra esses componentes.
+
==Aula 7 - 07/05 - Redes Locais e Arquitetura IEEE 802 ==
  
[[imagem:Dslam-infra.png]]
+
* Bibliografia Associada:
 +
** Capítulos 12, 13 e 15 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan.
 +
** Capítulo 5 do livro "Redes de Computadores e a Internet", de James Kurose.
 +
** Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum.
  
O enlace de dados entre o equipamento do assinante e a rede da operadora pode ser feita de diferentes formas. Esse enlace é visto pelo assinante como seu enlace para a Internet - i.e. ele obtém seu endereço IP fornecido pela operadora. Os tipos de enlace de dados ADSL mais usados são:
+
=== Redes Locais e o Acesso ao Meio ===
* '''PPPoE (PPP over Ethernet):''' cria um enlace ponto-a-ponto com protocolo PPP, cujos quadros são encapsulados em quadros Ethernet.
 
* '''PPPoA (PPP over ATM):''' cria um enlace ponto-a-ponto com protocolo PPP, cujos quadros são encapsulados em mensagens AAL5 da arquitetura ATM.
 
* '''EoA (Ethernet over ATM):''' cria um enlace Ethernet, cujos quadros são encapsulados em mensagens AAL5 da arquitetura ATM.
 
  
O funcionamento de enlaces PPPoE será descrito em uma [[RCO2-2012-2#PPPoE_.28PPP_over_Ethernet.29|seção mais à frente]], porque eles são os mais usados para assinantes residenciais. Uma descrição mais detalhada para os demais tipos de enlace pode ser lida [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/gdslarch.pdf aqui].
+
* Slides (autoria do professor Marcelo Sobral): [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula8.pdf LANs e acesso ao meio]
  
==== Espectro e modulação no ADSL ====
+
Veja abaixo o desenho usado por Bob Metcalfe, um dos criadores da Ethernet, para apresentação em uma conferência em 1976.''
  
* Obs: as figuras abaixo foram copiadas [http://www.kitz.co.uk/adsl/adsl_technology.htm deste guia sobre modulação ADSL].
+
[[Imagem:Ethernet.png|600px]]
  
 +
Até hoje esses conceitos se mantiveram. Atualmente temos os seguintes elementos em uma rede Ethernet:
 +
* '''Estações:''' equipamentos que se comunicam pela rede. Ex: computadores e roteadores.
 +
* '''Interface de rede (NIC):''' dispositivo embutido em cada estação com a finalidade de prover o acesso à rede. Implementa as camadas PHY e MAC.
 +
* '''Meio de transmissão:''' representado pelos cabos por onde os quadros ethernet são transmitidos. Esses cabos são conectados às interfaces de rede das estações.
 +
* '''Switch:''' equipamento de interconexão usado para interligar as estações. Cada estação é conectada a um switch por meio de um cabo. Um switch usualmente possui múltiplas interfaces de rede (12, 24 ou mais). Uma rede com switches apresenta uma topologia física em estrela.
  
No ADSL, as taxas de dados ''downstream'' (operadora --> assinante) são significativamente maiores que as taxas ''upstream'' (sentido contrário). Como assinantes residenciais são majoritariamente consumidores de dados, a tecnologia foi projetada para fornecer uma vazão maior para ''downstream''. Isso se encaixa em um modelo de rede em que provedores de conteúdo contratam das operadoras enlaces de grande capacidade (e caros !), e assinantes residenciais consomem esses dados pagando enlaces de baixo custo. A assimetria nas taxas de transmissão é obtida usando uma modulação denominada DMT (''Discrete Multi Tone''), que funciona de forma parecida com OFDM (i.e. uma forma de ''multiplexação por divisão de frequência'').
 
  
[[imagem:Adsl_frequencies.gif]]
+
[[imagem:Lan2-2011-1.png]]
 +
<br>''Uma LAN com switches''
  
A figura acima ilustra o espectro de frequência ADSL. Para ADSL versão 1, esse espectro é dividido em três partes:
+
... mas no início redes Ethernet não eram assim ! Leia o material de referência para ver como eram essas redes num passado não muito distante.
* ''0 a 4 kHz:'' canal de voz
 
* ''25 a 138 Khz:'' canal ''upstream'', composto por até 31 subportadoras de 4 kHz (subcanais, ou ''tons'') moduladas com QAM.
 
* ''142 a 1104 Khz:'' canal ''downstream'', composto por até 255 subportadoras de 4 kHz moduladas com QAM.
 
  
Diferentes versões de ADSL apresentam variações em seus espectros. A tabela abaixo ilustra as frequências e quantidades de subportadoras dos diferentes padrões ADSL (BIN é sinônimo de subcanal ou tom):
 
  
[[imagem:Adsl-standards-frequencies.png]]
+
[[imagem:Arq-ieee.png|400px]]
  
 +
==== Protocolo de acesso ao meio (MAC) ====
  
Cada suportadora tem uma taxa de modulação de 4000 símbolos por segundo e pode transportar de 2 a 15 bits por intervalo de modulação, dependendo da qualidade de canal (medida pelo SNR). Se o canal estiver com SNR muito baixo, ele não é utilizado. Assim, a modulação ADSL é razoavelmente complexa, pois usa centenas de subportadoras QAM, cada uma podendo ter diferentes taxas de bit. A figura abaixo mostra um exemplo de quantidades de bits alocados para diferentes subcanais ADSL:
+
Parte da camada de enlace na arquitetura IEEE 802, tem papel fundamental na comunicação entre estações. O MAC é responsável por:
 +
* '''Definir um formato de quadro''' onde deve ser encapsulada uma PDU de um protocolo de camada superior.
  
[[imagem:DMT_bit_allocation.gif]]
 
  
 +
[[imagem:Quadro-ethernet.png|600px]]
 +
<br>''Quadro ethernet''
  
Existem muitos outros detalhes sobre a modulação ADSL, que pode ser lidas nos links indicados na aula de hoje.
 
  
=== PPPoE (PPP over Ethernet) ===
+
* '''Endereçar as estações''', já que o meio de transmissão é multiponto (ver campos ''Endereço Destino (destination address)'' e ''Endereço de origem (source address)'' no quadro Ethenet).
  
* [http://updates.checkpoint.com/fileserver/SOURCE/direct/ID/9326/FILE/Introduction_to_PPPoE.pdf Introdução]
+
* '''Acessar o meio para efetuar a transmissão de quadros''', resolvendo conflitos de acesso quando necessário. Um conflito de acesso (chamado de ''colisão'') pode ocorrer em alguns casos quando mais de uma estação tenta transmitir ao mesmo tempo.
  
PPPoE define um método para encapsular quadros PPP dentro de quadros Ethernet, e foi definido na [http://www.faqs.org/rfcs/rfc2516.html RFC 2516]. Ele foi criado para facilitar a integração de usuários discados e banda-larga em provedores de acesso (ISP - ''Internet Service Providers''). Além disso, torna mais fácil o controle de acesso, de uso da rede, e contabilização para usuários que a acessam via rede Ethernet. Assim, é possível implantar uma rede em que os usuários, para conseguirem acesso, precisam se autenticar como em um serviço discado. Uma vez obtido o acesso, pode-se também impor limitações de uso de banda de acordo com o usuário. Exemplos de infraestruturas que podem se beneficiar com essa técnica são redes de condomínios e de prédios comerciais. Finalmente, PPPoE é usado como protocolo de enlace em acessos aDSL, ilustrado na figura abaixo.
 
  
[[imagem:Enlace-pppoe.png]]
+
[[imagem:Csmacd-fluxograma.jpg]]
 +
<br>''Fluxograma para o acesso ao meio com CSMA/CD.''
  
  
Quando usado em uma infraestrutura ADSL, uma arquitetura de protocolos de enlace é implementada para fazer os encapsulamentos de PDUs a serem transmitidas. A figura abaixo mostra os protocolos envolvidos nesse uso do PPPoE, com respectivos encapsulamentos.
+
O acesso ao meio com CSMA/CD é probabilístico: uma estação verifica se o meio está está livre antes de iniciar uma transmissão, mas isso não impede que ocorra uma colisão (apenas reduz sua chance). Se acontecer uma colisão, cada estação envolvida usa esperas de duração aleatória para desempate, chamadas de ''backoff''. A ideia é que as estações sorteiem valores de espera diferentes, e assim a que tiver escolhido um valor menor consiga transmitir seu quadro. Veja o fluxograma acima para entender como isso é feito. As colisões e esperas (''backoffs'') impedem que esse protocolo de acesso ao meio aproveite totalmente a capacidade do meio de transmissão.
  
[[imagem:Pppoe_architecture.gif]]
+
* [http://www.datacottage.com/nch/eoperation.htm Veja animacões que mostram o tratamento de colisões]
  
No PPPoE suas PDUs são encapsuladas em quadros Ethernet, usando o ''ethertype'' 8863H (estágio de descoberta) ou 8864H (estágio de sessão). Devido ao cabeçalho PPPoE (6 bytes) combinado ao identificador de protocolo do quadro PPP (2 bytes), a MTU em enlaces PPPoE não pode ser maior que 1492 bytes. O quadro PPP é simplificado, não possuindo as flags delimitadoras e os campos ''Address'', ''Control'' e ''FCS''. A PDU PPPoE é mostrada a seguir:
+
No entanto, '''nas gerações atuais do padrão IEEE 802.3 (Gigabit Ethernet e posteriores) o CSMA/CD não é mais utilizado'''. Nessas atualizações do padrão, o  modo de comunicação é full-duplex (nas versões anteriores, que operavam a 10 e 100 Mbps, a possibilidade de ser half ou full-duplex). Se as comunicações são full-duplex, então '''conceitualmente não existem colisões'''. Isso se deve ao fato de que nessas novas versões cada estação possui uma via exclusiva para transmitir e outra para receber, portanto não existe mais um meio compartilhado.
  
 +
==== Utilização do meio de transmissão em uma rede local com MAC do tipo CSMA/CD ====
  
[[imagem:Pppoe-pdu.png|800px]]
+
Nesta seção mostra-se como estimar o desempenho do CSMA/CD por meio de experimentos para medir a utilização máxima do meio. Esses experimentos podem ser feitos usando uma rede real, com computadores interligados por ''hubs'', ou com um simulador. Em ambos os casos deve-se fazer com que vários computadores gerem tráfego intenso na rede, e calcular ao final a utilização do meio da seguinte forma:
  
 +
<math>
 +
U = \frac{total~bytes~recebidos}{taxa~bits \cdot duracao~do~experimento}
 +
</math>
  
 +
O ''total de quadros recebidos'' pode ser obtido em qualquer um dos computadores.
  
Em um enlace PPPoE um dos nodos é o ''host'' (cliente), e o outro o concentrador de acesso (AC, que tem papel de servidor). O estabelecimento do enlace é iniciado pelo ''host'', que procura um AC e em seguida solicita o início do enlace. Esse procedimento é composto por por dois estágios:
+
{{collapse top|Experiência com uma rede real}}
* '''Descoberta (''Discovery''):''' o cliente descobre um concentrador de acesso (AC) para se conectar. Ocorre uma troca de 4 PDUs de controle:
 
** ''PADI (PPPoE Active Discovery Indication):'' enviado em broadcast pelo cliente para descobrir os AC.
 
** ''PADO (PPPoE Active Discovery Offer):'' resposta enviada por um ou mais AC, contendo seus identificadores e nomes de serviços disponíveis (no  âmbito do PPPoE).
 
** ''PADR (PPPoE Active Discovery Request):'' enviado pelo cliente para o AC escolhido, requisitando o início de uma  sessão.
 
** ''PADS (PPPoE Active  Discovery Session-Confirmation):'' resposta do AC escolhido.<br><br>[[imagem:Pppoe-discovery.png|300px]]<br><br>
 
* '''Sessão (''Session''):''' nessa etapa são trocados quadros PPP como no estabelecimento de um enlace PPP usual. A sessão pode ser encerrada com a terminação PPP (i.e., via protocolo LCP), ou com a PDU PPPoE PADT (''PPPoE Active Discovery Terminate'').
 
  
=== Atividade ===
+
Para fazer com uma rede real:
  
* [[IER-lab-pppoe|Experimento sobre ADSL e PPPoE]]
+
* [[RCO2-lab2|Roteiro da experiência]]
  
<!--
+
'''Resultados:'''
==== Dicas vistas no laboratório ====
+
<syntaxhighlight lang=text>
 +
64 53046660
 +
128 61992856
 +
256 67413192
 +
512 70684436
 +
756 71989464
 +
1024 77967480
 +
1500 73797088
 +
</syntaxhighlight>
  
# Sempre que se usar um computador como gateway deve-se ativar essa função, com um desses comandos (no caso do Linux):
+
Com esses dados deve-se plotar um gráfico da quantidade de bytes recebidos X tamanho dos quadros. Na tabela acima, os tamanhos de quadros estão na 1a coluna, e a quantidade de bytes recebidos está na 2a coluna.
#* echo 1 > /proc/sys/net/ipv4/ip_forward
+
 
#* sysctl -w net.ipv4.ip_forward=1
+
[[imagem:Csma-cd.png|400px]]
# Se for necessário usar NAT, uma forma rápida de fazê-lo é (mas existem outras ...):
+
 
#* iptables -t nat -A POSTROUTING -o nome_interface_saída  -j MASQUERADE
+
<br>''Desempenho do MAC CSMA/CD (Carrier Sense Multiple Access/Collision Detection): o gráfico acima mostra o resultado de um experimento feito em laboratório com 6 computadores transmitindo quadros intensamente e simultaneamente para um único computador. A cada transmissão simultânea variou-se o tamanho dos quadros transmitidos (mostrado no eixo X), e anotou-se quantos bytes foram recebidos no computador receptor (eixo Y). Os computadores foram interligados por um hub.''
# Sempre observe as rotas existentes em suas redes ! Se necessário, rastreie os datagramas quando desconfiar que algo está errado. Você pode usar:
+
{{collapse bottom}}
#* traceroute -n IP_destino
+
 
#* Usando '''wireshark''' ou '''tcpdump''' para analisar tráfego
+
{{collapse top|Experiência com uma rede simulada}}
-->
 
  
= 13/11: Redes locais e VLANs =
+
Para fazer a experiência pode-se usar também o simulador Omnet++ (veja em: [[Omnetpp-Instalacao|Instale o Omnet++ 4]])
  
* Capítulo 13 do livro "Comunicação de Dados e Redes de Computadores", de Berhouz Forouzan
+
O gráfico abaixo foi obtido com uma simulação via Omnet++:
* Capítulo 5 do livro "Redes de Computadores e a Internet, 5a edição", de James Kurose
 
* Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum
 
  
 +
[[imagem:Csma-perf-sim.png]]
  
 +
As simulações tiveram os seguintes parâmetros:
 +
* Quadros de 256, 512 e 1480 bytes
 +
* 2 a 45 estações
 +
* Geração de tráfego por estação com intervalos entre quadros dados por uma distribuição exponencial com média 15*tamanho_quadro_em_bits*0.11us (0.11us é o tempo aproximado de um bit)
 +
{{collapse bottom}}
  
A rede do IF-SC é composta pelas redes dos campi, sendo que o campus Mauro Ramos centraliza os links para os demais campi. Dentre eles, o link para a rede do campus São José tem a capacidade de 1 Gbps. Além disso, o link para a Internet se localiza também no campus Mauro Ramos. A figura abaixo mostra um diagrama simplificado da rede do IF-SC, destacando apenas os campis Mauro Ramos, São José e Continente.
+
{{collapse top|Análise de desempenho do 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 aproximada de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.
  
[[imagem:Ifsc.png|600px]]
+
* ''Utilização do meio:''
  
 +
<math>U = \frac{1}{1 + \frac{2BLe}{cF}}</math>
  
Como se pode ver, os câmpus são interligados por enlaces (links) de longa-distância com alta capacidade de transmissão (1 Gbps). O link para a Internet, provido pelo [http://www.pop-sc.rnp.br/ POP-SC] (Ponto de Presença da [http://www.rnp.br RNP] em SC, mantido pela UFSC) é também de 1 Gbps. Esses links de longa distância asseguram que não existam gargalos entre os câmpus, possibilitando uma boa vazão entre as redes.
+
* '''''B:''''' taxa de bits nominal
 +
* '''''L:''''' comprimento do meio de transmissão
 +
* '''''c: ''''' velocidade de propagação do sinal
 +
* '''''F:''''' comprimento do quadro
  
No nosso primeiro projeto, vamos iniciar estudando a estrutura e funcionamento da rede do câmpus São José. Essa rede é formada por três redes locais, compostas por switches ethernet, servidores, gateways e firewall. O diagrama abaixo apresenta a estrutura geral da rede do nosso campus.
+
[[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).
 +
 +
Para fins de comparação, veja os resultados obtidos com as redes simuladas anteriormente.
 +
{{collapse bottom}}
  
[[imagem:Rede-ifsc-sj.png|600px]]
 
  
 +
=== A arquitetura IEEE802===
  
Para entender seu funcionamento, precisaremos fazer algumas atividades:
+
* Arquitetura IEEE 802 e Redes locais IEEE 802.3 (Ethernet): [http://tele.sj.ifsc.edu.br/~msobral/RCO2/slides/aula9-ieee.pdf slides].
* '''Observar os equipamentos envolvidos:''' veremos que tipos de equipamentos são usados para manter a estrutura, como são conectados, seus fabricantes e modelos.
 
* '''Investigar as tecnologias empregadas na rede:''' identificaremos as tecnologias usadas e testaremos sua capacidade de transmissão.
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula9-ieee.pdf Slides sobre arquitetura IEEE 802]
 
  
=== Tecnologias de LAN switches ===
+
==== Tecnologias de LAN switches ====
  
 +
Switches ''store-and-forward'' X ''cut-through''
 +
* Leia este [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/switch-internals.pdf bom texto] sobre estruturas internas de switches.
 
* [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a00800a7af3.shtml#switchtechs Bom texto sobre switches]
 
* [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a00800a7af3.shtml#switchtechs Bom texto sobre switches]
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/lan-switch-transparent.swf Animação sobre o funcionamento de switches]
 
 
* [http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html Texto sobre tecnologias de switches (store-and-forward e cut-through)]
 
* [http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html Texto sobre tecnologias de switches (store-and-forward e cut-through)]
 
  
 
Algumas animações mostrando o funcionamento de switches ''store-and-forward'' e ''cut-through'':
 
Algumas animações mostrando o funcionamento de switches ''store-and-forward'' e ''cut-through'':
Linha 504: Linha 683:
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0144.mov Animacão sobre switches assimétricos (portas com diferentes taxas de bits)]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0144.mov Animacão sobre switches assimétricos (portas com diferentes taxas de bits)]
  
 +
=== Laboratório sobre LANs ===
  
'''Quais são as características dos switches do laboratório ?'''
+
* [[RCO2-lab3|Experiência sobre LANs]]
* D-Link DES-526 [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/manual-des3526.pdf (manual)]
 
* Micronet SP 1658B [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/SP1658B_Manual.pdf (manual)]
 
* 3Com 3224 [http://www.3com.com/prod/pt_la_amer/detail.jsp?tab=prodspec&sku=3C16479 (especificações)]
 
  
==== Exercício: observando a comutação de quadros em switches ====
 
  
Serão feitos alguns experimentos para mostrar como switches comutam quadros ethernet. Também será observado como switches memorizam que endereços MAC podem ser alcançados em cada uma de suas portas.
+
{{Collapse bottom}}
  
== Segmentando redes locais ==
+
{{Collapse top |Aula 8 - 14/05 - Segmentação de Redes e VLANs}}
  
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula10.pdf Transparências sobre VLANs]
+
==Aula 8 - 14/05 - Segmentação de Redes e VLANs ==
* [http://fengnet.com/book/Layer%202%20VPN%20Architectures/ch04lev1sec6.html Livro sobre VLANs]
 
* Ver capítulo 16 do livro ''Comunicação de Dados e Redes de Computadores", de Berhouz Forouzan
 
* Ver capítulo 5 do livro ''Redes de Computadores e a Internet'', de James Kurose
 
* Ver capítulo 4 do livro ''Redes de Computadores'', de Andrew Tanenbaum
 
  
 +
=== Segmentando redes ===
  
A equipe que administra a rede do campus São José vem estudando uma reestruturação dessa rede. Como diferentes setores e públicos a utilizam, e para diferentes propósitos, concluiu-se que seria apropriado segmentá-la em algumas subredes. Isso possibilitaria facilitar o controle de quem usa a rede, além do policiamento do tráfego. Para isso, a subrede geral do campus precisaria ser segmentada inicialmente em cinco novas subredes, denominadas:
+
A equipe que administra a rede do campus São José estudou uma reestruturação da sua rede. Como diferentes setores e públicos a utilizam, e para diferentes propósitos, concluiu-se que seria apropriado segmentá-la em algumas subredes. Isso possibilitou facilitar o controle de quem usa a rede, além do policiamento do tráfego. Para isso, a subrede geral do campus precisou ser segmentada inicialmente em cinco novas subredes, denominadas:
  
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
Linha 550: Linha 723:
 
Existe mais de uma forma de implantar uma estrutura como essa, as quais serão apresentadas nas próximas subseções.
 
Existe mais de uma forma de implantar uma estrutura como essa, as quais serão apresentadas nas próximas subseções.
  
=== Segmentação física ===
+
====Segmentação física ====
  
 
A segmentação física é uma solução aparentemente simples e direta. Cada subrede deve ser composta de uma estrutura exclusiva, contendo seus switches e cabeamentos. No entanto, para adotar esse tipo de segmentação, algumas modificações precisarão ser feitas na infraestrutura de rede existente. Observe a estrutura física da rede do campus:
 
A segmentação física é uma solução aparentemente simples e direta. Cada subrede deve ser composta de uma estrutura exclusiva, contendo seus switches e cabeamentos. No entanto, para adotar esse tipo de segmentação, algumas modificações precisarão ser feitas na infraestrutura de rede existente. Observe a estrutura física da rede do campus:
Linha 559: Linha 732:
 
O que seria necessário fazer para implantar uma segmentação física ?
 
O que seria necessário fazer para implantar uma segmentação física ?
  
=== Segmentação com VLANs ===
+
==== Segmentação com VLANs ====
  
 
Se a reestruturação pudesse ser efetuada com mínimas modificações na estrutura física (incluindo cabeamento), a implantação da nova rede seria mais rápida e menos custosa. Para isso ser possível, seria necessário que a infraestrutura de rede existente tivesse a capacidade de agrupar portas de switches, separando-as em segmentos lógicos. Quer dizer, deveria ser possível criar '''redes locais virtuais''', como mostrado na seguinte figura:
 
Se a reestruturação pudesse ser efetuada com mínimas modificações na estrutura física (incluindo cabeamento), a implantação da nova rede seria mais rápida e menos custosa. Para isso ser possível, seria necessário que a infraestrutura de rede existente tivesse a capacidade de agrupar portas de switches, separando-as em segmentos lógicos. Quer dizer, deveria ser possível criar '''redes locais virtuais''', como mostrado na seguinte figura:
Linha 566: Linha 739:
  
 
No exemplo acima, três redes locais virtuais ('''VLAN''') foram implantadas nos switches. Cada rede local virtual é composta por um certo número de computadores, que podem estar conectados a diferentes switches. Assim, uma rede local pode ter uma estrutura lógica diferente da estrutura física (a forma como seus computadores estão fisicamente interligados). Uma facilidade como essa funcionaria, de certa forma, como um ''patch panel'' virtual, que seria implementado diretamente nos switches.
 
No exemplo acima, três redes locais virtuais ('''VLAN''') foram implantadas nos switches. Cada rede local virtual é composta por um certo número de computadores, que podem estar conectados a diferentes switches. Assim, uma rede local pode ter uma estrutura lógica diferente da estrutura física (a forma como seus computadores estão fisicamente interligados). Uma facilidade como essa funcionaria, de certa forma, como um ''patch panel'' virtual, que seria implementado diretamente nos switches.
 +
 +
'''Redes locais virtuais''' são técnicas para implantar duas ou mais redes locais<br>com topologias arbitrárias, usando como base uma infraestrutura de rede local física.<br>Isso é semelhante a máquinas virtuais, em que se criam computadores virtuais<br>sobre um computador real.
  
 
'''Exemplo:''' a configuração do [[Netkit]] mostrada abaixo cria uma pequena rede composta por um switch e quatro computadores. Além disso, foram definidas duas VLANs (VLAN 5 e VLAN 10). Com isso, os computadores ''pc1'' e ''pc4''  pertencem a VLAN 5, e os computadores ''pc2'' e ''pc3'' estão na VLAN 10. Execute a rede abaixo e teste a comunicação entre os computadores - quais computadores conseguem se comunicar ?.
 
'''Exemplo:''' a configuração do [[Netkit]] mostrada abaixo cria uma pequena rede composta por um switch e quatro computadores. Além disso, foram definidas duas VLANs (VLAN 5 e VLAN 10). Com isso, os computadores ''pc1'' e ''pc4''  pertencem a VLAN 5, e os computadores ''pc2'' e ''pc3'' estão na VLAN 10. Execute a rede abaixo e teste a comunicação entre os computadores - quais computadores conseguem se comunicar ?.
Linha 591: Linha 766:
 
</syntaxhighlight> || [[imagem:Vlans-ex1.png]]
 
</syntaxhighlight> || [[imagem:Vlans-ex1.png]]
 
|}
 
|}
 
 
==== Exercício: acrescente um gateway para interligar as duas VLANs ====
 
 
<syntaxhighlight lang=text>
 
sw[type]=switch
 
 
gw[type]=gateway
 
 
pc1[type]=generic
 
pc2[type]=generic
 
pc3[type]=generic
 
pc4[type]=generic
 
 
# As portas do switch
 
sw[eth0]=port0:vlan_untagged=5
 
sw[eth1]=port1:vlan_untagged=10
 
sw[eth2]=port2:vlan_untagged=10
 
sw[eth3]=port3:vlan_untagged=5
 
sw[eth4]=port4:vlan_untagged=5
 
sw[eth5]=port5:vlan_untagged=10
 
 
# Ligando os computadores ao switch
 
pc1[eth0]=port0:ip=192.168.5.1/24
 
pc2[eth0]=port1:ip=192.168.10.2/24
 
pc3[eth0]=port2:ip=192.168.10.3/24
 
pc4[eth0]=port3:ip=192.168.5.4/24
 
 
gw[eth0]=port4:ip=192.168.5.254/24
 
gw[eth1]=port5:ip=192.168.10.254/24
 
 
pc1[default_gateway]=192.168.5.254
 
pc2[default_gateway]=192.168.10.254
 
pc3[default_gateway]=192.168.10.254
 
pc4[default_gateway]=192.168.5.254
 
</syntaxhighlight>
 
 
 
[[imagem:Ier-vlan1.png]]
 
  
 
=== Padrão IEEE 802.1q ===
 
=== Padrão IEEE 802.1q ===
  
Os primeiros switches com suporte a VLANs as implementavam de forma legada (i.e. não seguiam um padrão da indústria). Isso impedia que houvesse interoperabilidade entre equipamentos de diferentes fabricantes. Logo a IEEE formou um grupo de trabalho para propor mecanismos padronizados para implantar VLANs, dando origem ao padrão [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1Q-2005.pdf IEEE 802.1q]. Os fabricantes de equipamentos de rede o adoataram largamente, suplantando outras tecnologias legadas (ex: [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094665.shtml ISL] e [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094c52.shtml VTP] da Cisco). Com isso, VLANs IEEE 802.1q podem ser criadas usando switches de fabricantes diferentes.
+
Os primeiros switches com suporte a VLANs as implementavam de forma legada (i.e. não seguiam um padrão da indústria). Isso impedia que houvesse interoperabilidade entre equipamentos de diferentes fabricantes. Logo a IEEE formou um grupo de trabalho para propor mecanismos padronizados para implantar VLANs, dando origem ao padrão [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1Q-2005.pdf IEEE 802.1q]. Os fabricantes de equipamentos de rede o adataram largamente, suplantando outras tecnologias legadas (ex: [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094665.shtml ISL] e [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094c52.shtml VTP] da Cisco). Com isso, VLANs IEEE 802.1q podem ser criadas usando switches de fabricantes diferentes.
  
 
Atualmente, a implantação de VLANs depende de switches com suporte ao padrão IEEE 802.1q. Assim, verifique quais dos switches do laboratório possuem suporte a VLAN:
 
Atualmente, a implantação de VLANs depende de switches com suporte ao padrão IEEE 802.1q. Assim, verifique quais dos switches do laboratório possuem suporte a VLAN:
 
* D-Link DES-526 [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/manual-des3526.pdf (manual)]
 
* D-Link DES-526 [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/manual-des3526.pdf (manual)]
 
* Micronet SP 1658B [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/SP1658B_Manual.pdf (manual)]
 
* Micronet SP 1658B [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/SP1658B_Manual.pdf (manual)]
* 3Com 2824 [http://tele.sj.ifsc.edu.br/~msobral/IER/roteiros/3Com-2824.pdf (especificações)]
+
* 3Com 3224 [http://www.3com.com/prod/pt_la_amer/detail.jsp?tab=prodspec&sku=3C16479 (especificações)]
 +
* CISCO catalyst 2690S
  
 
Uma VLAN é identificada por um número, chamado VID (''VLAN Identifier''), sendo que a VLAN com VID 1 é considerada a ''VLAN default'' (configuração de fábrica). Em um switch com suporte a VLAN IEEE 802.1q, cada porta possui um (ou mais ...) VID, o que define a que VLAN pertence. Assim, para criar uma VLAN, devem-se modificar os VID das portas de switches que dela farão parte. Por exemplo, em uma pequena rede com duas VLANs as portas dos switches podem estar configuradas da seguinte forma:
 
Uma VLAN é identificada por um número, chamado VID (''VLAN Identifier''), sendo que a VLAN com VID 1 é considerada a ''VLAN default'' (configuração de fábrica). Em um switch com suporte a VLAN IEEE 802.1q, cada porta possui um (ou mais ...) VID, o que define a que VLAN pertence. Assim, para criar uma VLAN, devem-se modificar os VID das portas de switches que dela farão parte. Por exemplo, em uma pequena rede com duas VLANs as portas dos switches podem estar configuradas da seguinte forma:
Linha 664: Linha 801:
 
switch1[eth1]=sw1-port1:vlan_untagged=5
 
switch1[eth1]=sw1-port1:vlan_untagged=5
 
switch1[eth2]=sw1-port2:vlan_untagged=10
 
switch1[eth2]=sw1-port2:vlan_untagged=10
switch1[eth3]=link-sw1-sw2:vlans_tagged=5,10
+
switch1[eth3]=link-sw1-sw2:vlan_tagged=5,10
  
switch2[eth0]=sw2-port0:vlans_tagged=5,10
+
switch2[eth0]=sw2-port0:vlan_tagged=5,10
 
switch2[eth1]=sw2-port1:vlan_untagged=10
 
switch2[eth1]=sw2-port1:vlan_untagged=10
 
switch2[eth2]=sw2-port2:vlan_untagged=5
 
switch2[eth2]=sw2-port2:vlan_untagged=5
switch2[eth3]=link-sw1-sw2:vlans_tagged=5,10
+
switch2[eth3]=link-sw1-sw2:vlan_tagged=5,10
  
 
pc1[eth0]=sw1-port0:ip=192.168.0.1/24
 
pc1[eth0]=sw1-port0:ip=192.168.0.1/24
Linha 703: Linha 840:
 
[[imagem:Simulador-vlan.png|link=http://www2.rad.com/networks/2006/vlan/demo.htm|Um simulador de VLANs]]
 
[[imagem:Simulador-vlan.png|link=http://www2.rad.com/networks/2006/vlan/demo.htm|Um simulador de VLANs]]
  
=== Atividade 1: usando VLANs para implantar uma rede real  ===
+
===[[AE0 - Aplicando VLAN]]===
 +
 
 +
Atividade extra: prazo: 21/05/14 às 18:30Hs. Execução: em dupla. Como: Manuscrita, impressa ou via email
 +
 
 +
=== A nova rede do IFSC-SJ ===
 +
 
 +
Voltando à segmentação da rede do campus São José, vamos implantar a nova rede usando VLANs.
 +
 
  
Imagine que a rede do laboratório esteja fisicamente organizada como mostrado a seguir:
+
{| border="0" cellpadding="2"
 +
|-
 +
|[[imagem:Ifsc-sj-simples.png|400px]] || [[imagem:Ier-seta.png]]|| [[imagem:Nova-rede-ifsc-sj.png|400px]]
 +
|}
  
 +
Primeiro isso será realizado usando o [[Netkit]], e em seguida será implantado no laboratório. Para simplificar a rede, vamos assumir que a topologia física está implantada como mostrado na figura acima, à esquerda.
  
[[imagem:Rede-vlan-real.png]]
+
{{collapse top | Configuração da rede do IFSC-SJ}}
 +
<syntaxhighlight lang=text>
 +
# switches
 +
sw-rnp[type]=switch
 +
sw-redes1[type]=switch
 +
sw-redes2[type]=switch
 +
sw-coinf[type]=switch
 +
sw-labdes[type]=switch
 +
 +
# gateways
 +
asa5510[type]=gateway
 +
gw-redes1[type]=gateway
 +
gw-redes2[type]=gateway
 +
 +
# computadores e servidores
 +
bd[type]=generic
 +
dmz1[type]=generic
 +
dmz2[type]=generic
 +
adm1[type]=generic
 +
adm2[type]=generic
 +
adm3[type]=generic
 +
pedag1[type]=generic
 +
pedag2[type]=generic
 +
pc-redes1[type]=generic
 +
pc-redes2[type]=generic
 +
 +
# Portas dos switches
 +
sw-rnp[eth0]=rnp-port0
 +
sw-rnp[eth1]=rnp-port1
 +
sw-rnp[eth2]=rnp-port2
 +
sw-rnp[eth3]=rnp-port3
 +
sw-rnp[eth4]=rnp-port4
 +
sw-rnp[eth5]=rnp-port5
 +
 +
sw-redes1[eth0]=redes1-port0
 +
sw-redes1[eth1]=redes1-port1
 +
 +
sw-redes2[eth0]=redes2-port0
 +
sw-redes2[eth1]=redes2-port1
 +
 +
sw-coinf[eth0]=coinf-port0
 +
sw-coinf[eth1]=coinf-port1
 +
sw-coinf[eth2]=coinf-port2
 +
# Ligações entre switches
 +
sw-coinf[eth3]=rnp-port5
 +
sw-coinf[eth4]=labdes-port3
 +
 +
sw-labdes[eth0]=labdes-port0
 +
sw-labdes[eth1]=labdes-port1
 +
sw-labdes[eth2]=labdes-port2
 +
sw-labdes[eth3]=labdes-port3
 +
 +
# Ligações dos computadores aos switches
 +
asa5510[eth0]=rnp-port0:ip=172.18.0.254/16
 +
bd[eth0]=rnp-port1:ip=172.18.0.10/16
 +
dmz1[eth0]=rnp-port2:ip=172.18.0.11/16
 +
adm1[eth0]=rnp-port3:ip=dhcp
 +
gw-redes1[eth1]=rnp-port4:ip=172.18.0.100/16
 +
 +
pc-redes1[eth0]=redes1-port1:ip=192.168.1.2/24
 +
gw-redes1[eth0]=redes1-port0:ip=192.168.1.1/24
 +
 +
pc-redes2[eth0]=redes2-port1:ip=192.168.2.2/24
 +
gw-redes2[eth0]=redes2-port0:ip=192.168.2.1/24
 +
 +
dmz2[eth0]=coinf-port0:ip=172.18.0.13/16
 +
adm2[eth0]=coinf-port1:ip=dhcp
 +
pedag1[eth0]=coinf-port2:ip=dhcp
 +
 +
adm3[eth0]=labdes-port0:ip=dhcp
 +
pedag2[eth0]=labdes-port1:ip=dhcp
 +
gw-redes2[eth1]=labdes-port2:ip=172.18.0.101/16
 +
 +
# ASA 5510 é servidor dhcp da LAN ...
 +
asa5510[dhcp]=eth0:range=172.18.100.1,172.18.100.250:gateway=172.18.0.254
 +
 +
# Gateways default dos computadores que usam IP fixo
 +
gw-redes1[default_gateway]=172.18.0.254
 +
gw-redes2[default_gateway]=172.18.0.254
 +
pc-redes1[default_gateway]=192.168.1.1
 +
pc-redes2[default_gateway]=192.168.2.1
 +
bd[default_gateway]=172.18.0.254
 +
dmz1[default_gateway]=172.18.0.254
 +
dmz2[default_gateway]=172.18.0.254
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 
 +
{{Collapse bottom}}
 +
 
 +
{{Collapse top |Aula 9 - 21/05 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d}}
  
 +
==Aula 9 - 21/05 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d==
  
No entanto, deseja-se reestruturá-la para que os computadores pares e os ímpares fiquem em redes locais separadas. Cada rede local deve possuir sua própria subrede IP. Para realizar essa tarefa devem-se usar VLANs, e a rede a ser criada deve funcionar como se tivesse a seguinte topologia:
+
* Início das Atividades: Discussão sobre a solução da AE0 da aula anterior
  
{{collapse top | Configuraçao da topologia física}}
+
Solução:
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
 +
sw1[type]=switch
 +
sw2[type]=switch
 
pc1[type]=generic
 
pc1[type]=generic
 
pc2[type]=generic
 
pc2[type]=generic
Linha 720: Linha 960:
 
pc4[type]=generic
 
pc4[type]=generic
 
pc5[type]=generic
 
pc5[type]=generic
 +
pc6[type]=generic
 +
 +
sw1[eth0]=sw1-port0:vlan_untagged=1
 +
sw1[eth1]=sw1-port1:vlan_untagged=3
 +
sw1[eth2]=sw1-port2:vlan_untagged=2
 +
sw1[eth3]=link-sw1-sw2:vlan_tagged=1,2,3
 +
 +
sw2[eth0]=sw2-port0:vlan_tagged=1,2,3
 +
sw2[eth1]=sw2-port1:vlan_untagged=3
 +
sw2[eth2]=sw2-port2:vlan_untagged=1
 +
sw2[eth3]=link-sw1-sw2:vlan_tagged=1,2,3
 +
 +
pc1[eth0]=sw1-port0:ip=192.168.1.1/24
 +
pc2[eth0]=sw1-port1:ip=192.168.3.2/24
 +
pc6[eth0]=sw1-port2:ip=192.168.2.6/24
 +
 +
pc3[eth0]=sw2-port0:vlan_tagged=(1,ip=192.168.1.3/24),(2,ip=192.168.2.3/24),(3,ip=192.168.3.3/24)
 +
pc4[eth0]=sw2-port1:ip=192.168.3.4/24
 +
pc5[eth0]=sw2-port2:ip=192.168.1.5/24
 +
</syntaxhighlight>
 +
 +
=== Tecnologias de LAN switches ===
 +
 +
Switches ''store-and-forward'' X ''cut-through''
 +
* Leia este [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/switch-internals.pdf bom texto] sobre estruturas internas de switches.
 +
 +
* [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a00800a7af3.shtml#switchtechs Bom texto sobre switches]
 +
* [http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html Texto sobre tecnologias de switches (store-and-forward e cut-through)]
 +
 +
Algumas animações mostrando o funcionamento de switches ''store-and-forward'' e ''cut-through'':
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0142.mov Animacão sobre switches cut-through]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0141.mov Animacão sobre switches store-and-forward]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0143.mov Animacão sobre switches simétricos (todas portas com mesma taxa de bits)]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0144.mov Animacão sobre switches assimétricos (portas com diferentes taxas de bits)]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/lan-switch-transparent.swf Animação sobre o funcionamento de switches (Cisco)]
 +
 +
=== O problema dos ciclos (caminhos fechados) em uma rede local ethernet ===
 +
 +
Bibliografia associada:
 +
* Capítulo 16 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.
 +
* Capítulo 5 do livro "''Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição'', de James Kurose.
 +
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.
 +
 +
Outros materiais:
 +
* Introdução a STP (ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula11.pdf transparências])
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/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]
 +
 +
 +
 +
Após implantar a [[RCO2-2012-1#Atividade_3|nova rede do IF-SC SJ]], a equipe da gerência de rede passou a acompanhar seu uso pela comunidade escolar. E um certo dia um aluno acidentalmente pegou um cabo e ligou em duas tomadas de rede em um laboratório (que está na Subrede ''Pedagógica''). Quer dizer, ele fez algo assim com um dos switches da rede:
 +
 +
 +
[[imagem:Curto-lan.png]]
 +
 +
 +
Para ver a consequência dessa ação aparentemente inocente, experimente reproduzi-la em uma rede feita com o [[Netkit]]:
 +
 +
{| border="0" cellpadding="2"
 +
|-
 +
|[[imagem:Stp-ex1.png]] || <syntaxhighlight lang=text>
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
sw[type]=switch
 +
 +
sw[eth0]=port0
 +
sw[eth1]=port1
 +
 +
pc1[eth0]=port0:ip=192.168.0.1/24
 +
pc2[eth0]=port1:ip=192.168.0.2/24
 +
 +
# ... a barbeiragem do usuário da rede no switch !
 +
sw[eth2]=link-barbeiragem
 +
sw[eth3]=link-barbeiragem
 +
</syntaxhighlight>
 +
|}
 +
  
centro[type]=switch
+
'''O que ocorreu ao tentar pingar de pc1 para pc2 ?'''
esquerdo[type]=switch
 
direito[type]=switch
 
  
centro[eth0]=centro-port0
 
centro[eth1]=centro-direito
 
  
esquerdo[eth0]=esquerdo-direito
 
esquerdo[eth1]=esquerdo-port1
 
esquerdo[eth2]=esquerdo-port2
 
  
direito[eth0]=esquerdo-direito
+
A interligação acidental de duas portas de um switch cria um ciclo na rede local (''loop''). Mas isso pode ser feito também de forma intencional, pois em LANs grandes pode ser desejável ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto é algo que pode ocorrer em uma rede local, seja por acidente ou com a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Um caso em que uma rede possui um ciclo intencionalmente colocado pode ser visto na LAN abaixo:
direito[eth1]=direito-port1
 
direito[eth2]=direito-port2
 
direito[eth3]=centro-direito
 
  
pc1[eth0]=centro-port0:ip=192.168.1.1/24
+
[[imagem:LAN-anel-stp.png]]
pc2[eth0]=direito-port1:ip=192.168.1.2/24
+
 
pc3[eth0]=direito-port2:ip=192.168.1.3/24
+
{{collapse top|Configuração para o Netkit}}
pc4[eth0]=esquerdo-port1:ip=192.168.1.4/24
+
<syntaxhighlight lang=text>
pc5[eth0]=esquerdo-port2:ip=192.168.1.5/24
+
sw1[type]=switch
 +
sw2[type]=switch
 +
sw3[type]=switch
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
pc3[type]=generic
 +
 
 +
# Ativação do STP nos switches
 +
sw1[stp]=on
 +
sw2[stp]=on
 +
sw3[stp]=on
 +
 
 +
sw1[eth0]=sw1-sw2
 +
sw1[eth1]=sw1-port1
 +
sw1[eth2]=sw1-sw3
 +
 
 +
sw2[eth0]=sw1-sw2
 +
sw2[eth1]=sw2-port1
 +
sw2[eth2]=sw2-sw3
 +
 
 +
sw3[eth0]=sw1-sw3
 +
sw3[eth1]=sw3-port1
 +
sw3[eth2]=sw2-sw3
 +
 
 +
pc1[eth0]=sw1-port1:ip=192.168.0.1/24
 +
pc2[eth0]=sw2-port1:ip=192.168.0.2/24
 +
pc3[eth0]=sw3-port1:ip=192.168.0.3/24
 
</syntaxhighlight>
 
</syntaxhighlight>
 
{{collapse bottom}}
 
{{collapse bottom}}
  
 +
Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa ficaria travada devido a um efeito chamado de ''tempestade de broadcasts'' (''broadcast storm''). Isso acontece porque, ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manualmente tira o sentido de ter tal configuração para tolerância a falhas (e não impede um "acidente" como aquele descrito no início desta secão), por isso foi criado o protocolo [http://en.wikipedia.org/wiki/Spanning_Tree_Protocol STP] (''Spanning Tree Protocol'', definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa.
 +
 +
<!---=== Atividade ===
 +
 +
Vamos realizar [[RCO2-lab4|um experimento]] para entender melhor como funciona o STP.
 +
 +
Usem o arquivo de configuração do Netkit a seguir para o experimento:
 +
 +
<syntaxhighlight lang=text>
 +
sw1[type]=switch
 +
sw2[type]=switch
 +
sw3[type]=switch
 +
sw4[type]=switch
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
pc3[type]=generic
 +
pc4[type]=generic
 +
 +
# Ativação do STP nos switches
 +
sw1[stp]=on
 +
sw2[stp]=on
 +
sw3[stp]=on
 +
sw4[stp]=on
 +
 +
sw1[eth0]=sw1-sw2
 +
sw1[eth1]=sw1-port1
 +
sw1[eth2]=sw1-sw3
 +
sw1[eth3]=sw1-sw4
 +
 +
sw2[eth0]=sw1-sw2
 +
sw2[eth1]=sw2-port1
 +
sw2[eth2]=sw2-sw3
 +
sw2[eth3]=sw2-sw4
 +
 +
sw3[eth0]=sw1-sw3
 +
sw3[eth1]=sw3-port1
 +
sw3[eth2]=sw2-sw3
 +
sw3[eth3]=sw3-sw4
 +
 +
sw4[eth0]=sw1-sw4
 +
sw4[eth1]=sw2-sw4
 +
sw4[eth2]=sw3-sw4
 +
sw4[eth3]=sw4-port4
 +
 +
pc1[eth0]=sw1-port1:ip=192.168.0.1/24
 +
pc2[eth0]=sw2-port1:ip=192.168.0.2/24
 +
pc3[eth0]=sw3-port1:ip=192.168.0.3/24
 +
pc4[eth0]=sw4-port4:ip=192.168.0.4/24
 +
</syntaxhighlight>
 +
-->
 +
 +
 +
Switches reais usualmente possuem suporte a [[IER-2011-1#Interliga.C3.A7.C3.A3o_de_LANs_e_Spanning_Tree_Protocol_.28STP.29|STP (''Spanning Tree Protocol'')]] para possibilitar haver enlaces redundantes em uma rede local. No Netkit podem-se criar redes em que se usa o STP, que deve ser ativado no switches.
 +
 +
 +
Para criar essa rede no Netkit pode-se usar a seguinte configuração:
 +
 +
<syntaxhighlight lang=text>
 +
sw1[type]=switch
 +
sw2[type]=switch
 +
sw3[type]=switch
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
pc3[type]=generic
 +
 +
# Ativação do STP nos switches
 +
sw1[stp]=on:bridge_priority=1024
 +
sw2[stp]=on:bridge_priority=128
 +
sw3[stp]=on:bridge_priority=500
 +
 +
sw1[eth0]=sw1-sw2
 +
sw1[eth1]=sw1-port1
 +
sw1[eth2]=sw1-sw3
 +
 +
sw2[eth0]=sw1-sw2
 +
sw2[eth1]=sw2-port1
 +
sw2[eth2]=sw2-sw3
 +
 +
sw3[eth0]=sw1-sw3
 +
sw3[eth1]=sw3-port1
 +
sw3[eth2]=sw2-sw3
 +
 +
pc1[eth0]=sw1-port1:ip=192.168.0.1/24
 +
pc2[eth0]=sw2-port1:ip=192.168.0.2/24
 +
pc3[eth0]=sw3-port1:ip=192.168.0.3/24
 +
</syntaxhighlight>
 +
 +
A configuração do STP se faz pelo atributo especial ''stp'' a ser especificado para cada switch. A opção ''on'' ativa o STP, e ''bridge_priority'' define a prioridade do switch no escopo do STP.
 +
 +
Como os switches podem ser configurados com múltiplas vlans, o STP deve ser ativado apropriadamente. Isso significa que cada vlan deve ter o STP rodando de forma independente. A configuração do Netkit para especificar o STP para cada vlan segue abaixo:
 +
 +
<syntaxhighlight lang=text>
 +
sw1[type]=switch
 +
 +
# Ativação do STP nos switches
 +
sw1[stp]=on:bridge_priority=1024:vlan=5
 +
sw1[stp]=on:bridge_priority=512:vlan=10
 +
</syntaxhighlight>
 +
 +
Nesse exemplo, o switch ''sw1'' tem o STP ativado na vlans 5 e 10. Os parâmetros do STP inclusive podem ser diferentes em cada vlan, já que ele opera em cada uma de forma independente (i.e. o STP em uma vlan não interfere com o STP em outra vlan). Vlans em que o stp não foi explicitamente ativado usarão a configuração default do stp, a qual é definida omitindo-se informação sobre vlan:
 +
 +
<syntaxhighlight lang=text>
 +
# Configuração default do STP em um switch ... vale para todas as vlans em que
 +
# o stp não foi configurado individualmente.
 +
sw1[stp]=on
 +
 +
# A configuração default pode conter quaisquer opções do stp, menos vlan:
 +
sw2[stp]=on:bridge_priority=2000
 +
</syntaxhighlight>
 +
 +
Um último detalhe sobre o STP diz respeito ao custo e prioridade de cada porta do switch. No STP usado em switches reais, o custo de uma porta é dado pela sua velocidade. Assim, portas mais velozes têm custo menor que portas mais lentas, como por exemplo portas 1 Gbps comparadas a 100 Mbps. No Netkit não existe essa diferenciação entre as interfaces ethernet por serem emuladas, mas pode-se especificar manualmente o custo de cada interface a ser usado pelo STP. A configuração necessária deve ser colocada em cada porta da seguinte forma:
 +
 +
<syntaxhighlight lang=text>
 +
sw1[type]=switch
 +
 +
# Ativação do STP nos switches
 +
sw1[stp]=on:bridge_priority=1024
 +
 +
sw1[eth0]=port0:stp_cost=10
 +
sw1[eth1]=port1:stp_cost=100
 +
</syntaxhighlight>
 +
 +
Assim, nesse exemplo a interface eth0 do switch ''sw1'' tem custo STP 10, e a interface eth1 tem custo 100. Os custos de interfaces de acordo com a norma IEEE 802.1d pode ser visto na seguinte tabela:
 +
 +
[[imagem:Stp-custos.png]]
 +
 +
 +
A lista completa de opções que podem ser usadas na configuração do STP no Netkit segue abaixo:
 +
 +
<syntaxhighlight lang=text>
 +
# STP no switch:
 +
# bridge_priority: prioridade do switch no STP
 +
# hello_time: intervalo entre envios de BPDU
 +
# max_age: tempo máximo que o STP pode ficar sem receber uma atualização de BPDU de outro switch
 +
# forward_delay: atraso para enviar uma BPDU notificando uma mudança de configuração do STP
 +
# on: ativa o STP
 +
# off: inicia com STP desativado
 +
 +
sw1[stp]=on:vlan=10:bridge_priority=100:hello_time=2:max_age=10:forward_delay=1
 +
 +
# Porta do switch: pode ter as opções stp_cost (custo da porta) e stp_prio (prioridade da porta)
 +
sw1[eth0]=port0:stp_cost=10:stp_prio=1
 +
</syntaxhighlight>
 +
 +
 +
<!--
 +
 +
Voltando à segmentação da rede do campus São José, vamos acrescentar alguns enlaces para conferir um grau de tolerância a falhas:
 +
 +
 +
{| border="0" cellpadding="2"
 +
|-
 +
|[[imagem:Ifsc-sj-simples.png|400px]] || [[imagem:Ier-seta.png]]|| [[imagem:Nova-rede-ifsc-sj.png|400px]]
 +
|}
 +
 +
 +
Dada a dimensão da rede, isso será realizado usando o [[Netkit]]. Sendo assim, implante a rede acima e ative o STP para tratar os caminhos fechados. Em seguida, experimente modificar alguns links para verificar se a rede continua funcionando.
 +
 +
{{collapse top|Modelo da rede do IFSC-SJ para o Netkit}}
 +
<syntaxhighlight lang=text>
 +
# switches
 +
sw-rnp[type]=switch
 +
sw-redes1[type]=switch
 +
sw-redes2[type]=switch
 +
sw-coinf[type]=switch
 +
sw-labdes[type]=switch
 +
 +
# gateways
 +
asa5510[type]=gateway
 +
gw-redes1[type]=gateway
 +
gw-redes2[type]=gateway
 +
 +
# computadores e servidores
 +
bd[type]=generic
 +
dmz1[type]=generic
 +
dmz2[type]=generic
 +
adm1[type]=generic
 +
adm2[type]=generic
 +
adm3[type]=generic
 +
pedag1[type]=generic
 +
pedag2[type]=generic
 +
pc-redes1[type]=generic
 +
pc-redes2[type]=generic
 +
 +
# Portas dos switches
 +
sw-rnp[eth0]=rnp-port0
 +
sw-rnp[eth1]=rnp-port1
 +
sw-rnp[eth2]=rnp-port2
 +
sw-rnp[eth3]=rnp-port3
 +
sw-rnp[eth4]=rnp-port4
 +
sw-rnp[eth5]=rnp-port5
 +
 +
sw-redes1[eth0]=redes1-port0
 +
sw-redes1[eth1]=redes1-port1
 +
 +
sw-redes2[eth0]=redes2-port0
 +
sw-redes2[eth1]=redes2-port1
 +
 +
sw-coinf[eth0]=coinf-port0
 +
sw-coinf[eth1]=coinf-port1
 +
sw-coinf[eth2]=coinf-port2
 +
# Ligações entre switches
 +
sw-coinf[eth3]=rnp-port5
 +
sw-coinf[eth4]=labdes-port3
 +
 +
sw-labdes[eth0]=labdes-port0
 +
sw-labdes[eth1]=labdes-port1
 +
sw-labdes[eth2]=labdes-port2
 +
sw-labdes[eth3]=labdes-port3
 +
 +
# Ligações dos computadores aos switches
 +
asa5510[eth0]=rnp-port0:ip=172.18.0.254/16
 +
bd[eth0]=rnp-port1:ip=172.18.0.10/16
 +
dmz1[eth0]=rnp-port2:ip=172.18.0.11/16
 +
adm1[eth0]=rnp-port3:ip=dhcp
 +
gw-redes1[eth1]=rnp-port4:ip=172.18.0.100/16
 +
 +
pc-redes1[eth0]=redes1-port1:ip=192.168.1.2/24
 +
gw-redes1[eth0]=redes1-port0:ip=192.168.1.1/24
 +
 +
pc-redes2[eth0]=redes2-port1:ip=192.168.2.2/24
 +
gw-redes2[eth0]=redes2-port0:ip=192.168.2.1/24
 +
 +
dmz2[eth0]=coinf-port0:ip=172.18.0.13/16
 +
adm2[eth0]=coinf-port1:ip=dhcp
 +
pedag1[eth0]=coinf-port2:ip=dhcp
 +
 +
adm3[eth0]=labdes-port0:ip=dhcp
 +
pedag2[eth0]=labdes-port1:ip=dhcp
 +
gw-redes2[eth1]=labdes-port2:ip=172.18.0.101/16
 +
 +
# ASA 5510 é servidor dhcp da LAN ...
 +
asa5510[dhcp]=eth0:range=172.18.100.1,172.18.100.250:gateway=172.18.0.254
 +
 +
# Gateways default dos computadores que usam IP fixo
 +
gw-redes1[default_gateway]=172.18.0.254
 +
gw-redes2[default_gateway]=172.18.0.254
 +
pc-redes1[default_gateway]=192.168.1.1
 +
pc-redes2[default_gateway]=192.168.2.1
 +
bd[default_gateway]=172.18.0.254
 +
dmz1[default_gateway]=172.18.0.254
 +
dmz2[default_gateway]=172.18.0.254
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
-->
 +
 +
{{Collapse bottom}}
 +
 +
{{Collapse top |Aula 10 - 28/05 - Controle de Acesso com IEEE 802.1x e trunking IEEE802.1ax e Introdução a Redes sem Fio}}
 +
 +
==Aula 10 - 28/05 -  Controle de Acesso com IEEE 802.1x==
 +
 +
* [http://tele.sj.ifsc.edu.br/~casagrande/RCO2/listas/2012-1/lista3.pdf 3a lista de exercícios]
 +
 +
===Fazendo controle de acesso em redes locais===
 +
 +
 +
Vamos usar como exemplo o cenário da rede do IFSC-SJ: A gerência de rede concluiu que deve-se controlar os acessos aos pontos da rede da escola. Com isso, somente usuários devidamente autenticados e autorizados poderão se comunicar usando os pontos de rede. A forma com que isso deve ser feito deve impedir inclusive que uma pessoa conecte um laptop a uma tomada de rede, e consiga acessar a rede. Além disso, o acesso pode ser negado ou concedido dependendo do tipo de usuário (aluno, funcionário, professor, visitante) e da localização do ponto de rede. O mecanismo de segurança capaz de fazer isso deve agir portanto diretamente nas portas de switches, habilitando-as ou bloqueando-as dependendo do usuário que tentar usar o equipamento nela conectado.
 +
 +
=== Padrão IEEE 802.1x ===
 +
 +
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula12.pdf slides]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/802.1x_book_c2.pdf Capítulo de um livro sobre IEEE 802.1x]
 +
<!-- [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab10.pdf Roteiro da experiência]
 +
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/rco2.conf Arquivo de configuração do wpa_supplicant (rco2.conf)]-->
 +
 +
 +
O padrão [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 !]
 +
 +
==== Controle de acesso IEEE 802.1x ====
 +
 +
O controle de acesso [[RCO2-2012-1#Padr.C3.A3o_IEEE_802.1x|IEEE 802.1x]] possibilita liberar ou bloquear portas de switches mediante a identificação de usuários válidos. Para usá-lo no Netkit deve-se  fazer o seguinte:
 +
# Nos switches ativa-se a autenticação com IEEE 802.1x, fornecendo-se uma lista de usuários e respectivas senhas. Além disso, identificam-se quais portas dos switches que exigirão que usuários se autentiquem (portas autenticadoras). <syntaxhighlight lang=text>
 +
sw[type]=switch
 +
 +
# Podem-se definir quantos usuários e senhas forem desejados.
 +
sw[8021x]=1:users=usuario1/senha1,usuario2/senha2
 +
 +
# A interface eth0 do switch é uma porta autenticadora, mas a interface eth1 não.
 +
sw[eth0]=port0:8021x_authenticator=1
 +
sw[eth1]=port1
 +
</syntaxhighlight>
 +
# Nos computadores que se conectarão aos switches deve-se informar o usuário e senha para fins de autenticação. <syntaxhighlight lang=text>
 +
pc[type]=generic
 +
 +
pc[eth0]=port0:8021x_user=usuario1/senha1:ip=10.0.0.1/24
 +
</syntaxhighlight>
 +
 +
Juntando os dois exemplos acima, pode-se definir uma pequena rede para fins de demonstração do controle de acesso:
 +
 +
<syntaxhighlight lang=text>
 +
sw[type]=switch
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
 +
# Podem-se definir quantos usuários e senhas forem desejados.
 +
sw[8021x]=1:users=usuario1/senha1,usuario2/senha2
 +
 +
# Necessário um endereço IP para fins de gerenciamento do switch
 +
sw[management_ip]=10.0.0.10/24:vlan=1
 +
 +
# A interface eth0 do switch é uma porta autenticadora, mas a interface eth1 não.
 +
sw[eth0]=port0:8021x_authenticator=1
 +
sw[eth1]=port1
 +
 +
pc1[eth0]=port0:8021x_user=usuario1/senha1:ip=10.0.0.1/24
 +
pc2[eth0]=port1:ip=10.0.0.2/24
 +
</syntaxhighlight>
 +
 +
Ao executar a rede acima, deve-se conseguir fazer um ping entre ''pc1'' e ''pc2''. Se quiser testar com maiores detalhes o controle de acesso e vê-lo em ação, experimente fazer o seguinte:
 +
# No ''pc2'' deixe o ping em execução (''ping 10.0.0.1'')
 +
# No ''pc1'' execute o utilitário ''wpa_cli''. Esse programa permite controlar o ''supplicant'', que vem a ser o programa responsável por realizar a autenticação com IEEE 8021x. Ao iniciar o ''wpa_cli'' mostra um prompt (''>''), onde se podem executar comandos de consulta ou modificacão do ''supplicant''.
 +
## Execute ''status'', e veja as informações sobre a autenticação mantidas pelo ''supplicant''.
 +
## Execute ''logoff'', e em seguida observe como estão as resposta do ping no ''pc2''. As respostas devem etr parado ...
 +
## Execute ''logon'', e novamente observe o ping no ''pc2''. Após alguns segundos as respostas devem voltar a ser recebidas.
 +
 +
===== Definindo um IP de gerenciamento =====
 +
 +
Um switch pode possuir um endereço IP para fins de gerenciamento. No momento, isso é usado somente para que um switch consiga rodar um servidor Radius e atender pedidos de acesso vindos de outros switches. O IP de gerenciamento precisa estar vinculado a uma das VLANs do switch:
 +
 +
<syntaxhighlight lang=text>
 +
sw[management_ip]=192.168.0.10/24:vlan=5
 +
</syntaxhighlight>
 +
 +
No exemplo acima, o switch ''sw'' possui o IP de gerenciamento 192.168.0.10, que está vinculado a VLAN 5. Apenas um IP por switch hpode ser definido.
 +
 +
Como o tipo ''switch'' especializa o tipo ''generic'', é possível definir rotas em um switch que possui um IP de gerenciamento. Isso pode ser feito da mesma forma que em máquinas virtuais genéricas (i.e. usando os atributos [[Netkit#Rotas_est.C3.A1ticas|''default_gateway'' ou ''route'']]).
 +
 +
===== Usando um servidor Radius =====
 +
 +
Em uma infraestrutura de controle de acesso IEEE 8021.X, usualmente o servidor de autenticação reside em um equipamento em separado. Desta forma, os autenticadores (switches e ''access points'') podem efetuar a autenticação usando uma base de usuários comum. Apesar do padrão IEEE 8021.X não definir como deve ser implementado o servidor de autenticação, os fabricantes de equipamentos adotaram o serviço Radius para assumir esse papel. Com isso, para implantar o servidor de autenticação deve-se instalar um servidor Radius em algum equipamento, e fazer com que os autenticadores o utilizem para para autenticar os acessos.
 +
 +
No Netkit a implantação de um servidor Radius foi simplificada e integrada à configuração do controle de acesso descrita no [[Netkit#Controle_de_acesso_IEEE_802.1x|início desta seção]]. Por questão de simplicidade, o servidor Radius deve ser implantado em um switch. assim, a configuração de um switch que deve operar como servidor Radius é:
 +
 +
<syntaxhighlight lang=text>
 +
sw2[8021x]=1:users=u1/p1,u2/p2:radius_clients=10.0.0.10,10.0.0.254
 +
</syntaxhighlight>
 +
 +
O parâmetro ''users'' lista os usuários e senhas autenticados pelo Radius, e ''radius_clients'' lista os endereços IP dos clientes Radius (que são os demais switches). Em ambos os casos, as informações devem ser escritas como listas separadas por vírgulas.
 +
 +
Os clientes Radius precisam definir que servidor Radius irão utilizar. A configuração de um switch que é cliente Radius poderia ser esta:
 +
 +
<syntaxhighlight lang=text>
 +
sw[8021x]=1:radius_server=10.0.0.5
 +
</syntaxhighlight>
 +
 +
Note que os clientes Radius devem ser capazes de alcançarem o servidor Radius. Quer dizer, se clientes e servidor Radius estiverem em subredes IP diferentes, devem existir rotas para que eles possam se comunicar.
 +
 +
Um exemplo de uma rede com dois switches, sendo um deles um servidor Radius, está mostrada a seguir:
 +
 +
{| border="0" cellpadding="2"
 +
|-
 +
|<syntaxhighlight lang=text>
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
sw[type]=switch
 +
sw2[type]=switch
 +
 +
sw[8021x]=1:radius_server=10.0.0.5
 +
sw2[8021x]=1:users=aluno/teste:radius_clients=10.0.0.10
 +
 +
sw[management_ip]=10.0.0.10/24:vlan=1
 +
sw2[management_ip]=10.0.0.5/24:vlan=1
 +
 +
pc1[eth0]=sw-port0:ip=10.0.0.1/24:8021x_user=aluno/teste
 +
pc2[eth0]=sw-port1:ip=10.0.0.2/24:8021x_user=aluno/teste
 +
sw[eth0]=sw-port0:8021x_authenticator=1
 +
sw[eth1]=sw-port1:8021x_authenticator=1
 +
sw[eth2]=sw-port2
 +
 +
sw2[eth0]=sw-port2
 +
</syntaxhighlight>||[[imagem:Ex-radius.png]]
 +
|}
 +
 +
==Padrão IEEE802.1ax (anterior IEEE802.1ad) Agregamento de enlaces==
 +
 +
==== Agregação de enlace (bonding ou trunking) ====
 +
 +
O Linux possui suporte a agregação de enlaces, em que se agrupam interfaces ethernet de forma a parecerem uma única interface (chamado de [http://www.linuxhorizon.ro/bonding.html Linux Channel Bonding]). A interface agregada tem prefixo ''bond'', e assim deve ser identificada como ''bond0'', ''bond1'' e assim por diante. Para criar um enlace agregado no Netkit basta declarar em um switch uma interface desse tipo. A sintaxe da declaração é praticamente idêntica a de interfaces ethernet, como se pode ver abaixo:
 +
 +
<syntaxhighlight lang=text>
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
sw1[type]=switch
 +
sw2[type]=switch
 +
 +
pc1[eth0]=sw1-port0:ip=192.168.0.1/24
 +
pc2[eth0]=sw2-port0:ip=192.168.0.2/24
 +
 +
sw1[eth0]=sw1-port0
 +
sw2[eth0]=sw2-port0
 +
 +
# Define em cada switch uma interface bond0 que agrega dois enlaces.
 +
# O enlace agregado deve ser composto por uma ou mais interfaces ethernet.
 +
# O nome do enlace agregado é sw1-sw2 no exemplo.
 +
 +
sw1[bond0]=sw1-sw2:interfaces=eth1,eth2
 +
sw2[bond0]=sw1-sw2:interfaces=eth1,eth2
 +
</syntaxhighlight>
 +
 +
Nesse exemplo o enlace agregado foi criado entre os switches ''sw1'' e ''sw2''. Como se pode notar, existe uma opção de configuração adicional ''interfaces'', usada para listar as interfaces ethernet a serem agrupadas. Essas interfaces não devem ser declaradas explicitamente. Além disso, não se podem configurar VLANs na interface agregada (''bond0'' no exemplo).  Por fim, mais de um enlace agregado pode ser criado no mesmo switch, bastando identificá-los por interfaces ''bond'' diferentes (''bond1'', ''bond2'', ...).
 +
 +
O exemplo acima cria a seguinte rede:
 +
 +
[[imagem:Bond.png]]
 +
 +
===Cascateamento versus Empilhamento===
 +
 +
Os switches ainda possuem uma facilidade em nível físico chamada empilhamento (ou stack) que tem a função de ampliar as capacidades de portas sem comprometer significativamente a latência de pacotes em trânsito (fase forwarding). O mais eficiente, porém com mais custo, é o empilhamento por backplane onde um cabo proprietário de comprimento não maior que 1 metro, é conectado entre portas de entrada e saída específicas para este fim, geralmente na trazeira do switch, formando um anel dos swicthes empilhados. Os switches empilhados se comportam como um só e a gerência deles é muito mais facilitada com um único endereço IP. Já o cascateamento usando portas comuns ou portas específicas de altas taxas (fibra) chamadas UPLINK, mesmo usando o agregamento de link exposto na seção anterior, resolve a questão do congestionamento de toda a transferência de dados oriundas/destinadas aos ramos descendentes destas portas mas torna-se difícil a gerência de cada switch e a latência além de reduzir o desempenho da rede pode impedir até o funcionamento de algorítimos como o STP.
 +
 +
 +
== Redes sem Fio==
 +
 +
<!-- * [http://tele.sj.ifsc.edu.br/~casagrande/RCO2/listas/2012-1/lista3.pdf 3a lista de exercícios]-->
 +
 +
* 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 capítulo 6 do livro ''Redes de Computadores e a Internet, 3a ed.'', de James Kurose.
 +
* Ver capítulo 4 (seção 4.4) do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum.
 +
* Ver este [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/livros/livro-802_11.chm livro on-line] sobre redes IEEE 802.11. (precisa do ''gnochm'' ou ''chmsee'' para ser lido)
 +
 +
=== Introdução ===
 +
 +
Redes sem-fio se tornaram uma tecnologia largamente difundida e de uso corriqueiro, principalmente em sua versão para redes locais. Graças a ela, as pessoas não precisam usar cabos para ter acesso à rede, e podem se comunicar em qualquer localização dentro do alcance da rede sem-fio. Mesmo usuários em movimento podem se manter em comunicação pela rede sem-fio. Essas características atraentes da tecnologia fazem com que ela seja naturalmente desejável nas LANs
 +
 +
A implantação de uma rede sem-fio deve atender alguns requisitos levantados pelo administrador de uma rede, os quais serão discutidos ao longo desta seção. Antes de pensar nos detalhes a serem observados, devem-se conhecer as características de comunicação de dados por um canal sem-fio e os mecanismos inventados para efetuar esse tipo de comunicação.
 +
 +
=== Alguns usos de redes sem-fio ===
 +
 +
[[imagem:WLAN-comum.gif]]<br>
 +
''Redes locais sem-fio''
 +
 +
 +
[[imagem:Wireless_point_to_point.jpg]]<br>
 +
''Enlaces ponto-a-ponto de média/longa distância''
 +
 +
 +
[[imagem:Wlan-train.png]]<br>
 +
''Prover conectividade em ferrovias''
 +
 +
 +
[[imagem:Body-network.jpg]]<br>
 +
''Redes de dispositivos acoplados ao corpo de uma pessoa''
 +
 +
 +
[[imagem:SensorWebImageForEnewsJuly2.jpg]]<br>
 +
''Redes de sensores''
 +
 +
 +
[[imagem:v2v.jpg]]<br>
 +
''Redes entre veículos (experimental)''
 +
 +
{{Collapse bottom}}
 +
 +
{{Collapse top |Aula 11 - 04/06 - O Padrão IEEE 802.11}}
 +
 +
===Aula 11 - 04/06 - O Padrão IEEE 802.11 ====
 +
 +
Dentre as várias tecnologias de comunicação sem-fio existentes, o padrão IEEE 802.11 para redes locais tem ampla utilização. Conhecido popularmente como Wi-Fi (um trocadilho com Hi-Fi, uma qualidade atribuída a aparelhos de som e que significa ''High-Fidelity''), está presente praticamente em todos os lugares hoje em dia - desde escolas, empresas, aeroportos, supermercados, restaurantes, cafés e residências, e até mesmo em espaços abertos de cidades (ver ''Cidades Digitais''). Muitos dos problemas existentes nesse tipo de rede (alguns resolvidos e outros não), e características de funcionamento, são comuns a outras tecnologias menos conhecidas, porém também importantes em suas áreas de aplicação. Por isso nosso estudo se concentrará nesse padrão de redes sem-fio, para conhecê-lo com razoável profundidade. Como consequência, além de entender como funciona uma rede IEEE 802.11, os conhecimentos obtidos habilitarão a compreensão de outras tecnologias de redes sem-fio.
 +
 +
* Apresentaram-se as possíveis formas de organização de uma rede IEEE 802.11:
 +
** '''Rede infraestruturada:''' uso de uma estação central, que intermedia as transmissões das demais estações.<br><br>[[imagem:Infrastructure-bss.png]]<br>
 +
** '''Rede Ad-Hoc:''' estações se comunicam livremente com suas estações vizinhas.<br><br>[[imagem:Adhoc-bss.png]]<br>
 +
** '''Rede Mesh:''' estações se comunicam livremente, mesmo que existam múltiplos saltos (''multihop'').<br><br>[[imagem:Mesh_topology.gif]]<br>
 +
 +
==== Teste de desempenho de uma rede IEEE 802.11 ====
 +
 +
Será feito um  experimento para configurar, usar e verificar a vazão de uma rede local sem-fio IEEE 802.11. Também será investigado o tráfego nessa rede, usando o analisador de protocolo wireshark.
 +
 +
* [[RCO2-wlan-lab1|Roteiro do experimento]]
 +
 +
'''Questões para interpretar o experimento. Tipo... pra prova:'''
 +
* Quais os equipamentos envolvidos na rede sem-fio experimentada? faça um esboço da rede! Mostre as configurações da LAN, Wireless e WAN dos dois APs (entre na página HTML de configuração dele via browser).
 +
* Como um dispositivo terminal entra na rede sem-fio? Existe um procedimento para que isso ocorra?
 +
* Como ocorrem as transmissões nas redes sem-fio? Compare a transmissão de quadros nesse tipo de rede com transmissões em rede ethernet.
 +
* Qual a taxa de transmissão por quadro ? Existe mais de um taxa possível ? Como isso funciona em uma rede com muitos dispositivos ?
 +
 +
{{Collapse bottom}}
 +
 +
{{Collapse top |Aula 12 - 11/06 - Projeto Integrador}}
 +
 +
===Aula 12 - 11/06 - Projeto Integrador ===
 +
 +
* [http://www.sj.ifsc.edu.br/~casagrande/IER/lista2.pdf '''Lista 2'''  <math>\blacklozenge</math>] '''prazo:''' 02/07/14 às 23:59Hs. '''Execução''': em equipe conforme integrantes do PI. '''Como:''' Manuscrita, impressa ou via email<br>
 +
 +
* aguardando relatório do dia
 +
 +
{{Collapse bottom}}
 +
 +
{{Collapse top |Aula 13 - 18/06 - Projeto Integrador}}
 +
 +
===Aula 13 - 18/06 - Projeto Integrador ===
 +
 +
* aguardando relatório do dia
 +
 +
{{Collapse bottom}}
  
[[imagem:Rede-vlan-virtual.png]]
+
{{Collapse top |Aula 14 - 25/06 - Projeto Integrador}}
  
 +
===Aula 14 - 25/06 - Projeto Integrador ===
  
* '''Computadores pares:''' subrede 10.0.1.32/28
+
* aguardando relatório do dia
* '''Computadores ímpares:''' subrede 10.0.1.192/28
 
* '''Rede do laboratório:''' subrede 192.168.1.0/24
 
  
 +
{{Collapse bottom}}
  
A turma deve implantar essa nova rede usando os switches [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/manual-des3526.pdf D-Link DES-3526], que ficam nos racks esquerdo e direito no laboratório. Esses switches podem ser gerenciados via interface web, telnet, ou console serial. Seus endereços IP são estes:
+
{{Collapse top |Aula 15 - 02/07 - Projeto Integrador a avaliações}}
* '''Switch direito:''' 192.168.1.240
 
* '''Switch esquerdo:''' 192.168.1.241
 
  
== 20/11: ??? ==
+
===Aula 15 - 02/07 - Projeto Integrador e avaliações ===
  
== 27/11: [[Projeto_Integrador_-_2013.2|Projeto Integrador]] ==
+
* primeiras 2 aulas: '''Avaliação A2 PRC;'''
 +
* últimas 2 aulas: '''Avaliação A1 IER;'''
 +
* Alunos que terminam as provas antes do final da aula, podem seguir com o projeto integrador
  
== 30/11: [[Projeto_Integrador_-_2013.2|Projeto Integrador]] ==
+
{{Collapse bottom}}
  
== 04/12: [[Projeto_Integrador_-_2013.2|Projeto Integrador]] e avaliação ==
+
{{Collapse top |Aula 16 - 09/07 - Projeto Integrador e avaliações}}
  
* A avaliação será nas duas aulas após o intervalo (iniciando às 20:40 h), na sala de aula.
+
===Aula 16 - 09/07 - Projeto Integrador e avaliações====
* No início da aula pode ser feita uma revisão, se a turma assim preferir.
 
* [http://tele.sj.ifsc.edu.br/~msobral/IER/avaliacoes/prova2-2012-1.pdf Avaliação de 2012-1]
 
  
== 11/12: [[Projeto_Integrador_-_2013.2|Projeto Integrador]] e recuperação ==
+
* primeiras 2 aulas: '''Avaliação REC A1 e A2 PRC;'''
 +
* últimas 2 aulas: '''Avaliação REC A1 IER;'''
 +
* Alunos que terminam as provas antes do final da aula OU que não precisam recuperar notas, podem seguir com o projeto integrador
  
As avaliações de recuperação serão feitas logo após a reunião da turma sobre a formatura. A previsão é que no mínimo serão usadas as duas aulas após o intervalo (iniciando às 20:40 h).
+
{{Collapse bottom}}

Edição atual tal como às 13h39min de 20 de julho de 2014

Instalação de Equipamentos de Redes: Diário de Aula 2014-1

Professor: Jorge Casagrande (casagrande@ifsc.edu.br)
Atendimento paralelo: 4a feira 11:35h - 12:30h e 4a feira 16:35h - 17:30h

Plano de Ensino

ANEXOS

Cronograma de atividades
Horário de Aula e Atendimento Paralelo

Dados Importantes

Professor: Jorge Henrique B. Casagrande
Email: casagrande@ifsc.edu.br
Atendimento paralelo: 4a feira 11:35h - 12:30h e 4a feira 16:35h - 17:300h (Sala dos professores de TELE - ao lado da reprografia)
Endereço do grupo: https://www.facebook.com/groups/IFSCTeleSubsequente2013.1/
Link alternativo para Material de Apoio da disciplina: http://www.sj.ifsc.edu.br/~casagrande/RED

Toda vez que voce encontrar a marcação ao lado de alguma atividade extra, significa que essa atividade será computada na avaliação individual. O prazo estabelecido para entrega estará destacado ao lado da atividade. Portanto, não perca o prazo limite para entrega. Atividades entregues fora do prazo não serão aceitas!

Recados Importantes


20/02 ATENÇÃO: Uma avaliação só pode ser recuperada somente se existir justificativa reconhecida pela coordenação. Desse modo, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.

21/02 Uso da Wiki: A partir dessa data,todo o repositório de material de apoio e referências de nossas aulas passam a usar a Wiki de tele. Para interação fora da sala de aula, acessem nosso grupo do facebook. Os planos de uso do Moodle que eu comentei para voces serão adiados em função do projeto ampliado que o IFSC está construindo para usar esse ambiente.

Resultados das Avaliações

Aluno Lista 1 Lista 2 AE0 A1 RecA1 PI NF conceito
Angelo 65 30 40 75 59 C
Erik 60 65 43 55 47 D
Francin 65 70 V 37 43 80 61 C
Gerson 60 85 V 24 43 85 62 C
Guilherme 80 60 V 53 65 85 75 B
Hyowatha 85
Jeferson 60 85 V 64 85 75 B
Lucas 80 65 V 40 63 65 65 C
Marina 90 60 V 84 75 81 B
Mathias 65 70 V 62 85 74 B
Nicholas 60 38 32 65 48 D
Rafael 30 70 38 53 90 69 C
Ronaldo 30 60 V 13 D
Samuel 30 65 38 67 75 71 B
Sidnei 55 70 V 38 43 90 66 C
Vinicius 60 85 V 53 72 80 76 B
Atividades Extras
  • Lista 1 prazo: 07/05/14 às 18:30Hs. Execução: em dupla. Como: Manuscrita, impressa ou via email
  • Lista 2 prazo: 30/06/14 às 18:30Hs. Execução: em equipe conforme integrantes do PI. Como: Manuscrita, impressa ou via email
  • AE0 - Aplicando VLAN prazo: 21/05/14 às 18:30Hs. Execução: em dupla. Como: Manuscrita, impressa ou via email
  • A1 prevista:02/07/14 às 20:40Hs. Conteúdo: toda a matéria
  • REC A1 prevista:09/07/14 às 20:40Hs. Conteúdo: toda a matéria
  • PI prevista:11/07/14 às 18:30Hs Apresentação da equipe

COMPOSIÇÃO DA NOTA FINAL: NF = 0,48(maior_nota{A1,REC A1}) + 0,32PI + 0,1(média{Lista1;Lista2}) + 0,1(avaliação individual)

ATENÇÃO: A NOTA DE PI É O VALOR FINAL DA MÉDIA ENTRE A NOTA DA EQUIPE E NOTA INDIVIDUAL. DEMAIS RESULTADOS DA RECUPERAÇÃO E NOTAS DA AE, PODEM ME PROCURAR.

Se NF < 6,0 = D --> Reprovado
Se 60 =< NF < 75 = C --> Aprovado
Se 75 =< NF < 90 = B --> Aprovado
Se NF >= 90 = A --> Aprovado


Material de Apoio

Slides utilizados durante algumas aulas
Manuais e outros

Bibliografia

Para pesquisar o acervo das bibliotecas do IFSC:

Curiosidades

Softwares

  • Netkit: possibilita criar experimentos com redes compostas por máquinas virtuais Linux
  • IPKit: um simulador de encaminhamento IP (roda direto dentro do navegador)

Diário de Aulas

Aula 1 - 26/03 - Modelo Básico de Comunicação de Dados

Aula 1 - 26/03 - Modelo Básico de Comunicação de Dados

  • Apresentação da disciplina;
  • Conceitos importantes em comunicação de dados;
  • Componentes de uma infra-estrutura de telecomunicações;
  • Modelo Básico de comunicação de dados.
Aula 2 - 02/04 - Componentes de Redes e Comunicação Serial e Laboratório de comunicação básica entre DTEs

Aula 2 - 02/04 - Componentes de Redes e Comunicação Serial e Laboratório de comunicação básica entre DTEs

  • Arquiteturas Básicas dos Protocolos da camada de enlace:

Protocolos orientados à Byte
Protocolos orientados à Bit

  • Interfaces Digitais - Final dos slides - não será cobrado sobre RS485;
  • Laboratório de comunicação básica entre DTEs
Aula 3 - 09/04 - Modens Analógicos e Digitais e Laboratório de Circuito Básico de Comunicação de Dados

Aula 3 - 09/04 - Modens Analógicos e Digitais e Laboratório de Circuito Básico de Comunicação de Dados

  • Modens Analógicos e Digitais
  • Enlaces de teste e protocolos
  • Laboratório de Circuito Básico de Comunicação de Dados
Aula 4 - 16/04 - Laboratório de Interligação entre LANs com uso de roteadores em modo físico - Configuração dos Roteadores e Introdução A camada de Enlace

Aula 4 - 16/04 - Laboratório de Interligação entre LANs com uso de roteadores em modo físico - Configuração dos Roteadores e Introdução A camada de Enlace

Resumo da aula:

  • Serviços da Camada de enlace
  • Laboratório - Continuação da Interligação entre LANs com uso de roteadores em modo físico

Bibliografia relacionada:

  • Parte III e capítulos 10 e 11 do livro "Comunicação de Dados e Redes de Computadores, 4a ed.", de Behrouz Forouzan
  • Capítulo 3 do livro "Redes de Computadores" de Andrew Tanenbaum.

Fundamentos Teóricos

Enlaces lógicos

Equipamentos de rede se comunicam por meio de enlaces (links). Um enlace é composto por uma parte física, composta pelo meio de transmissão e o hardware necessário para transmitir e receber um sinal que transporta a informação, e uma parte lógica, responsável por empacotar os dados a serem transmitidos. O diagrama abaixo ilustra um enlace entre dois equipamentos, realçando as formas com que a informação é representada durante a transmissão e recepção. Nesse diagrama, a parte lógica está representada no bloco Enlace, e a parte física está no bloco Física; a informação transmitida, representada por Dados, pode ser, por exemplo, um datagrama IP.

Datalink-phy.png

O enlace lógico tem uma dependência total em relação à parte física. Isso quer dizer que o tipo de tecnologia de transmissão existente na parte física traz requisitos para o projeto da parte lógica.

Deste ponto em diante, a parte lógica será chamada simplesmente de Camada de Enlace, e a parte física de Camada Física.

Em nosso estudo vamos investigar enlaces ponto-a-ponto, os quais necessitam de protocolos específicos. Para ficar mais claro o que deve fazer um protocolo de enlace ponto-a-ponto, vamos listar os serviços típicos existentes na camada de enlace.

Serviços da camada de enlace

Data-link.png

Os serviços identificados na figura acima estão descritos a seguir. 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

Protocolos de enlace ponto-a-ponto

Dois protocolos de enlace ponto-a-ponto muito utilizados são:

  • PPP (Point-to-Point Protocol): proposto no início dos anos 90 pelo IETF (ver RFC 1661), e amplamente utilizado desde então. Este protocolo não faz controle de erros nem de fluxo, portanto se quadros sofrerem erros de transmissão serão sumariamente descartados no receptor. Originalmente muito usado em acesso discado, recentemente sua aplicação se concentra em enlaces por linhas dedicadas, enlaces sem-fio 3G, e uma versão modificada para acesso doméstico ADSL (PPPoE). Ver mais detalhes na seção 11.7 do livro Comunicação de Dados e Redes de Computadores, de Behrouz Forouzan.
  • HDLC (High-level Data Link Control): criado nos anos 70, foi largamente utilizado em enlaces ponto-a-ponto, porém atualmente foi substituído pelo PPP na maioria dos cenários em que era usado. Este protocolo faz controle de erros e de fluxo usando um mecanismo ARQ do tipo Go-Back-N (com janela de tamanho 7 ou 127). Ainda se aplica a enlaces ponto-a-ponto em linhas dedicadas, enlaces por satélite e aplicações específicas (ver por exemplo este artigo sobre seu uso missões espaciais em um artigo da Nasa). Ver mais detalhes na seção 11.6 do livro Comunicação de Dados e Redes de Computadores, de Behrouz Forouzan.


Ambos protocolos possuem o mesmo formato de quadro. Na verdade, o PPP copiou o formato de quadro do HDLC, apesar de não utilizar os campos Address e Control. O campo Flag, que tem o valor predefinido , serve para delimitar quadros, assim o receptor sabe quando inicia e termina cada quadro.

Ppp-frame.png
Quadro PPP ou HDLC (tamanho de campos dados em bytes)


Esses protocolos foram criados para uso com comunicação serial síncrona (ver capítulo 4, seção 4.3 do livro Comunicação de Dados e Redes de Computadores, de Behrouz Forouzan). O PPP funciona também com comunicação serial assíncrona.

Agora, usando os conceitos básicos sobre enlaces PPP e HDLC, realize o laboratório a seguir com os seguintes passos:

Para esta atividade será criada uma rede composta por três roteadores Cisco, que estarão interligados como mostrado abaixo:

Rede-modems.png

  1. Criar os circuitos com modems operando a 2 Mbps. Os Modens da DIGITEL modelo DT2048SHDSL devem possuir a seguinte configuração: (chaves em ON)
  • Modens do rack central: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5
  • Modens do rack direito e esquerdo: DIP1-todas; DIP2-7,8; DIP3-todas OFF; DIP4-5
  1. Acesse a interface de gerência (console) do seu roteador. O roteador R2 está no rack esquerdo, o roteador R1 está no rack do centro, e R2 está no rack direito. Para acessar a console, faça o seguinte:
    1. Conecte um cabo serial cross na interface serial RS-232 do seu computador. Conecte esse cabo também na interface console do roteador, que fica no painel traseiro. Como os roteadores estão distantes das bancadas, será necessário usar as tomadas azuis, que conectam as bancadas aos racks.
    2. Execute o programa minicom, que abre um terminal de texto via porta serial. Ele deve ser configurado para se comunicar pela porta serial /dev/ttyS0, com 9600 bps, 8 bits de dados e 1 stop-bit (isso aparece descrito assim: 9600 8N1).
      sudo minicom -s
      
    3. Se o minicom estiver correto, você deverá ver a interface CLI do roteador (Command Line Interface). Caso contrário, confira se o cabo serial está bem encaixado, e se os parâmetros do minicom estão certos.
  2. Configure os roteadores da seguinte forma:
    • R1:
      > enable     (password "a")
      # configure terminal
      (conf)# interface fastethernet 0
      (conf-intf)# ip address 192.168.20.254 255.255.255.0
      (conf-intf)# no shutdown
      (conf-intf)# exit
      (conf)# interface serial 0
      (conf-intf)# encapsulation ppp
      (conf-intf)# ip address 10.1.1.2 255.255.255.252
      (conf-intf)# no shutdown
      (conf-intf)# exit
      (conf)# ip route 0.0.0.0 0.0.0.0 serial 0
      (conf)# exit
       # wr
      
    • R2:
      > enable
      # configure terminal
      (conf)# interface fastethernet 0
      (conf-intf)# ip address 192.168.10.254 255.255.255.0
      (conf-intf)# no shutdown
      (conf-intf)# exit
      (conf)# interface serial 0
      (conf-intf)# encapsulation ppp
      (conf-intf)# ip address 10.1.1.6 255.255.255.252
      (conf-intf)# no shutdown
      (conf-intf)# exit
      (conf)# ip route 0.0.0.0 0.0.0.0 serial 0
      (conf)# exit
       # wr
      
    • R3:
      > enable
      # configure terminal
      (conf)# interface ethernet 0
      (conf-intf)# ip address 192.168.1.231 255.255.255.0
      (conf-intf)# no shutdown
      (conf-intf)# exit
      (conf)# interface serial 0
      (conf-intf)# encapsulation ppp
      (conf-intf)# ip address 10.1.1.5 255.255.255.252
      (conf-intf)# no shutdown
      (conf-intf)# exit
      (conf)# interface serial 1
      (conf-intf)# encapsulation ppp
      (conf-intf)# ip address 10.1.1.1 255.255.255.252
      (conf-intf)# no shutdown
      (conf-intf)# exit
      (conf)# ip route 0.0.0.0 0.0.0.0 192.168.1.1
      (conf)# exit
       # wr
      
  1. Para conferir as configurações das interfaces, use o comando show interface (detalhado) ou show ip interface brief (resumidos configuração e status):
# show interface serial 0
Aula 5 - 23/04 - Laboratório de Interligação entre LANs com uso de roteadores em modo físico - Configuração final da Rede - Uso do NETKIT

Aula 5 - 23/04 - Laboratório de Interligação entre LANs com uso de roteadores em modo físico - Configuração final da Rede - Uso do NETKIT

Configuração final da rede

Para finalizar o laboratório da aula anterior, vamos analisar a conectividade de todas as sub redes, incluindo o acesso à internet.

  • Roteiro
  1. Assim que os enlaces forem estabelecidos (interfaces e protocolos dos 3 roteadores em UP), o que pode ser conferido com o comando show interface aplicado às interaces seriais, conclua a configuração da rede (rotas nos pcs e roteadores). Ela deve ser configurada de forma que um computador possa se comunicar com qualquer outro computador da outra rede, e também acessar a Internet. Para isso, use os comandos nos PCs como:
    • sudo ifconfg eth0 x.x.x.x netmask m.m.m.m up - para atribuir outro endereço na placa de rede;
    • sudo route add default gw x.x.x.x - para atribuir um novo gateway para a placa de rede;
    • sudo route add -net x.x.x.x netmask m.m.m.m eth0 - para associar uma nova rede a interface eth0;
    • use a opção del no lugar de add para apagar configurações correspondentes;
    • route -n - para ver a tabela atual de roteamento;
    E monte a tabela de roteamento com o comando (conf)# ip route x.x.x.x m.m.m.m y.y.y.y onde x é o endereço de rede com mask m a ser alcançado e y é o próximo salto (endereço da interface do próximo roteador). O y também pode ser o nome da interface.
  2. Solução para os roteadores:
    R1:
      > enable     (password "a")
      # configure terminal
      (conf)# ip route 192.168.20.0 255.255.255.0 fastethernet 0
      (conf)# ip route 192.168.10.0 255.255.255.0 10.1.1.1
      # wr
    
    R2:
      > enable     (password "a")
      # configure terminal
      (conf)# ip route 192.168.10.0 255.255.255.0 fastethernet 0
      (conf)# ip route 192.168.20.0 255.255.255.0 10.1.1.5
      # wr
    
    R3:
      > enable     (password "a")
      # configure terminal <
      (conf)# ip route 192.168.10.0 255.255.255.0 10.1.1.6
      (conf)# ip route 192.168.20.0 255.255.255.0 10.1.1.2
      (conf)# ip route 192.168.1.0 255.255.255.0 ethernet 0
      # wr
    
  3. Para o PC do professor
      $ sudo route add -net 192.168.10.0 netmask 255.255.255.0 eth0 
      $ sudo route add -net 192.168.20.0 netmask 255.255.255.0 eth0
    
  4. Para os PCs das subredes direita e esquerda
      $ sudo ifconfg eth0 192.168.x.y netmask 255.255.255.0 up  onde x={10,20}; y={1,2,3,4}
      $ sudo route add default gw 192.168.x.254 onde x={10,20}
    
  5. Verificar e anotar todas as configurações dos componentes de redes, modens, cabos, adaptadores, manobras dos cabos, etc...
  6. Acessar as redes mutuamente qualquer computador de um subrede deve acessar qualquer outro da outra subrede;
  7. Acessar a internet em todos os PCs;
  8. Teste a vazão pelos enlaces ponto-a-ponto. Em algum computador da subrede esquerda execute:
    netperf -f k -H 192.168.1.1
    
    Realize pelo menos três medidas para cada teste e use a média desses valores como resultado final;
  9. Faça isso também usando um computador da subrede da direita e depois entre computadores das subredes direta e esquerda.
  10. Excute o netperf entre computadores da mesma subrede, anote os valores e compare com o anterior que atravessa a rede até atingir a rede 192.168.1.1.
  11. É possível usar o protocolo HDLC ao invés do PPP, bastando nos roteadores substituir o comando encapsulation ppp por encapsulation hdlc.

O uso do NETKIT

A partir de hoje iremos usar o Netkit para simular vários experimentos sem a necessidade de recorrer a complicadas instalações físicas que envolvem muitos componentes de rede e consequentemente muitos pontos de prováveis problemas de funcionamento. Vá até o link Netkit e faça uma leitura até o item 4.1.5 para entender como se utiliza esta poderosa ferramenta. Após isso faça os experimentos seguintes.

LAN simples

Uma LAN com quatro computadores (pc1, pc2, pc3, pc4). Os computadores virtuais têm IPs 192.168.0.X, sendo X o número computador (ex: pc1 tem IP 192.168.0.1). Use ping para fazer testes de comunicação. Veja o arquivo Lab.conf (configuração da rede). A rede criada nesse experimento está mostrada abaixo:

Exemplo-Lan1-netkit.png

Ao executar esse experimento quatro abas dos computadores virtuais surgirão (um para cada pc virtual). Realize um ping entre os pcs para constatar a operação da LAN.

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. Analise o arquivo Lab.conf. A rede do experimento está mostrada abaixo:

Exemplo-Bridge-netkit.png

LAN com 2 switches

Uma LAN com 6 computadores (pc1 a pc6) interligados por dois switches (switch1 e switch2). Ambos switches são implementados por computadores com Linux com 4 portas ethernet. Observe os valores de tempo de teste dos pings entre pcs de um mesmo switch e entre os dois switches. Compare com a LAN simples (com hub). A rede do experimento está mostrada abaixo:

Exemplo-lan2.png

Uplink para a rede real

O Netkit possibilita que se criem links para a rede real, e com isto as máquinas virtuais podem acessar a rede externa e mesmo a Internet. O link para a rede real funciona como um enlace ponto-a-ponto ethernet entre uma máquina virtual e a máquina real (o sistema hospedeiro), como pode ser visto neste exemplo:

Netkit-uplink.png

A criação do link para rede externa deve ser feita com o link especial uplink. Ele deve ter um endereço IP que será usado somente para criar o link entre a máquina virtual e o sistema hospedeiro. O IP no sistema hospedeiro é sempre o último endereço possível dentro da subrede especificada (no exemplo, seria o IP 10.0.0.2).

pc2[eth1]=uplink:ip=10.0.0.1/30

Se outras máquinas virtuais precisarem acessar a rede externa, devem ter rotas configuradas para usarem o gateway onde foi feito o uplink. Além disso, será necessário ativar o NAT nesse gateway. O NAT pode ser ativado em máquinas virtuais do tipo gateway. Em sua configuração deve-se informar qual a interface de saída onde será feito o NAT:

pc2[type]=gateway

pc2[nat]=eth1

Assim, todos datagramas que sairem pela interface eth1 do gateway pc2 terão seus endereços IP de origem substituídos pelo endereço IP dessa interface.

Por fim, a criaçao do uplink implica executar alguns comandos como root no sistema hospedeiro. Assim, ao ativar a rede o Netkit irá usar o sudo para executar esses comandos. Por isso é possível que a sua senha seja solicitada durante a inicialização da rede virtual.

Uplink em modo bridge

Às vezes uma interface de uma máquina virtual precisa ser exposta na rede real, como se ela pertencesse ao sistema hospedeiro. Neste caso, deve-se criar uma bridge entre a interface da máquina virtual e uma interface real do sistema hospedeiro (de forma semelhante ao que faz o Virtualbox e outros tipos de máquinas virtuais). Uma bridge é um mecanismo existente no Linux para interligar interfaces ethernet em nível de enlace, como se elas formassem um switch. O procedimento para criar uma bridge integrada a uma interface do tipo uplink do Netkit é um tanto trabalhoso, e por isso esse processo foi automatizado.

A criação de um uplink em modo bridge deve ser feita usando o parâmetro bridge ao se declarar uma interface de rede, como mostrado abaixo:

pc[eth0]=uplink:bridge=eth0:ip=192.168.1.100/24

Neste exemplo, será criada uma bridge entre a interface eth0 da máquina virtual pc e a interface eth0 do sistema hospedeiro. Como com isso a interface da máquina virtual estará exposta na rede real, seu endereço IP pode pertencer à subrede da rede real. Se esse endereço IP for de alguma outra subrede, a máquina virtual não conseguirá se comunicar com as máquinas reais, tampouco acessar a Internet. Mas isso pode ser desejável se a intenção for interligar redes virtuais que estejam sendo executadas em diferentes computadores.

Final das atividades da aula de hoje


Atividade para casa: prazo: 30/04/14 às 18:30Hs. Execução: em dupla. Como: Manuscrita, impressa ou via email

  1. Implemente a rede "Laboratório de Interligação entre LANs com uso de roteadores em modo físico" iniciada na aula 4 e finalizada hoje usando a ferramenta Netkit. Voce "só" precisa enviar o arquivo lab.conf para o professor;
  2. Redesenhe a rede destacando todos os componentes de rede ativos e passivos utilizados (cabos, adaptadores, switches, etc) conforme voce anotou durante o roteiro nas aulas 4 e 5.
Aula 6 - 30/04 - Comutação de Circuitos Virtuais

Aula 6 - 30/04 - Comutação de Circuitos Virtuais

Conteúdos Relacionados com:

  • Capítulo 6 e 18 do livro "Comunicação de Dados e Redes de Computadores", de Berhouz Forouzan
  • Capítulo 2 do livro "Redes de Computadores", de Andrew Tanenbaum
  • Slides sobre multiplexadores Aulas 3 e 4 (a partir do item "Redes de Telecomunicações")

Distinção entre WAN, MAN e LAN

  • "Backbones" da Internet Brasileira:


Algumas redes WAN:

Uma rede MAN MetroEthernet em Florianópolis.

Man-metro.png


Ferramenta de apoio para configuração de redes: O IPKIT

Como vimos na aula anterior, o Netkit é uma ótima opção para complementar o estudo. Ele funciona como um laboratório de redes, onde se pode criar redes como aquelas que exemplificamos em sala de aula ou mesmo inventar novas redes. Seu uso se destina a fixar conceitos, para que o eventual uso e configuração dos equipamentos reais seja facilitado.

Além do Netkit, o seguinte simulador de roteamento IP, que roda dentro do próprio navegador, pode ajudar a exercitar a divisão de sub redes e a criação de rotas estáticas.

Exercícios

1. Usando o Netkit crie as seguintes redes. Não esqueça de definir as rotas estáticas.

Rede1-1.png

Arquivo do experimento
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic
r1[type]=gateway
r2[type]=gateway

pc1[eth0]=link0:ip=192.168.0.1/24
pc2[eth0]=link1:ip=192.168.1.2/24
pc3[eth0]=link2:ip=192.168.2.3/24

r1[eth0]=link0:ip=192.168.0.254/24
r1[eth1]=link1:ip=192.168.1.254/24

r2[eth0]=link0:ip=192.168.0.253/24
r2[eth1]=link2:ip=192.168.2.254/24

pc1[default_gateway]=192.168.0.254
pc2[default_gateway]=192.168.1.254
pc3[default_gateway]=192.168.2.254

r1[route]=192.168.2.0/24:gateway=192.168.0.253
r2[route]=192.168.1.0/24:gateway=192.168.0.254

Rco2-Rede-intro2.png

Arquivo do experimento
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic
pc4[type]=generic
r1[type]=gateway
r2[type]=gateway
r3[type]=gateway
r4[type]=gateway

pc1[eth0]=lan1:ip=192.168.1.1/24
pc2[eth0]=lan2:ip=192.168.2.1/24
pc3[eth0]=lan3:ip=192.168.3.1/24
pc4[eth0]=lan4:ip=192.168.4.1/24

r1[eth0]=lan1:ip=192.168.1.254/24
r1[eth1]=lan2:ip=192.168.2.254/24

r2[eth0]=lan2:ip=192.168.2.254/24
r2[eth1]=lan3:ip=192.168.3.254/24

r3[eth0]=lan1:ip=192.168.1.254/24
r3[eth1]=lan4:ip=192.168.4.254/24

r4[eth0]=lan3:ip=192.168.3.254/24
r4[eth1]=lan4:ip=192.168.4.254/24


Rco2-Rede-intro3.png

Arquivo do experimento
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic
pc4[type]=generic
r1[type]=gateway
r2[type]=gateway

pc1[eth0]=lan1:ip=10.0.1.1/26
pc2[eth0]=lan2:ip=192.168.1.1/24
pc3[eth0]=lan3:ip=192.168.2.129/26
pc4[eth0]=lan4:ip=192.168.2.193/26

r1[eth0]=lan1:ip=10.0.1.62/26
r1[eth1]=lan2:ip=192.168.1.254/24

r2[eth0]=lan2:ip=192.168.1.253/24
r2[eth1]=lan3:ip=192.168.2.190/26
r2[eth2]=lan4:ip=192.168.2.254/26

2. Teste a comunicação entre os computadores e roteadores usando o comando ping. Use também o tcpdump ou wireshark para monitorar as interfaces de rede.


Aula 7 - 07/05 - Redes Locais e Arquitetura IEEE802

Aula 7 - 07/05 - Redes Locais e Arquitetura IEEE 802

  • Bibliografia Associada:
    • Capítulos 12, 13 e 15 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan.
    • Capítulo 5 do livro "Redes de Computadores e a Internet", de James Kurose.
    • Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum.

Redes Locais e o Acesso ao Meio

Veja abaixo o desenho usado por Bob Metcalfe, um dos criadores da Ethernet, para apresentação em uma conferência em 1976.

Ethernet.png

Até hoje esses conceitos se mantiveram. Atualmente temos os seguintes elementos em uma rede Ethernet:

  • Estações: equipamentos que se comunicam pela rede. Ex: computadores e roteadores.
  • Interface de rede (NIC): dispositivo embutido em cada estação com a finalidade de prover o acesso à rede. Implementa as camadas PHY e MAC.
  • Meio de transmissão: representado pelos cabos por onde os quadros ethernet são transmitidos. Esses cabos são conectados às interfaces de rede das estações.
  • Switch: equipamento de interconexão usado para interligar as estações. Cada estação é conectada a um switch por meio de um cabo. Um switch usualmente possui múltiplas interfaces de rede (12, 24 ou mais). Uma rede com switches apresenta uma topologia física em estrela.


Lan2-2011-1.png
Uma LAN com switches

... mas no início redes Ethernet não eram assim ! Leia o material de referência para ver como eram essas redes num passado não muito distante.


Arq-ieee.png

Protocolo de acesso ao meio (MAC)

Parte da camada de enlace na arquitetura IEEE 802, tem papel fundamental na comunicação entre estações. O MAC é responsável por:

  • Definir um formato de quadro onde deve ser encapsulada uma PDU de um protocolo de camada superior.


Quadro-ethernet.png
Quadro ethernet


  • Endereçar as estações, já que o meio de transmissão é multiponto (ver campos Endereço Destino (destination address) e Endereço de origem (source address) no quadro Ethenet).
  • Acessar o meio para efetuar a transmissão de quadros, resolvendo conflitos de acesso quando necessário. Um conflito de acesso (chamado de colisão) pode ocorrer em alguns casos quando mais de uma estação tenta transmitir ao mesmo tempo.


Csmacd-fluxograma.jpg
Fluxograma para o acesso ao meio com CSMA/CD.


O acesso ao meio com CSMA/CD é probabilístico: uma estação verifica se o meio está está livre antes de iniciar uma transmissão, mas isso não impede que ocorra uma colisão (apenas reduz sua chance). Se acontecer uma colisão, cada estação envolvida usa esperas de duração aleatória para desempate, chamadas de backoff. A ideia é que as estações sorteiem valores de espera diferentes, e assim a que tiver escolhido um valor menor consiga transmitir seu quadro. Veja o fluxograma acima para entender como isso é feito. As colisões e esperas (backoffs) impedem que esse protocolo de acesso ao meio aproveite totalmente a capacidade do meio de transmissão.

No entanto, nas gerações atuais do padrão IEEE 802.3 (Gigabit Ethernet e posteriores) o CSMA/CD não é mais utilizado. Nessas atualizações do padrão, o modo de comunicação é full-duplex (nas versões anteriores, que operavam a 10 e 100 Mbps, há a possibilidade de ser half ou full-duplex). Se as comunicações são full-duplex, então conceitualmente não existem colisões. Isso se deve ao fato de que nessas novas versões cada estação possui uma via exclusiva para transmitir e outra para receber, portanto não existe mais um meio compartilhado.

Utilização do meio de transmissão em uma rede local com MAC do tipo CSMA/CD

Nesta seção mostra-se como estimar o desempenho do CSMA/CD por meio de experimentos para medir a utilização máxima do meio. Esses experimentos podem ser feitos usando uma rede real, com computadores interligados por hubs, ou com um simulador. Em ambos os casos deve-se fazer com que vários computadores gerem tráfego intenso na rede, e calcular ao final a utilização do meio da seguinte forma:

O total de quadros recebidos pode ser obtido em qualquer um dos computadores.

Experiência com uma rede real

Para fazer com uma rede real:

Resultados:

64 53046660
128 61992856
256 67413192
512 70684436
756 71989464
1024 77967480
1500 73797088

Com esses dados deve-se plotar um gráfico da quantidade de bytes recebidos X tamanho dos quadros. Na tabela acima, os tamanhos de quadros estão na 1a coluna, e a quantidade de bytes recebidos está na 2a coluna.

Csma-cd.png


Desempenho do MAC CSMA/CD (Carrier Sense Multiple Access/Collision Detection): o gráfico acima mostra o resultado de um experimento feito em laboratório com 6 computadores transmitindo quadros intensamente e simultaneamente para um único computador. A cada transmissão simultânea variou-se o tamanho dos quadros transmitidos (mostrado no eixo X), e anotou-se quantos bytes foram recebidos no computador receptor (eixo Y). Os computadores foram interligados por um hub.

Experiência com uma rede simulada

Para fazer a experiência pode-se usar também o simulador Omnet++ (veja em: Instale o Omnet++ 4)

O gráfico abaixo foi obtido com uma simulação via Omnet++:

Csma-perf-sim.png

As simulações tiveram os seguintes parâmetros:

  • Quadros de 256, 512 e 1480 bytes
  • 2 a 45 estações
  • Geração de tráfego por estação com intervalos entre quadros dados por uma distribuição exponencial com média 15*tamanho_quadro_em_bits*0.11us (0.11us é o tempo aproximado de um bit)
Análise de desempenho do 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 aproximada de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.

  • Utilização do meio:

  • B: taxa de bits nominal
  • L: comprimento do meio de transmissão
  • c: velocidade de propagação do sinal
  • F: comprimento do quadro

Csma-perf.png

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).

Para fins de comparação, veja os resultados obtidos com as redes simuladas anteriormente.


A arquitetura IEEE802

  • Arquitetura IEEE 802 e Redes locais IEEE 802.3 (Ethernet): slides.

Tecnologias de LAN switches

Switches store-and-forward X cut-through

Algumas animações mostrando o funcionamento de switches store-and-forward e cut-through:

Laboratório sobre LANs


Aula 8 - 14/05 - Segmentação de Redes e VLANs

Aula 8 - 14/05 - Segmentação de Redes e VLANs

Segmentando redes

A equipe que administra a rede do campus São José estudou uma reestruturação da sua rede. Como diferentes setores e públicos a utilizam, e para diferentes propósitos, concluiu-se que seria apropriado segmentá-la em algumas subredes. Isso possibilitou facilitar o controle de quem usa a rede, além do policiamento do tráfego. Para isso, a subrede geral do campus precisou ser segmentada inicialmente em cinco novas subredes, denominadas:

Segmento Descrição Subrede IP
Pedagogica Pontos das salas de aula e laboratórios de informática 172.18.32.0/20
Administrativa Pontos de setores administrativos 172.18.16.0/20
DMZ Servidores acessíveis de fora da escola (ex: Wiki, WWW) 200.135.37.64/26
BD Servidores que hospedam bancos de dados (ex: LDAP, MySQL) 172.18.240.0/24
LAN Demais pontos de rede 172.18.0.0/20


A figura abaixo mostra a estrutura proposta para a rede do campus São José, composta pelas cinco novas subredes e as subredes dos laboratórios de Redes 1 e Redes 2. Como se pode observar, o roteador/firewall Cisco ASA 5510 se torna um nó central da rede, pois interliga todas suas subredes (com exceção dos laboratórios de Redes 1 e Redes 2).


Nova-rede-ifsc-sj.png


Existe mais de uma forma de implantar uma estrutura como essa, as quais serão apresentadas nas próximas subseções.

Segmentação física

A segmentação física é uma solução aparentemente simples e direta. Cada subrede deve ser composta de uma estrutura exclusiva, contendo seus switches e cabeamentos. No entanto, para adotar esse tipo de segmentação, algumas modificações precisarão ser feitas na infraestrutura de rede existente. Observe a estrutura física da rede do campus:

Rede-ifsc-sj.png


O que seria necessário fazer para implantar uma segmentação física ?

Segmentação com VLANs

Se a reestruturação pudesse ser efetuada com mínimas modificações na estrutura física (incluindo cabeamento), a implantação da nova rede seria mais rápida e menos custosa. Para isso ser possível, seria necessário que a infraestrutura de rede existente tivesse a capacidade de agrupar portas de switches, separando-as em segmentos lógicos. Quer dizer, deveria ser possível criar redes locais virtuais, como mostrado na seguinte figura:

Vlans.png

No exemplo acima, três redes locais virtuais (VLAN) foram implantadas nos switches. Cada rede local virtual é composta por um certo número de computadores, que podem estar conectados a diferentes switches. Assim, uma rede local pode ter uma estrutura lógica diferente da estrutura física (a forma como seus computadores estão fisicamente interligados). Uma facilidade como essa funcionaria, de certa forma, como um patch panel virtual, que seria implementado diretamente nos switches.

Redes locais virtuais são técnicas para implantar duas ou mais redes locais
com topologias arbitrárias, usando como base uma infraestrutura de rede local física.
Isso é semelhante a máquinas virtuais, em que se criam computadores virtuais
sobre um computador real.

Exemplo: a configuração do Netkit mostrada abaixo cria uma pequena rede composta por um switch e quatro computadores. Além disso, foram definidas duas VLANs (VLAN 5 e VLAN 10). Com isso, os computadores pc1 e pc4 pertencem a VLAN 5, e os computadores pc2 e pc3 estão na VLAN 10. Execute a rede abaixo e teste a comunicação entre os computadores - quais computadores conseguem se comunicar ?.

sw[type]=switch
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic
pc4[type]=generic

# As portas do switch
sw[eth0]=port0:vlan_untagged=5
sw[eth1]=port1:vlan_untagged=10
sw[eth2]=port2:vlan_untagged=10
sw[eth3]=port3:vlan_untagged=5

# Ligando os computadores ao switch
pc1[eth0]=port0:ip=192.168.0.1/24
pc2[eth0]=port1:ip=192.168.0.2/24
pc3[eth0]=port2:ip=192.168.0.3/24
pc4[eth0]=port3:ip=192.168.0.4/24
Vlans-ex1.png

Padrão IEEE 802.1q

Os primeiros switches com suporte a VLANs as implementavam de forma legada (i.e. não seguiam um padrão da indústria). Isso impedia que houvesse interoperabilidade entre equipamentos de diferentes fabricantes. Logo a IEEE formou um grupo de trabalho para propor mecanismos padronizados para implantar VLANs, dando origem ao padrão IEEE 802.1q. Os fabricantes de equipamentos de rede o adataram largamente, suplantando outras tecnologias legadas (ex: ISL e VTP da Cisco). Com isso, VLANs IEEE 802.1q podem ser criadas usando switches de fabricantes diferentes.

Atualmente, a implantação de VLANs depende de switches com suporte ao padrão IEEE 802.1q. Assim, verifique quais dos switches do laboratório possuem suporte a VLAN:

Uma VLAN é identificada por um número, chamado VID (VLAN Identifier), sendo que a VLAN com VID 1 é considerada a VLAN default (configuração de fábrica). Em um switch com suporte a VLAN IEEE 802.1q, cada porta possui um (ou mais ...) VID, o que define a que VLAN pertence. Assim, para criar uma VLAN, devem-se modificar os VID das portas de switches que dela farão parte. Por exemplo, em uma pequena rede com duas VLANs as portas dos switches podem estar configuradas da seguinte forma:


Bridge3.png
switch1[type]=switch
switch2[type]=switch
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic
pc4[type]=gateway
pc5[type]=generic
pc6[type]=generic

pc1[default_gateway]=192.168.0.4
pc2[default_gateway]=192.168.0.4
pc3[default_gateway]=192.168.1.4
pc5[default_gateway]=192.168.1.4
pc6[default_gateway]=192.168.0.4

switch1[eth0]=sw1-port0:vlan_untagged=5
switch1[eth1]=sw1-port1:vlan_untagged=5
switch1[eth2]=sw1-port2:vlan_untagged=10
switch1[eth3]=link-sw1-sw2:vlan_tagged=5,10

switch2[eth0]=sw2-port0:vlan_tagged=5,10
switch2[eth1]=sw2-port1:vlan_untagged=10
switch2[eth2]=sw2-port2:vlan_untagged=5
switch2[eth3]=link-sw1-sw2:vlan_tagged=5,10

pc1[eth0]=sw1-port0:ip=192.168.0.1/24
pc2[eth0]=sw1-port1:ip=192.168.0.2/24
pc3[eth0]=sw1-port2:ip=192.168.1.3/24
pc4[eth0]=sw2-port0:vlans_tagged=(5,ip=192.168.0.4/24),(10,ip=192.168.1.4/24)
pc5[eth0]=sw2-port1:ip=192.168.1.5/24
pc6[eth0]=sw2-port2:ip=192.168.0.6/24

Além do VID, a configuração da porta de um switch deve especificar o modo de operação da VLAN:

  • tagged: cada quadro transmitido ou recebido por essa porta deve conter o número da VLAN a que pertence. Esse modo é usado normalmente em portas que interligam switches.
  • untagged: quadros que entram e saem pela porta não possuem informação sobre a VLAN a que pertencem. Usado normalmente para conectar computadores e servidores a switches.


Esses modos tagged e untagged implicam haver uma forma de um quadro Ethernet informar a que VLAN pertence. Isso é usado para restringir a propagação de quadros, fazendo com que sejam recebidos e transmitidos somente por portas de switches que fazem parte de suas VLANs.


O padrão IEEE 802.1q define, entre outras coisas, uma extensão ao quadro MAC para identificar a que VLAN este pertence. Essa extensão, denominada tag (etiqueta) e mostrada na figura abaixo, compõe-se de 4 bytes situados entre os campos de endereço de origem e Type. O identificador de VLAN (VID) ocupa 12 bits, o que possibilita portanto 4096 diferentes VLANs.


Quadro-8021q.png
Quadro ethernet com a TAG IEEE 802.1q


A tag de VLAN, inserida em quadros Ethernet, está diretamente relacionada com os modos tagged e untagged de portas de switches. Portas em modo tagged transmitem e recebem quadros que possuem tag, e portas em modo untagged recebem e transmitem quadros que não possuem tag. Isso foi pensado para tornar a implantação de VLANs transparente para os usuários finais, pois seus computadores não precisarão saber que existem VLANs (i.e. não precisarão interpretar tags). Por isso equipamentos que não interpretam tags são denominados VLAN-unaware (desconhecem VLAN), e equipamentos que recebem e transmitem quadros com tag são referidos como VLAN-aware (conhecem VLAN).


Exemplo: simulador de switch com VLAN:
Esta animação possibilita simular a configuração de VLANs em um switch, e efetuar testes de transmissão. Experimente criar diferentes VLANs e observar o efeito em transmissões unicast e broadcast (clique na figura para acessar o simulador).

Um simulador de VLANs

AE0 - Aplicando VLAN

Atividade extra: prazo: 21/05/14 às 18:30Hs. Execução: em dupla. Como: Manuscrita, impressa ou via email

A nova rede do IFSC-SJ

Voltando à segmentação da rede do campus São José, vamos implantar a nova rede usando VLANs.


Ifsc-sj-simples.png Ier-seta.png Nova-rede-ifsc-sj.png

Primeiro isso será realizado usando o Netkit, e em seguida será implantado no laboratório. Para simplificar a rede, vamos assumir que a topologia física está implantada como mostrado na figura acima, à esquerda.

Configuração da rede do IFSC-SJ
# switches
sw-rnp[type]=switch
sw-redes1[type]=switch
sw-redes2[type]=switch
sw-coinf[type]=switch
sw-labdes[type]=switch
 
# gateways
asa5510[type]=gateway
gw-redes1[type]=gateway
gw-redes2[type]=gateway
 
# computadores e servidores
bd[type]=generic
dmz1[type]=generic
dmz2[type]=generic
adm1[type]=generic
adm2[type]=generic
adm3[type]=generic
pedag1[type]=generic
pedag2[type]=generic
pc-redes1[type]=generic
pc-redes2[type]=generic
 
# Portas dos switches
sw-rnp[eth0]=rnp-port0
sw-rnp[eth1]=rnp-port1
sw-rnp[eth2]=rnp-port2
sw-rnp[eth3]=rnp-port3
sw-rnp[eth4]=rnp-port4
sw-rnp[eth5]=rnp-port5
 
sw-redes1[eth0]=redes1-port0
sw-redes1[eth1]=redes1-port1
 
sw-redes2[eth0]=redes2-port0
sw-redes2[eth1]=redes2-port1
 
sw-coinf[eth0]=coinf-port0
sw-coinf[eth1]=coinf-port1
sw-coinf[eth2]=coinf-port2
# Ligações entre switches
sw-coinf[eth3]=rnp-port5
sw-coinf[eth4]=labdes-port3
 
sw-labdes[eth0]=labdes-port0
sw-labdes[eth1]=labdes-port1
sw-labdes[eth2]=labdes-port2
sw-labdes[eth3]=labdes-port3
 
# Ligações dos computadores aos switches
asa5510[eth0]=rnp-port0:ip=172.18.0.254/16
bd[eth0]=rnp-port1:ip=172.18.0.10/16
dmz1[eth0]=rnp-port2:ip=172.18.0.11/16
adm1[eth0]=rnp-port3:ip=dhcp
gw-redes1[eth1]=rnp-port4:ip=172.18.0.100/16
 
pc-redes1[eth0]=redes1-port1:ip=192.168.1.2/24
gw-redes1[eth0]=redes1-port0:ip=192.168.1.1/24
 
pc-redes2[eth0]=redes2-port1:ip=192.168.2.2/24
gw-redes2[eth0]=redes2-port0:ip=192.168.2.1/24
 
dmz2[eth0]=coinf-port0:ip=172.18.0.13/16
adm2[eth0]=coinf-port1:ip=dhcp
pedag1[eth0]=coinf-port2:ip=dhcp
 
adm3[eth0]=labdes-port0:ip=dhcp
pedag2[eth0]=labdes-port1:ip=dhcp
gw-redes2[eth1]=labdes-port2:ip=172.18.0.101/16
 
# ASA 5510 é servidor dhcp da LAN ...
asa5510[dhcp]=eth0:range=172.18.100.1,172.18.100.250:gateway=172.18.0.254
 
# Gateways default dos computadores que usam IP fixo
gw-redes1[default_gateway]=172.18.0.254
gw-redes2[default_gateway]=172.18.0.254
pc-redes1[default_gateway]=192.168.1.1
pc-redes2[default_gateway]=192.168.2.1
bd[default_gateway]=172.18.0.254
dmz1[default_gateway]=172.18.0.254
dmz2[default_gateway]=172.18.0.254
Aula 9 - 21/05 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d

Aula 9 - 21/05 - Protegendo a rede com Spannig Tree Protocol (STP) - IEEE802.3d

  • Início das Atividades: Discussão sobre a solução da AE0 da aula anterior

Solução:

sw1[type]=switch
sw2[type]=switch
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic
pc4[type]=generic
pc5[type]=generic
pc6[type]=generic
 
sw1[eth0]=sw1-port0:vlan_untagged=1
sw1[eth1]=sw1-port1:vlan_untagged=3
sw1[eth2]=sw1-port2:vlan_untagged=2
sw1[eth3]=link-sw1-sw2:vlan_tagged=1,2,3
 
sw2[eth0]=sw2-port0:vlan_tagged=1,2,3
sw2[eth1]=sw2-port1:vlan_untagged=3
sw2[eth2]=sw2-port2:vlan_untagged=1
sw2[eth3]=link-sw1-sw2:vlan_tagged=1,2,3
 
pc1[eth0]=sw1-port0:ip=192.168.1.1/24
pc2[eth0]=sw1-port1:ip=192.168.3.2/24
pc6[eth0]=sw1-port2:ip=192.168.2.6/24

pc3[eth0]=sw2-port0:vlan_tagged=(1,ip=192.168.1.3/24),(2,ip=192.168.2.3/24),(3,ip=192.168.3.3/24)
pc4[eth0]=sw2-port1:ip=192.168.3.4/24
pc5[eth0]=sw2-port2:ip=192.168.1.5/24

Tecnologias de LAN switches

Switches store-and-forward X cut-through

  • Leia este bom texto sobre estruturas internas de switches.

Algumas animações mostrando o funcionamento de switches store-and-forward e cut-through:

O problema dos ciclos (caminhos fechados) em uma rede local ethernet

Bibliografia associada:

  • Capítulo 16 do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Behrouz Forouzan.
  • Capítulo 5 do livro "Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição, de James Kurose.
  • Capítulo 4 do livro "Redes de Computadores, 4a ed.", de Andrew Tanenbaum.

Outros materiais:


Após implantar a nova rede do IF-SC SJ, a equipe da gerência de rede passou a acompanhar seu uso pela comunidade escolar. E um certo dia um aluno acidentalmente pegou um cabo e ligou em duas tomadas de rede em um laboratório (que está na Subrede Pedagógica). Quer dizer, ele fez algo assim com um dos switches da rede:


Curto-lan.png


Para ver a consequência dessa ação aparentemente inocente, experimente reproduzi-la em uma rede feita com o Netkit:

Stp-ex1.png
pc1[type]=generic
pc2[type]=generic
sw[type]=switch

sw[eth0]=port0
sw[eth1]=port1

pc1[eth0]=port0:ip=192.168.0.1/24
pc2[eth0]=port1:ip=192.168.0.2/24

# ... a barbeiragem do usuário da rede no switch !
sw[eth2]=link-barbeiragem
sw[eth3]=link-barbeiragem


O que ocorreu ao tentar pingar de pc1 para pc2 ?


A interligação acidental de duas portas de um switch cria um ciclo na rede local (loop). Mas isso pode ser feito também de forma intencional, pois em LANs grandes pode ser desejável ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto é algo que pode ocorrer em uma rede local, seja por acidente ou com a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Um caso em que uma rede possui um ciclo intencionalmente colocado pode ser visto na LAN abaixo:

LAN-anel-stp.png

Configuração para o Netkit
sw1[type]=switch
sw2[type]=switch
sw3[type]=switch
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic

# Ativação do STP nos switches
sw1[stp]=on
sw2[stp]=on
sw3[stp]=on

sw1[eth0]=sw1-sw2
sw1[eth1]=sw1-port1
sw1[eth2]=sw1-sw3

sw2[eth0]=sw1-sw2
sw2[eth1]=sw2-port1
sw2[eth2]=sw2-sw3

sw3[eth0]=sw1-sw3
sw3[eth1]=sw3-port1
sw3[eth2]=sw2-sw3

pc1[eth0]=sw1-port1:ip=192.168.0.1/24
pc2[eth0]=sw2-port1:ip=192.168.0.2/24
pc3[eth0]=sw3-port1:ip=192.168.0.3/24

Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa ficaria travada devido a um efeito chamado de tempestade de broadcasts (broadcast storm). Isso acontece porque, ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manualmente tira o sentido de ter tal configuração para tolerância a falhas (e não impede um "acidente" como aquele descrito no início desta secão), por isso foi criado o protocolo STP (Spanning Tree Protocol, definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa.


Switches reais usualmente possuem suporte a STP (Spanning Tree Protocol) para possibilitar haver enlaces redundantes em uma rede local. No Netkit podem-se criar redes em que se usa o STP, que deve ser ativado no switches.


Para criar essa rede no Netkit pode-se usar a seguinte configuração:

sw1[type]=switch
sw2[type]=switch
sw3[type]=switch
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic
 
# Ativação do STP nos switches
sw1[stp]=on:bridge_priority=1024
sw2[stp]=on:bridge_priority=128
sw3[stp]=on:bridge_priority=500

sw1[eth0]=sw1-sw2
sw1[eth1]=sw1-port1
sw1[eth2]=sw1-sw3
 
sw2[eth0]=sw1-sw2
sw2[eth1]=sw2-port1
sw2[eth2]=sw2-sw3
 
sw3[eth0]=sw1-sw3
sw3[eth1]=sw3-port1
sw3[eth2]=sw2-sw3
 
pc1[eth0]=sw1-port1:ip=192.168.0.1/24
pc2[eth0]=sw2-port1:ip=192.168.0.2/24
pc3[eth0]=sw3-port1:ip=192.168.0.3/24

A configuração do STP se faz pelo atributo especial stp a ser especificado para cada switch. A opção on ativa o STP, e bridge_priority define a prioridade do switch no escopo do STP.

Como os switches podem ser configurados com múltiplas vlans, o STP deve ser ativado apropriadamente. Isso significa que cada vlan deve ter o STP rodando de forma independente. A configuração do Netkit para especificar o STP para cada vlan segue abaixo:

sw1[type]=switch

# Ativação do STP nos switches
sw1[stp]=on:bridge_priority=1024:vlan=5
sw1[stp]=on:bridge_priority=512:vlan=10

Nesse exemplo, o switch sw1 tem o STP ativado na vlans 5 e 10. Os parâmetros do STP inclusive podem ser diferentes em cada vlan, já que ele opera em cada uma de forma independente (i.e. o STP em uma vlan não interfere com o STP em outra vlan). Vlans em que o stp não foi explicitamente ativado usarão a configuração default do stp, a qual é definida omitindo-se informação sobre vlan:

# Configuração default do STP em um switch ... vale para todas as vlans em que 
# o stp não foi configurado individualmente.
sw1[stp]=on

# A configuração default pode conter quaisquer opções do stp, menos vlan:
sw2[stp]=on:bridge_priority=2000

Um último detalhe sobre o STP diz respeito ao custo e prioridade de cada porta do switch. No STP usado em switches reais, o custo de uma porta é dado pela sua velocidade. Assim, portas mais velozes têm custo menor que portas mais lentas, como por exemplo portas 1 Gbps comparadas a 100 Mbps. No Netkit não existe essa diferenciação entre as interfaces ethernet por serem emuladas, mas pode-se especificar manualmente o custo de cada interface a ser usado pelo STP. A configuração necessária deve ser colocada em cada porta da seguinte forma:

sw1[type]=switch

# Ativação do STP nos switches
sw1[stp]=on:bridge_priority=1024

sw1[eth0]=port0:stp_cost=10
sw1[eth1]=port1:stp_cost=100

Assim, nesse exemplo a interface eth0 do switch sw1 tem custo STP 10, e a interface eth1 tem custo 100. Os custos de interfaces de acordo com a norma IEEE 802.1d pode ser visto na seguinte tabela:

Stp-custos.png


A lista completa de opções que podem ser usadas na configuração do STP no Netkit segue abaixo:

# STP no switch:
# bridge_priority: prioridade do switch no STP
# hello_time: intervalo entre envios de BPDU
# max_age: tempo máximo que o STP pode ficar sem receber uma atualização de BPDU de outro switch
# forward_delay: atraso para enviar uma BPDU notificando uma mudança de configuração do STP
# on: ativa o STP
# off: inicia com STP desativado

sw1[stp]=on:vlan=10:bridge_priority=100:hello_time=2:max_age=10:forward_delay=1

# Porta do switch: pode ter as opções stp_cost (custo da porta) e stp_prio (prioridade da porta)
sw1[eth0]=port0:stp_cost=10:stp_prio=1


Aula 10 - 28/05 - Controle de Acesso com IEEE 802.1x e trunking IEEE802.1ax e Introdução a Redes sem Fio

Aula 10 - 28/05 - Controle de Acesso com IEEE 802.1x

Fazendo controle de acesso em redes locais

Vamos usar como exemplo o cenário da rede do IFSC-SJ: A gerência de rede concluiu que deve-se controlar os acessos aos pontos da rede da escola. Com isso, somente usuários devidamente autenticados e autorizados poderão se comunicar usando os pontos de rede. A forma com que isso deve ser feito deve impedir inclusive que uma pessoa conecte um laptop a uma tomada de rede, e consiga acessar a rede. Além disso, o acesso pode ser negado ou concedido dependendo do tipo de usuário (aluno, funcionário, professor, visitante) e da localização do ponto de rede. O mecanismo de segurança capaz de fazer isso deve agir portanto diretamente nas portas de switches, habilitando-as ou bloqueando-as dependendo do usuário que tentar usar o equipamento nela conectado.

Padrão IEEE 802.1x


O padrão 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:

Ieee-8021x.png

  • Supplicant: o cliente que deseja se autenticar. Implementado com um software (ex: wpa_supplicant, 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 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.

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.
  • ... e muitos outros !

Controle de acesso IEEE 802.1x

O controle de acesso IEEE 802.1x possibilita liberar ou bloquear portas de switches mediante a identificação de usuários válidos. Para usá-lo no Netkit deve-se fazer o seguinte:

  1. Nos switches ativa-se a autenticação com IEEE 802.1x, fornecendo-se uma lista de usuários e respectivas senhas. Além disso, identificam-se quais portas dos switches que exigirão que usuários se autentiquem (portas autenticadoras).
    sw[type]=switch
    
    # Podem-se definir quantos usuários e senhas forem desejados.
    sw[8021x]=1:users=usuario1/senha1,usuario2/senha2
    
    # A interface eth0 do switch é uma porta autenticadora, mas a interface eth1 não.
    sw[eth0]=port0:8021x_authenticator=1
    sw[eth1]=port1
    
  2. Nos computadores que se conectarão aos switches deve-se informar o usuário e senha para fins de autenticação.
    pc[type]=generic
    
    pc[eth0]=port0:8021x_user=usuario1/senha1:ip=10.0.0.1/24
    

Juntando os dois exemplos acima, pode-se definir uma pequena rede para fins de demonstração do controle de acesso:

sw[type]=switch
pc1[type]=generic
pc2[type]=generic

# Podem-se definir quantos usuários e senhas forem desejados.
sw[8021x]=1:users=usuario1/senha1,usuario2/senha2

# Necessário um endereço IP para fins de gerenciamento do switch
sw[management_ip]=10.0.0.10/24:vlan=1

# A interface eth0 do switch é uma porta autenticadora, mas a interface eth1 não.
sw[eth0]=port0:8021x_authenticator=1
sw[eth1]=port1

pc1[eth0]=port0:8021x_user=usuario1/senha1:ip=10.0.0.1/24
pc2[eth0]=port1:ip=10.0.0.2/24

Ao executar a rede acima, deve-se conseguir fazer um ping entre pc1 e pc2. Se quiser testar com maiores detalhes o controle de acesso e vê-lo em ação, experimente fazer o seguinte:

  1. No pc2 deixe o ping em execução (ping 10.0.0.1)
  2. No pc1 execute o utilitário wpa_cli. Esse programa permite controlar o supplicant, que vem a ser o programa responsável por realizar a autenticação com IEEE 8021x. Ao iniciar o wpa_cli mostra um prompt (>), onde se podem executar comandos de consulta ou modificacão do supplicant.
    1. Execute status, e veja as informações sobre a autenticação mantidas pelo supplicant.
    2. Execute logoff, e em seguida observe como estão as resposta do ping no pc2. As respostas devem etr parado ...
    3. Execute logon, e novamente observe o ping no pc2. Após alguns segundos as respostas devem voltar a ser recebidas.
Definindo um IP de gerenciamento

Um switch pode possuir um endereço IP para fins de gerenciamento. No momento, isso é usado somente para que um switch consiga rodar um servidor Radius e atender pedidos de acesso vindos de outros switches. O IP de gerenciamento precisa estar vinculado a uma das VLANs do switch:

sw[management_ip]=192.168.0.10/24:vlan=5

No exemplo acima, o switch sw possui o IP de gerenciamento 192.168.0.10, que está vinculado a VLAN 5. Apenas um IP por switch hpode ser definido.

Como o tipo switch especializa o tipo generic, é possível definir rotas em um switch que possui um IP de gerenciamento. Isso pode ser feito da mesma forma que em máquinas virtuais genéricas (i.e. usando os atributos default_gateway ou route).

Usando um servidor Radius

Em uma infraestrutura de controle de acesso IEEE 8021.X, usualmente o servidor de autenticação reside em um equipamento em separado. Desta forma, os autenticadores (switches e access points) podem efetuar a autenticação usando uma base de usuários comum. Apesar do padrão IEEE 8021.X não definir como deve ser implementado o servidor de autenticação, os fabricantes de equipamentos adotaram o serviço Radius para assumir esse papel. Com isso, para implantar o servidor de autenticação deve-se instalar um servidor Radius em algum equipamento, e fazer com que os autenticadores o utilizem para para autenticar os acessos.

No Netkit a implantação de um servidor Radius foi simplificada e integrada à configuração do controle de acesso descrita no início desta seção. Por questão de simplicidade, o servidor Radius deve ser implantado em um switch. assim, a configuração de um switch que deve operar como servidor Radius é:

sw2[8021x]=1:users=u1/p1,u2/p2:radius_clients=10.0.0.10,10.0.0.254

O parâmetro users lista os usuários e senhas autenticados pelo Radius, e radius_clients lista os endereços IP dos clientes Radius (que são os demais switches). Em ambos os casos, as informações devem ser escritas como listas separadas por vírgulas.

Os clientes Radius precisam definir que servidor Radius irão utilizar. A configuração de um switch que é cliente Radius poderia ser esta:

sw[8021x]=1:radius_server=10.0.0.5

Note que os clientes Radius devem ser capazes de alcançarem o servidor Radius. Quer dizer, se clientes e servidor Radius estiverem em subredes IP diferentes, devem existir rotas para que eles possam se comunicar.

Um exemplo de uma rede com dois switches, sendo um deles um servidor Radius, está mostrada a seguir:

pc1[type]=generic
pc2[type]=generic
sw[type]=switch
sw2[type]=switch

sw[8021x]=1:radius_server=10.0.0.5
sw2[8021x]=1:users=aluno/teste:radius_clients=10.0.0.10

sw[management_ip]=10.0.0.10/24:vlan=1
sw2[management_ip]=10.0.0.5/24:vlan=1

pc1[eth0]=sw-port0:ip=10.0.0.1/24:8021x_user=aluno/teste
pc2[eth0]=sw-port1:ip=10.0.0.2/24:8021x_user=aluno/teste
sw[eth0]=sw-port0:8021x_authenticator=1
sw[eth1]=sw-port1:8021x_authenticator=1
sw[eth2]=sw-port2

sw2[eth0]=sw-port2
Ex-radius.png

Padrão IEEE802.1ax (anterior IEEE802.1ad) Agregamento de enlaces

Agregação de enlace (bonding ou trunking)

O Linux possui suporte a agregação de enlaces, em que se agrupam interfaces ethernet de forma a parecerem uma única interface (chamado de Linux Channel Bonding). A interface agregada tem prefixo bond, e assim deve ser identificada como bond0, bond1 e assim por diante. Para criar um enlace agregado no Netkit basta declarar em um switch uma interface desse tipo. A sintaxe da declaração é praticamente idêntica a de interfaces ethernet, como se pode ver abaixo:

pc1[type]=generic
pc2[type]=generic
sw1[type]=switch
sw2[type]=switch

pc1[eth0]=sw1-port0:ip=192.168.0.1/24
pc2[eth0]=sw2-port0:ip=192.168.0.2/24

sw1[eth0]=sw1-port0
sw2[eth0]=sw2-port0

# Define em cada switch uma interface bond0 que agrega dois enlaces.
# O enlace agregado deve ser composto por uma ou mais interfaces ethernet.
# O nome do enlace agregado é sw1-sw2 no exemplo.

sw1[bond0]=sw1-sw2:interfaces=eth1,eth2
sw2[bond0]=sw1-sw2:interfaces=eth1,eth2

Nesse exemplo o enlace agregado foi criado entre os switches sw1 e sw2. Como se pode notar, existe uma opção de configuração adicional interfaces, usada para listar as interfaces ethernet a serem agrupadas. Essas interfaces não devem ser declaradas explicitamente. Além disso, não se podem configurar VLANs na interface agregada (bond0 no exemplo). Por fim, mais de um enlace agregado pode ser criado no mesmo switch, bastando identificá-los por interfaces bond diferentes (bond1, bond2, ...).

O exemplo acima cria a seguinte rede:

Bond.png

Cascateamento versus Empilhamento

Os switches ainda possuem uma facilidade em nível físico chamada empilhamento (ou stack) que tem a função de ampliar as capacidades de portas sem comprometer significativamente a latência de pacotes em trânsito (fase forwarding). O mais eficiente, porém com mais custo, é o empilhamento por backplane onde um cabo proprietário de comprimento não maior que 1 metro, é conectado entre portas de entrada e saída específicas para este fim, geralmente na trazeira do switch, formando um anel dos swicthes empilhados. Os switches empilhados se comportam como um só e a gerência deles é muito mais facilitada com um único endereço IP. Já o cascateamento usando portas comuns ou portas específicas de altas taxas (fibra) chamadas UPLINK, mesmo usando o agregamento de link exposto na seção anterior, resolve a questão do congestionamento de toda a transferência de dados oriundas/destinadas aos ramos descendentes destas portas mas torna-se difícil a gerência de cada switch e a latência além de reduzir o desempenho da rede pode impedir até o funcionamento de algorítimos como o STP.


Redes sem Fio

  • Ver transparências
  • Ver capítulo 15 do livro Comunicação de Dados e Redes de Computadores, 3a ed., de Behrouz Forouzan.
  • Ver capítulo 6 do livro Redes de Computadores e a Internet, 3a ed., de James Kurose.
  • Ver capítulo 4 (seção 4.4) do livro Redes de Computadores, 4a ed., de Andrew Tanenbaum.
  • Ver este livro on-line sobre redes IEEE 802.11. (precisa do gnochm ou chmsee para ser lido)

Introdução

Redes sem-fio se tornaram uma tecnologia largamente difundida e de uso corriqueiro, principalmente em sua versão para redes locais. Graças a ela, as pessoas não precisam usar cabos para ter acesso à rede, e podem se comunicar em qualquer localização dentro do alcance da rede sem-fio. Mesmo usuários em movimento podem se manter em comunicação pela rede sem-fio. Essas características atraentes da tecnologia fazem com que ela seja naturalmente desejável nas LANs

A implantação de uma rede sem-fio deve atender alguns requisitos levantados pelo administrador de uma rede, os quais serão discutidos ao longo desta seção. Antes de pensar nos detalhes a serem observados, devem-se conhecer as características de comunicação de dados por um canal sem-fio e os mecanismos inventados para efetuar esse tipo de comunicação.

Alguns usos de redes sem-fio

WLAN-comum.gif
Redes locais sem-fio


Wireless point to point.jpg
Enlaces ponto-a-ponto de média/longa distância


Wlan-train.png
Prover conectividade em ferrovias


Body-network.jpg
Redes de dispositivos acoplados ao corpo de uma pessoa


SensorWebImageForEnewsJuly2.jpg
Redes de sensores


V2v.jpg
Redes entre veículos (experimental)

Aula 11 - 04/06 - O Padrão IEEE 802.11

Aula 11 - 04/06 - O Padrão IEEE 802.11 =

Dentre as várias tecnologias de comunicação sem-fio existentes, o padrão IEEE 802.11 para redes locais tem ampla utilização. Conhecido popularmente como Wi-Fi (um trocadilho com Hi-Fi, uma qualidade atribuída a aparelhos de som e que significa High-Fidelity), está presente praticamente em todos os lugares hoje em dia - desde escolas, empresas, aeroportos, supermercados, restaurantes, cafés e residências, e até mesmo em espaços abertos de cidades (ver Cidades Digitais). Muitos dos problemas existentes nesse tipo de rede (alguns resolvidos e outros não), e características de funcionamento, são comuns a outras tecnologias menos conhecidas, porém também importantes em suas áreas de aplicação. Por isso nosso estudo se concentrará nesse padrão de redes sem-fio, para conhecê-lo com razoável profundidade. Como consequência, além de entender como funciona uma rede IEEE 802.11, os conhecimentos obtidos habilitarão a compreensão de outras tecnologias de redes sem-fio.

  • Apresentaram-se as possíveis formas de organização de uma rede IEEE 802.11:
    • Rede infraestruturada: uso de uma estação central, que intermedia as transmissões das demais estações.

      Infrastructure-bss.png
    • Rede Ad-Hoc: estações se comunicam livremente com suas estações vizinhas.

      Adhoc-bss.png
    • Rede Mesh: estações se comunicam livremente, mesmo que existam múltiplos saltos (multihop).

      Mesh topology.gif

Teste de desempenho de uma rede IEEE 802.11

Será feito um experimento para configurar, usar e verificar a vazão de uma rede local sem-fio IEEE 802.11. Também será investigado o tráfego nessa rede, usando o analisador de protocolo wireshark.

Questões para interpretar o experimento. Tipo... pra prova:

  • Quais os equipamentos envolvidos na rede sem-fio experimentada? faça um esboço da rede! Mostre as configurações da LAN, Wireless e WAN dos dois APs (entre na página HTML de configuração dele via browser).
  • Como um dispositivo terminal entra na rede sem-fio? Existe um procedimento para que isso ocorra?
  • Como ocorrem as transmissões nas redes sem-fio? Compare a transmissão de quadros nesse tipo de rede com transmissões em rede ethernet.
  • Qual a taxa de transmissão por quadro ? Existe mais de um taxa possível ? Como isso funciona em uma rede com muitos dispositivos ?
Aula 12 - 11/06 - Projeto Integrador

Aula 12 - 11/06 - Projeto Integrador

  • aguardando relatório do dia
Aula 13 - 18/06 - Projeto Integrador

Aula 13 - 18/06 - Projeto Integrador

  • aguardando relatório do dia
Aula 14 - 25/06 - Projeto Integrador

Aula 14 - 25/06 - Projeto Integrador

  • aguardando relatório do dia
Aula 15 - 02/07 - Projeto Integrador a avaliações

Aula 15 - 02/07 - Projeto Integrador e avaliações

  • primeiras 2 aulas: Avaliação A2 PRC;
  • últimas 2 aulas: Avaliação A1 IER;
  • Alunos que terminam as provas antes do final da aula, podem seguir com o projeto integrador
Aula 16 - 09/07 - Projeto Integrador e avaliações

Aula 16 - 09/07 - Projeto Integrador e avaliações=

  • primeiras 2 aulas: Avaliação REC A1 e A2 PRC;
  • últimas 2 aulas: Avaliação REC A1 IER;
  • Alunos que terminam as provas antes do final da aula OU que não precisam recuperar notas, podem seguir com o projeto integrador