[Ultramonkey-l7-users 138] Re: cinsertモジュールの--forwarded-forオプション

Back to archive index

Shinya TAKEBAYASHI takeb****@oss*****
2008年 9月 24日 (水) 10:19:19 JST


秋山 様


  竹林です.
  情報頂きまして,ありがとうございます.
  
  頂いた情報をみると,UltraMonkey-L7(以下,UM-L7)の内部処理による
現象と考えられます.
  
> ■原因と思われるもの
> apacheが受け取るパケットをキャプチャーとaccess_logを見ていて
> 判ったのが、keep-alive の指定があると最初のリクエストについては
> X-Forwarded-For が設定されてるが、2件目以降のリクエストには
> X-Forwarded-For が設定されていませんでした。TCP/IPの
> コネクションが切れてから、再度のリクエストでは
> X-Forwarded-For が設定されていました。
> 
> このことから、最初のリクエストついては、Ultramonkey の 
> cinsertモジュールが X-Forwarded-For を設定しているが、
> 2件目以降のリクエストは keep-alive の効果で
> 最初のリクエストが利用したTCP/IPのコネクションを
> 継続して利用しているので、 Ultramonkey を経由していない。
> そのために、X-Forwarded-For を設定できない。

  秋山様の解析と推測のとおりで,keepalive が有効になっている場合,
上段での解説のとおり 2 つめ以降のリクエストについては
X-Forwarded-For は付与されません.

  UM-L7 では,TCP/IP のコネクションをひとつの単位として
接続先を決定する処理を行います.
  もし接続先リアルサーバを示す cookie が存在すればそのサーバを,
cookie が無ければ新規に接続先リアルサーバを割り当てます.
# X-Forwarded-For を付与するのが,この段階です

  一度接続先が決定したコネクション上の通信については,
コネクションが切断されるまで接続先リアルサーバを判定する(X-Forwarded-For を
付与する)ルートを通らずに転送を行っています.

  このため,keepalive が有効になっている場合の 2 つめ以降の
リクエストについては,X-Forwarded-For が付与されない事象が発生します.

  スループットを優先する実装としたため,現状は上記の実装となっています.


