(58)【調査した分野】(Int.Cl.,DB名)
前記処理決定部は、前記アドレス形式がIPv4タイプで、かつ、前記クエリタイプがAAAAレコードを示す場合、及び、前記アドレス形式がIPv6タイプで、かつ、前記クエリタイプがAレコードを示す場合、前記DNSクエリパケットに対応する処理を拒絶処理に決定する、
請求項1に記載のエージェント装置。
前記拒絶処理の決定は、前記アドレス形式がIPv4タイプで、かつ、前記クエリタイプがAAAAレコードを示す場合、及び、前記アドレス形式がIPv6タイプで、かつ、前記クエリタイプがAレコードを示す場合、前記DNSクエリパケットに対応する処理を拒絶処理に決定する、
請求項6に記載の通信中継方法。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態について説明する。なお、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。
【0021】
[第1実施形態]
図1は、第1実施形態に係るエージェント装置10の構成例を概念的に示す図である。
【0022】
エージェント装置10は、クライアント装置1とDNSサーバ装置5とを結ぶ通信経路7の途中に設けられる。当該通信経路7の途中とは、クライアント装置1の通信インタフェースからDNSサーバ装置5の通信インタフェースまでを結ぶ通信経路上のいずれの位置であっても構わないことを意味する。例えば、エージェント装置10は、
図1に示すようにクライアント装置1とDNSサーバ装置5とは別体として設けられてもよいし、クライアント装置1内又はDNSサーバ装置5内に設けられてもよい。以降、クライアント装置1及びDNSサーバ装置5をクライアント1及びDNSサーバ5と表記する場合もある。
【0023】
エージェント装置10は、捕獲部11、処理決定部13、返信部15、中継部17等を有する。これら各処理部は、個々に又は複数組み合わせられた状態で、少なくとも1つのハードウェア構成要素として実現されてもよいし、少なくとも1つのソフトウェア構成要素として実現されてもよいし、ハードウェア構成要素及びソフトウェア構成要素の組み合わせにより実現されてもよい。
【0024】
ハードウェア構成要素とは、例えば、フィールド・プログラマブル・ゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、ゲートアレイ、論理ゲートの組み合わせ、信号処理回路、アナログ回路等のようなハードウェア回路である。ソフトウェア構成要素とは、1又は複数のメモリ上のデータ(プログラム)が1又は複数のプロセッサ(例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等)で実行されることにより実現される、タスク、プロセス、関数のようなソフトウェア部品(断片)である。各処理部がソフトウェア構成要素として実現される場合には、エージェント装置10は、CPU、メモリ、入出力インタフェース等を有する。なお、本実施形態は、エージェント装置10のハードウェア構成を限定しない。
【0025】
エージェント装置10の各処理部の詳細については後述する。
【0026】
クライアント装置1は、PC(Personal Computer)、携帯型PC、携帯電話等のような一般的な情報処理端末である。クライアント装置1は、WEBサーバ等のような任意の情報サーバ9やDNSサーバ装置5にアクセスしデータを受け得る一般的な通信機能を有するものであればよい。例えば、情報サーバ9とクライアント装置1との間のインタフェースにはWEBシステムが利用される。クライアント装置1は、一般的な通信機能によりDNSサーバ装置5及び情報サーバ9とIP通信を行う。なお、本実施形態は、クライアント装置1のハードウェア構成及び機能構成を限定しない。
【0027】
本実施形態におけるクライアント装置1は、情報サーバ9へのアクセスを開始するために、上述のプレシーケンスを実行する。具体的には、クライアント装置1は、名前解決処理の1つとして、DNS正引き処理を実行することにより、情報サーバ9のIPアドレスをDNSサーバ装置5から取得する。同様に、クライアント装置1は、名前解決処理の1つとして、DNS逆引き処理を実行することにより、情報サーバ9のFQDN(Fully Qualified Domain Name)をDNSサーバ装置5から取得する。
【0028】
DNSサーバ装置5は、一般的なDNSサーバ群の中のいずれか1つを意味する。本実施形態では、特に個々のDNSサーバ装置を区別しない。本実施形態は、DNSサーバ装置5のハードウェア構成及び機能構成を限定しない。
【0029】
〔エージェント装置10の各処理部〕
捕獲部11は、クライアント装置1から送信されたDNSクエリパケットを捕獲する。この捕獲とは、DNSサーバ装置5宛てのパケットのデータを取得し、かつ、DNSサーバ装置5に到達しないようにエージェント装置10で遮断することを意味する。例えば、捕獲部11は、UDPプロトコルであって、かつ、送信先ポート番号が53に設定されたパケットをDNSクエリパケットとして捕獲する。
【0030】
処理決定部13は、捕獲部11により捕獲されたDNSクエリパケットを解析することにより、当該DNSクエリパケットに対応する処理を決定する。具体的には、処理決定部13は、捕獲されたDNSクエリパケットに設定されている送信元アドレス、クエリの対象情報の種類を示すクエリタイプ、又は、クエリのキー情報となるクエリ名に基づいて、当該DNSクエリパケットに対応する処理を決定する。送信元アドレスは、IPアドレス又はMAC(Media Access Control address)アドレス(L2アドレス)である。第1実施形態では、処理決定部13により決定される処理は、許可又は拒絶である。
【0031】
例えば、処理決定部13は、以下のような手法により処理を決定する。なお、許可処理と拒絶処理とは表裏関係にあるため、どちらの処理が主導で決められてもよいが、以下の説明では、拒絶処理が主導で決定される例を示す。
【0032】
第1の手法では、所定のIPアドレスが送信元IPアドレスフィールドに設定されているDNSクエリパケットが捕獲された場合には、処理決定部13は、そのDNSクエリパケットに対応する処理を拒絶処理に決定する。また、所定のIPアドレス以外が送信元IPアドレスフィールドに設定されているDNSクエリパケットが捕獲された場合に、処理決定部13は、そのDNSクエリパケットに対応する処理を拒絶処理に決定してもよい。
【0033】
第2の手法では、所定のMACアドレスが送信元L2アドレスフィールドに設定されているDNSクエリパケットが捕獲された場合には、処理決定部13は、そのDNSクエリパケットに対応する処理を拒絶処理に決定する。同様に、所定のMACアドレス以外が送信元L2アドレスフィールドに設定されているDNSクエリパケットが捕獲された場合に、処理決定部13は、そのDNSクエリパケットに対応する処理を拒絶処理に決定してもよい。
【0034】
第3の手法では、クエリタイプがAレコード以外を示すDNSクエリパケットが捕獲された場合には、処理決定部13は、そのDNSクエリパケットに対応する処理を拒絶処理に決定する。逆に、クエリタイプがAAAAレコード以外を示すDNSクエリパケットが捕獲された場合に、処理決定部13は、そのDNSクエリパケットに対応する処理を拒絶処理に決定してもよい。
【0035】
第4の手法では、クエリタイプがPTRレコードを示し、かつ、クエリ名が所定ドメイン名(例えば、「.ip6.arpa.」)を含むDNSクエリパケットが捕獲された場合に、処理決定部13は、そのDNSクエリパケットに対応する処理を拒絶処理に決定する。
【0036】
更に、第5の手法として、処理決定部13は、送信元IPアドレスのアドレス形式がIPv4タイプかIPv6タイプかを識別し、識別されたアドレス形式とクエリタイプとの組み合わせに基づいて、DNSクエリパケットに対応する処理を決定するようにしてもよい。具体的には、処理決定部13は、アドレス形式がIPv4タイプで、かつ、クエリタイプがAAAAレコードを示すDNSクエリパケットが捕獲された場合、及び、アドレス形式がIPv6タイプで、かつ、クエリタイプがAレコードを示すDNSクエリパケットが捕獲された場合、当該DNSクエリパケットに対応する処理を拒絶処理に決定する。
【0037】
返信部15は、処理決定部13により、対応する処理が拒絶処理に決定されたDNSクエリパケットの送信元に、否定応答(NACK)パケットを返信する。この否定応答パケットの送信先アドレスには、当該DNSクエリパケットの送信元アドレスが利用される。
【0038】
中継部17は、処理決定部13により、対応する処理が許可処理に決定されたDNSクエリパケットをDNSサーバ装置5方向に送出する。
【0039】
〔動作例〕
図2は、第1実施形態に係るエージェント装置10の動作例を概念的に示す図である。
【0040】
クライアント装置1からDNSサーバ装置5宛てにDNSクエリパケットが送信されると、エージェント装置10の捕獲部11がそのDNSクエリパケットを捕獲する(S20)。即ち、クライアント装置1から送信されたDNSクエリパケットは、DNSサーバ装置5まで到達しない。
【0041】
エージェント装置10では、処理決定部13が、捕獲されたDNSクエリパケットを解析することにより、当該DNSクエリパケットに対応する処理を決定する(S21)。この解析では、DNSクエリパケットに設定されている送信元MACアドレス、送信元IPアドレス、クエリタイプ、及びクエリ名の少なくとも1つが利用される。
【0042】
決定された処理が許可処理である場合に、中継部17は、当該DNSクエリパケットをDNSサーバ装置5方向に送出する(S22)。これにより、DNSサーバ装置5は、DNSクエリパケットで要求されるIPアドレス又はFQDNを抽出し、このIPアドレス又はFQDNを含めたレスポンスパケットをクライアント装置1宛てに送信する。結果、クライアント装置1は、DNSクエリパケットに対応するレスポンスパケットを受信することにより、情報サーバ9のIPアドレスを取得することができ、ひいては、情報サーバ9との通信を開始することができる(メインシーケンス)。
【0043】
一方で、決定された処理が拒絶処理である場合には、中継部17は、当該DNSクエリパケットの送信元であるクライアント装置1宛てに、否定応答を送信する(S23)。これにより、クライアント装置1は、DNSクエリパケットで要求した情報サーバ9のIPアドレスを取得することができず、情報サーバ9にアクセスすることができない。
【0044】
〔第1実施形態における作用及び効果〕
上述のように、第1実施形態におけるエージェント装置10では、クライアント装置1からDNSサーバ装置5宛てに送信されたDNSクエリパケットが捕獲され、このDNSクエリパケットが解析される。この解析により、DNSクエリパケットがDNSサーバ装置5へ転送されるか否かが決定される。転送されないことが決定された場合、送信元のクライアント装置1へ否定応答が送信される。
【0045】
このように、第1実施形態では、エージェント装置10においてDNSクエリが所定条件でフィルタリングされる。このフィルタリングによれば、DNSクエリの応答を返すべきクライアント装置1を適切に取捨選択する(認証する)ことができる。また、このフィルタリングによれば、クライアント装置1に提供されるIPアドレスのバージョンを適切に選択することができる。更に、上述の第5の手法によれば、送信元IPアドレスのバージョンを識別することにより、送信元のクライアント装置1がサポートしているIPバージョンを特定し、その特定されたIPバージョンに適合するIPアドレスがDNSサーバ装置5から提供されるようにすることができる。即ち、第1実施形態によれば、DNSクエリを適切に制御することができる。
【0046】
一方で、第1実施形態によれば、エージェント装置10でDNSクエリが拒絶されたとしても、否定応答が必ず返信されるため、クライアント装置1は、フリーズすることなく即座に他の対応を取ることができる。
【実施例1】
【0047】
ここで、上述の処理決定部13における処理決定手法の具体例を実施例1として説明する。処理決定部13は、
図3から
図10に示すような、処理設定データを保持し、この処理設定データの内容に基づいて、捕獲されたDNSクエリパケットに対応する処理を決定するようにしてもよい。処理設定データには、送信元L2アドレス(Client L2 Addressと表記)、送信元IPアドレス(Client IP Addressと表記)、クエリタイプ、クエリ名、及び、アクション情報(Actionと表記)が格納される。処理決定部13は、処理設定データに設定される、送信元L2アドレス、送信元IPアドレス、クエリタイプ及びクエリ名の少なくとも1つを用いた複数の条件のうち、捕獲されたDNSクエリパケットに合致する条件を特定し、この特定された条件に対応するアクション情報を、当該DNSクエリパケットに対応する処理に決定する。
【0048】
図3は、処理設定データの第1例(Permit_Node_by_IP)を示す図である。第1例の処理設定データを参照した処理決定部13は、送信元IPアドレスがIP_A又はIP_Bを示すDNSクエリパケットに対応する処理を許可処理に決定する。アクション情報の「NR(Normal Resolving)」は、捕獲されたDNSクエリパケットをDNSサーバ装置5へ転送することを示し、「SR.NoAnswer」は、転送することなくエージェント装置10自身が否定応答をクライアント装置1へ返すことを示す。このような第1例によれば、DNSクエリの応答を受け取るべきクライアント装置1のIPアドレスのみをこの処理設定データに設定しさえすれば、それ以外のクライアントに当該応答が返らないようにすることができる。
【0049】
図4は、処理設定データの第2例(Permit_Nodes_by_L2)を示す図である。第2例の処理設定データを参照した処理決定部13は、送信元L2アドレスがMAC_Xを示すDNSクエリパケットに対応する処理を許可処理に決定する。第2例によれば、DNSクエリの応答を受け取るべきクライアント装置1のMACアドレスのみをこの処理設定データに設定しさえすれば、それ以外のクライアントに当該応答が返らないようにすることができる。
【0050】
図5は、処理設定データの第3例(Deny_Nodes_by_IP)を示す図である。第3例の処理設定データを参照した処理決定部13は、送信元IPアドレスがIP_A又はIP_Bを示すDNSクエリパケットに対応する処理を拒絶処理に決定する。第3例によれば、DNSクエリの応答を受け取らせたくないクライアント装置1のIPアドレスをこの処理設定データに設定しさえすれば、そのクライアント装置1に当該応答が返らないようにすることができる。
【0051】
図6は、処理設定データの第4例(Deny_Nodes_by_L2)を示す図である。第4例の処理設定データを参照した処理決定部13は、送信元L2アドレスがMAC_Xを示すDNSクエリパケットに対応する処理を拒絶処理に決定する。第4例によれば、DNSクエリの応答を受け取らせたくないクライアント装置1のMACアドレスをこの処理設定データに設定しさえすれば、そのクライアント装置1に当該応答が返らないようにすることができる。
【0052】
図7は、処理設定データの第5例(A_Only)を示す図である。第5例の処理設定データを参照した処理決定部13は、クエリタイプがAレコードを示すDNSクエリパケットに対応する処理を許可処理に決定し、クエリタイプがAAAAレコードを示すDNSクエリパケットに対応する処理を拒絶処理に決定する。第5例によれば、DNSクエリの応答で返すべきIPアドレスをIPv4のみに制限することができる。
【0053】
図8は、処理設定データの第6例(AAAA_Only)を示す図である。第6例の処理設定データを参照した処理決定部13は、クエリタイプがAレコードを示すDNSクエリパケットに対応する処理を拒絶処理に決定し、クエリタイプがAAAAレコードを示すDNSクエリパケットに対応する処理を許可処理に決定する。第6例によれば、DNSクエリの応答で返すべきIPアドレスをIPv6のみに制限することができる。
【0054】
図9は、処理設定データの第7例(Hetero Deny (Homo_Permit))を示す図である。第7例の処理設定データを参照した処理決定部13は、アドレス形式がIPv4タイプで、かつ、クエリタイプがAAAAレコードを示すDNSクエリパケットに対応する処理を拒絶処理に決定し、アドレス形式がIPv4タイプで、かつ、クエリタイプがAレコードを示すDNSクエリパケットに対応する処理を許可処理に決定する。更に、処理決定部13は、アドレス形式がIPv6タイプで、かつ、クエリタイプがAレコードを示すDNSクエリパケットに対応する処理を拒絶処理に決定し、アドレス形式がIPv6タイプで、かつ、クエリタイプがAAAAレコードを示すDNSクエリパケットに対応する処理を許可処理に決定する。
【0055】
DNSクエリパケットの送信元IPアドレスにIPv4アドレスが設定されている場合、送信元のクライアント装置1は、IPv6をサポートするプロトコルスタックを持つとは限らないが、必ず、IPv4をサポートするプロトコルスタックは持つはずである。また、そのようなクライアント装置1が通信相手に希望する情報サーバ9についても同様に、DNSサーバ装置5にIPv6アドレスが登録されているとは限らない。第7例によれば、上述のように、IPv4によりDNSクエリを出したクライアント装置1には、IPv4アドレスのみが返され、IPv6によりDNSクエリを出したクライアント装置1には、IPv6アドレスのみが返されるように制御することができる。
【0056】
従って、第7例によれば、DNSクエリの応答を受けたクライアント装置1が、プロトコルスタックのサポートするIPバージョンによって、クエリで得たIPアドレスを用いたIP通信を実現できないといった不都合や、DNSサーバ装置5から何ら返信をもらえずフリーズするといった不都合を解消することができる。
【0057】
図10は、処理設定データの第8例(PTR_Deny6)を示す図である。第8例の処理設定データを参照した処理決定部13は、クエリ名に「.ip6.arpa.」が含まれるDNSクエリパケットに対応する処理を拒絶処理に決定する。第8例によれば、IPv6アドレスに関するDNS逆引きを禁止することができる。
【0058】
図3から
図10は、別々の例としてそれぞれ示されたが、適宜、組み合わされてもよい。例えば、第5例、第6例又は第8例と、第1例から第4例のいずれか1つとは組み合わせることができる。
【0059】
[第2実施形態]
上述の第1実施形態では、エージェント装置10が、DNSクエリのフィルタリングの結果に応じて否定応答を返信したが、否定応答以外の独自のレスポンスを返信するようにしてもよい。第2実施形態におけるエージェント装置10の構成は、第1実施形態と同様であるが、一部の処理部における処理が第1実施形態と異なる。以下、第2実施形態におけるエージェント装置10について、第1実施形態と異なる内容を中心に説明する。
【0060】
処理決定部13は、捕獲されたDNSクエリパケットに設定されているクエリ名が所定のFQDNを示す場合に、当該DNSクエリパケットに対応する処理を強制返信処理に決定する。処理決定部13は、決定された処理内容と共に、所定のIPアドレスデータを返信部15に送る。処理決定部13は、所定のFQDNと所定のIPアドレスデータとの組み合わせを複数予め保持し、この組み合わせに応じて、返信部15に送るIPアドレスデータを決めてもよい。
【0061】
また、処理決定部13は、捕獲されたDNSクエリパケットに設定されているクエリ名が所定の逆引き名を示す場合に、当該DNSクエリパケットに対応する処理を強制返信処理に決定する。処理決定部13は、決定された処理内容と共に、所定のFQDNを返信部15に送る。処理決定部13は、所定の逆引き名及び所定のFQDNの複数の組み合わせを予め保持し、この組み合わせに応じて、返信部15に送るFQDNを決めてもよい。
【0062】
なお、処理決定部13は、上述のような解析の後に、更に、第1実施形態のようなフィルタリング解析を行ってもよいし、上述のような解析で強制返信処理に決められなかったDNSクエリパケットに対応する処理を一律に許可処理に決定してもよい。
【0063】
返信部15は、処理決定部13から送られた処理内容が強制返信処理を示す場合に、捕獲されたDNSクエリパケットに対するレスポンスパケットを生成し、このレスポンスパケットをそのDNSクエリパケットの送信元のクライアント装置1宛てに返信する。返信部15は、そのレスポンスパケットに、リソースデータとして、処理決定部13から送られたIPアドレスデータ又はFQDNを設定する。
【0064】
〔動作例〕
図11は、第2実施形態に係るエージェント装置10の動作例を概念的に示す図である。クライアント装置1からDNSサーバ装置5宛てにDNSクエリパケットが送信されると、そのDNSクエリパケットが、第1実施形態と同様に、捕獲部11で捕獲され(S111)、処理決定部13で解析される(S112)。第2実施形態では、処理決定部13での解析処理が第1実施形態と異なる。
【0065】
処理決定部13は、捕獲されたDNSクエリパケットに設定されているクエリ名に所定のFQDNが含まれる場合、又は、所定の逆引き名が含まれる場合、強制返信処理に決定する。また、
図11の例では、処理決定部13は、上記以外のDNSクエリパケットに対応する処理を許可処理に決定する。
【0066】
捕獲されたDNSクエリパケットがDNS正引きのためのものであり、かつ、決定された処理が強制返信処理である場合には、返信部15は、上記所定のFQDNに対応する所定のIPアドレスデータをリソースデータとして含む正引きレスポンスパケットを生成し、この正引きレスポンスパケットを、捕獲されたDNSクエリパケットの送信元のクライアント装置1に返信する(S113)。また、捕獲されたDNSクエリパケットがDNS逆引きのためのものであり、かつ、決定された処理が強制返信処理である場合には、返信部15は、上記所定の逆引き名に対応する所定のFQDNをリソースデータとして含む逆引きレスポンスパケットを生成し、この逆引きレスポンスパケットを、捕獲されたDNSクエリパケットの送信元のクライアント装置1に返信する(S113)。
【0067】
一方、決定された処理が許可処理である場合には、中継部17は、当該DNSクエリパケットをDNSサーバ装置5方向に送出する(S114)。
【0068】
以上により、強制返信処理及び許可処理のどちらが実行された場合であっても、DNSクエリパケットの送信元であるクライアント装置1は、IPアドレスを取得することができ、メインシーケンスを実施することができる。
【0069】
〔第2実施形態における作用及び効果〕
上述のように、第2実施形態では、所定のFQDN又は所定の逆引き名を指定したDNSクエリ(正引き及び逆引き)に対しては、エージェント装置10が、そのパケットをDNSサーバ装置5に中継することなく、レスポンスをクライアント装置1に返信する。そのとき、エージェント装置10により独自に決められたIPアドレス又はFQDNがそのレスポンスに設定される。
【0070】
従って、第2実施形態によれば、DNSクエリによりクライアント装置1に提供されるべき情報(IPアドレスやFQDN)をエージェント装置10が制御することができる。これにより、例えば、クライアント装置1が誤ったIPアドレスやFQDNをDNSクエリパケットに設定した場合であっても、エージェント装置10の制御により、クライアント装置1は、適切な情報を得ることができ、その情報を用いて即座にIP通信を開始することができる。
【実施例2】
【0071】
第2実施形態における処理決定部13においても、実施例1と同様の処理設定データの内容に基づいて、捕獲されたDNSクエリパケットに対応する処理を決定するようにしてもよい。以下、第2実施形態における処理設定データの例を説明する。
【0072】
図12は、処理設定データの第9例(Local_Answer(Answer_Replace))を示す図である。第9例の処理設定データを参照した処理決定部13は、クエリ名がHOST_Cを示すDNSクエリパケットに対応する処理を強制返信処理に決定する。このとき、処理決定部13は、強制返信処理に決定された旨と共に、IPアドレス(Addr_C)を返信部15に送る。アクション情報の「SR.Address(Addr_C)」は、当該DNSクエリパケットを転送することなくエージェント装置10自身がIPアドレス(Addr_C)を含む正引きレスポンスをクライアント装置1へ返すことを示す。
【0073】
第9例によれば、制御したいFQDN文字列と、そのFQDNに対して返したいIPアドレスとを処理設定データに設定すれば、DNSサーバ装置5の処理に依存することなく、エージェント装置10が、所定範囲で正引きDNSクエリを制御することができる。
【0074】
図13は、処理設定データの第10例(PTR_Local_Answer(PTR_Answer_Replace))を示す図である。第10例の処理設定データを参照した処理決定部13は、クエリ名がRev_Host_Eを示すDNSクエリパケットに対応する処理を強制返信処理に決定する。このとき、処理決定部13は、強制返信処理に決定された旨と共に、FQDN(Host_V)を返信部15に送る。アクション情報の「SR.Name(Host_V)」は、当該DNSクエリパケットを転送することなくエージェント装置10自身がFQDN(Host_V)を含む逆引きレスポンスをクライアント装置1へ返すことを示す。
【0075】
第10例によれば、制御したい逆引き名文字列と、その逆引き名文字列に対して返したいFQDNとを処理設定データに設定すれば、DNSサーバ装置5の処理に依存することなく、エージェント装置10が、設定された範囲で逆引きDNSクエリを制御することができる。
【0076】
[第3実施形態]
更に、エージェント装置10は、許可処理においてDNSクエリパケットをDNSサーバ装置5に転送する際に、そのDNSクエリパケットの内容を書き換えるようにしてもよい。以下、第3実施形態におけるエージェント装置10について、第1実施形態及び第2実施形態と異なる内容を中心に説明する。
【0077】
図14は、第3実施形態に係るエージェント装置10の構成例を概念的に示す図である。第3実施形態におけるエージェント装置10は、第1実施形態及び第2実施形態の構成に加えて、書き換え部19を更に有する。書き換え部19についても、ソフトウェア構成要素、ハードウェア構成要素、又は、それらの組み合わせにより実現される。
【0078】
処理決定部13は、捕獲されたDNSクエリパケットに設定されているクエリ名が所定のクエリ名を示す場合に、そのDNSクエリパケットに対応する処理を書き換え処理に決定する。処理決定部13は、決定された処理内容と共に、書き換え情報を書き換え部19に送る。
【0079】
第3実施形態では4つの書き換え方法が例示される。第1に、元のクエリ名が予め保持される所定の書き換え用クエリ名に書き換えられる形態である。第2に、元のクエリ名がIPv4−mapped−IPv6アドレスに対応する逆引き名からIPv4アドレスに対応する逆引き名に書き換えられる形態である。第3に、元のクエリ名がIPv4アドレスに対応する逆引き名からIPv4−mapped−IPv6アドレスに対応する逆引き名に書き換えられる形態である。第4に、元の送信先IPアドレスが予め保持される所定の書き換え用IPアドレスに書き換えられる形態である。
【0080】
第1の書き換え方法が取られる場合、処理決定部13は、所定のクエリ名と所定の書き換え用クエリ名との組み合わせを予め複数保持し、この組み合わせに応じて、書き換え部19に送る所定の書き換え用クエリ名を決めてもよい。例えば、DNS正引きのためのDNSクエリパケットが捕獲された場合には、所定の書き換え用クエリ名は、所定のFQDN文字列となり、DNS逆引きのためのDNSクエリパケットが捕獲された場合には、所定の書き換え用クエリ名は、所定の逆引き名文字列となる。
【0081】
上記第4の書き換え方法は、DNSクエリパケットの転送先の書き換えと同意である。このような転送先の書き換えは、対応する処理が許可処理又は書き換え処理に決定された、全てのDNSクエリパケットを対象としてもよいし、当該全てのDNSクエリパケットの中の特定のDNSクエリパケットを対象としてもよい。後者の場合には、転送先の書き換えを行うべきDNSクエリパケットを処理決定部13が選択するようにすればよい。例えば、処理決定部13は、DNSクエリパケットに設定されているクエリ名毎に、転送先の書き換えの有無、及び、書き換え用のIPアドレスをそれぞれ決定する。処理決定部13は、DNSクエリパケットの強制的転送先としたいDNSサーバ装置5を特定するための、所定の書き換え用IPアドレス(IPv4及びIPv6の少なくとも一方)を予め保持し、この保持される情報の中から書き換え用のIPアドレスを決定する。
【0082】
処理決定部13は、上記書き換え情報として、上記書き換え方法を識別可能な情報と、必要に応じて書き換え用のデータを書き換え部19に送る。書き換え部19は、処理決定部13から得る情報に基づいて、捕獲されたDNSクエリパケットのデータを書き換えることにより、DNSサーバ装置5へ転送するためのDNSクエリパケットを生成する。書き換え部19により生成された転送用のDNSクエリパケットは、中継部17を介してDNSサーバ装置5へ送信される。
【0083】
書き換え部19は、処理決定部13から第1の書き換え方法を示す情報を得た場合には、捕獲されたDNSクエリパケットに設定されていた元のクエリ名を、同様に処理決定部13から送られる書き換え用のクエリ名に書き換えることにより、転送用のDNSクエリパケットを生成する。
【0084】
書き換え部19は、処理決定部13から第4の書き換え方法を示す情報を得た場合には、DNSクエリパケットに設定されていた元の送信先IPアドレスを、同様に処理決定部13から送られる書き換え用のIPアドレスに書き換えることにより、転送用のDNSクエリパケットを生成する。書き換え部19は、書き換え用のIPアドレスのバージョンに応じて、転送用のDNSクエリパケットを生成する。これにより、捕獲されたDNSクエリパケットのIPバージョンと、選択された書き換え用のIPバージョンとが相違する場合には、パケットフォーマットが変換される。
【0085】
書き換え部19は、処理決定部13から第2の書き換え方法を示す情報を得た場合には、捕獲されたDNSクエリパケットに設定されているIPv4−mapped−IPv6アドレスに対応する逆引き名をIPv4アドレスに対応する逆引き名に変換する。IPv6アドレスからこれに対応する逆引き名を生成する手法、及び、IPv4アドレスからこれに対応する逆引き名を生成する手法は、周知である。更に、IPv4−mapped−IPv6アドレスをIPv4アドレスに変換する手法及びIPv4アドレスをIPv4−mapped−IPv6アドレスに変換する手法もまた周知である。
【0086】
特に、IPv4−mapped−IPv6アドレスについて、その定義は、以下の参考文献1「2.5.5.2 IPv4-Mapped IPv6 Address」に記載されており、使用方法及び機能は、以下の参考文献2に記載されているため、ここでは詳細な説明は省略する。
<参考文献1>R. Hinden, S. Deering, "IP Version 6 Addressing Architecture", February 2006, RFC4291 (http://www.ietf.org/rfc/rfc4291.txt)
<参考文献2>M-K. Shin, et al., "Application Aspects of IPv6 Transition", March 2005, RFC4038 (http://www.ietf.org/rfc/rfc4038.txt)
【0087】
書き換え部19は、上述のような周知手法を組み合わせることにより、上記逆引き名の変換を行う。書き換え部19は、DNSクエリパケットに設定されていた元のクエリ名(IPv4−mapped−IPv6アドレスに対応する逆引き名)を、このように変換されたIPv4アドレスに対応する逆引き名に書き換える。書き換え部19は、この書き換えにより生成されたDNSクエリパケットを中継部17に送る。
【0088】
書き換え部19は、処理決定部13から第3の書き換え方法を示す情報を得た場合には、上述のような周知手法を組み合わせることにより、捕獲されたDNSクエリパケットに設定されているIPv4アドレスに対応する逆引き名をIPv4−mapped−IPv6アドレスに対応する逆引き名に変換する。書き換え部19は、DNSクエリパケットに設定されていた元のクエリ名(IPv4アドレスに対応する逆引き名)を、このように変換されたIPv4−mapped−IPv6アドレスに対応する逆引き名に書き換える。書き換え部19は、この書き換えにより生成されたDNSクエリパケットを中継部17に送る。
【0089】
〔動作例〕
図15は、第3実施形態に係るエージェント装置10の動作例を概念的に示す図である。クライアント装置1からDNSサーバ装置5宛てにDNSクエリパケットが送信されると、そのDNSクエリパケットが、第1実施形態及び第2実施形態と同様に、捕獲部11で捕獲され(S151)、処理決定部13で解析される(S152)。第3実施形態では、処理決定部13が、第1実施形態及び第2実施形態で決定される処理内容とは独立して、又は、その処理内容に加えて、書き換え処理を決定する場合がある。
【0090】
処理決定部13は、捕獲されたDNSクエリパケットに設定されているクエリ名が所定のクエリ名を示す場合に、そのDNSクエリパケットに対応する処理を書き換え処理に決定する。
【0091】
続いて、書き換え部19が、処理決定部13により決定された内容に応じて、捕獲されたDNSクエリパケットのデータを書き換えることにより、DNSサーバ装置5へ転送するためのDNSクエリパケットを生成する(S153)。このように生成されたDNSクエリパケットは、中継部17により送出される(S154)。
【0092】
書き換え部19により第4の書き換え、即ち、転送先の書き換えが行われた場合には、エージェント装置10により強制的に決められたサーバ装置(
図15に示す符号5#)宛てに、上記生成されたDNSクエリパケットが送信される(S155)。
【0093】
〔第3実施形態における作用及び効果〕
上述のように、第3実施形態では、クライアント装置1から送信されたDNSクエリパケットの内容がエージェント装置10により書き換えられる。例えば、FQDNや逆引き名が、エージェント装置10により決められた所定のデータに書き換えられる。結果、このようにその内容が書き換えられたDNSクエリパケットに応じて、DNS正引き又はDNS逆引きが行われる。
【0094】
従って、第3実施形態によれば、DNSクエリによりクライアント装置1に提供されるべき情報(IPアドレスやFQDN)をエージェント装置10が制御することができる。
【0095】
更に、第3実施形態では、クライアント装置1から送信されたDNSクエリパケットの送信先IPアドレスがエージェント装置10により書き換えられる。この書き換えでは、転送先のDNSサーバ装置5に応じて、IPバージョンについてもエージェント装置10により決定される。このような態様によれば、クライアント装置1により間違ってDNSサーバ装置5が指定された場合であっても、正しいDNSサーバ装置5にそのDNSクエリパケットを届けることができる。
【実施例3】
【0096】
第3実施形態における処理決定部13においても、実施例1と同様の処理設定データの内容に基づいて、捕獲されたDNSクエリパケットに対応する処理を決定するようにしてもよい。以下、第3実施形態における処理設定データの例を説明する。
【0097】
図16は、処理設定データの第11例(Local_Query(Query_Replace))を示す図である。第11例の処理設定データを参照した処理決定部13は、クエリ名がName_Dを示すDNSクエリパケットに対応する処理を書き換え処理(第1の書き換え)に決定し、書き換え用クエリ名をName_Uに決定する。アクション情報の「NR.Name(Name_U)」は、クエリ名がName_Uに書き換えられたDNSクエリパケットをDNSサーバ装置5に転送することを示す。
【0098】
結果、元々設定されていたクエリ名(Name_D)が書き換え部19によりName_Uに書き換えられ、この書き換えられたDNSクエリパケットがDNSサーバ装置5に転送される。第11例によれば、クライアント装置1がDNSクエリパケットで要求する通信相手の情報を、エージェント装置10が決めた所定の通信相手の情報に強制的に変えることができる。即ち、エージェント装置10は、クライアント装置1が通信を開始する相手を制御することができる。
【0099】
図17は、処理設定データの第12例(Server_Set)を示す図である。第12例の処理設定データを参照した処理決定部13は、捕獲された正引き用の全てのDNSクエリパケットに対応する処理を書き換え処理(第4の書き換え)に決定し、書き換え用のIPアドレスをServer_Pに決定する。アクション情報の「NR.Server(Server_P)」は、送信先IPアドレスがServer_Pに書き換えられたDNSクエリパケットを転送することを示す。
【0100】
図18は、処理設定データの第13例(Server_Set_By_Query_Name)を示す図である。第13例の処理設定データを参照した処理決定部13は、捕獲された正引き用の全てのDNSクエリパケットの中の、クエリ名にドメイン名「.zone_q.com」を含むDNSクエリパケットに対応する処理を書き換え処理(第4の書き換え)に決定し、書き換え用のIPアドレスをServer_Qに決定する。
【0101】
結果、元々設定されていた送信先が書き換え部19によりServer_P又はServer_Qに書き換えられ、この書き換えられたDNSクエリパケットが転送される。このように、第12例及び第13例によれば、最初に検索されるDNSサーバをクライアント装置1により設定されたものを無視して、強制的にエージェント装置10が決めることができる。更に、第13例によれば、エージェント装置10は、クエリ名の所定範囲毎に、最初に検索されるDNSサーバを決めることができる。
【0102】
図19は、処理設定データの第14例(PTR_Mapped6_to_4)を示す図である。第14例の処理設定データを参照した処理決定部13は、捕獲された逆引き用の全てのDNSクエリパケットの中の、クエリ名に「.ff.ff.*.ip6.arpa.」(*は1以上の任意の文字を意味する)を含むDNSクエリパケットに対応する処理を書き換え処理(第2の書き換え)に決定する。これにより、元々設定されているクエリ名(IPv4−mapped−IPv6アドレスに対応する逆引き名)がIPv4アドレスに対応する逆引き名に書き換えられる。結果、クライアント装置1は、IPv4アドレスに対応する逆引き名のエントリに含まれるFQDNを取得することができる。
【0103】
図20は、処理設定データの第15例(PTR_4_to_Mapped6)を示す図である。第15例の処理設定データを参照した処理決定部13は、捕獲された逆引き用の全てのDNSクエリパケットの中の、クエリ名に「*.in-addr.arpa.」(*は1以上の任意の文字を意味する)を含むDNSクエリパケットに対応する処理を書き換え処理(第3の書き換え)に決定する。これにより、元々設定されているクエリ名(IPv4アドレスに対応する逆引き名)がIPv4−mapped−IPv6アドレスに対応する逆引き名に書き換えられる。結果、クライアント装置1は、IPv4−mapped−IPv6アドレスに対応する逆引き名のエントリに含まれるFQDNを取得することができる。
【0104】
上述の各実施例で示した処理設定データは、予めメモリ等に保持されていてもよいし、DNSクエリパケットの送信元となるクライアント装置1や、DNSサーバ装置5、他のサーバ装置等から所定通信を用いて収集された情報を用いて生成又は更新されてもよい。例えば、クライアント装置1から、IPプレフィックスリストやクライアント装置1自身の通信環境情報が収集され、この収集された情報を用いて、処理設定データの内容が決められるようにしてもよい。また、所定通信とは、例えば、ICMP(Internet Control Message Protocol)、SNMP(Simple Network Management Protocol)、NIQ(Node Information Query)等の通信や独自の通信である。
【0105】
なお、上述の説明で用いた複数のフローチャートでは、複数のステップ(処理)が順番に記載されているが、本実施形態で実行される処理ステップの実行順序は、その記載の順番に制限されない。本実施形態では、図示される処理ステップの順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態及び各変形例は、内容が相反しない範囲で組み合わせることができる。
以下、参考形態の例を付記する。
1.
宛先のDNS(Domain Name System)サーバ装置で受信されないようにDNSクエリパケットを捕獲する捕獲部と、
前記捕獲部により捕獲されたDNSクエリパケットを解析することにより、当該DNSクエリパケットに対応する処理を拒絶処理に決定する処理決定部と、
前記処理決定部により対応する処理が拒絶処理に決定されたDNSクエリパケットをDNSサーバへ転送することなく、該DNSクエリパケットの送信元に否定応答パケットを返信する返信部と、
を備えるエージェント装置。
2.
前記処理決定部は、前記捕獲部により捕獲されたDNSクエリパケットに設定されている送信元アドレス、クエリの対象情報の種類を示すクエリタイプ、又は、クエリのキー情報となるクエリ名に基づいて、当該DNSクエリパケットに対応する処理を決定する、
1.に記載のエージェント装置。
3.
前記処理決定部は、前記送信元アドレスに含まれる送信元IPアドレスのアドレス形式がIPv4タイプかIPv6タイプかを識別し、識別されたアドレス形式と前記クエリタイプとの組み合わせに基づいて、前記DNSクエリパケットに対応する処理を決定する、
2.に記載のエージェント装置。
4.
前記処理決定部は、前記アドレス形式がIPv4タイプで、かつ、前記クエリタイプがAAAAレコードを示す場合、及び、前記アドレス形式がIPv6タイプで、かつ、前記クエリタイプがAレコードを示す場合、前記DNSクエリパケットに対応する処理を拒絶処理に決定する、
3.に記載のエージェント装置。
5.
前記DNSクエリパケットに設定されている前記クエリ名を所定のFQDN(Fully Qualified Domain Name)に書き換える書き換え部と、
前記書き換え部により書き換えられたDNSクエリパケットをDNSサーバ装置方向へ送出する中継部と、
を更に備え、
前記処理決定部は、前記捕獲部により捕獲されたDNSクエリパケットに設定されている前記クエリ名に基づいて、当該DNSクエリパケットに対応する処理を書き換え処理に決定する、
1.から4.のいずれか1つに記載のエージェント装置。
6.
前記捕獲部により捕獲されたDNSクエリパケットに設定されている送信先IPアドレスを、IPバージョンが異なるIPアドレスに書き換える書き換え部と、
前記書き換え部により書き換えられたDNSクエリパケットをDNSサーバ装置へ送出する中継部と、
を更に備える1.から5.のいずれか1つに記載のエージェント装置。
7.
前記捕獲部により捕獲されたDNSクエリパケットのクエリ名に設定されているIPv4−mapped−IPv6アドレスに対応する逆引き名をIPv4アドレスに対応する逆引き名に書き換える、又は、前記捕獲部により捕獲されたDNSクエリパケットのクエリ名に設定されているIPv4アドレスに対応する逆引き名をIPv4−mapped−IPv6アドレスに対応する逆引き名に書き換える書き換え部と、
前記書き換え部により書き換えられたDNSクエリパケットをDNSサーバ装置へ送出する中継部と、
を更に備える1.から6.のいずれか1つに記載のエージェント装置。
8.
宛先のDNS(Domain Name System)サーバ装置で受信されないようにDNSクエリパケットを捕獲し、
前記捕獲されたDNSクエリパケットを解析することにより、当該DNSクエリパケットに対応する処理を拒絶処理に決定し、
対応する処理が拒絶処理に決定されたDNSクエリパケットをDNSサーバへ転送することなく、該DNSクエリパケットの送信元に否定応答パケットを返信する、
ことを含む通信中継方法。
9.
前記拒絶処理の決定は、前記捕獲されたDNSクエリパケットに設定されている送信元アドレス、クエリの対象情報の種類を示すクエリタイプ、又は、クエリのキー情報となるクエリ名に基づいて、当該DNSクエリパケットに対応する処理を決定する、
8.に記載の通信中継方法。
10.
前記拒絶処理の決定は、前記送信元アドレスに含まれる送信元IPアドレスのアドレス形式がIPv4タイプかIPv6タイプかを識別し、識別されたアドレス形式と前記クエリタイプとの組み合わせに基づいて、前記DNSクエリパケットに対応する処理を決定する、
9.に記載の通信中継方法。
11.
前記拒絶処理の決定は、前記アドレス形式がIPv4タイプで、かつ、前記クエリタイプがAAAAレコードを示す場合、及び、前記アドレス形式がIPv6タイプで、かつ、前記クエリタイプがAレコードを示す場合、前記DNSクエリパケットに対応する処理を拒絶処理に決定する、
10.に記載の通信中継方法。
12.
前記DNSクエリパケットに設定されている前記クエリ名を所定のFQDN(Fully Qualified Domain Name)に書き換え、
前記書き換えられたDNSクエリパケットをDNSサーバ装置方向へ送出する、
ことを更に含み、
前記拒絶処理の決定は、前記捕獲されたDNSクエリパケットに設定されている前記クエリ名に基づいて、当該DNSクエリパケットに対応する処理を書き換え処理に決定する、
8.から11.のいずれか1つに記載の通信中継方法。
13.
前記捕獲されたDNSクエリパケットに設定されている送信先IPアドレスを、IPバージョンが異なるIPアドレスに書き換え、
前記書き換えられたDNSクエリパケットをDNSサーバ装置へ送出する、
ことを更に含む8.から12.のいずれか1つに記載の通信中継方法。
14.
前記捕獲されたDNSクエリパケットのクエリ名に設定されているIPv4−mapped−IPv6アドレスに対応する逆引き名をIPv4アドレスに対応する逆引き名に書き換える、又は、前記捕獲されたDNSクエリパケットのクエリ名に設定されているIPv4アドレスに対応する逆引き名をIPv4−mapped−IPv6アドレスに対応する逆引き名に書き換え、
前記書き換えられたDNSクエリパケットをDNSサーバ装置へ送出する、
ことを更に含む8.から13.のいずれか1つに記載の通信中継方法。
15.
コンピュータに、通信中継処理を実行させるエージェントプログラムにおいて、
前記通信中継処理が、
宛先のDNS(Domain Name System)サーバ装置で受信されないようにDNSクエリパケットを捕獲し、
前記捕獲されたDNSクエリパケットを解析することにより、当該DNSクエリパケットに対応する処理を拒絶処理に決定し、
対応する処理が拒絶処理に決定されたDNSクエリパケットをDNSサーバへ転送することなく、該DNSクエリパケットの送信元に否定応答パケットを返信する、
ことを含む、
エージェントプログラム。
【0106】
この出願は、2011年9月6日に出願された日本出願特願2011−193558号を基礎とする優先権を主張し、それら開示の全てをここに取り込む。