TCP/IP の Linux での設定

メモ

ローカルポートの範囲

/proc/sys/net/ipv4/ip_local_port_range外に向かう接続における、ローカルポートの範囲。
実際のデフォルトは極めて小さく、1024 から 4999 です。

あまり知られていない設定

TIME_WAIT の制御

tcp_max_tw_buckets (integer; default: 下記)
システムが許容する TIME_WAIT 状態にあるソケットの最大数。 この制限が存在するのは、 単純な使用不能 (denial-of-service) 攻撃を防ぐために過ぎない。 デフォルト値は NR_FILE*2 で、システムのメモリに応じて調整される。 この数値を越えると、そのようなソケットはクローズされ、警告が表示される。


tcp_tw_recycle (Boolean; default: disabled)

TIME_WAIT ソケットの素早い再利用を有効にする。
このオプションを有効にすると、
NAT (ネットワークアドレス変換) を用いていると問題が生じるので、
あまり推奨しない。


tcp_tw_reuse (Boolean; default: disabled)

プロトコルの面から見て問題ない場合に新規コネクションに TIME_WAIT
状態のソケットを再利用することを許可する。技術的に詳しい人の助言や
要請なしにこのオプションを変更すべきではない。

Manpage of TCP

手元の Ubuntu 8.10 では、(デフォ)

% cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
% cat /proc/sys/net/ipv4/tcp_max_tw_buckets
180000
% cat /proc/sys/net/ipv4/tcp_tw_reuse
0
% cat /proc/sys/net/ipv4/tcp_tw_recycle
0

TIME_WAIT の状態にある時間間隔は指定できないのだろうか?