Por que os switches precisam de tabelas ARP quando a tradução é feita no lado da máquina?

12

Como fica claro no título, por que os comutadores precisam de tabelas ARP quando a tradução é feita no lado das máquinas?

Em termos gerais, por que existem duas tabelas ARP em máquinas e em switches? O interruptor no interruptor não é suficiente?

Mohamad-Jaafar NEHME
fonte
Eu acho que as respostas nesta página estão corretas. Encontrei outros comentaristas em outras páginas dizendo que os switches L2 contêm tabelas ARP. Isso não faz sentido. Somente dispositivos L3 contêm tabelas ARP.
Stephen Gibbons

Respostas:

23

Esse é um equívoco bastante comum ou, mais especificamente, um problema de terminologia. Em um comutador de camada dois, não há uma tabela ARP, apenas uma tabela de encaminhamento. O switch registra cada endereço MAC src que vê de entrada na tabela de encaminhamento e o atribui à porta para que os quadros com um dst MAC sejam enviados apenas à porta conhecida por esse MAC. Muitas pessoas chamam isso de "tabela arp" ou "cache arp", mesmo que não seja.

Em um switch da camada gerenciada dois, há uma tabela de encaminhamento mais uma tabela ARP, mas a última é usada apenas para a interface de gerenciamento conversar com hosts interessados ​​(ou seja, o PC que você está usando para configurar o switch). haverá uma tabela de encaminhamento mais uma tabela ARP, pois ela é necessária para a interface de gerenciamento, além da funcionalidade do roteador para executar o encaminhamento entre sub-redes.

Jeff Meden
fonte
Entendo que você modelaria um comutador como um conjunto de portas (comutadoras). Portas são filas de pacotes numeradas. O switch drena as portas em uma ordem arbitrária e mantém um mapeamento de mac para porta. Quando um pacote é drenado de uma porta, o src mac (endereço) é mapeado para a porta (número). Quando um pacote esgotado deve ser entregue, ele é enviado para a porta do mac de destino, se conhecido, ou transmitido, se não for conhecido. Isso significa que uma porta deve obter um pacote eth para ser mapeado.
Rob
@ Rob, há um número de declarações pouco claras, se não imprecisões, no seu comentário. Portas não são filas; pode haver um mapeamento 1 para 1 em algumas plataformas, mas elas não são as mesmas. O endereço MAC é aprendido quando um quadro é recebido, não transmitido. Os quadros são entregues na fila de saída na ordem em que são recebidos, possivelmente em conjunto com algum tipo de QoS, não é arbitrário. Os quadros com endereços de destino desconhecidos são inundados, não transmitidos.
YLearn
Então: model alterna como pares numerados de filas (pacote ethernet) (entrada, saída). À medida que uma fila de entrada é lida, verifique se o src mac desse pacote está mapeado para o número da porta da fila de entrada. Esse pacote deve ser colocado na fila de saída correspondente ao dst mac. Se a porta não estiver mapeada, o pacote será enfileirado em todas as filas de saída, exceto a sua. (Não sei o que o broadcast / distinção inundação é, como eu suponho que literalmente envia mesmo sinal em todos os fios a nível de hardware, ou talvez round-robins através dos portos?)
Rob
Ah ... acho que vejo a objeção em modelar o switch como filas de pacotes. O switch pode estar operando em pequenos pedaços de dados que pacotes inteiros. Ou seja: assim que soubermos quais portas devem receber um pacote para o qual estamos recebendo bytes, poderíamos estar enviando esses bytes. ex: enfileire apenas bytes suficientes para lidar com o cabeçalho ethernet; não segure o pacote inteiro.
Rob
@Rob, um quadro inundado é um quadro unicast com um destino desconhecido que é inundado em cada porta que não seja a porta receptora. Uma transmissão é um quadro de todos os destinos que é enviado a todas as portas que não sejam a porta receptora, mas continuará sendo tratado dessa maneira por todos os comutadores que a receberem no domínio de transmissão L2. Embora tenha efeito semelhante em um único switch, o efeito em toda a rede é significativamente diferente.
YLearn
6

Todo dispositivo que utiliza o protocolo IP possui uma tabela ARP. Como o IP é um protocolo L3 e requer um protocolo L2 subjacente, este é um requisito para que um dispositivo possa converter um endereço IP L3 no seu endereço L2 correspondente.

Esteja seu dispositivo se comunicando com um endereço IP na rede local ou não, ele precisará enviar seu tráfego L2 (para simplificar, vamos excluir a difusão e a difusão seletiva desta discussão) para um dispositivo específico no domínio L2 local. Se o endereço IP estiver na rede local, isso seria direto para o dispositivo de destino. Caso contrário, este seria o dispositivo funcionando como gateway ou roteador da rede local que pode encaminhar o tráfego L3 em direção ao seu destino.

Se um switch não estiver usando o protocolo IP (ou seja, ele não fornece nenhum tipo de gerenciamento sobre IP, nenhuma funcionalidade L3, etc.), não precisa de uma tabela ARP.

No entanto, não conheço uma plataforma de switch corporativo que não utilize o protocolo IP. Telnet, SSH, HTTP, HTTPS e SNMP são apenas alguns exemplos dos serviços geralmente suportados de um switch corporativo que exigiria acesso ao IP.

YLearn
fonte
2

Como você provavelmente já sabe, o objetivo da tabela ARP é converter os endereços da camada de rede em endereços da camada de link. ou seja, endereços IP para endereços MAC.

As tabelas a que você se refere não são completamente completas. Os switches da camada 2 também possuem dois tipos de tabelas:

  • uma tabela ARP usada para se comunicar com o switch "como um computador" para fazer interface com seus controles. Bem, terá isso se for um switch gerenciado

  • uma tabela que relaciona portas de switch a endereços MAC

Exemplo1: se um PC iniciar um pacote, ele usará o endereço MAC se o endereço IP for local (na tabela ARP). Quando esse pacote chega a um switch, o switch move o pacote para a porta apropriada, com base no endereço MAC (da tabela switch port / MAC).

Exemplo2: se um switch lança um pacote a partir de sua interface de gerenciamento, ele faz o mesmo que um PC faria usando sua tabela ARP. Mas, se um switch lança um pacote a partir de sua função de comutação, ele simplesmente está movendo esse pacote de uma porta para outra, de acordo com sua tabela de portas / MAC.

fred3
fonte
Obrigado querido. Exemplos agradáveis ​​e úteis. Por favor, não confunda entre pacotes e quadros.
Mohamad-Jaafar NEHME
-2

Os comutadores possuem tabelas de endereços MAC.
Pontos de extremidade, como PCs, possuem tabelas arp.

Ronnie Royston
fonte
Então, apenas os switches possuem tabelas de endereços MAC? E apenas os pontos finais têm tabelas ARP?
YLearn
1
@YLearn Para switches L2 reais, sim.
Navin