我只是想知道交换机如何知道如何将数据包路由到“隐藏”在另一交换机后面的目的地。到目前为止,到目前为止,当一个数据包/帧(?)到达时,它现在可以确定该数据包应路由到的端口。而第二台交换机连接了多个设备?

我想知道交换机如何能够解决此问题(在OSI第2层,没有路由器)上,因为我认为这确实可以现实(?)

很抱歉,如果这个问题已经存在(我想是的,应该不会那么罕见),但是我无法将自己的思想放入合适的搜索查询中。 />

评论

相关:交换机如何学习交换机表?当有两个交换机,三个交换机或任意数量的交换机时,使用与一台交换机填充其MAC地址表相同的过程。

#1 楼

第2层交换机通过“侦听”进入帧来了解有关其他端点位置的大多数信息,并且当它不知道位置时,将使用flooding并从答案中学习。可以说拓扑是:

(主机A)<->(交换机A)<->(交换机B)<->(主机B)。

还需要注意的是,L2交换机转发,但不路由。我的意思是,当它接收到封装的帧时,会将其转发出接口。因此,主机A将帧发送到交换机A。
交换机A的MAC地址表中没有主机B。然后,交换机A会淹没其所有端口上的帧,除了找到一个主机A。在所有这些端口中,有一些是Switch B插入的端口,因此Switch B接收了该帧。
然后Switch B将该帧泛洪到其所有端口(考虑到Switch B的MAC地址中没有Host B)。表)。
主机B将响应该帧,然后交换机B将记录主机B的MAC地址并将响应发送到交换机A。交换机A随后将主机B的MAC地址记录在其表中并将响应发送给主持人A

这是一个相关的问题:交换机如何学习交换机表?

评论


万分感谢!我考虑过广播,但认为这样做会增加过多的开销,尤其是当许多交换机链接在一起时。

–乔纳斯·埃施曼(Jonas Eschmann)
15年8月25日在14:09

@ sh4kesbeer交换机甚至可能不生成“额外的” L2广播的情况可能是:主机A向主机B发送数据包之前,它通常会发送arp请求广播,无论如何都要请求属于给定IP地址的MAC地址。通过处理该查询,所有交换机都从A的MAC进入的地方学习。因此,他们已经可以正确地指导arp答复,并且(至少是从B到A的那些)了解B的MAC从何而来。 -因此,由交换机引起的“额外”广播通常只会在拓扑更改后发生

–哈根·冯·埃森(Hagen von Eitzen)
2015年8月25日17:39



这并不完全准确,可能会引起混乱。当交换机不知道目标主机位于哪个端口时,它将对所有端口(始发端口除外)上的帧进行刷新,而不进行广播。该帧仍然是在所有端口上泛洪的单播帧,而不是广播。

– JFL
16年4月20日在9:16

#2 楼

该交换机可以将多个mac地址映射到一个端口。

,因此第二个交换机上的所有设备mac都被第一个交换机视为属于一个端口。当它收到任何数据包时更新它的表,因为它们都包含源mac。如果Mac在更改之前已在其他端口上,则它是mac地址表(mac到端口映射)。

#3 楼

当描述拓扑时:
主机A-交换机A-交换机B-主机B

理想情况下,主机A将知道主机B的IP地址(它要通信的目标至)。假设两个主机的IP地址在同一网络中,则主机A使用ARP获取目标的mac地址。这是一个广播帧,它从交换机A和交换机B的端口转发到主机B,主机B看到它是预期的收件人,并使用其自己的MAC地址进行答复。

主机A稍后使用此MAC地址并将数据包发送到交换机A。

交换机A看到MAC地址并将此数据包通过引用其接口转发到适当的接口自己的MAC表。
类似的操作发生在交换机B上-后来到达目的地主机B。