茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1735189 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_220251.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2006/6/6 11:27:05
解決 Linux NAT ip_conntrack: table full 的方法

原本 Linux NAT 用得好好的, 沒想到幾天前卻出現了無法上網的情況, 而系統記錄也出現了這樣的訊息:

ip_conntrack: table full, dropping packet.

後來才知道, Linux NAT 的 ip_conntrack 模組會記錄 tcp 通訊協定的 established connection 記錄, 而且預設 timeout 時間長達五天 (432,000 秒), 因此只要 LAN 中有人使用 P2P 軟體 (如: eDonkey、BT...) 就容易發生這種問題.

解決方法 (1): 加大 ip_conntrack_max 值

查出原本的 ip_conntrack_max 值:
指令: cat /proc/sys/net/ipv4/ip_conntrack_max

寫入理想的數值 (每一個 ip_conntrack buffer 會佔用 292 Bytes)
指令: echo "數值" > /proc/sys/net/ipv4/ip_conntrack_max
例如: echo "81920" > /proc/sys/net/ipv4/ip_conntrack_max
這個效果是暫時的, 如果要每次開機都使用新的數值, 需將上述指令寫入 /etc/rc.d/rc.local
或是在 /etc/sysctl.conf 加入: net.ipv4.ip_conntrack_max = 數值
或使用指令: sysctl -w net.ipv4.ip_conntrack_max=數值


解決方法 (2): 降低 ip_conntrack timeout 時間

重設 ip_conntrack_tcp_timeout_established (原值: 432000, 單位: 秒)
指令: echo "數值" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
例如: echo "600" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

開機自動設置的作法同方法(1).

其他相關指令:

查看目前 ip_conntrack buffer 使用狀況
指令: grep conn /proc/slabinfo

結果實例: ip_conntrack 3024 4090 384 409 409 1 (各值說明如下)


ip_conntrack the cache name
3024 the number of currently active objects
4090 the total number of available objects
384 the size of each object in bytes
409 the number of pages with at least one active object
409 the total number of allocated pages
1 the number of pages per slab are given

man slabinfo 可查詢詳細說明.

查出目前 ip_conntrack 記錄最多的前五名 IP
指令: cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 5

結果實例:

2816 192.168.1.100
14 163.30.85.129
6 220.132.142.175
6 127.0.0.1
4 218.187.5.223

由此可知, 192.168.1.100 佔用了絕大多數的 buffer, 推斷這個 IP 的 User 可能使用了 P2P 軟體.


參考資料:

相關網頁:

內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   


吃太飽Good JobHiJolinOMGOrz哭XD三八萌水汪汪大眼水草舞失魂打小人
打瞌睡石化交出來印堂黑黑吐吐血(不明液體版)吐血(鮮血版)好心情好夢入睡守門員之魂冷汗直流冷吱吱
完美計畫我不依沒什麼嘛狂暴狂驚幸福御守昏死泡澡空南無南無怒火中燒挖鼻孔
指苦惱煙狂倒地哭哭不害羞扭扭射門烏鴉飛過笑裡藏刀茶高處不勝寒鬼點子崩潰
推眼鏡淒涼淚奔爽被咬了喔呵呵無力感無言無辜畫圈掰掰催眠微笑
感冒想入非非愛之轟炸搞自閉萬年奸臣裝死跪拜禮嘆息槌飛你漫不經心疑惑遠目
鼻青臉腫嘲笑噴暴走撞人樂奔熱蔥不聽蔥妹恭喜樣蔥寶恭喜衝刺運球頭昏目眩濕
臉紅紅舉紅牌舉黃牌翻桌瓊瑤跪哭讚美主勾拳一記偽可愛賊親一個洗澡畢業了
藍藍路壞大叔啦啦隊鞭K書捲心被一臉肅殺怕怕阿飄無盡漩渦窮帥
orz-v2驚-v2不行了驕傲內傷眼睛一亮跌坐-V2熱-V2囧
 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|