iptables優化
iptables優化#
nf_conntrack: table full, dropping packet,這是使用iptables可能會出現的一個告警信息。nf_conntrack是用來記錄連接條目的,NAT和iptables中的state模塊都會用到這個,如果連接表滿了就會出現告警信息。
比如默認安裝iptables后的自動加上INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT這個條目,-m state表示會用四種狀態:NEW,ESTABLISHED,RELATED 和INVALID
NEW說明這個包是第一個包。當使用UDP、TCP等協議時,發出的第一個包的狀態就是“NEW”,它會被conntrack匹配
ESTABLISHED當你在使用TCP、UDP等協議時:假設你的主機發出的第一個包成功穿越防火墻,那么接下來你的主機發出和接收到的包的狀態都是“ESTABLISHED”
RELATED,當一個連接和某個已處于ESTABLISHED狀態的連接有關系時,就被認為是RELATED的了。換句話說,一個連接要想 是RELATED的,首先要有一個ESTABLISHED的連接。這個ESTABLISHED連接再產生一個主連接之外的連接,這個新的連接就是RELATED。
INVALID說明數據包不能被識別屬于哪個連接或沒有任何狀態,這種包應該被丟棄。
在連接數不大的時候nf_conntrack表不大,使用 state模塊或者NAT功能(雖然沒有相關條目)沒有問題,但是在大流量的生產環境中不要使用這個模塊,這會造成系統的負載上升,出現上面的告警信息。需要在生產環境中做優化。
1、 關閉ipv6的iptables
chkconfig ip6tables off
service ip6tables stop
2、 在Iptables中使用標志位來識別ESTABLISHED鏈接,并刪除所有state狀態,配置NAT的條目
iptables -I INPUT -p tcp -m tcp -m multiport --dports 80,443,15533 -j ACCEPT
iptables -I INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
iptables -D INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
3、 移除內核nf_conntrack相關模塊,禁用NAT功能,如果刪除不了是因為在別的地方被調用了

浙公網安備 33010602011771號