]
トップ «前の日記(2011-12-10) 最新 次の日記(2011-12-17)» 編集

Yukiharu YABUKI の tDiary



このtDiaryを検索します。

2011-12-15 [長年日記]

_ [Linux] nat/conntrack as conntrack-tools

Debian GNU/Linux で、NAT を扱う場面はいろいろある。私のNoteはLXCで複数のインタフェースを扱えるようにするのに、NATを使っている。一般的には、IPv4のアドレスを節約するための NAT、LVS(Linux Virtual Server)で使う、NATなど用途は広い。

本エントリは、netstat-natを補完するものです。conntrack as conntrack-tools について、書いていましたが、

$ cat /proc/net/ip_conntrack
$ cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count
の内容と同じような出力を conntrack コマンドで見ることができます。あと、ぼーっと conntrack -E でテーブルの更新情報をみるのも楽しいかもしれません。
$ cat /proc/sys/net/nf_conntrack_max
65536
この設定は、大規模な同時接続数としては少ない。netfilterのFAQによると、64MBで4096コネクションなので、8GBだと52万コネクションぐらいになる。これはメモリに常駐する管理エリアである。
# conntrack -S
entries   		89      
searched  		1078    
found     		62150   
new       		15991   
invalid   		868     
ignore    		1375    
delete    		22629   
delete_list		10703   
insert    		4066    
insert_failed		0       
drop      		0       
early_drop		0       
icmp_error		865     
expect_new		0       
expect_create		0       
expect_delete		0       
search_restart		0       
# conntrack -C
89
バケツ

別の方法として、起動時にモジュール組み込みでバケツ(ハッシュ領域)の指定ができるようだ。効率はそれなりに良さそうなのだが、再起動せずに変更できるのだろうか。また困ったから、大きくしたい時にサービスを止める必要があるとすると辛いかも。

conntrackd

このdaemonがあれば、コネクショントラックを複製できるので fail over の時間が早くなるのだが、仮想IPの管理を運用がしっかりと握らないといけない。

iptstate

natの内容をtopのような形式で表示してくれるプログラム。いまのコネクション情報を見るのによいが、大規模な環境だと、役立つかなあ。ないよりはあった方が良いけど。ものすごいエントリー数になりそうなので、具体的になにができるだろうか。 iptstateの画像