IER2018-2

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
A versão imprimível não é mais suportada e pode ter erros de renderização. Atualize os favoritos do seu navegador e use a função de impressão padrão do navegador.

Dados Importantes

Professor: André D'Amato
Email: andre.damato@ifsc.edu.br,
Atendimento paralelo

  • Quarta: 10:30 ás 11:30

Avaliações

AI = Avaliação Individual.
PI = PROJETO INTEGRADOR.
NF = Nota Final com critério de arredondamento de +/-5 pontos.


Atividade Inicial: Questionário

1) Com suas próprias palavras defina qual a importância das camadas 1 e 2 de acordo com:

  a) Modelo OSI;
  b) Modelo TCP/IP.

2) A partir do endereço IPV4 192.168.0.34 e a máscara 255.255.255.0 responda:

  a) Qual é o endereço de subrede;
  b) Qual é o endereço de host;
  c) A quantidade de endereços de hosts possíveis.

3) De acordo com seu entendimento, explique segmentação de redes? Quais são os equipamentos necessários para segmentar uma rede?

4) De acordo com seu entendimento, explique como funciona e para que serve um endereço de broadcast.


</syntaxhighlight>


Relatório !

Relatório Sobre a Disciplina de Instalação e Equipamentos de Rede

Para realização de relatórios técnicos utilizem como referência a norma NBR 10719 - Apresentação de relatórios técnico-científicos Um relatório técnico-científico compreende as seguintes partes: a) preliminares ou pré-texto:

  • capa

- prefácio (apresentação);

  • sumário;

b) texto:

  • introdução;
  • desenvolvimento;
 * Explicando para cada experimento os procedimentos necessários
 * resultados
  • conclusões e/ou recomendações;

</syntaxhighlight>


    • O relatório pode ser feito em dupla e pode ser entregue IMPRESSO em folha A4 ou enviado por email andre.damato@ifsc.edu.br
    • Desenvolva adequadamente o conteúdo
    • Responda e explique cada pergunta contida nos experimentos
    • A nota será atribuída de acordo com os itens pedidos no relatório
    • O prazo de entrega é até o dia 16/11



A parte b, desenvolvimento, do relatório deverá conter as reflexões sobre as práticas propostas a seguir:

Parte 1: Análise do funcionamento de switches

  1. Este experimento busca mostrar como switches comutam os quadros: se os recebem e armazenam antes de retransmiti-los para seus destinos, ou se os retransmitem durante suas próprias recepções.
    1. Um dos computadores deve ter sua interface de rede configurada para operar a 10 Mbps full-duplex (ver aula anterior)
    2. Nesse computador deve-se rodar o wireshark para capturar pacotes UDP port 7788
    3. Além do wireshark, deve-se rodar também este programa:
      nc -l -u 7788 > texto
      
    4. Em outro computador deve-se baixar este arquivo: texto
    5. Nesse outro computador deve-se também rodar o wireshark, para capturar pacotes UDP port 7788
    6. Nesse computador onde se baixou o arquivo deve-se enviá-lo para o computador que está a 10 Mbps. Isso deve ser feito com este comando:
      nc -u IP_do_computador_a_10Mbps 7788 < texto
      
    7. Em cada um dos computadores, deve-se observar no wireshark quantos pacotes foram recebidos e transmitidos, e quanto tempo levou desde o primeiro até o último deles.
    8. Compare os valores identificados no ítem anterior. Quantos pacotes foram transmitidos, e quantos foram recebidos ? Quanto tempo levou a transmissão, e quanto demorou a recepção ?
    9. Com base no resultado anterior, pode-se concluir que quadros recebidos numa porta do switch são armazenados no switch antes de serem retransmitidos para seu destino ?
    10. Explique seu raciocínio!!!

Parte 2: Subredes e roteamento estático

Estes experimentos devem ser realizados no Netkit2, que deve ser executado na máquina real.

  1. Transfira para seu computador o arquivo de configuração rede1.conf
  2. Execute o Netkit2, e no menu File->Load Only selecione o arquivo de configuração rede1.conf
  3. Use o menu File->Graph para visualizar a topologia da rede
  4. Use o menu Network->Start para iniciar a rede
  5. Sabendo que pc1 está na subrede 172.18.12.64/26, pc2 está na subrede 192.168.5.32/27, e pc3 está na subrede 10.0.10.0/24, faça o seguinte:
    1. Configure os endereços IP de todas as interfaces dos hosts dessa rede no arquivo .conf e descreva o arquivo no relatório
    2. Crie rotas estáticas nos hosts para que pc1, pc2 e pc3 consigam se comunicar e descreva no relatório os comandos utilizados para configurar as rotas estáticas


Parte 3: Roteamento dinâmico (com o RIP)

Rip netkit.jpg

Baseado no diagrama da Figura, usaremos serviços para rodar os protocolos de roteamento RIP a partir do Quagga, de tal modo que as tabelas estáticas de roteamento não mais serão necessárias e o sistema se auto recuperará da queda de um único enlace (nesse caso).

  1. Reinicie o NetKit2 para limpar todas as configurações.
  2. Transfira o arquivo exp2.conf para seu computador, gravando-o para um arquivo em seu diretório pessoal. O arquivo exp2.conf possui a configuração da rede a ser executada com o Netkit2. Observe que nessa configuração já está inserida a definição dos default gateway de cada pc.
  3. Carregue o arquivo exp2.conf no Netkit2 usando o menu File->Load Only. Em seguida, use o menu File->Graph para visualizar a topologia da rede a ser executada (compare-a com a figura no início desta atividade). Por fim, inicie a execução da rede usando o menu Network->Start.
  4. Para testar o ambiente criado no pc1 execute: ping 192.168.2.1 </syntaxhighlight> O ping está funcionando? Por quê?
  5. Deixe o ping rodando!
  6. Agora em cada roteador, configure o serviço RIP para que os testes da próxima etapa possam ser executados. No terminal de cada um dos roteadores, execute estes comandos:
    configure terminal
    router rip
    redistribute connected
    redistribute static
    network eth1
    network eth2
    end
    
  7. Olhe o terminal do pc1, o que ocorreu com o ping? Por quê?
  8. Observando o estado do sistema. Vamos usar comandos para verificar o estado dos roteadores.
    1. Verifique o estado das interfaces usando o comando: show interface </syntaxhighlight>
    2. Verifique se o roteador está habilitado para roteamento: show ip forwarding </syntaxhighlight>
    3. Verifique o estado da tabela de roteamento usando o comando: show ip route </syntaxhighlight> Interprete detalhadamente essa tabela! Você consegue visualizar o mapa da rede a partir dessa tabela?
    4. Verifique a configuração atual do roteador: show running-config </syntaxhighlight>
  9. Teste as demais conectividades entre os PCs com pings mútuos. Tudo funcionando?
  10. A partir de cada PC trace a rota (traceroute) para os demais PC e anote-as.
  11. Com o route -n e/ou netstat -r verifique a anote as rotas para cada rede a partir dos pcs.
  12. Pare todos os pings.
  13. Inicie o shell para utilizar o TCPDUMP.start-shell</syntaxhighlight>
  14. Execute no r1.tcpdump -i any -w /hostlab/ripr1.pcap</syntaxhighlight>
  15. Aguarde uns 2 minutos para capturar pacotes específicos do protocolo de roteamento RIP.
  16. Com o navegador de arquivos entre na pasta /home/aluno/lab/ e dê um duplo click no arquivo ripr1.pcap e tente compreender as mensagens RIPv2 (UDP 17) trocadas. As mensagens são trocadas aproximadamente a cada minuto, se não aparecer nenhuma no Wireshark faça um reload: <Ctrl+r> até susrgir alguma mensagem. Olhe com atenção os IPs e as métricas apresentadas.
    1. O que dizem essas mensagens?
    2. Pesquise o significado do endereço 224.0.0.9.
  17. A partir do pc1 deixe rodando o ping ping 192.168.2.1</syntaxhighlight>
  18. Com o tcpdump rodando em r1, desative um dos enlaces entre os roteadores e acompanhe a troca de mensagens no Wireshark (dê um reload). Por questões de compatibilidade vamos desativar uma interface de um modo especial. Por exemplo, para "derrubar" o enlace r3-r1, execute no r3:

