我如何找到哪个操作系统层(iptables、rp_filter 等)正在丢弃数据包?

我如何找到哪个操作系统层(iptables、rp_filter 等)正在丢弃数据包?

假设我正在对一台机器运行 ping 并且我看到tcpdump以太网端口收到了 icmp echo 答复但是程序ping没有收到它。

所以我知道 Ubuntu 正在丢弃数据包,但是有没有什么好的方法可以找到哪个操作系统层正在这样做,据我所知,可以是:

  • iptables
  • rp_过滤器
  • vlan 不匹配等

那么有没有办法“注入”或“伪装”或“模拟”一个数据包,并告诉我是谁丢弃了它?我的意思是,类似于ip route get xxx from xxx iff xxx有人告诉我 IP 路由表将如何处理传出的数据包,而我想要有人告诉我内核将如何处理传入的数据包。

有类似的东西吗?如果没有,有什么好的程序可以找出是谁丢弃了数据包?

相关内容