Board logo

主題: [分享]解決 Linux NAT ip_conntrack: table full 的方法 [打印本頁]

發表人: MU    時間: 2008-4-15 09:27 PM     主題: [分享]解決 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
發表人: chs007    時間: 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 作了最後編輯]
發表人: miholee    時間: 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 作了最後編輯]




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0