--- /tmp/DOCMAN276bc85 2024-05-22 03:16:26.703929293 +0900
+++ /tmp/DOCMAN22f8c3R 2024-05-22 03:16:26.703929293 +0900
@@ -1,4 +1,4 @@
-UltraMonkey-L7 管理者マニュアル v2.2【v2.1.2-x対応版】
+UltraMonkey-L7 管理者マニュアル v2.3【v2.1.2-x対応版】
--------------------------------------------------------------------------------
@@ -19,6 +19,8 @@
2009.01.27 [v2.1] v2.1.1-0リリースに伴う修正(sslidモジュールのオプション記述
修正)
2009.03.17 [v2.2] v2.1.2-0リリースに伴う修正(ipモジュールのオプション記述)
+2009.06.17 [v2.3] v2.1.2-2リリースに伴う修正(cinsert,cpassive,crewriteモジュ
+ ール関連の記述を削除)
--------------------------------------------------------------------------------
@@ -37,12 +39,9 @@
3 l7vsadm 設定例
3.1 Sessionless モジュールの設定例
3.2 IP モジュールの設定例
- 3.3 Cookie パーシステンス insert モジュールの設定例
- 3.4 Cookie パーシステンス passive モジュールの設定例
- 3.5 Cookie パーシステンス rewrite モジュールの設定例
- 3.6 SSL Session ID モジュールの設定例
- 3.7 URL パーシステンスモジュールの設定例
- 3.8 パケットフィルタモジュールの設定例
+ 3.3 SSL Session ID モジュールの設定例
+ 3.4 URL パーシステンスモジュールの設定例
+ 3.5 パケットフィルタモジュールの設定例
4 サーバ監視設定ツールの説明
4.1 設定ファイル(l7directord.cf)の説明
4.2 l7directord.cf の設定項目
@@ -78,15 +77,6 @@
ない Sessionless モジュール。
・ip
Client の IP アドレスを元に RealServer への振り分けを行うモジュール。
- ・cinsert
- UltraMonkey-L7 で Cookie 情報を付与することでセッション管理をする Cookie
- パーシステンス insert モジュール
- ・cpassive
- RealServer で cookie 情報を付与することでセッション管理をする Cookie パー
- システンス passive モジュール
- ・crewrite
- RealServer で空の cookie を付与し UltraMonkey-L7 で cookie 情報を変更する
- ことでセッション管理をする Cookie パーシステンス rewrite モジュール
・sslid
RealServer 側で付与された SSL Session ID を UltraMonkey-L7 で管理すること
でセッション管理をする SSL Session ID モジュール
@@ -293,10 +283,10 @@
-t(--tcp-service) :VirtualService の Endpoint を指定する。
(例:-t service01:http, -t 10.10.0.1:80)
-m(--proto-module):ProtocolModule 名を指定する。
- (例:-m cinsert, -m url)
+ (例:-m sessionless, -m url)
ProtocolModule 名に続いて ProtocolModule オプ
ション (module-args) を指定することができる。
- (例:-m cinsert --cookie-name monkey)
+ (例:-m sessionless --forwarded-for)
指定できる ProtocolModule、および
ProtocolModule オプションの詳細は、2.5 を参照
@@ -377,10 +367,10 @@
-t(--tcp-service) :VirtualService の Endpoint を指定する。
(例:-t service01:http, -t 10.10.0.1:80)
-m(--proto-module) :ProtocolModule 名を指定する。
- (例:-m cinsert, -m url)
+ (例:-m sessionless, -m url)
ProtocolModule 名に続いて ProtocolModule オプ
ション (module-args) を指定することができる。
- (例:-m cinsert --cookie-name monkey)
+ (例:-m sessionless --forwarded-for)
指定できる ProtocolModule、および
ProtocolModule オプションの詳細は、2.5 を参照
@@ -427,10 +417,10 @@
-t(--tcp-service) :VirtualService の Endpoint を指定する。
(例:-t service01:http, -t 10.10.0.1:80)
-m(--proto-module) :ProtocolModule 名を指定する。
- (例:-m cinsert, -m url)
+ (例:-m sessionless, -m url)
ProtocolModule 名に続いて ProtocolModule オプ
ション (module-args) を指定することができる。
- (例:-m cinsert --cookie-name monkey)
+ (例:-m sessionless --forwarded-for)
指定できる ProtocolModule、および
ProtocolModule オプションの詳細は、2.5を参照
@@ -522,10 +512,10 @@
-t(--tcp-service) :VirtualService の Endpoint を指定する。
(例:-t service01:http, -t 10.10.0.1:80)
-m(--proto-module) :ProtocolModule 名を指定する。
- (例:-m cinsert, -m url)
+ (例:-m sessionless, -m url)
ProtocolModule 名に続いて ProtocolModule オプ
ション (module-args) を指定することができる。
- (例:-m cinsert --cookie-name monkey)
+ (例:-m sessionless --forwarded-for)
指定できる ProtocolModule、および
ProtocolModule オプションの詳細は、2.5 を参照
-r(--real-server) :追加する RealServer の Endpoint を指定する。
@@ -558,10 +548,10 @@
-t(--tcp-service) :VirtualService の Endpoint を指定する。
(例:-t service01:http, -t 10.10.0.1:80)
-m(--proto-module) :ProtocolModule 名を指定する。
- (例:-m cinsert, -m url)
+ (例:-m sessionless, -m url)
ProtocolModule 名に続いて ProtocolModule オプ
ション (module-args) を指定することができる。
- (例:-m cinsert --cookie-name monkey)
+ (例:-m sessionless --forwarded-for)
指定できる ProtocolModule、および
ProtocolModule オプションの詳細は、2.5を参照
-r(--real-server) :追加する RealServer の Endpoint を指定する。
@@ -589,10 +579,10 @@
-t(--tcp-service) :VirtualService の Endpoint を指定する。
(例:-t service01:http, -t 10.10.0.1:80)
-m(--proto-module) :ProtocolModule 名を指定する。
- (例:-m cinsert, -m url)
+ (例:-m sessionless, -m url)
ProtocolModule 名に続いて ProtocolModule オプ
ション (module-args) を指定することができる。
- (例:-m cinsert --cookie-name monkey)
+ (例:-m sessionless --forwarded-for)
指定できる ProtocolModule、および
ProtocolModule オプションの詳細は、2.5 を参照
-r(--real-server) :追加する RealServer の Endpoint を指定する。
@@ -821,91 +811,7 @@
--no-reschedule(-N)
セッション維持失敗時に再スケジュールを行なわないよう指定する。
- (3) Cookie Persistence Insertモジュール(cinsert)オプション
- UltraMonkey-L7 で cookie 情報を付与することでセッション管理するモジュー
- ル
-
- --cookie-name(-C) 文字列
- セッション管理するために UltraMonkey-L7 で付与する cookie の変数名
- を設定する。
- 127 文字以内の英数字を設定する。
- 指定しない場合のデフォルト名は CookieName となる。
- (例: --cookie-name CookieID, --C 'Session Cookie')
-
- --cookie-expire(-E) 数値
- UltraMonkey-L7 で付与する cookie の有効期限 (秒) を設定する。
- 設定可能な範囲は、0~INT_MAX の整数値で、指定しない場合のデフォルト
- 値は 86400 (1 日間) となる。
- (例: --cookie-expire 172800)
-
- --forwarded-for(-F)
- Client の IP アドレスを X-Forwarded-For ヘッダフィールドに挿入する
- よう指示する。
- デフォルト(指定しない場合の)動作は挿入しない。
-
- --reschedule(-R)
- セッション維持失敗時に再スケジュールを行うよう指定する。
- 指定しない場合のデフォルトは--no-rescheduleとなる。
-
- --no-reschedule(-N)
- セッション維持失敗時に再スケジュールを行なわないよう指定する。
-
- (4) Cookie Persistence Passiveモジュール(cpassive)オプション
- RealServer で cookie 情報を付与することでセッション管理をする Cookie
- パーシステンス passive モジュール
-
- --cookie-name(-C) 文字列
- セッション管理するために RealServer で付与する cookie の変数名を設
- 定する。
- 127 文字以内の英数字を設定する。
- 指定しない場合のデフォルト名は CookieName となる。
- (例: --cookie-name CookieID, --C 'Session Cookie')
-
- --forwarded-for(-F)
- Client の IP アドレスを X-Forwarded-For ヘッダフィールドに挿入する
- よう指示する。
- デフォルト(指定しない場合の)動作は挿入しない。
-
- --reschedule(-R)
- セッション維持失敗時に再スケジュールを行うよう指定する。
- 指定しない場合のデフォルトは--no-rescheduleとなる。
-
- --no-reschedule(-N)
- セッション維持失敗時に再スケジュールを行なわないよう指定する。
-
- パーシステンスするためには、RealServer で RealServer の IP アドレス、
- ポート番号を暗号化した値を --cookie-name に設定した Cookie にセットして
- Client に返す必要がある。セットする Cookie の値は l7cookie コマンドで算
- 出できる。
-
- (5) Cookie Persistence Rewriteモジュール(crewrite)オプション
- RealServer で空の cookie を付与し UltraMonkey-L7 で cookie 情報を変更す
- ることでセッション管理をする Cookie パーシステンス rewrite モジュール
-
- --cookie-name(-C) 文字列
- セッション管理するために RealServer で付与する cookie の変数名を設
- 定する。
- 127 文字以内の英数字を設定する。
- 指定しない場合のデフォルト名は CookieName となる。
- (例: --cookie-name CookieID, --C 'Session Cookie')
-
- --forwarded-for(-F)
- Client の IP アドレスを X-Forwarded-For ヘッダフィールドに挿入する
- よう指示する。
- デフォルト(指定しない場合の)動作は挿入しない。
-
- --reschedule(-R)
- セッション維持失敗時に再スケジュールを行うよう指定する。
- 指定しない場合のデフォルトは--no-rescheduleとなる。
-
- --no-reschedule(-N)
- セッション維持失敗時に再スケジュールを行なわないよう指定する。
-
- パーシステンスするためには、RealServer で --cookie-name に設定した
- Cookie に 000000000000000 ('0' を 15 文字)セットして Client に返す必
- 要がある。
-
- (6) SSL Session IDモジュール(sslid)オプション
+ (3) SSL Session IDモジュール(sslid)オプション
RealServer 側で付与された SSL Session ID を UltraMonkey-L7 で管理するこ
とでセッション管理をするモジュールです。
@@ -928,7 +834,7 @@
--no-reschedule(-N)
セッション維持失敗時に再スケジュールを行なわないよう指定する。
- (7) URL Persistence モジュール(url)オプション
+ (4) URL Persistence モジュール(url)オプション
特定の URL に関して、一意のリアルサーバへの通信するために使用するモジュ
ールです。
@@ -963,7 +869,7 @@
よう指示する。
デフォルト(指定しない場合の)動作は挿入しない。
- (8) パケットフィルタモジュール(pfilter)オプション
+ (5) パケットフィルタモジュール(pfilter)オプション
特定の文字列を含むリクエストからの通信を遮断するパケットフィルタリング
モジュール
@@ -1055,41 +961,7 @@
以上の設定にて、Client の IP アドレスに従って 各 RealServer へ振分けを行い
ます。
- 3.3 Cookie パーシステンス insert モジュールの設定例
- UltraMonkey-L7 で cookie 情報を付与する cookie の変数名を monkey とする場合
- かつ cookie の有効期限を 2 日間 (=172800秒) に設定するには、以下のように設
- 定します。
-
- # l7vsadm -A -t 192.168.8.100:80 -m cinsert --cookie-name 'monkey' \
- --cookie-expire 172800 -s rr
- # l7vsadm -a -t 192.168.8.100:80 -m cinsert --cookie-name 'monkey' \
- -r 192.168.16.11:80
- # l7vsadm -a -t 192.168.8.100:80 -m cinsert --cookie-name 'monkey' \
- -r 192.168.16.12:80
-
- 3.4 Cookie パーシステンス passive モジュールの設定例
- RealServer で cookie 情報を付与する cookie の変数名を monkey とする場合は、
- 以下のように設定します。
-
- # l7vsadm -A -t 192.168.8.100:80 -m cpassive --cookie-name 'monkey' \
- -s rr
- # l7vsadm -a -t 192.168.8.100:80 -m cpassive --cookie-name 'monkey' \
- -r 192.168.16.11:80
- # l7vsadm -a -t 192.168.8.100:80 -m cpassive --cookie-name 'monkey' \
- -r 192.168.16.12:80
-
- 3.5 Cookie パーシステンス rewrite モジュールの設定例
- RealServer で cookie 情報を付与する cookie の変数名を monkey とする場合は、
- 以下のように設定します。
-
- # l7vsadm -A -t 192.168.8.100:80 -m crewrite --cookie-name 'monkey' \
- -s rr
- # l7vsadm -a -t 192.168.8.100:80 -m crewrite --cookie-name 'monkey' \
- -r 192.168.16.11:80
- # l7vsadm -a -t 192.168.8.100:80 -m crewrite --cookie-name 'monkey' \
- -r 192.168.16.12:80
-
- 3.6 SSL Session ID モジュールの設定例
+ 3.3 SSL Session ID モジュールの設定例
SSL Session ID モジュールは、SSL Session ID を管理する期間と管理するリスト
数を指定する設定となります。
@@ -1102,7 +974,7 @@
2 時間以内に 512 個以上の異なる SSL Session ID でリクエストが送られてきた場
合は、最も古い SSL Session ID が破棄されます。
- 3.7 URL パーシステンスモジュールの設定例
+ 3.4 URL パーシステンスモジュールの設定例
URL モジュールは、HTTP リクエストヘッダの URI 部分、および Host フィールド
部分に指定した文字列が存在する場合に、指定されたスケジューラに従ってサーバ
へ振り分けるという設定となります。
@@ -1130,7 +1002,7 @@
在した場合は、指定してあるスケジューラに従って RealServer 192.168.16.11,
192.168.16.12 に振り分けます。Apache の VirtualHost と似た動きになります。
- 3.8 パケットフィルタモジュールの設定例
+ 3.5 パケットフィルタモジュールの設定例
パケットフィルタモジュールは、Client パケットに指定した文字列が含まれる場合
接続を切断し、含まれない場合はスケジューラに従って振り分けを行います。
@@ -1286,9 +1158,9 @@
(2) module (省略時: sessionless)
VirtualService に設定するプロトコルモジュールと必要であれば、その
オプションを指定する。現在設定可能なプロトコルモジュールは以下の
- 4 つ。
- cinsert, url, sessionless, sslid
- (例: module = cinsert --cookie-name monkey)
+ 3 つ。
+ url, sessionless, sslid
+ (例: module = sessionless --forwarded-for)
(3) scheduler (省略時: rr)
VirtualService に設定するスケジュールモジュールを指定する。現在指
@@ -1547,6 +1419,9 @@
4.3 サンプル
+ 例として、期待する機能を持たせる為の設定パターンをいくつか挙げる。
+ 各々について記載のない定義値に関しては省略時の値が使用されるものとする。
+
1) 2 台の RealServer に振り分け Ping で監視する
virtual = xxx.xxx.xxx.xxx:80
@@ -1554,39 +1429,25 @@
real = 192.168.1.3:80
checktype = ping
- 2) 2 台の RealServer に振り分け cinsert モジュールを使って、クライアントの
- セッションを維持する。それぞれの重みを 2:3 に変えて、重みつきの振り分け
+ 2) 2 台の RealServer にそれぞれの重みを 2:3 に変えて、重みつきの振り分け
を行う。また、サービス監視を行い、Apache の mod_status を用いてアイドル
状態の worker があることを確認する。
virtual = xxx.xxx.xxx.xxx:80
real = 192.168.1.2:80 2
real = 192.168.1.3:80 3
- module = cinsert --cookie-name UMid
scheduler = wrr
service = http
request = /server-status
receive = "[1-9][0-9]? idle workers"
- 3) 3 台の RealServer に振り分け、監視負荷を下げるために監視間隔を広めに設定
- し、2 回に 1 度データベースの確認を行う。異常時の検知時間を短くするため
- に監視失敗時の間隔を通常より短くする。
-
- checkinterval = 30
- checkcount = 3
- retryinterval = 5
- negotiatetimeout = 3
- connecttimeout = 3
+ 3) 2 台の RealServer に振り分け sslid モジュールを使って、クライアントの
+ セッションを維持する。
- virtual = xxx.xxx.xxx.xxx:5432
- real = 192.168.1.2:5432
- real = 192.168.1.3:5432
- checktype = 1
- service = pgsql
- database = template1
- login = postgres
- passwd = postgres
- request = 'select * from user'
+ virtual = xxx.xxx.xxx.xxx:443
+ real = 192.168.1.2:443
+ real = 192.168.1.3:443
+ module = sslid
--------------------------------------------------------------------------------
@@ -1656,6 +1517,13 @@
(記述があっても機能しません)
6.2 l7vs.cfのサンプルの説明
+ [iomux]
+ max_events = 1024 <- イベント数(ファイルディスクリプタ数)上限値
+
+ [conn]
+ # recv/send buffer size
+ read_bufsize = 20480 <- 受信データサイズ
+
#
# l7vs log setting
#