Nesse artigo vamos tratar de um conceito MUITO IMPORTANTE, que muitas vezes é simplesmente ignorado por vários profissionais da área de Redes e Infraestrutura de TI, que é o conceito de como um switch monta sua Tabela de Endereços MAC ou MAC Address Table.
Um switch deve aprender os endereços MAC dos computadores conectados às suas portas e montar uma tabela de encaminhamento, possibilitando a criação de diversos caminhos virtuais livres de colisão entre esses computadores.
Veja a figura a seguir, onde temos os computadores A, B, C e D conectados às portas fast 0/1 até a fast 0/4 respectivamente a um switch.
Ao longo do tempo, com a comunicação entre os computadores, o switch aprende através dos endereços MAC de origem enviados pelos computadores, o MAC de cada um deles e vincula esse MAC com a porta que recebeu esse quadro ethernet.
Na próxima figura temos o quadro ethernet para você relembrar dos campos que o switch utiliza para o aprendizado de endereços (MAC de origem), para o encaminhamento dos quadros (MAC destino) e verificação de erros.
Até o momento supomos que o switch já conhecesse todos os MACs conectados às suas portas. Mas o que acontece se o switch não conhecer ainda todos os MACs que estão conectados às suas portas e um computador enviar um quadro para esse MAC desconhecido?
Como o switch não sabe para onde enviar ele envia uma cópia desse quadro para todas as suas portas, menos para àquela que enviou o quadro. Assim, com certeza o computador de destino irá receber esse quadro e responder a essa requisição.
Quando isso ocorrer o switch irá inserir uma nova entrada em sua tabela de endereços MAC, adicionando em sua tabela uma entrada com o endereço do micro que antes era desconhecido e que agora passa a ser conhecido. Lembre-se que esse processo é chamado de flooding.
Acompanhe na figura seguinte uma ilustração do processo de flooding onde o computador A envia um quadro para o computador C, o qual ainda não era conhecido pelo switch.
Note que quando o switch recebe esse quadro ele constata que não conhece aquele MAC e envia uma cópia do quadro para todas as portas (flooding), menos para a porta do computador A.
Quando o computador C recebe o quadro ele responde e o switch vincula seu MAC de origem com a porta fast 0/3.
Apesar dos computadores B e D receberem o mesmo quadro eles comparam internamente o MAC de destino com seus MACs gravados na placa de rede e verificam que aquele quadro não é para eles, portanto o quadro é descartado por B e D.
Não confunda o flooding com o ARP, o ARP é uma ferramenta de camada 3 e utilizada para descobrir um MAC que está vinculado a um endereço IP que é conhecido. Aqui no flooding não entramos na camada 3, pois o switch faz somente uma cópia simples do quadro para todas as portas.
O flooding pode ser traduzido para o português por algumas bibliografias como “inundação de quadros”.
Com isso aprendemos como os switches aprendem endereços MAC e fazem o encaminhamento dos quadros de Unicast, ou seja, comunicação direta entre dois dispositivos.
Mas e se um computador enviar um quadro com um endereço de broadcast como destino? Ou seja, com o endereço MAC ffff.ffff.ffff no campo de MAC de destino do quadro ethernet?
Lembrem-se que um switch é um dispositivo de camada 2, por isso ele irá encaminhar o broadcast para todas as portas menos para a porta de onde ele recebeu o quadro.
Por exemplo, considerando a figura 4 se o micro A envia um broadcast que portas irão receber esse quadro? Serão as portas fast 0/2, fast 0/3 e fast 0/4. Portanto o switch consegue segmentar domínios de colisão, porém não segmenta domínios de broadcast.
Podemos também dizer que os pacotes com MAC de destino apontando para um endereço de broadcast passam por um processo idêntico ao de flooding, pois o switch inunda todas as portas com esse quadro.
O mesmo ocorre com um quadro de Multicast, ou seja, os quadros de comunicações multicast recebem um endereço MAC especial iniciado em 0100.5E (com uma faixa de 0100.5e00.0000 até 0100.5e7f.ffff) e são encaminhados para todas as portas do switch, menos para a porta que enviou o quadro, assim como o broadcast.
Os endereços de broadcast e multicast não são guardados na tabela de endereços MAC do switch, eles sempre são tratados como endereços não conhecidos e sofrem o processo de flooding.
Aging Timer e sua função de atualização da Tabela de Endereços MAC
Vale a pena também ressaltar que os quadros aprendidos pelos switches também recebem um “time stamp”, ou seja, uma etiqueta de tempo, pois se o computador for desconectado da porta ou ficar muito tempo sem se comunicar, a entrada da tabela de endereços MAC deve ser apagada para liberar espaço da memória.
Todos os switches tem um limite de endereços MAC que podem ser aprendidos, além disso, manter um MAC aprendido sem apagá-lo pode criar entradas erradas, por exemplo, você troca a placa de rede de um micro que está conectada a uma porta de um switch, se ele não apagasse a entrada após um tempo você acumularia dois MACs naquela porta, mas na realidade somente um é válido.
Esse tempo é chamado “aging time” ou tempo de envelhecimento do MAC. A maioria dos fabricantes utilizam 300 segundos como aging time padrão das interfaces.
Além disso, se o switch suporta VLANs a tabela de endereços MAC guarda também a que VLAN aquele MAC pertence, portanto a tabela MAC irá manter por porta os seguintes itens:
- Número da porta
- MAC ou MACs de origem aprendidos
- A quanto tempo ele foi aprendido (contador do aging time)
- A VLAN que a porta está vinculada
O conceito de VLAN veremos em um outro artigo.
Resumo Sobre a Montagem da Tabela de Endereços MAC
- Processo conhecido como “Aprendizagem de MACs”.
- O switch aprende os dispositivos que estão conectados às suas portas através da leitura do endereços MAC de origem no Quadro Ethernet que cruza suas portas.
- Se o endereço de origem já está listado na tabela de endereços MAC o switch apenas atualiza o temporizador ou “aging timer”.
- Se um computador não enviar quadros por um período maior que o “aging timer” seu MAC é apagado da Tabela de Endereços MAC.
- Ao encaminhar um quadro o switch verifica se o MAC de destino está na Tabela de Endereços MAC, caso esteja encaminha para a porta listada na tabela. Se o MAC não existir o switch faz o “flooding” do quadro.
- O processo de flooding é quando o switch encaminha uma cópía do quadro recebido para TODAS as portas, menos para a porque que recebeu o quadro original.
Bem, chegamos ao final de mais um super artigo em nosso blog e sinceramente espero ter ajudado na sua busca por conhecimento de valor na área de Redes e Infraestrutura de TI.
Mais uma vez conto com sua ajuda para compartilhar nosso artigo em suas redes sociais para que possamos cada vez mais impactar o maior número de profissionais da nossa área.
Muito obrigado pela visita e até uma próxima!
8 Responses
Boa tarde é muito valiosas essas dicas .obg
De nada Ricardo!
Otimo artigos! Parabéns!
Me fez lembrar de ataque por Marcof que encaminha pacotes de endereço MAC para o switch sobrescrevendo a tabela MAC* no swtich. Muito funcional esse tipo de ataque principalmente em switch de L2
Se existir alguma promoção para os cursos de redes. Gostaria de fazer!
Esse assunto abordamos em alguns cursos também. Para promoções você pode criar um usuário gratuito no site e ficar ligado em nossos e-mails.
Por que a tabela foi preenchida com o endereço do mac do micro D e não do C, já que o quadro foi para o C? Muito confuso isso aí.
Porque o switch mapeia o MAC da porta de origem e não de destino.
OLÁ… queria mesmo saber sobre como funciona a tabela MAC do switch… mas contudo gostei do conteúdo
Muito rico o conteúdo. Muito obrigada!