如何向套接字提供目标 MAC 地址
How to provide destination MAC address to socket
我的 linux 主机上有一个应用程序,它通过 10G 以太网通过 UDP 与另一台机器通信。另一端的机器不响应 ARP 请求。我可以通过其他方式获得它的 MAC 地址(一个不同的界面,在
有没有办法以编程方式将此信息放入 arp table w/out 特权状态?
我知道我每次启动时都会出现命令行问题"sudo arp -s 1.2.3.4 AA:BB:CC:DD:EE:FF"。
我知道我可以将“1.2.3.4 AA:BB:CC:DD:EE:FF”添加到 etc/ethers
我知道作为特权 usr/process 我可以向 SIOCSARP 发出 ioctl。
所有这些机制都需要 sudo/root 访问权限。我阅读了一些关于授予应用程序 "CAP_NET_ADMIN" 权限的内容。
我正在寻找此功能,以便最终用户无需执行上述任何操作。好像,如果我w/outsudo/root,可以打开一个确定需要这个网络信息的套接字,我w/outsudo/root应该有办法,提供它。
不,您不能以非 root 身份编辑 ARP 信息。这是有道理的,否则恶意攻击者将能够修改 ARP 表并完全破坏网络通信并危及安全。
您的问题的解决方案是修复您的网络配置。
我的 linux 主机上有一个应用程序,它通过 10G 以太网通过 UDP 与另一台机器通信。另一端的机器不响应 ARP 请求。我可以通过其他方式获得它的 MAC 地址(一个不同的界面,在
有没有办法以编程方式将此信息放入 arp table w/out 特权状态?
我知道我每次启动时都会出现命令行问题"sudo arp -s 1.2.3.4 AA:BB:CC:DD:EE:FF"。
我知道我可以将“1.2.3.4 AA:BB:CC:DD:EE:FF”添加到 etc/ethers
我知道作为特权 usr/process 我可以向 SIOCSARP 发出 ioctl。
所有这些机制都需要 sudo/root 访问权限。我阅读了一些关于授予应用程序 "CAP_NET_ADMIN" 权限的内容。
我正在寻找此功能,以便最终用户无需执行上述任何操作。好像,如果我w/outsudo/root,可以打开一个确定需要这个网络信息的套接字,我w/outsudo/root应该有办法,提供它。
不,您不能以非 root 身份编辑 ARP 信息。这是有道理的,否则恶意攻击者将能够修改 ARP 表并完全破坏网络通信并危及安全。
您的问题的解决方案是修复您的网络配置。