RCO2-2012-1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Redes de Computadores II: Diário de Aula 2012-1

Professor: Marcelo Maia Sobral (msobral@gmail.com)
Lista de email (forum): rco2@googlegroups.com
Encontros: 5a feira/9:40, 6a feira/7:30
Atendimento paralelo: 4a de 13:30 às 16 h.

Bibliografia

  • Livros sobre Redes de Computadores (por ordem de preferência):
    • FOROUZAN, Behrouz. Comunicação de Dados e Redes de Computadores, 3a/4a edicão. Editora Bookman, 2004.
    • KUROSE, James F. e ROSS, Keith W. Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição. Editora Addison Wesley SP, 2010.
    • STALLINGS, W. Redes e sistemas de comunicação de dados. Editora Elsevier RJ, 2005.
    • TANENBAUM, Andrew S. Redes de Computadores, tradução da quarta edição. Editora Campus RJ, 2003
    • GALLO, Michael A. E HANCOCK Wiliam M. Comunicação entre computadores e tecnologia de rede. Ed. Pioneira Thomson Learning SP, 2003.
    • COMMER, Douglas E. Redes de Computadores e Internet – 2a edição. Editora Bookman, Porto Alegre, 2001

Curiosidades

Listas de exercícios

Avaliações

Softwares

01/03: Apresentação

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

  • Capítulo 13 do livro "Comunicação de Dados e Redes de Computadores", de Berhouz 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

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

Lembrando Redes de Computadores da 3a fase ...

Em RCO1 foi estudado o assunto Arquitetura de Redes com ênfase na Internet. A figura abaixo resume a arquitetura em camadas usada para representar o funcionamento de sistemas em uma rede de computadores. Cada camada representa uma certa funcionalidade necessária para a comunicação, e apresenta um ou mais protocolos que participam dessa tarefa.

Osi-tcpip-rco2.png


O foco da disciplina RCO2 é a infra-estrutura de rede, representada pelas camadas Internet e Acesso a rede no modelo TCP/IP (ou camadas Rede e inferiores no modelo OSI). Ela diz respeito ao conjunto de equipamentos, links, protocolos e tecnologias empregados para construir uma rede de computadores. Essa rede pode ser assim usada para que sistemas finais consigam se comunicar, tais como computadores de usuários, servidores, smartphones, e quaisquer outros dispositivos que produzam ou consumam dados. Desta forma, em IER estudaremos como escolher tecnologias, selecionar e configurar equipamentos, e interligá-los para construir redes de computadores.

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)


Conceitos necessários para realizar os exercícios:

  • Endereços IP e máscaras de rede
  • Rotas estáticas
  • Interfaces de rede

Ferramentas de apoio ao estudo

Uma limitação que temos está na pouca quantidade de equipamentos para as atividades em laboratório. Para atenuar esse problema, podem-se usar softwares que simulem redes. Existe um software desses em particular, chamado Netkit, que possibilita criar redes virtuais. Essas nada mais são que máquinas virtuais interligadas com switches e links seriais virtuais (isso é, tudo feito por software mas funciona como se fosse de verdade). Com ele se podem criar redes compostas por máquinas virtuais Linux, que são conectadas por links ethernet e PPP. Todos os cenários que usaremos em nosso estudo (com exceção das configurações de modems), poderiam ser reproduzidos com esse software. Existe um guia de instalação e uso publicado na wiki:

Esse guia contém uma coleção de exemplos, para que tenham ideia do que se pode fazer com o Netkit.

O Netkit fica assim como opção para complementar o estudo. Ele funciona como um laboratório de redes, em que se podem criar redes como aquelas que vemos em aula e mesmo inventar novas redes. Seu uso se destina a fixar conceitos, para que o uso dos equipamentos reais seja facilitado.

Além do Netkit, este simulador de roteamento IP, que roda dentro do próprio navegador, pode ajudá-los a exercitar a divisão de subredes 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


Rede1-2.png
Arquivo do experimento (Lab2.conf)


Rede1-3.png

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.

02/03: Criando redes IP

... continuação dos exercícios da aula passada.

08/03: Redes locais

Referências bibliográficas:

  • Capítulo 13 do livro "Comunicação de Dados e Redes de Computadores", de Berhouz Forouzan
  • Capítulo 5 do livro "Redes de Computadores e a Internet, 5a edição", de James Kurose
  • Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum

Estudo de caso: entendendo a rede do IFSC-SJ

A rede do IF-SC é composta pelas redes dos campi, sendo que o campus Mauro Ramos centraliza os links para os demais campi. Dentre eles, o link para a rede do campus São José tem a capacidade de 1 Gbps. Além disso, o link para a Internet se localiza também no campus Mauro Ramos. A figura abaixo mostra um diagrama simplificado da rede do IF-SC, destacando apenas os campis Mauro Ramos, São José e Continente.


Ifsc.png


Como se pode ver, os campi são interligados por enlaces (links) de longa-distância com alta capacidade de transmissão (1 Gbps). O link para a Internet, provido pelo POP-SC (Ponto de Presença da RNP em SC, mantido pela UFSC) é também de 1 Gbps. Esses links de longa distância asseguram que não existam gargalos entre os campi, possibilitando uma boa vazão entre as redes.

No nosso primeiro projeto, vamos iniciar estudando a estrutura e funcionamento da rede do campus São José. Essa rede é formada por três redes locais, compostas por switches ethernet, servidores, gateways e firewall. O diagrama abaixo apresenta a estrutura geral da rede do nosso campus.


Ifsc-sj.png


  • Observar os equipamentos in-loco: veremos que tipos de equipamentos são usados para manter a estrutura, como são conectados, seus fabricantes e modelos.
  • Criar um modelo reduzido dessa rede usando equipamentos reais: criaremos um modelo usando switches e computadores do laboratório.
  • Investigar as tecnologias empregadas na rede: identificaremos as tecnologias usadas e testaremos sua capacidade de transmissão.

Distinção entre WAN, MAN e LAN

  • Aplicações de cada um desses tipos de rede
  • Tecnologias envolvidas
  • "Backbones" da Internet Brasileira:


Algumas redes WAN:


Uma rede MAN MetroEthernet em Florianópolis.

Man-metro.png

LANs


Pontos chaves (obtido de STALLINGS, 2005):

  • Uma LAN consiste de um meio de transmissão compartilhado e um conjunto de hardware e software para servir de interface entre dispositivos e o meio de transmissão, além de regular o acesso ao meio de forma ordenada.
  • As topologias usadas em LANs são anel (ring), barramento (bus), árvore (tree) e estrela (star). Uma LAN em anel consiste de um laço fechado formado por repetidores que possibilitam que dados circulem ao redor do anel. Um repetidor pode funcionar também como um ponto de acesso de um dispositivo. Transmissão geralmente se dá na forma de quadros (frames). As topologias barramento e árvore são segmentos de cabos passivos a que os dispositivos são acoplados. A transmissão de um quadro por um dispositivo (chamado de estação) pode ser escutada por qualquer outra estação. Uma LAN em estrela inclui um nó central onde as estações são acopladas.
  • Um conjunto de padrões definido para LANs especifica uma faixa de taxas de dados e abrange uma variedade de topologias e meios de transmissão.
  • Na maioria dos casos, uma organização possui múltiplas LANs que precisam ser interconectadas. A abordagem mais simples para esse problema se vale de equipamentos chamados de pontes (bridges). Os conhecidos switches Ethernet são exemplos de pontes.
  • Switches formam os blocos de montagem básicos da maioria das LANs (não muito tempo atrás hubs também eram usados).


Lan1-2011-1.png
Uma pequena LAN com um link para Internet



Lan2-2011-1.png
Uma LAN um pouco maior, e também com um link para Internet

09/03 LANs: arquitetura IEEE 802

A 1a lista de exercícios já está disponível.

  • Arquitetura IEEE 802 e Redes locais IEEE 802.3 (Ethernet)
    • Ver transparências.
    • Capítulo 14 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.
    • Ethernet 40 Gbps e 100 Gbps


Ethernet.png

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

  • Elementos de uma rede Ethernet atual:
    • 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 relativamente próximo.

Atividade

Será criado um modelo simplificado da rede do campus IF-SC SJ.

... como tarefa extra-classe, experimente fazer esse modelo reduzido também com o Netkit.

Um exemplo de configuração para o Netkit
# computadores e switch que ficam na subrede do IF-SC SJ
ifsc1[type]=generic
ifsc2[type]=generic
ifsc-switch[type]=switch
asa5510[type]=gateway

# Gateway, micros e switch do lab. Redes 1
r1-2[type]=generic
r1-3[type]=generic
gw-r1[type]=gateway
r1-switch[type]=switch

