(57)【特許請求の範囲】
【請求項１】
複数の代理装置の間でキャッシュ情報を交換するキャッシュ情報交換方法であって、
前記複数の代理装置の何れかの代理装置が該代理装置配下の何れかのクライアントからの依頼を受け付け、該クライアントに代理してＤＮＳ（Domain Name System）サーバに問い合わせを行い、該ＤＮＳサーバから該問い合せに対する返信情報を前記クライアントに代理して得る代理ステップと、
前記複数の代理装置間で前記返信情報を同期させる同期ステップと、
前記複数の代理装置の各々が、同期した前記返信情報をキャッシュ情報として保持する保持ステップと、
を有することを特徴とするキャッシュ情報交換方法。
【請求項２】
請求項１に記載のキャッシュ情報交換方法であって、
前記複数の代理装置の各々は、自装置が保持する前記キャッシュ情報に、問い合せの依頼を出したクライアントの問い合せに対する返信情報が含まれていない場合には、前記ＤＮＳサーバへ問い合わせを行い、該問い合せにより得た返信情報を前記クライアントに返し、前記キャッシュ情報に、前記問い合せの依頼を出したクライアントの問い合せに対する返信情報が含まれている場合には、前記ＤＮＳサーバへ問い合わせを行わずに、前記キャッシュ情報に含まれている返信情報を前記クライアントに返すことを特徴とするキャッシュ情報交換方法。
【請求項３】
請求項１又は２に記載のキャッシュ情報交換方法であって、
前記複数の代理装置間で代表となる代理装置を選出する選出ステップを更に含み、
前記同期ステップでは、前記代表となった代表代理装置が、該代表代理装置がキャッシュ情報として保持している前記返信情報を該代表代理装置以外の代理装置に対して通知することにより、前記複数の代理装置間で前記返信情報を同期させることを特徴とするキャッシュ情報交換方法。
【請求項４】
請求項３に記載のキャッシュ情報交換方法であって、
前記代表代理装置以外の代理装置は、前記ＤＮＳサーバに問い合わせを行った場合は、該ＤＮＳサーバから応答された返信情報を前記代表代理装置に送信し、
前記代表代理装置は、前記送信されてきた前記返信情報をキャッシュ情報として保持すると共に、前記送信されてきた前記返信情報を当該代表代理装置以外の代理装置に対して送信し、
前記代表代理装置から前記返信情報が送信されてきた、前記代表代理装置以外の代理装置は、その返信情報を前記キャッシュ情報として保持することを特徴とするキャッシュ情報交換方法。
【請求項５】
請求項２乃至４の何れか１項に記載のキャッシュ情報交換方法であって、
前記選出ステップでは、前記代表となる代表代理装置に加え、更に予備代表代理装置を選出し、
前記代理装置の内前記予備代表代理装置のみが、前記代表代理装置が正常に動作しているか否かを確認する為のデータを送出することによる前記代表伝送装置の監視をし、該監視の結果前記代表代理装置が正常に動作していないと判断できた場合は当該予備代表代理装置が新たな代表代理装置として動作することを特徴とするキャッシュ情報交換方法。
【請求項６】
請求項５に記載のキャッシュ情報交換方法であって、
前記代表代理装置からの応答が無く、且つ、前記予備代表代理装置からの、該予備代表代理装置が新たな代表代理装置として動作する旨の通知も無い場合に、前記選出ステップを実施することを特徴とするキャッシュ情報交換方法。
【請求項７】
請求項１乃至６の何れか１項に記載のキャッシュ情報交換方法であって、
前記キャッシュ情報の有効期限が近づいた際に、前記代理装置の内の１台が前記ＤＮＳサーバに問い合わせを行うことにより前記有効期限が近づいている前記キャッシュ情報を更新し、該更新後の情報を前記１台以外の代理装置に送信する更新ステップを更に含むことを特徴とするキャッシュ情報交換方法。
【請求項８】
請求項７に記載のキャッシュ情報交換方法であって、
前記有効期限が近づいている前記キャッシュ情報を、前回の有効期限が過ぎた後に前記代理装置の全てが利用していない場合には、前記有効期限が近づいていても前記更新ステップを行わないことを特徴とするキャッシュ情報交換方法。
【請求項９】
複数の代理装置の間でキャッシュ情報を交換するキャッシュ情報交換システムであって、
前記複数の代理装置の何れかの代理装置が該代理装置配下の何れかのクライアントからの依頼を受け付け、該クライアントに代理してＤＮＳ（Domain Name System）サーバに問い合わせを行い、該ＤＮＳサーバから該問い合せに対する返信情報を前記クライアントに代理して得る代理手段と、
前記複数の代理装置間で前記返信情報を同期させる同期手段と、
前記複数の代理装置の各々が、同期した前記返信情報をキャッシュ情報として保持する保持手段と、
を備えることを特徴とするキャッシュ情報交換システム。
【請求項１０】
代理装置であって、
当該代理装置配下の何れかのクライアントからの依頼を受け付け、該クライアントに代理してＤＮＳサーバに問い合わせを行い、該ＤＮＳ（Domain Name System）サーバから該問い合せに対する返信情報を前記クライアントに代理して得る代理手段と、
当該代理装置以外の他の代理装置との間でキャッシュ情報を同期させる同期手段と、
前記複数の代理装置の各々が、同期した前記返信情報をキャッシュ情報として保持する保持手段と、
を備えることを特徴とする代理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークにおける、キャッシュ情報交換方法、キャッシュ情報交換システム及び代理装置に関する。
【背景技術】
【０００２】
企業や家庭に構築されたＬＡＮ（Local Area Network）において、Ｐｒｏｘｙ  ＤＮＳ（Domain Name System）機能と呼ばれる機能が実装されたパケット伝送装置が広く普及している。この伝送装置は例えばＴＣＰ／ＩＰネットワークであればルータにより実現される。
【０００３】
ここで、Ｐｒｏｘｙ  ＤＮＳ機能とは、ＬＡＮ側に含まれるクライアントＰＣ等からＤＮＳサーバへ送信されるＤＮＳ問い合わせ（名前解決要求）を、ルータが中継しつつ代理応答するというものである。
【０００４】
Ｐｒｏｘｙ  ＤＮＳ機能を利用する場合、クライアントＰＣにはルータをＤＮＳサーバとして設定しておく。そして、ルータはクライアントＰＣからの要求を実在のＤＮＳサーバへ中継し、ＤＮＳサーバからの応答をクライアントＰＣに戻す。このような動作によりクライアントＰＣは名前解決を実現できる。すなわち、クライアントＰＣは接続を所望するホストのドメイン名に基づいて、そのホストのＩＰ（Internet Protocol）アドレスを取得することが可能となる。
【０００５】
また、ルータにはＤＮＳに関する情報をキャッシュする機能が含まれている。よって、或るクライアントＰＣから或るホストに関して名前解決がされた後に、この或るクライアントＰＣ以外の他のクライアントＰＣから、この或るホストに関しての名前解決要求が再度なされた場合に、キャッシュした情報を返答することができる。そして、このように返答した際にはＤＮＳサーバへ対する再度の問い合わせが不要となり、外部ネットワークに流すトラフィックを減少させることができる。このような、Ｐｒｏｘｙ  ＤＮＳ機能が実装されたルータについては、例えば特許文献１に記載が有る。
【０００６】
なお、Ｐｒｏｘｙ  ＤＮＳ機能は、他にも、ＤＮＳ代理機能や、ＤＮＳリレー機能といった名称で呼ばれることもある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−０３０３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、一般的なＰｒｏｘｙ  ＤＮＳ機能では、ルータがクライアントからのＤＮＳ問い合わせを受けると、このルータがクライアントの替わりに代理でＤＮＳサーバに問い合わせる。
【０００９】
そして、ＤＮＳサーバからの返答を受けたルータが、ＤＮＳサーバからの返答を問い合わせ元のクライアントに応答するとともにルータ内の主記憶装置に用意した記憶エリアにその結果をキャッシュデータとして保持する。その後、ルータは、同じドメイン名への問い合わせが他のクライアント等からあった場合はＤＮＳサーバには問い合わせずに、ルータのキャッシュに保持されている情報を用いて応答することで応答時間の短縮とＤＮＳサーバへの問い合わせによるサーバとネットワークへの負荷を低減するといった機能が実装されている。
【００１０】
もっとも、一般的なＰｒｏｘｙ  ＤＮＳ機能を有するルータでは、複数台のルータ間で情報を共有する機構が無い。よって、同じドメイン名に関しての問い合わせでもクライアント群を管理しているルータが異なれば各ルータが個別に契約回線を通してＤＮＳサーバに問い合わせするトラフィックが発生してしまうという問題が有る。更に、各々のルータが、個々で管理しているキャッシュの範囲でしか即時応答性及び負荷低減を実現することはできないといった問題が有る。
【００１１】
例えば企業ビル内ネットワーク等のように、各階毎にセグメント分けを行い、セグメント毎にキャッシュを集約するルータが設置されているような構成の場合、各々のルータが独自にキャッシュを持つことでルータ単位での収束効果しか得られない。
【００１２】
また、通常であればキャッシュの有効時間であるＴＴＬ（time to live）は１日から数日といった単位で設定される。しかし、ＴＴＬを意図的に数分程度といった極端に短い時間に設定されることがある。この場合、ルータが分散されている環境ではＴＴＬが有効期限切れになる数分毎に複数台のルータから問い合わせ負荷が大量に発生するといった問題も有る。ここで、ＴＴＬを意図的に短い時間に設定する場合の例を挙げる。例えば、複数台のサーバを同一ドメイン名称とし、ＤＮＳサーバへの問い合わせ毎に応答するアドレスを変えることで実際にアクセスを受けるサーバを変え、負荷を分散するＤＮＳロードバランシング機構を実装する際にＴＴＬを意図的に短い時間に設定することが考えられる。更に、アドレスがプロバイダから払い出される度に異なる可能性があることに対応したダイナミックＤＮＳ機構を実装する際にＴＴＬを意図的に短い時間に設定することが考えられる。
【００１３】
そこで、本発明は、Ｐｒｏｘｙ  ＤＮＳ機能を有する複数台のルータ間で、キャッシュ情報を共有することが可能な、キャッシュ情報交換方法、キャッシュ情報交換システム及び代理装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の第１の観点によれば、複数の代理装置の間でキャッシュ情報を交換するキャッシュ情報交換方法であって、前記複数の代理装置の何れかの代理装置が該代理装置配下の何れかのクライアントからの依頼を受け付け、該クライアントに代理してＤＮＳ（Domain Name System）サーバに問い合わせを行い、該ＤＮＳサーバから該問い合せに対する返信情報を前記クライアントに代理して得る代理ステップと、前記複数の代理装置間で前記返信情報を同期させる同期ステップと、前記複数の代理装置の各々が、同期した前記返信情報をキャッシュ情報として保持する保持ステップと、を有することを特徴とするキャッシュ情報交換方法が提供される。
【００１５】
本発明の第２の観点によれば、複数の代理装置の間でキャッシュ情報を交換するキャッシュ情報交換システムであって、前記複数の代理装置の何れかの代理装置が該代理装置配下の何れかのクライアントからの依頼を受け付け、該クライアントに代理してＤＮＳ（Domain Name System）サーバに問い合わせを行い、該ＤＮＳサーバから該問い合せに対する返信情報を前記クライアントに代理して得る代理手段と、前記複数の代理装置間で前記返信情報を同期させる同期手段と、前記複数の代理装置の各々が、同期した前記返信情報をキャッシュ情報として保持する保持手段と、を備えることを特徴とするキャッシュ情報交換システムが提供される。
【００１６】
本発明の第３の観点によれば、代理装置であって、当該代理装置配下の何れかのクライアントからの依頼を受け付け、該クライアントに代理してＤＮＳ（Domain Name System）サーバに問い合わせを行い、該ＤＮＳサーバから該問い合せに対する返信情報を前記クライアントに代理して得る代理手段と、当該代理装置以外の他の代理装置との間でキャッシュ情報を同期させる同期手段と、前記複数の代理装置の各々が、同期した前記返信情報をキャッシュ情報として保持する保持手段と、を備えることを特徴とする代理装置が提供される。
【発明の効果】
【００１７】
本発明によれば、Ｐｒｏｘｙ  ＤＮＳ機能を有する複数台のルータ間で、キャッシュ情報を共有することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態によるＬＡＮシステム全体とそれに接続された外部ネットワークの基本的構成を表す図である。
【図２−１】本発明の実施形態によるルータの構成を示すブロック図である。
【図２−２】図２−１に示すＤＮＳキャッシュ情報交換状態記憶部に記憶されるデータの構成を示す図である。
【図２−３】図２−１に示すＤＮＳキャッシュ情報記憶部に記憶されるデータの構成を示す図である。
【図３−１】本発明の実施形態全体の基本的動作を表すフローチャート（１／４）である。
【図３−２】本発明の実施形態全体の基本的動作を表すフローチャート（２／４）である。
【図３−３】本発明の実施形態全体の基本的動作を表すフローチャート（３／４）である。
【図３−４】本発明の実施形態全体の基本的動作を表すフローチャート（４／４）である。
【図４】本発明の実施形態で用いられるパケットの構成を表す図である。
【図５】本発明の実施形態全体におけるデータのやり取りを表す図である。
【図６】本発明の実施形態の変形例を表す図である。
【発明を実施するための形態】
【００１９】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００２０】
図１を参照すると本実施形態は、複数のルータ１００、複数のクライアント２００、契約回線ルータ３００、プロバイダルータ４００及びＤＮＳサーバ５００を含んでいる。
【００２１】
そして、複数のルータ１００、複数のクライアント２００及び契約回線ルータ３００を含むようにＬＡＮシステム１０００が実現される。また、外部ネットワーク２０００にはプロバイダルータ４００及びＤＮＳサーバ５００が含まれる。
【００２２】
また、複数のルータ１００としてはルータ１００−１、ルータ１００−１及びルータ１００−ｎを含んでいる。
【００２３】
更に、複数のクライアント２００としては、２００−１−１、２００−１−２、２００−１−ｍ１、２００−２−１、２００−２−２、２００−２−ｍ２、２００−ｎ−１、２００−ｎ−２及び２００−ｎ−ｍｎを含んでいる。
【００２４】
なお、本実施形態で使用する符号に含まれているｎは２以上の自然数である。また、ｍ１、ｍ２及びｍｎｍは１以上の任意の自然数である。つまり、ルータ１００及びクライアント２００は、図１に図示される台数が必ずしも必要となるわけでは無い。
【００２５】
クライアント２００−ｉ−ｊは、ｉ番目のルータ２００−ｉに接続される。例えばクライアント２００−１−２を例にとると、ｉの値は１である。また、ルータ１００−１を例にとると、これもｉの値は１である。よって、クライアント２００−１−２はルータ１００−１と接続される。
そして、各クライアント２００−ｉ−ｊは自身が接続されているルータ１００−ｉを介して通信を行う。また、各クライアント２００−ｉ−ｊが名前解決を要求した場合には、各ルータ１００−ｉがＤＮＳサーバ５００へ代理問い合わせを行う。
【００２６】
ここで、各クライアント２００は任意の機器であってよい。任意の機器としては例えばユーザが利用するパーソナルコンピュータが挙げられる。また、各クライアント２００はルータ１００と有線接続されていても良いが、一部又は全部のクライアント２００がルータ１００と無線又は無線及び有線で接続されていても良い。この場合、ルータ１００とクライアント２００間には図示をしていない無線アクセスポイントが含まれていても良く、ルータ１００が無線アクセスポイントとしての機能を有していても良い。
【００２７】
契約回線ルータ３００は、ＬＡＮ外部のネットワークと接続するためのルータであり、各ルータ１００と光ファイバ等を利用した外部ネットワーク２０００との通信を仲介するものである。
【００２８】
プロバイダルータ４００は、契約しているプロバイダが提供するルータであり、契約回線ルータ３００と接続されている。
【００２９】
ＤＮＳサーバ５００は、ホストのアルファベットで表記される識別子としてのドメイン名と数字で標記される識別子としてのＩＰアドレスとを対応付けるサーバである。ＤＮＳサーバ５００は外部からドメイン名をキーとした検索を受け付けると、このドメイン名に対応したＩＰアドレスを返答する。
【００３０】
本実施形態は、ＤＮＳサーバ５００に対しての増大し続けるＤＮＳ問い合わせのトラフィックによる契約回線の帯域圧迫を極力低減することを目的とする。
【００３１】
通常、ＬＡＮシステム１０００のような構内のネットワーク機器はＧｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）等で比較的安価に高速化が図れる。しかし、ＤＮＳサーバ５００と構内を結ぶための契約回線は、導入費用やランニングコストの観点から見れば構内ネットワーク機器にかかる費用にくらべ遙かに高価となる。また、高速化すればするほど費用も増える傾向にある。そのため、本実施形態では高速化できる構内ネットワーク内に情報共有のためのトラフィックを閉じこめ、極力契約回線にトラフィックを流さずに帯域を空ける。これにより、契約回線を利用した本来のユーザが使う情報を伝送するための帯域を確保することができる。
【００３２】
そのために、本実施形態では、多数のクライアント２００からのＤＮＳ問い合わせ負荷を複数のルータ１００で各々が収容するネットワークセグメントに属するクライアント単位に分けることで問い合わせを受けるルータ１００の負荷分散を図る。また、ＤＮＳ問い合わせにキャッシュから即時応答するという機能はそのままに維持しつつも、キャッシュデータベースの管理を一元化しデータベースの共有を図る。これにより重複したドメイン名に関するＤＮＳサーバ５００への問い合わせを個別に行うことなく１台のルータ１００−ｉの問い合わせ結果で全ルータ１００−１〜１００−ｎがキャッシュから短時間で応答することを可能とする。また、なおかつＴＴＬが短時間に設定されたデータベースの有効期限切れの際の問い合わせを代表ルータのみが行う。これにより複数台のルータが同じデータベースの問い合わせを短時間に大量に行う必要もなく全ルータ−１〜１００−ｎで同じキャッシュデータベースの更新を行うことを可能とする。
【００３３】
続いて、本実施形態におけるルータ１００の内部構成を表す図である図２−１を参照して、ルータ１００の内部構成について説明する。
【００３４】
図２−１を参照すると、ルータ１００は、Ｐｒｏｘｙ  ＤＮＳ機能部１１０、ＤＮＳキャッシュ情報関連制御部１２０、パケット送受信部１３０、ＤＮＳキャッシュ情報記憶部１４０及びＤＮＳキャッシュ情報交換状態記憶部１５０を含む。
【００３５】
ルータ１００は、本実施形態特有のＰｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構を実装している。そして、このＰｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構は、主として、ＤＮＳキャッシュ情報関連制御部１２０及びＤＮＳキャッシュ情報交換状態記憶部１５０により実現される。すなわち、ＤＮＳキャッシュ情報関連制御部１２０及びＤＮＳキャッシュ情報交換状態記憶部１５０が本実施形態におけるサーバ１００の主要部となる。
【００３６】
一方、Ｐｒｏｘｙ  ＤＮＳ機能部１１０やパケット送受信部１３０、ＤＮＳキャッシュ情報記憶部１４０は一般的なルータにも具備されているものである。これら一般的な各部を利用して、ＤＮＳキャッシュ情報関連制御部１２０及びＤＮＳキャッシュ情報交換状態記憶部１５０は本実施形態特有のＰｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構として動作する。
【００３７】
ＤＮＳキャッシュ情報関連制御部１２０は、代表ルータ（Designated router：以降「ＤＲ」と略す）やバックアップ代表ルータ（Backup designated router：以降「ＢＤＲ」と略す）を選出する機能を含む。
【００３８】
更に、ＤＮＳキャッシュ情報関連制御部１２０は、他のサーバ１００と協働し、各サーバ１００間でのＤＮＳデータベースキャッシュの交換を制御する。
【００３９】
ＤＮＳキャッシュ情報交換状態記憶部１５０は、ＤＮＳキャッシュ情報関連制御部１２０により利用されるデータベースである。図２−２に表されるように、ＤＮＳキャッシュ情報交換状態記憶部１５０は、ＤＲ／ＢＤＲとなったルータのアドレスを保存する。更に、ＤＮＳキャッシュ情報交換状態記憶部１５０は、ＤＲ／ＢＤＲ優先度を保存する。ここで、ＤＲ／ＢＤＲ優先度はＤＲ及びＢＤＲの選出の際に利用される優先度であり、ネットワーク設計者によって適切に設定される。更に、ＤＮＳキャッシュ情報交換状態記憶部１５０は、Ｐｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構を動作させる対象である対象ネットワークの情報を保存する。例えば、本実施形態であればルータ１００−１が管理するサブネットワーク１０５−１、ルータ１００−２が管理するサブネットワーク１０５−２乃至ルータ１００−ｎが管理するサブネットワーク１０５−ｎ、の全てが対象ネットワークである。そして、ＤＮＳキャッシュ情報交換状態記憶部１５０には例えば各ネットワーク１０５−ｉを管理するルータ１００−ｉのアドレスが保存される。
【００４０】
Ｐｒｏｘｙ  ＤＮＳ機能部１１０は、ルータ１００にＰｒｏｘｙ  ＤＮＳ機能を実現させる為の部分である。Ｐｒｏｘｙ  ＤＮＳ機能部１１０は、ルータ１００−ｉ配下のクライアント２００―ｉ−ｊよりＤＮＳサーバへ送信される名前解決要求をルータとして中継すると共に代理応答をする。また、Ｐｒｏｘｙ  ＤＮＳ機能部１１０は、代理応答の際にＤＮＳサーバより取得した情報をＤＮＳキャッシュ情報記憶部１４０に格納する。
【００４１】
ＤＮＳキャッシュ情報記憶部１４０は、図２−３に表されるように、各ホストに割り当てられているドメイン名や、その長さ及び種別といった情報に加え、ホストのＩＰアドレスや、キャッシュの生存時間を表すＴＴＬ等を格納する。また、ルータ１００−ｉは、配下のクライアント２００−ｉ−ｊが各ドメイン名を参照するたびに、参照した回数をカウントする。このカウント値もＤＮＳキャッシュ情報記憶部１４０に格納される。
【００４２】
パケット送受信部１３０はＰｒｏｘｙ  ＤＮＳ機能部１１０及びＤＮＳキャッシュ情報交換状態記憶部１５０が送受信するデータを、ルータ１００が接続されているネットワークの準拠する規格に応じてパケット化又はパケット解除し、ルータ１００外部と送受信する。
【００４３】
続いて、ＤＮＳキャッシュ情報関連制御部１２０及びＤＮＳキャッシュ情報交換状態記憶部１５０（以下、適宜「Ｐｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構」と呼ぶ、）が主として行う動作について図３−１乃至図３−４のフローチャートを参照して説明する。
【００４４】
Ｐｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構は、まずＤＲ／ＢＤＲ選出を行なう。なお、ＤＲ及びＢＤＲの何れにも選出されなかったルータ１００を、以下、適宜「ＯＴＨＥＲ」と呼ぶ。これにより、ネットワーク内の複数のルータ１００のそれぞれは、ＤＲ、ＢＤＲ及びＯＴＨＥＲの何れかに自身の役割を決定する。
【００４５】
ＤＲ／ＢＤＲの選出はルータ１００の起動時等の初期状態時に、図４に表されるＤＲ／ＢＤＲ探索パケット６０１を用いて行われる。
【００４６】
具体的には、まずＤＮＳキャッシュ情報関連制御部１２０がＤＲ／ＢＤＲ探索パケット６０１を生成する。その際ＤＲ／ＢＤＲ探索パケット６０１のＦ（動作フラグ）フィールドに「ＤＲ探索」を設定する。また、Ｃ（制御情報）にはＤＮＳキャッシュ情報交換状態記憶部１５０に設定されているルータ１００自身のＤＲ／ＢＤＲ優先度を載せる。
【００４７】
更に、ＤＮＳキャッシュ情報関連制御部１２０はパケット送受信部１３０を介して、生成したＤＲ／ＢＤＲ探索パケット６０１を送信する（ステップＳ１１）。送信先はＤＮＳキャッシュ情報交換状態記憶部１５０に設定された対象ネットワークに含まれる各ルータ１００である。
【００４８】
対象ネットワークに既にＤＲが存在する場合は（ステップＳ１２においてＹｅｓ）、このＤＲがＤＲ／ＢＤＲ制御パケット６０２を生成する。この際、ＤＲ／ＢＤＲ制御パケット６０２にはＦ（動作フラグ）フィールドに「ＤＲ通知」が設定される。また、Ｃ（制御情報）にはＤＲのアドレスが指定される。生成されたＤＲ／ＢＤＲ制御パケット６０２は、ステップＳ１１におけるＤＲ／ＢＤＲ探索パケット６０１の送信元のルータ１００に対して通知される（ステップＳ１３）。
【００４９】
ＤＲ／ＢＤＲ制御パケット６０２を受け取ったルータ１００は、自身をＯＴＨＥＲ状態へと遷移させる。更にＤＲ／ＢＤＲ制御パケット６０２を受け取ったルータ１００は、ＤＲ／ＢＤＲ制御パケット６０２を新たに生成して、生成したＤＲ／ＢＤＲ制御パケット６０２をＤＲに対して送信する（ステップＳ１４）。この際、送信するＤＲ／ＢＤＲ制御パケット６０２のＦ（動作フラグ）フィールドに「同期要求」を設定する。また、Ｃ（制御情報）は空とする。
【００５０】
ＤＲ／ＢＤＲ制御パケット６０２を受け取ったＤＲは、自身のＤＮＳキャッシュ情報記憶部１４０に記憶しているＤＮＳキャッシュ情報を読み込む。そして、読み込んだ情報をＩ（ＤＮＳデータベース）に記載したＤＮＳ差分情報パケット６０３を生成する。生成したＤＮＳ差分情報パケット６０３は、ステップＳ１４におけるＤＲ／ＢＤＲ制御パケット６０２の送信元のルータ１００に対して通知される（ステップＳ１５）。
【００５１】
ＤＲからのＤＮＳ差分情報パケット６０３を受信したサーバ１００は、ＤＮＳ差分情報パケット６０３内のＩ（ＤＮＳデータベース）からＤＮＳキャッシュ情報を読み取り、読み取ったＤＮＳキャッシュ情報を用いて自身のＤＮＳキャッシュ情報記憶部１４０を更新する。そしてルータ１００はＤＲ／ＢＤＲ選出処理と同期処理の２つの処理を終了し、以後、ＤＮＳキャッシュ情報の差分が発生するまで待機状態に移行する（ステップＳ１６）。
【００５２】
一方、ＤＲ／ＢＤＲ探索パケット６０１を送信したが、ＤＲが未だ決定していない場合も考えられる（ステップＳ１２においてＮｏ）。この場合には、ＤＲ／ＢＤＲ探索パケット６０１を送信後一定時間待ち、その間に互いに送信しあったＤＲ／ＢＤＲ制御パケット６０２を比較する（ステップＳ１７）。
【００５３】
そして、比較の結果、自身が一番優先度の高いルータであった場合には（ステップＳ１８においてＹｅｓ）、新たにＤＲ／ＢＤＲ制御パケット６０２を生成する。このＤＲ／ＢＤＲ制御パケット６０２のＦ（動作フラグ）フィールドに「ＤＲ通知」を設定し、Ｃ（制御情報）に自身のアドレスを設定する。そして、このＤＲ／ＢＤＲ制御パケット６０２を他のルータ１００に対して送信することにより、自身がＤＲになることを他のルータに通知する（ステップＳ１９）。その後、ステップＳ１４以降の動作を行う。
【００５４】
一方、自身より高い優先度のルータ１００からＤＲ／ＢＤＲ制御パケット６０２を受け取った他のルータ１００は（ステップＳ１８においてＮｏ）、この優先度の高いルータ１００からのＤＲ通知が設定されたＤＲ／ＢＤＲ制御パケット６０２を待つ。そして、ＤＲ通知が設定されたＤＲ／ＢＤＲ制御パケット６０２が通知されたならば（ステップＳ２０においてＹｅｓ）、自身のＤＮＳキャッシュ情報交換状態記憶部１５０のＤＲアドレス管理情報に、通知されたアドレスを設定する。その後、ステップＳ１４以降の動作を行う。
【００５５】
この点、自身より優先度の高いルータ１００からＤＲ／ＢＤＲ探索パケット６０１によるＤＲ探索を受けているにも関わらず、障害等の理由により、ＤＲ通知が設定されたＤＲ／ＢＤＲ制御パケット６０２が一定時間送られてこないことも考えられる（ステップＳ２０においてＮｏ）。この場合Ｆ（動作フラグ）を「ＤＲ探索」に設定したＤＲ／ＢＤＲ探索パケット６０１を再度ネットワークに送信する。つまり、再度ステップＳ１１以降の操作を行う。
【００５６】
ルータ１００は、最終的にＤＲが決定するまでこれを繰り返す。
【００５７】
なお、上述の説明ではＤＲを選出した。一方、ＢＤＲの選出もＤＲの選出と同様に行われる。ＢＤＲの選出であるが、優先度が上位から２番目のルータが、Ｆ（動作フラグ）フィールドに「ＢＤＲ通知」を設定し、Ｃ（制御情報）に自身のアドレスを設定したＤＲ／ＢＤＲ制御パケット６０２を送信するという点以外はＤＲの選出と動作は同じである。
【００５８】
続いてルータ１００がＤＲとなった場合の動作、ＢＤＲとなった場合の動作、ＯＴＨＥＲとなった場合の動作、の３つの場合についてそれぞれ説明する。
【００５９】
まず、ルータ１００がＤＲとなった場合の動作について説明する。
【００６０】
ＤＲとなったルータ１００は、Ｐｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構を持った対象ルータ１００間のＤＮＳキャッシュ情報記憶部１４０の内容を、ＤＲ、ＢＤＲ及びＯＴＨＥＲの何れかとなった全てのルータ１００間で同期させることを目的として動作する。そのために、ＤＲとなったルータ１００は、ＤＲになった直後に初めて送信するＤＮＳ差分情報パケット６０３のＩ（ＤＮＳデータベース）には自身で保持しているＤＮＳキャッシュ情報記憶部１４０の全情報を載せる。そして、ＤＲは、全情報を載せたＤＮＳ差分情報パケット６０３を送信対象の全ルータ１００に対してマルチキャストで配信する（ステップＳ３０）。ここで送信対象となるルータ１００とは、ＢＤＲとなったルータ１００及びＯＴＨＥＲとなったルータ１００である。
【００６１】
初回のＤＮＳ差分情報パケット６０３の配信が終了したＤＲは、以後自身が収容しているクライアントからのＤＮＳ問い合わせで新規に追加したＤＮＳキャッシュ情報が発生した場合や、ＢＤＲ／ＯＴＨＥＲで同様に発生した新規に追加したＤＮＳキャッシュ情報の通知をＤＮＳ差分情報パケット６０３で受けた場合に（ステップＳ３１においてＹｅｓ）自身のＤＮＳキャッシュ情報記憶部１４０を更新する。そして更新した情報をＤＮＳ差分情報パケット６０３のＩ（ＤＮＳデータベース）に載せ、全対象ルータ１００にマルチキャストで差分情報として配信する（ステップＳ３２）。その後再度ステップＳ３１以降の動作を行う。
【００６２】
また、新規にネットワークに参加した対象ルータ１００がＤＲに対して、Ｆ（動作フラグ）フィールドに「同期要求」を設定したＤＲ／ＢＤＲ制御パケット６０２を送信してくる場合が考えられる（ステップＳ３１においてＮｏ、ステップＳ３３においてＹｅｓ）。この場合にＤＲは、自身のＤＮＳキャッシュ情報記憶部１４０で保持しているその時点での全ＤＮＳキャッシュ情報を、新規にネットワークに参加した対象ルータ１００に対してユニキャストで通知する（ステップＳ３４）。その後再度ステップＳ３１以降の動作を行う。
【００６３】
更に、ＤＲは、自身のＤＮＳキャッシュ情報記憶部１４０にキャッシュしているＤＮＳキャッシュ情報のＴＴＬが経過する一定時間前（ステップＳ３３においてＮｏ、ステップＳ３５においてＹｅｓ）に、該当キャッシュの使用状況を確認する為のＤＲ／ＢＤＲ制御パケット６０２を生成する。具体的には、ＤＲ／ＢＤＲ制御パケット６０２のＦ（動作フラグ）を「時間経過確認」に設定し、Ｃ（制御情報）に該当キャッシュを特定する情報を載せる。生成したＤＲ／ＢＤＲ制御パケット６０２は、全対象ルータ１００にマルチキャストで送信される（ステップＳ３６）。
【００６４】
ＤＲ／ＢＤＲ制御パケット６０２を受信したＢＤＲやＯＴＨＥＲのルータ１００は、自身のＤＮＳキャッシュ情報記憶部１４０を参照し、ＤＲ／ＢＤＲ制御パケット６０２に含まれる情報により特定されるドメイン名についての参照カウントを読み出す。読み出した結果、カウントが０で無ければ（ステップＳ３７においてＹｅｓ）ＤＲ／ＢＤＲ制御パケット６０２を生成する。具体的には、Ｆ（動作フラグ）を「更新要求」に設定し、Ｃ（制御情報）に該当キャッシュを特定する情報を載せたＤＲ／ＢＤＲ制御パケット６０２を生成する。生成したＤＲ／ＢＤＲ制御パケット６０２は、ＤＲに送信される。ＤＲは、ＤＲ／ＢＤＲ制御パケット６０２を受け取る（ステップＳ３８）。
【００６５】
ＤＲでは、ＤＲ／ＢＤＲ制御パケット６０２を受け取った後に、該当ＤＮＳキャッシュ情報に関してＤＮＳサーバに問い合わせ、ＴＴＬを初期化する（ステップＳ３９）。そして、ＤＲは更新後の該当ＤＮＳキャッシュ情報のＴＴＬ初期化後の情報を差分情報として、ＤＮＳ差分情報パケット６０３でＢＤＲやＯＴＨＥＲのルータ１００に通知する（ステップＳ４０）。その後再度ステップＳ３１以降の動作を行う。これにより、ＤＲのみがＤＮＳサーバ５００に問い合わせを行い、ＢＤＲやＯＴＨＥＲのルータ１００はＤＮＳサーバに問い合わせを行うことなくキャッシュ情報を更新することができる。一方、全てのＢＤＲやＯＴＨＥＲのルータ１００の参照カウントが０で有れば、このドメインに関しては参照されていないこととなる。よって、ＤＮＳサーバ５００に問い合わせを行わず、このドメインに関してのＤＮＳキャッシュ情報はＴＴＬの経過に伴い削除される。
【００６６】
次に、ルータ１００がＢＤＲとなった場合の動作について説明する。
【００６７】
ＢＤＲとなった場合、ルータ１００はＤＲの生死状態を監視する。具体的には、ＩＣＭＰ（Internet Control Message Protocol）  ＥＣＨＯ等のネットワーク設計者が指定した方法によりＤＲの生死状態を監視する（ステップＳ４０）。
【００６８】
そして、ＢＤＲは、ＤＲがダウンしたことを検出した場合には（ステップＳ４１においてＹｅｓ）、即座に自身がＤＲに状態遷移を行う。また、自身がＢＤＲからＤＲに昇格したことを通知する（ステップＳ４２）。そのためにＢＤＲは、Ｆ（動作フラグ）を「ＤＲ更新」に設定し、Ｃ（制御情報）に自身のアドレスを新ＤＲのアドレスとし、変更前の旧ＤＲのアドレスを旧ＤＲのアドレスとして載せたＤＲ／ＢＤＲ制御パケット６０２を生成する。生成したＤＲ／ＢＤＲ制御パケット６０２は、ＯＴＨＥＲとなっている他のルータ１００に対し送信される。
【００６９】
ＤＲ／ＢＤＲ制御パケット６０２を受信したＯＴＨＥＲ状態のルータ１００は新ＤＲのアドレスを自身のＤＮＳキャッシュ情報記憶部１４０のＤＲアドレス管理情報に反映させる（ステップＳ４３）。
【００７０】
その後、ＯＴＨＥＲ状態のルータ１００は、Ｆ（動作フラグ）を「ＢＤＲ検索」に設定しＣ（制御情報）を空にしたＤＲ／ＢＤＲ制御パケット６０２を、他のＯＴＨＥＲ状態のルータ１００に対して送信する。これによりＢＤＲの再選出を行うように他のＯＴＨＥＲ状態のルータ１００に対して促す（ステップＳ４４）。
【００７１】
また、ＢＤＲの動作はＤＲの生死監視以外についてはＯＴＨＥＲと同じとなる。
【００７２】
なお、ＢＤＲの生死状態の監視についてはＤＲで行う。例えば、ＩＣＭＰ  ＥＣＨＯなどの監視要求がＢＤＲから定期的に届いているか否かに基づいて受動的に監視する。そして、ＢＤＲからの監視要求がこなくなった時点でＢＤＲがダウンしたと判定する。この場合ＤＲは、Ｆ（動作フラグ）を「ＢＤＲ検索」に設定しＣ（制御情報）を空にしたＤＲ／ＢＤＲ制御パケット６０２を、ＯＴＨＥＲ状態のルータ１００に対して送信する。これによりＢＤＲの再選出を行うように他のＯＴＨＥＲ状態のルータ１００に対して促す。
【００７３】
次に、ルータ１００がＯＴＨＥＲとなった場合の動作について説明する。
【００７４】
ＯＴＨＥＲとなった場合、ＤＲから通知されるＤＮＳ差分情報パケット６０３で通知されるＤＮＳキャッシュの差分情報を自身のＤＮＳキャッシュ情報記憶部１４０に反映することが第１の主な役割となる。
【００７５】
自身が収容しているクライアントからのＤＮＳ問い合わせでＤＮＳキャッシュ情報には無い新規のＤＮＳ情報が発生した場合にその差分情報をＩ（ＤＮＳデータベース）に載せたＤＮＳ差分情報パケット６０３でＤＲへ報告し、他のルータ１００への配信を依頼することが第２の主な役割となる。ＯＴＨＥＲとなった場合は、この主な２つの役割を果たすことが基本となる。
【００７６】
但し、ＯＴＨＥＲとなった場合にはＤＲ／ＢＤＲの同時ダウンに備える為の動作も行う。具体的には、ＤＲに対してＤＮＳキャッシュ差分情報パケット６０３を送付した場合はＤＲからの配信がくるはずなので配信状況を監視する（ステップＳ５０）。そして、一定時間配信がこなかった場合に（ステップＳ５１においてＹｅｓ）、ＢＤＲからのＦ（動作フラグ）をＤＲ更新に設定し、Ｃ（制御情報）を空にしたＤＲ／ＢＤＲ制御パケット６０２によるＤＲ昇格通知を待つタイマを一定時間設定する（ステップＳ５２）。この一定時間が経過したにも関わらず、それでもＤＲ昇格通知がこなかった場合（ステップＳ５３においてＹｅｓ）にのみＤＲ／ＢＤＲの両者がダウンしたと判断し、ＤＲ／ＢＤＲ選出処理を再度実行する（ステップＳ５４）。
【００７７】
ＯＴＨＥＲではＤＮＳキャッシュ差分情報パケット６０３を送信したルータ１００だけがこの監視処理を行う。これにより監視のためだけのトラフィックの発生や処理負荷の発生を極力抑えることができる。
【００７８】
本実施形態では、このようにしてＤＲ／ＢＤＲ／ＯＴＨＥＲといった体制により、ＤＲによるＤＮＳ情報の集中管理・配信を行う。これにより本実施形態は以下に示すような多くの効果を奏する。
【００７９】
まず、本実施形態ではＤＲによるＤＮＳ情報の集中管理・配信を行うことにより各ルータ１００に最大限のＤＮＳキャッシュ情報を共有できるという効果を奏する。
【００８０】
また、本実施形態ではこのように最大限のＤＮＳキャッシュ情報を共有していることから、クライアントからのＤＮＳ問い合わせに対してＤＮＳサーバに問い合わせることなくＤＮＳキャッシュ情報から速やかに応答することを可能とするという効果を奏する。
【００８１】
更に、本実施形態ではこのように最大限のＤＮＳキャッシュ情報を共有していることからＤＮＳサーバへの代理問い合わせが発生する機会も削減することを可能する。特にＤＮＳロードバランシングの目的で短時間に設定されたＴＴＬを持つＤＮＳ情報に関し複数台のルータ１００から短時間でのＤＮＳサーバへの問い合わせ繰り返しを行うことを防止することが可能となる。
【００８２】
続いて、本実施形態におけるＰｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構で、どのようにデータがやり取りされてＤＮＳデータベースの共有が行われるかについて、図５を参照して説明する。
【００８３】
図５に表される例では、予めネットワーク管理者によるコンフィグレーションによって各ルータ１００のＤＲ／ＢＤＲ優先度が設定されているものとする。具体的には、ルータ１００−１がＤＲ／ＢＤＲ優先度を高、ルータ１００−２が中、ルータ１００−ｎが低という設定になっているものとする。なお、今回の説明においては、高、中及び低の三段階に優先度を設定しているが、更に多段階に優先度を設定するようにしても良い。
【００８４】
各ルータ１００は、この優先度設定に従いＤＲ／ＢＤＲ選出を行う。この場合、ルータ１００−１では自身より高い優先度のルータが他にいないことからＤＲに遷移する。
【００８５】
また、ルータ１００−２はルータ１００−１よりは優先度が低いがその他のルータよりは優先度が高いためＢＤＲに遷移する。更に、ルータ１００−ｎは自身よりも優先度が高いルータが２台いるのでＯＴＨＥＲへと遷移する。
【００８６】
次に、実際のＤＮＳキャッシュデータベース共有の流れについて説明する。
【００８７】
図５の構成において、各ルータはＤＲ／ＢＤＲ／ＯＴＨＥＲの別に関係無く、それぞれが集約しているクライアント２００（以下、「クライアント群」と呼ぶ。）からのＤＮＳ問い合わせを終端する。
【００８８】
そして、クライアント群からのＤＮＳ問い合わせ（ａ）が発生すると、その問い合わせを受けたルータ１００は、自身のＤＮＳキャッシュ情報記憶部１４０に該当するキャッシュが有るか否かを確認する。ここで、該当するキャッシュがあれば、そこから応答を返し、キャッシュが無ければ（ｂ）の経路で直接ＤＮＳサーバ５００へ問い合わせを行う。
【００８９】
この問い合わせに対しＤＮＳサーバ５００から返ってきた応答は、問い合わせ元であるクライアント２００にルータ１００から返送する。併せてルータ１００は、自身のＤＮＳキャッシュ情報記憶部１４０にＤＮＳサーバ５００から返ってきた応答の内容を登録する。
【００９０】
本実施形態では、この時点から共有動作を開始する。具体的には、ＤＮＳキャッシュ情報記憶部１４０に追加した情報のコピーを自身がＢＤＲやＯＴＨＥＲであれば（ｃ）のフローでＤＲへ通知する。そして、通知を受けたＤＲはそのキャッシュ情報を他のルータ１００にマルチキャストで配信する。
【００９１】
これにより問い合わせの発生したクライアントを収容するルータでなくとも該当のデータベースをＤＮＳキャッシュ情報記憶部１４０に登録することができる。これにより、以後同じドメイン名に関しての問い合わせが発生した場合に、ＤＮＳサーバ５００へ問い合わせをすることなく即時応答することができるようになる。
【００９２】
もしＤＮＳ問い合わせ（ａ）が発生したクライアント群を管理するルータ１００がＤＲであった場合は（ｃ）での通知が省略される。もっとも、他のルータ１００へマルチキャストで配信しキャッシュ情報を共有する動作自体は同じとなる。
【００９３】
このように、ネットワーク内のいずれかのルータ１００が管理しているクライアント群からのＤＮＳ問い合わせを契機として、キャッシュ情報が全ルータ１００に共有される。また、それ以降はどのクライアント群でＤＮＳ問い合わせが発生しても既に各ルータ１００にはキャッシュが存在しているため、（ｂ）の経路での問い合わせトラフィックを発生させることなく即時応答することが可能となる。
【００９４】
本実施形態のもう１つの機能である、キャッシュしているＤＮＳキャッシュ情報のＴＴＬ有効期限切れに対応した更新について説明する。
【００９５】
或るＤＮＳキャッシュ情報が有効期限切れに近づくと、ＤＲとなったルータ１００は有効期限切れの一定時間前に（ｃ）の経路を使用して該当のＤＮＳキャッシュ情報の使用状況を各ルータ１００にマルチキャストで問い合わせる。
【００９６】
各ルータ１００では常にＤＮＳキャッシュ情報の使用状況を監視しており、ＤＮＳキャッシュ情報記憶部１４０から応答をクライアントに返送した場合、該当のＤＮＳキャッシュ情報を参照した回数を参照カウントとして計測している。そして、ＤＲからＤＮＳキャッシュ情報の使用状況を問い合わせられた場合にこの参照カウントを読み出し０では無い場合にだけ、ＤＲに対してキャッシュ更新依頼を（ｃ）の経路を使用して通知する。
【００９７】
ＤＲでは、何れかのルータ１００からこのキャッシュ更新依頼を受信した場合に限り、（ｄ）の経路を使用して該当ＤＮＳキャッシュ情報のＤＮＳ問い合わせを行う。これによりＴＴＬが初期化された応答を得られるので、この結果を（ｃ）の経路を使用して各ルータ１００に配信する。
【００９８】
この配信を受けたルータ１００はＤＮＳキャッシュ情報記憶部１４０上にある該当ＤＮＳキャッシュ情報を更新し、結果としてＴＴＬの時間延長がＤＲ１台分の問い合わせだけで可能となる。そのため、ＴＴＬ有効期限切れ間近に、外部ネットワークへトラフィックが集中することを防止できる。
【００９９】
一方、ＤＲからの該当ＤＮＳキャッシュ情報の使用状況問い合わせに対し、どのルータ１００も応答を返さない、つまり該当のＤＮＳキャッシュ情報が使われていない場合も有る。この場合は、ＤＲからのＤＮＳキャッシュ情報更新のためのＤＮＳ問い合わせを行わない。結果としてＴＴＬに指定された期限通りに全ルータ１００で期限切れとなる。そのため、全ルータ１００が同期して使用頻度の低いＤＮＳキャッシュ情報が消去されることとなり、ルータ１００のメモリ等のリソースを空けて有効活用することが可能になる。
【０１００】
続いて、図５を参照して上述したデータのやり取りを実現するための具体的な動作について説明する。
【０１０１】
Ｐｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構を実装した本実施形態のルータ１００は、装置起動時にまずＤＲが既にいるかどうかを検索するため（ｃ）の経路を使用してＤＲ探索を行う。
【０１０２】
ネットワークの初回運用開始などでまだＤＲ／ＢＤＲが決定していない状態の場合、ルータ１００−１、ルータ１００−２及びルータ１００−ｎがそれぞれＤＲ探索を（ｃ）の経路を使用して送信する。
【０１０３】
現状、ＤＲはまだ決定していないため、ＤＲが存在する旨の通知はどのルータ１００からも送出されない。そのため、各ルータ１００はＤＲ／ＢＤＲの選出動作を行うことになる。もっとも、装置起動時に送信したＤＲ探索のパケットには送出したルータ１００自身のＤＲ／ＢＤＲ優先度を情報として載せている。よって、ＤＲ／ＢＤＲの選出の為に新たにパケットを出す必要は無い。
【０１０４】
各ルータ１００は他のルータ１００からのＤＲ探索パケットを監視し、自己の優先度とも比較して優先度の高さが１番目と２番目となるルータ１００をテンポラリな記憶領域に保存しておく。そして、ＤＲからの通知が無く自身が優先度順で１番目であればＤＲに状態遷移を行い、２番目であればＢＤＲに状態遷移をした後、ＤＲ／ＢＤＲになったことを他のルータ１００へ通知する。
【０１０５】
既にＤＲ／ＢＤＲが決定済みの状態で、後からネットワークに参加したルータ１００の場合は最初のＤＲ探索パケットに対してＤＲ／ＢＤＲがそれぞれ通知をするので知ることができる。そのため、後からネットワークに参加したルータ１００は自身をそのままＯＴＨＥＲへと遷移させる。このとき、この後から参加したルータ１００のほうが既にＤＲ／ＢＤＲとして動作しているルータ１００よりも優先度が高かったとしてもＤＲ／ＢＤＲ権限の譲渡は行わない。
【０１０６】
これは新たにルータ１００が参加する度にＤＲが変わることにより生じる不具合を防止する為である。その不具合とは、現在ＤＲとして動作しているルータ１００にそれまで蓄積されたキャッシュデータベース情報の引き継ぎ処理が発生してしまうことや、ＯＴＨＥＲルータ１００のＤＲアドレス管理／ＢＤＲアドレス管理の変更が頻発してしまうと効率が悪化することである。従って、後から参加した優先度の高いルータ１００がＤＲ／ＢＤＲに昇格するのはあくまで現存のＤＲ／ＢＤＲが障害等で機能を果たさなくなった場合のＤＲ／ＢＤＲ再選出の際のみである。
【０１０７】
ＤＲ／ＢＤＲの再選出については、まずＤＲが障害になった場合はＢＤＲとして待機していたルータ１００が即時ＤＲに状態遷移を行う。そして、ＤＲに状態遷移したルータ１００が、速やかにＤＲの役割を復旧した上で空席となったＢＤＲの再選出を行うためにＤＲ／ＢＤＲ選出機構を起動する。
【０１０８】
このとき後から参加した優先度の高いルータ１００がＢＤＲとなる可能性が発生する。ここで、「可能性」と表現したのは、更に優先度の高いルータ１００がその際に参加する場合があり得るからである。
【０１０９】
次にＤＲは生存した状態でＢＤＲが障害になった場合、ＤＲの再選出は行わずＢＤＲの再選出だけを行うので、この場面でも優先度の高いルータ１００がＢＤＲになる可能性がある。
【０１１０】
更にＤＲ／ＤＢＲが同時に障害になった場合は、ネットワークの初回運用開始同様その時点で稼働しているルータ１００でＤＲ／ＢＤＲともに再選出することとなるため、優先度の高いルータ１００はこのときにＤＲになる可能性もＢＤＲになる可能性も発生することになる。
【０１１１】
何れにせよ、上述した動作によりＤＲ／ＢＤＲ選出が完了すると、ＤＲを中心としたＤＮＳキャッシュデータベースの同期動作に入る。
【０１１２】
ＤＲが決定した時点ではまず共有の基礎となるＤＮＳキャッシュ情報として、ＤＲがその時点で自身のＤＮＳキャッシュ情報記憶部１４０にキャッシュしているＤＮＳキャッシュ情報を、ＢＤＲ／ＯＴＨＥＲのルータ１００全てに（ｃ）の経路を使用してマルチキャストで配信する。
【０１１３】
これを受け取ったＢＤＲ／ＯＴＨＥＲのルータ１００は、自身のＤＮＳキャッシュ情報記憶部１４０にキャッシュしているＤＮＳキャッシュ情報と比較し、自身が持っていない情報は自身のキャッシュＤＮＳキャッシュ情報に適用する。また、逆に通知されたＤＮＳキャッシュ情報には無い情報を自身のキャッシュＤＮＳキャッシュ情報に持っていた場合、差分情報としてＤＲへ（ｃ）の経路を使用しユニキャストで通知する。
【０１１４】
この差分情報を受け取ったＤＲは、他のルータ１００からも同様に差分情報がくる度に個別にマルチキャスト配信を行っても良い。しかしながら。差分情報がくる度にマルチキャスト配信をしていたのでは、配信が頻発する結果となってしまう。そのため、差分情報がくる度にマルチキャスト配信をするのではなく、一定時間待った上で複数台分の情報を集約してから全ルータ１００に（ｃ）の経路でマルチキャスト配信する。
【０１１５】
これにより一旦全ルータ１００のキャッシュＤＮＳキャッシュ情報は同期する。
【０１１６】
以後同期した状態を維持するため、クライアントからのＤＮＳ問い合わせ（ａ）でキャッシュＤＮＳキャッシュ情報に無い新規の情報が発生した場合、そのＤＮＳキャッシュ情報が発生したルータ１００から都度ＤＲへ差分情報を（ｃ）の経路でユニキャストにより報告する。ＤＲはその差分情報を全参加ルータ１００に（ｃ）の経路でマルチキャスト配信する。これにより、ＢＤＲ／ＯＴＨＥＲのルータ１００全てに同期状態を維持する。
【０１１７】
つまり新規のＤＮＳキャッシュ情報の生成は、最初にクライアントからキャッシュＤＮＳキャッシュ情報に無いドメイン名のＤＮＳ問い合わせを受けたルータ１００−１台だけがＤＮＳサーバに問い合わせ、その結果をＤＲに報告することで以後はＤＲにより全ルータ１００と同期が取られる。そのため、他のルータ１００配下のクライアントで同じドメイン名に関するＤＮＳ問い合わせが発生しても各ルータ１００には既にＤＮＳキャッシュ情報記憶部１４０にＤＮＳキャッシュ情報が存在する状態となり、改めてＤＮＳサーバに問い合わせずに即時応答が可能となる。
【０１１８】
なお、クライアントからのＤＮＳ問い合わせ（ａ）に応じて、ＤＮＳキャッシュ情報記憶部１４０にキャッシュされていない新規の情報を取得したルータ１００がＤＲであった場合も考えられる。この場合は、他のルータ１００が（ｃ）の経路で差分情報を通知するといった部分の動作が省かれるだけで、その差分をＤＲから他のルータ１００に配信し同期状態を維持するといった動作は変わりなく行われる。
【０１１９】
次に、既にキャッシュＤＮＳキャッシュ情報に適用されている情報がＴＴＬにより有効期限切れの時間に近づいた場合の動作について説明する。
【０１２０】
ＴＴＬにより有効期限切れの時間に近づくと、ＤＲは該当するＤＮＳキャッシュ情報の使用状況を確認し更新の必要があるか否かを判定する。そのために、まずは自身のデータベースの参照カウントを読み出す。そして、参照カウンタの値が０でなければ他のルータ１００へ使用状況の確認を行うことなく（ｄ）の経路でＤＮＳサーバ５００に問い合わせを行う。その後、ＤＮＳサーバ５００からの応答を受け取ると、ＤＲは自身のＤＮＳキャッシュ情報記憶部１４０の更新をする。また、他のルータ１００へ（ｃ）の経路を使用して該当ＤＮＳキャッシュ情報の更新通知を送信する。
【０１２１】
一方、自身の参照カウントが０であった場合は（ｃ）の経路で各ルータ１００に参照カウントの確認を促す。そして、一定時間応答を待って何れか１台でも更新要求があれば（ｄ）の経路を使って更新処理を行う。また、一定時間各ルータ１００から応答が無ければ該当のデータベースは使用頻度が低いと判断し、更新処理を行わずにＴＴＬに指定された時間分保持した後削除を行う。
【０１２２】
ＤＲ以外の各ルータ１００もＤＲからの更新通知が無ければＴＴＬに指定された時間通りに保持後、各々削除を行う。
【０１２３】
このようにデータベースの更新が必要な場合の更新をＤＲが代表で行うことで各ルータ１００が各々個別にＤＮＳサーバへ確認せずに済む。そのためＤＮＳサーバの負荷低減や契約回線を通るトラフィックを削減し、契約回線の帯域を圧迫することなく効率的に運用することが可能となる。
【０１２４】
以上説明したように、本実施形態においては、以下に記載するような効果を奏する。
【０１２５】
第１の効果は、契約回線にかかるトラフィックを低減し、契約回線の帯域をより効率的に活用できることである。
【０１２６】
その理由について説明する。一般的なＰｒｏｘｙ  ＤＮＳ機能では同じデータベースへの問い合わせでもクライアント群を管理しているルータが異なれば各ルータが個別に契約回線を通してＤＮＳサーバに問い合わせするトラフィックが発生していた。しかし、本実施形態では、ルータ間のＤＮＳデータベースの共有を行う。これにより、何れか１台のルータが外部ネットワークにあるＤＮＳサーバに問い合わせを行なった後、その問い合せにより得られたドメインとＩＰアドレスとの対応関係を全ルータが、各自が保有するデータベースに格納することができ、また情報共有のためのトラフィックは契約回線を通さずに企業ビル単位等でのネットワーク内に閉じて行うことができる。これが第１の効果を奏する理由である。
【０１２７】
第２の効果は、ＤＲ１台だけの更新処理だけで済むようになるため、第１の効果である契約回線にかかるトラフィックを低減する効果をより高められることである。
【０１２８】
その理由について説明する。データベースの有効時間であるＴＴＬがＤＮＳロードバランシング機構やダイナミックＤＮＳ機構などのために意図的に極端に短い時間に設定された場合、一般的な技術であれば各ルータで有効時間が切れる度にＤＮＳサーバへ頻繁にＤＮＳ問い合わせを行わなければならなかった。そのため契約回線の帯域を消費してしまっていた。しかし本実施形態では、このＤＮＳ問い合わせをＤＲが期限切れの一定時間前に使用頻度によって自動的に行い、データベースの更新を行いその更新結果を各ルータに配信して共有する。そのため上述した第２の効果を奏する。
【０１２９】
続いて図６を参照して、本実施形態の変形例を説明する。
【０１３０】
図６を参照すると、本変形例では第１のエリア１０００−Ａ、第２のエリア１０００−Ｂ及び第３のエリア１０００−Ｃを含む。これら各エリアは、一定の管理単位におけるルータの集団をエリア分けしたものであり、それぞれが本実施形態のＬＡＮシステム１０００に相当する。よって、これら各エリアには複数のルータ１００及びクライアント２００が含まれている。また、これら各エリアでは上述したＰｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構が動作している。
【０１３１】
ここで本変形例では、各エリアのルータを１台ずつあるいは複数台ずつ選定して結合エリア３０００を構築する。今回の説明においてはルータ１００−Ａ、ルータ１００−Ｂ及びルータ１００−Ｃが選定されたとする。そして、結合エリア３０００に属するルータ間でＰｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構を動作させる。これにより、各エリア間のＤＮＳキャッシュデータベースを共有する構成を構築する。
【０１３２】
この場合、結合エリア３０００に属するルータ１００は、各々が属するエリア用のＰｒｏｘｙ  ＤＮＳキャッシュ情報交換プロトコル機構プロセスとは別個に、結合エリア３０００用のプロセスを起動することとなる。
【０１３３】
また、結合エリア３０００に属するルータ１００は各エリア内で同期の取れているルータであればＤＲ／ＢＤＲ／ＯＴＨＥＲのいずれであっても良い。各エリアのＤＲが結合エリア３０００でもＤＲを兼ねると該当のルータの処理負荷が高くなる恐れもある。そのため、ネットワーク設計者の設定するＤＲ／ＢＤＲ優先度を適切に調整し、各個別エリア内では低優先度のものが結合エリア３０００に属するよう設計しても良い。
【０１３４】
これにより、複数エリアに跨るルータ間でＤＮＳキャッシュ情報を同期して共有することが可能となり、外部ネットワーク２０００に在るＤＮＳサーバ５００への通信を更に削減することが可能となる。
【０１３５】
上記の説明では、Ｐｒｏｘｙ  ＤＮＳ機能がルータ１００に含まれていることを想定した。もっとも、Ｐｒｏｘｙ  ＤＮＳ機能を、それ専用の代理装置に備えさせるようにしても良い。その場合にはクライアント２００は代理装置に、ドメイン名に対応したＩＰアドレスを問い合わせる。また、代理装置間のＤＮＳキャッシュ情報の同期は、サブネットワーク１０５、ルータ１００及びルータ１００間のネットワーク１０７を介して行われる。また、代理装置からＤＮＳサーバ５００への問い合わせは、サブネットワーク１０５、ルータ１００、ルータ１００間のネットワーク１０７、契約回線ルータ３００及びプロバイダルータ４００を介して行われる。
【０１３６】
なお、上記のルータ１００は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のルータ１００により行なわれるキャッシュ情報交換方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【０１３７】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory)）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１３８】
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０１３９】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１４０】
（付記１）  複数の代理装置の間でキャッシュ情報を交換するキャッシュ情報交換方法であって、
前記複数の代理装置の何れかの代理装置が該代理装置配下の何れかのクライアントからの依頼を受け付け、該クライアントに代理してサーバに問い合わせを行い、該サーバから該問い合せに対する返答情報を前記クライアントに代理して得る代理ステップと、
前記複数の代理装置間で前記返答情報を同期させる同期ステップと、
前記複数の代理装置の各々が、同期した前記返信情報をキャッシュ情報として保持する保持ステップと、
を有することを特徴とするキャッシュ情報交換方法。
【０１４１】
（付記２）  付記１に記載のキャッシュ情報交換方法であって、
前記複数の代理装置の各々は、自装置が保持する前記キャッシュ情報に、問い合せの依頼を出したクライアントの問い合せに対する返信情報が含まれていない場合には、前記サーバへ問い合わせを行い、該問い合せにより得た返信情報を前記クライアントに返し、前記キャッシュ情報に、前記問い合せの依頼を出したクライアントの問い合せに対する返信情報が含まれている場合には、前記サーバへ問い合わせを行わずに、前記キャッシュ情報に含まれている返信情報を前記クライアントに返すことを特徴とするキャッシュ情報交換方法。
【０１４２】
（付記３）  付記１又は２に記載のキャッシュ情報交換方法であって、
前記複数の代理装置間で代表となる代理装置を選出する選出ステップを更に含み、
前記同期ステップでは、前記代表となった代表代理装置が、該代表代理装置がキャッシュ情報として保持している前記返信情報を該代表代理装置以外の代理装置に対して通知することにより、前記複数の代理装置間で前記返信情報を同期させることを特徴とするキャッシュ情報交換方法。
【０１４３】
（付記４）  付記３に記載のキャッシュ情報交換方法であって、
前記代表代理装置以外の代理装置は、前記サーバに問い合わせを行った場合は、該サーバから応答された返信情報を前記代表代理装置に送信し、
前記代表代理装置は、前記送信されてきた前記返信情報をキャッシュ情報として保持すると共に、前記送信されてきた前記返信情報を当該代表代理装置以外の代理装置に対して送信し、
前記代表代理装置から前記返信情報が送信されてきた、前記代表代理装置以外の代理装置は、その返信情報を前記キャッシュ情報として保持することを特徴とするキャッシュ情報交換方法。
【０１４４】
（付記５）  付記２乃至４の何れか１に記載のキャッシュ情報交換方法であって、
前記選出ステップでは、前記代表となる代表代理装置に加え、更に予備代表代理装置を選出し、
前記代理装置の内前記予備代表代理装置のみが、前記代表代理装置が正常に動作しているか否かを確認する為のデータを送出することによる前記代表伝送装置の監視をし、該監視の結果前記代表代理装置が正常に動作していないと判断できた場合は当該予備代表代理装置が新たな代表代理装置として動作することを特徴とするキャッシュ情報交換方法。
【０１４５】
（付記６）  付記５に記載のキャッシュ情報交換方法であって、
前記代表代理装置からの応答が無く、且つ、前記予備代表代理装置からの、該予備代表代理装置が新たな代表代理装置として動作する旨の通知も無い場合に、前記選出ステップを実施することを特徴とするキャッシュ情報交換方法。
【０１４６】
（付記７）  付記１乃至６の何れか１に記載のキャッシュ情報交換方法であって、
前記キャッシュ情報の有効期限が近づいた際に、前記代理装置の内の１台が前記サーバに問い合わせを行うことにより前記有効期限が近づいている前記キャッシュ情報を更新し、該更新後の情報を前記１台以外の代理装置に送信する更新ステップを更に含むことを特徴とするキャッシュ情報交換方法。
【０１４７】
（付記８）  付記７に記載のキャッシュ情報交換方法であって、
前記有効期限が近づいている前記キャッシュ情報を、前回の有効期限が過ぎた後に前記代理装置の全てが利用していない場合には、前記有効期限が近づいていても前記更新ステップを行わないことを特徴とするキャッシュ情報交換方法。
【０１４８】
（付記９）  複数の代理装置の間でキャッシュ情報を交換するキャッシュ情報交換システムであって、
前記複数の代理装置の何れかの代理装置が該代理装置配下の何れかのクライアントからの依頼を受け付け、該クライアントに代理してサーバに問い合わせを行い、該サーバから該問い合せに対する返答情報を前記クライアントに代理して得る代理手段と、
前記複数の代理装置間で前記返答情報を同期させる同期手段と、
前記複数の代理装置の各々が、同期した前記返信情報をキャッシュ情報として保持する保持手段と、
を備えることを特徴とするキャッシュ情報交換システム。
【０１４９】
（付記１０）  代理装置であって、
当該代理装置配下の何れかのクライアントからの依頼を受け付け、該クライアントに代理してサーバに問い合わせを行い、該サーバから該問い合せに対する返答情報を前記クライアントに代理して得る代理手段と、
当該代理装置以外の他の代理装置との間でキャッシュ情報を同期させる同期手段と、
前記複数の代理装置の各々が、同期した前記返信情報をキャッシュ情報として保持する保持手段と、
を備えることを特徴とする代理装置。
【符号の説明】
【０１５０】
１００  ルータ
１１０  Ｐｒｏｘｙ  ＤＮＳ機能部
１２０  ＤＮＳキャッシュ情報関連制御部
１３０  パケット送受信部
１４０  ＤＮＳキャッシュ情報記憶部
１５０  ＤＮＳキャッシュ情報交換状態記憶部
２００  クライアント
３００  契約回線ルータ
４００  プロバイダルータ
５００  ＤＮＳサーバ
１０００  ＬＡＮシステム
１０００−Ａ  第１のエリア
１０００−Ｂ  第２のエリア
１０００−Ｃ  第３のエリア
２０００  外部ネットワーク
３０００  結合エリア
【図１】
0005414001.tif 000002
【図２−１】
0005414001.tif 000003
【図２−２】
0005414001.tif 000004
【図２−３】
0005414001.tif 000005
【図３−１】
0005414001.tif 000006
【図３−２】
0005414001.tif 000007
【図３−３】
0005414001.tif 000008
【図３−４】
0005414001.tif 000009
【図４】
0005414001.tif 000010
【図５】
0005414001.tif 000011
【図６】
0005414001.tif 000012