configure t entra no mode de configuração interface eth1 entra na referida interface a ser operada shutdown desativa a interface, se desejado </syntaxhighlight>

  1. Permaneça monitorando o ping e o Wireshark (reload: <Ctrl+r>), a recuperação das rotas leva em torno de 1-3 min:
    1. Quais as mensagens trocadas pelo protocolo RIP observadas no WireShark? Observe o trecho de mensagens onde não houve respostas ao ping.
    2. Qual o tempo aproximado para a total recuperação das rotas? (Isso seja observável pela diferença de tempos (timestamp) na sequência de mensagens observadas no Wireshark).
  2. Teste as conectividades. O que aconteceu?
  3. Retrace as rotas com nos roteadores show ip route </syntaxhighlight> e com o traceroute </syntaxhighlight> a partir dos PCs.
    1. São diferentes do caso original (todos enlaces ativos)? Por quê?
    2. Quais os caminhos/rotas que foram reescritos? Por quê?
  4. Reative a interface r3-r1.no shutdown</syntaxhighlight>
    1. Com o Wireshark, identifique as mensagens trocadas entre os roteadores envolvidos na mudança.
    2. Qual a sua interpretação da mensagem? Qual o motivo da troca dessa mensagem em particular?


Parte 4: criando uma infraestrutura física e usando VLANs

  1. 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 em duas etapas:
    1. Crie um protótipo usando o Netkit2.
    2. Vlan-ex1.png

    • Arquivo de configuração vlan.conf, contendo a topologia física.
    • Para criar a topologia lógica usando VLANs: use os atributos vlan_untagged e vlans_tagged nas portas dos switches, conforme o manual do Netkit2.
    • Após entender o protótipo, configure todos os computadores de maneira que eles possam se comunicar
    • Arquivo de configuração lan1.conf, contendo a topologia física.
    • Para criar a topologia lógica usando VLANs: use os atributos vlan_untagged e vlans_tagged nas portas dos switches, conforme o manual do Netkit2.
    • Descreva no relatório o arquivo .conf final

Parte 5: Um ESS com sistema de distribuição sem-fio (WDS)

Pji3-80211-wds.png
Um ESS com um sistema de distribuição sem-fio (WDS)

  1. Modifique a configuração dos AP para que formem um WDS conforme a figura acima.
    • Todos AP devem usar o mesmo canal e mesma largura de banda
    • Habilite a opção WDS Bridging, e configure as informações ali solicitadas
  2. ATENÇÃO: os AP NÃO podem estar conectados na LAN do laboratório quando em modo WDS. Somente o AP que dá acesso aos demais AP (o AP à esquerda na figura) que deve estar ligado a LAN.
  3. Após salvar e ativar as novas configurações, acessem a rede sem-fio com seus celulares
  4. Identifiquem os APs com que seus celulares se associaram
  5. Testem a comunicação nessa rede sem-fio. Há alguma diferença perceptível em relação ao DS pela rede cabeada ?
    • O WDS deve ser realizado usando o rádio 5 GHz
    • O rádio 2.4GHz deve ser usado para dar acesso aos clientes, e cada AP deve usar um canal diferente
  6. Repita os testes de desempenho ... houve alguma diferença ?



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

Distinção entre WAN, MAN e LAN

Existe uma classificação de redes de computadores segundo sua abrangência. Segundo ela, as redes podem ser divididas em:

  • LAN (Local Area Network, ou Rede Local): É uma rede onde seu tamanho se limita a apenas uma pequena região física. Uma rede de área local (LAN) é uma rede que conecta computadores e dispositivos em uma área geográfica limitada, como uma casa, escola, prédio de escritórios ou grupo de edifícios bem posicionado. LANs com fio são provavelmente baseadas em tecnologia Ethernet. Novos padrões como o ITU-T G.hn também fornecem uma maneira de criar uma LAN com fio usando a fiação existente, como cabos coaxiais, linhas telefônicas e linhas de energia.
  • MAN (Metropolitan Area Network, ou rede metropolitana): A MAN é uma rede que se espalha por uma cidade. Por exemplo, uma rede de farmácias, em uma cidade, onde todas acessam uma base de dados comum. As MAN oferecem altas taxas de transmissão, baixas taxas de erros, e geralmente os canais de comunicação pertencem a uma empresa de de telecomunicações que aluga o serviço ao mercado. As redes metropolitanas são padronizadas internacionalmente pela IEEE 802, e ANSI, e padrões conhecidos para a construção de MAN são Metro Ethernet, Frame Relay, PON (entre outros). Outro exemplo de rede metropolitana é o sistema utilizado nas TV's a cabo.
  • WAN (Wide Area Network, ou rede de longa distância): Uma WAN integra equipamentos em diversas localizações geográficas (hosts, computadores, routers/gateways, etc.), envolvendo diversos países e continentes.



Para fins de ilustração, seguem alguns exemplos de redes WAN no Brasil:


Este outro exemplo apresenta um diagrama de uma rede MAN MetroEthernet em Florianópolis (diagrama antigo .. tal rede não deve mais ser assim !):

Man-metro.png

Redes Locais (LAN)

Obs: obtido de Data and Computer Communications, livro de William Stallings, 8a edição:

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

Algumas tecnologias

  • Ethernet (IEEE 802.3): largamente utilizada hoje em dia, na prática domina amplamente o cenário de redes locais.
  • Token Ring (IEEE 802.5): foi usada nos anos 80 e início dos anos 90, mas está em desuso ... muito difícil de encontrar uma rede local deste tipo hoje em dia.
  • Fiber Channel: criada especificamente para interligar servidores em redes de armazenamento de dados (SAN).
  • Infiniband: especificamente criada para interligar equipamentos para fins de computação de alto-desempenho. Mantém-se na ativa nesse nicho específico.

Topologias

Uma topologia de rede diz respeito a como os equipamentos estão interligados. No caso da rede local, a topologia tem forte influência sobre seu funcionamento e sobre a tecnologia adotada. Dependendo de como se desenha a rede, diferentes mecanismos de comunicação são necessários (em particular o que se chama de acesso ao meio). A eficiência da rede (aproveitamento da capacidade de canal, vazão) e sua escalabilidade (quantidade de computadores e equipamentos que podem se comunicar com qualidade aceitável) também possuem relação com a topologia. A tabela abaixo exemplifica topologias conhecidas de redes locais.

Topologia Exemplo Tecnologias
Estrela Lan-Star.png Ethernet (IEEE 802.3) com hubs e switches
Anel
(em desuso)
Lan-Ring.png Token-ring (IEEE 802.5), FDDI
Barramento
(em desuso)
Lan-Bus.png Ethernet (IEEE 802.3)
Árvore Lan-Tree.png Ethernet (IEEE 802.3) com hubs e switches

Exemplos de uso de redes locais

