Neighbour table overflow.错误

 
错误信息:
May 17 16:32:28 Linux kernel: NET: 6746 messages suppressed.
May 17 16:32:28 Linux kernel: Neighbour table overflow.
。。。。。。。
 
系统:
Redhat as3u4
 
Linux Linux 2.4.21-27.ELsmp #1 SMP Wed Dec 1 21:59:02 EST 2004 i686 i686 i386 GNU/Linux
 
已经查找过相关的资料。是ARP的buffer不足的问题。but没有什么准确的改善办法。
1。使用arpd,我编译安装了arpd,并使用了它。没有发现什么效果。
2。redhat的发行版问题。lo没有启用。确认系统的lo已经启用。
 
察看了一下arp的表里已经存储了400多的ip和mac队以应表。。。。
 
 
故障现象为:客户地端的机器上网时通时不通。
 
 
 
 
为了解决这个问题,最后我只有加大cache
在/etc/sysctl.conf中加入
 
net.ipv4.neigh.default.gc_thresh3 = 40960
net.ipv4.neigh.default.gc_thresh2 = 20480
net.ipv4.neigh.default.gc_thresh1 = 10240
 
为了测试都改了超大。修改后没有再发现该错误提示。。
今天到目前为止使用正常。。。
 
 
可调整以下参数:
 
echo 180 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 262144 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
 
echo 120   > /proc/sys/net/ipv4/neigh/default/gc_stale_time
echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
 
 
gc_stale_time
 
 
 
决定检查一次相邻层记录的有效性的周期。
当相邻层记录失效时,将在给它发送数据前,再解析一次。
缺省值是60秒。
 
 
 
gc_thresh1
 
 
 
存在于ARP高速缓存中的最少层数,如果少于这个数,
垃圾收集器将不会运行。缺省值是128。
 
 
 
gc_thresh2
 
 
 
保存在 ARP 高速缓存中的最多的记录软限制。
垃圾收集器在开始收集前,允许记录数超过这个数字 5 秒。
缺省值是 512。
 
 
 
gc_thresh3
 
 
 
保存在 ARP 高速缓存中的最多记录的硬限制,
一旦高速缓存中的数目高于此,
垃圾收集器将马上运行。缺省值是1024。