启动网络时添加静态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条目。

看一下/etc/network/if-up.d中的脚本。 每次接口进入up状态时都会调用它们。 您可以使用所需命令创建脚本并将其放在那里。

 /etc/ethers 

该文件必须包含:

 mac ip-address