RHEL/CentOS修改ip_conntrack的HASHSIZE

1、概念

-容許的最大跟蹤鏈接條目:CONNTRACK_MAX(默認值是 2^16=65536 )
-存儲跟蹤鏈接條目列表的哈西表的大小:HASHSIZE
-每一個哈西表的條目(叫一個bucket),包含了一個連接起來的跟蹤鏈接條目
-哈希表大小HASHSIZE,表現爲 條目bucket的多少,在iptables啓動時在日誌中會顯示。ide

圖表形象解釋:spa

經過修改HASHSIZE的值,能夠自動擴展ip_conntrack_max,不須要額外再去修改ip_conntrack_max值了,ip_conntrack_max的值會被自動設置爲HASHSIZE值的8倍。.net

2、實戰

一、RHEL/CentOS 5.4系統

默認值8192(2^13),咱們增大爲131072(2^17):日誌

# echo "options ip_conntrack hashsize=131072" >> /etc/modprobe.conf

而後重啓 iptables 服務,便可生效。orm

二、RHEL/CentOS 6.4系統

6.4系統沒有/etc/modprobe.conf文件,以在/etc/modprobe.d/目錄中添加配置文件來實現:ip

# cd /etc/modprobe.d/# echo "options nf_conntrack hashsize=131072" > nf_conntrack.conf # reboot

改完要重啓系統才能生效。ci

# cat /sys/module/nf_conntrack/parameters/hashsize

這樣修改完以後,不須要額外再去修改ip_conntrack_max值了,ip_conntrack_max的值會被自動設置爲HASHSIZE值的8倍:get

# sysctl -a |grep conntrack_maxnet.netfilter.nf_conntrack_max = 1048576net.nf_conntrack_max = 1048576

三、參數的名字到底用ip_conntrack仍是nf_conntrack?

這個取決於系統裏模塊名究竟是ip_conntrack仍是nf_conntrack,能夠經過lsmod查看模塊列表來看出來你的模塊究竟是ip_conntrack仍是nf_conntrack:hash

# lsmod |grep conntracknf_conntrack           79357  5 iptable_nat,nf_nat,nf_conntrack_ipv4,nf_conntrack_ipv6,xt_state


轉自:http://ju.outofmemory.cn/entry/45769it

相關文章
相關標籤/搜索