Exemplos de redes locais são fáceis de apresentar. Praticamente toda rede que interconecta computadores de usuários é uma rede local - mesmo no caso de redes sem-fio, um caso especial a ser estudado mais a frente. A rede do laboratório de Redes 1, onde temos nossas aulas, é uma rede local. Os demais computadores da escola formam outra rede local. Quando em casa se instala um roteador ADSL e se conectam a ele um ou mais computadores, cria-se também uma rede local. Portanto, redes locais são extremamente comuns e largamente utilizadas. Ainda assim, cabem alguns outros exemplos de possíveis redes locais, mostrados abaixo:


Lan2-2011-1.png
Uma LAN típica com um link para Internet


Lab1.png
Exemplo: Rede do laboratório

Atividade

Realizar este conjunto de experimentos.



Arquitetura IEEE 802

A 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


Alguns padrões conhecidos (lista completa):

  • IEEE 802.3 e variações: conhecidos como LAN Ethernet
  • IEEE 802.1: tecnologias para interligação de LANs
  • IEEE 802.11 e variações: conhecidos como WLAN (redes locais sem-fio), o que inclui WiFi
  • IEEE 802.15: padrões para WPAN (redes pessoais sem-fio), incluindo Bluetooth

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. Por exemplo, o quadro Ethernet (padrão IEEE 802.3) tem este formato:


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 Ethernet).
  • 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. Isso é fundamental em redes sem-fio, tais como Wifi (IEEE 802.11) e Bluetooth (IEEE 802.15.3), porém não é mais necessário nas LAN ethernet atuais (IEEE 802.3), que operam em modo full-duplex.

Padrão 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.


Redes locais Ethernet (padrão IEEE 802.3 e extensões) são compostas de equipamentos que se comunicam, denominados estações (STA na norma IEEE 802.3), de equipamentos que os interligam (hubs e switches), e do meio de transmissão. A figura abaixo ilustra uma rede local hipotética com seus vários componentes.

Lab1-lan-demo.png


De forma geral, uma estação possui um ou mais adaptadores de rede (placas de rede, ou NIC – Network Interface Card), como na figura abaixo à esquerda. Os adaptadores de rede das estações são conectados a um switch por meio de cabos de rede TP (par trançado) com conectores RJ-45, mostrado na figura abaixo à direita.


Lab1-nic-switch.png


Em resumo, são estes os elementos de 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, árvore ou mesmo em anel !


Originalmente LANs Ethernet foram construídas usando um cabo único para interligar as estações (cabo coaxial). Posteriormente surgiram as redes baseadas em hubs, equipamentos que interligavam as estações em nível da camada física (funcionavam como repetidores). Atualmente essas redes são construídas usando switches, equipamentos que interligam as estacões em nível da camada de enlace (na verdade, da subcamada MAC). Um switch apresenta como benefícios, se comparado com hubs:

  1. atuação em nível de MAC: o switch faz o acesso ao meio com CSMA/CD, caso precise se comunicar com um equipamento em half-duplex, ao encaminhar um quadro quebrando o domínio de colisão; além disto, um switch pode operar em modo full-duplex, quando então inexiste a possibilidade de colisão.
  2. preservação da capacidade do canal: para quadros unicast, o switch encaminha um quadro somente pela porta onde reside o destinatário.

Essas características importantes devem fazer com que uma LAN com switches tenha um desempenho superior a uma LAN com hubs. Por desempenho entenda-se um número menor de colisões sob tráfego intenso (ou mesmo ausência total de colisões), e maior capacidade de canal vista por cada equipamento conectado ao switch.


O padrão sofreu um grande número de atualizações e extensões desde sua concepção nos anos 1980. Por exemplo, em sua primeira versão uma rede ethernet apresentava taxa de transmissão de 10 Mbps em half-duplex, porém atualmente essas redes operem em 1 Gbps em modo full-duplex. Na realidade, já existem versões em uso com taxas de 10 Gbps, e outras mais recentes com taxas de até 100 Gbps. Uma tabela dessas extensões ao padrão podem ser vistas na Wikipedia.


Além de taxas maiores de transmissão, a operação em modo full-duplex predominante nas versões recentes do padrão prescindem do controle de acesso ao meio feito pelo protocolo MAC. Quando em modo half-duplex, o controle de acesso ao meio do tipo CSMA/CD (Carrier Sense Multiple Access/Collision Detect - Acesso Múltiplo com Detecção de Portadora/Detecção de Colisões) ainda é necessário.

O acesso do tipo 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.

Csmacd-fluxograma.jpg
Fluxograma para o acesso ao meio com CSMA/CD do padrão IEEE 802.3.


As colisões e esperas (backoffs) impedem que esse protocolo de acesso ao meio aproveite totalmente a capacidade do meio de transmissão. 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.

Atividade

Realizar este conjunto de experimentos.


Endereçamento IPV4

Como visto em Redes de Computadores e Projeto 2, computadores e equipamentos na Internet (chamados de hosts) precisam ter um identificador único e que seja válido globalmente. Os endereços IP, definidos pelo protocolo da Internet (IP - Internet Protocol) são números de 32 bits que desempenham o papel de identificadores globais. Cada um desses endereços é comumente representado em uma notação decimal, com um número entre 0 e 255 para cada 8 bits. como mostrado na figura a seguir. Com isso, é possível em tese endereçar até hosts na Internet, o que equivale a pouco mais de 4 bilhões de endereços.

PJI3-Ip1.jpg
Um endereço IP apresentado em notação decimal e em binário

Configuração de endereços

O endereço IP de um host pode ser configurado de forma estática ou dinâmica. No primeiro caso, o usuário predefine o endereço IP no próprio equipamento. No segundo, o equipamento usa um protocolo especial de configuração para obter sua configuração de rede.


Um conjunto de informações são necessárias para que um host consiga efetivamente se comunicar em rede, as quais não se limitam ao endereço IP. Essas informações são:

  • Endereço IP e máscara de rede: um host precisa de um endereço para que possa se comunicar com outros hosts. A máscara de rede informa o tamanho da subrede IP em que ele se encontra.
  • Rota default (padrão): para se comunicar com hosts de outras subredes, é preciso enviar os pacotes para um roteador que saiba encaminhá-los a seus destinos. O roteador default (ou padrão) é um roteador para quem se destinam todos esses pacotes. Tecnicamente ele corresponde à rota para o destino 0.0.0.0/0.
  • Endereço IP do servidor DNS: usuários costumam endereçar hosts e servidores por seus nomes de domínio, e não por seus endereços IP. Isso é muito mais fácil de memorizar do que os endereços numéricos. Como explicado em aula, nomes de domínio são análogos a nomes de assinantes em um catálogo telefônico. No entanto, as aplicações precisam dos endereços IP para se comunicarem. O servidor DNS faz a tradução de nome de domínio para endereço IP, e é usado pelas aplicações transparentemente (isso é, você não percebe que isso ocorre). O endereço desse servidor deve ser configurado em cada host, para que se possam traduzir nomes de domínio.

Configuração estática

A configuração estática envolve um usuário gravar a configuração de rede de forma persistente na memória do host. Cada tipo de equipamento apresenta um procedimento diferente para armazenar a configuração de rede estática. Por exemplo, em computadores com sistema operacional Linux da família Debian (tais como Debian Ubuntu, Mint e muitos outros), a configuração de rede fica armazenada no arquivo /etc/network/interfaces:

iface eth0 inet static
  address 10.1.23.19
  netmask 255.255.255.0
  gateway 10.1.23.254


Em roteadores sem-fio TP-Link WDR 4300, essa configuração de rede pode ser gravada por meio de uma interface web para gerenciamento do equipamento:

PJI3-Tplink-lan.jpg
Menu Network->LAN da interface web do roteador sem-fio TP-Link WDR4300


E, em roteadores Cisco, a configuração estática é feita por meio de comandos na CLI (Command Line Interface), os quais ficam gravados na memória permanente do roteador.

