¿Por qué los conmutadores necesitan tablas ARP cuando la traducción se realiza en el lado de las máquinas?

12

Como queda claro en el título, ¿por qué los conmutadores necesitan tablas ARP cuando la traducción se realiza en el lado de las máquinas?

En términos generales, ¿por qué hay dos tablas ARP en máquinas y en interruptores? ¿No es suficiente el que está en el interruptor?

Mohamad-Jaafar NEHME
fuente
Creo que las respuestas en esta página son correctas. Encontré otros comentaristas en otras páginas que decían que los conmutadores L2 contienen tablas ARP. Esto no tiene sentido. Solo los dispositivos L3 contienen tablas ARP.
Stephen Gibbons,

Respuestas:

23

Este es un concepto erróneo bastante común o, más específicamente, un problema de terminología. En un conmutador de capa dos, no hay una tabla ARP, solo una tabla de reenvío. El conmutador registra cada dirección MAC src que ve entrante en la tabla de reenvío y la atribuye al puerto para que las tramas con un dst MAC solo se envíen al puerto conocido para ese MAC. Muchas personas llaman a esto una "tabla arp" o "caché arp", aunque no lo es.

En un conmutador administrado de capa dos, hay una tabla de reenvío más una tabla ARP, pero esta última solo se usa para que la interfaz de administración se comunique con los hosts interesados ​​(es decir, la PC que está utilizando para configurar el conmutador). En un conmutador administrado de capa 3 habrá una tabla de reenvío más una tabla ARP, ya que la necesita para la interfaz de administración más la funcionalidad del enrutador para realizar el reenvío entre subredes.

Jeff Meden
fuente
Tengo entendido que modelaría un conmutador como un conjunto de puertos (conmutadores). Los puertos son colas de paquetes numeradas. El conmutador drena los puertos en un orden arbitrario y mantiene una asignación de mac a puerto. Cuando un paquete se drena de un puerto, el src mac (dirección) se asigna al puerto (número). Cuando se debe entregar un paquete drenado, se envía al puerto del destino Mac si se conoce, o se transmite si no se conoce. Esto significa que un puerto debe obtener un paquete eth para mapearse.
Rob
@Rob, hay una serie de declaraciones poco claras, si no inexactas, en su comentario. Los puertos no son colas; Puede haber un mapeo 1 a 1 en algunas plataformas, pero no son lo mismo. La dirección MAC se aprende cuando se recibe una trama, no se transmite. Los marcos se entregan a la cola de salida en el orden en que se reciben, posiblemente junto con algún tipo de QoS, no es arbitrario. Los cuadros con direcciones de destino desconocidas se inundan, no se transmiten.
YLearn
Luego: el modelo cambia como pares numerados de colas (paquete ethernet) (entrada, salida). A medida que se lee una cola de entrada, asegúrese de que la mac de src de ese paquete esté asignada al número de puerto de la cola de entrada. Ese paquete debe colocarse en la cola de salida correspondiente a dst mac. Si el puerto no está mapeado, entonces el paquete se pone en cola en todas las colas que no sean las suyas. (No estoy seguro de cuál es la distinción de transmisión / inundación, ya que supongo que literalmente envía la misma señal en todos los cables a nivel de hardware; ¿o tal vez circula a través de los puertos?)
Rob
Ah ... creo que veo la objeción a modelar el conmutador como colas de paquetes. El conmutador podría estar operando en fragmentos de datos más pequeños que los paquetes completos. Es decir: tan pronto como sepamos qué puertos deberían obtener un paquete para el que estamos obteniendo bytes, podríamos estar enviando esos bytes. ej .: poner en cola los bytes suficientes para manejar el encabezado de ethernet; No sostenga todo el paquete.
Rob
@Rob, una trama inundada es una trama de unidifusión con un destino desconocido que se inunda cada puerto que no sea el puerto receptor. Una transmisión es una trama de todos los destinos que se envía a todos los puertos que no sean el puerto receptor, pero todos los conmutadores que la reciben en el dominio de transmisión L2 seguirán tratando de esta manera. Si bien tiene un efecto similar en un solo conmutador, el efecto en toda la red es significativamente diferente.
YLearn
6

Cada dispositivo que utiliza el protocolo IP tiene una tabla ARP. Dado que IP es un protocolo L3 y requiere un protocolo L2 subyacente, este es un requisito para que un dispositivo pueda traducir una dirección IP L3 a su correspondiente dirección L2.

Ya sea que su dispositivo se esté comunicando a una dirección IP en la red local o no, tiene que enviar su tráfico L2 (para mantenerlo simple, excluyamos la transmisión y multidifusión de esta discusión) a un dispositivo específico en el dominio L2 local. Si la dirección IP está en la red local, esto sería directo al dispositivo de destino. De lo contrario, este sería el dispositivo que funciona como puerta de enlace o enrutador para la red local que puede reenviar el tráfico L3 hacia su destino.

Si un conmutador no está utilizando el protocolo IP (es decir, ni siquiera proporciona ningún tipo de administración sobre IP, sin funcionalidad L3, etc.), entonces no necesita una tabla ARP.

Sin embargo, no conozco una plataforma de conmutador empresarial que no utilice el protocolo IP. Telnet, SSH, HTTP, HTTPS y SNMP son solo algunos ejemplos de los servicios comúnmente admitidos de un conmutador empresarial que requeriría acceso a IP.

YLearn
fuente
2

Como probablemente ya sepa, el propósito de la tabla ARP es traducir las direcciones de capa de red en direcciones de capa de enlace. es decir, direcciones IP a direcciones MAC.

Las tablas a las que se refiere no están del todo completas. Los conmutadores de capa 2 también tienen dos tipos de tablas:

  • una tabla ARP que se usa para comunicarse con el interruptor "como una computadora" para interactuar con sus controles. Bueno, tendrá esto si es un interruptor administrado

  • una tabla que relaciona los puertos del conmutador con las direcciones MAC

Ejemplo1: si una PC lanza un paquete, usará la dirección MAC si la dirección IP es local (de la tabla ARP). Cuando ese paquete llega a un conmutador, el conmutador moverá el paquete al puerto apropiado en función de la dirección MAC (desde el puerto de conmutadores / tabla MAC).

Ejemplo 2: si un conmutador inicia un paquete desde su interfaz de administración, hace lo mismo que una PC haría con su tabla ARP. Pero, si un conmutador inicia un paquete desde su función de conmutación, simplemente está moviendo ese paquete de un puerto a otro de acuerdo con su tabla de puertos / MAC.

fred3
fuente
Gracias cariño. Ejemplos agradables y útiles. No confunda entre paquetes y marcos.
Mohamad-Jaafar NEHME
-2

Los conmutadores tienen tablas de direcciones mac.
Los puntos finales como las PC tienen tablas arp.

Ronnie Royston
fuente
Entonces, ¿solo los conmutadores tienen tablas de direcciones mac? ¿Y solo los puntos finales tienen tablas ARP?
YLearn
1
@YLearn Para los conmutadores L2 reales, sí.
Navin