JP2017175567A - 名前解決装置、名前解決方法及び名前解決プログラム - Google Patents

名前解決装置、名前解決方法及び名前解決プログラム Download PDF

Info

Publication number
JP2017175567A
JP2017175567A JP2016062569A JP2016062569A JP2017175567A JP 2017175567 A JP2017175567 A JP 2017175567A JP 2016062569 A JP2016062569 A JP 2016062569A JP 2016062569 A JP2016062569 A JP 2016062569A JP 2017175567 A JP2017175567 A JP 2017175567A
Authority
JP
Japan
Prior art keywords
query
dns
transmission source
response
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016062569A
Other languages
English (en)
Other versions
JP6487870B2 (ja
Inventor
雅晴 服部
Masaharu Hattori
雅晴 服部
晃就 難波
Akinari Namba
晃就 難波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2016062569A priority Critical patent/JP6487870B2/ja
Publication of JP2017175567A publication Critical patent/JP2017175567A/ja
Application granted granted Critical
Publication of JP6487870B2 publication Critical patent/JP6487870B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】送信元に応じて名前解決の応答を変更する場合に、高速、かつ、メモリ使用量を低減できる名前解決装置、名前解決方法及び名前解決プログラムを提供すること。
【解決手段】名前解決装置1は、DNSクエリを受信するクエリ受信部11と、DNSクエリに含まれる送信元のアドレスを、当該送信元を示す文字列である送信元情報に変換する送信元変換部12と、DNSクエリに含まれるFQDNにおけるホスト名を送信元情報に基づいて一意に変換し、変換後のホスト名を名前解決するためのリクエストを標準DNS機能部20へ送信した後、当該リクエストに対する回答を標準DNS機能部20から受信し、当該回答に基づいてDNSクエリに対する応答項目を生成するクエリ処理部13と、応答項目に基づいてDNSレスポンスを送信するレスポンス送信部14と、を備える。
【選択図】図2

Description

本発明は、DNS(Domain Name System)クエリに応答する名前解決装置、名前解決方法及び名前解決プログラムに関する。
IoT(Internet of Things)の普及により、PC(Personal Computer)及びスマートフォンなどの人が利用する端末だけでなく、センサなどの多数のM2M(Machine to Machine)デバイスがクライアント端末としてインターネットに接続されることが予想される。
このような状況において、集中配備されたデータセンタなどによりサービスを提供する従来のクラウドコンピューティング環境では、トラフィック負荷の増大が問題となる。そこで、多数のクライアント端末が配備される現場の近くに分散配備されたエッジサーバで処理を行い、トラフィック及びクライアント端末への応答時間を削減させるコンピューティング技術として、モバイルエッジコンピューティングが提案されている。
モバイルエッジコンピューティングに求められる条件として、クライアント端末からのリクエストに対して、クライアント端末に近いエッジサーバで処理し応答するために、処理したいパケットの宛先をエッジサーバのIPアドレスとするルーティング(ローカルブレイクアウト)を行なう必要がある。ローカルブレイクアウトの手法は、以下の3つが挙げられる。
手法1は、クライアント端末に専用アプリケーションをインストールし、かつ、エッジサーバに専用のネットワーク機器を設置することにより、クライアント端末から直接エッジサーバを指定して、機器上で指定されたパケットをエッジサーバにルーティングする手法である。
手法2は、エッジサーバ側にローカルDNSサーバを配置し、クライアント端末にAPN(Access Point Name)を事前設定してローカルDNSサーバを指定することにより、エッジサーバのIPアドレスを宛先としてDNS名前解決させ、エッジサーバにルーティングする手法である。
手法3は、既設のDNSサーバを利用して、エッジサーバのIPアドレスを宛先としてDNS名前解決させ、エッジサーバにルーティングする手法である。
ここで、ユーザの利便性を考慮すると、クライアント端末に専用アプリケーション又は事前設定が不要な手法3が最も有効な手法と言える。
非特許文献1には、CDN(Content Delivery Network)によりコンテンツ配信サーバを選択する技術が提案されている。この技術では、個々のコンテンツサーバを識別するFQDN(Fully Qualified Domain Name)を管理するDNSサーバが用意される。クライアントは、通常の権威DNSサーバにDNSクエリを送信するが、権威DNSサーバからは、FQDNを管理するDNSサーバに問合せを行うようにクライアントに対してDNSレスポンスが返信される。クライアントは、指定されたDNSサーバに対して再度DNSクエリを送信して、コンテンツ配信サーバのIPアドレスを得る。
特許文献1では、サービス(ドメイン)毎及び送信元毎にDNSゾーンファイルを設定し、クライアントの置かれた送信元の環境(IPアドレス又はネットワークの帯域など)により、名前解決の応答を変更する装置が提案されている。
特許文献2では、検索キー(例えば、送信元のIPアドレス)の値から検索対象(例えば、接続するエッジサーバのIPアドレス)を探索する検索テーブル(ハッシュテーブル)を作成し、検索回数を削減する装置が提案されている。
特開2007−166659号公報 特開2011−103613号公報
Dilley, J. et. al., "Globally Distributed Content Delivery" Internet Computing, IEEE (2002)
非特許文献1の手法では、クライアントから、権威DNSサーバへの問合せ及びエッジサーバ(コンテンツ配信サーバ)を管理するDNSサーバへの問合せの2回の問合せが必ず発生する。これに伴い、クライアントで名前解決が完了するまでに2往復分の通信遅延が発生するため、応答の高速性に課題があった。
特許文献1の手法では、1台のDNSサーバに、送信元情報データベース及びDNS応答用データベースを保有することで、DNSサーバへの問合せ回数を1回に抑制できるが、2つのデータベースに対して検索を行うため、応答の高速性に課題があった。
特許文献2の手法では、検索テーブルの作成によってDNSレコードの検索回数を削減できるものの、検索テーブル作成のためのメモリ使用量は、DNSレコード数が増加するに従って増大していた。さらに、DNSサーバが管理するサービス(ドメイン)数との積のメモリ使用量が必要となるため、エッジサーバの数が制限されるなど、スケーラビリティに課題があった。
本発明は、送信元に応じて名前解決の応答を変更する場合に、高速、かつ、メモリ使用量を低減できる名前解決装置、名前解決方法及び名前解決プログラムを提供することを目的とする。
本発明に係る名前解決装置は、DNSクエリを受信するクエリ受信部と、前記DNSクエリに含まれる送信元のアドレスを、当該送信元を示す文字列である送信元情報に変換する送信元変換部と、前記DNSクエリに含まれるFQDNにおけるホスト名を前記送信元情報に基づいて一意に変換し、変換後のホスト名を名前解決するためのリクエストを所定のDNS機能部へ送信した後、当該リクエストに対する回答を前記DNS機能部から受信し、当該回答に基づいて前記DNSクエリに対する応答項目を生成するクエリ処理部と、前記応答項目に基づいてDNSレスポンスを送信するレスポンス送信部と、を備える。
前記リクエストに対する回答は、当該リクエストにおける前記変換後のホスト名とIPアドレスとが対応付けられたゾーンファイルに基づいて生成されてもよい。
前記クエリ処理部は、前記リクエストに対して、外部のネームサーバへの再帰問合せクエリを受信した場合、当該再帰問合せクエリにおけるFQDNを変換前の文字列に復元して前記ネームサーバへ送信した後、当該ネームサーバから受信した回答に基づいて、前記再帰問合せクエリに対する回答を前記DNS機能部へ送信してもよい。
前記名前解決装置は、前記再帰問合せクエリの送信先として前記ネームサーバのアドレスと組合せて設定されるポート番号に基づいて、前記DNS機能部から送信される再帰問合せクエリを前記クエリ処理部に、前記レスポンス送信部から送信される再帰問合せクエリを前記ネームサーバに送信する通信制御部を備えてもよい。
前記クエリ処理部は、前記再帰問合せクエリに対する回答において、FQDNのホスト名をワイルドカードで拡張して前記DNS機能部にキャッシュさせてもよい。
本発明に係る名前解決方法は、DNSクエリを受信するクエリ受信ステップと、前記DNSクエリに含まれる送信元のアドレスを、当該送信元を示す文字列である送信元情報に変換する送信元変換ステップと、前記DNSクエリに含まれるFQDNにおけるホスト名を前記送信元情報に基づいて一意に変換し、変換後のホスト名を名前解決するためのリクエストを所定のDNS機能部へ送信した後、当該リクエストに対する回答を前記DNS機能部から受信し、当該回答に基づいて前記DNSクエリに対する応答項目を生成するクエリ処理ステップと、前記応答項目に基づいてDNSレスポンスを送信するレスポンス送信ステップと、をコンピュータが実行する。
本発明に係る名前解決プログラムは、DNSクエリを受信するクエリ受信ステップと、前記DNSクエリに含まれる送信元のアドレスを、当該送信元を示す文字列である送信元情報に変換する送信元変換ステップと、前記DNSクエリに含まれるFQDNにおけるホスト名を前記送信元情報に基づいて一意に変換し、変換後のホスト名を名前解決するためのリクエストを所定のDNS機能部へ送信した後、当該リクエストに対する回答を前記DNS機能部から受信し、当該回答に基づいて前記DNSクエリに対する応答項目を生成するクエリ処理ステップと、前記応答項目に基づいてDNSレスポンスを送信するレスポンス送信ステップと、をコンピュータに実行させる。
本発明によれば、送信元に応じて名前解決の応答を変更する場合に、高速、かつ、メモリ使用量を低減できる。
実施形態に係る名前解決装置を含むシステムの全体構成を示す図である。 実施形態に係る名前解決装置の機能構成を示すブロック図である。 実施形態に係るゾーンファイルにおいて、IPv4が採用されている場合の記述例を示す図である。 実施形態に係るゾーンファイルにおいて、IPv6が採用されている場合の記述例を示す図である。 実施形態に係る名前解決処理の第1パターンを示すシーケンス図である。 実施形態に係る名前解決処理の第1パターンにおいて処理されるDNSメッセージを例示する図である。 実施形態に係る名前解決処理の第2パターンを示すシーケンス図である。 実施形態に係る名前解決処理の第2パターンにおいて処理されるDNSメッセージを例示する図である。
以下、本発明の実施形態の一例について説明する。
図1は、本実施形態に係る名前解決装置1を含むシステム100の全体構成を示す図である。
システム100は、名前解決装置1と、複数のクライアント2と、複数のエッジサーバ3と、クラウドサーバ4と、ルートネームサーバ5とを備え、これらの装置は、所定のネットワークを介して互いに接続されている。
名前解決装置1は、クライアント2からの要求に応じて名前解決を行うDNSサーバであり、詳細は後述する。
クライアント2は、クラウドサーバ4が提供するサービスを利用するデバイスであり、例えば、PC、スマートフォン又はセンサなど、種々のM2M(Machine to Machine)デバイスであってよい。
エッジサーバ3は、クライアント2に対してクラウドサーバ4に代わりサービスを提供するサーバであり、クライアント2が配備される現場付近に分散配備される。
クラウドサーバ4は、クライアント2に対してサービスを提供するサーバであり、データセンタなどに集中配備される。
ルートネームサーバ5は、インターネットで利用されるDNSにおいて、ツリー構造の起点となるサーバである。
図2は、本実施形態に係る名前解決装置1の機能構成を示すブロック図である。
名前解決装置1は、プラグインソフトウェアにより実装されるプラグイン機能部10と、標準DNS機能部20と、通信制御部30とを備える。
プラグイン機能部10は、クエリ受信部11と、送信元変換部12と、クエリ処理部13と、レスポンス送信部14とを備える。
標準DNS機能部20は、BINDなどのオープンソースとして公開されているバイナリファイルにより実装される名前解決処理部21と、設定ファイル群22(named.confファイル、ゾーンファイル、root.hintファイル)とを備える。
通信制御部30は、プラグイン機能部10又は標準DNS機能部20から送信されるDNSメッセージについて、送信先IPアドレス及びポート番号の組合せに基づいて、ルーティングテーブルを参照することにより、実際の送信先を決定する。本実施形態においては、ルートネームサーバ5に向けた後述の再帰問合せクエリについて、特定のポート番号が設定されたパケットの宛先がプラグイン機能部10に変更される。
クエリ受信部11は、クライアント2からDNSクエリを受信し、FQDN及び送信元IPアドレスを読み取る。送信元IPアドレスは、送信元変換部12に渡される。
送信元変換部12は、送信元IPアドレスを、標準DNS機能部20へ問い合わせるための送信元情報、すなわち送信元を一意に識別可能な文字列へ変換し、クエリ処理部に通知する。
例えば、送信元変換部12は、「12.0.0.11」という送信元IPアドレスを、ホスト名として取り扱うことのできる「12−0−0−11」という送信元情報に変換する。また、送信元変換部12は、名前解決装置1とクライアント2とが同一のネットワークドメインで使用される場合には、例えば「192.168.0.1/24」という送信元IPアドレスを、ホスト部のみの「1」という送信元情報に変換してもよい。
クエリ処理部13は、クエリ受信部11が外部装置(クライアント2又はルートネームサーバ5)から受け取ったDNSメッセージ(DNSクエリ又は再帰問合せレスポンス)を受け取る。さらに、クエリ処理部13は、送信元変換部12から送信元情報を受け取る。
クエリ処理部13は、DNSメッセージの一部を変換して、標準DNS機能部20にDNSメッセージ(Aレコードリクエスト又は再帰問合せレスポンス)を送信する。また、クエリ処理部13は、標準DNS機能部20から受け取ったDNSメッセージ(Aレコードレスポンス、再帰問合せリクエスト)を一部変換して、外部装置への送信内容(応答IPアドレス又は再帰問合せリクエスト)を、レスポンス送信部14に通知する。
レスポンス送信部14は、クエリ処理部13から送信内容を受け取り、DNSメッセージの形式にパケットを構成して、外部装置(クライアント2又はルートネームサーバ5)に送信する。
名前解決処理部21は、既存のDNSサーバが標準的に備える名前解決機能を有し、設定ファイル群22に含まれるサービス(ドメイン)毎のゾーンファイル221を参照し、FQDNに対応するIPアドレスを回答する。
設定ファイル群22は、ゾーンファイル221の他、ゾーンファイル221の格納場所などの設定情報が記述されるnamed.comfファイル222、及びルートネームサーバ5のIPアドレスが記述されるroot.hintファイル223を含む。
図3は、本実施形態に係るゾーンファイル221において、IPv4が採用されている場合の記述例を示す図である。
ゾーンファイル221は、あるドメイン(例えば、「abc.com」)における送信元情報及びホスト名と、エッジサーバ3の応答IPアドレスとの対応関係を示すAレコードを含む。
Aレコードは、「(送信元情報).(ホスト名) IN A (応答IPアドレス)」の形式で記述される。例えば、「12−0−0−11.www IN A 11.0.0.11」は、送信元IPアドレス「12.0.0.11」から、FQDN「www.abc.com」の問合せがあった場合に、エッジサーバ3のIPアドレス「11.0.0.11」を応答するという意味である。
また、ゾーンファイル内の最後のAレコード「*.(ホスト名) IN A (クラウドサーバに相当する応答IPアドレス)」は、ゾーンファイル221に適切なエッジサーバ3の登録がない場合に、クラウドサーバ4のIPアドレスを応答するための記述である。
図4は、本実施形態に係るゾーンファイル221において、IPv6が採用されている場合の記述例を示す図である。
IPv6の場合は、Aレコードの代わりに、AAAAレコードが記述され、IPv4の場合と同様に、送信元情報及びホスト名と、エッジサーバ3の応答IPアドレスとの対応関係が示される。
図5は、本実施形態に係る名前解決処理の第1パターンを示すシーケンス図である。
第1パターンは、クライアントから受信したDNSクエリのFQDNに対して、対象ドメインのゾーンファイル221が標準DNS機能部20に存在する場合の処理である。
ステップS1において、プラグイン機能部10(クエリ受信部11)は、クライアント2からDNSクエリを受信する。
ステップS2において、プラグイン機能部10(クエリ受信部11)は、DNSクエリから送信元IPアドレス及びFQDNを取得する。クエリ受信部11は、取得した送信元IPアドレスを送信元変換部12へ通知する。
ステップS3において、プラグイン機能部10(送信元変換部12)は、送信元IPアドレス(例えば、「12.0.0.11」)を送信元情報(例えば、「12−0−0−11」)に変換する。送信元変換部12は、送信元情報をクエリ処理部13へ通知する。
ステップS4において、プラグイン機能部10(クエリ処理部13)は、クエリ受信部11からFQDN(例えば、「www.abc.com」)を、送信元変換部12から送信元情報(例えば、「12−0−0−11」)を受け取り、標準DNS機能部20に問合せるためのAレコードリクエストを作成する。Aレコードリクエストは、DNSメッセージの形式に則って作成される。メッセージ内の問合せFQDNは、受け取ったFQDN及び送信元情報を組合せ、例えば「12−0−0−11.www.abc.com」と記述される。
ステップS5において、プラグイン機能部10(クエリ処理部13)は、標準DNS機能部20に対して、Aレコードリクエストを送信し、Aレコードの問合せを行う。
ステップS6において、標準DNS機能部20(名前解決処理部21)は、受信したAレコードリクエスト内のFQDNに対応するドメインのゾーンファイル221が存在するか否かを判定する。本処理の第1パターンでは、この判定がYESとなり、処理はステップS7に進む。
ステップS7において、標準DNS機能部20(名前解決処理部21)は、Aレコードリクエストに対して名前解決を実施する。具体的には、名前解決処理部21は、ゾーンファイル221内のホスト名(例えば、「12−0−0−11.www」)を探索し、該当のAレコードに記述されているIPアドレス(例えば、「11.0.0.11」)を名前解決する。
ここで、ゾーンファイル221に対象のホスト名がない場合、例えば、送信元IPアドレスが「12.0.0.14」であり、リクエストされたホスト名が「12−0−0−14.www」の場合、「*.www」のAレコードに該当するので、名前解決処理部21は、クラウドサーバのIPアドレス(例えば、「10.0.0.11」)を名前解決する。
ステップS8において、標準DNS機能部20(名前解決処理部21)は、名前解決結果をDNSメッセージとして構成し、Aレコードレスポンスとしてプラグイン機能部10(クエリ処理部13)へ送信する。
ステップS9において、プラグイン機能部10(クエリ処理部13)は、クライアント2に応答する項目を生成する。具体的には、クエリ処理部13は、DNSレスポンスの内容となる項目として、Aレコードレスポンス内のFQDN(例えば、「12−0−0−11.www.abc.com」)を元のDNSクエリのFQDN(例えば、「www.abc.com」)に変換し、FQDN及び応答IPアドレスを、レスポンス送信部14に通知する。
ステップS10において、プラグイン機能部10(レスポンス送信部14)は、レスポンスの内容をDNSメッセージとして構成し、クライアント2へDNSレスポンスを返信する。
図6は、本実施形態に係る名前解決処理の第1パターンにおいて処理されるDNSメッセージを例示する図である。
クエリ受信部11が受信するDNSクエリ(1)は、送信元IPアドレス、送信先IPアドレス、送信先ポート番号及びFQDNを含む。
クエリ処理部13は、Aレコードリクエスト(2)において、送信元IPアドレスに自分自身を、送信先IPアドレスに自分自身を表す仮想アドレスであるループバックアドレス「127.0.0.1」を設定する。また、FQDNには、送信元IPアドレスを一意に示す文字列にホスト名が変換されて設定される。
ここで、ポート番号は、プラグイン機能部10及び標準DNS機能部20のそれぞれにおいて、DNSメッセージを受信する際に衝突が発生しないように別々に設定される。具体的には、名前解決装置1がDNSメッセージを受信するポート番号である53番がプラグイン機能部10に割り当てられ、未使用の特定ポート(例えば、10053番)が標準DNS機能部20に割り当てられる。
名前解決処理部21からクエリ処理部13に返信されるAレコードレスポンス(3)には、FQDNに対応するエッジサーバ3のIPアドレスが回答として設定される。
なお、ポート番号には、クエリ処理部13がAレコードリクエストを送信した際に使用した送信元ポート番号が設定される。
レスポンス送信部14は、DNSレスポンス(4)において、送信先IPアドレスをクライアント2に、ポート番号をクライアント2がDNSクエリ送信時に使用した番号に設定する。そして、FQDNは、クエリ処理部13によりDNSクエリと同じ文字列に復元される。
図7は、本実施形態に係る名前解決処理の第2パターンを示すシーケンス図である。
第2パターンは、クライアントから受信したDNSクエリのFQDNに対して、対象ドメインのゾーンファイル221が標準DNS機能部20に存在しない場合(図5のステップS6で判定がNOの場合)の処理である。
ステップS1〜S5は、第1パターン(図5)と共通である。
ステップS6において、標準DNS機能部20(名前解決処理部21)は、受信したAレコードリクエスト内のFQDNに対応するドメインのゾーンファイル221が存在するか否かを判定する。本処理の第2パターンでは、この判定がNOとなり、処理はステップS11に進む。
ステップS11において、標準DNS機能部20(名前解決処理部21)は、root.hintファイル222に記載されたルートネームサーバ5に向けての再帰問合せクエリを作成する。例えば、IPアドレスが「198.97.190.53」のルートネームサーバ5に対して、Aレコードリクエストに記述された「12−0−0−11.www.def.com」の再帰問合せクエリが作成される。
ステップS12において、プラグイン機能部10(クエリ処理部13)は、標準DNS機能部20から再帰問合せクエリを受信する。このとき、クエリ処理部13は、DNSメッセージヘッダ内のRD(再帰要求)ビットによって、受信したDNSメッセージが再帰問合せクエリであることを確認する。
ここで、再帰問合せクエリの送信先IPアドレスはルートネームサーバ5のものであるが、特定のIPアドレス及びポート番号の組合せであることから、名前解決装置1の外部へは送信されず、プラグイン機能部10が受け取る。
ステップS13において、プラグイン機能部10(クエリ処理部13)は、標準DNS機能部20から受信した再帰問合せクエリのFQDN(例えば、「12−0−0−11.www.def.com」)を元のDNSクエリのFQDN(例えば、「www.def.com」)に変換して、レスポンス送信部14に通知する。
ステップS14において、プラグイン機能部10(レスポンス送信部14)は、ルートネームサーバ5に向けて再帰問合せクエリを送信する。
ステップS15において、プラグイン機能部10(クエリ受信部11)は、ルートネームサーバ5から、再帰問合せレスポンスを受信する。クエリ受信部11は、再帰問合せレスポンスの内容である応答IPアドレス(例えば、「10.0.0.101」)及びFQDN(例えば、「www.def.com」)を読み取り、クエリ処理部13に通知する。
ステップS16において、プラグイン機能部10(クエリ処理部13)は、受け取ったFQDN(例えば、「www.def.com」)にワイルドカードの「*.」を付加し(例えば、「*.www.def.com」)、これをFQDNとする標準DNS機能部20向けの再帰問合せレスポンスを作成する。
ステップS17において、プラグイン機能部10(クエリ処理部13)は、標準DNS機能部20に対して、再帰問合せレスポンスを送信する。
ステップS18において、標準DNS機能部20(名前解決処理部21)は、再帰問合せレスポンスの結果をキャッシュし、応答IPアドレスを含むAレコードレスポンスを作成する。標準DNS機能部20は、キャッシュすることにより、拡張されたFQDN(例えば、「*.www.def.com」)に対して再度Aレコードリクエストを受信した場合に、再帰問合せを行わずに直接IPアドレスを応答できる。
ステップS19において、標準DNS機能部20(名前解決処理部21)は、Aレコードレスポンスをプラグイン機能部10(クエリ処理部13)に送信する。
ステップS20において、プラグイン機能部10(クエリ処理部13)は、Aレコードレスポンス内のFQDN(例えば、「*.www.def.com」)を元のDNSクエリのFQDN(例えば、「www.def.com」)に変換してDNSレスポンスの項目を生成し、FQDN及び応答IPアドレスをレスポンス送信部14に通知する。
ステップS21において、プラグイン機能部10(レスポンス送信部14)は、クライアント2に向けてDNSレスポンスを返信する。
図8は、本実施形態に係る名前解決処理の第2パターンにおいて処理されるDNSメッセージを例示する図である。
クエリ受信部11が受信するDNSクエリ(1)及びAレコードリクエスト(2)は、第1パターン(図6)と比べてFQDNが異なっている。
標準DNS機能部20からプラグイン機能部10に対する再帰問合せクエリ(3)は、送信先IPアドレスがルートネームサーバ5を示し、ポート番号がAレコードリクエストと同一の「10053」となっている。この送信先IPアドレス及びポート番号の組合せに基づいて、通信制御部30により、再帰問合せクエリの宛先がプラグイン機能部10に変更される。
プラグイン機能部10からルートネームサーバ5に対する再帰問合せクエリ(4)では、FQDNが送信元情報を含まない変換前の状態に復元される。また、ポート番号が標準の「53」に設定されることにより、通信制御部30は、宛先を変更することなく、再帰問合せクエリをルートネームサーバ5へ送信する。
ルートネームサーバ5からプラグイン機能部10に対する再帰問合せレスポンス(5)では、FQDNに対するクラウドサーバ4のIPアドレスが回答される。ポート番号には、プラグイン機能部10が再帰問合せクエリを送信した際に使用した送信元ポート番号が設定される。
プラグイン機能部10から標準DNS機能部20に対する再帰問合せレスポンス(6)では、FQDNがワイルドカード「*.」により拡張され、IPアドレスが回答される。ポート番号には、標準DNS機能部20が再帰問合せクエリを送信した際に使用した送信元ポート番号が設定される。
標準DNS機能部20からプラグイン機能部10に返信されるAレコードレスポンス(7)には、再帰問合せレスポンスにより得られたクラウドサーバ4のIPアドレスが回答として設定される。ポート番号には、プラグイン機能部10がAレコードリクエストを送信した際に使用した送信元ポート番号が設定される。
DNSレスポンス(8)において、送信先IPアドレスはクライアント2に、ポート番号はクライアント2がDNSクエリを送信した際に使用した番号に設定され、クラウドサーバ4のIPアドレスが回答される。このとき、FQDNは、受信したDNSクエリと同じ文字列に復元される。
本実施形態によれば、名前解決装置1は、プラグイン機能部10がクライアント2から受け取るDNSクエリのFQDNに送信元情報を付加して標準DNS機能部20に問合せを実施する。これにより、同一サーバ(名前解決装置1)内で送信元に応じて応答を変更可能となるため、名前解決における問合せ回数が削減され、標準DNS機能部20内のゾーンファイル221に送信元情報とエッジサーバ3のIPアドレスとの対応関係を記述することにより検索回数が削減される。
さらに、名前解決装置1は、標準DNS機能部20内のゾーンファイル221に対して検索を行うことにより検索テーブル(ハッシュテーブル)を新たに作成する必要がないので、メモリ使用量を削減できる。
したがって、名前解決装置1は、送信元に応じて名前解決の応答を変更する場合に、高速、かつ、メモリ使用量を低減できる。
また、名前解決装置1は、プラグイン機能部10と標準DNS機能部20とが分離されており、双方を独立に開発することが可能になる。すなわち、標準DNS機能部20を実現する標準ソフトウェアは広く普及しており、安全性向上のため頻繁にアップグレードが行われるが、このアップグレードに伴うプラグイン機能部10への実装は不要である。これにより、開発、テスト及びメンテナンスにおける工数の削減、並びに脆弱性への素早い対応が可能といった効果も期待できる。
また、名前解決装置1は、標準DNS機能部20において対象のゾーンファイル221がないために名前解決できない場合にも、プラグイン機能部10が再帰問合せにおけるFQDNを復元してルートネームサーバ5に問合せ、標準DNS機能部20に応答できる。したがって、名前解決装置1は、標準DNS機能部20の状況に応じた複数種類のDNSメッセージを処理し、クライアント2へ適切に応答できる。
このとき、名前解決装置1は、再帰問合せにおける送信先IPアドレス及びポート番号の組合せを参照してルートネームサーバ5を宛先とするDNSメッセージをプラグイン機能部10で中継できる。したがって、名前解決装置1は、名前解決処理部21を改変することなくFQDNを適切に変換して再帰問合せに対応できる。
また、名前解決装置1は、再帰問合せに応じて取得した応答IPアドレスを、ワイルドカードにより拡張したホスト名と対応付けてキャシュするので、同一ドメインに対する次回の名前解決要求に対して効率的に応答できる。
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
名前解決装置1による名前解決方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(名前解決装置1)にインストールされる。また、これらのプログラムは、CD−ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。
1 名前解決装置
2 クライアント
3 エッジサーバ
4 クラウドサーバ
5 ルートネームサーバ
10 プラグイン機能部
11 クエリ受信部
12 送信元変換部
13 クエリ処理部
14 レスポンス送信部
20 標準DNS機能部
21 名前解決処理部
22 設定ファイル群
30 通信制御部
100 システム
221 ゾーンファイル
222 named.confファイル
223 root.hintファイル

Claims (7)

  1. DNSクエリを受信するクエリ受信部と、
    前記DNSクエリに含まれる送信元のアドレスを、当該送信元を示す文字列である送信元情報に変換する送信元変換部と、
    前記DNSクエリに含まれるFQDNにおけるホスト名を前記送信元情報に基づいて一意に変換し、変換後のホスト名を名前解決するためのリクエストを所定のDNS機能部へ送信した後、当該リクエストに対する回答を前記DNS機能部から受信し、当該回答に基づいて前記DNSクエリに対する応答項目を生成するクエリ処理部と、
    前記応答項目に基づいてDNSレスポンスを送信するレスポンス送信部と、を備える名前解決装置。
  2. 前記リクエストに対する回答は、当該リクエストにおける前記変換後のホスト名とIPアドレスとが対応付けられたゾーンファイルに基づいて生成される請求項1に記載の名前解決装置。
  3. 前記クエリ処理部は、前記リクエストに対して、外部のネームサーバへの再帰問合せクエリを受信した場合、当該再帰問合せクエリにおけるFQDNを変換前の文字列に復元して前記ネームサーバへ送信した後、当該ネームサーバから受信した回答に基づいて、前記再帰問合せクエリに対する回答を前記DNS機能部へ送信する請求項1又は請求項2に記載の名前解決装置。
  4. 前記再帰問合せクエリの送信先として前記ネームサーバのアドレスと組合せて設定されるポート番号に基づいて、前記DNS機能部から送信される再帰問合せクエリを前記クエリ処理部に、前記レスポンス送信部から送信される再帰問合せクエリを前記ネームサーバに送信する通信制御部を備える請求項3に記載の名前解決装置。
  5. 前記クエリ処理部は、前記再帰問合せクエリに対する回答において、FQDNのホスト名をワイルドカードで拡張して前記DNS機能部にキャッシュさせる請求項4に記載の名前解決装置。
  6. DNSクエリを受信するクエリ受信ステップと、
    前記DNSクエリに含まれる送信元のアドレスを、当該送信元を示す文字列である送信元情報に変換する送信元変換ステップと、
    前記DNSクエリに含まれるFQDNにおけるホスト名を前記送信元情報に基づいて一意に変換し、変換後のホスト名を名前解決するためのリクエストを所定のDNS機能部へ送信した後、当該リクエストに対する回答を前記DNS機能部から受信し、当該回答に基づいて前記DNSクエリに対する応答項目を生成するクエリ処理ステップと、
    前記応答項目に基づいてDNSレスポンスを送信するレスポンス送信ステップと、をコンピュータが実行する名前解決方法。
  7. DNSクエリを受信するクエリ受信ステップと、
    前記DNSクエリに含まれる送信元のアドレスを、当該送信元を示す文字列である送信元情報に変換する送信元変換ステップと、
    前記DNSクエリに含まれるFQDNにおけるホスト名を前記送信元情報に基づいて一意に変換し、変換後のホスト名を名前解決するためのリクエストを所定のDNS機能部へ送信した後、当該リクエストに対する回答を前記DNS機能部から受信し、当該回答に基づいて前記DNSクエリに対する応答項目を生成するクエリ処理ステップと、
    前記応答項目に基づいてDNSレスポンスを送信するレスポンス送信ステップと、をコンピュータに実行させるための名前解決プログラム。
JP2016062569A 2016-03-25 2016-03-25 名前解決装置、名前解決方法及び名前解決プログラム Active JP6487870B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016062569A JP6487870B2 (ja) 2016-03-25 2016-03-25 名前解決装置、名前解決方法及び名前解決プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016062569A JP6487870B2 (ja) 2016-03-25 2016-03-25 名前解決装置、名前解決方法及び名前解決プログラム

Publications (2)

Publication Number Publication Date
JP2017175567A true JP2017175567A (ja) 2017-09-28
JP6487870B2 JP6487870B2 (ja) 2019-03-20

Family

ID=59972263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016062569A Active JP6487870B2 (ja) 2016-03-25 2016-03-25 名前解決装置、名前解決方法及び名前解決プログラム

Country Status (1)

Country Link
JP (1) JP6487870B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005318653A (ja) * 2005-06-20 2005-11-10 Nec Corp 名前解決サーバおよびパケット転送装置
JP2007243356A (ja) * 2006-03-06 2007-09-20 Nippon Telegr & Teleph Corp <Ntt> Dnsサーバクライアントシステム、dnsサーバ装置、キャッシュサーバ装置、dnsクエリ要求制御方法およびdnsクエリ要求制御プログラム
JP2008206081A (ja) * 2007-02-22 2008-09-04 Furukawa Electric Co Ltd:The マルチホーミング通信システムに用いられるデータ中継装置およびデータ中継方法
US20140019641A1 (en) * 2011-03-25 2014-01-16 Nec Corporation Communication device, communication system, and communication method
JP2015149540A (ja) * 2014-02-05 2015-08-20 三菱電機インフォメーションシステムズ株式会社 データ構造、dns検索用レコード生成装置、dnsレコード検索装置およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005318653A (ja) * 2005-06-20 2005-11-10 Nec Corp 名前解決サーバおよびパケット転送装置
JP2007243356A (ja) * 2006-03-06 2007-09-20 Nippon Telegr & Teleph Corp <Ntt> Dnsサーバクライアントシステム、dnsサーバ装置、キャッシュサーバ装置、dnsクエリ要求制御方法およびdnsクエリ要求制御プログラム
JP2008206081A (ja) * 2007-02-22 2008-09-04 Furukawa Electric Co Ltd:The マルチホーミング通信システムに用いられるデータ中継装置およびデータ中継方法
US20140019641A1 (en) * 2011-03-25 2014-01-16 Nec Corporation Communication device, communication system, and communication method
JP2015149540A (ja) * 2014-02-05 2015-08-20 三菱電機インフォメーションシステムズ株式会社 データ構造、dns検索用レコード生成装置、dnsレコード検索装置およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
藤原 和典: "2011年のアドレス枯渇に備える IPv6ネットワークの作り方", 日経コミュニケーション 第534号 NIKKEI COMMUNICATIONS, JPN6019003733, 15 May 2009 (2009-05-15), JP, pages 第52-55頁 *

Also Published As

Publication number Publication date
JP6487870B2 (ja) 2019-03-20

Similar Documents

Publication Publication Date Title
US11632420B2 (en) Point of presence management in request routing
EP2266064B1 (en) Request routing
EP2695358B1 (en) Selection of service nodes for provision of services
US7194553B2 (en) Resolving virtual network names
CN110460652B (zh) 一种资源获取方法及边缘计算调度服务器
JP6054490B2 (ja) ネットワークにおけるコンテンツにアクセスする方法および対応するシステム
CN103051740B (zh) 域名解析方法、dns服务器及域名解析系统
US8214537B2 (en) Domain name system using dynamic DNS and global address management method for dynamic DNS server
KR101914318B1 (ko) 수정된 호스트네임을 사용하는 글로벌 트래픽 관리 기법
US9319377B2 (en) Auto-split DNS
JP6588477B2 (ja) リモート情報クエリの方法及びサーバ
US20200382465A1 (en) Client subnet efficiency by equivalence class aggregation
CN108632221B (zh) 定位内网中的受控主机的方法、设备及系统
WO2017177437A1 (zh) 一种域名解析方法、装置及系统
CN109067936A (zh) 一种域名解析的方法及装置
CN107786594B (zh) 业务请求处理方法及装置
EP2719118B1 (en) Routing by resolution
JP6484166B2 (ja) 名前解決装置、名前解決方法及び名前解決プログラム
US11070513B2 (en) DNS-based method of transmitting data
JP6487870B2 (ja) 名前解決装置、名前解決方法及び名前解決プログラム
CN108768853B (zh) 基于域名路由器的分布式混合域名系统及方法
JP2013126219A (ja) 転送サーバおよび転送プログラム
CN114268605B (zh) 一种智能dns实现方法、装置及计算机存储介质
JP2008206081A (ja) マルチホーミング通信システムに用いられるデータ中継装置およびデータ中継方法
CN115396399A (zh) 域名资源访问方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190222

R150 Certificate of patent or registration of utility model

Ref document number: 6487870

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150