IER-2010-2

De MediaWiki do Campus São José
Revisão de 09h01min de 30 de julho de 2010 por Msobral (discussão | contribs) (→‎16/12:)
Ir para navegação Ir para pesquisar

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

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

Bibliografia

Curiosidades

Listas de exercícios

Avaliações

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

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


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


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

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

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


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

Será feito um experimento com base nas redes acima.

Enlaces de dados (Data Link)

Data-link.png

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

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

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

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

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

Roteiro do primeiro laboratório

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

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

Há um resumo nas transparências.

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

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

# Testa o quadro correto
./fcs quadro_correto.raw

# Testa o quadro_errado
./fcs quadro_errado.raw

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

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

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

12/08:

Detalhes sobre esses protocolos. Ver as transparências:

19/08:

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

Ver transparências.


Serviços da camada física:

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


Transmissão digital:

26/08:

Ver transparências sobre modems.

Resolver a 3a lista.

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

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

Ver transparências sobre códigos de linha.

Ver transparências.

Roteiro do experimento

Modems analógicos e Interfaces digitais

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

Ver transparências sobre modems analógicos.

Ver transparências sobre interfaces digitais.

02/09:

09/09:

Introdução a redes locais

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


Distinção entre WAN, MAN e LAN

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


LANs

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

16/09:

23/09:

30/09:

07/10:

14/10:

21/10:

28/10:

04/11:

11/11:

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

25/11:

02/12:

09/12:

16/12: Apresentação do projeto

21/09: Redes locais: experimento sobre desempenho do CSMA/CD