> ■今後の展望
> 今回は、access_logへクライアントのIPアドレスを記録して欲しいので
> mod_rpaf (http://stderr.net/apache/rpaf/) を導入しようと考えています。

  ご期待に添えず,すみません.
  改善の余地がある機能と考えますので,改善するよう検討します.
  
-----------------------------------------------------------
Shinya TAKEBAYASHI

E-mail: takeb****@oss*****
GPG ID: 395EFCE8
GPG FP: 58B2 B5D0 A692 1BD8 328B  E31E E027 AC35 395E FCE8
-----------------------------------------------------------


masahiro akiyama <akiya****@techb*****> wrote in message <48D98****@techb*****
>
*** Subject: Re: [Ultramonkey-l7-users 135] cinsertモジュールの--forwarded-forオ
プション
***    Date: 2008/09/24 9:23:33
> 竹林様
> 
> 秋山です。
> 
> 投稿させていただいてから、こちらでも原因の究明を行っていたので
> 分かった範囲で報告させていただきます。
> 
> ■X-Forwarded-For が設定されている場合とされない場合の傾向
> access_logを見ていて気になったのが、連続したアクセスの場合に
> 最初のアクセスにはX-Forwarded-Forが設定されているが、
> 2件目以降はX-Forwarded-Forが設定されていない場合が多い。
> 1,2秒程度の間隔があるとX-Forwarded-Forが設定されている。
> 
> ■原因と思われるもの
> apacheが受け取るパケットをキャプチャーとaccess_logを見ていて
> 判ったのが、keep-alive の指定があると最初のリクエストについては
> X-Forwarded-For が設定されてるが、2件目以降のリクエストには
> X-Forwarded-For が設定されていませんでした。TCP/IPの
> コネクションが切れてから、再度のリクエストでは
> X-Forwarded-For が設定されていました。
> 
> このことから、最初のリクエストついては、Ultramonkey の 
> cinsertモジュールが X-Forwarded-For を設定しているが、
> 2件目以降のリクエストは keep-alive の効果で
> 最初のリクエストが利用したTCP/IPのコネクションを
> 継続して利用しているので、 Ultramonkey を経由していない。
> そのために、X-Forwarded-For を設定できない。
> 
> この判断は妥当なものでしょうか?
> 
> 
> ■今後の展望
> 今回は、access_logへクライアントのIPアドレスを記録して欲しいので
> mod_rpaf (http://stderr.net/apache/rpaf/) を導入しようと考えています。
> 
> 
> 以上
> 
> Shinya TAKEBAYASHI さんは書きました:
> > 秋山 さま
> > 
> > 
> >   竹林です.
> >   初めまして.
> >   
> >   実家に帰省していたため返信が遅れました.
> >   ご質問の件について,こちらでも挙動を確認してみます.
> >   
> >   確認の結果と本来の挙動についてまとめたものを,後ほどお送り致しますので
> > 少し時間を頂けますか.
> > 
> >   よろしくお願い致します.
> > 
> > -----------------------------------------------------------
> > Shinya TAKEBAYASHI
> > 
> > E-mail: takeb****@oss*****
> > GPG ID: 395EFCE8
> > GPG FP: 58B2 B5D0 A692 1BD8 328B  E31E E027 AC35 395E FCE8
> > -----------------------------------------------------------
> > 
> > masahiro akiyama <akiya****@techb*****> wrote in message <48D34****@techb*****
> > *** Subject: [Ultramonkey-l7-users 135] cinsertモジュールの--forwarded-forオ
プシ
> > ョン
> > ***    Date: 2008/09/19 15:56:40
> >> はじめまして。秋山と申します。
> >>
> >> さっそくですが、cinsertモジュールの--forwarded-forオプションの
> >> 挙動について教えてください。
> >>
> >> リアルサーバにapacheを用いていて、apacheのaccess_logにクライアントの
> >> IPアドレスを記録させたいと思っています。
> >>
> >>
> >> l7directord.cf には
> >>  module=cinsert --cookie-name 'moneky' --reschedule --forwarded-for
> >>
> >> リアルサーバのapacheのログフォーマットの指定を
> >>  LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\"
> >> \"%{User-Agent}i\"" combined
> >>
> >> としています。
> >>
> >> クライアントからアクセスしてみると、クライアントのIPアドレスが
> >> apacheのaccess_logに出る場合と"-"の場合があります。PHPのページに
> >> アクセスした場合にはIPアドレスが出ることが多いのですが、
> >> 出ないこともあります。PHPの中でx-forwarded-forの値をダンプしてみると
> >> アクセスログの出方と一致していました。
> >> 一方、cssや画像ファイルなどの静的ファイルへのアクセスでは
> >> "-"の場合が多く、稀にIPアドレスが出ています。
> >>
> >> クライアントからのアクセスについては、PHPページと静的ファイル共に
> >> アクセスログにはIPアドレスを記録することはできませんでしょうか。
> >>
> >> インストールには ultramonkey-l7-2.0.0-0-rpm.tar.gz を用いました。
> >>
> >> よろしくお願いします。
> >>
> >> -- 
> >>
> >> ---------+---------+---------+---------+---------+---------+---------+-----
---
> > -+
> >> 株式会社 テックビート
> >>     秋山 昌宏
> >>  akiyama masahiro
> >>
> >> mailto:akiya****@techb*****
> >>
> >> _______________________________________________
> >> Ultramonkey-l7-users mailing list
> >> Ultra****@lists*****
> >> http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users
> > 
> > 
> > 
> 
> 
> -- 
> 
> ---------+---------+---------+---------+---------+---------+---------+--------
-+
> 株式会社 テックビート
>     秋山 昌宏
>  akiyama masahiro
> 
> mailto:akiya****@techb*****
> PHS:070-6653-9769
> 
> 〒113-0034
> 東京都文京区湯島3-2-14-222
> TEL:03-5817-0366
> FAX:03-5817-0367





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