(57)【要約】【課題】DNS応答の整合性を保証するためのデータ付加とキャッシュとの両立を図ったキャッシュ機能つきのプロキシDNSサーバを提供する。【解決手段】DNSクエリから付加データの要否を判定し、必要な場合はキャッシュを参照することなくそのDNSクエリを他DNSサーバに転送し、不要な場合はキャッシュを参照し、必要に応じて他DNSサーバにそのDNSクエリを転送する。【選択図】図３
2014212480.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ機能を有するプロキシDNS(Domain Name System)サーバにおいて、
DNSクライアントからDNSクエリを受信する受信手段、
DNS応答の正当性を保証するための付加データを前記DNS応答に付加することを、前記DNSクエリが要求しているか否かを判定する判定手段、
前記DNSクエリが前記付加データの付加を要求する場合、キャッシュを参照することなく前記DNSクエリを他のDNSサーバに転送する一方、前記DNSクエリが前記付加データの付加を要求しない場合、キャッシュの参照結果に応じて前記DNSクエリを他のDNSサーバに転送する転送手段
を備えることを特徴とするプロキシDNSサーバ。
【請求項２】
前記転送手段は、前記DNSクエリが前記付加データの付加を要求しない場合に、キャッシュを参照した結果、
前記DNSクエリが要求するアドレス情報がキャッシュから見つかった場合、そのアドレス情報を前記DNSクエリに対するDNS応答に含めて前記DNSクライアントに送信し、
前記DNSクエリが要求するアドレス情報がキャッシュから見つからなかった場合、前記DNSクエリを前記他のDNSサーバに転送し、前記他のDNSサーバを介して受信したDNS応答を前記DNSクライアントに転送する
ことを特徴とする請求項１に記載のプロキシDNSサーバ。
【請求項３】
前記付加データはDNSSEC認証用レコードであり、
前記判定手段は、前記DNSクエリにDNSSEC OKビットがあるか否かに基づいて、前記DNSクエリが前記付加データである前記DNSSEC認証用レコードを前記DNS応答に付加することを要求しているか否かを判定する
ことを特徴とする請求項１及び請求項２のいずれかに記載のプロキシDNSサーバ。
【請求項４】
請求項１乃至請求項３のいずれかとして動作するルータ装置。
【請求項５】
キャッシュ機能を有するプロキシDNS(Domain Name System)サーバとしてコンピュータを機能させるためのプログラムにおいて、
DNSクライアントからDNSクエリを受信する受信手段、
DNS応答の正当性を保証するための付加データを前記DNS応答に付加することを、前記DNSクエリが要求しているか否かを判定する判定手段、
前記DNSクエリが前記付加データの付加を要求する場合、キャッシュを参照することなく前記DNSクエリを他のDNSサーバに転送する一方、前記DNSクエリが前記付加データの付加を要求しない場合、キャッシュの参照結果に応じて前記DNSクエリを他のDNSサーバに転送する転送手段
としてコンピュータを機能させることを特徴とするプログラム。
【請求項６】
前記転送段階で前記DNSクエリが前記付加データの付加を要求しない場合に、キャッシュを参照した結果、
前記DNSクエリが要求するアドレス情報がキャッシュから見つかった場合、そのアドレス情報を前記DNSクエリに対するDNS応答に含めて前記DNSクライアントに送信し、
前記DNSクエリが要求するアドレス情報がキャッシュから見つからなかった場合、前記DNSクエリを前記他のDNSサーバに転送し、前記他のDNSサーバを介して受信したDNS応答を前記DNSクライアントに転送する
ことを特徴とする請求項５に記載のプログラム。
【請求項７】
前記付加データはDNSSEC認証用レコードであり、
前記判定手段は、前記DNSクエリにDNSSEC OKビットがあるか否かに基づいて、前記DNSクエリが前記付加データである前記DNSSEC認証用レコードを前記DNS応答に付加することを要求しているか否かを判定する
ことを特徴とする請求項５及び請求項６のいずれかに記載のプログラム。
【請求項８】
キャッシュ機能を有するプロキシDNS(Domain Name System)サーバがDNSクエリに対して応答する方法において、
DNSクライアントからDNSクエリを受信する受信段階、
DNS応答の正当性を保証するための付加データを前記DNS応答に付加することを、前記DNSクエリが要求しているか否かを判定する判定段階、
前記DNSクエリが前記付加データの付加を要求する場合、キャッシュを参照することなく前記DNSクエリを他のDNSサーバに転送する一方、前記DNSクエリが前記付加データの付加を要求しない場合、キャッシュの参照結果に応じて前記DNSクエリを他のDNSサーバに転送する転送段階
を含むことを特徴とする方法。
【請求項９】
前記転送段階で前記DNSクエリが前記付加データの付加を要求しない場合に、キャッシュを参照した結果、
前記DNSクエリが要求するアドレス情報がキャッシュから見つかった場合、そのアドレス情報を前記DNSクエリに対するDNS応答に含めて前記DNSクライアントに送信し、
前記DNSクエリが要求するアドレス情報がキャッシュから見つからなかった場合、前記DNSクエリを前記他のDNSサーバに転送し、前記他のDNSサーバを介して受信したDNS応答を前記DNSクライアントに転送する
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記付加データはDNSSEC認証用レコードであり、
前記判定段階は、前記DNSクエリにDNSSEC OKビットがあるか否かに基づいて、前記DNSクエリが前記付加データである前記DNSSEC認証用レコードを前記DNS応答に付加することを要求しているか否かを判定する
ことを特徴とする請求項８及び請求項９のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ機能を備えるプロキシDNS(Domain Name System)サーバに対する、DNS応答の正当性を保証するための技術の適用に関する。この種の技術としてDNSSEC(DNS Security Extensions)がある。
【背景技術】
【０００２】
家庭用或いはオフィス用のルータ装置の中には、キャッシュ機能を有するプロキシDNSサーバとして動作するものがある。この種のルータ装置は、一般に、LAN(Local Area Network)内のパーソナルコンピュータ、ワークステーション等のDNSクライアントからDNSクエリを受け取ると、キャッシュを参照して、そのDNSクエリが指定するドメイン名が保存されているか検索し、保存されている場合には、そのドメイン名と関連付けて保存されているIP(Internet Protocol)アドレスをDNS応答としてDNSクライアントに送信する。他方、DNSクエリに指定されたドメイン名がキャッシュに保存されていない場合、ルータ装置は、予め定められたWAN(Wide Area Network)上の上位DNSサーバにそのDNSクエリを転送して名前解決を図る。
【０００３】
一方、DNSクエリに対して不正なDNS応答を返信する、所謂DNS偽装に対抗する技術として、DNSSEC(DNS Security Extensions)がある。DNSSECでは、DNS応答の正当性を保証するため、DNSクエリに対して、DNSSEC認証用レコードとしてデジタル署名をドメイン登録情報に付加し、DNS応答として返信する。DNSクライアントは、デジタル署名に基づいて、DNS応答のドメイン登録情報が正当な管理者によって生成された応答レコードであることと、そのドメイン登録情報が改竄されていないことを確認することができる。こうしたデジタル署名つきのドメイン登録情報を含むDNS応答を要求する際、DNSクライアントは、DNSSEC OKビットを付与したDNSクエリを送出する。
【０００４】
ここで、上述のルータ装置が、LAN内のDNSクライアントからDNSSEC OKビットを付与されたDNSクエリを受信する場合を考える。このような場合に、従来のこの種のルータ装置では、DNSSEC OKビットの有無に関わらず、そのDNSクエリが要求するドメイン名のアドレスがキャッシュにあればそのアドレスをDNS応答として返信する一方、キャッシュになければそのDNSクエリをWAN上の上位DNSサーバに転送し、その返信として上位DNSサーバから受信したDNS応答を、DNSクライアントに返信する。
【０００５】
このため、従来のルータ装置では、DNSクライアントがDNSSEC OKビットを付与したDNSクエリを送信したとき、対応するDNS応答が、DNS認証用レコードが付与されている場合と付与されていない場合があり、動作の不整合を生じていた。
【０００６】
こうした不整合を解消する手法として、ひとつには、DNSSEC認証用レコードに基づいてDNS応答の正当性を認証するDNSSEC認証手段をルータ装置に設けることが考えられるが、これは装置のコスト増を招く。また、キャッシュ機能を無効化すれば不整合は生じないが、この場合にはキャッシュ機能の利点、即ち、上位DNSサーバへのトラフィック量の削減、上位DNSサーバでの処理負荷の軽減ができなくなる。
【０００７】
本発明に関連する発明が特許文献１に記載されている。同文献には、DNSSEC認証に非対応のDNS権威サーバと、DNSSEC対応のDNSキャッシュサーバとの間に、DNS権威サーバの代理としてDNSSEC機能を提供するDNSSEC代理装置を設けることが記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−１９９６０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明はこのような状況に鑑みてなされたものであり、本発明が解決しようとする課題は、DNSSECのように、DNS応答の整合性を保証するためにデータを付加する技術とキャッシュ機能との両立を図ることが可能な、キャッシュ機能つきのプロキシDNSサーバを提供することである。
【課題を解決するための手段】
【００１０】
上述の課題を解決するため、本発明は、その一態様として、キャッシュ機能を有するプロキシDNS(Domain Name System)サーバにおいて、DNSクライアントからDNSクエリを受信する受信手段、DNS応答の正当性を保証するための付加データを前記DNS応答に付加することを、前記DNSクエリが要求しているか否かを判定する判定手段、前記DNSクエリが前記付加データの付加を要求する場合、キャッシュを参照することなく前記DNSクエリを他のDNSサーバに転送する一方、前記DNSクエリが前記付加データの付加を要求しない場合、キャッシュの参照結果に応じて前記DNSクエリを他のDNSサーバに転送する転送手段を備えることを特徴とするプロキシDNSサーバを提供する。
【００１１】
また、本発明は、他の一態様として、キャッシュ機能を有するプロキシDNSサーバとしてコンピュータを機能させるためのプログラムにおいて、DNSクライアントからDNSクエリを受信する受信手段、DNS応答の正当性を保証するための付加データを前記DNS応答に付加することを、前記DNSクエリが要求しているか否かを判定する判定手段、前記DNSクエリが前記付加データの付加を要求する場合、キャッシュを参照することなく前記DNSクエリを他のDNSサーバに転送する一方、前記DNSクエリが前記付加データの付加を要求しない場合、キャッシュの参照結果に応じて前記DNSクエリを他のDNSサーバに転送する転送手段としてコンピュータを機能させることを特徴とするプログラムを提供する。
【００１２】
また、本発明は、他の一態様として、キャッシュ機能を有するプロキシDNSサーバがDNSクエリに対して応答する方法において、DNSクライアントからDNSクエリを受信する受信段階、DNS応答の正当性を保証するための付加データを前記DNS応答に付加することを、前記DNSクエリが要求しているか否かを判定する判定段階、前記DNSクエリが前記付加データの付加を要求する場合、キャッシュを参照することなく前記DNSクエリを他のDNSサーバに転送する一方、前記DNSクエリが前記付加データの付加を要求しない場合、キャッシュの参照結果に応じて前記DNSクエリを他のDNSサーバに転送する転送段階を含むことを特徴とする方法を提供する。
【発明の効果】
【００１３】
本発明によれば、DNSクエリが付加データを要求するか否かを判定し、要求する場合にはキャッシュを参照することなく他のDNSサーバにそのDNSクエリを転送する一方、付加データを要求しない場合にはキャッシュを参照する。このため、本発明によれば、DNSクエリが付加データを要求する場合は常に付加データを付加したDNS応答をDNSクライアントに返信する一方で、DNSクエリが付加データを要求しない場合にはキャッシュによる上位DNSサーバへのトラフィック量の削減、上位DNSサーバでの処理負荷の軽減といった利点を生かすことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施の形態である名前解決システム１のブロック図である。
【図２】名前解決システム１のルータ装置３のブロック図である。
【図３】ルータ装置３の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
本発明の一実施の形態である名前解決システム１について説明する。図１を参照すると、名前解決システム１は、クライアント端末２、ルータ装置３、上位DNSサーバ４を備える。
【００１６】
クライアント端末２は、DNSクライアント機能を備える端末であり、ルータ装置３にDNSクエリを送信する。クライアント端末２は、例えば、パーソナルコンピュータ、ワークステーション、各種の情報処理通信装置等である。
【００１７】
ルータ装置３は、プロキシDNS機能を備えるルータ装置であり、DNSクライアントから受信したDNSクエリを、上位DNSサーバ４に転送する。
【００１８】
上位DNSサーバ４は、ルータ装置３を介して受け取るDNSクエリに応答して、DNS応答を送出する。
【００１９】
次に、図２を参照してルータ装置３の構成について説明する。ルータ装置３は、LAN(Local Area Network)インターフェース部３１、DNS処理部３２、DNSSEC(DNS Security Extensions)判定部３３、キャッシュ情報管理部３４、WAN(Wide Area Network)インターフェース部３５を備える。
【００２０】
LANインターフェース部３１はLANを介してクライアント端末２と通信を行うための通信インターフェースである。LANインターフェース部３１はクライアント端末２からDNSクエリを受信する。また、LANインターフェース部３１は、DNSクエリに対するDNS応答をクライアント端末２に送信する。
【００２１】
DNS処理部３２は、LANインターフェース部３１とWANインターフェース部３５の間で、DNS proxy動作を行う処理装置である。
【００２２】
DNSSEC判定部３３はDNS処理部３２の一部であり、DNSクエリがDNS応答にDNSSEC認証用レコードを付与することを要求するか否かを判定する。より具体的には、DNSSEC OKビットがDNSクエリに付与されているか否かを判定する。
【００２３】
キャッシュ情報管理部３４は、ルータ装置３がDNSクエリに応じて過去に他のDNSサーバから取得したドメイン登録情報、具体的にはドメイン名とIP(Internet Protocol)アドレスの対応関係を一時的に保存するための記憶装置を備え、DNS処理部３２が問い合わせるドメイン名に対応するIPアドレスを保持している場合にはそのIPアドレスをDNS処理部３２に回答し、保持していない場合には該当するIPアドレスを保持していない旨をDNS処理部３２に回答する。
【００２４】
WANインターフェース部３５はインターネット等のWANを介して他のDNSサーバと通信を行うための通信インターフェースである。WANインターフェース部３５は、DNS処理部３２の指示に応じて、クライアント端末２からのDNSクエリを、WANを介して他のDNSサーバに転送する。また、WANインターフェース部３５は、他のDNSサーバからWANを介してDNS応答を受信する。
【００２５】
次に、名前解決システム１の動作について説明する。ここでは、DNSのリソースレコードのタイプはAレコードであり、クライアント端末２は、DNSSEC認証が必要なAレコードのDNSクエリ、または、DNSSEC認証が不要なAレコードのDNSクエリのいずれかを送信するものとする。
【００２６】
クライアント端末２がルータ装置３にDNSクエリを送信する。このDNSクエリは、DNS認証を要求するものであってもよいし、要求しないものであってもよい。DNS認証を要求する場合、クライアント端末２は、DNSクエリにDNSSEC OKビット、即ち、DOビットを付与してルータ装置３に送信する。DNS認証を要求しない場合、クライアント端末２はDOビットを付与することなくDNSクエリをルータ装置３に送信する。
【００２７】
DNSクエリを受信したルータ装置３は図３のように動作する。
【００２８】
ルータ装置３は、LANインターフェース部３１にてDNSクエリを受信する（ステップS1）と、そのDNSクエリをDNS処理部３２に渡す。DNS処理部３２において、DNSSEC判定部３３は、そのDNSクエリのDNSレコードを解析し、DOビットがそのDNSクエリに付与されているか否かを判定する（ステップS2）。
【００２９】
DNSクエリにDOビットが付与されている場合、DNS処理部３２は、そのDNSクエリに関してキャッシュ情報管理部３４に問い合わせを行なうことなく、WANインターフェース部３５を介して上位DNSサーバ４にそのDNSクエリを転送する（ステップS3）。このとき、DNS処理部３２は、キャッシュ情報管理部３４に対して問い合わせを行なわないことに注意されたい。
【００３０】
転送されたDNSクエリを受信した上位DNSサーバ４は、DOビットを参照して、DNSSEC認証用レコードを付与したDNS応答を生成して、ルータ装置３に返信する。DNSSEC認証用レコードは、具体的には上位DNSサーバ４の管理者、或いは、上位DNSサーバ４を含む複数のDNSサーバからなるゾーンの管理者が生成した、公開鍵暗号方式の対となる秘密鍵と公開鍵のうち、秘密鍵を用いて暗号化したDNSのリソースレコードである。
【００３１】
このDNSSEC認証用レコードを付与したDNS応答をWANインターフェース部３５が受信する（ステップS４）と、DNS処理部３２は、そのDNS応答をLANインターフェース部３１を介してクライアント端末２に転送する（ステップS5）。
【００３２】
一方、ステップS2においてDNSクエリにDOビットが付与されていないと判定した場合、DNS処理部３２は、そのDNSクエリに記載のドメイン名にヒットするキャッシュがあるか否かをキャッシュ情報管理部３４に問い合わせる（ステップS６）。
【００３３】
キャッシュにヒットしない場合、そのDNSクエリをWANインターフェース部３５を介して上位DNSサーバ４に転送する（ステップS７）。この後、上述のステップS4、S５のようにして、上位DNSサーバ４からのDNS応答をクライアント端末２に転送する。ここで上位DNSサーバ４から受信するDNS応答は、DOビットが付与されていないDNSクエリに応答するものなので、DNSSEC認証用レコードは付与されていない。
【００３４】
キャッシュにヒットした場合、ヒットしたドメイン名に対応するIPアドレスを含むDNS応答を生成し、LANインターフェース部３１を介してクライアント端末２に返信する（ステップS8）。
【００３５】
以上、本発明を実施の形態に即して説明したが、本発明はこれに限定されるものではない。例えば、上述の実施の形態では、リソースレコードのタイプをＡレコードとして説明したが、リソースレコードの型はＡレコードに限定されるものではなく、他のレコード、例えばＡＡＡＡレコードであってもよい。
【００３６】
また、上述の実施の形態では、ルータ装置３のLAN側に接続された装置として、クライアント端末２を挙げて説明したが、サーバ装置であってもよい。
【符号の説明】
【００３７】
１  名前解決システム
２  クライアント端末
３  ルータ装置
４  上位DNSサーバ
３１  LANインターフェース部
３２  DNS処理部
３３  DNSSEC判定部
３４  キャッシュ情報管理部
３５  WANインターフェース部
【図１】
2014212480.tif 000003
【図２】
2014212480.tif 000004
【図３】
2014212480.tif 000005