¿Cómo sabe un conmutador dónde encaminar el paquete, cuando hay otro conmutador delante del destino?

8

Me pregunto cómo un switch sabe cómo enrutar paquetes a destinos "ocultos" detrás de otro switch. En mi opinión, un conmutador tiene una tabla que asigna cada uno de sus puertos de hardware a exactamente una dirección MAC. Hasta ahora todo bien, cuando llega un paquete / trama (?) Ahora puede determinar el puerto en el que se debe enrutar el paquete.

Pero, ¿qué sucede cuando hay otro conmutador conectado a uno de estos puertos y este segundo conmutador tiene más de un dispositivo conectado?

Me pregunto cómo un conmutador puede resolver esto (en OSI-Layer 2, sin un enrutador), ya que creo que esto realmente funciona en realidad (?)

Lamento si esta pregunta ya existe (creo que sí, no debería ser tan infrecuente), pero no pude poner mi pensamiento en una consulta de búsqueda adecuada.

Jonas Eschmann
fuente
Relacionado: ¿Cómo aprende un conmutador una tabla de conmutadores? . El mismo proceso por el cual un interruptor llena su tabla de direcciones MAC se usa cuando hay dos interruptores, o tres interruptores, o cualquier número de interruptores.
Eddie

Respuestas:

15

Un interruptor de Capa 2 aprende la mayor parte de su información sobre la ubicación de otros puntos finales a través de "escuchar" los marcos de ingreso, y cuando no es consciente de la ubicación, utiliza floodingy aprenderá de la respuesta. Digamos que la topología es:

(Host A) <--> (Switch A) <--> (Switch B) <--> (Host B).

También es importante tener en cuenta, un interruptor L2 hacia adelante, no enruta. Con eso quiero decir, cuando recibe una trama encapsulada, la reenvía a las interfaces.

  • El host A quiere llegar al host B. El host A conoce la dirección MAC del host B. Entonces, el Host A envía una trama al Switch A.
  • El conmutador A no tiene el host B en su tabla de direcciones MAC. El conmutador A luego inunda el marco en todos sus puertos, excepto en el que se encuentra el Host A. Entre todos esos puertos están los puertos en los que el Switch B está conectado, por lo que el Switch B recibe la trama.
  • Luego, el conmutador B inunda esa trama de todos sus puertos (teniendo en cuenta que el conmutador B no tiene el host B en su tabla de direcciones MAC).
  • El Host B responderá a la trama, el Switch B luego registrará la dirección MAC del Host B y enviará la respuesta al Switch A. El Switch A luego registra la dirección MAC del Host B en su tabla y envía la respuesta al Host A

Aquí hay una pregunta relacionada: ¿Cómo aprende un conmutador una tabla de conmutadores?

HAL
fuente
¡muchas gracias! Pensé en transmitir, pero pensé que agregaría demasiada sobrecarga, especialmente cuando muchos interruptores están encadenados.
Jonas Eschmann
2
@ sh4kesbeer Puede darse el caso de que los conmutadores ni siquiera generen transmisiones L2 "adicionales": antes de que el host A envíe un paquete al host B, normalmente enviará una emisión de solicitud arp de todos modos solicitando la dirección MAC correspondiente a la dirección IP dada . Al procesar esa consulta, todos los interruptores aprenden de dónde entra el MAC de A. Por lo tanto, ya pueden dirigir la respuesta arp correctamente y (al menos aquellos a lo largo del camino de B a A) aprender de dónde entra el MAC de B. - Por lo tanto, la transmisión "adicional" causada por el cambio generalmente se produce solo después de un cambio de topología
Hagen von Eitzen
Esto no es totalmente exacto y podría causar confusión. Cuando el conmutador no sabe en qué puerto reside el host de destino, INUNDE la trama en todos los puertos (excepto el de origen), no se transmite. La trama sigue siendo una trama de unidifusión que se inunda en todos los puertos, y no una transmisión.
JFL
4

El conmutador puede asignar múltiples direcciones MAC a un puerto.

Por lo tanto, todos los mac del dispositivo en el segundo conmutador son vistos por el primer conmutador como pertenecientes a un puerto.

Actualiza su tabla cuando recibe cualquier paquete, ya que todos contienen una fuente mac. Si tenía la mac en un puerto diferente antes de cambiarla, es la tabla de direcciones de mac (de mac a mapa de puertos).

Cuando la posición de un mac cambia entre puertos a menudo, se informa como un flap de mac.

Pieter
fuente
1

Cuando la topología es como se describe: Host A - Switch A - Switch B - Host B

Idealmente, el Host A sabrá la dirección IP del Host B (el destino con el que desea comunicarse). Suponiendo que las direcciones IP de los dos hosts están en la misma red, el host A usa ARP para obtener la dirección mac del destino. Esta es una trama de difusión que se reenvía desde los puertos del Switch A - y el Switch B - al Host B, que ve que es el destinatario previsto y responde con su propia dirección MAC.

El host A luego usa esta dirección MAC y envía el paquete al Switch A.

El interruptor A ve la dirección MAC y reenvía este paquete fuera de la interfaz apropiada haciendo referencia a su propia tabla MAC. Se produce una operación similar en el conmutador B, que más tarde llegó al host B de destino.

deedee
fuente