この発明は、権威サーバの機能を発揮する権威サーバ部とキャッシュサーバ部の機能を発揮するキャッシュサーバ部とから構成されるDNSサーバ装置、要求電文処理方法および要求電文処理プログラムに関する。
従来より、一般的に多く利用されているインターネットサービスにおいて、ホスト名(ドメイン名)とIPアドレス(Internet Protocol Address)とを対応させるDNSシステム(Domain Name System)がある。かかるDNSシステムは、名前空間の中にある特定のゾーンを管理する権威サーバと、クライアントからの問合せを受け付けて、自身がキャッシュ情報を持っていない場合は、他の権威サーバへ再帰問合せして名前解決を行い、キャッシュ情報を持っている場合は、キャッシュデータを用いて応答するキャッシュサーバとから構成される。
このようなDNSシステムで一般的に広く使用されているDNSサーバソフトウエアのBIND(Berkeley Internet Name Domain)では、権威サーバとキャッシュサーバとを一つのプロセスで実現している。そして、このようなDNSサーバのセキュリティをさらに向上させるために、権威サーバとキャッシュサーバの二つのプロセスで実現するDNSサーバソフトウエアがある(例えば、非特許文献1)。
そして、権威サーバとキャッシュサーバの二つのプロセスで実現するDNSシステムについて、様々な方法・技術が開示されている。そこで、その一例として、権威サーバとキャッシュサーバの二つのプロセスを、一つの筐体で実現しているDNSシステムについて、図10および図11を用いて、具体的に説明する。
先ず、図10を用いて、一般的なDNSクライアントが要求電文を送信した場合について説明する。図10に示したように、DNSサーバ装置110とDNSクライアント100とがインターネットに接続されている。そして、DNSサーバ装置110は、権威サーバ部111とキャッシュサーバ部112とから構成され、権威サーバ部111には、IPアドレス(10.150.32.10)とPort番号(53番)が設定され、キャッシュサーバ部112には、IPアドレス(10.150.32.20)とPort番号(53番)が設定されている。ここで、Port番号(53番)は、通常、インターネット上でDNSシステムの待ち受けPort番号として使用される番号であり、図10に示した一般のDNSクライアント100には、キャッシュサーバ部112のIPアドレスとPort番号が公開される。
このような構成において、キャッシュサーバ部112は、DNSクライアント100からDNSサーバ装置110に送信された要求電文(例えば、名前解決要求など)を受信する(図10の(1)〜(2))。そして、キャッシュサーバ部112は、受信した要求電文がキャッシュヒットした場合、要求電文に対するクエリ応答(リソースレコード)をDNSクライアント100に送信する。一方、キャッシュヒットせず、要求電文のゾーンを権威サーバ部が管理していることをキャッシュサーバが認識している場合、キャッシュサーバ部112は、受信した要求電文を権威サーバ部111に転送する(図10の(3))。続いて、権威サーバ部111は、要求電文を受信し、要求電文に対するクエリ応答をキャッシュサーバ部112に送信する(図10の(4))。そして、クエリ応答を受信したキャッシュサーバ部112は、当該クエリ応答をDNSクライアント100に送信する(図10の(5))。
次に、図11を用いて、セカンダリ権威サーバ、他のキャッシュサーバまたは端末装置(例えば、ダイナミックDNS要求を送信する端末装置)が、要求電文を送信した場合について説明する。図11に示したように、DNSサーバ装置110とDNSクライアント120とがインターネットに接続されている。DNSサーバ装置110は、図10に示したDNSサーバ装置と同様の構成および設定となっている。DNSクライアント120は、セカンダリ権威サーバ、他のキャッシュサーバまたは端末装置(例えば、ダイナミックDNS要求を送信する端末装置)である。
このような構成のもと、権威サーバ部111は、DNSクライアント120から送信された要求電文を受信すると(図11の(1)〜(2))、応答処理を実行し、クエリ応答を送信する(図11の(3))。例えば、権威サーバ部111は、セカンダリ権威サーバからゾーン転送要求を受信すると、クエリ応答として記憶するゾーン情報を送信元のセカンダリ権威サーバに送信する。また、他のキャッシュサーバから名前解決要求を受信すると、クエリ応答としてリソースレコードを送信元のキャッシュサーバに送信する。また、端末装置からダイナミックDNS要求を受信すると、要求電文の条件に従って、リソースレコードの追加や削除を行い、更新結果を送信元の端末装置に送信する。
ところで、上記した従来の技術は、筐体としての待ち受けIPアドレスが複数必要であるという課題があり、また、権威サーバが応答するべき要求電文を、キャッシュサーバが応答してしまうという課題があり、さらに、応答処理が効率的でないという課題があった。
これらの課題を具体的に説明すると、図10の場合、権威サーバ部111が管理するゾーンに対しては、常に権威サーバ部111が応答するべきところを、要求電文がキャッシュヒットした場合、キャッシュサーバ部112が応答してしまうという課題があり、また、権威サーバ部111が応答する場合もキャッシュサーバ部112を介して応答が送信されるので、応答処理が効率的でないという課題がある。
また、図11の場合、セカンダリ権威サーバ、他のキャッシュサーバまたはダイナミックDNS要求を送信する端末装置などからの要求電文は、権威サーバ部111が受信し応答するので、このような端末装置には、図10に示した場合と異なり、キャッシュサーバ部112のIPアドレスではなく、権威サーバ部111のIPアドレス(10.150.32.10)をインターネットに公開する必要がある。つまり、図10と図11とを比較してもわかるように、DNSサーバ装置は、DNSクライアントの種別に応じて、複数のIPアドレスを用意する必要があり、DNSクライアント側も、個々にIPアドレスを設定する必要があるという課題がある。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、権威サーバ部とキャッシュサーバ部の待ち受けIPアドレスを、筐体として一本化することが可能であると共に、権威サーバ部が管理するゾーンに対しては、権威サーバとして直接応答することが可能であり、クエリ応答を効率的に行うことが可能であるDNSサーバ装置、要求電文処理方法および要求電文処理プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1に係る発明は、権威サーバの機能を発揮する権威サーバ部とキャッシュサーバの機能を発揮するキャッシュサーバ部とから構成されるDNSサーバ装置であって、前記権威サーバ部または前記キャッシュサーバ部に送信された要求電文を一括して受信する要求電文受信手段と、前記要求電文受信手段により受信された前記要求電文を種別に応じて、前記権威サーバ部または前記キャッシュサーバ部に振分けて転送する要求電文振分手段と、前記要求電文振分手段により前記要求電文が転送された前記権威サーバ部または前記キャッシュサーバ部から得られた前記要求電文に対する応答を、前記要求電文の送信元に送信する応答送信手段と、を備えたことを特徴とする。
また、請求項2に係る発明は、上記の発明において、前記権威サーバ部は、前記要求電文受信手段と、前記要求電文振分手段と、前記応答送信手段と、を備えたことを特徴とする。
また、請求項3に係る発明は、上記の発明において、権威サーバの機能を発揮する権威サーバ部とキャッシュサーバの機能を発揮するキャッシュサーバ部とから構成されるDNSサーバ装置に適用する要求電文処理方法であって、前記権威サーバ部または前記キャッシュサーバ部に送信された要求電文を一括して受信する要求電文受信工程と、前記要求電文受信手段により受信された前記要求電文を種別に応じて、前記権威サーバ部または前記キャッシュサーバ部に振分けて転送する要求電文振分工程と、前記要求電文振分手段により前記要求電文が転送された前記権威サーバ部または前記キャッシュサーバ部から得られた前記要求電文に対する応答を、前記要求電文の送信元に送信する応答送信工程と、を含んだことを特徴とする。
また、請求項4に係る発明は、上記の発明において、権威サーバの機能を発揮する権威サーバ部とキャッシュサーバの機能を発揮するキャッシュサーバ部とから構成されるDNSサーバ装置としてコンピュータに実行させる要求電文処理プログラムであって、前記権威サーバ部または前記キャッシュサーバ部に送信された要求電文を一括して受信する要求電文受信手順と、前記要求電文受信手段により受信された前記要求電文を種別に応じて、前記権威サーバ部または前記キャッシュサーバ部に振分けて転送する要求電文振分手順と、前記要求電文振分手段により前記要求電文が転送された前記権威サーバ部または前記キャッシュサーバ部から得られた前記要求電文に対する応答を、前記要求電文の送信元に送信する応答送信手順と、をコンピュータに実行させることを特徴とする。
請求項1、3または4の発明によれば、権威サーバ部またはキャッシュサーバ部に送信された要求電文を一括して受信し、受信された要求電文を種別に応じて、権威サーバ部またはキャッシュサーバ部に振分けて転送し、要求電文が転送された権威サーバ部またはキャッシュサーバ部から得られた要求電文に対する応答を、要求電文の送信元に送信するので、権威サーバ部とキャッシュサーバ部の待ち受けIPアドレスを、筐体として一本化することが可能であると共に、権威サーバ部が管理するゾーンに対しては、権威サーバとして直接応答することが可能であり、クエリ応答を効率的に行うことが可能である。
また、請求項2の発明によれば、権威サーバ部は、要求電文を一括して受信し、受信された要求電文を種別に応じて、振分けて転送し、得られた要求電文に対する応答を、要求電文の送信元に送信するので、権威サーバ部として直接応答することを優先することができ、権威サーバ部が管理するゾーンに対しては、より確実かつ高速に権威サーバ部として直接応答することが可能である。
以下に添付図面を参照して、この発明に係るDNSサーバ装置、要求電文処理方法および要求電文処理プログラムの実施例を詳細に説明する。
以下では、実施例1に係るDNSサーバ装置の概要および特徴、DNSサーバ装置の構成および処理の流れを説明し、最後に実施例1による効果を説明する。
[DNSサーバ装置の概要および特徴]
まず最初に、図1を用いて、実施例1に係るDNSサーバ装置を含むDNSシステムの概要および特徴を説明する。図1は、実施例1に係るDNSサーバ装置を含むDNSシステムの全体構成を示すDNSシステム構成図である。
同図に示すように、かかるDNSシステムにおいて、複数のDNSサーバ装置30と複数のDNSクライアント10(例えば、一般的なDNSクライアント(DNSサーバ装置30が管理するゾーンまたは管理するゾーン以外への名前解決要求を送信するDNSクライアント)、セカンダリ権威サーバまたは端末装置(ダイナミックDNS要求を送信する端末装置))とがインターネットに接続されている。また、DNSサーバ装置30は、権威サーバ部40とキャッシュサーバ装置50とから構成されている。
このような構成のもと、実施例1に係るDNSサーバ装置30は、DNSクライアント10から要求電文を受信し、要求電文に対応したクエリ応答を送信元のDNSクライアントに送信する。例えば、一般的なDNSクライアントや他のキャッシュサーバから名前解決要求を受信すると、リソースレコードをクエリ応答として送信し、また、セカンダリ権威サーバからゾーン転送要求を受信すると、管理するゾーン情報をクエリ応答として送信し、また、ダイナミックDNS要求を受信すると、要求電文の条件に従って、リソースレコードの追加や削除を行い、更新結果を送信する。このような概要を要するDNSサーバ装置30は、権威サーバ部40とキャッシュサーバ部50の待ち受けIPアドレスを、筐体として一本化することが可能であると共に、権威サーバ部が管理するゾーンに対しては、権威サーバとして直接応答することが可能であり、クエリ応答を効率的に行うことが可能である点に主たる特徴がある。
この主たる特徴を具体的に説明すると、DNSサーバ装置30の権威サーバ部40には、IPアドレス(192.168.1.1)とPort番号(53番)が設定され、キャッシュサーバ部50には、IPアドレス(192.168.1.1)とPort番号(50053番)が設定されている。また、Port番号(53番)は、通常、インターネット上でDNSシステムの待ち受けPort番号として使用される番号である。ここでは、DNSサーバ装置30の待ち受けIPアドレスは192.168.1.1であり、待ち受けPort番号は53番となる。
そして、DNSクライアント10から要求電文がIPアドレス(192.168.1.1)、Port番号(53番)であるDNSサーバ装置30に送信されると(図1の(1))、実際にIPアドレス(192.168.1.1)、Port番号(53番)が設定されているDNSサーバ装置30の権威サーバ部40(192.168.1.1)が一括して当該要求電文を受信する(図1の(2))。そして、権威サーバ部40は、当該要求電文を種別に応じて、Port番号(50053番)が設定されているキャッシュサーバ部50に振分けて転送する(図1の(3))。
ここで、権威サーバ部40がキャッシュサーバ部50に要求電文を転送する場合について、例を挙げて説明する。例えば、権威サーバ部40は、自身が管理するゾーンへの要求電文や図示しないセカンダリ権威サーバまたは端末装置(ダイナミックDNS要求を送信する端末装置)から要求電文を受信した場合、キャッシュサーバ部50に要求電文を転送することなく、自身でクエリ応答をDNSクライアント10に送信する。一方、上記した以外の要求電文などを受信した場合、権威サーバ部40は、受信した要求電文をキャッシュサーバ部50に転送する。
その後、キャッシュサーバ部50は、受信した要求電文に対するクエリ応答を権威サーバ部40に送信する(図1の(4))。続いて、権威サーバ部40は、キャッシュサーバ部50から得られた要求電文に対するクエリ応答を、要求電文の送信元であるDNSクライアント10に送信する(図1の(5))。
このように、上記した主たる特徴の如く、権威サーバ部40とキャッシュサーバ部50の待ち受けIPアドレスを、筐体として一本化することが可能であると共に、権威サーバ部40が管理するゾーンに対しては、権威サーバ40として直接応答することが可能であり、クエリ応答を効率的に行うことが可能である。
[DNSサーバ装置の構成]
次に、図2を用いて、図1に示したDNSサーバ装置30の構成を説明する。図2は、DNSサーバ装置30の構成を示すブロック図である。同図に示すように、このDNSサーバ装置30は、権威サーバ部40と、キャッシュサーバ部50とから構成される。
このうち、権威サーバ部40は、通信制御I/F部41と、記憶部42と、制御部43とから構成される。なお、通信制御I/F部41は、特許請求の範囲に記載の「要求電文受信部手段」および「応答送信手段」に対応する。
そして、通信制御I/F部41は、インターネットを介してDNSクライアントなどとの間でやり取りする各種情報に関する通信を制御する手段である。具体的には、DNSクライアント10から権威サーバ部40またはキャッシュサーバ部50に送信された要求電文を一括して受信すると共に、権威サーバ部40またはキャッシュサーバ部50から得られた要求電文に対する応答を要求電文の送信元のDNSクライアント10に送信する手段であり、また、受信した要求電文をキャッシュサーバ部50に転送し、キャッシュサーバ部50から要求電文に対するクエリ応答を受信する手段である。
記憶部42は、制御部43による各種処理に必要なデータおよびプログラムを格納する格納手段(記憶手段)である。具体的には、権威サーバ部40が管理するゾーンへの要求電文に応答するためのリソースレコードなどを記憶する。
制御部43は、OS(Operating System)などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に密接に関連するものとしては、要求電文振分部43aと、応答制御部43bとを備える。なお、要求電文振分部43aは、特許請求の範囲に記載の「要求電文振分手段」に対応する。
このうち、要求電文振分部43aは、通信制御I/F部41により受信された要求電文を種別に応じて、権威サーバ部40またはキャッシュサーバ部50に振分けて転送する手段である。具体的には、権威サーバ部40が管理するゾーンへの要求電文、セカンダリ権威サーバなどから送信された要求電文またはダイナミックDNS要求などの権威サーバ40が応答すべき要求電文などは、権威サーバ部40が応答し、権威サーバ部40が応答すべきでない要求電文などはキャッシュサーバ部50へ転送される。例を挙げれば、受信した要求電文のOPCODEが「NOTIFY」か「UPDATE」であるか、または、QTYPEが「IXFR」か「AXFR」であるか、または、QNAMEが権威サーバ部40の管理するゾーンであるならば、権威サーバ部40が応答する。それ以外ならば、キャッシュサーバ部50に振分けて転送する。
また、応答制御部43bは、要求電文に基づいて、リソースレコードを応答する手段である。具体的には、通信制御I/F部41により受信された要求電文に基づいて、記憶部42に記憶されるリソースレコードを参照し、クエリ応答を決定する。
キャッシュサーバ部50は、通信制御I/F部51と、記憶部52と、制御部53とから構成される。そして、通信制御I/F部51は、権威サーバ部40との間でやり取りする各種情報に関する通信を制御する手段であり、具体的には、権威サーバ部40の通信制御I/F部41より送信された要求電文を受信し、受信した要求電文に対するクエリ応答を権威サーバ部40の通信制御I/F部41に送信する。
記憶部52は、制御部53による各種処理に必要なデータおよびプログラムを格納する格納手段(記憶手段)である。具体的には、権威サーバ部40から転送された要求電文に応答するためのキャッシュ情報(例えば、権威サーバ部40が管理するゾーン以外へのリソースレコード)などを記憶する。
制御部53は、OS(Operating System)などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に密接に関連するものとしては、応答制御部53aを備える。
応答制御部53aは、要求電文に基づいて、リソースレコードを応答する手段である。具体的に例を挙げれば、通信制御I/F部51により受信された要求電文(例えば、権威サーバ部40が管理するゾーン以外への要求電文など)に基づいて、記憶部52に記憶されるリソースレコードを参照し、クエリ応答を決定する。
[DNSサーバ装置による処理]
次に、図2と図3を用いて、DNSサーバ装置による処理を説明する。図3は、受信した要求電文の振分処理の流れを示すフローチャートである。
図3に示すように、権威サーバ部40の通信制御I/F部41が権威サーバ部40またはキャッシュサーバ部50に送信された要求電文を一括して受信すると(ステップS301肯定)、要求電文振分部43aは、要求電文を種別に応じて、権威サーバ部40が応答するか否かを判定する(ステップS302)。
そして、権威サーバ部40が応答する場合(ステップS302肯定)、権威サーバ部40の応答制御部43bは、受信された要求電文に基づいて、記憶部42に記憶されるリソースレコードを参照し、クエリ応答を決定する。そして、権威サーバ部40の通信制御I/F部41は、クエリ応答を要求電文の送信元であるDNSクライアント10に送信する(ステップS308)。
一方、権威サーバ部40が応答しない場合(ステップS302否定)、権威サーバ部40の要求電文振分部43aは、受信した要求電文をキャッシュサーバ部50に振分けて転送する(ステップ303)。
そして、要求電文を受信したキャッシュサーバ部50の応答制御部53aは、受信した要求電文に基づいて、記憶部52に記憶されるリソースレコードを参照し、クエリ応答を決定する応答処理を行う(ステップS304〜ステップS305)。そして、キャッシュサーバ部50の通信制御I/F部51は、決定したクエリ応答を権威サーバ部40に送信する(ステップS306)。
その後、権威サーバ部40の通信制御I/F部41、キャッシュサーバ装置50より得られた前記要求電文に対する応答を、前記要求電文の送信元であるDNSクライアントに送信する(ステップS307〜ステップS308)。
[実施例1による効果]
上述してきたように、実施例1によれば、権威サーバ部40またはキャッシュサーバ部50に送信された要求電文を一括して受信し、受信された要求電文を種別に応じて、権威サーバ部40またはキャッシュサーバ部50に振分けて転送し、要求電文が転送された権威サーバ部40またはキャッシュサーバ部50から得られた要求電文に対する応答を、要求電文の送信元に送信するので、権威サーバ部40とキャッシュサーバ部50の待ち受けIPアドレスを、筐体として一本化することが可能であると共に、権威サーバ部40が管理するゾーンに対しては、権威サーバとして直接応答することが可能であり、クエリ応答を効率的に行うことが可能である。
また、実施例1によれば、権威サーバ部40は、要求電文を一括して受信し、受信された要求電文を種別に応じて、振分けて転送し、得られた要求電文に対する応答を、要求電文の送信元に送信するので、権威サーバ部40として直接応答することを優先することができ、権威サーバ部40が管理するゾーンに対しては、より確実かつ高速に権威サーバ部40として直接応答することが可能である。
ところで、上記の実施例1では、要求電文を転送されたキャッシュサーバ部50が、当該要求電文に対する応答を権威サーバ部40に送信する場合を説明したが、本発明は必ずしもこれに限定するものではなく、要求電文を転送されたキャッシュサーバ部50が、当該要求電文に対する応答を、要求電文の送信先であるDNSクライアント10に直接送信することが可能である。
そこで、実施例2では、要求電文を転送されたキャッシュサーバ部50が、当該要求電文に対する応答を、要求電文の送信先であるDNSクライアント10に直接送信する例を説明する。以下の実施例2では、実施例2に係るDNSサーバ装置の全体構成および処理の流れを説明し、最後に実施例2による効果を説明する。
[DNSサーバ装置を含むDNSシステムの全体構成(実施例2)]
まず最初に、図4を用いて、実施例2に係るDNSサーバ装置を含むDNSシステムの全体構成を説明する。図4は、実施例2に係るDNSサーバ装置を含むDNSシステムの全体構成を示すDNSシステム構成図である。
図4に示すように、かかるDNSシステムにおいて、複数のDNSサーバ装置30と複数のDNSクライアント10とがインターネットに接続されている。また、DNSサーバ装置30は、権威サーバ部40とキャッシュサーバ装置50とから構成されており、権威サーバ部40には、IPアドレス(192.168.1.1)とPort番号(53番)が設定されている。なお、Port番号(53番)は、通常、インターネット上でDNSシステムの待ち受けPort番号として使用される番号である。ここでは、DNSサーバ装置30の待ち受けIPアドレスは192.168.1.1であり、待ち受けPort番号は53番となる。また、実施例2では、DNSサーバ装置30のOSにUNIX(登録商標)を用いて構築した例を示しており、権威サーバ部40とキャッシュサーバ部50とは、共通のパスを設定したUNIX(登録商標)ドメインパスにより相互通信を行う。
このような構成のもと、DNSクライアント10から要求電文がIPアドレス(192.168.1.1)、Port番号(53番)であるDNSサーバ装置30に送信されると(図4の(1))、実際にIPアドレス(192.168.1.1)、Port番号(53番)が設定されているDNSサーバ装置30の権威サーバ部40(192.168.1.1)が当該要求電文を一括して受信する(図4の(2))。
そして、権威サーバ部40は、UNIX(登録商標)ドメインパスを介して、受信した要求電文と共に、要求電文の送信元情報(例えば、DNSクライアントのIPアドレス、Port番号)と、要求電文受信時のINETソケットとをキャッシュサーバ部50に振分けて転送する(図1の(3))。
具体的には、図6に示すような転送フォーマットを用いて、キャッシュサーバ部50に転送する。転送される要求電文の例を挙げると、例えば、受信した要求電文のOPCODEが「NOTIFY」か「UPDATE」でなく、かつ、QTYPEが「IXFR」か「AXFR」でもない権威サーバ部40が管理するゾーン以外への要求電文などであり、権威サーバ部40が管理するゾーンへの要求電文の場合、権威サーバ部40がクエリ応答を送信する。
また、図6に示した転送フォーマットは、DNSメッセージのデータが可変長のため、電文サイズおよびDNSメッセージサイズをヘッダとして持っている。そして、INETソケットタイプにより、DNSクライアントへ通信する際のトランスポートプロトコル(UDP/TCP)が示される。また、要求電文を転送されたキャッシュサーバ部50が、要求電文に対する応答を送信元であるDNSクライアント10に送信することを可能にするために、クライアントアドレス情報を含んでいる。
その後、キャッシュサーバ部50は、受信した要求電文に基づいて、記憶部52に記憶されるリソースレコードを参照し、クエリ応答を決定する。そして、キャッシュサーバ部50は、要求電文と共に、送信元情報とINETソケットとを用いて、送信元であるDNSクライアント10にクエリ応答を送信する(図1の(4))。
[DNSサーバ装置による処理(実施例2)]
次に、図2と図5を用いて、DNSサーバ装置による処理を説明する。図5は、受信した要求電文の振分処理の流れを示すフローチャートである。
図5に示すように、権威サーバ部40の通信制御I/F部41が権威サーバ部40またはキャッシュサーバ部50に送信された要求電文を一括して受信すると(ステップS501肯定)、権威サーバ部40の要求電文振分部43aは、受信した要求電文を種別に応じて、権威サーバ部40が応答するか否かを判定する(ステップS502)。
そして、権威サーバ部40が応答する場合(ステップS502肯定)、権威サーバ部40の応答制御部43bは、受信された要求電文に基づいて、記憶部42に記憶されるリソースレコードを参照し、クエリ応答を決定する。そして、権威サーバ部40の通信制御I/F部41は、クエリ応答を、要求電文の送信元であるDNSクライアント10に送信する(ステップS509)。
一方、権威サーバ部40が応答しない場合(ステップS502否定)、権威サーバ部40の要求電文振分部43aは、要求電文受信時のINETソケットをキャッシュサーバ部50に受け渡し(ステップS503)、キャッシュサーバ部50は、受け渡されたINETソケットを受け入れ(ステップS504)。そして、権威サーバ部40は、受け入れた要求電文と共に、送信元情報をキャッシュサーバ部50に転送する(ステップS505)。
その後、キャッシュサーバ部50は、権威サーバ部40より送信された要求電文と送信元情報とを受信し(ステップS506)、受信した要求電文に基づいて、記憶部52に記憶されるリソースレコードを参照し、クエリ応答を決定する応答処理を行う(ステップS507)。そして、キャッシュサーバ部50は、受信した送信元情報とINETソケットとを用いて、決定したクエリ応答を送信元のDNSクライアント10に送信する(ステップS508)。
[実施例2による効果]
上述してきたように、実施例2によれば、要求電文と共に、前記要求電文の送信元情報を転送するので、例えば、キャッシュサーバ部50への要求電文が多い場合やキャッシュサーバ50の応答が再帰問合せにより時間を要する場合、要求電文に対する応答を権威サーバ部を介することなく、キャッシュサーバ部が直接応答を送信することができるなど、権威サーバ部は、応答電文を転送する負荷がなくなり、権威サーバ部の性能を向上させることが可能であると共に、キャッシュサーバ部は、権威サーバ部への転送遅延がなくなり、キャッシュサーバ部の性能を向上させることが可能である。
また、実施例2では、INETソケット受け渡し処理(ステップS503)の後に、要求電文と送信元情報転送処理(ステップS505)を行う場合を説明したが、本発明はこれに限定されるものではなく、INETソケット受け渡し処理(ステップS503)と要求電文と送信元情報転送処理(ステップS505)とも同時に実行してもよい。
ところで、本発明は、権威サーバ部からキャッシュサーバ部に要求電文を転送する場合、転送方式を選択して転送するようにしてもよい。なお、実施例3で説明する処理は、例えば、実施例2では、図5のINETソケット受け渡し処理(ステップS503)の前に実施する処理である。
そこで、実施例3では、転送方式を選択する処理の流れについて説明する。以下の実施例3では、実施例3に係るDNSサーバ装置における転送方式選択処理の流れを説明し、最後に実施例3による効果を説明する。図7は、権威サーバ部が受信した要求電文をキャッシュサーバ部に転送する場合に、要求電文の送信元の要求に応じて(例えば、要求電文を送信した送信元からのトランスポートプロトコルに応じて)、転送方式を選択する転送方式選択処理の流れを示すフローチャートである。
[DNSサーバ装置における転送方式選択処理の流れ(実施例3)]
図7に示すように、権威サーバ部は要求電文を受信し、自身が応答しないと判定すると(ステップS701否定)、要求電文を送信したDNSクライアントから受信した要求電文のトランスポートプロトコルがTCP(Transmission Control Protocol)か否かを判定する(ステップS702)。そして、トランスポートプロトコルがTCPである場合(ステップS702肯定)、権威サーバ部は、UNIX(登録商標)ドメインプロトコルのストリーム転送方式を採用して、受信した要求電文と送信元情報をキャッシュサーバ部に転送する(ステップS704)。
一方、トランスポートプロトコルがTCPでない場合(ステップS702否定)、権威サーバ部は、受信した要求電文のサイズが設定サイズ以上か否かを判定する(ステップS703)。例えば、要求電文のサイズが、UNIX(登録商標)ドメインプロトコルにおけるデータグラムソケット送信バッファのデフォルト値以上か否かを判定する。
そして、受信した要求電文のサイズが設定サイズ以上である場合(ステップS703肯定)、権威サーバ部は、UNIX(登録商標)ドメインプロトコルのストリーム転送方式を採用して、受信した要求電文と送信元情報をキャッシュサーバ部に転送する(ステップS704)。
一方、受信した要求電文のサイズが設定サイズ以上でない場合(ステップS703否定)、権威サーバ部は、UNIX(登録商標)ドメインプロトコルのデータグラム転送方式を採用して、受信した要求電文と送信元情報をキャッシュサーバ部に転送する(ステップS705)。
[実施例3による効果]
上述してきたように、実施例3によれば、キャッシュサーバ部に要求電文を転送する場合、ストリーム転送方式またはデータグラム転送方式を選択し、要求電文と送信元情報とを転送するので、例えば、キャッシュサーバ部に送信された要求電文に対して、要求電文の転送を高速に行うことができるなど、さらに応答性能を向上することが可能である。
また、実施例3によれば、要求電文の送信元の要求に応じて(例えば、要求電文を送信した送信元からのトランスポートプロトコルに応じて)、ストリーム転送方式またはデータグラム転送方式を選択し、要求電文と送信元情報とを転送するので、送信元の要求に応じて、転送方式を選択することできるなど、柔軟に対応することが可能である。
また、実施例3では、要求電文の送信元の要求に応じて、ストリーム転送方式またはデータグラム転送方式を選択する場合を説明したが、本発明はこれに限定されるものではなく、要求電文のデータのサイズに応じて、ストリーム転送方式またはデータグラム転送方式を選択するようにしてもよい。これにより、要求電文の転送判定を簡略化することで、要求電文の転送をさらに高速に行うことが可能である。
さて、これまで本発明の実施例1〜3では、権威サーバ部とキャッシュサーバ部と2つの機能で構成されるDNSサーバ装置について説明したが、本発明はこれに限定されるものではなく、原本管理サーバ部(ゾーンとリソースレコードの原本データを管理する部)と権威サーバ部とキャッシュサーバ部と3つの機能で構成されるDNSサーバ装置についても本発明を適用することが可能である。
そこで、実施例4では、原本管理サーバ部と権威サーバ部とキャッシュサーバ部と3つの機能で構成されるDNSサーバ装置について、本発明を適用した場合を説明する。以下の実施例4では、実施例4に係るDNSサーバ装置の全体構成および処理の流れを説明し、最後に実施例4による効果を説明する。
[DNSサーバ装置を含むDNSシステムの全体構成(実施例4)]
まず最初に、図8を用いて、実施例2に係るDNSサーバ装置を含むDNSシステムの全体構成を説明する。図8は、DNSサーバ装置を含むDNSシステムの全体構成図である。同図に示すように、かかるDNSシステムにおいて、複数のDNSサーバ装置80と複数のDNSクライアント10からインターネットに接続されている。また、DNSサーバ装置80は、原本管理サーバ部81と権威サーバ部82とキャッシュサーバ装置83とから構成されている。そして、DNSサーバ装置80の原本管理サーバ部81には、IPアドレス(192.168.1.1)とPort番号(50054番)が設定され、権威サーバ部82には、IPアドレス(192.168.1.1)とPort番号(53番)が設定され、キャッシュサーバ部83には、IPアドレス(192.168.1.1)とPort番号(50053番)が設定されている。ここでは、DNSサーバ装置30の待ち受けIPアドレスは192.168.1.1であり、待ち受けPort番号は53番となる。
このような構成のもと、DNSクライアント10から要求電文がIPアドレス(192.168.1.1)、Port番号(53番)であるDNSサーバ装置80に送信されると(図8の(1))、実際にIPアドレス(192.168.1.1)、Port番号(53番)が設定されているDNSサーバ装置80の権威サーバ部82(192.168.1.1)が一括して当該要求電文を受信する(図8の(2))。
そして、権威サーバ部82は、当該要求電文を種別に応じて、Port番号(50054番)が設定されている原本管理サーバ部81に振分けて転送する(図8の(3))。要求電文が転送された原本管理サーバ部81は、受信した要求電文に対するクエリ応答を権威サーバ部82に送信する(図8の(4))。続いて、権威サーバ部82は、原本管理サーバ部81から得られた要求電文に対するクエリ応答を、要求電文の送信元であるDNSクライアント10に送信する(図1の(5))。
[DNSサーバ装置による振分処理(実施例4)]
ここで、権威サーバ部82が原本管理サーバ部81に要求電文を転送する振分処理について、図8と図9を用いて説明する。図9は、受信した要求電文の振分処理の流れを示すフローチャートである。
図9に示すように、権威サーバ部82は、原本管理サーバ部81、権威サーバ部82またはキャッシュサーバ部83に送信された要求電文を一括して受信すると(ステップS901肯定)、権威サーバ部82は、受信した要求電文が権威サーバ部82が応答すべきOPCODEか否かを判定する(ステップS902)。
そして、権威サーバ部82が応答すべきOPCODEに限られる場合(ステップS902肯定)、権威サーバ部82は、原本データの読み出しまたは書込みがあるか否かを判定する(ステップS903)。原本データの読み出しまたは書込みがある場合(ステップS903肯定)、権威サーバ部82は、要求電文を原本管理サーバ部81へ転送する(ステップS904)。一方、原本データの読み出しまたは書込みがない場合(ステップS903否定)、権威サーバ部82は、要求電文に対して応答する(ステップS905)。
一方、上記ステップS902に戻り、受信した要求電文が権威サーバ部82が応答すべきOPCODEとは限らない場合(ステップS902否定)、権威サーバ部82は、要求電文のQNAMEが自身の管理するゾーンのデータであるか否かを判定する(ステップS906)。
そして、要求電文のQNAMEが自身の管理するゾーンのデータである場合(ステップS906肯定)、上記ステップS903以降の処理を行う。一方、要求電文のQNAMEが自身が管理するゾーンのデータでない場合(ステップS906否定)、権威サーバ部82は、要求電文のQTYPEが自身の応答すべきQTYPEか否かを判定する(ステップS907)。
そして、要求電文のQTYPEが自身の応答すべきQTYPEである場合(ステップS907肯定)、権威サーバ部82は、要求電文に対して応答する(ステップS905)。一方、要求電文のQTYPEが自身の応答すべきQTYPEでない場合(ステップS907否定)、権威サーバ部82は、要求電文をキャッシュサーバ部83に転送する(ステップS908)。
[実施例4による効果]
このように、実施例4によれば、実施例1と同様に、権威サーバ部40とキャッシュサーバ部50の待ち受けIPアドレスを、筐体として一本化することが可能であると共に、権威サーバ部40が管理するゾーンに対しては、権威サーバとして直接応答することが可能であり、クエリ応答を効率的に行うことが可能と、権威サーバ部40として直接応答することを優先することができ、権威サーバ部40が管理するゾーンに対しては、より確実かつ高速に権威サーバ部40として直接応答することが可能であるという効果が得られる。
また、実施例1から3で説明したことは、実施例4においても適用することが可能である。例えば、要求電文の転送先(例えば、原本管理サーバ部)が直接クエリ応答を送信元のDNSクライアントに送信することが可能であり、送信元からのトランスポートプロトコルおよび要求電文サイズや、要求電文の送信元の要求、または、要求電文のデータのサイズに応じて、転送方式を選択することなどが可能である。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例5として、本発明に含まれる他の実施例について説明する。
また、実施例1〜4では、権威サーバ部が、要求電文を一括して受信し、受信された要求電文を種別に応じて、振分けて転送し、得られた要求電文に対する応答を、要求電文の送信元に送信する場合を説明したが、本発明はこれに限定されるものではなく、権威サーバ部以外の機能部(例えば、当該機能を備えた機能部として独立したプロセスとする)が行ってもよい。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図2に示したDNSサーバ装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、DNSサーバ装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、DNSサーバ装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
なお、上記の実施例では、本発明を実現するDNSサーバ装置を機能面から説明したが、DNSサーバ装置の各機能はパーソナルコンピュータやワークステーションなどのコンピュータにプログラムを実行させることによって実現することもできる。すなわち、上記の実施例で説明した各種の処理手順は、あらかじめ用意されたプログラムをコンピュータ上で実行することによって実現することができる。そして、これらのプログラムは、インターネットなどのネットワークを介して配布することができる。さらに、これらのプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。つまり、例を挙げれば、実施例に示したような要求電文処理プログラムを格納したCD−ROM(装置ごとに別個のCD−ROMであってもよい)を配布し、このCD−ROMに格納されたプログラムを各コンピュータが読み出して実行するようにしてもよい。
以上のように、本発明に係るDNSサーバ装置、要求電文処理方法および要求電文処理プログラムは、権威サーバの機能を発揮する権威サーバ部とキャッシュサーバの機能を発揮するキャッシュサーバ部とから構成されるDNSサーバ装置に有用であり、特に、権威サーバ部とキャッシュサーバ部の待ち受けIPアドレスを、筐体として一本化することが可能であると共に、権威サーバ部が管理するゾーンに対しては、権威サーバとして直接応答することが可能であり、クエリ応答を効率的に行うことが可能であることに適する。
実施例1に係るDNSサーバ装置を含むDNSシステムの全体構成を示すシステム構成図である。
実施例1に係るDNSサーバ装置の構成を示すブロック図である。
実施例1に係るDNSサーバ装置による処理の流れを示すフローチャートである。
実施例2に係るDNSサーバ装置を含むDNSシステムの全体構成を示すDNSシステム構成図である。
実施例2に係るDNSサーバ装置による処理の流れを示すフローチャートである。
実施例2に係る転送フォーマットの例を示す図である。
実施例3に係る転送方式選択処理の流れを示すフローチャートである。
実施例4に係るDNSサーバ装置を含むDNSシステムの全体構成を示すシステム構成図である。
実施例4に係る権威サーバ装置の振分処理の流れを示すフローチャートである。
従来技術に係るキャッシュサーバ部の要求電文応答処理を説明するための図である。
従来技術に係る権威サーバ部の要求電文応答処理を説明するための図である。
符号の説明
10 DNSクライアント
30 DNSサーバ装置
40 権威サーバ部
41 通信制御I/F部
42 記憶部
43 制御部
43a 要求電文振分部
43b 応答制御部
50 キャッシュサーバ部
51 通信制御I/F部
52 記憶部
53 制御部
53a 応答制御部
80 DNSサーバ装置
81 原本管理サーバ部
82 権威サーバ部
83 キャッシュサーバ部
100 DNSクライアント
110 DNSサーバ装置
111 権威サーバ部
112 キャッシュサーバ部