Realização de um experimento pra medir a utilização do meio de transmissão em uma rede local, com MAC do tipo CSMA/CD.

    • A experiência pode ser feita também com o simulador Omnet++:
      • Intale o Omnet++ 4
      • Instale o modelo INET:
        # Faz o download do INET Framework (aprox. 23 MB)
        wget http://github.com/downloads/inet-framework/inet/inet-20100323-src.tgz
        
        # Descompacta o arquivo
        tar xzf inet-20100323-src.tgz
        
        # Compila o INET
        cd inet
        make makefiles
        make
        
      • Copie esses arquivos para dentro de inet/examples/ethernet/lans:
        mu.ini
        mu2.ini
        Networks.ned
      • Para executar uma simulação interativa, com animação, faça assim:
        cd inet/examples/ethernet/lans
        ./run mu.ini
        
        ... e escolha um dos modelos para executar.
      • Para executar uma simulação não-interativa, com uma bateria de experimentos que variam a quantidade de estações (2 a 16) e tamanhos de quadros (256, 512 e 1480 bytes), faça assim:
        cd inet/examples/ethernet/lans
        ./run -u Cmdenv -c Hub1 mu2.ini
        
      • Os resultados das simulações estarão em arquivos dentro do subdiretório inet/examples/ethernet/lans/results. Por exemplo, o arquivo Hub1-0.sca contém o resultado da primeira simulação, e parte de seu conteúdo é mostrada abaixo (cada linha contém algum resultado ou estatística da simulação, e o título é auto-explicativo):
        version 2
        run Hub1-1-20100423-09:38:33-7627
        attr bytes 256
        attr configname Hub1
        attr datetime 20100423-09:38:33
        attr experiment Hub1
        attr inifile mu2.ini
        attr iterationvars "$bytes=256, $stations=3"
        attr iterationvars2 "$bytes=256, $stations=3, $repetition=0"
        attr measurement "$bytes=256, $stations=3"
        attr network HubLAN2
        attr processid 7627
        attr repetition 0
        attr replication #0
        attr resultdir results
        attr runnumber 1
        attr seedset 1
        attr stations 3
        
        scalar .        bytes   256
        scalar .        stations        3
        scalar HubLAN2.sta[0].cli       "packets sent"  0
        scalar HubLAN2.sta[0].cli       "packets rcvd"  0
        scalar HubLAN2.sta[0].cli       "end-to-end delay mean"         0
        scalar HubLAN2.sta[0].cli       "end-to-end delay stddev"       nan
        scalar HubLAN2.sta[0].cli       "end-to-end delay min"  0
        scalar HubLAN2.sta[0].cli       "end-to-end delay max"  0
        scalar HubLAN2.sta[0].srv       "packets sent"  0
        scalar HubLAN2.sta[0].srv       "packets rcvd"  247453
        scalar HubLAN2.sta[0].srv       "end-to-end delay mean"         1.6121223100944
        scalar HubLAN2.sta[0].srv       "end-to-end delay stddev"       1.0596723502417
        scalar HubLAN2.sta[0].srv       "end-to-end delay min"  0.0002378
        scalar HubLAN2.sta[0].srv       "end-to-end delay max"  5.18103003756
        scalar HubLAN2.sta[0].llc       "dsaps registered"      1
        scalar HubLAN2.sta[0].llc       "packets from higher layer"     0
        scalar HubLAN2.sta[0].llc       "frames from MAC"       247453
        scalar HubLAN2.sta[0].llc       "packets passed up"     247453
        scalar HubLAN2.sta[0].llc       "packets dropped - unknown DSAP"        0
        scalar HubLAN2.sta[0].mac       "simulated time"        60.0001141233
        scalar HubLAN2.sta[0].mac       "txrate (Mb)"   10
        scalar HubLAN2.sta[0].mac       "full duplex"   0
        scalar HubLAN2.sta[0].mac       "frames sent"   0
        scalar HubLAN2.sta[0].mac       "frames rcvd"   247453
        scalar HubLAN2.sta[0].mac       "bytes sent"    0
        scalar HubLAN2.sta[0].mac       "bytes rcvd"    68544481
        scalar HubLAN2.sta[0].mac       "frames from higher layer"      0
        scalar HubLAN2.sta[0].mac       "frames from higher layer dropped (iface down)"         0
        scalar HubLAN2.sta[0].mac       "frames dropped (bit error)"    0
        scalar HubLAN2.sta[0].mac       "frames dropped (not for us)"   0
        scalar HubLAN2.sta[0].mac       "frames passed up to HL"        247453
        scalar HubLAN2.sta[0].mac       "PAUSE frames sent"     0
        scalar HubLAN2.sta[0].mac       "PAUSE frames rcvd"     0
        scalar HubLAN2.sta[0].mac       "frames/sec sent"       0
        scalar HubLAN2.sta[0].mac       "frames/sec rcvd"       4124.2088221947
        scalar HubLAN2.sta[0].mac       "bits/sec sent"         0
        scalar HubLAN2.sta[0].mac       "bits/sec rcvd"         9139246.7499834
        scalar HubLAN2.sta[0].mac       "rx channel idle (%)"   5.937858457565
        scalar HubLAN2.sta[0].mac       "rx channel utilization (%)"    94.031961146038
        scalar HubLAN2.sta[0].mac       "rx channel collision (%)"      0.030180396396893
        scalar HubLAN2.sta[0].mac       collisions      4825
        scalar HubLAN2.sta[0].mac       backoffs        0
        

23/09: 2a avaliação

Envolve o conteúdo sobre Camada Física, e se baseará nas listas de exercícios 3 e 4.

28/09: Redes locais

  • Para fins de comparação, conectar os computadores da bancada no switch (tomadas verdes), e repetir parte das medições (apenas aquelas que envolvem todos os computadores da bancada).
  • Arquitetura IEEE 802 e Redes locais IEEE 802.3 (Ethernet)

Ethernet.png

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

Desempenho de um MAC CSMA/CD

Uma análise feita no capítulo 4 do livro "Redes de Computadores, 4a ed." de Andrew Tanenbaum fornece a seguinte previsão de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.

  • Utilização do meio:

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

30/09: Redes locais: arquitetura IEEE 802

Ver 5a lista de exercícios.

Ver transparências.

Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum.

Capítulo 14 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan.

  • Detalhamento da norma IEEE 802.3 (Ethernet)
  • Visualização de quadros ethernet
  • Teste de desempenho com switches, para comparar com os resultados obtidos com hubs

