了解混杂模式

Fan*_*ang 2 networking

我不确定我是否完全理解混杂模式。

我将尝试概述我的思路,希望有人能够告诉我我错在哪里:

混杂模式的定义似乎是网络适配器不会丢弃不是发送给它的数据包。当我们研究第 2 层技术时,寻址是通过 MAC 地址完成的。交换机学习 MAC 地址,因此能够确定从哪个端口转发数据包。FF:FF:FF:FF:FF此外,我们还有广播数据包,这些数据包通过目标地址发送给每个人。

假设我在网络适配器上启用了混杂模式,我将收到哪些数据包,否则这些数据包将被丢弃?我仍然需要能够收听广播,并且没有我的 MAC 地址作为目标的数据包不会转发到我的 PC,因为交换机会将它们转发到不同的端口。

我怀疑这真的很简单,我忽略了一些东西。

Att*_*tie 5

你说的确实是事实……不过……

假设我在网络适配器上启用了混杂模式,我将收到哪些数据包,否则这些数据包将被丢弃?

如果您尝试在使用交换机而不是集线器)时从其他主机获取流量,那么您将需要研究“端口镜像” - 这不是基本交换机上常见的功能。

正如您所提到的,交换机将“了解”主机所在位置,并且仅将流量转发到与给定主机关联的端口。您可能会偶尔看到不是发往您的数据包 - 这是因为当交换机不知道将流量发送到哪里时,它会将其发送到所有端口。

一些超便宜/基本的交换机在这方面确实很糟糕,具有很小的查找表或快速过期,但您偶尔也可能会在更好的交换机上看到这种情况(即:有史以来的第一个数据包,或很长一段时间的第一个数据包)。

许多人仍然使用集线器来实现他们所追求的目标,特别是在教室场景中,但这排除了千兆位连接......另一个选择是获得更昂贵的“托管交换机”,它允许您配置端口镜像 - 但是,请注意,您只会看到该交换机上主机的流量...


假设我在网络适配器上启用了混杂模式,我将收到哪些数据包,否则这些数据包将被丢弃?

以不同的方式阅读 - 在“混杂模式”下,您的网卡不会丢弃任何数据包......但您的网络堆栈将丢弃任何它在上面的级别不感兴趣的数据包。

如果您要捕获流量(即:使用Wiresharktcpdump),那么内核将能够为您提供网络接口上存在的所有流量 - 根据您的过滤器,您可以捕获所有内容。

还值得一提的是,并非所有网络接口都能真正支持混杂模式 - 例如许多 WiFi 适配器就不能。


我的问题是关于混杂模式的技术问题。我不明白它在虚拟机应用程序中有何特别用处。

出于多种原因,捕获网络流量非常有用:

  • 调试协议/应用程序/服务配置和逆向工程
    • 为什么我没有得到预期的回应?
    • 为什么 DNS 没有按我的预期工作?
    • 这个应用程序如何与服务通信?
  • 调查性能问题
    • 怎么流量这么大?
    • 为什么网络这么慢?
  • 监控网络的安全问题 - 新主机等......

在许多情况下,您无法直接从主机捕获此信息 - 想想嵌入式系统或整个网络监控。