router# configure terminal
router(config)# interface e0
router(config-if)# ip address 10.1.23.19 255.255.255.0
router(config-if)# exit
router(config)# ip route 0.0.0.0 0.0.0.0 10.1.23.254
router(config)# exit
router# write memory
router# write terminal
Building configuration...

Current configuration : 472 bytes
!
version 12.3
!
hostname Router
!
interface Ethernet0
 ip address 10.1.23.19 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.23.254

Configuração dinâmica

Um host pode obter suas informações de rede dinamicamente por meio do protocolo DHCP (Dynamic Host Configuration Protocol). Desta forma, não há necessidade de o usuário saber as informações de rede necessárias para configurar corretamente seu equipamento. Isso torna possível também centralizar e automatizar a distribuição de endereços de rede para hosts. Se alguma das informações precisar ser modificada (ex: o roteador default), basta alterá-las no serviço DHCP para que toda a rede seja eventualmente reconfigurada.

A maioria dos equipamentos de usuários vem de fábrica com configuração de rede dinâmica. Isso vale para computadores pessoais, em que os sistemas operacionais detectam as interfaces de rede e as configuram com DHCP, smartphones, tablets, câmeras IP, ATA e telefones IP, impressoras, e possivelmente outros equipamentos. Em computadores pessoais com sistemas operacionais Linux da família Debian, uma interface pode ser configurada dinamicamente se for declarada em /etc/network/interfaces desta forma:

auto eth0
iface eth0 inet dhcp


A configuração de interfaces com DHCP no arquivo /etc/network/interfaces não é o procedimento usual, ao menos não em versões desktop desses sistemas operacionais. Nesses casos, o mais comum é que tal configuração seja feita por um daemon chamado network-manager. Esse daemon implementa um serviço de configuração de rede automática para o computador, e tenta configurar automaticamente todas as interfaces de rede que não foram configuradas em /etc/network/interfaces.

Protocolo DHCP

DHCP (Dynamic Host Configuration Protocol) é um protocolo para obtenção automática de configuração de rede, usado por computadores que acessam fisicamente uma rede. Esses computadores são tipicamente máquinas de usuários, que podem usar a rede esporadicamente (ex: usuários ocm seus laptops, com acesso via rede cabeada ou sem-fio), ou mesmo computadores fixos da rede. O principal objetivo do DHCP é fornecer um endereço IP, a máscara de rede, o endereço IP do roteador default e um ou mais endereços de servidores DNS. Assim, um novo computador que acesse a rede pode obter essa configuração sem a intervenção do usuário.

Para esse serviço pode haver um ou mais servidores DHCP. Um computador que precise obter sua configuração de rede envia mensagens DHCPDISCOVER em broadcast para o port UDP 67. Um servidor DHCP, ao receber tais mensagens, responde com uma mensagem DHCPOFFER também em broadcast, contendo uma configuração de rede ofertada. O computador então envia novamente em broadcast uma mensagem DHCPREQUEST, requisitando o endereço IP ofertado pelo servidor. Finalmente, o servidor responde com uma mensagem DHCPACK, completando a configuração do computador cliente. Como a configuração tem um tempo de validade (chamado de lease time), o cliente deve periodicamente renová-la junto ao servidor DHCP, para poder continuar usando-a. O diagrama abaixo mostra simplificadamente esse comportamento:

Dhcp-diag.gif



Abaixo segue um diagrama de estados detalhado do DHCP, mostrando todas as possíveis transições do protocolo:

Dhcpfsm.png

O servidor DHCP identifica cada cliente pelo seu endereço MAC. Assim, o DHCP está fortemente relacionado a redes locais IEEE 802.3 (Ethernet) e IEEE 802.11 (WiFi).

Servidor DHCP

Em uma rede local em que hosts devem obter sua configuração de rede dinamicamente, deve haver ao menos um servidor DHCP. Esse serviço costuma estar disponibilizado em equipamentos de rede, tais como pontos de acesso sem-fio e roteadores. Por exemplo, o roteador sem-fio TP-Link WDR 4300 oferece esse serviço, que pode ser configurado e ativado por meio de sua interface de gerenciamento.

PJI3-Dhcp-tplink.jpg
Configuração do serviço DHCP na interface web do roteador TP-Link WDR4300


Podem existir mais de um servidor DHCP em uma mesma rede local, porém há que ter um cuidado. As faixas de endereços concedidas por diferentes servidores não podem se sobrepor. Assim, se um servidor DHCP oferece endereços entre 192.168.1.20 e 192.168.1.100, um outro servidor DHCP pode oferecer endereços entre 192.168.1.110 e 192.168.1.200, mas não entre 192.168.1.90 e 192.168.1.150.


Servidores DHCP como esse costumam ser limitados. Com eles se consegue tão somente definir a faixa de endereços IP a ser concedida, o tempo de concessão, o servidor DNS e o roteador default. Porém há muitas outras possibilidades no serviço DHCP, tais como:

  • Vincular um endereço IP a um host específico, com base em seu endereço MAC.
  • Informar o nome do domínio DNS e o nome do host
  • Informar os endereços de uma ou mais impressoras
  • Indicar um arquivo de boot a ser usado pelo host
  • ...e muitas outras opções !


O uso de um servidor DHCP completamente funcional demanda um programa especial a ser executado em um computador. O software ISC DHCP Server oferece todas as opções DHCP, além de ser altamente configurável. Ele pode ser instalado e executado em um computador com sistemas operacionais Linux, BSD, Solaris, entre outros da família Unix. Esse servidor DHCP é configurado por meio de um arquivo de configuração, cuja localização depende de como o software foi instalado. Em sistemas Ubuntu, em que o servidor DHCP pode ser instalado a partir de um pacote de software chamado isc-dhcp-server, esse arquivo está em /etc/dhcp/dhcpd.conf. Um exemplo simples desse arquivo está a seguir:

# tempos de concessão, em segundos
default-lease-time 600;
max-lease-time 7200;

# Algumas opções de uso comum
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 191.36.8.2, 191.36.8.3;
option domain-name "sj.ifsc.edu.br";

# subrede 192.168.1.0/24 com duas faixas de endereços a serem concedidos:
# 192.168.1.100 a 192.168.1.150
# 192.168.1.190 a 192.168.1.240

subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.100 192.168.2.150;
   range 192.168.1.190 192.168.2.240;
}

Atividades

Realizar este conjunto de experimentos.

Subredes IP

Uma subrede IP é representada por um prefixo de rede e uma máscara. O prefixo são os N bits mais significativos comuns a todos os endereços IP contidos em uma subrede (lembre que um endereço IP tem 32 bits). A máscara informa quantos bits tem o prefixo. A combinação de prefixo de rede e máscara funciona da seguinte forma:

Imagine que exista uma subrede contendo os endereços de 192.168.2.0 até 192.168.2.255. Se representarmos esses endereços em binário, podemos ver que os 24 bits mais significativos são os mesmos para todos os endereços:


Pji-prefixo1.png


A máscara de rede tem a forma de um endereço IP, porém com bits 1 na parte correspondente ao prefixo, e 0 no resto. Assim, para o exemplo acima a máscara de rede é 255.255.255.0. Outra forma de representar a máscara é simplesmente informar o tamanho em bits do prefixo, e no exemplo a máscara seria 24. Juntando o prefixo e a máscara, a subrede pode ser representada de uma destas duas formas:

  • 192.168.2.0/255.255.255.0
  • 192.168.2.0/24


Agora imagine que o prefixo tenha 28 bits, como mostrado nesta figura:


Pji-prefixo2.png