# Gateway, micros e switch  do lab. Redes 2
r2-2[type]=generic
r2-3[type]=generic
gw-r2[type]=gateway
r2-switch[type]=switch

# Asportas do switch do IF-SC SJ
ifsc-switch[eth0]=ifsc-port1
ifsc-switch[eth1]=ifsc-port2
ifsc-switch[eth2]=ifsc-port3
ifsc-switch[eth3]=ifsc-port4
ifsc-switch[eth4]=ifsc-port5

# Micros da subrede do IF-SC obtem enderecos IP via DHCP
ifsc1[eth0]=ifsc-port1:ip=dhcp
ifsc2[eth0]=ifsc-port2:ip=dhcp

# O ASA 5510 é gateway da rede do IF-SC SJ.
asa5510[eth0]=ifsc-port3:ip=172.18.0.254/16

# ... no uplink não foi usado o IP externo do IF-SC SJ para evitar conflito 
# (isso poderia impedir esse gateway de se comunicar com servidores do IF-SC).
asa5510[eth1]=uplink:ip=10.0.0.1/30
asa5510[default_gateway]=10.0.0.2

# O ASA 5510 faz NAT da rede interna.
asa5510[nat]=eth1

# O ASA 5510 é também o servidor DHCP da subrede do IF-SC SJ
asa5510[dhcp]=eth0:range=172.18.20.1,172.18.30.200:default-lease=43200:max-lease=86400:gateway=172.18.0.254

# Portas do switch do lab. Redes 1
r1-switch[eth0]=r1-port1
r1-switch[eth1]=r1-port2
r1-switch[eth2]=r1-port3

# Ligacao dos micros e gateway do lab. Redes 1 ao seu switch. Esses micros tem IP fixo.
r1-2[eth0]=r1-port1:ip=192.168.1.2/24
r1-3[eth0]=r1-port2:ip=192.168.1.3/24
gw-r1[eth0]=r1-port3:ip=192.168.1.1/24

# O gateway do lab. Redes 1 fica ligado tambem ao switch do IF-SC
gw-r1[eth1]=ifsc-port4:ip=172.18.0.100/16

# O gateway default dos micros do lab. Redes 1
r1-2[default_gateway]=192.168.1.1
r1-3[default_gateway]=192.168.1.1

# A rota default do gateway do lab. Redes 1 vai pelo ASA 5510
gw-r1[default_gateway]=172.18.0.254

# O gateway do lab. Redes 1 faz NAT da rede interna
gw-r1[nat]=eth1

# Portas do switch do lab. Redes 2
r2-switch[eth0]=r2-port1
r2-switch[eth1]=r2-port2
r2-switch[eth2]=r2-port3

# Ligacao dos micros e gateway do lab. Redes 2 ao seu switch. Esses micros tem IP fixo.
r2-2[eth0]=r2-port1:ip=192.168.2.2/24
r2-3[eth0]=r2-port2:ip=192.168.2.3/24
gw-r2[eth0]=r2-port3:ip=192.168.2.1/24

# O gateway do lab. Redes 2 fica ligado tambem ao switch do IF-SC
gw-r2[eth1]=ifsc-port5:ip=172.18.0.101/16

# O gateway default dos micros do lab. Redes 2
r2-2[default_gateway]=192.168.2.1
r2-3[default_gateway]=192.168.2.1

# A rota default do gateway do lab. Redes 2 vai pelo ASA 5510
gw-r2[default_gateway]=172.18.0.254

# O gateway do lab. Redes 2 faz NAT da rede interna
gw-r2[nat]=eth1


Essa configuração gera a seguinte rede no Netkit:


Ifsc-sj.png

Arquitetura IEEE 802

Define um conjunto de normas e tecnologias no escopo das camadas física (PHY) e de enlace. A camada de enlace é dividida em duas subcamadas:

  • LLC (Logical Link Control): o equivalente a um protocolo de enlace de fato, porém na prática de uso restrito (pouco utilizada).
  • MAC (Medium Access Control): um protocolo de acesso ao meio de transmissão, que depende do tipo de meio físico e tecnologia de comunicação. Esse tipo de protocolo é necessário quando o meio de transmissão é compartilhado.


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 Dest Add e Source Add 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.


