[轉] Linux Neighbour table overflow 問題的解決2009-04-06 09:45“Neighbour table overflow ”問題的解決 獨立作者: 周偉

[轉] Linux Neighbour table overflow 問題的解決2009-04-06 09:45“Neighbour table overflow ”問題的解決 獨立作者: 周偉 網絡上沒有找到完整的資料,我寫下這些與大家共同交流。 前幾天,我們公司的一臺LINUX共享上網服務器老是提示: Jul 20 10:34:22 netgate kernel: Neighbour table overflow. Jul 20 10:34:27 netgate kernel: NET: 438 messages suppressed. Jul 20 10:34:27 netgate kernel: Neighbour table overflow. Jul 20 10:34:32 netgate kernel: NET: 442 messages suppressed. 公司網絡速度很慢,MSN常斷線。 上網GOOGLE搜索了一下,說是“垃圾回收機制出現問題了,造成系統的arp表出現嚴重的抖動現象,” 按他們的文檔修改幾個參數。 默認大小 echo 120 >; /proc/sys/net/ipv4/neigh/default/gc_stale_time 60 echo 512 >; /proc/sys/net/ipv4/neigh/default/gc_thresh1 256 echo 2048 >; /proc/sys/net/ipv4/neigh/default/gc_thresh2 512 echo 4096 >; /proc/sys/net/ipv4/neigh/default/gc_thresh3 1024 只好了幾分鐘,不解決問題。 我想修改參數是治標沒治本,沒有找到arp表出現嚴重抖動的原因。 我解決問題的過程如下: OS環境:REDHAT AS3 U4 接口: eth0 接外網 eth1 接內網 先屏蔽外網:# ifconfig eth0 down 問題依舊,判斷問題在內網。 恢復外網:#ifconfig eth0 up # arp 顯示arp表很亂,就是他們說的arp表出現嚴重的抖動現象。 對內網接口eth1進行跟蹤: # tcpdump -i eth1 arp 發現十幾臺機器不停地向linux詢問不存在的ip地址的MAC,是它們造成arp表出現嚴重的抖動現象。 12:55:41.900194 arp who-has 172.19.0.157 tell 172.19.201.70 12:55:42.086023 arp who-has 172.19.215.219 tell 172.19.201.70 12:55:42.556482 arp who-has 172.19.124.232 tell 172.19.201.70 12:55:42.990155 arp who-has 172.19.85.122 tell 172.19.201.70 12:55:43.322160 arp who-has 172.19.88.217 tell 172.19.201.70 12:55:43.580866 arp who-has 172.19.51.85 tell 172.19.201.70 在天網防火牆中同時發現這十幾臺電腦不停在向外發包,主要是445端口,這些電腦有病毒。 我和網管停了這十幾臺電腦,“Neighbour table overflow”的信息終於消失。 arp表也穩定下來了,網絡速度也快了。 最後,向全公司的員工發了一個通知: 誰的機器不安裝殺毒軟件,感染病毒,防火牆禁止他上外網。 轉自:http://www.lslnet.com/linux/dosc1/38/linux-276688.htm 附:How to resolve "Neighbour table overflow" problem? Gnu/Linux servers (when used extensively as a server) throw the following messages in log file kernel: Neighbour table overflow. kernel: printk: 100 messages suppressed. kernel: Neighbour table overflow. kernel: printk: 151 messages suppressed. kernel: Neighbour table overflow. The solution to the problem is to increase the threshold level for the network devices To check the present threshold level 1 cat /proc/sys/net/ipv4/neigh/default/gc_thresh1 It will give some value as 128 or 256 or 512. This can be increased to the next level.Like if the value is 128 then make the thresh1 value as 256 and thresh2 as 512 and thresh3 as 1024. echo 256 > /proc/sys/net/ipv4/neigh/default/gc_thresh1 echo 512 > /proc/sys/net/ipv4/neigh/default/gc_thresh2 echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh3 This will stop the Error messages that were recieved in the log file
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章