IER-2014-1

De MediaWiki do Campus São José
Ir para: navegação, pesquisa

Índice

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