为什么 NIC 处于混杂模式而不会影响捕获包?

网络工程 线鲨 界面
2022-02-21 15:43:12

我有一个关于网络接口混杂模式的问题,

一个处于混杂模式的网卡可以接收所有经过它的数据,而不管数据的目的地址是不是它。如果程序将网卡的工作模式设置为“混杂模式”,则网卡将接受所有流经它的数据帧。

如果界面不是混杂模式,那是什么意思?它会检查MAC地址并丢弃垃圾包,它会检查IP地址并丢弃垃圾包吗?

但我认为如果包不是到主机的应用程序,所有也会下降。

promiscuous mode之间的本质区别是not promiscuous mode什么?

另一个问题是,我们知道有很多软件可以捕获包,例如Wireshark,Sniffer和tcpdump,捕获点在哪里?当一个包进入 NIC 时,软件会在哪里捕获它?

让网卡混杂模式又不行,为什么说这会影响软件的抓包呢?

1个回答

处于正常操作 = 不处于混杂模式的 NIC 会丢弃所有帧(在硬件中),除了那些以自己的地址或广播地址作为目标(或另一个配置的地址)的帧。(这是为早期的共享/重复以太网设计的,其中每个帧都发送到冲突域中的所有节点。)因此,如果要捕获发往另一个 NIC 的帧,则需要激活混杂模式。

因此,如果您只想捕获流经 NIC 的帧,则不需要混杂模式。如果您在交换机(或中继器集线器)上使用端口镜像将“外来”帧定向到 NIC,则确实需要混杂模式。

帧是否传输 IP(并且 IP 地址匹配)或其他任何内容在 NIC 级别上都无关紧要。由 NIC 接收但未在主机上使用(也不是广播/多播)的 IP 目标地址被 IP 堆栈(在软件中)丢弃。本质上,捕获会起作用,但通常它们不会携带 NIC 的目标地址。

大多数捕获工具直接与驱动程序交互。基本上,它们位于驱动程序和操作系统之间。