Ver também:

05/10: Redes locais: interligação de LANs e VLANs IEEE 802.1q

  • Ver transparências.
  • Capítulo 16 do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Behrouz Forouzan.
  • Capítulo 4 do livro "Redes de Computadores, 4a ed.", de Andrew Tanenbaum.
  • Interligação de LANs (norma IEEE802.1D):
    • Operação de pontes e switches
      • Visualizar o aprendizado de endereços em um switch ou ponte (usando o switch D-Link).
      • Visualizar como um switch ou ponte propaga quadros em broadcast.


07/10: Redes locais: VLANs IEEE 802.1q; interligação de LANs e protocolo Spanning Tree (STP)

Conceitos da 2a avaliação

Fazer a 6a lista de exercícios.

  • Continuação da aula de 07/05 sobre VLANs
  • Introdução a STP (ver transparências)

Atividades

  • Um computador com Linux pode ser transformado em uma ponte ou switch, usando bridge-utils. O utilitário brctl possibilita configurar interfaces do tipo bridge:
    • Para criar uma bridge:
      # Cria uma interface de rede do tipo bridge, chamada br0. O nome da interface 
      # pode ser qualquer coisa (ex: br0, ponte1, ...)
      brctl addbr br0
      
    • Para adicionar interfaces de rede à bridge br0:
      brctl addif br0 eth0
      brctl addif br0 eth1
      
    • Para ver as bridges existentes:
      brctl show
      
    • Para ver os endereços MAC reconhecidos atualmente na bridge br0:
      brctl showmacs br0
      
  • No Linux é possível usar VLANs, configuradas com o utilitário vconfig (contido no pacote vlan, que pode ser instalado com sudo apt-get install vlan). Cada VLAN configurada irá criar uma interface virtual correspondente. Ex: para configurar as VLANs 5 e 10 na interface eth0:
    vconfig add eth0 5
    vconfig add eth0 10
    
    Com isto serão criadas as interfaces eth0.5 (interface virtual associada à VLAN 5) e eth0.10 (interface virtual da VLAN 10). Essas interfaces podem ser configuradas com o utilitário ifconfig, como qualquer outra interface de rede.
  • Essas funcionalidades podem ser exploradas no Netkit.

Netkit

Um sistema para fazer experimentos com redes interligadas por pontes ou switches.

  • Guia rápido de instalação
  • Download
  • Para os experimentos abaixo:
    • Fazer experimentos para visualizar como os quadros se propagam entre os segmentos através da ponte.
    • Visualizar como a ponte aprende os endereços das estações de cada segmento.
    • Testar o envio de quadros em broadcast, e observar como a ponte os propaga.
    • Para os experimentos com VLAN, observar os quadros com tag, nas interfaces que operam em modo tagged. Teste também o isolamento entre VLANs.
  • Exemplos de experimentos: faça o download e descompacte-os; em seguida entre no diretório do experimento, e execute lstart. Para terminar o experimento execute lhalt -q.
    • LAN simples: uma LAN com quatro computadores (pc1, pc2, pc3, pc4). Os computadores virtuais têm IPs 192.168.1.X, sendo X o número computador (ex: pc1 tem IP 192.168.1.1). Use ping para fazer testes de comunicação.
    • 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.
    • Switch e duas LANs: duas LANs com quatro computadores cada (LAN1 tem IPs 192.168.1.0/24 e contém pc1, pc2, pc3, pc4; LAN2 tem IPs 192.168.2.0/24 e contém pc5, pc6, pc7, pc8). Um switch implementado por um computador com Linux com 9 portas ethernet interliga todos os computadores. No entanto, esse switch separa as duas LANs, como se fossem duas VLANs. O computador pc4 opera como gateway entre as LANs.
    • Switch e duas VLANs: duas VLANs com quatro computadores cada. VLAN 5 tem IPs 192.168.1.0/24 e contém pc1, pc2, pc3, pc4; VLAN 10 tem IPs 192.168.2.0/24 e contém pc4, pc5, pc6, pc7. O switch Linux foi configurado para que a interface eth3 esteja nas VLANs 5 e 10 (i.e. em modo tagged), as interfaces eth0, eth1, eth2 estejam na VLAN 5 em modo untagged, e as interfaces eth4, eth5 e eth6 estejam na VLAN 10 em modo untagged. O computador pc4 opera como gateway entre as VLANs, usando duas interfaces virtuais (i.e. a interface eth0 foi posta nas VLANs 5 e 10 em modo tagged).
    • Dois switches e duas VLANs: duas VLANs com quatro computadores cada. VLAN 5 tem IPs 192.168.1.0/24 e contém pc1, pc2, pc3, pc4; VLAN 10 tem IPs 192.168.2.0/24 e contém pc5, pc6, pc7, pc8. O switch Linux foi configurado para que a interface eth3 esteja nas VLANs 5 e 10 (i.e. em modo tagged), as interfaces eth0, eth1, eth2 estejam na VLAN 5 em modo untagged, e as interfaces eth4, eth5 e eth6 estejam na VLAN 10 em modo untagged. O computador pc4 opera como gateway entre as VLANs, usando duas interfaces virtuais (i.e. a interface eth0 foi posta nas VLANs 5 e 10 em modo tagged). O diagrama abaixo ilustra essa rede:

