Mudanças entre as edições de "IER60808: Interligação de LANs"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 289: Linha 289:
  
 
[[imagem:pji3-Vlan-3.jpg|600px]]
 
[[imagem:pji3-Vlan-3.jpg|600px]]
 +
<br>Topologia física ([http://tele.sj.ifsc.edu.br/~msobral/ier/vlan-ex1.conf arquivo de configuração do Netkit2])
  
  

Edição das 11h37min de 25 de setembro de 2019


  • Capítulo 15 do livro "Comunicação de Dados e Redes de Computadores, 4a ed.", de Behrouz Forouzan.
  • Capítulo 5 (seção 5.4) 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.


Nas aulas sobre introdução a redes locais (LAN), foi visto que um elemento essencial para criar uma LAN é o switch. Esse equipamento serve para interligar os demais dispostivos que usam a rede, tais como computadores, servidores e roteadores. Toda a organização de uma LAN, que diz respeito ao desenho da rede (sua topologia) e controles sobre as comunicações dos dispositivos no escopo da LAN, são feitos nos switches por meio de algumas tecnologias para interligação de redes locais.

Acesso à interface de gerenciamento de equipamentos de rede

Equipamentos de rede gerenciáveis podem ser configurados tipicamente com estes métodos:

  • Interface web: alguns equipamentos oferecem uma interface de configuração via web, a qual deve ser acessada por meio de um endereço IP de gerenciamento do equipamento (detalhes devem ser obtidos de seu manual). Assim, basta conectar um computador a uma interface de rede do equipamento e acessar seu endereço IP usando um navegador. Esse tipo de interface é prática e de uso simplificado, porém nem sempre completa.
  • Interface de linha de comando (CLI) via SSH ou telnet: A interface de linha de comando, chamada também de CLI (Command Line Interface), é um tipo de interface de gerenciamento tradicional. Por essa interface usualmente se tem acesso a todos os possíveis comandos e configurações implementados em um equipamento. Esse tipo de interface comumente se apresenta na forma de um menu hierarquizado. Roteadores e switches Cisco oferecem exemplos clássicos de CLI. Tal tipo de interface pode ser acessado através da rede, usando os programas SSH ou Telnet.
  • Interface de linha de comando (CLI) via console (porta serial): Muitos equipamentos possibilitam que a interface CLI seja também acessada diretamente via porta serial, chamada de console. Esses equipamentos disponibilizam uma porta serial do tipo RS-232, ou uma porta USB que emula uma porta serial desse tipo. Para acessar o equipamento deve-se ter em mãos um cabo serial apropriado, um computador com porta serial RS-232 (se não houver a opção USB), e um programa emulador de terminal a ser executado no computador. O Linux oferece alguns programas emuladores de terminal tais como minicom e cutecom, e o Windows oferece o clássico hyperterminal. Esse tipo de acesso envolve configurar a porta serial do computador para que consiga se comunicar com o equipamento, segundo instruções do fabricante. Essa configuração envolve estes parâmetros:
    • Taxa de bits: taxas de bits de comunicação típicas são 9600 (Cisco), 19200, 38400 (TP-Link), 57600 e 115200 bps.
    • Tamanho da palavra: os equipamentos usam sempre 8 bits por palavra
    • Stop bits: os equipamentos usam tipicamente 1 stop bit
    • Paridade: não se usa paridade
    • Controle de fluxo: normalmente feita automaticamente (não se deve selecionar o tipo de controle de fluxo)

Os manuais costumam apresentar a configuração da porta console com esta notação:

taxa tamanhoPalavra paridade stopbit

Ex:

9600 8N1

... que significa:
Taxa: 9600 bps
Tamanho da palavra: 8 bits
Paridade: N (desativada)
Stop bits: 1


Atividade

  1. Identifique as formas de acesso à interface de gerenciamento dos switches TP-Link SG 3210 ou Intelbras SG-2404
  2. Acesse a interface de gerenciamento do seu switch com cada um dos métodos disponíveis.

Curiosidade: acesso programático à interface CLI

Imagine que seja necessário acessar uma interface CLI pela porta console, e executar comandos de forma automatizada. Isso poderia ser necessário para, por exemplo, executar uma série de comandos de manutenção rotineiros. Isso poderia ser facilmente realizado com um programa Python ...

O acesso a portas seriais em programas Python pode ser feito usando o módulo serial, que faz parte do pacote pyserial. Com esse módulo, pode-se acessar uma porta serial, e por ela enviar e receber dados. O pacote pyserial pode ser instalado com este comando:

pip3 install pyserial


Por exemplo, este pequeno programa mostra o menu principal de um equipamento de rede:

from serial import Serial

# O prompt apresentado pelo equipamento
Prompt = b'>'

# O comando para mostrar a ajuda do menu
Help = b'?\n'

# acessa a porta serial /dev/ttyS0, com taxa de 9600 bps
porta = Serial('/dev/ttyS0', 9600)

# envia o comando, e aguarda o resultado
porta.write(Help)
menu = porta.read_until(Prompt)

# Mostra o resultado da execução do comando
print(menu.decode('ascii'))


Acesso pela rede, usando telnet ... parecido com acesso via serial
from telnetlib import Telnet

# O prompt apresentado pelo equipamento
Prompt = b'>'

# O comando para mostrar a ajuda do menu
Help = b'?\n'

# Credenciais de acesso
Login = b'admin\n'
Senha = b'admin\n'

# conecta ao terminal remoto no equipamento (ex: equipamento tem IP 10.0.0.1)
con = Telnet('10.0.0.1')

# Faz o login no equipamento
con.read_until(b'login:')
con.write(Login)
con.read_until(Senha)
con.write(b'admin\n')
con.read_until(Prompt)

# envia o comando, e aguarda o resultado
con.write(Help)
menu = con.read_until(Prompt)

# Mostra o resultado da execução do comando
print(menu.decode('ascii'))


Sendo assim, escreva um programa Python que reinicie o equipamento via serial, e aguarde até que ele esteja novamente pronto para uso.

Algo útil ???

Mas para que serviria algo assim, além de uma curiosidade mostrada em aula ? Uma possível aplicação realmente útil disso seria criar um concentrador de acesso aos consoles de equipamentos de uma rede, que disponibilizaria o acesso via uma interface web. O concentrador poderia contatar os consoles por portas seriais, telnet ou ssh. Essa aplicação ajudaria um técnico a acessar os consoles dos equipamentos remotamente, bastando para isso ter acesso à rede e um computador com navegador (ou mesmo celular).

Se você acha isso interessante, e gostaria de saber como poderia ser feito, fale com o professor :-)

Interligação de LANs (padrão 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 elimina o problema das colisões, além de possibilitar segmentar uma rede. Um switch possui várias portas, cada qual podendo se conectar a um computador ou a uma outra LAN. A função do switch é repassar os quadros entre os computadores que estão conectados a ele, utilizando o endereço MAC de destino existente em cada quadro para determinar por qual porta retransmiti-lo.

Um switch aprende dinamicamente os endereços MAC acessíveis em cada porta usando a técnica bridge learning. Para saber quais os endereços MAC conectados a cada porta, um switch registra em uma tabela o endereço MAC de origem de um quadro recebido por uma porta. Essa tabela de endereços MAC associa cada endereço aprendido à porta por onde o respectivo quadro foi recebido. Por exemplo, imagine 2 computadores, A e B, conectados a um mesmo switch porém em portas distintas como mostrado na Figura a seguir:

Ex switch.jpg

Se o computador A deseja se comunicar com B, A envia um pacote para B. Entretanto, o switch não saberá em um primeiro momento a qual porta o PC B esta conectado. Sendo assim, o switch registra em sua tabela que o computador A está conectado na porta 1 ...


Ex switch2.jpg


... e envia o pacote de A para todas as portas.


Ex switch3.jpg


Apenas o B aceita o quadro, pois o endereço MAC de destino nele contido corresponde a seu próprio endereço MAC. Supondo que B responda a mensagem de A (imagine que o quadro recebido por B contivesse uma mensagem ICMP echo request), o switch recebe esse quadro enviado por B, e então anota em sua tabela de endereços MAC o endereço MAC de origem desse quadro e a porta por onde foi recebido. Uma vez preenchida a tabela, o switch pode encaminhar os quadros diretamente para A e B, estabelecendo comunicação isolada entre os computadores de origem e destino. Por fim, os quadros de broadcast e multicast são sempre enviados por todas as portas do switch, a não ser que a rede seja explicitamente segmentada em VLANs (ver adiante).


Ex switch4.jpg

Atividade

  1. Quais são as características dos switches do laboratório ?

Parte 1: Como switches aprendem

  1. Em seu computador execute o wireshark, ativando a captura na interface eth0
  2. O professor irá executar ping para todos os computadores do laboratório. Observe no wireshark as mensagens ICMP echo request recebidas:
    • Você consegue ver mensagens ICMP echo request destinadas a outros computadores ?
    • Quais os endereços MAC de destino das mensagens mostradas pelo wireshark ? Compare-a com o endereço MAC da sua interface de rede eth0.
  3. Agora o professor irá fazer ping para um endereço IP que ele sabe não estar ativo na rede (nenhum equipamento usa esse endereço).
    • Você consegue ver mensagens ICMP echo request destinadas a esse endereço IP ?
    • Qual o endereço MAC de destino das mensagens mostradas pelo wireshark ? Compare-a com o endereço MAC da sua interface de rede eth0.
  4. Em seguida, o professor ativará um equipamento na rede que usa esse endereço IP, mantendo o ping em execução.
    • Você consegue ver mensagens ICMP echo request destinadas a esse endereço IP ?
    • Qual o endereço MAC de destino das mensagens mostradas pelo wireshark ? Compare-a com o endereço MAC da sua interface de rede eth0.
  5. Por fim, o professor ativará fará um novo ping, porém desta vez destinado a um endereço IP de broadcast.
    • Você consegue ver mensagens ICMP echo request destinadas ao endereço IP de broadcast?
    • Qual o endereço MAC de destino das mensagens mostradas pelo wireshark ? Compare-a com o endereço MAC da sua interface de rede eth0.
  6. Com esse experimento, o que se pode concluir sobre como um switch ethernet encaminha os quadros transmitidos em uma LAN ?
  7. Finalmente, acesse a interface de gerenciamento do seu switch e visualiza a tabela de endereços MAC por ele mantida. Procure ali o endereço MAC do seu computador, e veja que informações o switch associa a ele.
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 (ou TRUNK): 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 (ou ACCESS): 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

Parte 1: Segmentação de LANs com VLANs

  1. A rede descrita neste arquivo de configuração do Netkit2 é composta por um switch e quatro computadores. essa rede possui duas VLANs (VLAN 5 e VLAN 10), de forma que pc1 e pc4 pertencem a VLAN 5, e os computadores pc2 e pc3 estão na VLAN 10. Execute essa rede e teste a comunicação entre os computadores - quais computadores conseguem se comunicar ?

    Vlans-ex1.png
  2. A peça-chave na implantação das VLANs foi o switch. Observe a configuração dessa rede, notando que atributos foram usados nas portas do switch.
  3. Seja esta outra rede, composta por dois switches e duas VLANS:
    Bridge3.png
    • Execute essa rede a partir deste arquivo de configuração do Netkit2.
    • Teste a comunicação entre os computadores: quais pares conseguem se comunicar ?
    • Escolha um par de computadores, de forma que um deles esteja no switch 1 e o outro no switch 2. Ative a comunicação com ping entre eles, e e, seguida execute o wireshark no switch 1 de forma a capturar na interface eth3. O que se pode notar no cabeçalho Ethernet dos quadros capturados ?
  4. 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. Após entender o protótipo, implante essa rede no laboratório usando os switches TP-Link SG-3210.

      Vlan-ex1.png

    • 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.
  5. Agora que essa rede foi bem entendida, implemente-a fisicamente no laboratório: use os switches TP-Link e as VM Grafico-3.

Acesso à interface de gerenciamento do switch (web):

  1. Conecte o cabo de rede do computador a uma porta do switch
  2. Acrescente o IP 192.168.0.2/24 à interface eth0 do seu computador
  3. Abra um navegador, e acesse a URL: http://192.168.0.1/
  4. Se o acesso à interface de gerenciamento não funcionar, então será necessário resetar o switch via porta serial
    1. Conecte o cabo serial entre o PC e a porta console do switch
    2. No PC execute o programa minicom -s
    3. Configure a porta serial para 38400 bps, 8N1, sem controle de fluxo
    4. Saia do menu de configuração do minicom (opção Sair), e tecle ENTER
    5. No prompt do switch TL-SG3210> digite enable e tecle ENTER
    6. Agora digite reset e tecle ENTER
    7. Espere o switch reiniciar, e repita o acesso via navegador

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


Em uma rede real, usa-se como diretriz a centralização dos ativos para a implantação de sua infraestrutura física. Isso independende de quais LANs e respectivas subredes existirão (infraestrutura lógica), e VLANs têm um papel central nesse tipo de infraestrutura.

Esta atividade envolve implantar uma infraestrutura física composta por dois conjuntos de switches. Cada conjunto é formado por pelo menos dois switches, os quais atendem pontos de rede em uma área de um prédio. Fisicamente esses switches se dispõem da seguinte forma:

Pji3-Vlan-3.jpg
Topologia física (arquivo de configuração do Netkit2)


Tomando essa infraestrutura como base, devem-se implantar as seguintes redes. Em cada caso:

  • Implante as redes locais usando VLANs
  • Escolha subredes apropriadas para cada rede local
  • Configure os computadores e roteadores para que eles possam se comunicar (inclusive com a Internet)


Pji3-Vlan-3a.jpg
Rede 1: duas redes locais com suas subredes


Pji3-Vlan-3b.jpg
Rede 2: três redes locais com suas subredes

Interfaces para VLAN no Linux

O Linux possibilita criar interfaces virtuais associadas a VLANs. Com isso, a interface de rede física se comporta como uma porta em modo trunk.

  1. Supondo que a interface física seja eth0, e o número da vlan seja 10, pode-se criar a interface vlan desta forma:
    sudo vconfig add eth0 10
    
    O Nome da interface vlan, nesse caso, será eth0.10.
    • OBS: caso o comando vconfig não seja encontrado, instale este pacote de software:
      sudo apt install vlan
      
  2. Após criar uma interface VLAN, pode-se configurar seu endereço IP. Para a interface criada no ítem anterior o comando seria este:
    sudo ifconfig eth0.10 192.168.1.222/24
    
  3. Se forem criadas múltiplas interface vlan, e se deseja que o Linux seja um roteador entre elas, deve-se executar este comando para habilitar o encaminhamento de datagramas IP entre interfaces:
    sudo sysctl -w net.ipv4.ip_forward=1
    
  4. Se for necessário que esse roteador Linux seja também um tradutor NAT, deve-se ativar o NAT para alguma interface de saída. Supondo que a interface de saída seja eth1, este comando resolveria:
    sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE