我的服务器不断发送 ARP 请求,而我的提供商对此并不满意。为了找出原因,我想阻止所有传出的 arp 请求(以便我的提供商不会再次阻止我的服务器)并一一终止所有进程,以找出是哪个进程在执行此操作。
如何阻止所有传出 ARP 流量(也许使用 arptables)?
我运行的是 Debian 7。
编辑:输出ip ro sh
:
default via 78.xxx.yyy.41 dev eth0
78.xxx.yyy.40/29 via 78.xxx.yyy.41 dev eth0
78.xxx.yyy.40/29 dev eth0 proto kernel scope link src 78.xxx.yyy.46
答案1
如果你阻止全部发出 ARP 请求时,除了广播之外,您将无法建立任何网络连接。
问题可能是您正在发送不必要ARP 请求。当默认路由简单地声明为传出网络接口而不是网关时,我已经看到了这一点。这意味着系统必须执行 ARP全部传出 IP 地址,如果您向全世界提供网站服务,则该地址可能会很多。
这种情况下的解决方案是将默认路由更改为网关 IP 地址,而不仅仅是接口名称。现在,系统只需要为该网关 IP 地址发送 ARP,该地址已被缓存,因此每分钟最多只发送几次,而不是为连接到您的系统或您的系统尝试连接的每个唯一 IP 地址发送 ARP。
编辑:
输出的第二行ip ro sh
是一个(?)问题;您正在通过网关路由器路由 /29 子网的流量,该路由器可能会向真实主机发送 ICMP 重定向。您应该简单地删除该路由,因为第三行将处理您子网内主机的流量。请调查该路由是如何添加到您的系统中的。