Linux kernel 无法从linux内核识别ARP应答

Linux kernel 无法从linux内核识别ARP应答,linux-kernel,system,call,arp,reply,Linux Kernel,System,Call,Arp,Reply,我面临以下情况: 网络应用程序正在调用arp\u send内核系统调用,以便发送解析IP地址的arp请求。ARP应答通过netif_rx接收并发送到内核,但linux内核不会在其ARP缓存中放置任何ARP条目。 当设置了echo 1>/proc/sys/net/ipv4/conf/enps025/arp_accept时,内核会考虑arp应答并更新其arp缓存。 我的问题是,我们如何通过从用户应用程序调用一个或多个系统调用来达到相同的结果?内核似乎不信任未经请求的ARP回复。使用icmp\u se

我面临以下情况:

网络应用程序正在调用
arp\u send
内核系统调用,以便发送解析IP地址的arp请求。ARP应答通过netif_rx接收并发送到内核,但linux内核不会在其ARP缓存中放置任何ARP条目。 当设置了
echo 1>/proc/sys/net/ipv4/conf/enps025/arp_accept
时,内核会考虑arp应答并更新其arp缓存。
我的问题是,我们如何通过从用户应用程序调用一个或多个系统调用来达到相同的结果?内核似乎不信任未经请求的ARP回复。使用icmp\u send并让内核完成其余工作的唯一方法是什么?

您所说的“
arp\u send
syscall”是什么意思?Linux中没有这样的系统调用。如何从用户空间使用它?当然有一个arp_发送系统调用。请看这里:。实际上,更准确地说,它是一个内核模块,而不是用户空间应用程序。