本実施例1では、DNSサーバ装置から受け取った回答に信頼度を付加してキャッシュするキャッシュサーバ装置について説明する。図1は、実施例1に係るキャッシュサーバ装置10の概要および特徴を示す図である。なお、同図に示すキャッシュサーバ装置10は、ネットワークを介してDNSクライアント装置110およびDNSサーバ装置120と通信データの送受信をおこなうものとする。
図1に示すように、キャッシュサーバ装置10はDNSサーバ装置120から受け取った応答を応答の信頼度と対応付けたうえでキャッシュ領域に登録し(図1の(3)参照)、同図に示す応答機能および再帰問合わせ機能はキャッシュデータの信頼度に基づいてキャッシュデータを使用する(図1の(1)および(2)参照)点に主な特徴がある。
言い換えれば、DNSサーバ装置120からの応答をむやみに破棄することなく、あらたに導入した概念である「信頼度」と対応付けて幅広く登録するとともに、登録されたキャッシュデータを利用する際には利用目的に合致する信頼度のキャッシュデータのみを使用することとしている。したがって、利用可能なキャッシュデータを幅広く登録することができるとともに、幅広く登録したキャッシュデータを効率良く利用することが可能となる。なお、「信頼度」の詳細な説明については図4を用いて後述する。
また、キャッシュサーバ装置10がおこなう処理手順を時系列で説明すると以下のようになる。すなわち、DNSクライアント装置110からのDNSクエリ要求を受け取った応答機能は、キャッシュ領域のキャッシュデータのうち所定の信頼度(図1では信頼度が1)を有するキャッシュデータにクエリ要求対象の情報が含まれているか否かを判定する。そして、クエリ要求対象の情報が含まれている場合には該当するキャッシュデータを用いてDNSクライアント装置110へ応答する。また、クエリ要求の情報が含まれていない場合には再帰問合わせ機能に対してDNSサーバ装置120からクエリ要求対象の情報を取得するよう依頼する。
応答機能からの依頼を受けた再帰問合わせ機能は、キャッシュ領域のキャッシュデータ(図1ではすべての信頼度)を用いて問合わせ先となるDNSサーバ装置120のアドレス一覧を作成し、各ドメイン階層に設けられたDNSサーバ装置120に対して上位階層から下位階層に向けて問合わせを繰り返していく。そして、所望する情報を含んだ応答を受け取った場合には、この応答を応答機能に渡してDNSクライアント装置110へ応答させるとともに、DNSサーバ装置120から受け取った応答をキャッシュ領域に登録するようキャッシュデータ登録処理に依頼する。
そして、キャッシュデータ登録処理は、DNSサーバ装置120からの応答を応答の信頼度と関連付けたうえでキャッシュ領域へと登録する。具体的には、このキャッシュデータ登録処理は再帰問合わせ機能を介してDNSサーバ装置120からの応答を受け取ると、応答の内容を確認することによって各応答の信頼度を決定する。そして、決定した信頼度と対応付けたキャッシュデータを登録する(図1の(3)参照)。すなわち、キャッシュデータ登録処理は、DNSサーバ装置120からの応答がDNSクライアント装置110への応答に耐えない信頼度である場合であっても、信頼度と対応付けたうえでキャッシュ領域へ登録する。
このようにすることで、再帰問合わせ機能が利用可能なキャッシュデータを数多く登録することができ、結果的に再帰問合わせ回数を低減することによって再帰問合わせに要する処理時間を短縮することが可能となる。一方、応答機能はキャッシュ領域に登録されたキャッシュデータのうち所定の信頼度を有するものだけを用いるのでDNSクライアント装置110への応答の信頼性を担保することができる。
ここで、従来技術に係るキャッシュサーバ装置の概要について図15を用いて説明する。図15は、従来技術に係るキャッシュサーバ装置の概要を示す図である。同図に示すように、従来技術に係るキャッシュサーバ装置においては、応答機能がDNSクライアント装置110への応答に用いることが可能な信頼性を有するデータのみをキャッシュデータとしてキャッシュしていた。このような構成をとると、DNSクライアント装置110への応答の信頼性は担保できるものの、再帰問合わせ機能が利用することができるキャッシュデータが減少してしまい、結果的に再帰問合わせに要する時間を短縮することができないという問題があった。
たとえば、DNSサーバ装置120から委任回答を受け取った場合、委任回答の信頼性はDNSクライアント装置110への応答に値しないのでキャッシュ対象とはせず破棄することになる。しかしながら、この委任回答には名前解決が可能なDNSサーバ装置120のアドレスなどの情報が含まれているので、破棄してしまうと再帰問合わせに利用することはできない。
一方、本実施例1に係るキャッシュサーバ装置10は、DNSクライアント装置110への応答には用いることができないもののDNSサーバ装置120への問合わせには用いることができる信頼度を有するキャッシュデータをキャッシュしているので、名前解決が可能なDNSサーバ装置120に対して直接的に問合わせることができる場合が多くなり、結果的に問合わせ回数を削減することが可能となるので再帰問合わせに要する処理時間を短縮することができる。
次に、本実施例1に係るキャッシュサーバ装置10の構成について図2を用いて説明する。図2は、実施例1に係るキャッシュサーバ装置10の構成を示すブロック図である。なお、同図においては、キャッシュサーバ装置10の特徴点を説明するために必要な処理部のみを示しており、CPU(Central Processing Unit)などのプロセッサ、一般的なキャッシュサーバとしての機能を担う処理部についての記載を省略している。
図2に示すように、キャッシュサーバ装置10は、制御部11と、記憶部12と、通信処理部13とを備えている。そして、制御部11は、応答処理部11aと、応答可否判定部11bと、再帰問合わせ処理部11cと、データ登録処理部11dとをさらに備えており、記憶部12は、キャッシュデータ12aを記憶している。
制御部11は、DNSサーバ装置120からの応答を信頼度に対応付けてキャッシュデータ12aとして登録するとともに、キャッシュデータ12aを利用する際には信頼度に基づいた利用可否判定をおこなったうえでDNSクライアント装置110への応答あるいはDNSサーバ装置120への問合わせをおこなう処理部である。
応答処理部11aは、DNSクライアント装置110からのDNSクエリ要求を受け付けるとともに、応答可否判定部11bが応答に使用可能であるとしたキャッシュデータ12aに応答用の情報が含まれている場合にはこの情報を用いて応答する処理をおこなう処理部である。また、この応答処理部11aは、キャッシュデータ12aに応答用の情報が含まれていない場合には再帰問合わせ処理部11cに対してDNSサーバ装置120への問合わせを依頼する処理をおこなう処理部でもある。
応答可否判定部11bは、各キャッシュデータ12aと対応付けられた信頼度を参照することによって、たとえば、所定の応答用閾値以上の信頼度を有するキャッシュデータ12aをDNSクライアント装置110への応答用に用いることができるキャッシュデータ12aであると判定する処理部である。なお、応答可否判定部11bは判定結果を応答処理部11aに対して通知する処理もおこなう。
ここで、応答可否判定部11bがおこなう処理の例を、図1を用いて説明すると以下のようになる。たとえば、応答用として利用可能な信頼度が1のみであるとすると、この応答可否判定部11bは信頼度が1のキャッシュデータのみを抽出して応答処理部11aに通知する。
また、本実施例1では、この応答可否判定部11bを応答処理部11aとは異なる処理部として説明するが、応答可否判定部11bを含んだ応答処理部11aを構成することとしてもよい。さらに、応答可否判定部11bを利用目的に応じた利用可否の判定をおこなう処理部として構成し、応答処理部11a、再帰問合わせ処理部11c、データ登録処理部11dといったキャッシュデータ12aを取り扱う各処理部が、利用可否の判定結果を使用することとしてもよい。
再帰問合わせ処理部11cは、応答処理部11aからDNSサーバ装置120への問合わせを依頼された場合に、キャッシュデータ12aに含まれるDNSサーバ装置120のアドレスを用いてDNSサーバ装置120に対する再帰的な問合わせ処理をおこなう処理部である。また、この再帰問合わせ処理部11cは、DNSサーバ装置120から受け取った応答をデータ登録処理部11dに渡す処理をおこなう処理部でもある。
データ登録処理部11dは、再帰問合わせ処理部11cから渡されたDNSサーバ装置120からの応答を「信頼度」と対応付けたうえでキャッシュデータ12aとして登録する処理をおこなう処理部である。ここで、キャッシュデータ12aの構成例および「信頼度」の設定例について図3および図4を用いて説明する。
図3は、キャッシュデータ12aの構成例を示す図である。同図の31に示すように、キャッシュデータ12aはn個のRRset(リソースレコードセット)から構成される。そして、各RRsetは同図の32に示した項目を含んでいる。なお、このRRsetは、「NAME」、「TYPE」および「CLASS」が一致するリソースレコードを一つのまとまりとしてグループ化したものである。そして、各RRsetには「信頼度」の項目が含まれているが、この項目は上記したデータ登録処理部11dによって設定される項目である。次に、この信頼度の設定例について図4を用いて説明する。
図4は、信頼度の設定例を示す図である。同図の42に示したDNSサーバ装置120からの応答種別についてデータ登録処理部11dが設定した「信頼度」を、同図の41に示している。ここで、同図の42に示したのは、RFC2181の5.4章における記述である。なお、RFC(Request For Comment)とは、インターネットに関する技術標準を定める団体であるIETF(Internet Engineering Task Force)が正式に発行する文書であり、RFC2181ではDNSについての仕様がまとめられている。
図4の42に示したように、RFC2181の5.4章における記述では、再帰問合わせに対する応答データの分類をあらわす「データの分類」、各データの分類についての詳細な情報である「詳細情報」、DNSクライアント装置への応答に用いてよい回答であるか否かをあらわす「クライアントへの応答可否」を用いて、応答の信頼性を信頼性が高い方から低い方へ大きく7種類に分類している。
なお、「信頼性」の項目に記載した「A」〜「G」は、説明の都合上付したものであり「A」が最も信頼性の高いランクであることを示している。また、RFC2181の5.4章における記述では、クライアントへの応答可否について信頼性「G」の応答をDNSクライアント装置への応答に用いてはならない旨が定められているが、その他の信頼性のランクについては定められていない。
次に、「信頼度」の設定例について説明する。同図の41に示したのはデータ登録処理部11dが設定する「信頼度」の例である。まず、同図の42に示した信頼性がA、BおよびEは一般的にキャッシュデータとして使用する応答ではないので除外する。そして、信頼性がCのデータ(Answer部に含まれる権威のあるクエリ応答(AAビットON))については信頼度を「1」に、信頼性がDのデータ(Authority部に含まれる権威のあるクエリ応答(AAビットON))については「2」にというように信頼度を定めていく。
なお、同図の41では、同図の42に示した「信頼性」と1対1に対応させて「信頼度」を定めた場合について示したが、これに限らず、複数の「信頼性」を1つの「信頼度」と対応させることとしてもよい。さらに、1つの「信頼性」を複数の「信頼度」と対応させることとしてもよい。
また、図4においては、同図の42に示した「信頼性」と「信頼度」とを対応付ける例を示したが、キャッシュデータの利用目的に応じて「信頼度」を設定することとしてもよい。たとえば、キャッシュデータの登録対象とするデータは信頼度1〜3、DNSサーバ装置に対する再帰問合わせに使用可能なデータは信頼度1〜2、DNSクライアント装置に対する応答に使用可能なデータは信頼度1というように信頼度を定めることができる。
図2の説明に戻り、記憶部12について説明する。記憶部12は、不揮発性RAM(Random Access Memory)やハードディスク装置といった記憶デバイスによって構成された記憶部であり、キャッシュデータ12aを記憶する。キャッシュデータ12aは、図3を用いて既に説明した構成を有するデータであり、データ登録処理部11dによって設定された「信頼度」を含んでいる。そして、このキャッシュデータ12aはDNSクライアント装置110への応答、あるいは、DNSサーバ装置120への再帰的問合わせに利用される。なお、キャッシュデータ12aをメモリダンプなどすることによって統計・分析用として利用することもできる。
通信処理部13は、DNSクライアント装置110やDNSサーバ装置120とのデータ送受信をおこなう通信デバイスであり、たとえば、LAN(Local Area Network)ボードなどの通信インタフェースボードによって構成される。
次に、本実施例1に係るキャッシュサーバ装置10がDNSクライアント装置110への応答をおこなう際の処理手順について図5を用いて説明する。図5は、実施例1に係る応答処理の処理手順を示すフローチャートである。同図に示すように、キャッシュサーバ装置10が要求電文(クエリ要求)を受信すると(ステップS101)、要求電文の回答を含んだキャッシュデータ12aがあるか否かを判定する(ステップS102)。そして、該当するキャッシュデータ12aがある場合には(ステップS102,Yes)、つづいて、ステップS102において該当すると判定されたキャッシュデータ12aの信頼度が応答用閾値以上であるか否かを判定する(ステップS103)。
そして、信頼度が応答用閾値以上である場合には(ステップS103,Yes)、このキャッシュデータを用いてDNSクライアント装置110への応答をおこなって(ステップS104)処理を終了する。
一方、ステップS102において該当するキャッシュデータがないと判定された場合(ステップS102,No)、または、ステップS103において信頼度が応答用閾値未満であると判定された場合(ステップS103,No)には、DNSサーバ装置120に対する再帰問合わせ処理を実行する(ステップS105)。なお、この再帰問合わせ処理(ステップS105)の詳細な処理内容については図8を用いて後述することとする。
再帰問合わせ処理(ステップS105)を実行したキャッシュサーバ装置10は、再帰問合わせの結果(名前解決の結果)を用いてDNSクライアント装置110に対して応答する(ステップS106)。また、キャッシュサーバ装置10は、この問合わせ結果をキャッシュデータ12aとして登録する処理を実行して(ステップS107)処理を終了する。
次に、図5に示したキャッシュデータ登録処理(ステップS107)の詳細な処理内容について図6および図7を用いて説明する。なお、図6では、最も基本的な処理手順のみを示しており、図7では、登録用閾値を用いた登録可否判定処理およびキャッシュデータ更新処理を含んだ詳細な処理手順を示している。
図6は、実施例1に係るキャッシュデータ登録処理の処理手順を示すフローチャートである。同図に示すように、データ登録処理部11dが再帰問合わせ処理部11cを介してリソースレコードを受け取ると(ステップS201)、あらかじめ定めた設定基準(たとえば、図4参照)に従って信頼度を設定する(ステップS202)。そして、信頼度と関連付けたリソースレコードをキャッシュデータ12aとして記憶部12へ登録する。なお、信頼度との関連付けにおいては、図3に示したようにキャッシュデータ12a自体に信頼度を含めることとしてもよいし、信頼度とのリンク付けをおこなうこととしてもよい。また、キャッシュデータ12a自体には信頼度を含めず信頼度ごとに区分けされたキャッシュ領域へ格納することで信頼度とキャッシュデータ12aとの関連付けをおこなうこととしてもよい。
次に、図6に示した処理手順に、さらに、登録用閾値を用いた登録可否判定処理およびキャッシュデータ更新処理を追加した場合について図7を用いて説明する。図7は、図6に示した処理手順の変形例を示すフローチャートである。同図に示すように、データ登録処理部11dが再帰問合わせ処理部11cを介してリソースレコードを受け取ると(ステップS301)、あらかじめ定めた設定基準(たとえば、図4参照)に従って信頼度を設定する(ステップS302)。つづいて、信頼度が所定の登録用閾値以上であるか否かを判定し(ステップS303)、登録用閾値以上である場合には(ステップS303,Yes)、このリソースレコードが既に登録されているか否かを判定する(ステップS304)。
ステップS304における判定の結果、リソースレコードが既に登録されている場合には(ステップS304,Yes)、既に登録されているリソースレコードとステップS301で受け取ったリソースレコードとで信頼度が異なるか否かを判定する(ステップS305)。そして、信頼度が異なる場合には(ステップS305,Yes)、該当するキャッシュデータ12aを更新して(ステップS307)処理を終了する。
なお、図7においては信頼度が異なる場合に該当するキャッシュデータ12aを更新する場合について示したが、これに限らず、あらたなリソースレコードの信頼度が既に登録されているリソースレコードの信頼度よりも高い場合にのみキャッシュデータ12aを更新することとしてもよい。
つづいて、ステップS303〜ステップS305において判定条件を満たさなかった場合について説明する。ステップS303において信頼度が登録用閾値未満であると判定された場合(ステップS303,No)、または、ステップS305において信頼度が一致すると判定された場合(ステップS305,No)には、リソースレコードを破棄して(ステップS308)キャッシュデータ12aを更新することなく処理を終了する。
また、ステップS304において該当するリソースレコードが未だ登録されていないと判定された場合には(ステップS304,No)、信頼度と関連付けたリソースレコードをキャッシュデータ12aとして新規登録して(ステップS306)処理を終了する。
次に、図5に示した再帰問合わせ処理(ステップS105)の詳細な処理内容について
図8を用いて説明する。図8は、実施例1に係る再帰問合わせ処理の処理手順を示すフローチャートである。同図に示すように、応答処理部11aからDNSサーバ装置120に対する再帰問合わせを指示された再帰問合わせ処理部11cは、該当するキャッシュデータ12aがあるか否か、すなわち、問合わせ先のDNSサーバ装置120を示すNSレコードおよびglueレコード(AレコードまたはAAAAレコード)があるか否かを判定する(ステップS401)。
そして、該当するキャッシュデータ12aがある場合には(ステップS401,Yes)、キャッシュデータ12aに示されたDNSサーバ装置120を問合わせ先とすることによって問合わせ先をショートカットする(ステップS402)。一方、該当するキャッシュデータ12aがない場合には(ステップS401,No)、問合わせ先をルートゾーンのDNSサーバとする。
つづいて、再帰問合わせ処理部11cは、ステップS402あるいはステップS403で決定したDNSサーバ装置120に対して問合わせを実行し(ステップS404)、DNSサーバ装置120からの問合わせ結果(正式回答または委任回答)を受信したならば(ステップS405)、問合わせ結果が正式回答であるか否かを判定する(ステップS406)。そして、問合わせ結果が正式回答である場合には(ステップS406,Yes)、処理を終了する。一方、問合わせ結果が委任回答である場合には(ステップS406,No)、問合わせ先を下位ゾーン(下位階層)のDNSサーバ装置120として(ステップS407)ステップS404以降の処理手順を繰り返すことになる。
なお、図8においては再帰問合わせの概要的な処理手順を示したが、DNSサーバ装置120に対する再帰的な問合わせ処理をおこなう場合には、再帰問合わせをおこなうたびに問合わせ先DNSサーバ装置120のリストであるSLISTを生成する。そして、ステップS401においてYesと判定されたキャッシュデータ12aに含まれるリソースレコードをSLISTに追加したうえで、ステップS404の問合わせを実行することになる。
次に、図8に示した再帰問合わせ処理の効果について図9および図16を用いて説明する。図9は、実施例1に係る再帰的問合わせ処理の効果を説明する図であり、図16は、従来技術に係る再帰問合わせ処理の概要を示す図である。
まず、従来技術に係る再帰問合わせ処理について図16を用いて説明する。図16に示すように、ルートゾーンを管理するDNSサーバ装置α、jp.ゾーンを管理するDNSサーバ装置β、co.jp.ゾーンを管理するDNSサーバ装置γがある場合に、org.co.jp.の名前解決を要求された従来のキャッシュサーバ装置は、ルートゾーンを管理するDNSサーバ装置αに対してorg.co.jp.の問合わせをおこなう(図16の(1)参照)。
そして、このDNSサーバ装置αからの回答が委任回答であれば(図16の(1)’参照)、この委任回答に含まれるDNSサーバ装置βを指し示す情報を用いることによってDNSサーバ装置βに対してorg.co.jp.を問合わせる(図16の(2)参照)、そして、このDNSサーバ装置βからの回答が委任回答であれば(図16の(2)’参照)、この委任回答に含まれるDNSサーバ装置γを指し示す情報を用いることによってDNSサーバγに対してorg.co.jp.の問合わせをおこなう(図16の(3)参照)。そして、このDNSサーバ装置γからの回答が正式回答であれば(図16の(3)’参照)再帰問合わせ処理を終了する。
このように、従来技術に係る再帰問合わせ処理においては、上位階層のDNSサーバ装置を起点とし、正式回答を返すDNSサーバ装置にたどり着くまで再帰的に問合わせを繰り返す必要があった。
次に、実施例1に係る再帰的問合わせ処理について図9を用いて説明する。なお、図9における前提条件は図16と同様であるものとし、DNSサーバ装置α〜γの3台のDNSサーバ装置があり、キャッシュサーバ装置10はorg.co.jp.の名前解決を要求されたものとする。
なお、図9の91においては、最初にorg.co.jp.の名前解決を要求された場合の問合わせ処理について、図9の92においては、2回目以降にorg.co.jp.の名前解決を要求された場合についてそれぞれ示している。
実施例1に係るキャッシュサーバ装置10は、最初にco.jp.ゾーンに属するドメインであるorg.co.jp.の名前解決を要求された場合(図9の91参照)、各委任回答をキャッシュデータ12aとしてキャッシュする。したがって、2回目以降にco.jp.ゾーンに属するドメインであるnew.co.jp.の名前解決を要求された場合には、キャッシュデータ12aを参照することによってDNSサーバ装置γに対して直接的に問合わせをおこなうことが可能である(図9の92における(4)参照)。また、委任回答のTTL(Time To Live)切れなどの理由によってDNSサーバ装置γに対する直接的な問合わせをおこなうことができない場合であっても、最も近い権威サーバ(たとえば、DNSサーバ装置β)を起点とした再帰問合わせをおこなうことができる。
このように、本実施例1に係るキャッシュサーバ装置10は、DNSサーバ装置から受け取った委任回答をも信頼度と関連付けたうえで記憶部12に対して登録するので、所定の信頼度を有するキャッシュデータ12aを再帰問合わせに利用することによって再帰問合わせにおける問合わせ回数を削減することができるとともに、問合わせの信頼性を担保することができる。
上述してきたように、本実施例1においては、データ登録処理部が再帰問合わせ処理部を介して受け取ったDNSサーバ装置からの回答を、あらたに導入した概念である「信頼度」と対応付けることによってキャッシュデータとして幅広く登録するとともに、登録されたキャッシュデータを利用する場面においては、応答可否判定部が所定の応答用閾値以上のキャッシュデータを応答可能と判定し、応答処理部は応答可否判定部が応答可能と判定したキャッシュデータを応答処理に利用するよう構成したので、利用可能なキャッシュデータを幅広く登録することができるとともに、幅広く登録したキャッシュデータを効率良く利用することができる。
なお、上記した実施例1においては、登録用閾値以上の信頼度を有する応答をキャッシュデータとして登録し、応答用閾値以上の信頼度を有するキャッシュデータを応答処理に利用するとともに、登録されたキャッシュデータを再帰問合わせ処理に利用する場合について、すなわち、登録用閾値以上の信頼度を有するキャッシュデータをすべて再帰問合わせ処理において利用する場合について示した。しかしながら、これに限らず、再帰問合わせ処理において問合わせ用閾値を用いることとし、登録されたキャッシュデータのうち信頼度が問合わせ用閾値以上のキャッシュデータのみを再帰問合わせ処理に利用することとしてもよい。このようにすることで、再帰問合わせの信頼性を柔軟に変更することができる。
また、上記した実施例1においては、応答可否判定部が応答用閾値を用いてキャッシュデータの応答処理への利用可否を判定する場合について示したが、応答処理部が応答可否判定部を含むよう構成してもよい。また、登録用閾値、応答用閾値、問合わせ用閾値といった各閾値を用いた処理(登録処理、応答処理、問合わせ処理など)についてキャッシュデータの利用可否を判定する判定処理部を構成することとしてもよい。このようにすることで、統計・分析用閾値などの利用処理を追加した場合であっても、キャッシュデータの利用目的に応じた閾値の追加や管理を容易におこなうことができる。
また、上記した各閾値を保守者が変更することができる値であるよう構成し、運用状態にあわせて各閾値を変更することとしてもよい。このようにすることで、キャッシュサーバ装置の運用ポリシーにあわせて、登録処理、応答処理、問合わせ処理といった各処理の信頼性を柔軟に変更することができる。なお、各閾値の変更は、たとえば、設定ファイルをサーバプロセスの起動時に読み込ませることによっておこなうことができる。また、サーバプロセスの動作中に設定ファイルを読み込ませることとしてもよい。
なお、上記した実施例1においては、信頼度を多値のデータ(たとえば、図4参照)とした場合について説明したが、信頼度を2値のフラグとすることもできる。そこで、以下では信頼度を2値のフラグとした場合について図10を用いて説明する。図10は、実施例1に係るキャッシュサーバ装置の変形例を示す図である。
図10に示すように、変形例に係るキャッシュサーバ装置10aは、信頼度として「応答可」および「応答不可」の2値をとる。たとえば、1ビットの領域において「1」であれば「応答可」、「0」であれば「応答不可」とすればよい。このように、信頼度を2値のフラグとすることによって、キャッシュデータの登録処理およびキャッシュデータの利用処理(DNSクライアント装置に対する応答処理)における信頼度の参照処理を簡略化することができるので処理効率を高めることが可能となる。
本実施例2では回答の信頼度に応じたキャッシュ領域を備えたキャッシュサーバ装置について説明する。図11は、実施例2に係るキャッシュサーバ装置10bの概要および特徴を示す図である。同図に示すように、キャッシュサーバ装置10bは、応答用キャッシュ領域および再帰問合わせ用キャッシュ領域の2つのキャッシュ領域を備えている。そして、キャッシュデータ登録処理においては、再帰問合わせ機能を介してDNSサーバ装置120から受け取った応答を、これらの各キャッシュ領域へ振り分けて登録する(図11の(3)参照)。
そして、応答用キャッシュ領域に登録されたキャッシュデータは応答機能が応答処理をおこなう際に使用されるとともに(図11の(1)参照)、再帰問合わせ用キャッシュ領域に登録されたキャッシュデータは再帰問合わせ機能が問合わせ処理をおこなう際に使用される(図11の(2)参照)。
このように、本実施例2に係るキャッシュサーバ装置10bでは、信頼度と対応した複数のキャッシュ領域を設けることとしている。すなわち、キャッシュデータ自体に信頼度を設定する実施例1の場合とは異なり、本実施例2においてはキャッシュデータ格納用のキャッシュ領域を信頼度と対応付けることとしている。このようにすることで、キャッシュデータを利用する際の処理を簡略化することが可能となる。
なお、同図に示した各キャッシュ領域のキャッシュデータのうち、「A」および「B」は、双方のキャッシュ領域に登録されている。このようなデータ同期処理は同図に示すキャッシュデータ登録処理によっておこなわれる。たとえば、信頼度1のキャッシュデータが「A」および「B」であり、信頼度2のキャッシュデータが「C」および「D」であり、DNSクライアント装置110への応答として用いることができる信頼度が1のみである場合について説明する。
このような場合において、キャッシュデータ登録処理においては、信頼度が1のキャッシュデータを応答用キャッシュ領域へ、信頼度が1および2のキャッシュデータを再帰問合わせ用キャッシュ領域へそれぞれ登録する。たとえば、キャッシュデータ登録処理はキャッシュデータAについては双方のキャッシュ領域へ登録するが、キャッシュデータCについては再帰問合わせ用キャッシュ領域のみへ登録する。
次に、本実施例2に係るキャッシュサーバ装置10bの構成について図12を用いて説明する。図12は、実施例2に係るキャッシュサーバ装置10bの構成を示すブロック図である。なお、同図においては、キャッシュサーバ装置10bの特徴点を説明するために必要な処理部のみを示しており、CPU(Central Processing Unit)などのプロセッサ、一般的なキャッシュサーバとしての機能を担う処理部についての記載を省略している点については図2と同様である。また、以下では、実施例1との差異点について説明し、共通点についての説明は省略することとする。
図12に示すように、キャッシュサーバ装置10bは、記憶部12に応答用キャッシュ領域12bと、再帰問合わせ用キャッシュ領域12cとを備えている。なお、各キャッシュ領域には、データ登録処理部11dによって振り分けられたキャッシュデータがそれぞれ格納される。また、各キャッシュ領域に格納されるキャッシュデータの形式としては、たとえば、双方のキャッシュ領域についてハッシュテーブルを用いることができる。このように、各キャッシュ領域に格納されるキャッシュデータを同形式とすることによってキャッシュデータ利用時の処理効率を向上させることができる。
データ登録処理部11dは、再帰問合わせ処理部11cから渡されたDNSサーバ装置110からの応答について「信頼度」を設定するとともに、各信頼度に応じたキャッシュ領域へDNSサーバ装置120からの応答を格納する処理をおこなう処理部である。たとえば、このデータ登録処理部11dは、信頼度1とした応答のみを応答用キャッシュ領域12bに格納するとともに、信頼度1を含む他の信頼度の応答を再帰問合わせ用キャッシュ領域12cに格納する。
なお、図12に示したキャッシュサーバ装置10bは、実施例1に示したキャッシュサーバ装置10(図2参照)と異なり、応答可否判定部11bを備えていない。その理由は、データ登録処理部11dが応答用キャッシュ領域12bや再帰問合わせ用キャッシュ領域12cといった各利用目的に応じたキャッシュ領域にキャッシュデータを振り分けて格納しているので、応答処理部11aは応答用キャッシュ領域12cに格納されたキャッシュデータをすべて用いることとしても構わないからである。
次に、本実施例2に係るキャッシュサーバ装置10bがDNSクライアント装置110への応答をおこなう際の処理手順について図13を用いて説明する。図13は、実施例2に係る応答処理の処理手順を示すフローチャートである。同図に示すように、キャッシュサーバ装置10bが要求電文(クエリ要求)を受信すると(ステップS501)、応答用キャッシュ領域12bに該当するキャッシュデータがあるか否かを判定する(ステップS502)。そして、該当するキャッシュデータがある場合には(ステップS502,Yes)、このキャッシュデータを用いてDNSクライアント装置110への応答をおこなって(ステップS503)処理を終了する。
一方、ステップS502において該当するキャッシュデータがないと判定された場合(ステップS502,No)には、DNSサーバ装置120に対する再帰問合わせ処理を実行する(ステップS504)。なお、この再帰問合わせ処理(ステップS504)の詳細な処理内容については実施例1の図8と同様であるので省略する。
再帰問合わせ処理(ステップS504)を実行したキャッシュサーバ装置10bは、再帰問合わせの結果(名前解決の結果)を用いてDNSクライアント装置110に対して応答する(ステップS505)。また、キャッシュサーバ装置10bは、この問合わせ結果をキャッシュデータとして登録する処理を実行して(ステップS506)処理を終了する。
次に、図13に示したキャッシュデータ登録処理(ステップS506)の詳細な処理内容について図14を用いて説明する。図14は、実施例2に係るキャッシュデータ登録処理の処理手順を示すフローチャートである。同図に示すように、データ登録処理部11dが再帰問合わせ処理部11cを介してリソースレコードを受け取ると(ステップS601)、あらかじめ定めた設定基準(たとえば、図4参照)に従って信頼度を設定する(ステップS602)。つづいて、信頼度が所定の登録用閾値以上であるか否かを判定し(ステップS603)、登録用閾値以上である場合には(ステップS603,Yes)、このリソースレコードの信頼度が応答用閾値以上であるか否かを判定する(ステップS604)。
そして、ステップS604における判定の結果、信頼度が応答用閾値以上である場合には(ステップS604,Yes)、このリソースレコードを応答用キャッシュ領域12bおよび再帰問合わせ用キャッシュ領域12cへ格納して(ステップS605)処理を終了する。一方、信頼度が応答用閾値未満である場合には(ステップS604,No)、このリソースレコードを再帰問合わせ用キャッシュ領域12cへ格納して(ステップS606)処理を終了する。なお、ステップS603において信頼度が登録用閾値未満であると判定された場合には(ステップS603,No)、リソースレコードを破棄して(ステップS607)いずれのキャッシュ領域へも格納することなく処理を終了する。また、ステップS605およびステップS606において再帰問合わせ用キャッシュ領域へ格納するデータはNSレコードおよびglueレコード(AレコードまたはAAAAレコード)である。
上述したように、本実施例2においては、記憶部に応答用キャッシュ領域および再帰問合わせ用キャッシュ領域を設けることとし、データ登録処理部が再帰問合わせ処理部を介して受け取ったDNSサーバ装置からの回答の信頼度を判定するとともに、判定した信頼度に基づいて応答用キャッシュ領域および再帰問合わせ用キャッシュ領域の双方へ、あるいは、応答用キャッシュ領域のみへDNSサーバ装置からの回答を格納するよう構成した。したがって、登録されたキャッシュデータを効率良く検索することができる。
なお、上記した実施例2においては、記憶部に応答用キャッシュ領域および再帰問合わせ用キャッシュ領域を設ける場合について示したが、これに限らず、信頼度ごとにキャッシュ領域を設けたり、いくつかの信頼度からなるグループごとにキャッシュ領域を設けたりすることとしてもよい。
また、上記したように、各キャッシュ領域に格納されるキャッシュデータをすべてハッシュテーブルとすることができるが、応答処理部が応答用キャッシュ領域を参照する際の検索アルゴリズムと、再帰問合わせ処理部が再帰問合わせ用キャッシュ領域を参照する際の検索アルゴリズムとを異なるアルゴリズムとなるよう構成することとしてもよい。
たとえば、応答処理部が用いる検索アルゴリズムとしては、ドメイン名(たとえば、aaa.co.jp.)を一括してハッシュ変換する一般的な演算アルゴリズムを用いることとする。一方、再帰問合わせ処理部が用いる検索アルゴリズムとしては、ドメイン名(たとえば、aaa.co.jp.)のラベル(「aaa」、「co」、「jp」)ごとのハッシュ値を右のラベルから左のラベルの方向に記憶しつつドメイン名の一致を判定する検索アルゴリズムを用いることとする。
このように、キャッシュデータを利用する際の検索アルゴリズムを利用目的に応じて切り替えることで、キャッシュデータ利用時の処理効率を向上させることができる。なお、このような検索アルゴリズムは、応答処理部、再帰問合わせ処理部といった各利用部に含ませるよう構成することとしてもよいし、複数の検索アルゴリズムを管理するととともに各検索アルゴリズムを切り替える検索アルゴリズム切替部を独立した処理部として構成することとしてもよい。
また、上記した各実施例では、本発明を実現する各装置を機能面から説明したが、各装置の各機能はパーソナルコンピュータやワークステーションなどのコンピュータにプログラムを実行させることによって実現することもできる。
すなわち、上述した各種の処理手順は、あらかじめ用意されたプログラムをコンピュータ上で実行することによって実現することができる。そして、これらのプログラムは、インターネットなどのネットワークを介して配布することができる。さらに、これらのプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。