ぢろーらものおもちゃ箱:引っ越し後

写真付きで日記や趣味を書くならgooブログ

セッションのタイムアウト

2010-07-02 19:39:17 | IT(Web)

よくWebサイトを見ていると、「セッションがタイムアウトしました」というようなメッセージが表示され、ページの再読み込みが必要になる場合があります。たとえばこちらは、同じページを長時間見ていて、次のページに移ろうとしたときなどに表示される場合が多いです。

Webサーバは通常、クライアントからの操作が一定時間ない場合にはそのセッションを切断します。Webサーバにとってもセッションを多く維持しなくてはいけないというのは負荷の増大につながりますし、セキュリティ上も長期間の放置は望ましくありません。なので、こういう動きをします。まあ、Webサーバを構築したことがある人にとっては割と当たり前のことかもしれませんが。

Webのセッションタイムアウトについてはhttp://www.ipa.go.jp/security/awareness/vendor/programmingv1/pdf/a05_03.pdf が参考になります。
 
たしかMicrosoftのIISであればタイムアウトのデフォルトは20分かと思います。もちろん、最適値というのはそのシステムによってかわります。単に情報を提供するだけの公開サーバであればhttp://ash.jp/java/webapp_session.htm にもあるように5分などの短めの時間が望ましいですが、社内システムでログインして使うものの場合、長くする必要があります。

もっとも、社内システムだと「一日つなぎっぱなしで使っていてもセッション切断されないようにしたい」というのもあると思います。いずれにせよ、状況によってけっこうチューニングの必要はあるはずです。

同様に、ネットワーク機器でも同じような考え方でセッションタイムアウトがあります。たとえば、セッション情報をもとに処理を行うステートフルインスペクション対応のファイアウォールであれば、その通信がどの状態(TCP通信(3Wayハンドシェーク)が確立前かそのあとか、SMTPでどの段階まで処理したか、など)かを覚えておく必要がありますし、ファイアウォールのほかルータ等NAT処理を行うものであれば変換前後の情報を覚えておく必要があります。このセッションも、無通信の状態なのにそのまま残しておいては、機器のメモリを消費してしまうのである一定時間セッションが無通信の場合にはそのセッション情報(エントリ情報)を削除します。

たとえばYAMAHAルータの場合、http://www.rtpro.yamaha.co.jp/RT/docs/firewall/index.html
の「4.4. 動的フィルタのタイムアウトの設定」のとおりパラメータを設定可能です。

ただ、ネットワーク機器の場合、このあたりはあまり調整されないことが多いでしょう。だいたいの場合、デフォルトの値の設定であれば問題は少ないと思います。たとえば、tcp-syn-timeoutであれば3ウェイハンドシェークが確立する前なので、通常1分もこの状態であることはないはずです。たとえばTCPSynを受けてTCPAck返してるのにそのあとの通信を続けてくれない、というケースだとSynフラッディング攻撃かもしれません。その場合にはこの値を短くすればルータの負担は軽減できますが、短くしすぎると正常なセッションに問題を起こしてしまうこともあるでしょう。また、tcp-idle-timeのように3ウェイハンドシェークが完了して一旦セッションが確立してしまえばその状態はある程度長く続きますが、まったく無通信の時間が60分を超えるというのもケースとしてはなくはないですがあまり多くはないでしょう。

セッションタイムアウトがらみでぢろーらもが一度経験したトラブルとしては、お客さんのところで導入していた機器(YAMAHAではありません)が、UDPセッションがタイムアウトを起こして通信が正常にできなかった、ということがありました。そのときにももちろん、UDPのセッションタイムアウト時間を長くすることにより対応できました。
 
実はそのお客さんところではUDPセッションを使う独自のアプリケーションを導入していたのですが、確かクライアントがUDP投げてから、応答が来るまで30秒~40秒、場合によってもっとかかるようなシステムでした。UDP自体、リアルタイム処理を目的とするものなので、応答にそんなに時間がかかることは通常想定していないはずです。なので、通常どのネットワーク機器もUDPのタイムアウトについてはけっこう短めに設定されています。

そのときも確か、パケットとか見て、「この機器でセッションが切れている」ということで気がついたように記憶しています。前回の話にもつながりますが、こういう局面だとやはりパケットキャプチャも重要になりますね。

P.S 「今週の検索ワード:業務系(ITなど):2010年8月15日~8月21日」のほうで、メール(SMTP)のセッションタイムアウトについても少し触れています。


この記事が気に入りましたら、また、お役に立ちましたら、以下のアイコンをクリックしていただけると嬉しいです(^^)

ブログランキング・にほんブログ村へ

最新の画像もっと見る

コメントを投稿