Bridge3.png

Leia os arquivos de inicialização switch1.startup, switch2.startup e pc4.startup para entender como foram configuradas as VLANs.

14/10: Redes locais: interligação de LANs e protocolo Spanning Tree (STP)

Atividades

  1. Experimento com Spanning Tree:
    • Usando os switches do laboratório
    • Usando o Netkit.

      Esse segundo experimento implementa esta rede:

      Stp netkit.png

      1. Iniciar o laboratório do Netkit, com comando lstart
      2. Rodar o tcpdump nas interfaces dos switches:
        tcpdump -i any -ln
        
      3. Em qualquer um dos PC faça um ping para qualquer outro PC. Observe as respostas do ping, e o tráfego mostrado pelo tcpdump.
      4. Em cada um dos switches ative o protocolo STP:
        brctl stp br0 on
        
      5. Observe as respostas do ping, e o tráfego revelado pelo tcpdump.
      6. Veja como ficou a topologia lógica após a ativação do STP. Quer dizer, veja os estados das portas dos switches:
        brctl showstp br0
        
      7. Modifique a prioridade STP dos switches (um número entre 0 e 65535), e veja o resultado na topologia lógica criada pelo STP:
        brctl setbridgeprio br0 PRIORIDADE
        
      8. Pare o ping e tcpdump. Em seguida desative o STP nos switches:
        brctl stp br0 off
        
      9. Execute novamente o tcpdump em todos os switches:
        # N é o número  do switch
        tcpdump -i any -ln -w switchN.cap
        
      10. Reative o STP nos switches:
        brctl stp br0 on
        
      11. Pare o tcpdump, e copie cada arquivo switchN.cap para o diretório /lab de cada switch. Esse diretório corresponde ao diretório do laboratório no sistema Linux real.
      12. Execute o wireshark, e use-o para interpretar os arquivos switchN.cap. Veja as PDUs STP trocadas entre os switches.

19/10: Redes locais: controle de acesso com IEEE 802.1x e VLANs dinâmicas

Norma IEEE 802.1x

A norma 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 !

21/10: IEEE 802.1x e VLANs dinâmicas

A 3a avaliação foi adiada para 28/05.

26/10: WAN: Introdução; Frame-Relay

Aula até 11:30 h (usaremos o horário do Pedro Armando).

Ver também:

  • Capítulo 18 do livro Comunicação de Dados e Redes de Computadores, 3a ed., de Behrouz Forouzan.
  • Capítulos 12 a 15 do livro Comunicação entre Computadores e Tecnologias de Rede, de Michael Gallo e William Hancock.

28/10: 3a avaliação

Na sala de aula ...

Conceitos

04/11: WAN: Frame-Relay e MPLS

09/11: WAN: MPLS

Para casa:


Exemplos de serviços baseados em MPLS em operadoras:


