关于Neighbour table overflow消息

 
最近Linux服务器的屏幕上会一直出现「Neighbour table overflow」的信息,并且就连不上INTERNET了。这个问题已经困扰了我许久,但是因为事忙所以也没静下心来找一找解决的办法,只是每次都以把Linux服务器重启这个方法来暂时解决一下,不过大约只能撑个一、二个星期后就会又发生相同的情形。

今天终于让我找到一个解决的办法,根据国外的LINUX网站上谈论到这是一个BUG,因为原始设定的数值太小(只有128)了,所以一旦不够用就会产生「Neighbour table overflow」的讯息。所以我们要改正这个LINUX的缺失,就要自行输入一个加大的数字。

在命令列中输入下列指令即可︰

echo "1024" > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo "2048" > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo "4096" > /proc/sys/net/ipv4/neigh/default/gc_thresh3

或是用 vi 在 /etc/sysctl.conf 配置文件中加入下列三行文字︰

net.ipv4.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh1 = 1024

用下列指令可以查询目前的设定值为多少︰

cat /proc/sys/net/ipv4/neigh/default/gc_thresh1

NET: xx messages suppressed 的处理办法

/proc/sys/net/ipv4/ip_conntrack_max
改大

注意:/proc中的数据都是在内存中的,一关机就又没有了,所以如果想一开机就

改的话,就需要写到rc.local中去

如下这样写到rc.local文件中

echo "1024" > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo "2048" > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo "4096" > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max

同时还要对网内的主机进行查毒,可能由于蠕虫引起的攻击。

原文地址