网络启动时添加静态 ARP 条目

网络启动时添加静态 ARP 条目

我的 Ubuntu 服务器所在的子网上有一些非常笨的 IP 设备,服务器会从每个设备接收流式数据。我遇到了一个问题,当设备正在向服务器流式传输数据时,向设备发出 ARP 请求,请求会被忽略,缓存条目会超时,服务器会停止接收流式传输数据。

因此,为了防止服务器向这些设备发送 ARP 请求,我想为每个设备添加一个静态 ARP 条目,例如

arp -i eth2 -s ip.of.the.device mac:of:the:device

但是,如果禁用/启用网络或重新启动服务器,这些“静态”ARP 条目将会丢失。自动添加这些条目的最佳位置在哪里?最好是每次启动接口 eth2 时都会重新添加它们的地方?

我真的不想编写一个脚本来监视输出arp并在缓存条目丢失时重新添加它们。


编辑以添加我的最终脚本:

创建文件

 /etc/network/if-up.d/add-my-static-arp

内容如下:

#!/bin/sh

arp -i eth0 -s 192.168.0.4 00:50:cc:44:55:55
arp -i eth0 -s 192.168.0.5 00:50:cc:44:55:56
arp -i eth0 -s 192.168.0.6 00:50:cc:44:55:57

然后显然添加允许其执行的权限:

chmod +x /etc/network/if-up.d/add-my-static-arp

并且每次启动任何网络接口时,这些 arp 条目都会被手动添加或重新添加。

答案1

看看 中的脚本/etc/network/if-up.d。每次接口进入时都会调用这些脚本上州。您可以创建一个包含所需命令的脚本并将其放在那里。

答案2

/etc/ethers

该文件必须包含:

mac    ip-address

相关内容