TLDR:当数据包是来自“ping”计算机的成功数据包注入 PING 请求的相同结构数据包时,为什么 PING 请求的第 2 层数据包注入在计算机上不起作用?(本质上为什么欺骗性的 ping 请求会失败?)
测试设置/问题:
我有两台计算机,A (192.168.0.36) & B (192.168.0.36),直接通过以太网连接。
我在 A 上手动创建 PING 请求并将其注入到 ping B(即好像从 A 上的终端运行“ping 192.168.0.37”)。这可行,我可以看到 B 在计算机 B 上使用 Wireshark 接收并响应 ping 请求。
然后,我在 B 上手动创建并注入一个相同的PING 请求(来自上面的测试)以 ping B(即好像在 A 上运行“ping 192.168.037”,除了从 B 上本地运行的软件直接注入 B 的以太网接口) . 注入有效,Wireshark 显示了一个与从 A 到 B 的原始测试相同的数据包,预计没有响应。
我的问题是,为什么?
我假设我缺乏关于网络接口安全或操作系统安全设置或其他东西的基本知识。
我正在运行 Ubuntu 16.04。我正在使用手动创建的第 2 层标头注入数据包。我在我的可执行文件上设置cap_net_raw,cap_net_admin+eip 。遵循本网站的代码/指南:http ://www.pdbuchan.com/rawsock/rawsock.html
在 Wireshark 主图像中,首先 ping 条目显示了我自己注入的数据包到计算机 A 的成功事务。最后一个条目是我直接注入计算机 B 的欺骗数据包。数据包是相同的。第二个 Wireshark 并排显示数据包。 Wireshark 主视图 数据包并排