多个开关-它如何工作?


14

一段时间前,我在阅读有关网络硬件的内容,并就网络交换机的工作原理进行了解释-基本上,它说交换机保留了一个内部数据库,该MAC数据库将哪个MAC地址连接到每个端口,并且当它接收到数据包时,它将在其数据库中查找目标MAC,并将数据包转发到正确的端口。

这让我想知道-如果将交换机连接到交换机,会发生什么情况:

Computer A
    |
 Switch 1
    |
 Switch 2
    |
Computer B

我的家庭网络的一部分是这样建立的,因此很明显它仍然可以正常工作。但是,如果计算机A要向计算机B发送数据包,交换机1怎么知道将数据包转发到交换机2?由于交换机1没有直接连接到计算机B,因此如果交换机2没有向交换机1提供该信息,它如何在数据库中拥有计算机B的MAC地址?


1
假设从计算机A到计算机B的以太网帧,则交换机1和交换机2最终都将具有用于计算机B的MAC地址的CAM表条目。交换机并不关心交换机另一端的实际情况,只关心以太网帧返回的MAC地址是什么。
LawrenceC

Answers:


23

如果交换机1不知道该帧(非数据包!)打算进入哪个端口,它将泛洪所有端口(该帧所源自的端口除外)。这些端口之一将连接到交换机2,这意味着交换机2获得了帧。

如果交换机2不知道帧将要到达的端口,它将淹没所有端口(帧所源自的端口除外)。这些端口之一将连接到计算机B。

因此计算机B最终获得了该框架,同时所有其他设备都忽略了它。

现在您可以连接圆点了。当计算机B做出响应时,交换机2将了解到发往计算机A的帧转到了连接了交换机1的端口,而交换机1将获悉了发往计算机B的帧转到了连接了交换机2的端口。


7
所以基本上,交换机的作用有点像老式的集线器,用于未知的帧。
Sirex 2014年

2
确实,这意味着总会有洪水泛滥,只是数量不多或经常发生。哈,老学校中心。让我想起了90年代的卫星互联网,在您的PC上安装的接收器必须忽略所有不适合您的数据包。谈论洪水!
misha256 2014年

2
如果我们发送ping请求会怎样?交换机上连接的每个设备都会响应,还是交换机本身会响应ICMP ping
AStopher 2014年

@ misha256实际上,所有现代的电缆Internet服务和许多光纤Internet服务仍会发送所有打算发送给您的邻居(或可能只是您的一两个街区)的数据包,并且您的调制解调器必须过滤掉不是您自己的数据包。
Moshe Katz 2014年

6

交换机上的物理端口算作OSI层1。所有到达此特定端口的MAC地址都代表网络设备的物理地址(OSI层2)。在每个活动端口上,可以有0、1个或多个MAC(或CAM或任何交换机供应商称呼它们)地址。实际上,在没有其他信息的情况下,交换机不知道连接什么类型的设备(管理员或某些专门设计的协议可以提供更多信息)。

因此,将一台交换机连接到另一台交换机,一台交换机知道的所有MAC地址都可以复制到另一台交换机。如果它是虚拟交换机,则所有MAC地址都贡献给相同的未命名LAN。如果更好,它可以配置多个虚拟LAN(VLAN),并且每个VLAN都有自己的一组MAC地址。它们可以在多个VLAN中重复。

如果一台交换机通过多个接口接收到相同的物理地址,则通常会检测到该地址并将其计为“ MAC漂移”。这意味着交换机无法确定要通过哪个端口发送具有特定MAC地址的数据包。

如果最后几分钟没有出现,交换机通常会忘记端口上的MAC地址。很好 否则,交换机可能会收到过多的信息,这些信息在一段时间内可能会相互矛盾。

有时,由于网络错误或网络内的黑客攻击,某些设备可能会生成许多MAC公告。如果宣告的MAC地址数量太多而使交换机无法记住,则可以决定忘记最佳的数据包传递。如果不确定,MAC地址位于哪个端口上,则可以像广播一样将数据包传输到所有端口(成功进行了名称为arp-spoofing的攻击)。

如果管理员意识到潜在的风险,则可以限制每个端口上可能出现多少个不同的MAC地址。如果知道通过端口一次只能连接一台计算机,则可以将其配置为“我们只能拥有一台mac”(草图上从计算机A到交换机1的端口类型)。如果未知,或者端口上连接了另一台交换机,则可以合理地提高限制,甚至将其设置为无限(在一般的交换机上,无限实际上是几千个)。

希望能帮助到你。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.