发布ARP表项

发布ARP表项

我正在尝试使用欺骗性 IP 连接,如本文第 7 节所述(使用 BSD 原始套接字接口进行 IP 欺骗)。事实上,当发送 SYN 时不考虑 ARP,就没有响应。本文提出的两种解决方案之一(应该是更简单的)是向客户端主机添加静态 ARP 条目。我的主机配置为 10.1.1.10,我希望欺骗的 IP 地址为 10.1.1.20。

为了添加新条目,我运行了:

# arp -i enp4s2 -Ds 10.1.1.20 enp4s2 pub

当我运行时arp -n,它显示:

10.1.1.20     *      *          MP            enp4s2

我尝试从服务器上进行操作,arping 10.1.1.20但客户端主机没有回复(带有已发布的 ARP 条目)。

可能我不明白ARP发布是如何工作的。网上的文献似乎对这个问题非常简单化。

我的发行版是 OpenSuSE,内核版本是 3.16.7-21-desktop #1 SMP PREEMPT。

答案1

我不知道这个命令在 *BSD 上是否仍然有效,但在 Linux 上似乎已经被破坏了十多年了。这些日子arp_req_set_public()弃踢到arp_req_set_proxy(),这会触发内核代理arp机制。据我所知,ARP 发布的目的是作为实现代理 ARP 的一种手段,后来由于一种更简单、更不易发生事故且功能更强大的实现而被淘汰。

但这很遗憾。 ARP 发布还有其他用途——例如,一种处理专用 NAT 池的便捷方法。如果你确实需要 arp 手册所承诺的语义,你可以尝试像这样的用户层 ARP 守护进程蜜网ARPD(又名 Farpd)或肖帕尔普德

相关内容