在交换网络上,当我处于混杂模式时,为什么没有发给我的单播数据包到达我的网卡?


2

当我连接到交换机时,交换机知道哪个MAC地址属于哪个端口。因此,即使我处于混杂模式,为什么我会收到发往其他MAC地址的单播数据包?

我应该得到的是广播,多播和单播到我的MAC,我不明白这种混杂模式到底是什么?

Answers:


3

交换机通过创建将设备的MAC地址映射到端口的表来运行。它们查找目标MAC地址以确定它们应转发流量的端口,并且它们应仅将单播帧转发到此端口。

只要接收到流量,交换机就会学习这些MAC地址。如果它在“端口A”上接收到帧,它将学习发送该流量的端口的设备的源MAC地址。

如果没有从主机收到流量,这些条目将随着时间的推移而老化。如果交换机没有目的MAC地址的条目,它将从该接收帧的端口之外的每个端口“泛洪”该帧的副本。所有广播和多播流量也以相同的方式处理,因为流量可以发往多个主机(除非交换机支持更高级的功能,如IGMP侦听)。

因此,如果您看到许多单播流量发往不同的主机,则最可能的解释之一是:

  1. 具有目标MAC的设备仅接收并且不生成任何流量,并且已经从表中老化或者从未进入过。
  2. 交换机可用于在表中插入新条目的资源已耗尽,这意味着在某些老化之前它不会添加任何新条目。这会导致此目标的所有流量被淹没。
  3. 交换机出现故障,无法作为交换机运行。这可能是固件或硬件问题。
  4. 交换机实际上不是交换机,而是集线器。集线器的工作原理是始终将帧的副本从未接收到的每个端口中淹没。
  5. 某些交换机可以配置为“镜像”从一个端口到另一个端口的流量。您通常只在托管交换机中找到此功能。

0

在薄网和以太网集线器的时代,混杂模式更有用。您是对的,以太网交换机了解哪些MAC地址连接到哪些端口并相应地隔离流量。

有些交换机允许一个端口用作监控端口,通过交换机的所有流量也会传输到该端口。


0

交换机不会在它知道不需要它们的链路上发送数据包。除非它是永久配置为知道特定MAC地址分配给特定端口的智能交换机,否则它将“泄漏”某些帧。


0

NIC上的混杂模式意味着它想要查看所有网络流量,而不仅仅是用于它的流量。在“正常”模式下,您的NIC将看到它的广播,多播和单播,但没有别的。

我猜卡可以告诉交换机它处于混杂模式,然后交换机会将所有流量转发给它。这就是我所能想到的。

在正常操作中,您不需要混杂模式。它仅用于网络监控,诊断问题等。


对不起,网卡不会告诉交换机它处于混杂模式。
YLearn

0

交换机可能不知道所有主机以及交换机的默认行为,以防它不知道要发送哪个端口将其视为bc / mc,并且交换机将数据包从该vlan中的所有端口中溢出。这被称为未知的单播洪水。


0

当交换机不知道目标MAC地址在哪里时,它会“溢出”所有端口​​。

响应的端口是交换机如何了解哪个端口有什么MAC。交换机存储此信息的内存类型称为“内容可寻址内存”或CAM表。

因此,当流量进入交换机,并且交换机已识别出目标MAC时,交换机将仅转发到该特定的已知端口。

如果不同的流量进入它不识别目标MAC的地方,它会泛滥所有端口,包括它之前已经“发现”MAC所在的端口。

因此,基本上交换机可以将多个MAC“分配”到其CAM表中的端口。

这可以解释为什么你的NIC从任何MAC获取帧,即使它在交换机后面。我以前从未考虑过这个问题,可能是错的,但这确实是唯一可行的方法。在企业级交换机上,您可能可以修改或禁用此行为。

如果要在NIC所在的系统上设置虚拟网桥,则混杂模式非常有用。通过虚拟网桥,您可以将系统中的一个或多个NIC绑定到网桥中 - 实质上是进行虚拟“交换机”或第2层转发。如果您想要捕获网络上的流量,混杂模式也很有用。

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.