RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [分享]解決 Linux NAT ip_conntrack: table full 的方法   字型大小:||| 
MU
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
驢的傳人-驢騎士

今日心情

 . 積分: 765
 . 精華: 12
 . 文章: 5247
 . 收花: 3150 支
 . 送花: 1996 支
 . 比例: 0.63
 . 在線: 609 小時
 . 瀏覽: 6090 頁
 . 註冊: 7233
 . 失蹤: 69
 . 台中的阿土伯
#1 : 2008-4-15 09:27 PM     只看本作者 引言回覆

原本 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



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
chs007
銅驢友〔高級〕
等級: 10等級: 10等級: 10


 . 積分: 160
 . 文章: 284
 . 收花: 1173 支
 . 送花: 243 支
 . 比例: 0.21
 . 在線: 2224 小時
 . 瀏覽: 18602 頁
 . 註冊: 6987
 . 失蹤: 49
 . 日本
#2 : 2008-4-19 10:01 PM     只看本作者 引言回覆

感謝版主的教學!!最近這個問題也一直在困擾我!通常是同時開BT和Emule的時候會發生!
不過可能因為我用的是ASUS WL-500W+OLEG的韌體,都找不到要在哪裡設定這兩個值
只有發現可疑的地方是/proc/net下面的ip_conntrack但是輸入cat  ip_conntrack後卻出現一堆類似
udp      17 8 src=192.168.1.247 dst=212.139.69.227 sport=60430 dport=43664 [UNREPLIED] src=212.139.69.227 dst=118.109.116.107 sport=43664 dport=60430 use=1 mark=0
的東西
沒有看到ip_conntrack_max和ip_conntrack_tcp_timeout_established 耶....


我知道要在哪裡解決了!!原來直接登入到基地台的設定裡面改就好了!!
在Internet Firewall > Basic Settings > Number of connections to track這一項裡面!!
原來的值是4096現在直接加一倍成8192看能不能改善!!
292 Bytes /1024*8192 =2336MB我想我的WL-500W是可以撐得住的.....

[chs007 在  2008-4-19 10:17 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
miholee
青銅驢友
等級: 11等級: 11等級: 11等級: 11


今日心情

 . 積分: 347
 . 文章: 593
 . 收花: 2605 支
 . 送花: 2182 支
 . 比例: 0.84
 . 在線: 1571 小時
 . 瀏覽: 50899 頁
 . 註冊: 7039
 . 失蹤: 2
 . Taibei
#3 : 2008-9-17 11:03 PM     只看本作者 引言回覆

2.6 kernel, 忘了從哪一版開始, 改用 /proc/sys/net/nf_conntrack_max

至於 ip_conntrack_tcp_timeout_established,
另外有個 /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established

[miholee 在  2008-9-17 11:06 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-4-16 09:13 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.019812 second(s), 6 queries , Qzip disabled