ip_conntrackを設定する理由
パケットフィルタリングツールであるiptablesは、パケットを解析するときにip_conntrackというファイルにトラッキング情報を記録します。
ip_conntrackには、最大トラッキング数があり、それをオーバーすると新規セッションを弾いてしまって、ネットワークパフォーマンスの劣化を招きます。
/var/log/messageにこのようなメッセージが出ていたら、ip_conntrackが溢れている状態です。
ip_conntrack: table full, dropping packet |
大量のトラフィックを捌くロードバランサーやキャッシュなどの目的を持ったLinuxマシンで、iptablesを使っているときには、ip_conntrackの最大トラッキング数を忘れずに設定しておきましょう。
ここでは、手元のマシンCentOS 5と6で設定をしていきます。
検証環境
CentOS 6.3(64bit)
CentOS 5.8(64bit)
ip_conntrackの設定方法
まず、現在のトラッキング数と最大トラッキング数を確認しましょう。
現在使用しているip_conntrackのトラッキング数を確認します。
CentOS 5 # cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count 24030 CentOS 6 # cat /proc/sys/net/netfilter/nf_conntrack_count 24030 |
最大トラッキング数を確認。
CentOS 5 # cat /proc/sys/net/ipv4/ip_conntrack_max 65536 CentOS 6 # cat /proc/sys/net/netfilter/nf_conntrack_max net.nf_conntrack_max = 65536 |
カーネルパラメータに最大トラッキング数を設定してきます。
ip_conntrackは1トラッキングにつき350バイトのメモリを必要とします。
http://www.netfilter.org/documentation/FAQ/netfilter-faq-3.html
You can easily increase the number of maximal tracked connections, but be aware that each tracked connection eats about 350 bytes of non-swappable kernel memory!
これは、スワップできないメモリです。
メモリ量と相談して、余裕を持って最大トラッキング数を決めましょう。
今回は100万トラッキング(約350Mバイト必要)としました。
CentOS 5 # emacs /etc/sysctl.conf net.ipv4.netfilter.ip_conntrack_max = 1000000 CentOS 6 # emacs /etc/sysctl.conf net.nf_conntrack_max = 1000000 |
カーネルパラメータを反映します。
「sysctl -p」を実行すると、設定ファイルが読み込まれて値が反映されます。
CentOS 5/6 /sbin/sysctl -p |
設定値を確認しましょう。
CentOS 5 # cat /proc/sys/net/ipv4/ip_conntrack_max 1000000 CentOS 6 # cat /proc/sys/net/netfilter/nf_conntrack_max 1000000 |
無事、設定が完了しました。
iptablesをリスタートしたとき、設定がリセットされないようにする
CentOS 5の場合、iptablesのバージョンが低く(iptables v1.3.5)、iptablesをリスタート、またはOSをリブートするときに最大トラッキング数がデフォルト値に戻ってしまいます。
このまま運用すると、トラフィック増大時にトラッキング数オーバーとなり、ネットワークパフォーマンスの劣化を招く結果となってしまいます。
これを、回避するようにします。
※CentOS 6(iptables v1.4.7)、Ubuntu 12(iptables v1.4.12)では同様の現象はありませんでした。
まず、iptablesをリスタートして設定が元に戻る事を確認します。
# /etc/init.d/iptables restart Flushing firewall rules: [ OK ] Setting chains to policy ACCEPT: filter [ OK ] Unloading iptables modules: [ OK ] Applying iptables firewall rules: [ OK ] Loading additional iptables modules: ip_conntrack_netbios_n[ OK ] |
設定されている最大トラッキング数を確認してみましょう。
# cat /proc/sys/net/ipv4/ip_conntrack_max 65536 |
リスタートしたときに「Unloading iptables modules」となり、モジュールがアンロードされて設定が戻ってしまっているのが判りますね。
これを回避するために、iptables-configで設定をnoにします。
# emacs /etc/sysconfig/iptables-config IPTABLES_MODULES_UNLOAD="no" |
カーネルパラメータを再反映します。
# /sbin/sysctl -p # cat /proc/sys/net/ipv4/ip_conntrack_max 1000000 |
iptablesをrestartします。
# /etc/init.d/iptables restart Flushing firewall rules: [ OK ] Setting chains to policy ACCEPT: filter [ OK ] Applying iptables firewall rules: [ OK ] Loading additional iptables modules: ip_conntrack_netbios_n[ OK ] |
今回は、モジュールがアンロードされていません。
# cat /proc/sys/net/ipv4/ip_conntrack_max 1000000 |
簡単ですね!
ip_conntrackの値をNagios/Muninで監視
最後に、ip_conntrackの数値を監視するNagios/Muninのプラグインをご紹介します。
Githubで公開されています。
Nagios
https://github.com/hrix/nagios-plugin-ip_conntrack
Munin
https://github.com/hrix/munin-plugin-ip_conntrack
これを設定しておけば、安心できますね。
e-Agencyではカーネルのチューニングが大好きなエンジニアを募集しています。
PICK UP
-
タグ: つながりの力, イー・エージェンシー, コラム, リモートワーク, 人材育成, 企業文化, 信頼と自主性, 働き方, 広報戦略, 未来のリーダー育成, 次世代経営, 社長インタビュー, 組織づくり, 経営哲学, 経営者の視点
リモートワークどうする?経営合宿で何を話してる?【甲斐社長に聞く 第1回】|株式会社イー・エージェンシー公式note -
タグ: ECサイト分析, GA4, Googleアナリティクス, Looker Studio, gmpプレミアムサロン, イー・エージェンシー, コラム, ダッシュボード作成, デジタル販売推進, データ可視化, データ活用トレーニング, ニトリ, マーケティング分析, 探索レポート, 業務効率化
株式会社ニトリ様 GA4・Looker Studioワークショップ開催事例 – データ活用への関心の高さを実感! -
タグ: AIアップデート, AIデザイン支援, AI活用事例, Claude比較, Gemini 2.5 Pro, Google Gemini, HTML生成, イー・エージェンシー, グラレコHTML, コラム, フロントエンド生成, プロンプト設計, 手書き風デザイン, 生成ai, 視覚化
猫よりAI 第5回:「Gemini 2.5 Pro、すごくない?」──グラレコHTML出力をClaudeから移植してみた話|公式note -
タグ: エンジニア募集, オウンドメディア, コラム, ビジネス職, リモートワーク, レコメンドエンジン, 中途採用, 働きやすい環境, 採用強化, 社内文化, 翻訳ツール
【オープン社内報 2025年6月号】イー・エージェンシー プレミアムニュース -
タグ: エンジニア採用, キャリア採用, コミュニケーション, コラム, ブログ, リモートワーク, ワーケーション, 文化, 環境
2025年6月の募集職種一覧!ビジネス職を中心に採用強化中!|株式会社イー・エージェンシー公式note -
有限会社シサム工房様:さぶみっと!レコメンドご利用事例