Csma-cd.png
O MAC CSMA/CD (Carrier Sense Multiple Access/Collision Detection


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 (obtidos em 2010-2):

1: 140254390 214015690
2: 214015690 276800590
3: 276800590 336225070
4: 336225070 398761510
5: 398761510 460950490
6: 479962630 544977970
7: 544977970 610117870
8: 690263890 755876470

Com esses dados deve-se plotar um gráfico da quantidade de bytes recebidos X quantidade de estações transmissoras. Na tabela acima, as estações transmissoras estão na 1a coluna, e a quantidade de bytes recebidos deve ser calculada pela subtração da 3a coluna pela 2a coluna.

Experiência com uma rede simulada

Para fazer a experiência pode-se usar também o simulador Omnet++:

  • Instale o Omnet++ 4
  • Instale o modelo INET:
    # Faz o download do INET Framework (aprox. 23 MB)
    wget http://tele.sj.isfc.edu.br/~msobral/RCO2/soft/inet-20100323-src.tgz
    
    # Descompacte o arquivo
    tar xzf inet-20100323-src.tar.gz
    
    # 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
    

O gráfico abaixo foi obtido com esse experimento de simulação:

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 uma rede simulada.

14/03: Interligando redes locais

  • Ver transparências.
  • 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, 5a ed.", de James Kurose.
  • Capítulo 4 do livro "Redes de Computadores, 4a ed.", de Andrew Tanenbaum.


Interligação de LANs (norma IEEE802.1D)

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:


Segmentando redes

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

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.

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 adoataram 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:vlans_tagged=5,10

switch2[eth0]=sw2-port0:vlans_tagged=5,10
switch2[eth1]=sw2-port1:vlan_untagged=10
switch2[eth2]=sw2-port2:vlan_untagged=5
switch2[eth3]=link-sw1-sw2:vlans_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

Atividade

Na figura abaixo, a rede da esquerda está fisicamente implantada em uma pequena empresa. No entanto, uma reestruturação tem como objetivo modificá-la de acordo com o diagrama mostrado à direita. Essa alteração da rede deve ser feita sem adicionar switches ou modificar o cabeamento (tampouco devem-se mudar as conexões de pontos de rede às portas de switches). Faça essa modificação usando o Netkit.

Vlan-ex1.png

  1. Criar a topologia física:
    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
    sw1[eth1]=sw1-port1
    sw1[eth2]=sw1-port2
    sw1[eth3]=link-sw1-sw2
     
    sw2[eth0]=sw2-port0
    sw2[eth1]=sw2-port1
    sw2[eth2]=sw2-port2
    sw2[eth3]=link-sw1-sw2
     
    pc1[eth0]=sw1-port0
    pc2[eth0]=sw1-port1
    pc6[eth0]=sw1-port2
    
    pc3[eth0]=sw2-port0
    pc4[eth0]=sw2-port1
    pc5[eth0]=sw2-port2
    
  2. Criar a topologia lógica usando VLANs
    ... isso é com vocês!

15/03: Redes locais e VLANs

A 2a lista de exercícios já está disponível.


...continuando o estudo sobre VLANs.

Atividade

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.

22/03: Redes locais e VLANs

Foi realizada uma atividade de implantação de uma rede comv VLANs. Essa rede foi criada usando os switches D-Link 3526, interligados da seguinte forma:


Rede-vlan-real.png


Essa rede foi implantada com VLANs, de forma a funcionar como se tivesse a seguinte topologia:


Rede-vlan-virtual.png

23/03: Protegendo a rede local contra erros de interligação

  • 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:

A nova rede do IF-SC SJ

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 ?

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

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

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

Atividade

Vamos realizar um experimento para entender melhor como funciona o STP. Isso nos dará base para aplicá-lo no caso da rede da escola (o que faremos na pŕoxima aula).

Switches e STP (Spanning Tree Protocol) no Netkit

... ver também:

  • timers do STP (hello e max-age), que influenciam o tempo de convergência do protocolo

29/03: Acrescentando enlaces redundantes na rede da escola

Voltando à segmentação da rede do campus São José, vamos acrescentar alguns enlaces para conferir um grau de tolerância a falhas:


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


Dada a dimensão da rede, isso será realizado usando o Netkit. Sendo assim, implante a rede acima e ative o STP para tratar os caminhos fechados. Em seguida, experimente modificar alguns links para verificar se a rede continua funcionando.

30/03: Fazendo controle de acesso em redes locais


Controlando o acesso à rede da escola

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 !


05/04: Revisão

... para a avaliação que está próxima !

12/04: 1a avaliação

Na sala de aula.