Atividade de hoje: Labelspaces e túneis

11/11: WAN: MPLS

Atenção: 4a avaliação

Wan-2010-1.png


Atividade de hoje: túneis

Questão: para que serviria um túnel MPLS ?

Operações MPLS no Linux

CUIDADO: Não use rótulos entre 0 e 15, pois são reservados (ver detalhes).

As operações MPLS no Linux são definidas por sequências de comandos não muito claros à primeira vista. Assim segue abaixo um rápido guia sobre como realizá-las:

  • PUSH: da rede IP para a rede MPLS
    # Cria primeiro um NHLFE que adiciona o rótulo 100, e encaminha a PDU MPLS pela interface eth3. O endereço IP 10.0.1.5 corresponde
    # ao próximo roteador.
    var=`mpls nhlfe add key 0 instructions push gen 100 nexthop eth3 ipv4 10.0.1.5 |grep key | cut -c 17-26`
    
    # Mapeia FEC (Forward Equivalence Class) e NHLFE. FEC é a classificação do tráfego que está entrando na rede MPLS (note 
    # que nesse exemplo trata-se somente de um conceito).
    ip route add 172.16.30.0/24 via 10.0.1.5 mpls $var
    
  • POP: da rede MPLS para a rede IP
    # Adiciona a interface eth3 ao labelspace 0
    mpls labelspace set dev eth3 labelspace 0
    
    # Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
    # Esse comando sozinho faz o POP do rótulo
    mpls ilm add label gen 300 labelspace 0
    
  • SWAP: comutando rótulos dentro da rede MPLS
    # Adiciona a interface eth0 ao labelspace 0
    mpls labelspace set dev eth0 labelspace 0
    
    # Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
    # Esse comando sozinho faz o POP do rótulo
    mpls ilm add label gen 2000 labelspace 0
    
    # Cria NHLFE que adiciona o rótulo 3000, e encaminha a PDU MPLS pela interface eth1. O endereço IP 10.0.6.3 corresponde
    # ao próximo roteador.
    var1=`mpls nhlfe add key 0 instructions push gen 3000 nexthop eth1  ipv4 10.0.6.3 |grep key | cut -c 17-26`
    
    # Faz a comutação de fato: a PDU MPLS identificada pela ILM com rótulo 2000 e vinda pelo labelspace 0 deve ser encaminhada 
    # de acordo com o que estiver determinado na NHLFE acima
    mpls xc add ilm_label gen 2000 ilm_labelspace 0 nhlfe_key $var1
    
  • Caso especial: entrada em túnel, que se faz com SWAP e em seguida PUSH:
    # Adiciona a interface eth1 ao labelspace 0
    mpls labelspace set dev eth1 labelspace 0
    
    # Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
    # Esse comando sozinho faz o POP do rótulo
    mpls ilm add label gen 100 labelspace 0
    
    # Cria NHLFE que adiciona o rótulo 2000, e encaminha a PDU MPLS pela interface eth0.
    var1=`mpls nhlfe add key 0 instructions push gen 2000  nexthop eth0 ipv4 10.0.4.4 |grep key | cut -c 17-26`
    
    # Cria NHLFE que adiciona o rótulo 200, e encaminha a PDU MPLS de acordo com as instruções da NHLFE acima
    # Isto terá o efeito de empilhar o rótulo 2000 sobre o rótulo 200.
    var2=`mpls nhlfe add key 0 instructions push gen 200 forward $var1 |grep key| cut -c 17-26`
    
    # Faz a comutação de fato: a PDU MPLS identificada pela ILM com rótulo 100 e vinda pelo labelspace 0 deve ser encaminhada 
    # de acordo com o que estiver determinado na NHLFE acima
    mpls xc add ilm_label gen 100 ilm_labelspace 0 nhlfe_key $var2
    
  • Caso especial: saída do túnel MPLS, quando deve ser feito um POP e em seguida SWAP (obs: se aplica somente ao caso em que a mensagem que sai do túnel deve ir a outro LSR. Se ao sair do túnel também for sair do LSP interno, então deve ser feito outro POP ao invés de SWAP).
    # Adiciona a interface eth1 ao labelspace 0
    mpls labelspace set dev eth1 labelspace 0
    
    # Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
    # Esse comando sozinho faz o POP do rótulo 3000
    mpls ilm add label gen 3000 labelspace 0
    
    # Cria um mapeamento de rótulo de entrada (ILM), para receber PDUs com determinado rótulo vindas do labelspace 0
    # Esse comando sozinho faz o POP do rótulo 200
    mpls ilm add label gen 200 labelspace 0
    
    # Cria NHLFE que adiciona o rótulo 300, e encaminha a PDU MPLS pela interface eth2
    key=`mpls nhlfe add key 0 instructions push gen 300 nexthop eth2 ipv4 10.0.5.1 |grep key |cut -c 17-26`
    
    # Faz a comutação de fato: a PDU MPLS identificada pela ILM com rótulo 200 e vinda pelo labelspace 0 deve ser encaminhada 
    # de acordo com o que estiver determinado na NHLFE acima.
    # Repare que o comando abaixo irá atuar somente depois que a PDU tiver saído do túnel (i.e. depois que tiver feito o POP 3000)
    mpls xc add ilm_label gen 200 ilm_labelspace 0 nhlfe_key $key
    

