hajichan.net technical version
トップページ >> サーバ管理(Solaris) >> ネットワークパラメータ設定

サーバ管理

ネットワークパラメータ設定

nddコマンドを使用したネットワークパラメータ設定

ネットワークパラメータを設定するには、nddコマンドを使用します。構文の詳細はマニュアルを参照して下さい。

全パラメータ表示

# ndd -get driver名 \?

パラメータ設定値表示

# ndd -get driver名 parameter

パラメータ設定

# ndd -set driver名 parameter value

で、driver名にはこんなのがあります。

【nddコマンドに指定するdriver名】
driver名 説明
/dev/インターフェース名 インターフェースに関する。例えば、/dev/hmeとか/dev/eriとかになります。
/dev/tcp TCPに関する
/dev/udp UDPに関する
/dev/icmp ICMPに関する
/dev/ip IPに関する
/dev/arp ARPに関する

恒久的に設定をするには、カーネルパラメータ設定ファイル/etc/systemに記述するか、起動スクリプトを作成して、その中でnddコマンドを実行するようにしてやります。そうすれば、起動時にパラメータが設定されますので。設定できるパラメータは、実にたくさんあります。詳細はBash Homepageとか、 Tuning Your TCP/IP Stack and Moreとか、Solaris Network Kernel Tunning for Security 辺りを見て下さい。いずれもすばらしいです。きっと役に立ちます。ここでは、僕の知っていることだけを書きたいと思います(わずかですが・・・)。

インターフェース通信モード設定

通信速度を見る。0:10Mbps、1:100Mbpsです。

# ndd -get /dev/hme link_speed

通信モードを見る。0:Half duplex、1:Full duplexです。

# ndd -get /dev/hme link_mode

AutoNegotiation機能が有効かみる。0:AutoNegotiation無効、1:AutoNegotiation有効です。

# ndd -get /dev/hme adv_autoneg_cap

通信モードを全二重に設定してみる。/etc/systemでやる場合。

# vi /etc/system
---
set hme:hme_adv_autoneg_cap=0
set hme:hme_adv_100hdx_cap=0
set hme:hme_adv_100fdx_cap=1

# /etc/telinit 6

nddコマンドでやる場合。

# ndd -set /dev/hme adv_autoneg_cap 0
# ndd -set /dev/hme adv_100hdx_cap 0
# ndd -set /dev/hme adv_100fdx_cap 1

arpテーブルキャッシュ時間設定

理解度はいまいちですが、ここのコラムを参照下さい。ヒントにはなるはずだと思いますが・・・

TCPパラメータチューニング

サーバリソースに余裕があるなら、TCPコネクション数やバッファサイズ等を大きめにチューニングすれば、より効果を発揮するかも知れません。 当然ですが、あまり大きな数値にすると、メモリリソースの枯渇からサーバへの負荷が高くなってしまうので、注意が必要です。この辺のさじ加減が難しいのですが。

接続が完了しているTCP接続の最大数(ESTABLISHEDな接続の最大数)を大きめに設定する。効果はより多くのアクセスを受け付ける事ができます。

# ndd -set /dev/tcp tcp_conn_req_max_q 1024

全てのTCP接続の最大数を大きめに設定。

# ndd -set /dev/tcp tcp_conn_req_max_q0 2048

TIME_WAIT状態の待ち時間を短めにして、メモリ解放を早くしてあげる設定。効果はより多くのアクセスを受け付ける事ができます。

# ndd -set /dev/tcp tcp_time_wait_interval 15000
# ndd -set /dev/tcp tcp_fin_wait_2_flush_interval 67500

コネクション確立時のタイムアウト時間。短めに設定しておけば、半オープンなコネクション状態の時間が短くなるので、SYN flood攻撃に有効かも知れない。

# ndd -set /dev/tcp tcp_ip_abort_interval 600000

送信ウインドサイズの変更。

# ndd -set /dev/tcp tcp_xmit_hiwat 65535

受信ウインドサイズの変更。

# ndd -set /dev/tcp tcp_recv_hiwat 65535

これくらいしか僕の理解度は有りません。もっと詳しく知りたい方は、以下のサイトを参照下さい。

Tips & Technique for Solaris
Bash Homepage
Solarisカーネルのチューンアップ・リファレンスマニュアル
パフォーマンスチューニングに関する記事
TCP解説

UDPパラメータチューニング

余裕があるなら、TCPと同様にバッファサイズを大きめに設定。

# ndd -set /dev/udp udp_xmit_hiwat 65535
# ndd -set /dev/udp udp_recv_hiwat 65535
ページのトップへ戻る