我已经阅读了很多有关如何在LAN中转发交换机的知识,但很少了解交换机如何与路由器通信。

交换机何时将数据包发送到路由器?当它在同一LAN上找不到收件人时是吗?

#1 楼

这取决于。

交换机的正常主要操作是根据目标MAC地址将帧从L2域上的一台主机转发到另一台主机。因此,从这个意义上讲,只有当交换机收到的帧以路由器的MAC地址为目的地时,交换机才会将帧转发到路由器。网络上的主机以及L2设备。因此,需要路由的管理流量(即发送到不同子网/网络上的主机)将由交换机发送到路由器(假设有正确的路由/默认网关)。

评论


没错,但是我不想深入了解异常并混淆OP。

–罗恩·莫潘♦
2015年9月18日于17:18

我知道,但是有时被忽略的异常也会引起混乱(尤其是当问题背后的上下文/背景很少时)。我认为我会补充我的答案,并希望提供另一种观点,以帮助OP理解。

– YLearn♦
2015年9月18日于17:43

答案的第一部分是正确的,但我认为它不能充分说明这一点。答案的第二部分也是正确的,但我认为这与问题无关,并增加了混乱。

–戴夫·努南(Dave Noonan)
2015年10月16日13:33

#2 楼

交换机不发送数据包,而是发送帧。交换机仅在接口之间转发第2层帧。对于交换机,路由器只是另一台主机。当交换机具有寻址到路由器MAC地址的帧时,它将与路由器对话。

#3 楼

根据您表达问题的方式,我认为重要的是要知道数据包是否应该到达路由器的决定是由交换机决定的,而是由该局域网上的发送主机决定的。

主机(PC或路由器)确定目的地不在本地网络上,并且需要将其转发到路由器。如果是这样,则主机将目标MAC地址设置为路由器的目标MAC地址。然后,交换机根据MAC地址转发数据包。它不知道是路由器还是其他。

评论


究竟。交换机会将收到的每个数据包发送到无法确定不需要接收的每个设备。因此,交换机在接收到数据包时会与路由器进行对话,因此不能确定不应将其发送给路由器。

– David Schwartz
19年1月16日在20:29

#4 楼

开关具有不同的JavaDeveloper风格。为什么需要开关?因为您希望2个以上的主机共享一个公用的通信介质。如果您有两台PC,并且彼此之间距离不远,则可以在它们之间连接以太网电缆,分配IP地址并开始通信。如果您有15台PC怎么办?然后,您需要一个共享的媒体,一个可以使用所有内容的会议场地。

让我们进行同样的比喻。您插入了交换机,进行了布线,采用了IP分配机制,并为每个分配了192.168.1.x / 24地址。您将看到他们可以达到其他目标。您可以在一个上创建一个共享文件夹,并从其他文件夹发送/接收文件。

现在,假设您希望您和邻居的PC进行通信,他使用了不同的子网,而且您没有足够的以太网端口。现在,您需要另一种机制来路由两个人之间的流量。您找到了一个具有两个接口的路由器,并将一条电缆从您的交换机连接到一个接口,并将另一条电缆从邻居的交换机连接到其他接口。为什么将这根电缆插入交换机而不是打印机?因为每个人都在那里并且有空。如果您从路由器的角度看世界,那么我在每一侧都有2个网络,一个说德语,另一个说法语。为了能够让您2交流,它必须说两种语言。这就是为什么在每个路由器接口上,将每个子网的IP地址分配给正确的一面(您的地址为192.168.1.x / 24)。他是您通往邻居家的大门。如果您的网络需要与邻居进行通信,则必须敲开虚拟门。您刚刚在路由器接口上分配的地址是您网络到另一个网络的网关,这有意义吗?如果您有一台只能与您的打印机通信的PC,则无需为他分配一个网关地址,为什么呢?他总是待在家里。

交换机何时与路由器对话?需要与其他邻近或可达网络联系时。

(正如其他人所写下的,有些第3层交换机可以从其他网络分配IP地址,使您可以在那里见到每个人,但是我不会在此谈论。我写了很长时间,请不要没错,有其他人可以使用此线程)

希望这会有所帮助。

评论


具有IP地址的管理型交换机不一定是第3层交换机。交换机(除非它具有自己的IP地址用于管理)永远不会尝试访问另一个网络。交换机没有网络概念,它们是第3层构造,因为它是第2层设备。它不会更深入地发现第3层地址,因此它不知道第3层数据包需要进入其他网络。

–罗恩·莫潘♦
2015年9月18日于19:02

#5 楼

普通(第2层)交换机根据帧中的目标MAC地址将帧从一个端口(输入)发送到另一端口(输出)。它会搜索其MAC表


,如果目标MAC地址在其中,并且在找到后,它将
使用该MAC的记录端口。
如果找不到,它将使用此帧填充所有端口。


#6 楼

主机将根据所需端点是否在同一子网中(使用掩码)的知识,将包/帧与路由器的MAC地址打包在一起。如果它不在子网或网段上,则它将把数据包/帧转发到网段(路由器)上的默认网关,该网关将首先通过连接的交换机。如果知道所需网关(路由器)的MAC信息,则知道MAC地址未连接到传入接口上的设备的交换机将查询CAM表,并将帧转发出必要的接口。如果不是,则该帧将通过arp从所有端口中多播,以请求所需的mac地址,直到它从DGW(路由器)接收到响应为止,然后它将开始建立链接和必要的通信的过程。简而言之就是这样。希望我不会错过任何重要的细节。