我想了解交换机和路由器如何协同工作以将流量发送到 L2 网络之外的设备。
L2 网络是 L3 节点传输数据包的机制。当共享子网中的两个相邻节点相互通信时,它们确定目标的 MAC 地址(通过 ARP 或 NDP)并将封装帧发送到该地址(假设基于 MAC 的 L2,如以太网)。
当目的地不在同一个子网中时,封装帧被发送到相应的网关。
计算机 B 位于路由器另一侧的不同子网中。交换机在其 MAC 地址表中未找到计算机 B,并通过泛洪网络查找它。
不,对于第一部分。源节点首先检查其路由表。该检查确定目标位于同一子网内(=> ARPed 并直接发送到)或需要哪个网关。如果源无法确定网关(没有到目的地的路由),它就无法发送数据包。开关不参与其中。
如果交换机不知道帧的目标MAC地址,它确实会淹没该帧,但由于已经学习了路由器的 MAC(以及所有其他本地 MAC),因此很少需要这样做。
由于路由器也只是一个 L2 节点,它会忽略所有接收到的帧,这些帧不是寻址到它自己的 MAC 地址或广播地址 - 因此泛洪远程 MAC 将无济于事。此外,A 将很难找到 B 的 MAC 地址,因为 ARP 使用(本地)广播来查找目标 MAC - 并且广播不能穿过路由器。简而言之,远程MAC 地址是没有意义的,它们只在共享广播域中有用。