« コンテンツ追加 | メイン | ApacheのLDAP認証 追加 »

2006年08月12日

DNSラウンドロビンとWebブラウザの動作 追加

DNSラウンドロビンが設定されている時に、Webブラウザ(およびProxy)がどのように動作するか調べてみた。

DNSラウンドロビンとWebブラウザの動作

投稿者 SY : 2006年08月12日 06:44

コメント

ProxyをDNSラウンドロビンした時の動作

はじめまして。NWエンジニアのtomo55です。
参考情報をご提示しますので、質問させて下さい。

企業内からProxy経由でインターネットを閲覧する時、
ブラウザに指定するProxyをDNSラウンドロビンで
負荷分散してます。
DNSサーバでは対象Proxyサーバのホスト名の
TTLキャッシュ値を1時間としてますので
最大1時間以内に、Webサイト参照中でもProxyサーバが
切替わる事があります。

よく聞くDNSラウンドロビンの課題として、継続性が
必要な通信はアクセス先サーバが切替わる事で通信が
切れるという話があります。

ところが、当方の確認する限り、https通信の
認証サイトやWebメール、ショッピングサイト、
ネットバンク等の通信継続が必要なサイトに
アクセス中に、クライアントPC上のDNSキャッシュが
タイムアウトとなり、再度DNS参照をした際に
ブラウザが利用するProxyサーバが別のProxyサーバに
切替わっても通信が切れることはありません。
(クライアントPC上のEtherialログでも確認)

当方の知識不足なのですが、なぜ通信が切れない
のかの仕組みがよく分かりません。
(予想する範囲では、ブラウザとWebサイト間で
セッションIDを持っているから、途中経路が
変わっても影響しないのでしょうか?)

一番知りたいのは、通信の切れるケースの有無です。

説明不足もあると思いますが、何らかのお知恵を
拝借できれば幸いでございます。
(相談しているベンダーがノウハウ無しでして・・)

以下、構成概要です。

ClientPC--+---proxy1-----上位proxy---webサイト | |
+---proxy2-------+

ClientPC:Windows XP Professional SP1
ブラウザ:IE6 SP1

ここでこのような質問が不適切な場合、
ごめんなさい。

よろしくお願いします。

投稿者 tomo55 : 2006年10月18日 21:23

まずは、前提知識として。
proxyサーバは、基本的には通信を中継しているだけです(設定すれば書き換えも可能ですが・・・)。
多段proxyを構成しているような場合、Webサーバと通信しているのは最上位のproxyサーバですので、下段にproxyが何段あり、どのproxyを通ろうが関係ないです(途中で通信内容の書き換え等を行っていないのが前提)。
また、最上位のproxyを複数台で構成するような場合もありますが、その場合は、アクセスするタイミングによって通るproxyが変わります(Webサーバにアクセスするproxyサーバが変わる)。

で、ご質問の回答ですが。
Webサーバがセッションの維持をどのように行っているかと言う事になると思います。
Webサーバは、セッションを維持するために、ブラウザからセッションを識別する為の情報を受け取る必要があります。
識別情報をどのようにして受け取るかは、そのサイトの作りによって変わりますが、一般的にはクッキー,Basic/Digest認証の情報,識別情報を埋め込んだURL,formのhiddenなどの1つまたは複数の組み合わせで行います。
よって、これらの情報を書き換えられないかぎり、どのproxyを通ろうが関係ないのです。

つまり、通信が切れる(セッションが維持されない)としたら、通過するproxyサーバがセッションの維持に使用している情報を書き換えた(または削除した)ような場合となります。

以上ですが、こんな説明でよろしいでしょうか。

投稿者 SY : 2006年10月18日 22:54

お忙しい中、ありがとうございました!

通過するproxyサーバの構築ベンダに、
「Proxyサーバが、セッションの維持に
使用している情報を書き換えた(または削除した)
ことがあるか、またそのような動作を意図的に
させたことが事例としてあるか」を確認したいと
思います。

投稿者 tomo55 : 2006年10月19日 11:10