(57)【特許請求の範囲】
【請求項１】
端末とＤＮＳメッセージを交信するＤＮＳプロキシサーバであって、
端末からＩＰｖ６のＤＮＳ問い合わせメッセージＡＡＡＡ ｒｅｑｕｅｓｔを受信した時、該問い合わせメッセージと同一の問い合わせドメイン名をもつＩＰｖ４のＤＮＳ問い合わせメッセージＡ ｒｅｑｕｅｓｔを生成し、上記ＡＡＡＡ ｒｅｑｕｅｓｔとＡ ｒｅｑｕｅｓｔとをインターネット内の特定のＤＮＳコンテンツサーバに送信する要求処理部と、
上記ＡＡＡＡ ｒｅｑｕｅｓｔに対するＩＰｖ６のＤＮＳ応答メッセージとして、上記ＤＮＳコンテンツサーバから、問い合わせドメイン名がエラーであることを示すＮＸＤＯＭＡＩＮを受信した場合、上記ＤＮＳコンテンツサーバから受信する上記Ａ ｒｅｑｕｅｓｔに対するＩＰｖ４のＤＮＳ応答メッセージの内容に応じて、上記ＮＸＤＯＭＡＩＮとは異なる別のＤＮＳ応答メッセージを生成し、これを上記端末に送信する応答処理部とを備えたことを特徴とするＤＮＳプロキシサーバ。
【請求項２】
前記ＩＰｖ４のＤＮＳ応答メッセージとして、前記問い合わせドメイン名と対応するＩＰｖ４アドレスを示すＡ ｒｅｐｌｙを受信した場合、前記応答処理部が、前記ＡＡＡＡ ｒｅｑｕｅｓｔに対するＩＰｖ６のＤＮＳ応答メッセージとして、前記問い合わせドメイン名にはＩＰｖ６アドレスがないことを示すメッセージＡＡＡＡ ｒｅｐｌｙを生成し、前記端末に送信することを特徴とする請求項１に記載のＤＮＳプロキシサーバ。
【請求項３】
前記ＤＮＳコンテンツサーバから、前記ＩＰｖ４のＤＮＳ応答メッセージよりも先に前記ＮＸＤＯＭＡＩＮを受信した場合、前記応答処理部が、上記ＮＸＤＯＭＡＩＮを保持した状態で、前記ＤＮＳコンテンツサーバからのＩＰｖ４のＤＮＳ応答メッセージの受信を待つことを特徴とする請求項２に記載のＤＮＳプロキシサーバ。
【請求項４】
前記ＮＸＤＯＭＡＩＮを受信した時、前記応答処理部が、ＩＰｖ４のＤＮＳ応答メッセージの待ち時間を制限するためのタイマをスタートし、ＩＰｖ４のＤＮＳ応答メッセージを受信することなく上記タイマがタイムアウトした時、前記ＮＸＤＯＭＡＩＮを前記端末に送信することを特徴とする請求項３に記載のＤＮＳプロキシサーバ。
【請求項５】
前記要求処理部が、ＡＡＡＡ ｒｅｑｕｅｓｔまたはＡ ｒｅｑｕｅｓｔの送信時に、前記ＤＮＳコンテンツサーバの応答時間を計測するためのタイマをスタートし、
前記ＮＸＤＯＭＡＩＮを受信した時、前記応答処理部が、上記計測タイマが示す応答時間に応じて、前記ＩＰｖ４のＤＮＳ応答メッセージの待ち時間を決定することを特徴とする請求項４に記載のＤＮＳプロキシサーバ。
【請求項６】
前記ＤＮＳコンテンツサーバから、ＩＰｖ６のＤＮＳ応答メッセージよりも先に前記Ａ ｒｅｐｌｙを受信した場合、前記応答処理部が、ＩＰｖ６のＤＮＳ応答メッセージ待ち時間を制限するためのタイマをスタートし、該タイマがタイムアウトする前に前記ＮＸＤＯＭＡＩＮを受信した時、前記問い合わせドメイン名にはＩＰｖ６アドレスがないことを示すメッセージＡＡＡＡ ｒｅｐｌｙを生成し、前記端末に送信することを特徴とする請求項２に記載のＤＮＳプロキシサーバ。
【請求項７】
前記ＤＮＳコンテンツサーバから、ＩＰｖ６のＤＮＳ応答メッセージよりも先に前記Ａ ｒｅｐｌｙを受信した場合、前記応答処理部が、ＩＰｖ６のＤＮＳ応答メッセージ待ち時間を制限するためのタイマをスタートし、ＩＰｖ６のＤＮＳ応答メッセージを受信することなく上記タイマがタイムアウトした時、前記問い合わせドメイン名にはＩＰｖ６アドレスがないことを示すメッセージＡＡＡＡ ｒｅｐｌｙを生成し、前記端末に送信することを特徴とする請求項２に記載のＤＮＳプロキシサーバ。
【請求項８】
前記要求処理部が、ＡＡＡＡ ｒｅｑｕｅｓｔまたはＡ ｒｅｑｕｅｓｔの送信時に、前記ＤＮＳコンテンツサーバの応答時間を計測するためのタイマをスタートし、
前記Ａ ｒｅｐｌｙを受信した時、前記応答処理部が、上記計測タイマが示す応答時間に応じて、前記ＩＰｖ６のＤＮＳ応答メッセージの待ち時間を決定することを特徴とする請求項６または請求項７に記載のＤＮＳプロキシサーバ。
【請求項９】
前記要求処理部が、ＡＡＡＡ ｒｅｑｕｅｓｔまたはＡ ｒｅｑｕｅｓｔの送信時に、前記ＤＮＳコンテンツサーバの応答時間を計測するためのタイマをスタートし、
前記ＤＮＳコンテンツサーバからＩＰｖ６のＤＮＳ応答メッセージもＩＰｖ４のＤＮＳ応答メッセージも受信することなく、前記応答時間計測用のタイマが予め決められたタイムアウト時間に達した時、前記応答処理部が、ＩＰｖ６のＤＮＳ応答メッセージとして、前記ＡＡＡＡ ｒｅｑｕｅｓｔの問い合わせドメイン名がエラーであることを示すＮＸＤＯＭＡＩＮを生成し、これを前記端末に送信することを特徴とする請求項１〜請求項８の何れかに記載のＤＮＳプロキシサーバ。
【請求項１０】
前記ＡＡＡＡ ｒｅｑｕｅｓｔに対するＩＰｖ６のＤＮＳ応答メッセージとして、前記ＤＮＳコンテンツサーバから、前記問い合わせドメイン名と対応するＩＰｖ６アドレスを示すＡＡＡＡ ｒｅｐｌｙを受信した場合、前記応答処理部が、該ＡＡＡＡ ｒｅｐｌｙを前記端末に送信することを特徴とする請求項１〜請求項９の何れかに記載にＤＮＳプロキシサーバ。
【請求項１１】
ＤＮＳコンテンツサーバから受信したＡＡＡＡ ｒｅｐｌｙおよびＡ ｒｅｐｌｙが示す問い合わせドメイン名とＩＰアドレスとの関係を記憶するキャッシュメモリを備え、
端末からＡＡＡＡ ｒｅｑｕｅｓｔまたはＡ ｒｅｑｕｅｓｔを受信した時、前記要求処理部が、上記キャッシュメモリを参照し、受信したｒｅｑｕｅｓｔが示す問い合わせドメイン名と対応するＩＰアドレスが上記キャッシュメモリに存在した場合は、該ＩＰアドレスを示すＤＮＳ応答メッセージを生成して、要求元の端末に送信することを特徴とする請求項１〜請求項９の何れかに記載にＤＮＳプロキシサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＮＳサーバ装置に関し、更に詳しくは、端末からのホスト名解決要求を受信してＤＮＳコンテンツサーバをアクセスするＤＮＳプロキシサーバに関する。
【背景技術】
【０００２】
ＩＰ（Internet Protocol）網においては、通信相手装置のドメイン名と対応するＩＰアドレスを取得するために、ＤＮＳ（Domain Name System）が広く用いられている。ＤＮＳは、二種類のサーバの組み合わせによって運用される。そのうちの一つは、ドメイン名とＩＰアドレスとの対応表を保持し、ホスト名解決要求に応答してＩＰアドレスを回答するサーバであり、このサーバは、ＤＮＳコンテンツサーバ、もしくは権威ＤＮＳサーバなどと呼ばれている。他方は、端末からホスト名解決要求を受け取って、このホスト名解決要求を他の適切なサーバに転送するサーバであり、ＤＮＳプロキシサーバまたはＤＮＳキャッシュサーバと呼ばれている。
【０００３】
ＩＰアドレスに従ってパケットを転送するインターネット（Internet）には、それぞれが異なるドメインのＩＰアドレスを管理する複数のＤＮＳコンテンツサーバが存在する。これらのＤＮＳコンテンツサーバは、ツリー構造化され、階層的なデータベースを構築している。各ＤＮＳコンテンツサーバは、一般に、ドメイン名を管理する主体によって設置される。
【０００４】
一方、ＤＮＳプロキシサーバとＤＮＳキャッシュサーバは、端末に代わって、ＤＮＳコンテンツサーバ・ツリーから、ホスト名解決要求で指定された問い合わせドメイン名をもつ特定のＤＮＳコンテンツサーバを検索し、この特定ＤＮＳコンテンツサーバにホスト名解決要求を送信する。これらのサーバは、ＤＮＳコンテンツサーバから目的ＩＰアドレスを含むＤＮＳ応答メッセージを受信すると、これを要求元の端末に転送する。
【０００５】
ＤＮＳキャッシュサーバは、ドメイン名とＩＰアドレスの対応関係を記憶するキャッシュメモリを備えており、ホスト名解決要求で求められた目的ＩＰアドレスがキャッシュメモリに存在していれば、これを要求元端末に回答する。ＤＮＳプロキシサーバとＤＮＳキャッシュサーバは、端末に対して直接ＩＰネットワークアクセスサービスを提供する通信事業者などの組織によって設置されることが多い。通常、端末が指定するＤＮＳサーバは、ＤＮＳプロキシサーバまたはＤＮＳキャッシュサーバを意味している。以下、本明細書では、ＤＮＳキャッシュサーバとＤＮＳプロキシサーバをＤＮＳプロキシサーバで代表させる。
【０００６】
ところで、ＩＰ網には、アドレス体系の異なるＩＰｖ４プロトコルとＩＰｖ６プロトコルとを選択的に使用できる「ＩＰｖ４／ｖ６デュアルスタック」という方式が存在する。ＩＰｖ４／ｖ６デュアルスタック方式のネットワークに所属する各端末は、通信相手装置のＩＰアドレスを取得する場合、通常は、ＩＰｖ４ホスト名解決要求メッセージ（以下、「Ａ ｑｕｅｒｙ」と言う）よりも先に、ＩＰｖ６ホスト名解決要求メッセージ（以下、「ＡＡＡＡ ｑｕｅｒｙ」と言う）を発行する。ＡＡＡＡ ｑｕｅｒｙに対して、指定ホスト名にはＩＰｖ６アドレスが割り当てられていないという応答メッセージが帰ってきた場合、要求元端末は、Ａ ｑｕｅｒｙを発行し、指定ホスト名に対応するＩＰｖ４アドレスを取得する。すなわち、ＩＰｖ４／ｖ６デュアルスタック方式では、状況に応じて、ＩＰｖ６アドレスとＩＰｖ４アドレスとを使い分けることができる。
【０００７】
然るに、ＲＦＣ４０７４（非特許文献１）には、ＩＰｖ４／ｖ６デュアルスタック方式のネットワーク運用における問題点として、ＩＰｖ６アドレスを持たないホスト名を指定したＡＡＡＡ ｑｕｅｒｙに対して、ＤＮＳコンテンツサーバが間違った挙動をとる可能性があり、結果的に、目的ＩＰアドレスの取得に失敗したり、要求元端末でのＩＰ網アクセス処理に大幅な遅延が発生することが指摘されている。
【０００８】
すなわち、ＤＮＳコンテンツサーバでＡＡＡＡ ｑｕｅｒｙが無視されると、回答待ちとなっている要求元端末では、予め決められた待ち時間がタイムアウトとなる迄は、Ａ ｑｕｅｒｙを発行できないため、ＩＰ網のアクセス処理が大幅に遅れる。また、ＡＡＡＡ ｑｕｅｒｙに対して、「問い合わせドメイン名にはＩＰｖ６アドレスデータ（ＡＡＡＡデータ）が存在しない」と回答すべきところを、ＤＮＳコンテンツサーバが、ＡＡＡＡ ｑｕｅｒｙで指定された問い合わせドメイン名がインターネットに存在しないことを示すＤＮＳ応答メッセージ（以下、ＮＸＤＯＭＡＩＮと言う）を誤って返送した場合、要求元端末では、ＮＸＤＯＭＡＩＮを受信した時点でＩＰ網アクセス処理が打ち切られる。この場合、要求元端末は、Ａ ｑｕｅｒｙによるＩＰｖ４アドレスの取得もできないため、相手装置との通信が全く不可能となると言う問題がある。
【０００９】
この種の問題は、本来、ホスト名解決要求を処理するＤＮＳコンテンツサーバ側で解決すべき事項であるが、ＤＮＳコンテンツサーバが互いに独立した管理主体によって分散管理されているインターネットにおいては、上記問題の解決を全ての管理主体に強制することは不可能に近い。そのため、ＩＰｖ６ Ｆｉｘの第三章（非特許文献２）には、この種の問題を回避する１つの方法として、端末側ソフトウェアの改造方法が提案されている。
【００１０】
【非特許文献１】ＲＦＣ４０７４：Common Misbehavior Against DNS Queries for IPv6 Addresses
【非特許文献２】ＩＰｖ６ Ｆｉｘ：http://v6fix.net/docs/v6fix.html.ja、第三章
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、インターネットユーザが使用する端末の殆どは、例えば、Ｗｉｎｄｏｗｓ（登録商標）をはじめとする専売ソフト（Proprietary Software）を搭載しているため、上述した端末ソフトウェアの改造を前提とする解決策は、端末ユーザにとって実施困難となる場合が多い。
【００１２】
本発明の目的は、ＡＡＡＡ ｑｕｅｒｙに対してＤＮＳコンテンツサーバの間違った応答メッセージを発行した場合でも、ユーザ端末のソフトウェアに変更を加えることなく、端末がＩＰｖ４アドレスを取得できるようにしたＤＮＳプロキシサーバを提供することにある。
本発明の他の目的は、端末におけるＡＡＡＡ ｑｕｅｒｙに対する応答待ち時間を短縮可能なＤＮＳプロキシサーバを提供することにある。
【課題を解決するための手段】
【００１３】
本発明は、ＩＰｖ４のホスト名解決要求メッセージ（Ａ ｑｕｅｒｙ）に対しては、インターネット内の殆どのＤＮＳコンテンツサーバが正常に応答できることに着目して提案されたものであり、端末からＩＰｖ６のホスト名解決要求メッセージ（ＡＡＡＡ ｑｕｅｒｙ）を受信した時、ＤＮＳプロキシサーバが、プローブとして、ＡＡＡＡ ｑｕｅｒｙと同じ問い合わせホスト名をもつＡ ｑｕｅｒｙを生成し、これをＡＡＡＡ ｑｕｅｒｙと共にＤＮＳコンテンツサーバに送信することを特徴とする。また、本発明のＤＮＳプロキシサーバは、ＤＮＳコンテンツサーバから受信するＩＰｖ６のＤＮＳ応答メッセージ（ＡＡＡＡ Ｒｅｐｌｙ）とＩＰｖ４のＤＮＳ応答メッセージ（Ａ Ｒｅｐｌｙ）の内容から、端末に返信すべきＩＰｖ６のＤＮＳ応答メッセージを決定することを特徴とする。
【００１４】
更に詳述すると、本発明のＤＮＳプロキシサーバは、
端末からＩＰｖ６のＤＮＳ問い合わせメッセージＡＡＡＡ ｒｅｑｕｅｓｔを受信した時、該問い合わせメッセージと同一の問い合わせドメイン名をもつＩＰｖ４のＤＮＳ問い合わせメッセージＡ ｒｅｑｕｅｓｔを生成し、上記ＡＡＡＡ ｒｅｑｕｅｓｔとＡ ｒｅｑｕｅｓｔとをインターネット内の特定のＤＮＳコンテンツサーバに送信する要求処理部と、
上記ＡＡＡＡ ｒｅｑｕｅｓｔに対するＩＰｖ６のＤＮＳ応答メッセージとして、上記ＤＮＳコンテンツサーバから、問い合わせドメイン名がエラーであることを示すＮＸＤＯＭＡＩＮを受信した場合、上記ＤＮＳコンテンツサーバから受信する上記Ａ ｒｅｑｕｅｓｔに対するＩＰｖ４のＤＮＳ応答メッセージの内容に応じて、上記ＮＸＤＯＭＡＩＮとは異なる別のＤＮＳ応答メッセージを生成し、これを上記端末に送信する応答処理部とを備えたことを特徴とする。
【００１５】
更に具体的に言うと、本発明のＤＮＳプロキシサーバは、ＩＰｖ６のＤＮＳ応答メッセージとしてＮＸＤＯＭＡＩＮを受信した場合であっても、ＩＰｖ４のＤＮＳ応答メッセージとして、問い合わせドメイン名と対応するＩＰｖ４アドレスを示す正常なＡ ｒｅｐｌｙを受信した時は、上記応答処理部が、問い合わせドメイン名にはＩＰｖ６アドレスがないことを示すメッセージＡＡＡＡ ｒｅｐｌｙを生成し、これを要求元端末に送信することを特徴とする。
【００１６】
例えば、ＤＮＳコンテンツサーバから、ＩＰｖ４のＤＮＳ応答メッセージよりも先にＮＸＤＯＭＡＩＮを受信した場合、本発明のＤＮＳプロキシサーバでは、応答処理部が、上記ＮＸＤＯＭＡＩＮを保持した状態で、ＤＮＳコンテンツサーバからのＩＰｖ４のＤＮＳ応答メッセージの受信を待つ。本発明の実施例では、上記ＮＸＤＯＭＡＩＮを受信した時、応答処理部は、ＩＰｖ４のＤＮＳ応答メッセージの待ち時間を制限するためのタイマをスタートし、ＩＰｖ４のＤＮＳ応答メッセージを受信することなく上記タイマがタイムアウトした場合、タイムアウト時点で、上記ＮＸＤＯＭＡＩＮを要求元端末に送信する。
【００１７】
本発明の好ましい実施例では、ＡＡＡＡ ｒｅｑｕｅｓｔまたはＡ ｒｅｑｕｅｓｔの送信時に、ＤＮＳプロキシサーバの要求処理部が、ＤＮＳコンテンツサーバの応答時間を計測するためのタイマをスタートし、ＮＸＤＯＭＡＩＮを先に受信した時、応答処理部が、上記計測タイマが示す応答時間に応じて、ＩＰｖ４のＤＮＳ応答メッセージの待ち時間を決定する。ＤＮＳコンテンツサーバからＩＰｖ６のＤＮＳ応答メッセージとＩＰｖ４のＤＮＳ応答メッセージの何れも受信することなく、上記応答時間計測用のタイマが予め決められたタイムアウト時間に達した場合、ＤＮＳプロキシサーバの応答処理部は、ＩＰｖ６のＤＮＳ応答メッセージとして、ＡＡＡＡ ｒｅｑｕｅｓｔの問い合わせドメイン名がエラーであることを示すＮＸＤＯＭＡＩＮを生成し、これを要求元端末に送信する。
【００１８】
例えば、ＤＮＳコンテンツサーバから、ＩＰｖ６のＤＮＳ応答メッセージよりも先にＡ ｒｅｐｌｙを受信した場合、ＤＮＳプロキシサーバの応答処理部は、ＩＰｖ６のＤＮＳ応答メッセージ待ち時間を制限するためのタイマをスタートし、該タイマがタイムアウトする前にＮＸＤＯＭＡＩＮを受信した時、問い合わせドメイン名にはＩＰｖ６アドレスがないことを示すメッセージＡＡＡＡ ｒｅｐｌｙを生成し、これを要求元端末に送信する。
ＩＰｖ６のＤＮＳ応答メッセージを受信することなく上記タイマがタイムアウトした時、応答処理部は、問い合わせドメイン名にはＩＰｖ６アドレスがないことを示すメッセージＡＡＡＡ ｒｅｐｌｙを生成し、これを要求元端末に送信する。ＩＰｖ６のＤＮＳ応答メッセージ待ち時間も、ＤＮＳコンテンツサーバの応答時間計測タイマが示す応答時間に応じて決定できる。
【００１９】
ＤＮＳコンテンツサーバからＩＰｖ６のＤＮＳ応答メッセージもＩＰｖ４のＤＮＳ応答メッセージを受信することなく、応答時間計測用のタイマが予め決められたタイムアウト時間に達した場合、ＤＮＳプロキシサーバの応答処理部は、ＩＰｖ６のＤＮＳ応答メッセージとして、ＡＡＡＡ ｒｅｑｕｅｓｔの問い合わせドメイン名がエラーであることを示すＮＸＤＯＭＡＩＮを生成し、これを要求元端末に送信する。
ＡＡＡＡ ｒｅｑｕｅｓｔに対するＩＰｖ６のＤＮＳ応答メッセージとして、ＤＮＳコンテンツサーバから、問い合わせドメイン名と対応するＩＰｖ６アドレスを示す正常なＡＡＡＡ ｒｅｐｌｙを受信した場合、ＤＮＳプロキシサーバの応答処理部は、該ＡＡＡＡ ｒｅｐｌｙを要求元端末に送信する。
【００２０】
尚、本発明のＤＮＳプロキシサーバが、ＤＮＳコンテンツサーバから受信したＡＡＡＡ ｒｅｐｌｙおよびＡ ｒｅｐｌｙが示す問い合わせドメイン名とＩＰアドレスとの関係を記憶するキャッシュメモリを備えたＤＮＳキャッシュサーバの場合、端末からＡＡＡＡ ｒｅｑｕｅｓｔまたはＡ ｒｅｑｕｅｓｔを受信した時、前記要求処理部が、上記キャッシュメモリを参照し、受信したｒｅｑｕｅｓｔが示す問い合わせドメイン名と対応するＩＰアドレスが上記キャッシュメモリに存在した場合は、該ＩＰアドレスを示すＤＮＳ応答メッセージを生成して、これを要求元の端末に送信することができる。
【発明の効果】
【００２１】
本発明によれば、ＩＰｖ４／ｖ６デュアルスタックを利用するユーザ端末のソフトウェアに変更を加えることなく、ＤＮＳコンテンツサーバの間違った挙動に対処できる。また、本発明をＤＮＳキャッシュサーバに適用した場合、ＤＮＳキャッシュサーバが、ＡＡＡＡ ｒｅｑｕｅｓｔの転送時にＡ ｒｅｑｕｅｓｔも送信することによって、ＤＮＳコンテンツサーバからＩＰｖ４アドレスを先行取得することができるため、端末からＡ ｑｕｅｒｙを受信した時、キャッシュメモリから読み出したＩＰｖ４アドレスを迅速に回答することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の実施例について詳細に説明する。
図１は、本発明のＤＮＳプロキシサーバが適用されるネットワークを模式的に示した図である。ここで、４０は、ユーザ端末１が所属するＩＰｖ４／ｖ６デュアルスタック対応のＬＡＮ、４１は、ＤＮＳプロキシサーバ１０が所属するＩＰｖ４／ｖ６デュアルスタック対応のアクセス網である。ＤＮＳプロキシサーバ１０は、境界ルータ２０Ａを介して上記ＬＡＮ４０に接続され、別の境界ルータ２０Ｂを介して、インターネット４２に接続されている。アクセス網４１は、具体的には、企業基幹網またはプロバイダ網であり、端末１は、予め契約したプロバイダのＤＮＳプロキシサーバ１０を介して、インターネット４２内のホスト装置（サーバ、その他のコンピュータ）と通信する。
【００２３】
インターネット４２は、実際には、多様な管理主体によって管理される多数のドメイン網４３（４３Ａ、４３Ｂ、４３Ｃ、・・・）の集合体である。図１では、ドメイン網４３Ａと４３ＢはＩＰｖ４アドレス網、ドメイン網４３Ｃと４３Ｄは、ＩＰｖ４／ＩＰｖ６デュアルアドレス網、ドメイン網４３ＥはＩＰｖ６アドレス網となっている。管理主体毎に個別のＤＮＳコンテンツサーバ３０（３０Ａ、３０Ｂ、３０Ｃ、・・・）が存在しており、各ＤＮＳコンテンツサーバ３０は、管理下にあるドメイン網４３内のホスト装置毎に、ホスト名とＩＰアドレスとの対応関係を管理テーブルに記憶している。
【００２４】
インターネット４２内の複数のＤＮＳコンテンツサーバ３０は、体系化されてＤＮＳツリーを構築している。ＤＮＳプロキシサーバ１０は、ルートサーバと呼ばれる最上位のコンテンツサーバ３０Ａから順に検索することによって、インターネット上の全ホスト名のＩＰアドレスを解決することが可能となっている。
【００２５】
従来技術で問題としたＡＡＡＡ ｑｕｅｒｙに誤った挙動をする可能性のあるサーバは、例えば、ＩＰｖ４アドレスのみが適用可能なドメイン網４３Ｂを管理するコンテンツサーバ３０Ｂである。ＤＮＳコンテンツサーバ３０Ｂは、例えば、ドメイン網４３Ｂ内のホスト２に関して、ホスト名「host.example.co.jp」とＩＰｖ４アドレス「1.1.1.1」との対応関係は記憶しているが、ホスト２のＩＰｖ６アドレスは保持していない。
【００２６】
図１では、説明の都合上、ＤＮＳプロキシサーバ１０が独立したサーバとして図示されているが、ＤＮＳプロキシサーバ１０の機能は、境界ルータ２０Ａまたは２０Ｂ上に実装してもよい。また、ＤＮＳプロキシサーバ１０は、必ずしもアクセス網４１内に位置する必要はなく、端末１およびＤＮＳコンテンツサーバ３０と通信可能な範囲でどこに配置されてもよい。端末１は、ＤＮＳコンテンツサーバ３０をアクセスする際に、ＤＮＳプロキシサーバ１０以外の別のＤＮＳサーバを経由してもよい。
【００２７】
図２は、本発明のＤＮＳプロキシサーバ１０の機能を示す通信シーケンスの第１の例を示す。
ＩＰｖ４／ＩＰｖ６デュアルスタック網４０に所属した端末１は、通信相手となるインターネット４２内の特定ホストのＩＰアドレスを取得したい場合、ＩＰｖ４のホスト名解決要求メッセージ（Ａ ｑｕｅｒｙ）に先立って、ＩＰｖ６のホスト名解決要求メッセージ（ＡＡＡＡ ｑｕｅｒｙ）をＤＮＳプロキシサーバ１０に送信する（ＳＱ１）。後述するように、ＡＡＡＡ ｑｕｅｒｙはヘッダ部と問い合わせ部とからなり、問い合わせ部に、アドレス解決対象となる特定のホスト名（問い合わせホスト名）が含まれている。
【００２８】
本発明の特徴は、上記ＡＡＡＡ ｑｕｅｒｙを受信したＤＮＳプロキシサーバ１０が、受信したＡＡＡＡ ｑｕｅｒｙから、同じ問い合わせホスト名をもつＡ ｑｕｅｒｙを自動的に生成し（Ｓ１０）、ＤＮＳコンテンツサーバ３０（例えば、３０Ｂ）に、ＡＡＡＡ ｑｕｅｒｙとＡ ｑｕｅｒｙとを略同時に送信する（ＳＱ２、ＳＱ３）ことにある。これらのｑｕｅｒｙを送信したＤＮＳプロキシサーバ１０は、ＤＮＳコンテンツサーバ３０からの最初の応答を受信する迄の所要時間（応答時間）Ｔ１の計測を開始する（Ｓ１１）。
【００２９】
尚、実際の応用において、ＤＮＳプロキシサーバ１０は、これらのｑｕｅｒｙの送信（ＳＱ２、ＳＱ３）に先立って、ｑｕｅｒｙの宛先となるＤＮＳコンテンツサーバ３０（例えば、３０Ｂ）を特定するためのＤＮＳツリー検索などの処理を実行するが、これらの処理シーケンスは、ＤＮＳプロキシサーバが一般的に実行するものであり、図２では簡単化のために省略してある。
【００３０】
また、ＤＮＳプロキシサーバ１０が、キャッシュ機能を備えたＤＮＳキャッシュサーバの場合、ＤＮＳキャッシュサーバは、ＡＡＡＡ ｑｕｅｒｙの受信時に、キャッシュメモリから問い合わせホスト名と対応するＩＰｖ６アドレスを検索し、もし、目的のＩＰアドレスが存在していれば、ＡＡＡＡ ｑｕｅｒｙをＤＮＳコンテンツサーバに転送することなく、自分でＤＮＳ応答メッセージを要求元端末１に送信することになる。ＤＮＳキャッシュサーバの場合、以下に説明する通信シーケンスは、キャッシュメモリに目的ＩＰｖ６アドレスが存在していなかった場合の通信シーケンスに相当する。
【００３１】
ここでは、ＤＮＳコンテンツサーバ３０が、Ａ ｑｕｅｒｙに応答して、問い合わせホスト名と対応するＩＰｖ４アドレスを示すＡ ｒｅｐｌｙを返信（ＳＱ４）した後、ＡＡＡＡ ｑｕｅｒｙに対する応答として、問い合わせホスト名はインターネットに存在していないことを示すＮＸＤＯＭＡＩＮ（ＡＡＡＡ）を返信（ＳＱ５）した場合のシーケンスを示している。
【００３２】
ＤＮＳプロキシサーバ１０は、ＤＮＳコンテンツサーバ３０からＡ ｒｅｐｌｙを受信すると、Ｔ２タイマをスタートし（Ｓ１２）、ＡＡＡＡ ｑｕｅｒｙに対するＤＮＳコンテンツサーバ３０からのＩＰｖ６ＤＮＳ応答メッセージを待つ。Ｔ２タイマは、ＩＰｖ６ＤＮＳ応答メッセージの待ち時間を制限するためのものであり、スタートしてから時間Ｔ２が経過した時点で、タイムアウトとなる。
【００３３】
タイムアウト時間Ｔ２の値は、固定値でもよいが、ＡＡＡＡ ｑｕｅｒｙまたはＡ ｑｕｅｒｙを送信してから最初の応答（Ａ ｒｅｐｌｙ）が届くまでの時間Ｔ１の値に応じて、予め用意されたＴ１の一次関数（Ｔ２＝α・Ｔ１）から算出してもよい。係数αは、整数値または小数値をもつ任意の値である。
【００３４】
ここで、ＤＮＳコンテンツサーバ３０が返信したＮＸＤＯＭＡＩＮ（ＡＡＡＡ）が、Ｔ２タイマがタイムアウト（Ｓ１５）となる前に、ＤＮＳプロキシサーバ１０に届いたと仮定する。この場合、ＤＮＳプロキシサーバ１０は、上記ＮＸＤＯＭＡＩＮ（ＡＡＡＡ）が、既に受信したＡ ｒｅｐｌｙと矛盾しており、ＮＸＤＯＭＡＩＮ（ＡＡＡＡ）は、ＤＮＳコンテンツサーバ３０が誤って発行したものと判断する。そこで、ＤＮＳプロキシサーバ１０は、受信したＮＸＤＯＭＡＩＮの内容に基づいて、指定ホスト名にはＩＰｖ６アドレスが無いことを示すＡＡＡＡ ｒｅｐｌｙ（Ｎｏアドレス）を生成し（Ｓ１４）、これを要求元の端末１に送信する（ＳＱ１０）。
【００３５】
上記ＡＡＡＡ ｒｅｐｌｙ（Ｎｏアドレス）を受信した端末１は、通信相手となる特定ホストにはＩＰｖ６アドレスを適用できないと判断し、ＩＰｖ４アドレスを取得するためにＩＰｖ４のホスト名解決要求メッセージＡ ｑｕｅｒｙを送信する（ＳＱ２１）。
ＤＮＳプロキシサーバ１０は、上記Ａ ｑｕｅｒｙを受信すると、これをＤＮＳコンテンツサーバ３０に転送する（ＳＱ２２）。ＤＮＳコンテンツサーバ３０は、受信したＡ ｑｕｅｒｙに応答して、指定ホスト名と対応するＩＰｖ４アドレスを示すＡ ｒｅｐｌｙを返信する（ＳＱ２３）。ＤＮＳプロキシサーバ１０は、上記Ａ ｒｅｐｌｙを端末１に転送する（ＳＱ２４）。
【００３６】
上記通信シーケンスにより、端末１は、ＤＮＳコンテンツサーバ３０が誤って発行したＮＸＤＯＭＡＩＮによって、インターネットへの接続処理を打ち切られることなく、ＩＰｖ４アドレスを適用して、通信相手のホストとの通信が可能となる。
尚、ＤＮＳプロキシサーバ１０がキャッシュサーバの場合、ステップＳＱ４でＤＮＳプロキシサーバ１０から受信したＡ ｒｅｐｌｙの内容をキャッシュメモリに保存しておくことによって、ＤＮＳプロキシサーバ１０は、端末１からＡ ｑｕｅｒｙを受信した時（ＳＱ２１）、ステップＳＱ２２、ＳＱ２３を省略して、端末１にＡ ｒｅｐｌｙを送信することが可能となる。
【００３７】
図３は、図２のシーケンスにおいて、ＤＮＳプロキシサーバ１０がＡ ｒｅｐｌｙを受信（ＳＱ４）した後、ＡＡＡＡ ｑｕｅｒｙに対する応答待ちの状態で、Ｔ２タイマがタイムアウト（Ｓ１５）した場合の通信シーケンスを示す。
ＤＮＳプロキシサーバ１０は、Ａ ｒｅｐｌｙを受信（ＳＱ４）したことによって、インターネット内でのＡＡＡＡ ｑｕｅｒｙで指定されたホスト名（ドメイン）の存在が確認済みとなっている。そこで、Ｔ２タイムアウト（Ｓ１５）になった場合、ＤＮＳプロキシサーバ１０は、上記Ａ ｒｅｐｌｙの内容に基づいて、指定ホスト名にはＩＰｖ６アドレスが無いことを示すＡＡＡＡ ｒｅｐｌｙ（Ｎｏアドレス）を生成し（Ｓ１６）、これを要求元の端末１に送信する（ＳＱ１０）。以下のシーケンスは、図２と同様である。
【００３８】
このように、Ｔ２タイムアウトを契機にして、ＤＮＳプロキシサーバ１０にＡＡＡＡ ｒｅｐｌｙ（Ｎｏアドレス）を発行させると、ＡＡＡＡ ｑｕｅｒｙに対する応答待ち時間を制限するために設定されていた従来のタイムアウト時間Ｔ０よりも短い待ち時間で、要求元の端末１にＡ ｑｕｅｒｙを送信（ＳＱ２１）させることができ、端末１とホストとの通信開始を早めることが可能となる。特に、ＤＮＳプロキシサーバ１０がキャッシュサーバの場合、Ａ ｑｕｅｒｙ（ＳＱ２１）に応答して、ＤＮＳプロキシサーバ１０から直ちにＡ ｒｅｐｌｙを返送（ＳＱ２４）できるため、端末１とホストとの通信開始を一層早めることが可能となる。
【００３９】
尚、破線で示すように、Ｔ２タイムアウトとなる前に、ＤＮＳコンテンツサーバ３０が、ホスト名に対応するＩＰｖ６アドレスを示す正常な応答メッセージＡＡＡＡ ｒｅｐｌｙ（アドレスデータ）を返送した場合（ＳＱ６）、ＤＮＳプロキシサーバ１０は、受信したＡＡＡＡ ｒｅｐｌｙを要求元の端末１に転送する。この場合、端末１は、ＡＡＡＡ ｒｅｐｌｙが示すＩＰｖ６アドレスを適用して、直ちにホストとの通信を開始できる。
【００４０】
図４は、ＤＮＳコンテンツサーバ３０が、最初に、ＡＡＡＡ ｑｕｅｒｙに対する応答メッセージＮＸＤＯＭＡＩＮ（ＡＡＡＡ）を返信し（ＳＱ５）、その後、Ａ ｑｕｅｒｙに対する応答メッセージとして、問い合わせホスト名と対応するＩＰｖ４アドレスを示すＡ ｒｅｐｌｙを返信（ＳＱ４）した場合の通信シーケンスを示す。
【００４１】
ＤＮＳプロキシサーバ１０は、ＤＮＳコンテンツサーバ３０からＮＸＤＯＭＡＩＮを受信すると（ＳＱ５）、Ｔ３タイマをスタートし（Ｓ１３）、ＮＸＤＯＭＡＩＮを端末１に転送することなくサーバ内に保持して、Ａ ｑｕｅｒｙへの応答メッセージが受信されるのを待つ。Ｔ３タイマは、それがスタートしてから時間Ｔ３が経過した時点で、タイムアウトとなる。時間Ｔ３の値は、Ａ ｑｕｅｒｙを送信してから最初の応答（この例では、ＮＸＤＯＭＡＩＮＡ）が届くまでの時間Ｔ１の値に応じて、予め用意されたＴ１の一次関数（Ｔ３＝β・Ｔ１）から算出される。ここでβは、整数値または小数値をもつ係数であり、β＝αであっても構わない。
【００４２】
Ｔ３タイマがタイムアウトする前に、指定ホスト名と対応するＩＰｖ４アドレスを示すＡ ｒｅｐｌｙを受信すると（ＳＱ４）と、ＤＮＳプロキシサーバ１０は、ステップＳＱ５で受信したＮＸＤＯＭＡＩＮを誤って発行されたものと判断し、Ａ ｒｅｐｌｙの内容に基づいて、問い合わせホスト名にはＩＰｖ６アドレスが無いことを示すＩＰｖ６のＤＮＳ応答メッセージＡＡＡＡ ｒｅｐｌｙ（Ｎｏアドレス）を生成し（Ｓ１４）、これを要求元の端末１に送信する（ＳＱ１０）。その後のシーケンスＳＱ２１〜ＳＱ２４は、図２と同様である。
【００４３】
図５は、図４のシーケンスにおいて、ＤＮＳプロキシサーバ１０がＮＸＤＯＭＡＩＮを受信（ＳＱ５）した後、Ａ ｑｕｅｒｙに対する応答待ちの状態で、Ｔ３タイマがタイムアウト（Ｓ１５）となった場合の通信シーケンスを示す。
この場合、ＤＮＳプロキシサーバ１０は、送信待ちとなっていたＮＸＤＯＭＡＩＮを端末１に転送する（ＳＱ１１）。端末１は、上記ＮＸＤＯＭＡＩＮを受信したことによって、自分がＡＡＡＡ ｑｕｅｒｙで指定したホスト名がインターネットには存在していないと判断し、ホストとの通信を断念する。
【００４４】
図６は、ＤＮＳメッセージのパケットフォーマットを示す。
上述したＡＡＡＡ ｑｕｅｒｙ、Ａ ｑｕｅｒｙ、ＡＡＡＡ ｒｅｐｌｙ、ＮＸＤＯＭＡＩＮ、Ａ ｒｅｐｌｙ等のＤＮＳメッセージＭは、ＩＰヘッダＨ１とＴＣＰ／ＵＤＰヘッダＨ２とをもつＩＰパケット形式で送信される。
【００４５】
図７は、端末１が発行するＡＡＡＡ ｑｕｅｒｙのメッセージフォーマットを示す。
ＡＡＡＡ ｑｕｅｒｙ６０は、図７に示すように、ヘッダ部Ｈ６と問い合わせ部Ｑ６とからなり、ヘッダ部Ｈ６に、メッセージＩＤ６１とその他のヘッダ情報部６２とを含む。問い合わせ部Ｑ６は、アドレス検索の対象となるホスト名を示す問い合わせドメイン名（ＱＮＡＭＥ）６３と、検索すべきアドレスがＩＰｖ６かＩＰｖ４かを示す問い合わせタイプ（ＱＴＹＰＥ）６４と、問い合わせクラス（ＱＣＬＡＳＳ）６５とを含む。
例えば、図１に示したホスト２のＩＰｖ６アドレスを取得するために端末１が発行するＡＡＡＡ ｑｕｅｒｙ６０は、ＱＮＡＭＥ６３として、ホスト名「host.example.co.jp」を含み、ＱＴＹＰＥ６４として、ＩＰｖ６のホスト名解決メッセージであることを示す値「２８」を含む。
【００４６】
図８は、ＤＮＳプロキシサーバ１０が生成するＡ ｑｕｅｒｙのメッセージフォーマットを示す。Ａ ｑｕｅｒｙ７０は、ヘッダ部Ｈ７と問い合わせ部Ｑ７とからなり、ＡＡＡＡ ｑｕｅｒｙ６０と同様の情報項目７１〜７５を含む。
ＤＮＳプロキシサーバ１０は、端末１からＡＡＡＡ ｑｕｅｒｙ６０を受信すると、メッセージＩＤ７１にＡＡＡＡ ｑｕｅｒｙとは異なるＩＤ値を含み、ＱＴＹＰＥ７４に、ＩＰｖ４のホスト名解決メッセージであることを示す値「１」を含むＡ ｑｕｅｒｙを生成する。ＱＮＡＭＥ７３には、ＡＡＡＡ ｑｕｅｒｙのＱＮＡＭＥ６３と同じホスト名が設定される。
【００４７】
図９は、ＤＮＳコンテンツサーバ３０が発行するＡＡＡＡ ｒｅｐｌｙのメッセージフォーマットを示す。ＡＡＡＡ ｒｅｐｌｙ８０は、ヘッダ部Ｈ８と、問い合わせ部Ｑ８と、回答情報部Ｒ８とからなる。
ヘッダ部Ｈ８は、メッセージＩＤ８１と、ＲＣＯＤＥ８３と、その他のヘッダ情報８２、８４からなる。問い合わせ部Ｑ８は、ＡＡＡＡ ｑｕｅｒｙ６０と同様の情報項目８５〜８７からなり、回答情報部Ｒ８は、回答部８８Ａと、権威部８８Ｂと、付加情報部８８Ｃとを含む。
【００４８】
メッセージＩＤ８１には、ＡＡＡＡ ｑｕｅｒｙ６０と同じＩＤ値が設定され、問い合わせ部Ｑ８のＱＮＡＭＥ８５、ＱＴＹＰＥ８６、ＱＣＬＡＳＳ８７には、それぞれＡＡＡＡ ｑｕｅｒｙ６０のＱＮＡＭＥ６３、ＱＴＹＰＥ６４、ＱＣＬＡＳＳ６５と同じ値が設定される。ＲＣＯＤＥ８３は、ＤＮＳコンテンツサーバ３０で実行した解決処理におけるエラーの有無を示している。
【００４９】
ＮＸＤＯＭＡＩＮの場合、ＲＣＯＤＥ８３に「３」が設定され、回答部８８Ａ、権威部８８Ｂ、付加情報部８８Ｃは、それぞれブランクとなっている。ＩＰｖ６アドレスデータの検索に成功した場合は、ＲＣＯＤＥ８３にエラーなしを示す「０」が設定され、回答部８８Ａに、ホストのＩＰｖ６アドレスの値が設定される。権威部８８Ｂと付加情報部８８Ｃは、ＤＮＳコンテンツサーバ３０における状況に応じた値が設定される。
【００５０】
図１０は、ＤＮＳプロキシサーバ１０が生成するＡＡＡＡ ｒｅｐｌｙ（Ｎｏアドレス）８０Ｐのメッセージフォーマットを示す。
ＡＡＡＡ ｒｅｐｌｙ（Ｎｏアドレス）８０Ｐは、ＤＮＳコンテンツサーバ３０が発行するＡＡＡＡ ｒｅｐｌｙ８０と同様のフォーマットを有し、メッセージＩＤ８１に、ＡＡＡＡ ｑｕｅｒｙ６０と同じＩＤ値が設定され、ＲＣＯＤＥ８３に、エラーなしを示す「０」が設定されている。
ＱＮＡＭＥ８５、ＱＴＹＰＥ８６、ＱＣＬＡＳＳ８７には、それぞれＡＡＡＡ ｑｕｅｒｙ６０のＱＮＡＭＥ６３、ＱＴＹＰＥ６４、ＱＣＬＡＳＳ６５と同じ値が設定され、回答部８８Ａ、権威部８８Ｂ、付加情報部８８Ｃは、それぞれブランクとなっている。
【００５１】
ＤＮＳコンテンツサーバ３０が、図８に示したＡ ｑｕｅｒｙ７０に応答して発行するＡ ｒｅｐｌｙは、図９に示したＡＡＡＡ ｒｅｐｌｙ８０と同様のフォーマットを有し、ＱＴＹＰＥ８６にＩＰｖ４を示す「１」が設定され、回答部８８Ａに、ホストがもつＩＰｖ４のアドレス値が設定されている。また、メッセージＩＤ８１には、Ａ ｑｕｅｒｙ７０のメッセージＩＤが設定される。
【００５２】
図１１は、ＤＮＳプロキシサーバ１０の構成の１例を示す。
ＤＮＳプロキシサーバ１０は、プロセッサ１１と、プログラムメモリ１２と、データメモリ１３と、ネットワークインタフェース１４と、これらの要素を相互に接続する内部バス１５とからなる。
【００５３】
プログラムメモリ１２には、ＤＮＳプロキシサーバ（あるいはキャッシュサーバ）として機能を実現するためにプロセッサが実行する各種のソフトウェアを格納してある。本発明のＤＮＳプロキシサーバ１０は、ＤＮＳプロキシサーバ機能の一部として、図１３Ａ、図１３Ｂで詳述する改良されたＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００を備えている。
データメモリ１３には、ＤＮＳプロキシサーバが必要とする各種のデータが格納されている。ＤＮＳキャッシュサーバの場合、データメモリ１３の一部がキャッシュメモリとして利用される。図１２で後述するｑｕｅｒｙ管理テーブル１６は、データメモリ１３に形成される。
【００５４】
図１３Ａ、図１３Ｂは、端末からＡＡＡＡ ｑｕｅｒｙを受信した時、プロセッサ１１が実行するＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００の１実施例を示すフローチャートである。
図２の説明でも触れたように、実際の応用では、ＤＮＳプロキシサーバ１０は、ｑｕｅｒｙ送信先となるＤＮＳコンテンツサーバを特定するため、ｑｕｅｒｙ送信に先立ってＤＮＳツリー検索などの処理を実行するが、これらの処理は、ＤＮＳプロキシサーバにとって一般的にものとなっているため、説明簡単化のために、フローチャートからは省略してある。また、ここでは、ＤＮＳキャッシュサーバの場合に、ｑｕｅｒｙ受信時に実行されるキャッシュメモリの検索処理も省略してある。
従って、ＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００は、キャッシュメモリの検索処理の結果、問い合わせ要求に該当するアドレスデータがキャッシュメモリにないことが確認され、且つ、ＤＮＳツリー検索処理によって、ｑｕｅｒｙの送信先となるＤＮＳコンテンツサーバが特定された時に実行される処理を示すことになる。
【００５５】
ＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００は、ＡＡＡＡ ｑｕｅｒｙの受信時に実行される要求処理部と、ＤＮＳコンテンツサーバからの応答メッセージの受信時に実行される応答処理部とからなっている。
端末１からＡＡＡＡ ｑｕｅｒｙを受信すると、プロセッサ１１は、ＡＡＡＡ ｑｕｅｒｙと同一の問い合わせドメイン名を有し、メッセージＩＤを変えたＡ ｑｕｅｒｙを作成し（２０１）、端末から受信したＡＡＡＡ ｑｕｅｒｙと、自分で作成したＡ ｑｕｅｒｙをＤＮＳコンテンツサーバ３０に送信する（２０２）。この後、プロセッサ１１は、ＤＮＳコンテンツサーバ３０からの最初の応答までの所要時間Ｔ１の計測タイマと、予め決められた最大待ち時間Ｔ０のタイムアウトを知らせるＴ０タイマをスタートして（２０３）、ＤＮＳコンテンツサーバ３０からの応答メッセージの受信を待つ（２０４）。
【００５６】
ＤＮＳコンテンツサーバ３０から、Ａ ｒｅｐｌｙもＡＡＡＡ ｒｅｐｌｙも受信できない状態で、Ｔ０タイマがタイムアウトとなった場合（２０５）、プロセッサ１１は、要求元の端末１に、タイムアウトエラーメッセージを送信して（２０６）、このルーチンを終了する。
ＤＮＳコンテンツサーバ３０から最初の応答メッセージを受信すると、プロセッサ１１は、受信メッセージのＱＴＹＰＥから、受信メッセージがＡ ｑｕｅｒｙに対する応答メッセージか、ＡＡＡＡｑｕｅｒｙに対する応答メッセージかを判定する（２１０）。受信メッセージが、Ａ ｑｕｅｒｙに対する応答メッセージ（Ａ ｒｅｐｌｙ）の場合、プロセッサ１１は、後述する図１３Ｂのステップ２２０以降の処理を実行する。
【００５７】
受信メッセージがＡＡＡＡ ｑｕｅｒｙに対する応答メッセージ（ＡＡＡＡ ｒｅｐｌｙ）の場合、プロセッサ１１は、受信メッセージのＲＣＯＤＥから、受信メッセージがＮＸＤＯＭＡＩＮか否かを判定する（２１１）。受信メッセージがＮＸＤＯＭＡＩＮでなかった場合、すなわち、ホストのＩＰｖ６アドレスデータを示す通常のＡＡＡＡ ｒｅｐｌまたは問合せドメイン名がＩＰｖ６アドレスを持たないことを示すＡＡＡＡ ｒｅｐｌｙの場合、プロセッサ１１は、受信メッセージ（ＡＡＡＡ ｒｅｐｌｙ）を要求元の端末１に送信して（２１２）、このルーチンを終了する。
【００５８】
受信メッセージがＮＸＤＯＭＡＩＮの場合、プロセッサ１１は、ＮＸＤＯＭＡＩＮをメモリに保持した状態で、Ａ ｑｕｅｒｙに対する応答メッセージ（Ａ ｒｅｐｌｙ）の受信待ち時間を制限するＴ３タイマをスタートし（２１３）、Ａ ｒｅｐｌｙの受信を待つ（２１４）。上記Ｔ３タイマの設定値は、Ｔ１タイマの計測値Ｔ１に応じて決定され、Ｔ０タイマよりも早くタイムアウトとなる。Ａ ｒｅｐｌｙが受信されないまま、Ｔ３タイマがタイムアウトになった場合（２１５）、プロセッサ１１は、メモリに保持してあったＮＸＤＯＭＡＩＮを要求元に端末１に送信して（２１６）、このルーチンを終了する。上記ＮＸＤＯＭＡＩＮの送信は、図５のステップＳＱ１１に相当する。
【００５９】
Ｔ３タイマがタイムアウトとなる前に、Ａ ｑｕｅｒｙに対する応答メッセージを受信すると、プロセッサ１１は、受信メッセージのＲＣＯＤＥから受信メッセージがＮＸＤＯＭＡＩＮか否かを判定する（２１７）。受信メッセージがＮＸＤＯＭＡＩＮの場合、プロセッサ１１は、メモリに保持してあったＮＸＤＯＭＡＩＮを要求元に端末１に送信して（２１６）、このルーチンを終了する。
【００６０】
受信メッセージがＮＸＤＯＭＡＩＮでなかった場合、すなわち、ホストのＩＰｖ４アドレスデータを示す通常のＡ ｒｅｐｌｙの場合、プロセッサ１１は、受信したＡ ｒｅｐｌｙに基づいて、目的のＩＰｖ６アドレスデータが無いことを示すＡＡＡＡ ｒｅｐｌｙを生成し（２１８）、これを要求元の端末１に送信して（２１９）、このルーチンを終了する。上記ＡＡＡＡ ｒｅｐｌｙの生成は、図４のステップＳ１４に相当する。
【００６１】
最初に受信したメッセージがＡ ｑｕｅｒｙに対する応答メッセージの場合、プロセッサ１１は、図１３Ｂに示すように、ＡＡＡＡ ｑｕｅｒｙに対する応答メッセージ（ＡＡＡＡ ｒｅｐｌｙ）の受信待ち時間を制限するＴ２タイマをスタートする（２２０）。プロセッサ１１は、上記最初の受信メッセージのＲＣＯＤＥをチェックし（２２１）、ＲＣＯＤＥが「０」（エラーなし）、すなわち、受信メッセージが指定ホストのＩＰｖ４アドレスを示すＡ ｒｅｐｌｙメッセージの場合、ＤＮＳコンテンツサーバ３０からのＡＡＡＡ ｒｅｐｌｙの受信を待つ（２２２）。
【００６２】
ＡＡＡＡ ｒｅｐｌｙを受信しない状態で、Ｔ２タイマがタイムアウトとなった場合（２２３）、既に、正常なＡ ｒｅｐｌｙメッセージの受信によって、インターネットにおける問合せドメイン名の存在が確されているため、プロセッサ１１は、図１３Ａのステップ２１８、２１９を実行し、要求元端末１に目的ＩＰｖ６アドレスが無いことを示すＡＡＡＡ ｒｅｐｌｙを送信して、このルーチンを終了する。上記ＡＡＡＡ ｒｅｐｌｙの送信は、図３のステップＳＱ１０に相当する。
【００６３】
Ｔ２タイマがタイムアウトとなる前に、ＡＡＡＡ ｒｅｐｌｙを受信した場合、プロセッサ１１は、受信メッセージのＲＣＯＤＥをチェックする（２２４）。ＲＣＯＤＥがエラー表示値「３」、すなわち、受信メッセージがＮＸＤＯＭＡＩＮの場合、プロセッサ１１は、図１３Ａのステップ２１８、２１９を実行し、要求元端末１に目的ＩＰｖ６アドレスが無いことを示すＡＡＡＡ ｒｅｐｌｙを送信して、このルーチンを終了する。受信メッセージのＲＣＯＤＥが「０」（エラーなし）の場合、プロセッサ１１は、受信メッセージ（目的ＩＰｖ６アドレスを示すＡＡＡＡ ｒｅｐｌｙ）を要求元端末１に送信して（２２６）、このルーチンを終了する。上記ＡＡＡＡ ｒｅｐｌｙの送信は、図３に破線で示したステップＳＱ９に相当する。
【００６４】
最初に受信したＡ ｒｅｐｌｙメッセージのＲＣＯＤＥがエラーを示す値となっていた場合、すなわち、受信メッセージがＩＰｖ４のＮＸＤＯＭＡＩＮの場合（２２１）、プロセッサ１１は、ＤＮＳコンテンツサーバ３０からのＡＡＡＡ ｒｅｐｌｙの受信を待つ（２２５）。Ｔ２タイマがタイムアウトとなる前に、ＡＡＡＡ ｒｅｐｌｙを受信した場合、プロセッサ１１は、受信メッセージを要求元の端末１に送信して（２２６）、このルーチンを終了する。
【００６５】
ＡＡＡＡ ｒｅｐｌｙを受信しない状態で、Ｔ２タイマがタイムアウトとなった場合（２２７）、既に、ＩＰｖ４のＮＸＤＯＭＡＩＮの受信によって、インターネットにおける指定ドメイン名の不在が確認済みとなっているため、プロセッサ１１は、指定されたホスト名がインターネットに存在しないことを示すＩＰｖ６のＮＸＤＯＭＡＩＮを生成し（２２８）、これを要求元端末１に送信して（２２９）、このルーチンを終了する。
【００６６】
上述したＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００は、１つのＡＡＡＡ ｑｕｅｒｙに着目して、ＤＮＳプロキシサーバ１０のプロセッサ１１が実行する動作を時系列的に示している。しかしながら、実際の応用においては、ＤＮＳプロキシサーバ１０は、複数の端末からＡＡＡＡ ｑｕｅｒｙを受信し、ＤＮＳコンテンツサーバからも、メッセージＩＤの異なる複数のＡＡＡＡ ｒｅｐｌｙとＡ ｒｅｐｌｙを次々と受信する。従って、プロセッサ１１は、発生したＡＡＡＡ ｑｕｅｒｙ毎に、ＤＮＳコンテンツサーバからの応答受信状態を管理し、各端末への応答メッセージの送信を制御する必要がある。
【００６７】
図１２は、各端末への応答メッセージの送信を制御するためにプロセッサ１１が参照するｑｕｅｒｙ管理テーブル１６の１例を示す。
ｑｕｅｒｙ管理テーブル１６は、ＡＡＡＡ ｑｕｅｒｙと対応する複数のテーブルエントリ１６０−１、・・・からなる。各テーブルエントリは、ＡＡＡＡ ｑｕｅｒｙＩＤ１６１と、Ａ ｑｕｅｒｙＩＤ１６２と、ＡＡＡＡ ｒｅｐｌｙのＲＣＯＤＥ１６３と、Ａ ｒｅｐｌｙのＲＣＯＤＥ１６４と、要求元ＩＰアドレス１６５と、Ｔ０タイムアウト１６６と、Ｔ２（Ｔ３）タイムアウト１６７とを示している。
【００６８】
プロセッサ１１は、ＡＡＡＡ ｑｕｅｒｙを受信した時、これと同一の問い合わせドメイン名をもつＡ ｑｕｅｒｙを生成した後、ｑｕｅｒｙ管理テーブル１６に、上記ＡＡＡＡ ｑｕｅｒｙ用の新たなテーブルエントリ１６０−ｊを追加する。この時点では、テーブルエントリ１６０−ｊのＲＣＯＤＥ１６４、１６５と、Ｔ２（Ｔ３）タイムアウト１６７はブランク状態で、ＡＡＡＡ ｑｕｅｒｙＩＤ１６１には、受信ＡＡＡＡ ｑｕｅｒｙのメッセージＩＤ８１の値が設定され、Ａ ｑｕｅｒｙＩＤ６２には、生成されたＡ ｑｕｅｒｙのメッセージＩＤ７１、要求元ＩＰアドレス１６５には、受信したＡＡＡＡ ｑｕｅｒｙのＩＰヘッダＨ１から抽出された送信元ＩＰアドレスの値が設定される。また、Ｔ０タイムアウト１６６には、Ｔ０タイマのタイムアウト時刻が設定される。
【００６９】
プロセッサ１１は、ＤＮＳコンテンツサーバからのｒｅｐｌｙメッセージの受信の都度、上記ｑｕｅｒｙ管理テーブル１６から受信メッセージのメッセージＩＤと対応するテーブルエントリ１６０−ｋを検索し、テーブルエントリの状態に応じた動作を行う。
ＤＮＳコンテンツサーバからｒｅｐｌｙメッセージを受信した時、ＲＣＯＤＥ１６４と１６５が共に空欄状態であれは、プロセッサ１１は、受信メッセージのＲＣＯＤＥの値を上記テーブルエントリ１６０−ｋのＲＣＯＤＥ１６４または１６５に記憶した後、ＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００のステップ２１０〜２１３または２２０を実行し、ステップ２１３または２２０で、Ｔ２タイマまたはＴ３タイマのタイムアウト時刻を算出し、これを上記テーブルエントリにＴ２（Ｔ３）タイマ１６５のタイムアウト時刻として記憶すればよい。
【００７０】
ＤＮＳコンテンツサーバからｒｅｐｌｙメッセージを受信した時、ＲＣＯＤＥ１６４と１６５の一方に既に有効データが記憶された状態であれば、プロセッサ１１は、受信メッセージのＱＴＹＰＥから、受信メッセージが、ＡＡＡＡ ｒｅｐｌｙかＡ ｒｅｐｌｙかを判定する。プロセッサ１１は、受信メッセージがＡ ｒｅｐｌｙの場合は、ＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００のステップ２１６〜２１９を実行し、受信メッセージがＡＡＡＡ ｒｅｐｌｙの場合は、上記ＲＣＯＤＥ１６４または１６５が示すＡ ｒｅｐｌｙの状態に応じて、ＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００のステップ２２２、２２４〜２２６を実行すればよい。
【００７１】
また、プロセッサ１１は、ｑｕｅｒｙ管理テーブル１６のタイマ１６６と１６７が示すタイムアウト時刻を定期的にチェックし、タイムアウト時刻に達したテーブルエントリについて、ＲＣＯＤＥ１６４と１６５の状態に応じて、ＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００のステップ２０６、２１６、２１８〜２１９または２２８〜２２９を選択的に実行する。ステップ２１２、２１６、２１９、２２６または２２９で、要求元端末に応答メッセージを送信した時、ｑｕｅｒｙ管理テーブル１６から不要テーブルエントリを削除すればよい。
【図面の簡単な説明】
【００７２】
【図１】本発明のＤＮＳプロキシサーバが適用されるネットワーク構成を模式的に示した図。
【図２】本発明のＤＮＳプロキシサーバの機能を示す通信シーケンスの第１の例を示す図。
【図３】本発明のＤＮＳプロキシサーバの機能を示す通信シーケンスの第２の例を示す図。
【図４】本発明のＤＮＳプロキシサーバの機能を示す通信シーケンスの第３の例を示す図。
【図５】本発明のＤＮＳプロキシサーバの機能を示す通信シーケンスの第４の例を示す図。
【図６】ＤＮＳメッセージのパケットフォーマットを示す図。
【図７】端末が発行するＡＡＡＡ ｑｕｅｒｙのメッセージフォーマットを示す図。
【図８】ＤＮＳプロキシサーバが生成するＡ ｑｕｅｒｙのメッセージフォーマットを示す図。
【図９】ＤＮＳコンテンツサーバが発行するＡＡＡＡ ｒｅｐｒｙのメッセージフォーマットを示す図。
【図１０】ＤＮＳプロキシサーバが生成するＡＡＡＡ ｒｅｐｒｙのメッセージフォーマットを示す図。
【図１１】ＤＮＳプロキシサーバの構成図。
【図１２】ＤＮＳプロキシサーバが備えるｑｕｅｒｙ管理テーブル１６の１例を示す図。
【図１３Ａ】ＤＮＳプロキシサーバが実行するＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００の一部を示すフローチャート。
【図１３Ｂ】ＡＡＡＡ ｑｕｅｒｙ処理ルーチン２００の残部を示すフローチャート。
【符号の説明】
【００７３】
１：端末、２：ホスト、１０：ＤＮＳプロキシサーバ、１１：プロセッサ、１２：プログラムメモリ、１３：データメモリ、１４：ネットワークインタフェース、１６：ｑｕｅｒｙ管理テーブル、２０：境界ルータ、３０：ＤＮＳコンテンツサーバ、４０：ＬＡＮ、４１：アクセス網、４２：インターネット、４３：ドメイン網。
【図１】
0004668775.tif 000002
【図２】
0004668775.tif 000003
【図３】
0004668775.tif 000004
【図４】
0004668775.tif 000005
【図５】
0004668775.tif 000006
【図６】
0004668775.tif 000007
【図７】
0004668775.tif 000008
【図８】
0004668775.tif 000009
【図９】
0004668775.tif 000010
【図１０】
0004668775.tif 000011
【図１１】
0004668775.tif 000012
【図１２】
0004668775.tif 000013
【図１３Ａ】
0004668775.tif 000014
【図１３Ｂ】
0004668775.tif 000015