Obs: cada interface precisa ser adicionada a um labelspace apenas uma vez

16/11: WAN: MPLS

Obs: não foi realizado esse experimento, pois aproveitou-se a aula para esclarecer o projeto sobre WAN.

18/11: Redes sem-fio: introdução

  • Ver transparências
  • Ver capítulo 15 do livro Comunicação de Dados e Redes de Computadores, 3a ed., de Behrouz Forouzan.
  • Ver este livro on-line sobre redes IEEE 802.11.

23/11: Redes sem-fio: padrão IEEE 802.11

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

Após a realização do experimento, obtiveram-se vazões da ordem de 20 Mbps (com um caso que chegou a 29 Mbps). Vale lembrar que o protocolo MAC da rede IEEE 802.11 faz controle de erros do tipo Stop-and-Wait, e comparar os resultados com a análise de desempenho para um protocolo Stop-and-Wait na ausência de erros, feita no início do semestre. Há inclusive a questão 19 da 1a lista de exercícios, que pede que se calcule a taxa efetiva de transmissão (em outras palavra, a vazão máxima possível) numa rede sem-fios IEEE 802.11. Essa questão foi resolvida em aula, e obteve-se uma taxa efetiva de aproximadamente 34 Mbps. Esse resultado é otimista, pois assume um tráfego unidirecional e com apenas uma estação transmitindo. Apesar disso, os valores obtidos no experimento são da mesma ordem de grandeza, não estando muito distantes do previsto.

25/11: Redes sem-fio: redes ad hoc

Redes Ad Hoc

  • Ausência de uma estação base (ou Access Point)
  • Cada estação pode se comunicar diretamente com qualquer outra estação em seu alcance
  • Problemas dos nodos escondidos e expostos se manifestam intensamente
  • Demandam roteamento especializado (ex: AODV, OLSR)


Adhoc1.jpg
Podem possibilitar a criação de uma rede local temporária em um ambiente previamente sem infraestrutura (AP)


Adhocnet.gif
Podem formar redes temporárias entre equipamentos móveis


Vanet.gif
Podem ser usadas como base para aplicações inovadoras, como redes veiculares

Problemas sobre nodos escondidos e expostos

  1. De acordo com a rede sem-fio em modo ad hoc mostrada na figura abaixo, identifique (assuma que o MAC seja o CSMA/CA):
    • Que estações não conseguem transmitir simultaneamente, devido ao problema dos nodos expostos
    • Para cada estação, identifique todas as estações que podem transmitir simultaneamente (independente da estação destino)

      Rede-sem-fio1.png
  2. Faça a mesma análise para a rede mostrada abaixo:

    Rede-sem-fio2.png

30/11: Redes sem-fio: transição entre BSS em rede infra-estruturada (handover)