Por ter um prefixo mais longo, o tamanho dessa subrede é menor. Isso significa que ela contém menos endereços IP, tanto que o primeiro endereço é 192.168.2.0 e o último é 192.168.2.15. Essa subrede poderia ser representada por:

  • 192.168.2.0/255.255.255.240
  • 192.168.2.0/28


Aproveitando esse exemplo, pode-se mostrar uma outra subrede que, apesar de não parecer, é diferente da anterior:


Pji-prefixo3.png


Essa outra subrede contém endereços entre 192.168.2.16 e 192.168.2.31. Essa subrede poderia ser representada por:

  • 192.168.2.16/255.255.255.240
  • 192.168.2.16/28


Encaminhamento IP

Todo host é capaz de realizar uma função da camada de rede chamada de encaminhamento IP (IP forwarding). O encaminhamento é feito quando um host recebe um datagrama IP, e precisa decidir o que fazer com ele. O destino do datagrama depende do endereço de destino contido em seu cabeçalho IP.

  1. Se o endereço IP for o do próprio host: o conteúdo do datagrama é desencapsulado e entregue à camada superior.
  2. Se o endereço IP NÃO for o do próprio host: a tabela de rotas do host é consultada para buscar uma rota que satisfaça o endereço de destino. Caso ela exista, o datagrama é transmitido para o próximo roteador indicado nessa rota.


Uma rota serve para informar como se chega a um determinado destino. Um destino pode ser um único endereço IP, ou uma subrede (que contém um conjunto de endereços IP). Para que um pacote IP chegue a um destino, deve-se transmiti-lo para o próximo roteador em direção a esse destino. Esse próximo roteador também deve conhecer uma rota para tal destino, repetindo o mesmo procedimento. Ao menos duas informações compõem cada rota:

  • O destino, que é expressado como uma subrede: Uma subrede é representada por um prefixo de rede e uma máscara.
  • O próximo roteador, expressado por um endereço IP: o endereço IP do próximo roteador (também chamado de gateway, que significa portal em inglês), o qual deve pertencer à mesma subrede do equipamento que o especifica em uma rota.


No caso em que o endereço de destino não for o do próprio host, esse endereço é comparado com cada rota existente na tabela de rotas. Rotas com máscaras de rede maiores são testadas primeiro (o tamanho de uma máscara é definido pela quantidade de bits 1 que ela possui), pois são rotas para subredes menores e, portanto, mais específicas. Se nenhuma rota servir, o datagrama é silenciosamente descartado.

A tabela de rotas a seguir foi obtida em um computador com sistema operacional Linux.

aluno@M1:~$ route -n
Tabela de Roteamento IP do Kernel
Destino         Roteador        MáscaraGen.    Opções Métrica Ref   Uso Iface
0.0.0.0         191.36.9.254    0.0.0.0         UG    0      0        0 enp0s25
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 enp0s25
191.36.9.0      0.0.0.0         255.255.255.0   U     0      0        0 enp0s25
192.168.2.64    191.36.9.1      255.255.255.192 U     0      0        0 enp0s25

Supondo que esse host tenha que encaminhar um datagrama com endereço de destino 8.8.8.8, a busca por uma rota adequada seria esta:

  1. Rota para 192.168.2.64/26: ao aplicar a máscara /26 (255.255.255.192) ao endereço de destino 8.8.8.8, obtêm-se o prefixo 8.8.8.0. Como ele é diferente de 192.168.2.64, esta rota não serve.
  2. Rota para 191.36.9.0/24: ao aplicar a máscara /24 ao endereço de destino 8.8.8.8, obtêm-se o prefixo 8.8.8.0. Como ele é diferente de 191.36.9.0, esta rota não serve.
  3. Rota para 169.254.0.0/16: ao aplicar a máscara /16 ao endereço de destino 8.8.8.8, obtêm-se o prefixo 8.8.0.0. Como ele é diferente de 169.254.0.0, esta rota não serve.
  4. Rota para 0.0.0.0/0: ao aplicar a máscara /0 ao endereço de destino 8.8.8.8, obtêm-se o prefixo 0.0.0.0. Como ele é igual a 0.0.0.0 (prefixo da rota), esta rota será usada.


Se outro datagrama tiver endereço de destino 191.36.9.140, a busca pela rota seria:

  1. Rota para 192.168.2.64/26: ao aplicar a máscara /26 ao endereço de destino 191.36.9.140, obtêm-se o prefixo 191.36.9.128. Como ele é diferente de 192.168.2.64, esta rota não serve.
  2. Rota para 191.36.9.0/24: ao aplicar a máscara /24 ao endereço de destino 191.36.9.140, obtêm-se o prefixo 191.36.9.0. Como ele é igual a 191.36.9.0 (prefixo da rota), esta rota será usada.

Roteamento estático

Cada host ligado a Internet possui uma tabela de rotas. É pelo conteúdo dessa tabela que ele sabe como transmitir os pacotes para cada destino. Em seu computador, você pode visualizar essa tabela da seguinte forma:

# Isto funciona em qualquer *nix que se preze ...
netstat -rn


Ao se configurar uma interface de rede, cria-se uma rota automática para a subrede diretamente acessível via aquela interface. Isto se chama roteamento mínimo. Por exemplo, se uma interface de rede foi configurada com o endereço IP 192.168.10.1/24, sua tabela de rotas pode se apresentar assim:

aluno@M1:~> ifconfig eth1 192.168.10.1 netmask 255.255.255.0
aluno@M1::~> netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask            Flags   MSS Window  irtt Iface
192.168.10.0     0.0.0.0         255.255.255.0     U         0 0          0 eth1
127.0.0.0        0.0.0.0         255.0.0.0         U         0 0          0 lo


Rotas arbitrárias podem ser adicionadas manualmente a essa tabela. Uma rota possui estas informações:

  • Subrede de destino: isso se compõe de um prefixo de rede e uma máscara
  • Próximo roteador: o endereço IP do próximo roteador (opcional)
  • Interface de rede: a interface de rede por onde o datagrama deve ser transmitido (opcional)
  • Métrica: um número que informa o custo da rota (opcional .. usado por protocolos de roteamento dinâmico)

Obs: ao menos próximo roteador ou interface de rede precisam ser especificados.


Em sistemas Linux, rotas estáticas podem ser criadas com o comando route. A seguir mostram-se alguns exemplos de criação de rotas:

  • Rota para uma subrede de destino através de um próximo roteador:
    # route add -net prefixo/mascara gw IP_roteador
    route add -net 192.168.10.0/24 gw 191.36.9.254
    
  • Rota para um host específico através de um próximo roteador:
    # route add -host IP_host gw IP_roteador
    route add -host 192.168.10.5 gw 191.36.9.100
    
  • Rota para um host específico através de uma interface de rede: nesse caso, imagine que exista uma subrede que contém o IP do host, porém esse host específico está conectado a outra interface de rede.
    # route add -host IP_host gw IP_roteador
    route add -host 192.168.10.5 dev eth1
    


A rota default, por ser corriqueira, pode ser criada com uma palavra-chave especial no comando route. Essa rota tem o seguinte significado: se o destino não estiver em minha própria subrede, e nenhuma outra rota específica existir para a subrede onde se encontra, então repasse o datagrama para o roteador indicado. O comando route pode ser usado assim:

# adiciona a rota default, que passa pelo roteador 192.168.10.100
route add default gw 192.168.10.100


Outra forma de adicionar essa rota é:

# este comando tem o mesmo efeito que o anterior ...
route add -net 0.0.0.0/0 gw 192.168.10.100


