是否可以在用户模式下而不是在内核中回答 ARP 请求?我可以创建一个ETH_P_ARP
套接字,但不确定是否可以在此级别完全替换内核策略。
答案1
您当然可以创建一个套接字并使用它来响应 ARP 请求。但这不会阻止内核响应它们。
有多种方法可以阻止内核响应 ARP 请求。最简单且在许多情况下最好的解决方案是让您的程序简单地使用不同的 IP 地址。如果内核无法识别该 IP 地址,它将不会响应该 IP 地址的 ARP 请求。这是我自己用来实现用户模式 NAT64 的方法。
阻止内核响应 ARP 请求的另一种方法是通过arptables
规则。