【问题标题】:Will tcpdump capture packets where destination mac address does not match NIC's mac addresstcpdump 是否会捕获目标 mac 地址与 NIC 的 mac 地址不匹配的数据包
【发布时间】:2017-11-23 12:33:14
【问题描述】:

我正在运行一些数据吞吐量测试,方法是使用 iperf 通过对这些数据包进行某种处理的 VM 发送 UDP 数据包。

我的应用程序在混杂模式下运行,因此它会拾取所有数据包。

我看到我的应用程序丢弃了一些数据包,但我的应用程序计数器显示这不是由于任何减速或故障造成的。

我在我的应用程序中放了一些日志,他们建议以太网框架本身可能已损坏。

我还在 iperf 机器和数据包处理器的 vnic 上运行 tcpdump,但这些数据包从未出现在跟踪中。我希望看到损坏的数据包出现在跟踪中。 命令如下所示:

tcpdump -i vnet11 -C 100 -w iperf.pcap

tcpdump -i vnet7 -C 100 -w sgi.pcap

我的疑问是,如果以太网帧本身损坏并且目标 MAC 本身与 vnet7 或 vnet11 的 MAC 地址不匹配,tcpdump 会捕获这些数据包吗?

编辑: 令我震惊的是,如果以太网帧本身损坏导致目标 MAC 不匹配,那么 linuxbridge 首先不会将该数据包发送到我的数据包处理器的 vnet 接口。所以 tcpdump 没有任何东西可以在这里捕获。 请忽略这个问题。

【问题讨论】:

  • 如果您愿意,您实际上可以删除您的问题。
  • 我觉得你的问题确实值得回答。

标签: networking ethernet tcpdump libpcap tshark


【解决方案1】:

事实上,如果问题是一个损坏的以太网帧,你根本看不到它。您的网卡将丢弃该帧,而您的嗅探器将永远看不到它。

在混杂模式下运行通常会禁用网卡上的 MAC 过滤,以便嗅探器可以看到所有数据包,而不管目标 MAC 是什么。但是,您看不到未发送到 NIC 的数据包(显然),因此在交换环境中,除非您采取额外步骤来攻击交换机或配置跨度或镜像端口,否则您将只能看到广播和帧发往您系统上的 MAC。

虚拟机会使这进一步复杂化。不同的虚拟化解决方案以不同的方式处理这个问题。例如,在某些情况下,管理员可以选择配置是否将与主机地址不匹配的帧传送到 VM,从而有效地使混杂模式变得毫无意义。

【讨论】:

    猜你喜欢
    • 2014-11-22
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多