Em roteadores Cisco, os exemplos sobre rotas estáticas implicariam estes comandos:

  • Rota para uma subrede de destino através de um próximo roteador:
    ip route 192.0.10.0/24 191.36.9.254
    
  • Rota para um host específico através de um próximo roteador:
    ip route 192.168.10.5/32 191.36.9.100
    
  • Rota para um host específico através de uma interface de rede: nesse caso, imagine que exista uma subrede que contém o IP do host, porém esse host específico está conectado a outra interface de rede.
    ip route 192.168.10.5/32 ethernet 1
    


Finalmente, se for usado o roteador sem-fio TP-Link WDR4300, rotas estáticas podem ser adicionadas no menu Advanced Routing -> Static Routing List em sua interface de gerenciamento:

PJI3-Tplink-routes.png
Criação de uma rota estática na interface de gerenciamento do roteador TP-Link WDR4300


Realizar este conjunto de experimentos.


Roteamento dinâmico

Roteamento dinâmico é definido como a capacidade de roteamento automático por uma rede. No roteamento estático, como visto, as possibilidades de rota são definidas por meio de uma tabela de roteamento fixa definida manualmente. No entanto, no roteamento dinâmico as tabelas de roteamento são construídas automaticamente pelo sistema, e mantidas constantemente atualizadas devido a comunicação entre os roteadores participantes da rede. Sendo assim, uma rede que utilize algum protocolo de roteamento dinâmico é sensível a qualquer mudança de topologia da rede, sendo capaz de adaptar-se rapidamente a um novo padrão de rotas. Em outras palavras, um protocolo de roteamento dinâmico pode ser definido como uma maneira que um roteador fala com seus vizinhos a fim de compartilhar informações sobre rotas disponíveis na rede. A partir da capacidade de auto organização, o roteamento dinâmico deve ser capaz de procurar a melhor rota alternativa para um fluxo de dados, quando determinados roteadores se tornam inacessíveis ou estejam congestionados. O roteamento dinâmico pode ser definido de duas maneiras: roteamento interno, ou externo. O roteamento interno é utilizado em redes locais, LANs e WANs, para realizar o roteamento de informações entre computadores que pertencem a um mesmo ambiente. No entanto, o roteamento externo acontece no núcleo da internet, e envolve um número muito grande de roteadores e hosts. Um dos protocolos clássicos de roteamento dinâmico para redes locais é o protocolo RIP. Por ser limitado, o RIP define padrões para o estabelecimento de rotas de comunicação que são aplicáveis a pequenas redes.

Protocolo RIP

O protocolo RIP (Routing Information Protocol) é um protocolo de vetor de distância, pois utiliza tabelas de distância, destinado a interconexão de pequenas redes. O protocolo RIP foi um dos primeiros protocolos de roteamento baseado em vetor de distância aplicado a uma grande variedade de sistemas. O RIP possui as seguintes características principais de funcionamento:

  1. O protocolo envia mensagens atualizadas sobre rotas a cada 30 segundos;
  2. O protocolo envia a tabela completa para os roteadores da rede a cada atualização;
  3. O protocolo utiliza uma métrica baseada em distância, medida por saltos ou hopcount;
  4. O RIP utiliza o algoritmo de Bellman-ford para determinar o melhor caminho para um determinado fluxo de dados;
  5. O RIP utiliza a porta 520;
  6. O RIP possui um hopcount máximo de 15 saltos, sendo assim qualquer rede com 16 ou mais saltos de distância é considerada inalcançável.

A lógica de funcionamento do RIP é baseada em roteadores ativos, configurados como roteadores que realizam comunicação das rotas aos demais, e roteadores passivos que não disseminam mensagens porém atualizam suas rotas quando recebem informações atualizadas.


Um roteador ativo mantém uma tabela de roteamento que possui os identificadores e IPs dos roteadores vizinhos, a rota de acesso, e um número inteiro que representa a distância do roteador até determinada rede. As tabelas são anunciadas para todos os roteadores da rede. O envio das tabelas de roteamento pelos roteadores acontece por broadcast em intervalos de tempo geralmente definidos para 30 segundos. Quando um nó recebe uma informação atualizada de determinado roteador vizinho, substitui sua tabela pela tabela atualizada. Para indicar a distância até uma determinada rede, o protocolo RIP utiliza uma métrica baseada em contagem de saltos, ou seja, quantos roteadores existem entre o roteador de origem e a rede de destino.



Rip.png

Exemplo RIP (De A para F)

Neste exemplo um determinado nó A deseja se comunicar com o nó E.
Inicialmente os roteadores possuem apenas suas próprias rotas definidas.


Partindo de A para Enlace Métrica
A Local 0


Neste exemplo, A inicia a comunicação enviando sua tabela. Quando recebem a mensagem de A, B e C se atualizam.

Partindo de B para Enlace Métrica
B Local 0
A A para B 1


Partindo de B para Enlace Métrica
C Local 0
A A para C 1


Agora B e C enviam suas tabelas atualizadas para A, E e D respectivamente. Logo A, E, D atualizam suas tabelas e enviam por broadcast para todos os roteadores.

Partindo de E para Enlace Métrica
E Local 0
C C para E 1
A C para E 2


Partindo de D para Enlace Métrica
D Local 0
B B para D 1
E D para E 1
A D para B 2


Partindo de A para Enlace Métrica
A Local 0
B A para B 1
C A para C 1
D A para B 2
E A para C 2


E envia sua tabela atualizada para F, que atualiza sua tabela.

Partindo de F para Enlace Métrica
F Local 0
E E para F 1
A E para F 3
B E para F 3
C E para F 2
D E para F 2


F atualiza sua tabela e envia para todos.


.
.
.


Quando A recebe a tabela atualizada de F, atualiza sua própria tabela. A seguir temos a tabela do A depois da atualização.

Partindo de A para Enlace Métrica
A Local 0
B A para B 1
C A para C 1
D A para B 2
E A para C 2
F A para C 3

Atividades

Realizar este conjunto de experimentos.


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

As LANs podem ser interligadas utilizando ativos de redes como: hubs, switches e roteadores. Porém nesta seção trataremos dos switches, que são equipamentos que funcionam em conformidade com o padrão IEEE 802.1D. Os switches são peças essenciais na infraestrutura de uma LAN.

Nos dias atuais, não é mais usual utilizar bridges para dividir a rede em segmentos pois os switches já desempenham essa função. Os switches criam segmentos individuais para cada host, o que praticamente elimina o problema das colisões, além de possibilitar segmentar uma rede. Um switch possuí várias portas, cada qual podendo se conectar a um computador ou a uma outra LAN. A função do switch é repassar os pacotes entre os computadores que estão conectados a ele, utilizando o endereço em cada pacote para determinar para qual computador enviá-lo.


Segmentação de LANs

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.

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

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

Realize estes experimentos sobre segmentação de LANs.


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


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.


A interligação de segmentos de uma LAN pode conter enlaces redundantes para prover tolerância a falhas: caso um enlace falhe, o que isolaria uma parte da rede, outro enlace pode ser usado para manter a conectividade. No entanto a existência de enlaces redundantes cria loops (“circuitos fechados”) na rede, e isto causa sérios problemas:

  1. Os switches não conseguem localizar corretamente as estações, pois a repetição de quadros para estações ainda desconhecidas, ou quadros em broadcast, faz com que a estação de origem apareça a cada repetição em um segmento diferente da rede.
  2. Quadros em broadcast ficam presos eternamente nos loops, consumindo parte da capacidade da rede. À medida que mais quadros em broadcast forem transmitidos, a capacidade disponível se reduz, até que em algum momento chegue a um colapso.


Stp-exemplo.png


