(57)【要約】【課題】ＤｏＳ攻撃の危険性を低下させた安全な宅内ネットワークの構成を調査できるようにしたい。【解決手段】宅内ネットワークの構成調査を行う通信装置は、ＴＴＬを変化させたルータ調査用パケットを生成し、前記ルータ調査用パケットの送信先を切り替える調査用パケット作成部と、前記ルータ調査用パケットに対応してルータから返信されるＩＣＭＰパケットから前記ルータのアドレスを取得する受信パケット解析部と、前記受信パケット解析部から情報を取得し、前記ルータ調査用パケット作成部を制御し、ネットワークの調査を施す制御部と、前記ルータ調査用パケットおよびＩＣＭＰパケットを送受信するパケット送受信部を備える。【選択図】図１
2006345347.tif 000002
【特許請求の範囲】
【請求項１】
第１のネットワークと前記第１のネットワークと異なる第２のネットワークを接続するルータを含む前記第１のネットワークにおいて、
前記第１のネットワークに接続され、ルータ調査用パケットを前記第１のネットワーク上のルータに対して送出し、前記ルータ調査用パケットを受信したルータから送出される前記ルータ調査用パケットに対する応答パケットにより、前記第１のネットワークの構成を調査する通信装置であって、
前記応答パケットの内容に応じて、前記ルータ調査用パケットの作成を制御し、ネットワークの調査を施す制御部と、
前記ルータ調査用パケットの送信先を切り替える送信先切り替え部と、
前記送信先切り替え部が選んだルータ調査用パケットの送信先または前記応答パケットから取得したルータのアドレスを記憶する記憶部と、
を備えたことを特徴とする通信装置。
【請求項２】
前記制御部は、前記第１のネットワーク調査を定期的に行うこと、
を特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１および第２のネットワークはＩＰ（インターネットプロトコル）ネットワークであって、
前記応答パケットはＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）パケットであって、
前記制御部は、ＴＴＬ（Ｔｉｍｅ  ｔｏ  Ｌｉｖｅ）を変化させた前記ルータ調査用パケットの作成を制御すること、
を特徴とする請求項１に記載の通信装置。
【請求項４】
前記第１のネットワークはプライベートアドレスを利用するネットワークであり、前記第２のネットワークはグローバルアドレスを利用するネットワークであって、
前記制御部は、前記ルータ調査用パケットのＴＴＬを１つずつ増加させるように指示し調査を行って、
前記制御部は、前記応答パケットから取得したルータのアドレスから、送信した前記ルータ調査用パケットが第２のネットワークまで届いたことを判別したら、前記第１のネットワークの構成の調査を終了すること、
を特徴とする請求項３に記載の通信装置。
【請求項５】
前記第１のネットワークはプライベートアドレスを利用するネットワークであり、前記第２のネットワークはグローバルアドレスを利用するネットワークであって、
前記制御部は、前記送信先切り替え部に、送信する前記ルータ調査用パケットの送信先を前記記憶部に記憶されたグローバルアドレスの集合から選んで切り替えるように指示し調査を行うこと
を特徴とする請求項１に記載の通信装置。
【請求項６】
前記制御部は、進行中または以前の前記第１のネットワークの構成の調査において、
前記応答パケットから取得したルータのアドレスまたは前記送信先切り替え部が選んだ送信先に基づいて、
前記送信先切り替え部に送信するルータ調査用パケットの送信先を選んで切り替えるように指示し調査を行うこと、
を特徴とする請求項１または請求項２に記載の通信装置。
【請求項７】
前記制御部は、前記送信先切り替え部に送信する前記ルータ調査用パケットの送信先をアドレス空間の除外集合に属さないアドレスから選んで切り替えるようにして、送信する指示処理と、前記応答パケットの送信元のアドレスが、前記応答パケットに対応する前記ルータ調査用パケットの送信先と同じアドレス空間であれば、前記アドレス空間を前記除外集合に追加する除外集合更新処理を繰り返し行うこと、
を特徴とする請求項６に記載の通信装置。
【請求項８】
第１のネットワークと前記第１のネットワークと異なる第２のネットワークを接続するルータを含む前記第１のネットワークにおいて、
前記第１のネットワークに接続され、ルータ調査用パケットを用いて前記第１のネットワークを調査する通信装置が行う調査方法であって、
複数のルータ調査用パケットを生成し、前記ルータ調査用パケットの送信先を切り替え、送信するステップと、
前記ルータ調査用パケットに対応してルータから返信される応答パケットから前記ルータのアドレスを記憶するステップと、
を備えたことを特徴とするネットワーク調査方法。
【請求項９】
第１のネットワークと前記第１のネットワークと異なる第２のネットワークを接続するルータを含む前記第１のネットワークにおいて、
前記第１のネットワークに接続され、ルータ調査用パケットを用いて前記第１のネットワークを調査する処理を実行するプログラムであって、
複数のルータ調査用パケットを生成し、前記ルータ調査用パケットの送信先を切り替え、送信するステップと、
前記ルータ調査用パケットに対応してルータから返信される応答パケットから前記ルータのアドレスを記憶するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信装置がＮＡＴデバイスを通じて１つのグローバルアドレスを共有する家庭内などのローカルネットワーク（以下、宅内ネットワークと称す）において、ローカルネットワークを構成するルータのアドレス情報を安全に調査する通信装置に関するものである。
【背景技術】
【０００２】
インターネットへのブロードバンドアクセスの普及で、家庭内においても複数の通信装置がインターネットに接続することが普通になってきた。
【０００３】
通常、家庭において契約するＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）から割り当てられるＩＰアドレスは１つである。このため、家庭内の複数の通信装置が同時に直接インターネットに接続することはできない。実際には、複数の通信装置をインターネットに接続する際には、各通信装置が接続される宅内ネットワークとＩＳＰへのアクセス回線をＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）機能を搭載したルータを介して接続するのが一般的である。この場合、各通信装置は、ＩＳＰから割り当てられたＩＰアドレスを共有して利用することにより、インターネットへ接続することが可能となる。
【０００４】
［ＮＡＴ機能のメカニズムの説明］
一般のＮＡＴ機能搭載ルータはＬＡＮ側とＷＡＮ側という２つの通信インターフェースを備える。通常、ＬＡＮ側インターフェースにはプライベートアドレスが割当てられ、ローカルネットワークに接続される。一方、ＷＡＮ側インターフェースには、グローバルアドレスが割当てられ、インターネットのようなグローバルアドレス空間のネットワークに接続される。ＮＡＴ機能搭載ルータのＬＡＮ側のローカルネットワークに接続される１つ以上の通信装置はＮＡＴ機能搭載ルータのＷＡＮ側アドレスを共有することで、ＷＡＮ側通信インターフェースを通じてアクセスできるネットワークとの間でデータを送受信できる。
【０００５】
ＮＡＴ機能搭載ルータはＬＡＮ側に接続される複数の通信装置によりＷＡＮ側アドレスが共有できるように、中継するデータパケットの送信先または送信元情報を変換するアドレス変換機能を持つ。また、変換するアドレスの対応付けを管理するアドレス変換テーブルを持つ。
【０００６】
ＮＡＴ機能による変換方法は、アドレス情報だけを変換するものと、アドレスに加えてポート情報を変換するもの（ＮＡＴと区別してＮＡＰＴと呼ぶこともある）の２種類ある。以降は後者について述べるが、前者のメカニズムもポート番号が変換されないことを除いて同様である。
【０００７】
図１３（Ａ）にＮＡＴ機能のメカニズムを説明するための、典型的なネットワーク構成を示す。あるＮＡＴ機能搭載ルータＲのＬＡＮ側通信インターフェースにＴＡとＴＢという２つの通信装置が接続され、ＲのＷＡＮ側通信インターフェースはインターネットに接続され、ＴＡとＴＢはインターネットにあるサーバＳと通信する場面を仮定する。ＲのＬＡＮ側通信インターフェースのアドレスをＲＬａｄｄ、ＷＡＮ側インターフェースアドレスをＲＷａｄｄとする。ＴＡとＴＢは宅内でしか利用できないプライベートアドレスＡａｄｄ、Ｂａｄｄを、ＳはグローバルアドレスＳａｄｄをそれぞれ保有する。
【０００８】
まず、ＴＡがはじめてＳにデータパケットを送信する場合の処理について説明する。このとき、ＴＡが送信するパケットの送信元アドレスはＡａｄｄであり、送信元ポートがＰＡ１であるとする。ＲはこのパケットをＬＡＮ側インターフェースから受信し、パケットヘッダの送信元アドレスをＲＷａｄｄに、送信元ポートをＲが現在使用していないポート番号ＰＡ２に変換し、ＷＡＮ側インターフェースを通じてＳに中継する。また、Ｒはこのような変換の識別できる情報（プロトコル、送信先アドレスとポート番号、送信元アドレスとポート番号）を持つエントリを図１３（Ｂ）のように自身のアドレス変換テーブルに追加する。このように生成されたアドレス変換テーブルにおけるエントリをＮＡＴマッピングと称する。以降、ＴＡは同じ送信元ポートから同じ送信先アドレスＳに同じプロトコルを用いるパケットを送った場合、該当エントリは同じであるため、エントリを新しく追加する必要はない。
【０００９】
次に、上記パケットを受け取ったＳがＴＡにパケットを返信する際の処理について説明する。Ｓがデータパケットを受信して、返信パケットを送信する場合、パケットヘッダの送信先アドレスはＲＷａｄｄ、送信先ポート番号はＰＡ２となる。ＲはＳからのパケットをＷＡＮ側インターフェースで受信し、パケットのプロトコル、送信元アドレスとポート番号、送信先ポート番号情報を用いて、アドレス変換テーブルを参照する。ＴＡがＳに送信した時に生成されたエントリが該当するので、このエントリの情報を用いて、パケットヘッダの送信先アドレスとポートをそれぞれＡａｄｄとＰＡ１に変更し、ＬＡＮ側インターフェースを通じてＴＡに中継する。このようにして、ＮＡＴ機能搭載ルータはプライベートアドレスを保有する通信装置とＷＡＮ側ネットワークとの間の通信を可能にする。
【００１０】
また、ＴＢはＳにデータパケットを送信する場合、上記と同様のメカニズムにより、Ｒがパケットのアドレス変換とアドレス変換テーブルのエントリ（変換後の送信元ポート番号としてＰＡ２以外のポート番号を使用）を追加する。このようにして、ＮＡＴ機能搭載ルータは複数の通信装置で１つのアドレスを共有できることを可能にする。
【００１１】
なお、上記のように追加されたアドレス変換テーブルのエントリは有効期限があり、ＮＡＴ機能搭載ルータはしばらく（通常は３０秒程度）このエントリに該当するパケットを中継しなければ、エントリを削除する。
【００１２】
［ＮＡＴ機能搭載ルータにおけるＮＡＴマッピングの設定］
上記の説明から分かるように、ＮＡＴ機能搭載ルータのＷＡＮ側インターフェースからのパケットがＬＡＮ側インターフェースまで通過するためには、事前にＮＡＴマッピングの生成が必要となる。すなわち、上記のメカニズムだけを利用する場合、ＴＡからＳへのパケットを事前に送出しなければ、ＳからＴＡへデータを送ることができない。
【００１３】
インターネット電話などのようなアプリケーションにおいては、ＬＡＮ側通信インターフェースから事前にデータを送信することなく、ＷＡＮ側通信インターフェースからのパケットをＬＡＮ側通信インターフェースが接続しているローカルネットワーク内の通信装置に中継しなければならないことがある。このような通信ができるための方法として、ＮＡＴ機能搭載ルータに静的ＮＡＴマッピングという設定をＮＡＴ機能搭載ルータに手動で行うという方法がある。静的ＮＡＴマッピングを設定することにより、ＮＡＴ機能搭載ルータのＷＡＮ側インターフェースから、特定のプロトコル、送信先アドレスとしてルータアドレス、送信先ポートとして特定のポート番号を持つパケットを、ＬＡＮ側通信インターフェースの特定のホストに中継させることができる。また、ＵＰｎＰなどのようなプロトコルを用いて、ローカルネットワーク内の通信装置からルータのＬＡＮ側インターフェースに適切なＵＰｎＰメッセージを送ることで、同様の設定ができる方法もある。
【００１４】
［宅内におけるルータの多段構成および宅内構成の監視の必要性］
ここまでは、宅内に存在するＮＡＴ機能搭載ルータが１つであることを前提に説明してきたが、実際には宅内ネットワークにおいて、複数のＮＡＴ機能搭載ルータが多段構成（直列接続）になることがある。例えば、無線装置を利用するため、有線専用のＮＡＴ機能搭載ルータのＬＡＮ側通信インターフェースに、無線ルータ（ＮＡＴ機能搭載）を接続するというケースが挙げられる。また、複数の家庭が１つのグローバルアドレスを共有する集合住宅のネットワークにおいて、各家庭内にＮＡＴ機能搭載ルータを設置するケースも挙げられる。
【００１５】
家庭内のネットワークにおいて、ＮＡＴ機能搭載ルータが多段構成となっている場合も、外部から通信を開始する場合がある一部のアプリケーション（インターネット電話における着信など）を利用する場合、各ルータを手動やＵＰｎＰなどで設定する必要があることは既に述べた。また、一度設定を行ったとしても、家庭内でのルータの置き換え、追加などが行なわれた場合、新たに導入されたルータではＮＡＴマッピングが未設定であるため、外部からの通信が行なえなくなるという問題がある。
【００１６】
そのため、上記のような問題の発生を検出する必要がある。すなわち、家庭内の通信装置は家庭内のＮＡＴ機能搭載ルータの構成を監視する必要がある。具体的には、宅内ネットワークのＮＡＴ機能搭載ルータアドレス情報を取得し、変化しているかどうかを検出する。家庭内の通信装置は宅内ＮＡＴ機能搭載ルータの構成の変化を検出できれば、ユーザに新たに導入されたルータへの設定を促したり、または自動的にルータの設定を行ったりすることが可能となる。
【００１７】
なお、ここではグローバルアドレス空間を持つネットワークから宅内ネットワークの装置への通信のために宅内ネットワーク構成を調査する場合について述べたが、本発明はその他の目的のために宅内ネットワークの構成を調査する場合にも利用可能である。
【００１８】
［従来技術］
ネットワークの構成の変化を検出する方法として、特許文献１がある。ここでは、ｔｒａｃｅｒｏｕｔｅを用いて、ネットワーク構成を調査することによりルータの障害を検出する方法が開示されている。
【００１９】
ｔｒａｃｅｒｏｕｔｅはネットワーク接続に関する問題の原因を調べるためによく使われるプログラムである。ｔｒａｃｅｒｏｕｔｅを利用すると、このプログラムが実行される通信装置からある特定の通信装置へ送られるデータパケットの使用する経路、すなわち、データパケットが経由する各ルータのアドレス、を得ることができる。
【００２０】
ｔｒａｃｅｒｏｕｔｅプログラムが各ルータのアドレスを取得する仕組みについて以下で説明する。ＩＰパケットはＴＴＬ（ｔｉｍｅ  ｔｏ  ｌｉｖｅ：有効期限）というフィールドを有する。通信経路上の各ルータはＩＰパケットを中継する際、ＴＴＬフィールドの値を１つ減少させ、その結果の値がゼロ以外であればパケットを宛先への経路上の次のルータに中継する。値がゼロであれば、そのパケットを破棄し、送信元にＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄ（ＩＣＭＰ時間超過）というエラーメッセージを送る。ｔｒａｃｅｒｏｕｔｅではこのＩＣＭＰメッセージの送信元アドレスから各中継ルータのアドレスを知ることができる。
【００２１】
ある特定のホストに向けてｔｒａｃｅｒｏｕｔｅを実行すると、プログラムはそのホストにＴＴＬを１から１つずつ増加させた調査用のデータパケットを送出する。これにより、宛先までの通信経路情報の各ルータから、ＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージを受け取ることができ、これらのルータのアドレス情報を取得できる。ＴＴＬの値は十分に大きくなると、調査用のパケットが送信先に到着してしまい、この場合送信先からＩＣＭＰ  ｐｏｒｔ  ｕｎｒｅａｃｈａｂｌｅというメッセージを送られ、ｔｒａｃｅｒｏｕｔｅはこれを受信すると調査を終了する。
【００２２】
特許文献１では、監視端末からローカルエリアネットワーク内の端末に向けてｔｒａｃｅｒｏｕｔｅを実行し、その中継ルータが変更された（すなわち、ルータ障害により通信経路が変更された）ことを検出することにより障害の発生したルータを特定している。
【００２３】
また、特許文献１の他に、宅内端末がｔｒａｃｅｒｏｕｔｅをインターネット上のサーバに対して行なうことによって、宅内ネットワーク構成の変化を検出する従来技術がある。ここでは、宅内端末は定期的に特定のサーバに向けてｔｒａｃｅｒｏｕｔｅを実行して、宅内端末とサーバの間の各ルータのアドレス情報を取得することで宅内のルータ構成を監視している。
【特許文献１】特開２００２−１１１６６５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかし、特許文献１の方法は、ルータの障害を検出することが目的のため、あらかじめ定められたローカルエリアネットワーク内の端末に対してｔｒａｃｅｒｏｕｔｅを実行する。このため、本発明の目的の１つである新たなルータ追加時のルータの検出に利用することはできない。
【００２５】
また、インターネット上の特定のサーバに定期的にｔｒａｃｅｒｏｕｔｅを実行する方法では、ＤｏＳ攻撃の危険性が発生するという問題がある。この問題が発生する仕組みを以下に説明する。まず、ｔｒａｃｅｒｏｕｔｅの実行で、定期的に既知のアドレスを持つサーバに調査用のデータパケットを送ることとなり、上記のＮＡＴ機能の説明に記載した通り、宅内のＮＡＴ機能搭載ルータのアドレス変換テーブルでの該当エントリが半永久的に保持され続ける。このため、送信元アドレスとしてサーバアドレス、送信先アドレスとして宅内の端末をヘッダに持つ宅外から送られたデータパケットはＮＡＴ機能搭載ルータを通過し、宅内の端末に到着できるようになる。悪意の第３者は、サーバになりすまして、送信元アドレスとしてサーバのアドレスを持つパケットを大量に宅内の端末へ送ると、ＤｏＳ攻撃を実行することができる。サーバアドレスは既知であるため、悪意の第３者がこのような攻撃を行なうことは比較的容易である。
【００２６】
上記ＤｏＳ攻撃の問題を防止するため、グローバルアドレス空間ネットワークにあるサーバに向けて調査パケットを送信することなく、例えば図２の構成例のルータＢ２５０のように、グローバルアドレスネットワークに接続している宅内のルータに向けて調査パケットを送信することを考えられる。しかし、この場合だと、ルータＢの上位に新しく宅内ルータが追加された時の構成の変更が検出できない。
【００２７】
本発明では、新たにルータが追加された場合にも適用可能で、かつＤｏＳ攻撃の危険性を低下させた、ネットワーク構成調査装置を提供する。
【課題を解決するための手段】
【００２８】
本発明の請求項１に係る通信装置は、第１のネットワークと第１のネットワークと異なる第２のネットワークを接続するルータを含む第１のネットワークにおいて、第１のネットワークに接続され、ルータ調査用パケットを第１のネットワーク上のルータに対して送出し、ルータ調査用パケットを受信したルータから送出されるルータ調査用パケットに対する応答パケットにより、第１のネットワークの構成を調査する通信装置であって、応答パケットの内容に応じて、ルータ調査用パケットの作成を制御し、ネットワークの調査を施す制御部と、ルータ調査用パケットの送信先を切り替える送信切り替え部と、送信先切り替え部が選んだルータ調査用パケットの送信先または応答パケットから取得したルータのアドレスを記憶する記憶部と、を備えている。
【００２９】
本構成によって、前記ルータ調査用パケットの送信先を切り替えることで、宅内ネットワークのルータにおいて半永久的なＮＡＴマッピングを生成されなくなり、ＤｏＳ攻撃のリスクを軽減することができる。
【００３０】
本発明の請求項２に係る通信装置は、請求項１に記載の通信装置であって、制御部は、第１のネットワーク調査を定期的に行う。
【００３１】
本構成によって、宅内ネットワークの構成の調査を定期的に行うことでルータの入れ替えなどの宅内ネットワーク構成の変更を調査間隔の粒度で検出することができる。
【００３２】
本発明の請求項３に係る通信装置は、請求項１に記載の通信装置であって、第１および第２のネットワークはＩＰ（インターネットプロトコル）ネットワークであって、応答パケットはＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）パケットであって、制御部は、ＴＴＬ（Ｔｉｍｅ  ｔｏ  Ｌｉｖｅ）を変化させた前記ルータ調査用パケットの作成を制御する。
【００３３】
本構成によって、本発明はＩＰネットワークで使用する既存のプロトコルで実施でき、新しいプロトコルの作成は不要である。
【００３４】
本発明の請求項４に係る通信装置は、請求項３に記載の通信装置であって、第１のネットワークはプライベートアドレスを利用するネットワークであり、第２のネットワークはグローバルアドレスを利用するネットワークであって、制御部は、ルータ調査用パケットのＴＴＬを１つずつ増加させるように指示し調査を行って、制御部は、応答パケットから取得したルータのアドレスから、送信したルータ調査用パケットが第２のネットワークまで届いたことを判別したら、第１のネットワークの構成の調査を終了する。
【００３５】
本構成によって、ＴＴＬを徐々に増加してルータ調査用パケットを送信することで、通信装置と第２ネットワークの間の全ての宅内ルータアドレスを取得でき、さらにルータ調査用パケットの送出をできるだけ宅内ネットワーク（第１のネットワーク）に限定して、第２のネットワークに存在し得る悪意の第３者によりルータ調査用パケットのなりすましの可能性を軽減し、ルータ調査用パケットの情報を攻撃のために使われる可能性を低くすることができる。
【００３６】
本発明の請求項５に係る通信装置は、請求項１に記載の通信装置であって、第１のネットワークはプライベートアドレスを利用するネットワークであり、第２のネットワークはグローバルアドレスを利用するネットワークであって、制御部は、送信先切り替え部に、送信するルータ調査用パケットの送信先をグローバルアドレスの集合から選んで切り替えるように指示し調査を行う。
【００３７】
本構成によって、ルータ調査用パケットの送信先をグローバルアドレスの集合から選択して切り替え、不特定の相手に送信することなく、予めネットワーク調査の目的で利用することを許されたアドレスにのみ送信することで、無関係のホストに攻撃と誤解されるような調査パケットを送信しない。
【００３８】
本発明の請求項６に係る通信装置は、請求項１また請求項２に記載の通信装置であって、制御部は、進行中または以前の第１のネットワークの構成の調査において、応答パケットから取得したルータのアドレスまたは送信先切り替え部が選んだ送信先に基づいて、送信先切り替え部に送信するルータ調査用パケットの送信先を選んで切り替えるように指示し調査を行う。
【００３９】
本構成によって、今まで検出した宅内ネットワークの部分の構成によりルータ調査用パケットの送信先を選ぶことで、残りの部分の構成をより効率的に調査することができる。また、悪意の第３者からの攻撃の可能性を軽減するために、以前の宅内ネットワーク調査で使われたルータ調査用パケットの宛先を考慮して、今回のルータ調査用パケットの宛先を選択できる。
【００４０】
本発明の請求項７に係る通信装置は、請求項６に記載の通信装置であって、制御部は、送信先切り替え部に送信するルータ調査用パケットの送信先をアドレス空間の除外集合に属さないアドレスから選んで切り替えるようにして、送信する指示処理と、応答パケットの送信元のアドレスが、応答パケットに対応するルータ調査用パケットの送信先と同じアドレス空間であれば、アドレス空間を除外集合に追加する除外集合更新処理を繰り返し行う。
【００４１】
本構成によって、今まで検出した宅内ネットワークの部分の構成によりルータ調査用パケットの送信先を適切なプライベートアドレスにすることで、ルータ調査用パケットの送信先として攻撃を受けやすいグローバルアドレスを宛先としたＮＡＴマッピングを生成せずに、宅内ネットワークの全体の構成を調査することができる。
【００４２】
本発明の請求項８に係るネットワーク調査方法は、第１のネットワークと前記第１のネットワークと異なる第２のネットワークを接続するルータを含む前記第１のネットワークにおいて、第１のネットワークに接続され、ルータ調査用パケットを用いて第１のネットワークを調査する通信装置が行う方法であって、複数のルータ調査用パケットを生成し、ルータ調査用パケットの送信先を切り替え、送信するステップと、ルータ調査用パケットに対応してルータから返信される応答パケットからルータのアドレスを取得するステップとを備える。
【００４３】
本発明の請求項９に係るプログラムは、第１のネットワークと前記第１のネットワークと異なる第２のネットワークを接続するルータを含む前記第１のネットワークにおいて、第１のネットワークに接続され、ルータ調査用パケットを用いて第１のネットワークを調査する処理を実行するプログラムであって、複数のルータ調査用パケットを生成し、ルータ調査用パケットの送信先を切り替え、送信するステップと、ルータ調査用パケットに対応してルータから返信される応答パケットからルータのアドレスを取得するステップとを備える。
【発明の効果】
【００４４】
本発明の通信装置によれば、ＮＡＴ機能搭載ルータにおいてＤｏＳ攻撃に使われやすいＮＡＴマッピングを生成しなくても、宅内ネットワークのルータアドレス情報を取得することができる。
【発明を実施するための最良の形態】
【００４５】
（実施の形態１）
以下本発明の実施の形態１について、図面を参照しながら説明する。
【００４６】
図２は、本発明の実施の形態１における第１のネットワークの構成を示している。
【００４７】
図２において、第１のネットワークであるところの宅内ネットワーク２１０内にルータＡ２４０とルータＢ２５０があり、ルータＡ２４０とルータＢ２５０はＮＡＴ機能を搭載している。ルータＢ２５０が第２のネットワークであるところのインターネット２２０との境界に配置されており、このルータＢ２５０が、グローバルアドレスを用いて通信を行うインターネット２２０内のルータＣ２６０との間で接続を行うことにより、宅内ネットワーク２１０とインターネット２２０との接続が確立される。ルータＢ２５０は、ＬＡＮ側通信インターフェース２５２とＷＡＮ側通信インターフェース２５１を有しており、ＬＡＮ側通信インターフェース２５２にはプライベートアドレスが割り当てられ、ＷＡＮ側通信インターフェース２５１にはグローバルアドレスが割り当てられている。ルータＣは通信インターフェース２６２を介してルータＢ２５１と接続している。
【００４８】
宅内ネットワーク２１０内には、ルータＡ２４０が配置されており、ＬＡＮ側通信インターフェース２４２及びＷＡＮ側通信インターフェース２４１にはプライベートアドレスが割り当てられている。ルータＡ２４０には、本発明の通信装置１００が接続されている。通信装置１００は通信インターフェース１１１を有する。
【００４９】
ルータＡ２４０のＬＡＮ側通信インターフェース２４２に割当てられているＩＰアドレスと通信装置１００の通信インターフェース１１１に割当てられるＩＰアドレスは、同じアドレス空間２４５に属する（すなわち、ネットワークアドレスが同じである）。同じく、ルータＡ２４０のＷＡＮ側通信インターフェースとルータＢ２５０のＬＡＮ側通信インターフェースに割当てられているＩＰアドレスは同じアドレス空間２５５に属する。
【００５０】
通信装置１００は宅内ネットワーク２１０を調査する本発明の通信装置である。
【００５１】
図１は、通信装置１００の構成を示している。この通信装置１００は、各機能部に処理の指示を行う制御部１０１、ルータを調査するためのパケット（ルータ調査用パケット）を作成して送信指示を行うルータ調査用パケット作成部１０２、ルータ調査用パケット作成部１０２が作成するルータ調査用パケットの送信先を切り替える送信先切り替え部１０７、ルータ調査用パケットに対してルータから送信されたＩＣＭＰパケットを解析し、各ルータのアドレスを把握する受信パケット解析部１０３、送信先切り替え部１０７が選んだ送信先および受信パケット解析部１０３が取得したルータのアドレスを記憶する記憶部１０６、通信部１０５に対してパケットの送信処理を指示し、通信部１０５で受信したパケットを解析し、受信パケットに対応する機能部へ引き渡すパケット送受信部１０４、通信インターフェース機能を内蔵しネットワークへのパケット送受信を可能とする通信部１０５を備えている。図１においては、送信切り替え部１０７は制御部１０１の構成の一部であると示すが、そうではなくてもよい。
【００５２】
図３は、本実施の形態における通信装置１００が実行するネットワーク構成調査用パケットの送受信処理シーケンスを示している。簡単に本シーケンスで行なう処理の概要を説明する。まず、本発明の通信装置１００は宅内ネットワークに存在しないアドレス空間のプライベートアドレス向けに調査パケットを送信する（なお、グローバルアドレス宛に調査パケットを送信する方法については、実施の形態２において説明する）。宅内ルータに到着する調査用パケットの送信先がＬＡＮ側インターフェースのアドレス空間に属しないため、宅内ルータは調査パケットを受信すると、ＷＡＮ側インターフェースを介して直接接続されている上位のルータに中継しようとする。このようにして、宅内ネットワークに存在しないアドレス空間のアドレス向けに調査パケットを送信することで、通信装置１００はインターネットに送信するパケットが通過する宅内ネットワークのルータ情報を取得できる。しかし、予め宅内ネットワークにおいてどのアドレス空間が存在するか分からないため、試行錯誤による方法を行う必要がある。本シーケンスの詳細な処理について次に説明する。
【００５３】
図３で示す具体的な送受信処理は以下のように実行される。
【００５４】
まず、通信装置１００の制御部１０１が、記憶部１０６に記憶されている調査用の変数の初期化を行う（Ｓ３０１）。ここではｍａｘＴＴＬとＥｘｃＬｓｔという変数を用いる。ｍａｘＴＴＬはルータ調査用パケットの有効期限を制限するための変数である。ＥｘｃＬｓｔは調査パケットの宛先除外リストであり、調査を行う時に調査パケットの宛先として用いるべきではないアドレス空間の集合を保管する変数である。通信装置１００は直接接続されている上位のルータＡ２４０の情報を常に所有しているため、調査をその上のルータから開始するように、ｍａｘＴＴＬを２で初期化する。また、通信装置１００が属するアドレス空間２４５を除外アドレスリストＥｘｃＬｓｔに登録する。これにより、調査パケットの宛先にはアドレス空間２４５上のＩＰアドレスが設定されることはない。それゆえ、調査パケットを受信したルータＡ２４０は、調査パケットをＷＡＮ側インターフェース２４１から送出する。
【００５５】
次に、通信装置１００の制御部１０１は、送信先切り替え部１０７に調査パケットの送信先を選ぶように指示する（Ｓ３０２）。送信先切り替え部１０７は、送信先を、制御部１０１が設定したＥｘｃＬｓｔ変数に載っているアドレス空間に属しないアドレスにする。送信先アドレスとして、例えばＩＡＮＡ（Ｉｎｔｅｒｎｅｔ  Ａｓｓｉｇｎｅｄ  Ｎｕｍｂｅｒｓ  Ａｕｔｈｏｒｉｔｙ）が規定しているプライベートのネットワークアドレスのリストを作成し、リストからＥｘｃＬｓｔに載っているネットワークアドレスを外し、リストの冒頭のエントリに属するホストアドレスにすることができるが、別の選択方法を用いてもよい。また、制御部１０１が、ルータ調査用パケット作成部１０２に調査パケットを生成するように指示する（Ｓ３０２）。ルータ調査用パケット作成部１０２は、ルータ調査用パケットの有効期限を制御部１０１が設定したｍａｘＴＴＬ変数の値にし、送信先を送信先切り替え部１０７が選んだ送信先にし、ルータ調査用パケットを作成する。
【００５６】
ルータ調査用パケット作成部１０２は調査用パケットを作成した後、パケット送受信部１０４にパケット送信を依頼する。パケット送受信部１０４は、通信部１０５を通じて、ルータ調査用パケットを送信する。
【００５７】
パケット送受信部１０４が調査用パケットを送信した後、返信されるＩＣＭＰメッセージにより、制御部１０１は調査の次のステップを決定する（Ｓ３０３、Ｓ３０４）。
【００５８】
ステップＳ３０３においては、通信装置１００の制御部１０１はまず、調査用パケットの送信に対してＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージが返信されたかを確認する。ＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージが返信されなかった場合、以下２つの理由がある：
理由１：調査用パケットの送信先アドレスは宅内ネットワークのアドレス空間２４５または２５５に属する（ＩＣＭＰ  ｐｏｒｔ  ｕｎｒｅａｃｈａｂｌｅメッセージが返信された場合を含む）
理由２：ルータが動作していなかったり、ネットワークと接続していなかったりなど異常な状態
理由１であった場合、調査用パケットの送信先アドレスを変更すれば、調査を続けることができるが、理由２であった場合、これ以上調査ができないため、調査を終了する。また、このときユーザにネットワーク構成に異常があることを通知してもよい。
【００５９】
上記の理由を判別するために、通信装置１００は、ステップＳ３０２の説明で記載されている方法を用いて、異なるアドレス空間（サブネット）に属する２つのプライベートアドレス向けにルータ調査用パケットを送信する。これにより、少なくとも１つのルータ調査用パケットの送信先が調査中の宅内ルータのＬＡＮ側アドレス空間と重ならないことにし、正常な状態の場合、必ずＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージが返ってくる。通信装置１００が異なる２つのプライベートアドレスにルータ調査用パケットを連続送信しても、ＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージが返ってこない場合が、理由２であって、２回連続で返ってこないかどうかを判別するためにｆａｉｌというフラグを用いる。調査用パケットの１回目の送信に対してＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージが返信されなかった場合、制御部１０１はｆａｉｌフラグをセットし（Ｓ３０７）、使用した送信先アドレスのアドレス空間（ネットワークアドレス）を推定（通常、送信先のＩＰアドレスの上位２４ビット）し、アドレス空間を除外リストＥｘｃＬｓｔに追加して（Ｓ３０８）、異なるアドレスでもう一度調査用パケットの送信を指示する（Ｓ３０２）が、調査用パケットの２回目の送信に対してもＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージが返信されなかった場合、異常な状態が発生したことが分かり、これ以上調査ができないため、調査を終了する（Ｓ３０６）。
【００６０】
ステップＳ３０３の説明に戻るが、ルータ調査用パケットの送信に対してＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージが返信された場合、通信装置１００はステップＳ３０４を行う。
【００６１】
ステップＳ３０４においては、受信パケット解析部１０３は通信部１０５およびパケット送受信部１０４経由でＩＣＭＰパケットを受信し、送信元アドレスを制御部１０１に渡す。制御部１０１は送信元アドレスはグローバルアドレスであるかを確認する。グローバルアドレスでない場合、取得したアドレスは宅内ネットワークにあるルータのアドレスであるため、記憶部１０６にアドレスを記録し、ｍａｘＴＴＬを１インクリメントして（Ｓ３０５）、もう一段上位のルータを調査する（Ｓ３０２）。
【００６２】
また、ステップＳ３０４においては、制御部１０１はＩＣＭＰパケットのアドレスがグローバルアドレスであれば宅内ネットワークの全てのルータは既に調査済みであることが分かったので、調査を終了し、調査で得られたルータのアドレスを記憶部１０６に記憶させる。今回の調査は２回目以降であった場合、記憶部１０６に記憶された今回と前回の調査結果（取得した宅内ルータアドレス）を比較し、宅内ネットワークにおける構成の変更があったかどうかを確認する（Ｓ３０９、Ｓ３１０）。
【００６３】
図４と図６は、既に説明した通信装置１００の動きに視点をおいた図３のフローチャートの各ステップにおけるネットワーク上でのパケットの動きを説明する。
【００６４】
図４は、ルータ調査用パケットの送信先が宅内ネットワークのアドレス空間に属さない場合の、ルータ調査用パケットと、それに対応してルータから送信されるＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージの関係を示している。通信装置１００はＴＴＬ＝２に設定されたルータ調査用パケットを宅内ネットワークに存在しないアドレス空間のアドレスに向けて送信すると、ルータＢ２５０においてＷＡＮ側通信インターフェースを介して送信しようとした時にＴＴＬ＝０となり、この調査用パケットが廃棄された上、ルータＢ２５０からＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージが通信装置１００に送信される。このＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージの送信元アドレスは、ルータＢ２５０のＬＡＮ側アドレスとなる。よって、このＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージの送信元アドレスを確認することで、通信装置１００はルータＢ２５０のＬＡＮ側アドレスを知ることが可能となる。次に、通信装置１００はルータＢ２５０のアドレスがグローバルアドレスであるかを比較し（図３のＳ３０４）、グローバルアドレスでないためルータアドレスを記録し（図３のＳ３０５）、ルータＢ２５０より１段上位のルータを調査する。このため、通信装置１００は、宛先を今まで見つけた宅内ネットワークのアドレス空間に属さないアドレス（この場合、送信したＴＴＬ＝２のルータ調査用パケットの宛先をもう一度使用してもよい）にし、ＴＴＬ＝３に設定したルータ調査用パケットを送信する。送信した調査用パケットに対応するＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージから、ルータＣ２６０のアドレスを取得することができ、グローバルアドレスを持つことが分かり、図３のＳ３０４における比較によって宅内ネットワーク調査を終了する。図４から分かるように、ルータ調査用パケットのＴＴＬを１つずつ増加させることで、インターネット２２０に無駄なルータ調査用パケットを送出せず、宅内ネットワーク２１０の構成が取得できる。よって、インターネット２２０に存在し得る悪意の第３者によりルータ調査用パケットのなりすましの可能性を軽減し、ルータ調査用パケットの情報を攻撃のために使われる可能性を低くすることができる。
【００６５】
図４ではルータ調査用パケットの送信先が宅内ネットワークのアドレス空間に属さない場合について説明したが、図６において、ルータ調査用パケットの送信先がプライベートアドレス空間と重なった場合に、重ならないアドレスを宛先としてやりなおすことにより、宅内ネットワーク調査が成功するまでのパケットの流れ、および通信装置１００の内部動作を説明する。ここでは、通信装置１００はＴＴＬ＝２に設定された最初のルータ調査用パケットを１９２．１６８．２．５０というアドレスに向けて送信する。しかし、このアドレスはルータＢ２５０のＬＡＮ側通信インターフェースのアドレス空間に属するため、ルータＢ２５０はＷＡＮ側通信インターフェースを介して中継しようとしない。したがって、このルータ調査用パケットの送信に対するＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージの返信がない（前述の「理由１」に対応）。そのため、以前説明した図３のステップＳ３０３において、通信装置１００は利用した送信先のアドレス空間を除外リストに追加（Ｓ３０８）し、異なるアドレス向けのルータ調査用パケットを送信する（Ｓ３０２）。除外リストのアドレス空間に属さない新しく選んだアドレス（１９２．１６８．４５．１）は宅内ネットワークに存在しないため、ルータＢ２５０からＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージを受け取ることになり調査を継続することができる。次に、通信装置１００はＴＴＬを３に増加させた調査用パケットを送り、返信されるＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージからルータＣ２６０のアドレスを取得する。
【００６６】
図５はルータＢ２５０のアドレス変換テーブルエントリを表す。ＴＴＬ＝２に設定した調査用パケットはルータＢ２５０のＷＡＮ側インターフェースから中継されないため、ルータＢ２５０にアドレス変換テーブルが生成されない。図５で示すエントリは、通信装置１００が図４におけるＴＴＬ＝３に設定したルータ調査用パケットを送信した後、ルータＢ２５０はルータＣ２６０にパケットを中継した時に生成したものである。送信したルータ調査用パケットの送信元アドレスは、ルータＡ２４０で変換されたため、１９２．１６８．２．１００で、送信元ポート番号は４５６７８で、送信先アドレスは１９２．１６８．４５．１で、送信先ポートは３３４３７である。また、ルータＢ２５０のＷＡＮ側通信インターフェースのアドレスは１８０．１３０．２２．１００で、ルータＢ２５０が割当てたポート番号は３５６７５である。このアドレス変換テーブルエントリが存在する限り、ルータＢ２５０はＷＡＮ側通信インターフェースから、送信元としてアドレス変換テーブルエントリの送信先アドレス：ポート（１９２．１６８．４５．１：３３４３７）、送信先としてルータＢ２５０のＷＡＮ側インターフェースアドレス：割当てたポート（１８０．１３０．２２．１００：３５６７５）、を持つパケットの通過を許容する（同様に、ルータ調査用パケットがルータＡ２４０からルータＢ２５０に中継された時に、ルータＡ２４０においてもアドレス変換テーブルのエントリが生成されたため、ルータＡ２４０もパケットの通過を許容する）。悪意の第３者は送信元を偽ることができるが、ＩＳＰなどのファイアウォールにより送信元アドレスがプライベートアドレスのパケットは不正なパケットとしてフィルタリングされる場合が多い。このため、ルータＢ２５０のアドレス変換テーブルエントリにＷＡＮ側からプライベートアドレスを送信元とするパケットを許容するエントリが含まれていても、その前にファイアウォールのパケットフィルタリング機能によって第３者からの攻撃パケットは廃棄される。よって、このテーブルエントリを悪用しＤｏＳ攻撃を犯すことが困難となる。
【００６７】
このようにして、ＤｏＳ攻撃の可能性を低くした宅内ネットワークのルータのアドレスの取得方法が実現できる。また、シーケンスを定期的に行うことにより、宅内ネットワーク構成の変更を検出することができる（なお、ある調査においてルータ調査用パケットの送信先のある特定のアドレスで無事終了した場合、宅内構成が変わったかどうかの判別が分かりやすいため、次回の調査においても同じ送信先アドレスを使ってもよい）。通信装置１００は宅内ネットワーク構成の変更を検出すると、ユーザに宅内ルータへの設定を促したり、または自動的にルータの設定を行ったりすることが可能となり、通信に必要な宅内ルータにおけるＮＡＴマッピングが生成できるようになる。
【００６８】
なお、ここまでの説明では、本実施の形態は宅内ネットワークにもっとも近いグローバルアドレスを持つルータＣ２６０がルータ調査用パケットに対して、必要に応じてＩＣＭＰメッセージの返信を行うことを仮定していたが、本発明はそうでない場合にも適用できる。そのため、例えばルータ調査用パケットに対するＩＣＭＰパケットを返信するルータを探すため、ルータ調査用パケットのＴＴＬを増加させてもよい。
【００６９】
なお、本実施の形態ではネットワークのプロトコルをＩＰネットワークとし、ＩＰヘッダ上のＴＴＬを変化させたルータ調査用パケットを送信し、ＩＣＭＰプロトコルによる応答パケットを用いて宅内のネットワーク構成を調査する場合について説明したが、ネットワーク上のルータのアドレスを知るための調査用パケットを送出でき、その応答パケットによってネットワーク構成を知ることが出来るようなネットワークであれば本発明が適用可能である。従って、それらを本発明から除外するものではない。
【００７０】
（実施の形態２）
以下本発明の第２実施の形態について、図面を参照しながら説明する。
【００７１】
図７は、本実施の形態における第１のネットワークの構成を示している。図７（Ａ）は、第１のネットワークであるところの宅内ネットワークの一構成例を示しており、図７（Ｂ）は、図７（Ａ）の宅内ネットワークに新しいルータが導入されたときの構成を示す。
【００７２】
図７（Ａ）において、宅内ネットワーク２１０内のルータＴ７２０が第２のネットワークであるところのインターネット２２０との境界に配置されており、このルータＴ７２０が、グローバルアドレスを用いて通信を行うインターネット２２０内のルータＧ７５０との間で接続を行うことにより、宅内ネットワーク２１０とインターネット２２０との接続が確立される。
【００７３】
宅内ネットワーク２１０内には、ルータＵ７１０が配置されている。ルータＵ７１０には、通信装置１００が接続されている。ルータＵ７１０とルータＴ７２０はＮＡＴ機能を搭載している。
【００７４】
また、グローバルアドレスを用いてインターネット２２０に接続しているサーバＳ７７０がある。
【００７５】
図７（Ｂ）は、図７（Ａ）に示すネットワーク構成において、ルータＴ７２０の上位に新しいルータＸ７３０が追加されている。ルータＸ７３０はＮＡＴ機能を搭載している。
【００７６】
本発明の通信装置１００の構成は、第１の実施形態と同様であり、図１に示す。
【００７７】
図８は、通信装置１００が実行するネットワーク構成調査のシーケンスを示している。
【００７８】
このシーケンスで行っている処理の特長は、ルータ調査用パケットの宛先として、あまり知られていないグローバルアドレスを利用することである。そのために、まず図８（Ａ）で示すように、知られていないルータのグローバルアドレスを探し、次に図８（Ｂ）で示すように、見つけたアドレスに向けてルータ調査用パケットを送信して宅内ネットワークを調査する。これにより、知られているサーバに向けてルータ調査用パケットを送信する場合と比べてＤｏＳ攻撃の可能性の軽減という効果が得られる。
【００７９】
本実施の形態において、通信装置１００はまず図８（Ａ）で示すシーケンスを行う。ステップＳ８０１においては、通信装置１００はよく知られているグローバルアドレスを持つサーバＳ７７０に向けて、ルータ調査用パケットを送信して、インターネット２２０にあるグローバルアドレスを持つ宅内ネットワークに最も近いルータＧ７５０を探す。
【００８０】
図８（Ａ）の示すシーケンスでルータＧ７５０を見つけたら、通信装置１００は図８（Ｂ）で示すシーケンスを定期的に実行して、宅内ネットワーク２１０を調査し、宅内ネットワーク２１０の構成の変更を検出する。ステップＳ８０２においては、通信装置１００はステップＳ８０１で見つかったルータＧ７５０のアドレス向けに、ルータ調査用パケットを送信して、宅内ネットワーク２１０の構成を調査する。ステップＳ８０２で行った調査が失敗していなければ、および行った宅内ネットワーク調査が２回目以降の調査であれば、今回と前回の宅内ネットワーク調査を比べ、構成変更があったかどうかを検出する（Ｓ８０５）。
【００８１】
図８におけるシーケンスの詳細は図９と図１０に示す。
【００８２】
まず、図９は宅内ネットワーク２１０に最も近いインターネットにあるグローバルアドレスを持つルータＧ７５０を探すためのシーケンス（図８のステップＳ８０１）の詳細を示す。図９で示すシーケンスにおいては、まず制御部１０１はルータ調査用パケットの有効期限の設定のために使われる変数、ｍａｘＴＴＬを、最初のルータ調査用パケットで通信装置１００の上位２段目のルータから調査を開始するために、２に初期化する（Ｓ９０１）。次いで、制御部１０１は、送信切り替え部１０７にルータ調査用パケットの送信先をサーバＳ７７０にするように指示し、ルータ調査用パケット作成部１０２に有効期限としてｍａｘＴＴＬに設定したルータ調査用パケットを作成するように指示する（Ｓ９０２）。
【００８３】
ルータ調査用パケット作成部１０２は調査用パケットを作成した後、パケット送受信部１０４にパケット送信を依頼する。パケット送受信部１０４は、通信部１０５を通じて、ルータ調査用パケットを送信する。
【００８４】
そして、制御部１０１は送信されたルータ調査用パケットに対応するＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄまたはＩＣＭＰ  ｐｏｒｔ  ｕｎｒｅａｃｈａｂｌｅメッセージが返ってきたかどうかを確認し（Ｓ９０３）、返ってこなかった場合調査失敗というエラーを返し、調査を終了する（Ｓ９０６）。また、ＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄまたはＩＣＭＰ  ｐｏｒｔ  ｕｎｒｅａｃｈａｂｌｅメッセージが返ってきた場合、受信パケット解析部１０３は返ってきたＩＣＭＰパケットの送信元アドレスを制御部１０１に渡し、制御部１０１はグローバルアドレスであるかをチェックする（Ｓ９０４）。アドレスはグローバルアドレスでなければ、ｍａｘＴＴＬを増加させ（Ｓ９０５）、もう一回ルータ調査用パケット送信のステップ（Ｓ９０２）に戻る。アドレスはグローバルアドレスであれば、このアドレスは宅内ネットワークに最も近いグローバルアドレスを持つルータ７５０のアドレスとなり、このアドレスを記録し、シーケンスを終了する。なお、グローバルアドレスになった時点でシーケンスを終了するのでなく、サーバＳまでに経由するその他のルータのアドレスも調査し、記憶しておいてもよい。
【００８５】
次に、図１０は宅内ネットワークに最も近いグローバルアドレスを持つルータアドレスを利用した宅内ネットワークの調査のシーケンス（図８のステップＳ８０２）の詳細を示す。図１０で示すシーケンスにおいては、まず、制御部１０１はルータ調査用パケットの有効期限の設定のために使われる変数、ｍａｘＴＴＬを、最初のルータ調査用パケットで通信装置１００の上位２段目のルータから調査を開始するために、２に初期化する（Ｓ１００１）。次いで、制御部１０１はステップＳ８０１で調べた宅内ネットワークに最も近いグローバルアドレスを持つルータＧ７５０に向けて、有効期限としてｍａｘＴＴＬに設定したルータ調査用パケットを送信する（Ｓ１００２）ように指示する。そして、送信したルータ調査用パケットに対応するＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄまたはＩＣＭＰ  ｐｏｒｔ  ｕｎｒｅａｃｈａｂｌｅメッセージが返ってきたかどうかを確認し（Ｓ１００３）、返ってこなかった場合調査失敗というエラーを返し、調査を終了する（Ｓ１００６）。また、返ってきた場合、制御部１０１は受信パケット解析１０３から返ってきたＩＣＭＰパケットの送信元アドレスを取得し、グローバルであるかをチェックする（Ｓ１００４）。アドレスはグローバルアドレスでなければ、宅内ルータのアドレスであるため記録し、ｍａｘＴＴＬを増加し（Ｓ１００５）、もう一回ルータ調査用パケット送信のステップ（Ｓ１００２）に戻る。アドレスはグローバルアドレスであれば、宅内ネットワークの調査を終了する。
【００８６】
図１１は、既に説明した通信装置の動きに視点をおいた図８、図９、と図１０のフローチャートの各ステップにおけるネットワーク上でのパケットの動きを説明する。図１１においては、通信装置１００が送信するルータ調査用パケットと、それに対応してルータから送信されるＩＣＭＰメッセージの関係を示している。図１１（Ａ）は図９でのシーケンス（図８のステップＳ８０１）の送信パケットを示し、図１１（Ｂ）は、新しいルータＸ７３０が導入された場合における、図１０でのシーケンス（図８のステップＳ８０２）の送信パケットの動きを示す。
【００８７】
まず、図１１（Ａ）において、図９で示すシーケンスの通り、アドレスがよく知られているサーバＳ７７０にむけてルータ調査用パケットを送信し、グローバルアドレスを持つ最も近いルータＧ７５０を探す。そのため、グローバルアドレスを持つルータが見つかるまで、通信装置は、ＴＴＬを増加しながらルータ調査用パケットを送信する。まず、ＴＴＬ＝２に設定されたルータ調査用パケットをサーバＳ７７０（ＩＰアドレス２０２．２２４．１２．１２）に向けて送信する。これで、ルータＴ７２０からＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージパケットが通信装置１００に送信される。このＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージの送信元アドレスを確認し、通信装置１００はルータＴ７２０のＬＡＮ側アドレスを知ることが可能となる。ルータＴ７２０のアドレス（１９２．１６８．１．１）はプライベートアドレスであるため、通信装置は調査を継続する。今度、ＴＴＬ＝３に設定されたルータ調査用パケットをサーバＳ７７０に向けて送信する。これで、ルータＧ７５０からＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージパケットが通信装置１００に送信される。ルータＧ７５０のアドレス（１８０．１３０．２２．５０）はグローバルアドレスであるため、通信装置１００は図８のＳ８０１に対応して、シーケンスを終了する。
【００８８】
次に、図１１（Ｂ）において、図１０で示すシーケンスの通り、図１１（Ａ）における調査シーケンスで見つかったルータＧ７５０のアドレスにむけてルータ調査用パケット送信と、それに対応してルータから送信されるＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄパケットの関係を示す。まず、ＴＴＬ＝２に設定されたルータ調査用パケットをルータＧ７５０（ＩＰアドレス１８０．１３０．２２．５０）に向けて送信する。これで、ルータＴ７２０からＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージが通信装置１００に送信される。このＩＣＭＰ  ｔｉｍｅ  ｅｘｃｅｅｄｅｄメッセージの送信元アドレスを確認し、通信装置１００はルータＴ７２０のＬＡＮ側アドレスを知ることが可能となる。ルータＴ７２０のアドレス（１９２．１６８．１．１）はプライベートアドレスであるため、通信装置１００は調査を続ける。同様に、ＴＴＬ＝３、ＴＴＬ＝４に設定したルータ調査用パケットを送信し、ルータＸ７３０、ルータＧ７５０のアドレス情報を得る。ルータＧ７５０のアドレス（１８０．１３０．２２．５０）はグローバルアドレスであるため、通信装置１００は調査を終了する。このようにして、通信装置１００は宅内ネットワークを調査し、構成の変更（ルータＸ７３０の導入）が検出できる。
【００８９】
図１１から分かるように、ルータ調査用パケットのＴＴＬを１つずつ増加させることで、インターネット２２０に無駄なルータ調査用パケットを送出せず、宅内ネットワーク２１０の構成が取得できる。よって、インターネット２２０に存在し得る悪意の第３者によりルータ調査用パケットのなりすましの可能性を軽減し、ルータ調査用パケットの情報を攻撃のために使われる可能性を低くすることができる。
【００９０】
図１２（Ａ）と図１２（Ｂ）はルータＴ７２０とルータＸ７３０におけるルータ調査用パケットの中継で生成されたそれぞれのアドレス変換テーブルエントリを示す。図１２（Ａ）は、図１１（Ａ）におけるＴＴＬ＝３に設定したルータ調査用パケットを送信した後、ルータＴ７２０はルータＧ７５０にパケットを中継した時に生成したものである（ＴＴＬ＝２に設定したルータ調査用パケットは、ルータＴ７２０のＷＡＮ側インターフェースから中継されないため、ルータＴ７２０のアドレス変換テーブルにエントリを生成しない）。このエントリが存在する限り、ルータＴ７２０はＷＡＮ側通信インターフェースから、送信元としてテーブルエントリの送信先アドレス：ポート（２０２．２２４．１２．１２：３３４３７）、送信先としてルータＴ７２０のＷＡＮ側インターフェースアドレス：割当てたポート（１８０．１３０．２２．１００：３５６９４）、を持つパケットの通過を許容する（同様に、ルータ調査用パケットがルータＵ７１０からルータＴ７２０に中継された時に、ルータＵ７１０においてもアドレス変換テーブルのエントリが生成されたため、ルータＵ７１０もパケットの通過を許容する）。アドレス２０２．２２４．１２．１２はよく知られているアドレスであるため、悪意の第３者はこのエントリを利用して、ＤｏＳ攻撃を犯す可能性が高い。しかし、通信装置１００がアドレス２０２．２２４．１２．１２向けにルータ調査用パケットを送信することが１回だけで、このアドレス変換テーブルエントリは生成された後、ある特定の有効期限後（通常３０秒〜数分）に削除される。
【００９１】
図１２（Ｂ）は、図１１（Ｂ）におけるＴＴＬ＝４に設定したルータ調査用パケットを送信した後、ルータＸ７３０はルータＧ７５０にパケットを中継した時に生成したものである。このエントリが存在する限り、ルータ７３０はＷＡＮ側通信インターフェースから、送信元としてテーブルエントリの送信先アドレス：ポート（１８０．１３０．２２．５０：３３４３８）、送信先としてルータ７３０のＷＡＮ側インターフェースアドレス：割当てたポート（１８０．１３０．２２．１１１：４５３２３）、を持つパケットの通過を許容する。通信装置１００が定期的にルータ７５０（１８０．１３０．２２．５０）向けにルータ調査用パケットを送信するので、これで生成されたＮＡＴエントリをＤｏＳ攻撃に使われる危険性があるが、サーバＳ７７０のアドレスと比べると、ルータＧ７５０のアドレスはあまり知られていないので、攻撃の可能性が減少する。
【００９２】
このようにして、本実施の形態において、知られていないグローバルアドレスに向けてルータ調査用パケットを送信し、返信されたＩＣＭＰメッセージを受信し、分析することで、通信装置１００はＤｏＳ攻撃の可能性を低くした宅内ネットワークのルータのアドレスを取得し、宅内ネットワークの構成の変更を検出することができる。通信装置１００は宅内ルータのアドレスを取得すれば、ユーザに宅内ルータへの設定を促したり、または自動的にルータの設定を行ったりすることが可能となり、通信に必要な宅内ルータにおけるＮＡＴマッピングが生成できるようになる。
【００９３】
本実施の形態は、ネットワークにもっとも近いグローバルアドレスを持つルータむけにルータ調査用パケットを送ることにしているが、このルータアドレスでなくても、別の知られていないグローバルアドレスを持つルータ向けにルータ調査用パケットを送り、宅内ネットワーク調査を行ってもよい。また、第３者に対して使用しているアドレスを予測しにくくするように、調査ごとに知られていないグローバルアドレスを持つ異なるルータ向けにルータ調査用パケットを送り調査を行ってもよい。ただし、通信装置１００から近いルータにしておくほど、ルータ調査用パケットがインターネットに流れないため、第３者が攻撃のために必要なアドレス情報、ポート情報などを入手しにくくなり、安全である。
【００９４】
なお、ルータＧを宛先とした調査に失敗した場合、その原因がルータＧの置き換え（もしくはＩＰアドレスの変化）などであった場合には、再度図８のＳ８０１を実施することにより、調査を成功させることができる場合があるため、そのような処理を行なっても良い。
【００９５】
前記実施の形態１および２の他に、本発明を用いて様々な実施の形態が可能である。例えば、実施の形態２の場合、グローバルアドレスを持つサーバ７７０を一台だけ利用しているが、それぞれ異なるグローバルアドレスを持つ複数のサーバを用意してもよい。この場合、通信装置１００がルータ調査用パケットを送信する時、宛先をその中からランダムに選ぶため、実施形態２と比べて、さらにＤｏＳ攻撃の可能性を低くすることができる。
【産業上の利用可能性】
【００９６】
本発明に係る通信装置は、安全に宅内ネットワークの構成調査を行うことができるので、ｐ２ｐ通信のコネクション確立において有用である。また、通信における問題の原因究明などの用途にも応用できる。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施の形態１と２における通信装置の構成を示すブロック図
【図２】本発明の実施の形態１における通信装置が適用されるネットワークシステムの構成を示すブロック図
【図３】本発明の実施の形態１における通信装置の動作を示すフローチャート
【図４】本発明の実施の形態１における調査シーケンスのパケットの流れを示す図
【図５】本発明の実施の形態１における調査シーケンスの実施で生成されたルータ２５０のアドレス変換テーブルエントリを示す図
【図６】本発明の実施の形態１における調査シーケンスのパケットの流れを示す図
【図７】本発明の実施の形態２における通信装置が適用されるネットワークシステムの構成を示すブロック図
【図８】本発明の実施の形態２における通信装置の動作を示すフローチャート
【図９】本発明の実施の形態２における通信装置の動作を示すフローチャート
【図１０】本発明の実施の形態２における通信装置の動作を示すフローチャート
【図１１】本発明の実施の形態２における調査シーケンスのパケットの流れを示す図
【図１２】本発明の実施の形態２における調査シーケンスの実施で生成されたルータ２５０のアドレス変換テーブルエントリを示す図
【図１３】ＮＡＴ機能搭載ルータのメカニズムを示す図
【符号の説明】
【００９８】
１００    通信装置
１０１    制御部
１０２    ルータ調査用パケット作成部
１０３    受信パケット解析部
１０４    パケット送受信部
１０５    通信部
１０６    記憶部
１０７    送信先切り替え部
２１０    宅内ネットワーク
２２０    インターネット
２４０    ルータＡ
２５０    ルータＢ
２６０    ルータＣ
７１０    ルータＵ
７２０    ルータＴ
７５０    ルータＧ
７７０    サーバＳ
【図１】
2006345347.tif 000003
【図２】
2006345347.tif 000004
【図３】
2006345347.tif 000005
【図４】
2006345347.tif 000006
【図５】
2006345347.tif 000007
【図６】
2006345347.tif 000008
【図７】
2006345347.tif 000009
【図８】
2006345347.tif 000010
【図９】
2006345347.tif 000011
【図１０】
2006345347.tif 000012
【図１１】
2006345347.tif 000013
【図１２】
2006345347.tif 000014
【図１３】
2006345347.tif 000015