交换机如何知道何时以及如何将流量转发到路由器

网络工程 转变 路由器 苹果电脑
2022-02-04 14:20:05

我大致了解 L2 切换的工作原理。我想了解交换机和路由器如何协同工作以将流量发送到 L2 网络之外的设备。

例如。计算机 A 第一次尝试向计算机 B 发送流量。计算机 B 位于路由器另一侧的不同子网中。交换机在其 MAC 地址表中未找到计算机 B,并通过泛洪网络查找它。计算机 B 不在广播域中,因此找不到。

那么,交换机和路由器如何协同工作,将流量带到路由器并将其路由到目标设备?

具体来说,路由器是否知道它应该接受任何洪水,然后调查头部中 IP 地址的流量?我什至不确定交换机上的帧是否会包含 IP 地址,甚至是否包含标头。:)

谢谢大家!

2个回答

交换机不参与“获取到路由器的流量”。

主机知道流量需要到达路由器,因为主机知道目标位于外部网络上。

当主机向路由器发送流量时,L3 报头将包含初始主机和目标主机的源 IP 地址和目标 IP 地址。L2 报头将包含初始主机和路由器的源 MAC 地址和目标 MAC 地址。这就是将数据包发送到路由器的原因,然后路由器将从那里获取数据包。

这就是“将流量引导到路由器”——而交换机只是在帮助它前进的路径上。

我推荐这些视频来了解主机和交换机:

免责声明:我制作了这些视频并推荐它们,因为我相信它们会对您有所帮助

我想了解交换机和路由器如何协同工作以将流量发送到 L2 网络之外的设备。

L2 网络是 L3 节点传输数据包的机制。当共享子网中的两个相邻节点相互通信时,它们确定目标的 MAC 地址(通过 ARP 或 NDP)并将封装帧发送到该地址(假设基于 MAC 的 L2,如以太网)。

当目的地不在同一个子网中时,封装帧被发送到相应的网关。

计算机 B 位于路由器另一侧的不同子网中。交换机在其 MAC 地址表中未找到计算机 B,并通过泛洪网络查找它。

不,对于第一部分。源节点首先检查其路由表。该检查确定目标位于同一子网内(=> ARPed 并直接发送到)或需要哪个网关。如果源无法确定网关(没有到目的地的路由),它就无法发送数据包。开关不参与其中。

如果交换机不知道帧的目标MAC地址,它确实会淹没该帧,但由于已经学习了路由器的 MAC(以及所有其他本地 MAC),因此很少需要这样做。

由于路由器也只是一个 L2 节点,它会忽略所有接收到的帧,这些帧不是寻址到它自己的 MAC 地址或广播地址 - 因此泛洪远程 MAC 将无济于事。此外,A 将很难找到 B 的 MAC 地址,因为 ARP 使用(本地)广播来查找目标 MAC - 并且广播不能穿过路由器。简而言之,远程MAC 地址是没有意义的,它们只在共享广播域中有用。