A solução para esse problema é eliminar os loops desabilitando alguns enlaces, de forma que sempre exista apenas um caminho entre cada par de estações na rede. Isto se faz com um algoritmo chamado de Spanning Tree, e que é implementado pelo protocolo STP (Spanning Tree Protocol), definido na norma IEEE 802.1d. Esse protocolo identifica um switch como sendo o nó raiz da rede, e faz com que cada outro switch tenha apenas um enlace em direção à raiz. A seleção do nó raiz depende dos identificadores dos switches, chamados de Bridge ID, e a escolha dos enlaces a serem mantidos depende do custo do caminho até a raiz. O protocolo funciona com o envio periódico de mensagens de configuração, chamadas de BPDU (Bridge PDU), por todos os switches da rede.


Atividade

Realize as atividades sobre STP.


Vamos refletir sobre a situação a seguir...


Em uma LAN composta por switches, enlaces entre switches formados por um único cabo apresentam algumas limitações:

  1. Se algum problema acontecer com o cabo, ou nas portas dos switches envolvidos, a comunicação entre os switches é interrompida
  2. O enlace pode se tornar um gargalo, caso por ele passe um tráfego agregado de grande intensidade


Para entender essas questões, tome-se como exemplo a seguinte rede:

Pji3-Lag0.jpg
Uma rede com um switch central (core) e switches periféricos

Nessa rede, o switch central (core) integra os demais switches da rede. Todo o tráfego entre os dois lados da rede passa por esse switch, e pelos enlaces entre ele e os switches periféricos. Se um desses enlaces se romper, os dois lados da LAN ficam isolados. E, se muitos computadores estiverem se comunicando dois lados da rede, o switch core se torna um gargalo, limitando a taxa de transmissão máxima que pode ser obtida.

Agregação de enlace

A agregação de enlace (LA - Link Agregation), descrita no padrão IEEE 802.1ax, possibilita que dois ou mais enlaces físicos entre dois switches operem como um único enlace lógico (chamado de LAG - Link Aggregation Group). O enlace agregado tem uma capacidade que equivale à soma das capacidades dos enlace físicos. Assim, um enlace agregado composto por dois enlaces físicos de 1 Gbps tem capacidade de 2 Gbps. Além disso, se um dos enlace físicos se romper, o enlace agregado continua a funcionar, porém com capacidade reduzida. A figura a seguir ilustra um enlace agregado formado por três enlaces físicos entre dois switches.

Pji3-Lag1.jpg
Um enlace agregado entre dois switches formado por três enlaces físicos


O estabelecimento do enlace agregado envolve configurar as portas os switches que dele fazem parte. Isso pode ser feito de forma estática ou dinâmica:

  • Estática: definem-se manualmente nos switches as portas que fazem parte do enlace agregado.
  • Dinâmica: definem-se nos switches os grupos de portas que podem estabelecer enlace agregados. O protocolo LACP (Link Aggregation Control Protocol) é então utilizado para que os switches negociem o estabelecimento do enlace agregado.

LACP: Link Aggregation Control Protocol

O protocolo LACP negocia enlaces agregados entre switches, contanto que estas condições estejam satisfeitas:

  • os enlaces físicos sejam full-duplex
  • todos enlaces envolvidos possuam mesma taxa de bits
  • os enlaces físicos estejam entre os mesmos dois switches

Estas figuras (obtidas nesta página) ilustram o estabelecimento de um enlace agregado com LACP, uma vez que as condições acima estão satisfeitas:

Pji3-La1a.jpeg
Dois switches com quatro enlaces físicos de 100 Mbps entre eles


Pji3-La1b.jpeg
Após formação do enlace agregado, é como se houvesse um enlace de 400 Mbps (4 x 100 Mbps)


Uma vez estabelecido um enlace agregado, chamado de LAG, o LACP trabalha para que:

  • O enlace se recupere automaticamente em caso de falha de um ou mais enlaces físicos. Contanto que ao menos um enlace físico esteja em funcionamento, o enlace LAG continua a existir.
  • Os quadros de transmissões de dados sejam distribuídos entre os enlaces físicos.
  • Todos os quadros de uma comunicação em particular sejam transmitidos por um mesmo enlace físico, de forma a garantir que eles sejam recebidos na mesma ordem em que foram enviados.


Por fim, em um switch, do ponto de vista do LACP, cada porta pode ser ativa ou passiva:

  • Ativa: a porta toma iniciativa de enviar mensagens LACP para negociar o enlace agregado com o porta do outro switch onde está conectada
  • Passiva: a porta não envia mensagens LACP, a não ser que receba uma mensagem LACP vinda do outro switch.

Atividade

Realize estes experimentos sobre agregação de enlace.

Padrão IEEE 802.11 (WLAN)

O padrão IEEE 802.11 define uma tecnologia de redes locais sem-fio (WLAN), mais conhecida como WiFi. Esse tipo de rede tem como algumas características o baixo custo dos dispositivos, facilidade de utilização e boas taxas de transmissão em curtas distâncias (algumas dezenas de metros). Apesar de ter sido projetada para redes locais, essa tecnologia também tem sido usada para redes de média distância (alguns km). No entanto, para distâncias mais longas o padrão precisa ser adaptado para que funcione de forma eficiente. Para entender como criar enlaces de acesso sem-fio de alguns quilômetros usando esse tipo de tecnologia, é necessário entender seus princípios de funcionamento.

Estrutura de uma rede IEEE 802.11

Uma rede local sem-fio (WLAN) IEEE 802.11 é implantada por um equipamento especial chamado de ponto de acesso (AP - Access Point). Esse equipamento estabelece uma WLAN, de forma que computadores, smartphones, PDAs, laptops, tablets (e outros dispositivos possíveis) possam se comunicar pelo canal sem-fio. Esses dispositivos são denominados estações sem-fio (WSTA - Wireless Station), e se comunicam usando o AP como intermediário. Isso significa que todas as transmissões na WLAN são intermediadas pelo AP: ou estão indo para o AP, ou vindo dele. Além disso, uma WSTA somente pode se comunicar na WLAN se primeiro se associar ao AP - isto é, se registrar no AP, sujeitando-se a um procedimento de autenticação.

Do ponto de vista da organização da WLAN, a menor estrutura possível é o BSS (Basic Service Set), mostrado na figura abaixo. Um BSS é formado por um AP e as WSTA a ele associadas. O BSS possui um nome, identificado pela sigla SSID (Service Set Identifier), que deve ser definido pelo gerente de rede. O BSS opera em um único canal, porém as transmissões podem ocorrer com diferentes taxas de bits (cada quadro pode ser transmitido com uma taxa, dependendo da qualidade do canal sem-fio conforme medida pela WSTA que faz a transmissão). Por fim, apenas uma transmissão pode ocorrer a cada vez, o que implica o uso de um protocolo de acesso ao meio (MAC) pelas WSTA e AP.


Wlan1.png


O AP opera em nível de enlace, de forma parecida com um switch ethernet (porém sua tarefa é um pouco mais complexa ...). Isso quer dizer que o AP não usa o protocolo IP para decidir como encaminhar os quadros das WSTA, e assim não faz roteamento. Uma consequência desse modo de operação do AP é que a junção de dois ou mais AP por meio de um switch ethernet, com seus respectivos BSS, faz com que WSTAs em diferentes BSS possa se comunicar como se fizessem parte da mesma rede local. A união de dois ou mais BSS, mostrada na figura a seguir, se chama ESS (Extended Service Set). Em um ESS, todos os BSS possuem o mesmo SSID. No entanto, ao se criar um ESS deve-se cuidar para evitar que BSS vizinhos usem o mesmo canal.

Wlan2.png


