[Ultramonkey-l7-develop 308] Re: 次期リリース用ブランチを切りました

Back to archive index

Kouhei TANUMA tanum****@nttco*****
2009年 2月 16日 (月) 12:52:18 JST


竹林さん

田沼です。

メール入れ違いになりましたが、対応した分をマージしました。
また、新規のものをいくつか追加しています。
一通り確認はしてありますが、いきなり stable にするのは
ちょっと不安な気がしないでもないです。どうしましょうか?

>・l7directord の IP アドレス変換ルーチン修正(x86 環境で out of
range 発生)

これは前の v2.1.1 で修正したようです。(忘れてました)

以下、変更点一覧です。


1. crewrite モジュール追加
  --cookie-name キーオプション(必須)
  --forwarded-for, --reschedule, --no-reschedule(他と同様)
  リアルサーバで --cookie-name に指定したクッキー名で、
  値に 0 を 15 桁つけなければならない。
  そこに cinsert と同様のリアルサーバ情報を上書きする

2. cpassive モジュール追加
  --cookie-name キーオプション(必須)
  --forwarded-for, --reschedule, --no-reschedule(他と同様)
  リアルサーバで --cookie-name に指定したクッキー名で、
  値に cinsert と同様のリアルサーバの IP アドレスと
  ポートを整数に変換し連結したものをつけなければならない。

3. pfilter モジュール追加
  --pattern-match キーオプション(必須)
  --read-byte 数値(任意、デフォルト1024)
  
  pfilter モジュールは実装を以前から変えている。
  以前のキーオプションは --path-match だったが
  パケットフィルタという名前だと、リクエストパケット全体を
  フィルタするべきで、URL モジュールに合わせて --pattern-match
  とした。
  また、検索処理も fnmatch から、より汎用的な正規表現に変更した。
  (boost::regex 使用)
  
  オプションの --read-byte はリクエストの先頭何バイトを
  検索対象とするか。
  
  (例) 古いですが CodeRed 避け
  --pattern-match "/default\.ida\?\\S{200}"
  
  (例) GET, HEAD 以外禁止
  --pattern-match '\A(?!(GET|HEAD))'

4. ソース IP アドレスパーシステンスモジュール追加(ip モジュール)
  キーオプションなし
  --forwarded-for, --reschedule, --no-reschedule(他と同様)
  クライアント接続時に即リアルサーバ確定(fast schedule)
  
  中居さんのコメントに従い、プロトコルモジュールとして実装。
  アルゴリズムは以前に作成したスケジューラでのものと似ていて
  ソース IP アドレスをハッシュ変換して、ハッシュ−リアルサーバの
  テーブルをチェック。既にリアルサーバが決まっていれば
  そのリアルサーバに振り分け、決まっていなければスケジューラに
  任せる。
  
  以前まで振り分けられていたリアルサーバがなくなった場合は
  reschedule フラグに従い、reschedule オンの場合は、再度
  スケジューラ任せ、reschedule オフの場合は、その場で切断される。
  (この辺は他のモジュールと同じ動作)
  デフォルトは reschedule オフ。
  
  課題として、ハッシュ−リアルサーバのテーブルをレプリケーション
  する必要がある。(未実装)
  また、テーブルは sockaddr_in * ハッシュサイズ(デフォルト256)
  になっていて、IPv6 非対応。(メモリは 16 * 256 = 4K)

5. cinsert モジュールのテンポラリクッキー対応
  --cookie-expire に 0 を指定することで、
  expires を出力しなくした。

6. url モジュールの検索高度化
  --pattern-match (既存)
  --uri-pattern-match (新規)
  --host-pattern-match (新規)
  いずれか必須のキーオプション(全て指定しても OK)
  
  --pattern-match は既存のもので fnmatch で
  URI と Host ヘッダフィールドから文字列検索。
  (互換性のために残してます)
  
  --uri-pattern-match は URI のみ対象の正規表現検索。
  --host-pattern-match は Host ヘッダフィールドのみ対象の
  正規表現検索。(boost::regex 使用)
  
  (例) イメージのマッチ
  --uri-pattern-match "(jpg|gif|png)$"
  
  (例) VirtualHostのマッチ
  --host-pattern-match "^images.example.com$"

7. l7directord ログ修正
  logfile を指定していた場合でも、起動時のログが
  標準の /var/log/l7vs/l7directord.log に固定で
  出力されてしまうのを修正

8. l7directord プロトコルモジュール修正
  上記モジュールを指定できるように修正

9. l7directord カスタム監視設定追加
  checktype=custom
  customcheck=実行コマンド
  
  上記を指定することで、実行コマンドで監視を行い、
  0 が戻れば UP、それ以外は DOWN と判定する。
  マクロとして _IP_, _PORT_ が使えて、それぞれ
  リアルサーバの IP アドレスとポートに変換される。
  あわせてマニュアルも修正し、man ファイルも更新。
  
  (例) 自前で Ping 監視
  checktype   = custom
  customcheck = ping -c1 -w1 _IP_
  
  (例) 自前のアプリケーション監視
  checktype   = custom
  customcheck = /usr/local/bin/check_app.sh _IP_:_PORT_


以上、宜しくお願い致します。


On Tue, 10 Feb 2009 14:02:09 +0900
Shinya TAKEBAYASHI <takeb****@oss*****> wrote:

> 田沼 さん
> 各位
> 
> 
>   竹林です.
>   
>   2.1.2-0(仮称)のリリース用にブランチを作成しました.
>   
>     svn://svn.sourceforge.jp/svnroot/ultramonkey-l7/stable/ultramonkey-l7/
> branches/2.1.2-0
>     
> です.
> 
>   対応して頂いた下記の分について,できあがってからで結構ですので
> 上記ブランチにマージして頂けますか.
> 
> > ・crewrite モジュール
> > ・cpassive モジュール
> > ・pfilter モジュール
> > ・cinsert のテンポラリ cookie 対応
> > ・l7directord の初期ログ出力の問題対応
> 
> 
>   よろしくお願い致します.




Ultramonkey-l7-develop メーリングリストの案内
Back to archive index