【问题标题】:Is tcpdump 100% reliable on outgoing connection?tcpdump 在传出连接上是否 100% 可靠?
【发布时间】:2020-04-30 03:58:53
【问题描述】:

我正在使用服务器。 它对另一台服务器进行健康检查,例如简单的 tcp 打开连接 基本上我的 tcpdump 说数据包(健康检查 tcp sYn 数据包)正在离开我的接口。 但是,防火墙什么也没看到。 我怀疑数据包是否完全在服务器之外,或者问题出在交换机上。 有没有办法确定这一点?

【问题讨论】:

    标签: linux-kernel tcpdump


    【解决方案1】:

    捕获的流量 == 事实来源

    tcpdump 可能有误报(即数据包已发送但 tcpdump 不记录它们)。这可能是由于硬件(CPU、RAM、磁盘)被最大化或者 tcpdump 的缓冲区大小 (-B) 太小。同样,您的防火墙可能没有在应有的地方拾取它。

    tcpdump 报告误报的可能性很小。 Tcpdump 从您的网络接口 [0] 复制字节并将它们汇总在文本行中(取决于您的输出选项)。如果防火墙规则来自例如iptables 会阻塞流量,tcpdump won't see the traffic。如果 tcpdump 报告了一个数据包,你可以确定它通过了那个接口。

    [0]:如果您对 tcpdump 在较低级别的工作方式感到好奇,请使用strace

    基于流的故障排除

    可能需要基于流的故障排除来确定数据包在网络中的丢弃位置。对于您的server:A <-> B:switch:C <-> D:Firewall 网络,我们知道 A 发送它而 D 没有接收它。因此,您应该检查端口 B 和 C 以确定数据包丢失发生的位置。 D也可能报告假阴性。您可以通过将此服务器直接插入可以捕获数据包/监控流量的不同防火墙来测试这两个东西。

    【讨论】:

      猜你喜欢
      • 2022-12-20
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      相关资源
      最近更新 更多