As redes IEEE 802.11b e IEEE 802.11g usam a frequência 2.4 GHz para seus canais, que são espaçados a cada 5 MHz. As redes IEEE 802.11a e IEEE 802.11n usam a frequência de 5 GHz. No caso de IEEE 802.11g, ainda a mais comum de ser usada, os canais são numerados de 1 a 11. Apesar de haver 11 canais, apenas três deles (no máximo) não apresentam sobreposição. Isso se deve à modulação OFDM usada nessa rede, que na prática ocupa uma largura de banda de pouco mais de 20 MHz. A tabela abaixo mostra os canais usados em IEEE 802.11g, indicando a lista de canais interferentes de cada canal.

Wlan-canais.png


No caso da banda de 5 GHz há muito mais canais:

PJI3-Wifi-5ghz.jpg

Sistemas de Distribuição

Uma típica WLAN com estrutura distribuída pode ser criada explorando-se o conceito de Sistema de Distribuição (DS - Distribution System).

Em uma rede IEEE 802.11, vários BSS podem se combinar para formarem um ESS (Extended Station Set). A interligação entre os AP deve ser feita em nível de enlace, seja por uma rede cabeada ou por links sem-fio. Essa interligação é denominada Sistema de Distribuição, estando exemplificada na figura abaixo:


80211-ds.png


O sistema de distribuição funciona como uma ponte entre as WSTA, como mostrado na figura abaixo. Assim, se dois AP forem interligados, as WSTA que pertencem a seus BSS poderão se comunicar como se estivessem na mesma rede local.


80211-ds2.png


Sistemas de distribuição podem ser implantados usando o próprio canal sem-fio, sendo assim denominados WDS (Wireless Distribution System).

Pji3-80211-wds.png


A cobertura de uma área envolve um planejamento que leve em conta as taxas mínimas desejáveis e as características dos equipamentos (potências de transmissão e ganhos de antenas) e do ambiente (existência de obstáculos, reflexões, e fontes de ruído). Além disso, deve-se minimizar a interferência entre BSS vizinhos, o que pode ser feito escolhendo-se canais que não se sobreponham. A figura abaixo mostra conceitualmente como se podem escolher os canais dos AP para atingir esse objetivo.

80211-freq-planning.png


Desta forma, podem-se criar BSS para cobrir uma área e aproveitar melhor a capacidade do meio de transmissão.

80211-cobertura.png

Deve-se levar em conta que a qualidade do sinal tem relação com a modulação usada (e da taxa de dados), assim o limiar entre um BSS e outro depende de como as estações medem a qualidade de sinal e quais as taxas mínimas aceitáveis. A figura abaixo ilustra possíveis alcances para diferentes taxas de dados.

80211-ranges-rates.png
Taxas em função da distância do AP (exemplo, pois depende das condições do ambiente e dos equipamentos)

Considerações sobre implantação de redes locais sem-fio

Vimos que, para ampliar a cobertura de uma rede sem-fio IEEE 802.11, usam-se vários AP interligados em um Sistema de Distribuição (DS). Uma das maiores dificuldades ao se implantar uma rede sem-fio é determinar:

  • quantos AP são necessários
  • onde devem ser instalados
  • qual o canal e potência de transmissão a serem usados em cada AP.

Existem algumas técnicas para estimar a cobertura de cada AP, dados sua potência de transmissão e as características do ambiente em que se encontra (paredes, portas, outros obstáculos). Um bom resumo pode ser encontrado no TCC "Estudo e projeto para o provimento seguro de uma infra-estrutura de rede sem fio 802.11" de Cesar Henrique Prescher, defendido em 2009. Mas mesmo que se apliquem as recomendações ali descritas, ao final será necessário fazer uma verificação em campo da rede implantada. Para isso deve-se medir a qualidade de sinal sistematicamente na área de cobertura, para identificar regiões de sombra (sem cobertura ou com cobertura deficiente) e de sobreposição de sinais de APs. Tal tarefa implica o uso de ferramentas apropriadas e da aplicação de medições metódicas.

O MAC CSMA/CA

O protocolo MAC usado em redes IEEE 802.11 se chama CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance). Ele foi desenhado para prover um acesso justo e equitativo entre as WSTA, de forma que em média todas tenhas as mesmas oportunidades de acesso ao meio (entenda isso por "oportunidades de transmitirem seus quadros"). Além disso, em seu projeto foram incluídos cuidados para quue colisões sejam difíceis de ocorrer, mas isso não impede que elas aconteçam. Os procedimentos e cuidados do MAC para evitar e tratar colisões apresentam um certo custo (overhead), que impedem que as WSTA aproveitem plenamente a capacidade do canal sem-fio. Consequentemente, a vazão pela rede sem-fio que pode de fato ser obtida é menor que a taxa de bits nominal (por exemplo, com IEEE 802.11g e taxa de 54 Mbps, efetivamente pode se obter no máximo em torno de 29 MBps).

O protocolo CSMA/CA implementa um acesso ao meio visando reduzir a chance de colisões. Numa rede sem-fio como essa, não é possível detectar colisões, portanto uma vez iniciada uma transmissão não pode ser interrompida. A detecção de colisões, e de outros erros que impeçam um quadro de ser recebido pelo destinatário, se faz indiretamente com quadros de reconhecimento (ACK). Cada quadro transmitido deve ser reconhecido pelo destinatário, como mostrado abaixo, para que a transmissão seja considerada com sucesso.

Wlan-ack.png
Envio de um quadro de dados, com subsequente reconhecimento (ACK)


O não recebimento de um ACK desencadeia uma retransmissão, de forma parecida com o procedimento de retransmissão do CSMA/CD ao detectar colisão. Antes de efetuar uma retransmissão, o MAC espera um tempo aleatório denominado backoff (recuo). Esse tempo é sorteado dentre um conjunto de possíveis valores que compõem a Janela de Contenção (Cw - Contention Window), representados no intervalo [0, Cw]. O valor de Cw varia de (15 para IEEE 802.11a/g/n e 31 para 802.11b) a (1023), e praticamente dobra a cada retransmissão de um mesmo quadro. A figura abaixo ilustra as janelas de contenção para retransmissões sucessivas.

Wlan-backoff.png
Backoff para retransmissões sucessivas


Resumidamente, o protocolo MAC usa basicamente dois mecanismos principais para fazer o acesso ao meio:

  • Antes de uma transmissão, verifica-se se o canal está livre. Caso não esteja, deve-se primeiro aguardar que fique livre.
  • Cada quadro transmitido deve ser confirmado pelo receptor. Isso quer dizer que o receptor deve enviar um quadro de confirmação para o transmissor (ACK). Se esse quadro ACK não for recebido, o transmissor assume que houve um erro. Nesse caso, o transmissor faz uma retransmissão.
  • Antes de uma retransmissão o transmissor se impõem um tempo de espera aleatório chamado de backoff. A duração máxima do backoff depende de quantas retransmissões do mesmo quadro já foram feitas.


A figura abaixo ilustra um cenário em que cinco WSTA disputam o acesso ao meio. Repare os backoff feitos pelas WSTA antes de iniciarem suas transmissões. Esse backoff sempre precede uma transmissão quando a WSTA for verificar o canal sem-fio e o encontra ocupado (pense em por que o MAC deve fazer isso ...).

Wlan-csmaca.png


Por fim, o MAC CSMA/CA usado nas redes IEEE 802.11 define uma formato de quadros, mostrado na figura abaixo. Note que ele é diferente do quadro ethernet, e portanto o AP precisa traduzir os cabeçalhos de quadros que viajam da rede cabeada para a WLAN, e vice-versa. Note também que os endereços MAC do CSMA/CA são os mesmos que em redes ethernet.


Wlan-frame.png

Atividade

Realize estes experimentos sobre redes sem-fio.