(57)【特許請求の範囲】
【請求項１】
DNS（Domain  Name  Service）トラヒックデータとフローデータとを付き合わせることにより、あるトラヒックの送信元と宛先の組織を特定する送信元・宛先組織特定装置であって、
前記DNSトラヒックデータを収集するDNSデータ収集手段と、
宛先IPアドレス、パケット数、フローサイズ、フロー取得開始時刻を含む前記フローデータを収集するフローデータ収集手段と、
前記DNSトラヒックデータに含まれる問い合わせ対象ドメイン名を第１要素、該ドメイン名に対応するIPアドレスを第２要素、問い合わせ送信元IPアドレスを第３要素、問い合わせ時刻を第４要素、該ドメイン名の問い合わせ回数を第５要素とするDNS情報データベースを作成し、取得した前記フローデータに基づいてフローデータベースを生成するデータベース生成手段と、
前記DNS情報データベースと前記フローデータベースとを突き合わせ、該フローデータベースに出現する宛先IPアドレスにドメイン名を付与するマッチング手段と、を有し、
前記マッチング手段は、
前記フローデータベースの前記宛先IPアドレスが前記DNS情報データベースの前記第２要素、該フローデータベースの前記送信元IPアドレスが該DNS情報データベースの前記第３要素、該フローデータベースの前記フロー取得開始時刻が該DNS情報データベースの前記第４要素と一致するレコードを検索し、該第１要素を、前記宛先IPアドレスに付与する第１の検索手段と、
前記第１の検索手段において一致するレコードが検索できなかった場合に、前記フローデータベースの前記宛先IPアドレスが前記DNS情報データベースの前記第２要素と一致、かつ、該フローデータベースの前記送信元IPアドレスが該DNS情報データベースの前記第３要素と一致するレコードを検索し、該レコードの第１要素であるドメイン名を、前記宛先IPアドレスに付与する第２の検索手段と、
前記第１の検索手段及び前記第２の検索手段において一致するレコードが検索できなかった場合に、前記フローデータベースの前記宛先IPアドレスが前記DNS情報データベースの前記第２要素と一致するレコードを検索し、該レコードの第１要素であるドメイン名を、前記宛先IPアドレスに付与する第３の検索手段と、
前記第１の検索手段及び前記第２の検索手段及び前記第３の検索手段において一致するレコードが検索できなかった場合に、前記フローデータベースの前記宛先IPアドレスのネットワーク部が前記DNS情報データベースの前記第２要素のネットワーク部と一致するレコードを検索し、該レコードの第１要素であるドメイン名を、前記宛先IPアドレスに付与する第４の検索手段と、を含む
ことを特徴とする送信元・宛先組織特定装置。
【請求項２】
DNS（Domain  Name  Service）トラヒックデータとフローデータとを付き合わせることにより、あるトラヒックの送信元と宛先の組織を特定する送信元・宛先組織特定装置であって、
前記DNSトラヒックデータを収集するDNSデータ収集手段と、
宛先IPアドレス、パケット数、フローサイズ、フロー取得開始時刻を含む前記フローデータを収集するフローデータ収集手段と、
前記DNSトラヒックデータに含まれる問い合わせ対象ドメイン名を第１要素、該ドメイン名に対応するIPアドレスを第２要素、問い合わせ送信元IPアドレスを第３要素、問い合わせ時刻を第４要素、該ドメイン名の問い合わせ回数を第５要素とするDNS情報データベースを作成し、取得した前記フローデータに基づいてフローデータベースを生成するデータベース生成手段と、
前記DNS情報データベースと前記フローデータベースとを突き合わせ、該フローデータベースに出現する宛先IPアドレスにドメイン名を付与するマッチング手段と、を有し、
前記データベース生成手段は、
DNSトラヒックデータの応答に含まれるCNAME情報において、元のドメイン名を第６要素、CNAMEによって付与された別名を第７要素、該CNAMEの出現回数を第８要素とするレコードを有するCNAMEデータベースを生成するCNAMEデータベース生成手段を含み、
前記マッチング手段は、
前記宛先IPアドレスにドメイン名を付与する際に、該ドメイン名が前記CNAMEデータベースの前記第７要素と一致するレコードを検索し、該第７要素である別名に対応する前記第６要素である元のドメイン名を該宛先IPアドレスに付与する手段を含む
ことを特徴とする送信元・宛先組織特定装置。
【請求項３】
前記マッチング手段は、
検索により複数のレコードが得られた場合は、それぞれのドメイン名の問い合わせ回数によって前記フローデータベースに含まれる前記パケット数及び前記フローサイズを按分する手段を含む
請求項１又は２に記載の送信元・宛先組織特定装置。
【請求項４】
DNSトラヒックデータとフローデータとを付き合わせることにより、あるトラヒックの送信元と宛先の組織を特定する送信元・宛先組織特定方法であって、
DNSデータ収集手段が、前記DNSトラヒックデータを収集するDNSデータ収集ステップと、
フローデータ収集手段が、宛先IPアドレス、パケット数、フローサイズ、フロー取得開始時刻を含む前記フローデータを収集するフローデータ収集ステップと、
データベース生成手段が、前記DNSトラヒックデータに含まれる問い合わせ対象ドメイン名を第１要素、該ドメイン名に対応するIPアドレスを第２要素、問い合わせ送信元IPアドレスを第３要素、問い合わせ時刻を第４要素、該ドメイン名の問い合わせ回数を第５要素とするDNS情報データベースを作成し、取得した前記フローデータに基づいてフローデータベースを生成するデータベース生成ステップと、
マッチング手段が、前記DNS情報データベースと前記フローデータベースとを突き合わせ、該フローデータベースに出現する宛先IPアドレスにドメイン名を付与するマッチングステップと、を行い、
前記マッチングステップにおいて、
前記フローデータベースの前記宛先IPアドレスが前記DNS情報データベースの前記第２要素、該フローデータベースの前記送信元IPアドレスが該DNS情報データベースの前記第３要素、該フローデータベースの前記フロー取得開始時刻が該DNS情報データベースの前記第４要素と一致するレコードを検索し、該第１要素を、前記宛先IPアドレスに付与する第１の検索ステップと、
前記第１の検索ステップにおいて一致するレコードが検索できなかった場合に、前記フローデータベースの前記宛先IPアドレスが前記DNS情報データベースの前記第２要素と一致、かつ、該フローデータベースの前記送信元IPアドレスが該DNS情報データベースの前記第３要素と一致するレコードを検索し、該レコードの第１要素であるドメイン名を、前記宛先IPアドレスに付与する第２の検索ステップと、
前記第１の検索ステップ及び前記第２の検索ステップにおいて一致するレコードが検索できなかった場合に、前記フローデータベースの前記宛先IPアドレスが前記DNS情報データベースの前記第２要素と一致するレコードを検索し、該レコードの第１要素であるドメイン名を、前記宛先IPアドレスに付与する第３の検索ステップと、
前記第１の検索ステップ及び前記第２の検索ステップ及び前記第３の検索ステップにおいて一致するレコードが検索できなかった場合に、前記フローデータベースの前記宛先IPアドレスのネットワーク部が前記DNS情報データベースの前記第２要素のネットワーク部と一致するレコードを検索し、該レコードの第１要素であるドメイン名を、前記宛先IPアドレスに付与する第４の検索ステップと、を含む
ことを特徴とする送信元・宛先組織特定方法。
【請求項５】
DNSトラヒックデータとフローデータとを付き合わせることにより、あるトラヒックの送信元と宛先の組織を特定する送信元・宛先組織特定方法であって、
DNSデータ収集手段が、前記DNSトラヒックデータを収集するDNSデータ収集ステップと、
フローデータ収集手段が、宛先IPアドレス、パケット数、フローサイズ、フロー取得開始時刻を含む前記フローデータを収集するフローデータ収集ステップと、
データベース生成手段が、前記DNSトラヒックデータに含まれる問い合わせ対象ドメイン名を第１要素、該ドメイン名に対応するIPアドレスを第２要素、問い合わせ送信元IPアドレスを第３要素、問い合わせ時刻を第４要素、該ドメイン名の問い合わせ回数を第５要素とするDNS情報データベースを作成し、取得した前記フローデータに基づいてフローデータベースを生成するデータベース生成ステップと、
マッチング手段が、前記DNS情報データベースと前記フローデータベースとを突き合わせ、該フローデータベースに出現する宛先IPアドレスにドメイン名を付与するマッチングステップと、を行い、
前記データベース生成ステップにおいて、
DNSトラヒックデータの応答に含まれるCNAME情報において、元のドメイン名を第６要素、CNAMEによって付与された別名を第７要素、該CNAMEの出現回数を第８要素とするレコードを有するCNAMEデータベースを生成するCNAMEデータベース生成ステップを含み、
前記マッチングステップにおいて、
前記宛先IPアドレスにドメイン名を付与する際に、該ドメイン名が前記CNAMEデータベースの前記第７要素と一致するレコードを検索し、該第７要素である別名に対応する前記第６要素である元のドメイン名を該宛先IPアドレスに付与するステップを含む
ことを特徴とする送信元・宛先組織特定方法。
【請求項６】
コンピュータを、
請求項１乃至３のいずれか１項に記載の送信元・宛先組織特定装置の各手段として機能させるための送信元・宛先組織特定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信元・宛先組織特定装置及び方法及びプログラムに係り、特に、DNS（Domain Name Service）トラヒックとフローデータとを付き合わせることにより、あるトラヒックの送信元と宛先の組織を特定するための送信元・宛先組織特定装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
・トラヒック状況の把握技術：
トラヒック状況を把握する者として、ルータなどの装置で収集可能なNetFlowを利用するものがある（例えば、非特許文献1参照）。これは、ネットワーク上に流れるデータを、宛先や送信元、ポート番号などの組み合わせで認識するフローと呼ばれるひとかたまりのデータとして扱うものである。この技術を用いることで、どのIPアドレスからどのIPアドレスへ、どの程度のトラヒックが流れているかを把握することができる。ただし、上記のNetFlowではIPアドレスやポート番号、パケット数やフローサイズといった限定的な情報のみ取得可能な技術である。全ての情報を収集するためにはデータをtcpdumpなどを用いてパケット単位で収集する方法（例えば、非特許文献2参照）や、sflowを用いてアプリケーションレイヤの情報を含むフローを収集する方法（例えば、非特許文献3参照）がある。
【０００３】
・CDN(Contents Delivery Network)事業の拡大：
昨今のインターネットサービスとして、CDN事業の拡大が顕著である。CDNはWebサイト、音楽、動画などのコンテンツを効率良く配信する仕組みである。CDNを利用している組織のコンテンツはその組織が保有、運用しているサーバではなくCDN上のサーバに置かれる。サーバはCDN事業者が持つ場合、あるいは他事業者のサーバを借りている場合がある。
【０００４】
・トラヒック状況の把握技術の課題：
上記CDN事業の拡大により、フローデータを用いた正しいトラヒック状況把握が困難となってきている。これは様々な組織のコンテンツがCDN上のサーバに置かれることが要因である。例えば、組織AとBのWebサイトがCDNを利用しており、かつCDN事業者の持つ同一の配信サーバに置かれているとする。この場合、あるユーザが組織AとBのWebサイトを閲覧した場合、どちらも宛先IPアドレスはCDN事業者の事業者のサーバとなる。フローデータに含まれる宛先の情報はIPアドレスであるため、フローデータのみを見ても組織Aへのトラヒックなのか、Bへのトラヒックなのかを判別することはできない。この例を図1に示す。図１に示す例は、企業A、企業B共に、サーバ(10.0.0.1)にWebコンテンツを置いている場合、ユーザ端末において、企業A、企業BどちらのWebコンテンツを閲覧しても同じ"10.0.0.1"のCDN上のサーバへアクセスしているため、ユーザ端末のIPアドレス(192.168.0.1)だけを見てもどちらのサイトを閲覧したかはわからない。
【０００５】
また、あるISP(Internet Service Provider)内に配信サーバがある場合、宛先のIPアドレスがISP事業者のサーバであるのか、CDN事業者の配信サーバであるのかを判別することができない。以上のように、IPアドレスと組織が1対1でないことが問題となり、トラヒック状況の正確な把握が困難となっている。
【０００６】
・関連技術：
インターネット上に流れるトラヒックや、インターネットの構造を明らかにする研究がある（例えば、非特許文献4参照）。これらの研究ではフローデータを分析することでAS間のトラヒック量やインターネットの構造を分析している。また、DNSデータと経路情報を用いてWebコンテンツ配信事業者のネットワーク構造を分析する技術がある（例えば、非特許文献5参照）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】B. Claise, "Cisco Systems NetFlow Services Export Version9," IETF RFC3954, October 2004. http://www.ietf.org/rfc/rfc3954
【非特許文献２】TCPDUMP/LIBPCAP public repository, "http://www.tcpdump.org".
【非特許文献３】P. Phaal, S. Panchen, and N. McKee, "InMon Corporation's sFlow:A Method for Monitoring Traffic in Switched and Routed Networks," IETF RFC3176, September 2001. http://www.ietf.org/rfc/rfc3176
【非特許文献４】C. Labovitz, S. Iekel-Johnson, J. Oberheide, and F. Jahanian, "Internet Inter-Domain Traffic,"  In Proceedings of ACM SIGCOMM '10.
【非特許文献５】B. Ager, W. Muhlbauer, G. Smaragdakis, and S. Uhlig, "Web Content Cartography," In Proceedings of the 2011 ACM SIGCOMM conference on Internet measurement conference.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献4においては、前述の通りフローデータなどのIPレイヤのみのデータではより細かいトラヒックの流量や状況を正確に把握することは困難である。また、非特許文献5ではDNSデータを利用しているため、細かい粒度での分析を行っているが、経路情報だけではトラヒック流量の把握までは困難である。
【０００９】
本発明は、上記の点に鑑みなされたもので、フローデータに含まれるIPアドレスと組織の紐付けを行い、サイト別トラヒック状況の把握が可能な送信元・宛先組織特定装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明（請求項１）は、DNS（Domain  Name  Service）トラヒックデータとフローデータとを付き合わせることにより、あるトラヒックの送信元と宛先の組織を特定する送信元・宛先組織特定装置であって、
前記DNSトラヒックデータを収集するDNSデータ収集手段と、
宛先IPアドレス、パケット数、フローサイズ、フロー取得開始時刻を含む前記フローデータを収集するフローデータ収集手段と、
前記DNSトラヒックデータに含まれる問い合わせ対象ドメイン名を第１要素、該ドメイン名に対応するIPアドレスを第２要素、問い合わせ送信元IPアドレスを第３要素、問い合わせ時刻を第４要素、該ドメイン名の問い合わせ回数を第５要素とするDNS情報データベースを作成し、取得した前記フローデータに基づいてフローデータベースを生成するデータベース生成手段と、
前記DNS情報データベースと前記フローデータベースとを突き合わせ、該フローデータベースに出現する宛先IPアドレスにドメイン名を付与するマッチング手段と、を有し、
前記マッチング手段は、
前記フローデータベースの前記宛先IPアドレスが前記DNS情報データベースの前記第２要素、該フローデータベースの前記送信元IPアドレスが該DNS情報データベースの前記第３要素、該フローデータベースの前記フロー取得開始時刻が該DNS情報データベースの前記第４要素と一致するレコードを検索し、該第１要素を、前記宛先IPアドレスに付与する第１の検索手段と、
前記第１の検索手段において一致するレコードが検索できなかった場合に、前記フローデータベースの前記宛先IPアドレスが前記DNS情報データベースの前記第２要素と一致、かつ、該フローデータベースの前記送信元IPアドレスが該DNS情報データベースの前記第３要素と一致するレコードを検索し、該レコードの第１要素であるドメイン名を、前記宛先IPアドレスに付与する第２の検索手段と、
前記第１の検索手段及び前記第２の検索手段において一致するレコードが検索できなかった場合に、前記フローデータベースの前記宛先IPアドレスが前記DNS情報データベースの前記第２要素と一致するレコードを検索し、該レコードの第１要素であるドメイン名を、前記宛先IPアドレスに付与する第３の検索手段と、
前記第１の検索手段及び前記第２の検索手段及び前記第３の検索手段において一致するレコードが検索できなかった場合に、前記フローデータベースの前記宛先IPアドレスのネットワーク部が前記DNS情報データベースの前記第２要素のネットワーク部と一致するレコードを検索し、該レコードの第１要素であるドメイン名を、前記宛先IPアドレスに付与する第４の検索手段と、を含む
ことを特徴とする送信元・宛先組織特定装置として構成される。
【００１２】
また、本発明（請求項２）は、DNS（Domain  Name  Service）トラヒックデータとフローデータとを付き合わせることにより、あるトラヒックの送信元と宛先の組織を特定する送信元・宛先組織特定装置であって、
前記DNSトラヒックデータを収集するDNSデータ収集手段と、
宛先IPアドレス、パケット数、フローサイズ、フロー取得開始時刻を含む前記フローデータを収集するフローデータ収集手段と、
前記DNSトラヒックデータに含まれる問い合わせ対象ドメイン名を第１要素、該ドメイン名に対応するIPアドレスを第２要素、問い合わせ送信元IPアドレスを第３要素、問い合わせ時刻を第４要素、該ドメイン名の問い合わせ回数を第５要素とするDNS情報データベースを作成し、取得した前記フローデータに基づいてフローデータベースを生成するデータベース生成手段と、
前記DNS情報データベースと前記フローデータベースとを突き合わせ、該フローデータベースに出現する宛先IPアドレスにドメイン名を付与するマッチング手段と、を有し、
前記データベース生成手段は、
DNSトラヒックデータの応答に含まれるCNAME情報において、元のドメイン名を第６要素、CNAMEによって付与された別名を第７要素、該CNAMEの出現回数を第８要素とするレコードを有するCNAMEデータベースを生成するCNAMEデータベース生成手段を含み、
前記マッチング手段は、
前記宛先IPアドレスにドメイン名を付与する際に、該ドメイン名が前記CNAMEデータベースの前記第７要素と一致するレコードを検索し、該第７要素である別名に対応する前記第６要素である元のドメイン名を該宛先IPアドレスに付与する手段を含む。
【００１３】
また、本発明（請求項３）は、前記マッチング手段において、
検索により複数のレコードが得られた場合は、それぞれのドメイン名の問い合わせ回数によって前記フローデータベースに含まれる前記パケット数及び前記フローサイズを按分する手段を含む。
【発明の効果】
【００１４】
上記のように、本発明によれば、あるトラヒックがどの組織へ送られるものなのか、また、どの組織から送信されたものなのかを、DNSやフローといった比較的軽量で収集可能なデータを用いて特定することができ、正確なトラヒック状況を把握することが可能となる。このような正確なトラヒック状況の把握により、トラヒックに急激な変化が生じた場合にその原因を特定することなども可能となり、さらには通信網の設備設計の基礎データとしての利用も可能になるなど高い効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】従来のシステム例である。
【図２】本発明の第１の実施の形態におけるシステム構成図である。
【図３】本発明の第１の実施の形態におけるDNS情報DBの例である。
【図４】本発明の第１の実施の形態におけるフローDBの例である。
【図５】本発明の第１の実施の形態におけるマッチング部の処理を示す図である。
【図６】本発明の第２の実施の形態におけるマッチング部の処理を示す図である。
【図７】本発明の第３の実施の形態におけるマッチング部の処理を示す図（その１）である。
【図８】本発明の第３の実施の形態におけるマッチング部の処理を示す図（その２）である。
【図９】本発明の第４の実施の形態における送信元・宛先組織特定装置の構成図である。
【図１０】本発明の第４の実施の形態におけるCNAME DBの例である。
【図１１】本発明の第４の実施の形態におけるマッチング部の処理を示す図である。
【図１２】本発明の第４の実施の形態におけるマッチング部のフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面と共に本発明の実施の形態を説明する。
【００１７】
＜前提条件＞
まず、本発明の前提条件を説明する。
【００１８】
本発明の入力として、DNSキャッシュサーバへ届くトラヒックデータ、ネットワーク上を通過するトラフィックフローの情報をモニタリングするプロトコルであるNetFlowを用いて収集したフローデータが与えられるものとする。DNSトラヒックデータには問い合わせドメイン名、その問い合わせに対する応答、問い合わせ送信元IPアドレス、問い合わせ時刻などが含まれ、フローデータには送信元IPアドレス、宛先IPアドレス、パケット数、トラヒック量、フローの取得開始時刻などの情報が含まれる。また、DNSトラヒックデータおよびフローデータの収集箇所は、同一NWでなくてもよい。
【００１９】
［第１の実施の形態］
＜本実施の形態の概要＞
本発明では、まずDNSデータからIPアドレスとドメイン名などの情報を含むDNS情報データベースを生成する。次に、フローデータに出現するIPアドレスに対し、DNSデータから生成したデータベースを検索し、対応するドメイン名の紐付けを行う。
【００２０】
＜構成＞
図２は、本発明の第１の実施の形態におけるシステム構成である。
【００２１】
同図示すシステムは、ユーザ端末１、通信先サーバ２、DNSキャッシュサーバ３、ルータ４、IPアドレスを保有しないスイッチであるL2SW５、送信元・宛先組織特定装置１００から構成される。
【００２２】
送信元・宛先組織特定装置１００は、フローデータを収集するフローデータ収集部１１０、DSNトラヒックデータを収集するDNSデータ収集部１２０、DNSトラヒックデータからDNSサーバ3に問い合わせ、応答情報を含むDNS情報データベース(DB)１５０と、フローデータベース(DB)１４０を生成するデータベース生成部１３０、フローDB１４０とDNS 情報DB１５０を突合せ、組織とトラヒックの紐付けを行うマッチング部１６０、マッチングの結果を出力する出力部170から構成される。
【００２３】
本発明の入力として、DNSキャッシュサーバ３へ届くトラヒックデータがDNSデータ収集部１２０に、NetFlowを用いて収集したフローデータがフローデータ収集部１１０にルータ４から与えられるものとする。DNSトラヒックデータには問い合わせドメイン名、その問い合わせに対する応答、問い合わせ送信元IPアドレス、問い合わせ時刻などが含まれ、フローデータには送信元IPアドレス、宛先IPアドレス、パケット数、トラヒック量、フローの取得開始時刻などの情報が含まれる。なお、DNSトラヒックデータ及びフローデータの収集箇所は、同一ネットワークでなくてもよい。
【００２４】
＜DNS情報データベースの生成＞
DNSデータ収集部１２０から与えられたDNSデータには問い合わせ送信元、時刻情報、応答情報が含まれている。応答情報にはどのドメイン名を問い合わせたか、そのドメイン名に対応するIPアドレスは何かというものが含まれている。データベース生成部１３０は、この情報を利用し、図３のようなドメイン名を第1要素、そのドメイン名に対応するIPアドレスを第2要素、問い合わせた送信元IPアドレスを第3要素、および問い合わせ時刻情報を第4要素、そのドメイン名の問い合わせ回数を第5要素とするDNS情報DB１５０を生成する。
【００２５】
＜フローDBの作成＞
データベース生成部１３０は、フローデータとして、送信元、宛先IPアドレスやパケット数、フローサイズ（流量）、そのフローの取得開始時刻などがフローデータ収集部１１０から入力されると、図４に示すように、送信元IPアドレスを第１要素、宛先IPアドレスを第２要素、フローの取得開始時刻を第３要素、パケット数を第４要素、流量を第５要素とするフローDB１４０を生成する。
【００２６】
＜フローデータに含まれるIPアドレスとドメイン名のマッチング＞
フローデータには送信元、宛先IPアドレスやパケット数、フローサイズ（流量）、そのフローの取得開始時刻などが含まれる。図５に示すように、マッチング部１６０は、フローDB１４０のフローデータに含まれる宛先IPアドレスがDNS情報DB１５０の第2要素（ドメイン名に対応するIPアドレス）、送信元IPアドレスがDNS情報DB１５０の第3要素（問い合わせ元）、フロー取得開始時刻がDNS情報DB１５０の第4要素（問い合わせ時刻）と一致するレコードを検索する。なお、フロー取得開始時刻とDNS情報DB１５０の第4要素とは厳密には同じ時刻にはならない可能性があるため、完全一致ではなく一定時間以内の差異を許容することが考えられる。次に、検索結果のレコードの第1要素であるドメイン名を、上記宛先IPアドレスに付与する。マッチング結果は、図５に示すように、宛先ドメイン名、パケット数、流量となる。
【００２７】
なお、検索結果として複数のレコードが得られた場合は問い合わせ時刻が最新のものを利用するものとする。
【００２８】
［第２の実施の形態］
＜データベース検索の課題＞
最近のOSやWebブラウザの実装では、DNS情報を端末に保存しておく機能がある。そのため、送信元端末はWebサイトの閲覧などにおいて必ずしもDNSサーバと通信するとは限らず、直接Webサーバへアクセスするケースが存在する。このような場合、DNS情報データベースの時刻情報や問い合わせ元IPアドレスの検索に失敗してしまう課題がある。また、DNSデータとフローデータの収集箇所が異なる場合、フローデータの送信元の検索に失敗するケースが存在する。他の問題として、収集したDNSトラヒックデータの中には存在する全てのドメイン名とそれに対応するIPアドレス情報が含まれていないというものがある。このような場合、フローデータに含まれる宛先IPアドレスとDNS情報DB１５０の第2要素の検索に失敗してしまう。以下、この課題に対する対処方法を記す。
【００２９】
＜過去の問い合わせ情報を利用したマッチング方法＞
検索に失敗したときの処理として、本実施の形態ではその送信元の過去のDNS問い合わせ情報または異なる送信元のDNS問い合わせ情報を利用する。具体的には、図６に示すように、フローDB１４０のフローデータに含まれる宛先IPアドレスがDNS情報DB１５０の第2要素、送信元IPアドレスがDNS情報DB１５０の第3要素と一致するようなレコードを検索し、そのレコードの第1要素であるドメイン名を宛先IPアドレスに付与する。
【００３０】
［第３の実施の形態］
本実施の形態では、前述のDNSデータとフローデータの収集場所が異なる場合、送信元を利用した検索は失敗してしまうという課題を解決するための第２の方法について説明する。
【００３１】
＜他のユーザの問い合わせ情報を利用したマッチング方法＞
本実施の形態では、他のユーザのDNS問い合わせ情報を利用する。具体的には、図７に示すように、フローDB１４０のフローデータに含まれる宛先IPアドレスがDNS情報DB１５０の第2要素と一致するレコードを検索し、そのレコードの第1要素であるドメイン名を宛先IPアドレスに付与する。
【００３２】
しかしながら、全ドメイン名とIPアドレス情報を持っていない場合、宛先IPアドレスを用いた検索に失敗してしまう。この場合の対処として、宛先IPアドレスおよびDNS情報DB１５０の第2要素のIPアドレスのネットワーク部を利用する。これは、あるIPアドレスの近隣にあるIPアドレスは同一組織のものであることが多いということを利用したものである。具体的には、図８に示すように、宛先IPアドレスの上位nビットとDNS情報データベースの第2要素のIPアドレスの上位nビットが一致するレコードを検索し、そのレコードの第1要素であるドメイン名を宛先IPアドレスに付与する。または、フローデータに含まれる宛先IPアドレスがDNS情報DB１５０の第2要素と一致するレコードを検索し、そのレコードの第1要素であるドメイン名を宛先IPアドレスに付与する。
【００３３】
前述の図７、図８で示したマッチング方式では、DNS情報データベースの検索結果として複数のレコードが得られるケースが存在する。本実施の形態では、このときの対処方法を記す。
【００３４】
図７および図８の場合においては、他のユーザの問い合わせ情報を利用しているため、どのドメイン名と通信したかを判別することは困難である。そこで、全ユーザの問い合わせ傾向から得られた複数のドメイン名にフローを按分する。具体的には、検索によって得られたドメイン名がA、B、Cであり、それぞれの問い合わせ回数が10、40、50だとすると、Aにはフローのパケット数、フローサイズの10%を、Bには40%、Cには50%を割り振る。また、Aがドメイン名A'、A''の別名であるである場合、割り当てられた10%のパケット数、フローサイズをCNAMEの出現回数によって按分する。
【００３５】
[第４の実施の形態]
前述の第１〜第３の実施の形態によってIPアドレスにドメイン名を付与するとき、CNAMEによって正しいドメイン名が付与されないケースが存在する。例えば、"www.example.com"のCNAMEが"www2.example.com"の場合、以下の情報がキャッシュとして保存される。
１．  www.example.comの別名はwww2.example.com
２．  www2.example.comのIPアドレスはxxx.xxx.xxx.xxx
上記1および2にはそれぞれキャッシュの保持期間が設定されているが、それぞれの保存期間が同一ではないケースが存在する。例えば、2の保存期間が1の保存期間より短く設定されている場合、2の保存期間が過ぎ、端末が"www.example.com"の名前解決をするとき、1の情報がキャッシュとして保存されているため、端末はwww.example.comではなく"www2.example.com"の名前解決を行うことになる。このとき、DNS情報データベースには"www.example.com"ではなく"www2.example.com"が記録される。これにより、上記マッチング方法では、IPアドレスに"www.example.com"ではなく"www2.example.com"を誤って付与してしまう。
【００３６】
本実施の形態では、この問題を解決するために、CNAMEデータベースを利用し、元ドメイン名を復元する。
【００３７】
図９は、本発明の第４の実施の形態における送信元・宛先組織特定装置の構成を示す。同図に示す装置は図２に示す構成にCNAMEデータベース１５５を付加した構成である。
【００３８】
データベース生成部１３０は、以下の方法によりCNAMEDB１５５を生成する。
【００３９】
DNSの応答に含まれる情報には、CNAMEと呼ばれるドメイン名の別名を定義するためのリソースレコードが存在する。例えば、"www. example.co.jp"のIPアドレスを取得するためにDNSサーバへ問い合わせを発行すると、その応答には以下のようなCNAMEレコードが含まれている。
【００４０】
www.example.co.jp.    129909    IN    CNAME    www. example.com.
www.example.com.     387328    IN    CNAME   www.2. example.com.
これは、"www. example.co.jp"の別名が"www. example.com"であり、さらに"www. example.com"の別名が"www2. example.com"であることを表している。本実施の形態では、CNAMEの左にあるドメイン名を元ドメイン名、右側にあるドメイン名を別名と定義する。データベース生成部１３０は、DNS応答情報から、図１０に示すような第1要素を元ドメイン名、第2要素を別名、第３要素をドメイン名と別名の出現回数とするCNAME DB１５５を生成する。
【００４１】
本実施の形態におけるマッチング部１６０は、図１１に示すように、検索によって得られたドメイン名がCNAME  DB１５５の第2要素と一致するレコードを検索し、得られたレコードの第1要素がさらにCNAMEDB１５５の第2要素と一致するレコードがあるかどうかを再帰的に調べる。一致するレコードが存在しなくなるまで検索し、そのドメイン名をIPアドレスに付与する。
【００４２】
本実施の形態における動作のフローチャートを図１２に示す。
【００４３】
まず、マッチング部１６０に、送信元IPアドレス（s）、宛先IＰアドレス（d）、開始時刻（t）、パケット数（pc）、フローサイズ（fs）が入力されると（ステップ１０１）、DNS情報DB１５０にs，d，tが存在するかを判定し（ステップ１０２）、存在する場合は、ドメイン名（f）とクエリ数（qc）の組を出力する（ステップ１０６）。存在しない場合は、DNS情報DB１５０にｓ及びｄが存在するかを判定し（ステップ１０３）、存在する場合はステップ１０６の処理を行う。存在しない場合は、DNS情報DB１５０にdが存在するかを判定し、存在する場合はステップ１０６の処理を行う。存在しない場合はDNS情報DB１５０に宛先IPアドレスｄのネットワーク部NW（d）が存在するかを判定する。例えば、d=192.168.0.1の場合、NW(d)=192.168.0.0/24や192.168.0.0/16が存在するかを判定する。存在する場合はステップ１０６の処理を行い、存在しない場合は処理を終了する（ステップ１０５）。
【００４４】
ステップ１０６において、（f，qc）を出力した後、fがCNAME DB１５５に存在するかを判定し（ステップ１０７）、存在する場合は元ドメイン名（q）及びCNAMEの出現関数（cc）を出力し（ステップ１０８）、ドメイン名にパケット数、フローサイズを按分する関数として（q，pc，cc）及び(q，ps，cc)を出力する（ステップ１０９）。fがCNAME DB１５５に存在しない場合は（ステップ１０７、No）、ドメイン名にパケット数、フローサイズを按分する関数として（f，pc，qc）及び(f，ps，qc)を出力する（ステップ１１０）。 
なお、上記の実施の形態における図２、図９に示す送信元・宛先組織特定装置のフローデータ収集部１１０、DNSデータ収集部１２０、データベース生成部１３０、マッチング部１６０、出力部１７０の各動作をプログラムとして構築し、送信元・宛先組織特定装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【符号の説明】
【００４５】
１  ユーザ端末
２  通信先サーバ
３  DNSサーバ
４  ルータ
５  L2SW
１００  送信元・宛先組織特定装置
１１０  フローデータ収集部
１２０  DNSデータ収集部
１３０  データベース生成部
１４０  フローデータベース（DB）
１５０  DNS情報データベース（DB）
１５５  CNAMEデータベース（DB）
１６０  マッチング部
１７０  出力部
【図１】
0005770652.tif 000002
【図２】
0005770652.tif 000003
【図３】
0005770652.tif 000004
【図４】
0005770652.tif 000005
【図５】
0005770652.tif 000006
【図６】
0005770652.tif 000007
【図７】
0005770652.tif 000008
【図８】
0005770652.tif 000009
【図９】
0005770652.tif 000010
【図１０】
0005770652.tif 000011
【図１１】
0005770652.tif 000012
【図１２】
0005770652.tif 000013