(57)【特許請求の範囲】
【請求項１】
情報処理装置間において、送信される毎に増加する識別情報を有するパケットの通信を監視する監視装置において、
前記情報処理装置から送信された第１パケットの識別情報と前記第１パケットの送信元アドレスと前記第１パケットの宛先アドレスとを関連付けて記憶する記憶部と、
前記情報処理装置から新たに送信された第２パケットを取り込む入力部と、
前記第１パケットの前記送信元アドレスおよび前記宛先アドレスと前記第２パケットの送信元アドレスおよび宛先アドレスがそれぞれ一致する場合、前記第１パケットの前記識別情報と前記第２パケットの識別情報を比較して不連続になっている場合に、前記情報処理装置に割り当てられているＩＰアドレスが他の前記情報処理装置に割り当てられていると判別する処理部と、
を含むことを特徴とする監視装置。
【請求項２】
請求項１に記載の監視装置において、
前記第１パケットの前記識別情報と第２パケットの前記識別情報とを比較して不連続になっている場合に、同一サブネット内の複数の情報処理装置に同一アドレスが割り当てられていると判別することを特徴とする監視装置。
【請求項３】
請求項１に記載の監視装置において、
前記記憶部は、さらに第１パケットの宛先アドレスを前記第１パケットの送信元アドレスを関連づけて記憶し、
前記処理部は、前記第１パケットの前記送信元アドレスと前記宛先アドレスと、前記第２パケットの前記送信元アドレスと宛先アドレスが一致する場合、前記識別情報の比較および判定を行うことを特徴とする監視装置。
【請求項４】
請求項１に記載の監視装置において、
前記処理部は、未知のコネクションであることを示すリセットフラグを前記第２パケットが含む場合に、前記第１パケットの前記識別情報と前記第２パケットの前記識別情報を比較することを特徴とする監視装置。
【請求項５】
請求項１に記載の監視装置において、
前記処理部は、前記情報処理装置のＯＳが通信を開始する毎に前記第２パケットの識別情報をリセットするＯＳであるか否かを判別することを特徴とする監視装置。
【請求項６】
請求項１に記載の監視装置において、
前記記憶部は、前記情報処理装置が前記第１パケットを送信した時刻を示す第１パケット送信時刻をさらに記憶し、
前記処理部は、第２パケットの送信時刻と前記第１パケット送信時刻を比較し、経過時間が所定時間以下の場合に、前記第１パケットの前記識別情報と前記第２パケットの前記識別情報を比較することを特徴とする監視装置。
【請求項７】
請求項１に記載の監視装置において、さらに前記処理部における判定結果を、前記情報処理装置を管理するネットワーク管理装置へ通知する出力部を有することを特徴とする監視装置。
【請求項８】
情報処理装置間において、送信される毎に増加する識別情報を有するパケットの通信を監視する方法において、
前記情報処理装置とから送信された第１パケットを入力部により取り込み、
前記第１パケットの送信元アドレスおよび宛先アドレスと前記入力部により第１パケットを取り込む以前に予め記憶部に記憶した第２パケットの送信元アドレスおよび宛先アドレスがそれぞれ一致する場合、前記第１パケットの識別情報と前記第２パケットの識別情報とを比較して不連続になっているか判別し、
不連続になっていると判別した場合に、前記情報処理装置に割り当てられているＩＰアドレスが他の情報処理装置に割り当てられていると判別する
ことを特徴とする監視方法。

【発明の詳細な説明】
【技術分野】
【０００１】
本実施例における一側面において開示している技術は、ネットワーク内におけるＩＰアドレス重複を検出する技術に関する。
【背景技術】
【０００２】
同一サブネット内でＩＰアドレスが重複することが起因で障害が発生することがある。つまり同一サブネット内において、異なるホストコンピュータに同一のＩＰアドレスを割り当ててしまうと、障害が発生する可能性があり問題であった。
【０００３】
同一サブネット内において、同一のＩＰアドレスが異なるホストに割り当てられてしまうと、具体的には以下のような場合に問題が生じる。サブネット外部の装置が、重複したＩＰアドレスを送信先としてパケットが送信してきた場合、サブネットのルータはＡＲＰテーブルを参照して、そのパケットを転送する。しかしながらＡＲＰテーブルに記載されているＩＰアドレスとＭＡＣアドレスの対は１つしかない。そのためＩＰアドレスが異なるホストに重複して割り当てられている場合でも、ＡＲＰテーブルに記載されているＭＡＣアドレスを有するホストコンピュータへしかパケットは転送されず、他のホストコンピュータへはパケットが転送されないこととなる。
【０００４】
ルータ内のＡＲＰテーブルは、最後にルータにパケットが送信されてきたときに更新されるなど、通信状況に応じて刻々と更新される。そのためＩＰアドレスが異なるホストコンピュータに重複して割り当てられていると、パケットが間違ったホストコンピュータにしか到着せず、結果的に通信が切断されたり不通になったりするといったことが起こってしまう。
【０００５】
したがって同一サブネット内におけるＩＰアドレスの重複を検出するという技術は、ネットワークシステムの運用保守を行う上で重要な技術である。このようなＩＰアドレスの重複を検出する代表的な方法は、以下のようなものである。サブネット内のあるＩＰアドレスを宛先としてＡＲＰ要求パケットをブロードキャストで送信し、そのＡＲＰ要求パケットへの応答を調べる方法である。そのＩＰアドレスが重複している場合には、複数のホストコンピュータからＡＲＰ応答が返ってくるため、ＩＰアドレスの重複を発見することができる。  
【０００６】
しかし上記方法では、ＩＰアドレス重複を発見したいサブネットにおける全てのＩＰアドレスに対してＡＲＰ要求パケットを送信しなければならない。したがって、上記方法では簡単にスケールせずコストが高いという問題があった。
【０００７】
上記ＩＰアドレス重複を検出する技術を開示するものとして、以下の文献がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０９−３２１７５７号公報
【特許文献２】特開平０７−３８５９７号公報
【特許文献３】特開平０３−２１２０３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本実施例における監視装置は、パケットをブロードキャスト送信することなく、サブネット内のＩＰアドレス重複を検出することを目的とする。
【課題を解決するための手段】
【００１０】
本実施例に係る監視装置は、情報処理装置間において、送信される毎に増加する識別情報を有するパケットの通信を監視する監視装置において、前記情報処理装置から送信された第１パケットの識別情報と前記第１パケットの送信元アドレスを関連付けて記憶する記憶部と、前記情報処理装置から新たに送信された第２パケットを取り込む入力部と、前記第１パケットの前記送信元アドレスと前記第２パケットの送信元アドレスが一致する場合、前記第１パケットの前記識別情報と前記第２パケットの識別情報を比較して不連続になっている場合に、前記情報処理装置に割り当てられているＩＰアドレスが他の前記情報処理装置に割り当てられていると判別する処理部とを含むことを特徴とする。
【発明の効果】
【００１１】
本実施例における監視装置によれば、パケットのＩＤ値を監視することによって、サブネット内におけるＩＰアドレスの重複を検出することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施例に係るモニタリングシーケンス１００の概念図である。
【図２】本実施例に係るパケットモニタ１０３のブロック図である。
【図３】本実施例に係るモニタリングシーケンス１００における正常なパケットストリームを示す図である。
【図４】本実施例に係るモニタリングシーケンス１００におけるＩＰアドレス重複でのパケットストリームを示す図である。
【図５】本実施例に係る通信状態記憶部２０６内のテーブル５００を示す図である。
【図６】本実施例に係るモニタ結果記憶部２０７内のテーブル６００を示す図である。
【図７】本実施例に係るＩＰアドレス重複を検出するフローチャートである。
【図８】本実施例に係るＯＳ種別を利用してＩＰアドレス重複を検出するフローチャートである。
【図９】本実施例に係る通信状態記憶部２０６内のＯＳ種別テーブル９００を示す図である。
【図１０】本実施例に係るモニタリングシーケンス１０００におけるパケットストリームを示す図である。
【図１１】本実施例に係るＩＰアドレス重複を検出するフローチャートである。
【図１２】本実施例に係る通信状態記憶部２０６内のテーブル１２００を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について説明する。
【実施例】
【００１４】
本実施例における監視装置は、ネットワークを流れるパケット間のＩＤ値変化を元に、同一サブネット内に同一ＩＰアドレスを割り当てられた複数の情報処理装置が存在すること（ＩＰアドレス重複）を検出する。つまり本実施例における監視装置は、情報処理装置間における通信障害の原因がＩＰアドレス重複であることを特定する。以下、具体的な例を説明する。
【００１５】
［１．  モニタリングシーケンス１００の概要］
図１は本実施例に係るモニタリングシーケンス１００の概念図である。図１を用いて、モニタリングシーケンス１００でのパケットモニタ１０３の動作原理について説明する。パケットモニタ１０３はサーバ１０１とルータ１０４配下のホストコンピュータ１０２、１０５との通信を監視している。ホストコンピュータ１０２とホストコンピュータ１０５に同一のＩＰアドレスが割り当てられている。つまりホストコンピュータ１０２とホストコンピュータ１０５との間でＩＰアドレスが重複している。
【００１６】
図１のモニタリングシーケンス１００では、まずホストコンピュータ１０２がサーバ１０１へルータ１０４を介して要求パケット１０６、１０７を送信する。要求パケット１０６のＩＤ値は例えば「１００」である。時系列でみた場合その後ホストコンピュータ１０７が送信する要求パケットのＩＤ値は「１０１」である。このＩＤ値はＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダのＩｄｅｎｔｉｆｉｃａｔｉｏｎフィールドの値であり、１６ビット値である。ＩＤ値は、いずれかのホストコンピュータ１０２、１０５がパケットを送信するごとにインクリメントされる値である。したがって同一ホストコンピュータ１０２（またはホストコンピュータ１０５）が送信するパケットのＩＤ値は単調増加する性質を持つ。そしてサーバ１０１は要求パケット１０６、１０７に対する応答パケット１０８を返信する。図１のモニタリングシーケンス１００では、サーバ１０１は応答パケット１０８をホストコンピュータ１０２と異なるホストコンピュータ１０５へ送信する。本来であれば、応答パケット１０８はホストコンピュータ１０２へ送信されるべきデータである。ホストコンピュータ１０５が応答データ１０８を受信すると、ホストコンピュータ１０５がＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）コネクションとして確立していない未知のコネクションのパケットであるため、ホストコンピュータ１０５はＲＳＴ（Ｒｅｓｅｔ）フラグがＯＮのＴＣＰパケットをサーバ１０１へ送信する。これはホストコンピュータ１０５が、応答パケット１０８を受信した同一ＴＣＰコネクション上でさらにサーバ１０１からパケットを受信するのを抑制するためである。この場合、ホストコンピュータ１０５が送信するＲＳＴパケット１０９のＩＤ値は、ホストコンピュータ１０２が送信する要求パケット１０６、１０７のＩＤ値と大きく異なる。なおＲＳＴパケット１０９はＲＳＴフラグがＯＮになっているパケットのことである。本実施例ではＲＳＴパケット１０９のＩＤ値は「５９３８」である。要求パケット１０６のＩＤ値「１００」、要求パケット１０７のＩＤ値「１０１」と比較してＲＳＴパケット１０９のＩＤ値「５９３８」は大きく異なる。同一サブネット内において同一ＩＰアドレスが複数のホストコンピュータに割り当てられていなければ、ＲＳＴパケット１０９のＩＤ値は「１０２」と期待できる。
【００１７】
つまり同一サブネットにおいてＩＰアドレスが重複してしまっている場合、同一ＴＣＰコネクションで流れるパケットのＩＤ値が単調増加とならず不連続となる。また同一ＴＣＰコネクションを流れるパケットのＩＤ値が減少した場合にも、パケットモニタ１０３は、同一サブネットにおいてＩＰアドレスが重複していると判別する。本実施例におけるパケットモニタ１０３はこのＩＤ値の不連続、減少を検出して、同一サブネットにおけるＩＰアドレス重複を検出する。
【００１８】
本実施例におけるパケットモニタ１０３を１台設置することによって、複数のサブネットにおける同一ＩＰアドレスを割り当てられた複数の情報処理装置を検出することができる。従いサブネット毎にＩＰアドレス重複を検出する装置を設置する必要がない。またＩＰアドレス重複を検出するために、監視装置が定期的にパケットをサブネット内のホストコンピュータに送信する必要がないため、低コストでＩＰアドレス重複、ＩＰアドレス重複に起因する通信障害を検出することができる。
【００１９】
また通信障害には様々な原因がある。正確に原因を特定せずに、誤った修正をしてしまうと、障害復旧するのに時間的にも人的にも大きなコストがかかってしまう。したがって運用管理面における効果としても、通信障害がＩＰアドレス重複に起因することを特定することは重要である。
【００２０】
［２．パケットモニタ１０３］
図２は本実施例に係るパケットモニタ１０３のブロック図である。パケットモニタ１０３は処理部２０１、記憶部２０２、入力部２０３、出力部２０９を含む構成となっている。
【００２１】
処理部２０１はパケット情報取得部２０４、ＩＰアドレス重複検出部２０５、モニタ結果出力部２０８を含む構成となっている。これら図２に示すパケット情報取得部２０４、ＩＰアドレス重複検出部２０５、モニタ結果出力部２０８は、機能ブロックであり、処理部２０１が機能的に実現するものである。もちろん情報取得部２０４、ＩＰアドレス重複検出部２０５、モニタ結果出力部２０８が物理的に異なる構成であってもよい。
【００２２】
記憶部２０２は通信状態記憶部２０６、モニタ結果記憶部２０７を含む構成となっている。通信状態記憶部２０６、モニタ結果記憶部２０７は記憶部２０２における記憶領域を区別する機能ブロックである。もちろん記憶部２０２においても通信状態記憶部２０６、モニタ結果記憶部２０７が物理的に異なる構成であってもよい。
【００２３】
パケットモニタ１０３は入力部２０３を用いて、ネットワークインタフェースにおいて送受信されているパケットを監視するか、キャプチャ済みのパケットをパケットの受信時刻情報と共に保存したファイル情報が入力される。
【００２４】
入力部２０３はネットワークインタフェースであり、パケットが入力されるユニットである。パケットモニタ１０３は入力部２０３から入力されるパケットを監視している。若しくは入力部２０３はキャプチャ済みのパケットとパケットの受信時刻情報を一緒に保存したファイル情報が入力される。入力部２０３がネットワークインタフェースである場合は、例えばロスするパケットを常時監視する。この場合はリアルタイム性若しくは監視の継続性に優れている。また入力部２０３がパケットキャプチャしたファイル情報を入力する場合は、予めパケットキャプチャデータを採取し、ファイルとして保存しておく。この場合にはパケットモニタ１０３を現場に設置することなく、ロスか遅延かを識別する検査を行うことが可能である。
【００２５】
パケット情報取得部２０４は、パケットのＩＰヘッダに記述されているＴＣＰのＣＩＤ（Ｃｏｎｎｅｃｔｉｏｎ  ＩＤ）、ＩＰヘッダのＳｅｑ値、ＩＤ値、ＴＣＰヘッダのフラグ情報を取得する。ここでＣＩＤは、送信元アドレス（ＳＡ：Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、送信元ポート番号（ＳＰ：Ｓｏｕｒｃｅ  Ｐｏｒｔ）、宛先アドレス（ＤＡ：Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、宛先ポート（ＤＰ：Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ）の４つの組である。なおＣＩＤはＳＡ、ＳＰ、ＤＡ、ＤＰの組み合わせであるため、ＴＣＰ／ＩＰプロトコルにおいては送信元と宛先が入れ替わる場合もＣＩＤは同一となる。これはＴＣＰ／ＩＰ通信が双方向通信であり、サーバ１０１とホストコンピュータ１０２、１０３とのパケット送信、受信を識別しないためである。
【００２６】
パケット情報取得部２０４がＣＩＤ、Ｓｅｑ値、ＩＤ値、フラグ情報を取得した後、ＩＰアドレス重複検出部２０５はＣＩＤが同じパケットの情報を通信状態記憶部２０６内で検索する。ＩＰアドレス重複検出部２０５は、検索対象のＣＩＤと同一のＣＩＤを有するパケットのＩＤ値とパケット情報取得部２０４が取得したＩＤ値を比較する。ここで検索対象のＣＩＤと同一のＣＩＤを有するパケットのＩＤ値は、入力部２０３に入力されたパケットの直前にサーバ１０１とホストコンピュータ１０２（またはホストコンピュータ１０３）とが送受信したパケットのＩＤ値である。換言すればパケットモニタ１０３は、ＩＰアドレス重複検出部２０５において、同一ＣＩＤを有するパケットのＩＤ値と時系列的に直前にあたるパケットのＩＤ値と比較する。
【００２７】
パケット情報取得部２０４が取得したパケットのフラグ情報でＲＳＴフラグがＯＮの場合であって、ＩＰアドレス重複検出部２０５が比較したＩＤ値が例えば１０００以上異なる場合は、同一サブネット内で同一ＩＰアドレスが複数のホストコンピュータに割り当てられていると判別する。
【００２８】
通信状態記憶部２０６は、図５に示すテーブル５００を記憶する記憶領域である。テーブル５００はＣＩＤとＩＤ値を関連付けたテーブルである。テーブル５００は「ＣＩＤ５０１」、「前回受信時刻５０２」、「前回送信元５０３」、「ＩＡ（Ｉｎｉｔｉａｔｏｒ  Ａｄｄｒｅｓｓ）５０４」、「ＩＡ前回ＩＤ５０５」、「ＳＡ（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）５０６」、「ＳＡ前回ＩＤ５０７」より構成されている。なおＩＡ５０４はＳＹＮパケットを送信した側のアドレスである。ＳＡ５０６はＳＹＮパケットを受信した側のアドレスである。またＩＰアドレス重複検出部２０５は、ＣＩＤ５０１を検索条件としてテーブル５００を検索し保存されたＩＤ値５０５、受信時刻５０２を読み出す機能を有している。またＩＰアドレス重複検出部２０５は、ＣＩＤ５０１を検索条件としてテーブル５００を検索し、該当するＣＩＤ５０１に対応するＩＤ値５０５を更新する機能を有している。通信状態記憶部２０６は、ＩＰアドレス重複検出部２０５より上記機能によりアクセスされる。
【００２９】
モニタ結果記憶部２０７は、ネットワーク管理者や監視装置に通知のモニタ結果を記憶するユニットである。モニタ結果記憶部２０７はテーブル６００を記憶している。ＩＰアドレス重複検出部２０５は、ＩＤ値の比較結果をモニタ結果記憶部２０７のテーブル６００に書き込む。テーブル６００は「ＩＰアドレス６０１」、「重複検出回数６０２」、「初回検出時刻６０３」、「最終検出時刻６０４」より構成されている。例えばＩＰアドレス重複検出部２０５は、同一サブネットにおけるＩＰアドレスの重複を検出したら、重複したＩＰアドレスを「ＩＰアドレス６０１」のカラムに書き込み、すでに同一のＩＰアドレスが「ＩＰアドレス６０１」のカラムに書き込まれている場合には対応する「重複検出回数６０２」を更新し、さらに対応する「最終検出時刻６０４」を更新する。
【００３０】
モニタ結果出力部２０８はモニタ結果記憶部２０７に保存されているテーブル６００の一部若しくは全てを取得し、出力部２０９にその取得したデータを送信する。例えばモニタ結果出力部２０８は、重複していると検出したＩＰアドレスをサブネット毎にまとめる。またモニタ結果出力部２０８は時刻を用いてフィルタリングし、統計情報を抽出し、その結果を出力部２０９に送信しても良い。
【００３１】
出力部２０９は、モニタ結果を出力するインタフェースである。具体的に出力部２０９は、ネットワーク管理者に統計情報を表示するための画面である。また出力部２０９は、ネットワーク管理装置に送信するための通信プロトコルをサポートするネットワークインタフェースであってもよい。
【００３２】
［２．パケットストリーム］
図３は本実施例に係るモニタリングシーケンス３００における正常なパケットストリームを示す図である。以下図３を用いて、ホストコンピュータ１０２が属するサブネット内にホストコンピュータ１０２に割り当てられたＩＰアドレスを有する他のホストコンピュータが存在しない場合のパケットストリームについて説明する。モニタリングシーケンス３００は、サーバ１０１とホストコンピュータ１０２との間のパケットのやりとりを示すシーケンスである。
【００３３】
図１に示すモニタリングシーケンス１００と同様に、パケットモニタ１０３が、サーバ１０１とルータ１０４配下のホストコンピュータ１０２との通信を監視している。
【００３４】
モニタリングシーケンス３００では、まずホストコンピュータ１０２がサーバ１０１へルータ１０４を介して要求パケット３０１、３０２を送信する。要求パケット３０１のＩＤ値は「１００」である。時系列でみた場合その後ホストコンピュータ３０２が送信する要求パケットのＩＤ値は「１０１」である。要求パケット３０１、３０２の送信先アドレス（ＤＡ）は、サーバ１０１のＩＰアドレス「Ｂ」である。また要求パケット３０１、３０２の送信元アドレス（ＳＡ）は、ホストコンピュータ１０２のＩＰアドレス「Ａ」である。要求パケット３０１、３０２の送信先ポート（ＤＡ）は、サーバ１０１のポート「ＢＰ」である。要求パケット３０１、３０２の送信元ポート（ＳＡ）は、ホストコンピュータ１０２のポート「ＡＰ」である。
【００３５】
そしてサーバ１０１は要求パケット３０１、３０２に対する応答パケット３０３をホストコンピュータ１０２へ送信する。応答パケット３０３のＩＤ値は「８８５７」である。また応答パケット３０３の送信先アドレスは、ホストコンピュータ１０２のＩＰアドレス「Ａ」である。応答パケット３０３の送信元アドレスはサーバのＩＰアドレス「Ｂ」である。応答パケット３０３の送信先ポートはホストコンピュータ１０２のポート「ＡＰ」である。さらに応答パケット３０３の送信元ポートはサーバ１０１のポート「ＢＰ」である。
【００３６】
続いてホストコンピュータ１０２はパケット３０４をサーバ１０１へ送信する。パケット３０４のＩＤ値は「１０２」である。さらにモニタリングシーケンス３００では、ホストコンピュータ１０２が、リセットフラグ（ＲＳＴ）がＯＮのＲＳＴパケット３０５をサーバ１０１に送信して、強制的にＴＣＰコネクションを切断することをサーバ１０１へ通知している。ＩＰ重複が発生する場合には、多くの場合リセットフラグが含まれたパケットをサーバ１０１が受信する。そのためパケットモニタ１０３がサーバへのＲＳＴパケットを受信した場合のみ、パケットのＩＤ（識別情報）をチェックすることで誤報を抑制することができる。
【００３７】
以上から、同一ＩＰアドレスから送信されるパケットにおけるＩＤ値が大きく増えずに単調増加している場合であって、ＲＳＴパケットが送信された場合には、同一サブネット内でＩＰアドレスの重複はないと判別できる。つまりＲＳＴパケットが送信された場合でも、同一ホストコンピュータがＴＣＰコネクションを強制切断するためにＲＳＴパケットが送信したと推測することができる。
【００３８】
図４は本実施例に係るモニタリングシーケンス１００におけるＩＰアドレス重複でのパケットストリームを示す図である。以下図４を用いて、ホストコンピュータ１０２が属するサブネット内にホストコンピュータ１０２に割り当てられたＩＰアドレスを有する他のホストコンピュータ１０５が存在する場合のパケットストリームについて説明する。モニタリングシーケンス４００も、サーバ１０１とホストコンピュータ１０２との間のパケットのやりとりを示すシーケンスである。
【００３９】
モニタリングシステム４００は、図１に示すモニタリングシステム１００と同等のものであり、パケット内の情報をより詳細に示したものである。
【００４０】
モニタリングシーケンス３００では、まずホストコンピュータ１０２がサーバ１０１へルータ１０４を介して要求パケット４０１、４０２を送信する。要求パケット４０１のＩＤ値は「１００」である。時系列でみた場合その後ホストコンピュータ３０２が送信する要求パケットのＩＤ値は「１０１」である。要求パケット４０１、４０２の送信先アドレス（ＤＡ）は、サーバ１０１のＩＰアドレス「Ｂ」である。また要求パケット４０１、４０２の送信元アドレス（ＳＡ）は、ホストコンピュータ１０２のＩＰアドレス「Ａ」である。要求パケット４０１、４０２の送信先ポート（ＤＡ）は、サーバ１０１のポート「ＢＰ」である。要求パケット４０１、４０２の送信元ポート（ＳＡ）は、ホストコンピュータ１０２のポート「ＡＰ」である。
【００４１】
そしてサーバ１０１は要求パケット４０１、４０２に対する応答パケット４０３を送信する。応答パケット４０３のＩＤ値は「８８５７」である。また応答パケット３０３の送信先アドレスは、ホストコンピュータ１０２のＩＰアドレス「Ａ」である。応答パケット３０３の送信元アドレスはサーバのＩＰアドレス「Ｂ」である。応答パケット３０３の送信先ポートはホストコンピュータ１０２のポート「ＡＰ」である。さらに応答パケット３０３の送信元ポートはサーバ１０１のポート「ＢＰ」である。モニタリングシーケンス４００では、サーバ１０１が応答パケット４０３を、ホストコンピュータ１０２と同一のＩＰアドレスを有するホストコンピュータ１０５へ送信する。
【００４２】
ホストコンピュータ１０５はＲＳＴパケット４０４をサーバ１０１に送信する。ＲＳＴパケット４０４のＩＤ値は「５９３８」である。ＲＳＴパケット４０４は、ホストコンピュータ１０２と異なるホストコンピュータ１０５が送信する。ホストコンピュータ１０５は、突然サーバ１０１から応答パケット４０３を受信したため、ＴＣＰコネクションを強制的に切断するためにＲＳＴパケット４０４をサーバ１０１に送信する。
【００４３】
以上から、同一ＩＰアドレスから送信されるパケットにおけるＩＤ値が大きく変化した場合であって、ＲＳＴパケットが送信された場合には、同一サブネット内でＩＰアドレスが重複していると推測することができる。ＩＤ値が大きく変化した場合とは、同一ＩＰアドレスを有するホストコンピュータから時系列的に連続して送信されたパケットのＩＤ値間で値が大きく変化した場合のことである。
【００４４】
図７は本実施例に係るＩＰアドレス重複を検出するフローチャートである。  パケットモニタ１０３は、入力部２０３を用いてＴＣＰパケットの１つを読み込む（Ｓ７０１）。パケットモニタ１０３はパケット情報取得部２０４を用いてＳ７０１で読み込んだパケットにおけるＳＡ、ＳＰ、ＤＡ、ＤＰ、ＩＤ値、フラグ情報を読み取る（Ｓ７０２）。ＩＰアドレス重複検出部２０５はＳＡ、ＳＰ、ＤＡ、ＤＰの組で示されるＣＩＤを検索条件としてテーブル５００内を検索する（Ｓ７０３）。
【００４５】
ＩＰアドレス重複検出部２０５はテーブル５００内に同一ＣＩＤが存在するか否かを判別する（Ｓ７０４）。同一ＣＩＤの判別とは、Ｓ７０２でパケット情報取得部２０４が読み込んだＣＩＤと同一のＣＩＤがテーブル５００に存在するか否かを判別することである。ＩＰアドレス重複検出部２０５が同一のＣＩＤがテーブル５００に存在すると判別する場合（Ｓ７０４  ＹＥＳ）、ＩＰアドレス重複検出部２０５は、Ｓ７０２でパケット情報取得部２０４が読み込んだフラグ情報でＲＳＴフラグがＯＮであるか否かを判別する（Ｓ７０５）。ＩＰアドレス重複検出部２０５が、ＲＳＴフラグがＯＮであると判別した場合（Ｓ７０５  ＹＥＳ）、ＩＰアドレス重複検出部２０５はＤＡが前回パケットの送信元アドレスであるか否かを判別する（Ｓ７０６）。ＩＰアドレス重複検出部２０５が、ＤＡが前回パケットの送信元であると判別した場合（Ｓ７０６  ＹＥＳ）、ＩＰアドレス重複検出部２０５は、ＲＳＴパケットのＩＤ値が通信状態記憶部２０６内のテーブル５００で同一ＣＩＤと判別したパケットのＩＤ値と比較して１０００以上増加、あるいは減少したか否かを判別する（Ｓ７０７）。ＩＰアドレス重複検出部２０５が、ＲＳＴパケットのＩＤ値がテーブル５００で同一ＣＩＤと判別したパケットのＩＤ値と比較して１０００以上増加、あるいは減少していると判別した場合（Ｓ７０７  ＹＥＳ）、ＲＳＴパケットの送信元ＩＰアドレスが複数のホストコンピュータに割り当てられている（送信元ＩＰアドレスが重複している）と判別する（Ｓ７０８）。同一ＣＩＤを有するパケットであって、同一ホストコンピュータが送信するパケットのＩＤ値は、通常時系列と共に単調増加する。そのためＳ７０７において、ＩＤ値を比較して後のパケットのＩＤ値が前のパケットのＩＤ値より小さい値である（減少している）場合は、ＲＳＴパケットの送信元ＩＰアドレスが複数のホストコンピュータに割り当てられていると判別する。ＩＰアドレス重複検出部２０５はモニタ結果記憶部２０７内のテーブル６００を更新する（Ｓ７０９）。
【００４６】
Ｓ７０４において、ＩＰアドレス重複検出部２０５がテーブル５００内に同一ＣＩＤが存在しないと判別する場合（Ｓ７０４  ＮＯ）、ＩＰアドレス重複検出部２０５は通信状態記憶部２０６内のテーブル５００に新たなレコードを作成する（Ｓ７１０）。レコードはＣＩＤ５０１、前回受信時刻５０２、前回送信元５０３、ＩＡ５０４、ＩＡ前回ＩＤ５０５、ＳＡ５０６、ＳＡ前回ＩＤ５０７の組である。新たなＣＩＤ５０１におけるパケットであるので、今回入力部２０３でパケットを受信した時刻を前回受信時刻５０２としてＩＰアドレス重複検出部２０５はテーブル５００に記憶する。そしてＩＰアドレス重複検出部２０５は、通信状態記憶部２０６のテーブル５００を更新する（Ｓ７１１）。ここでいうテーブル５００の更新は、作成した新たなレコードをテーブル５００に記憶することである。
【００４７】
またＳ７０５において、ＩＰアドレス重複検出部２０５がパケットのフラグ情報がＯＦＦであると判別した場合（Ｓ７０５  ＮＯ）、ＩＰアドレス重複検出部２０５は通信状態記憶部２０６のテーブル５００を更新する（Ｓ７１１）。ここでいうテーブルの更新は、Ｓ７０４で同一と判別したＣＩＤを含むレコードの更新である。
【００４８】
またＳ７０６において、ＩＰアドレス重複検出部２０５が、ＤＡが前回パケットの送信元でないと判別した場合（Ｓ７０６  ＮＯ）、ＩＰアドレス重複検出部２０５は通信状態記憶部２０６のテーブル５００を更新する（Ｓ７１１）。
【００４９】
またＳ７０７において、ＩＰアドレス重複検出部２０５が、ＲＳＴパケットのＩＤ値がテーブル５００で同一ＣＩＤと判別したパケットのＩＤ値と比較して１０００以上増加もしておらず、かつ減少もしていないと判別した場合（Ｓ７０７  ＮＯ）、ＩＰアドレス重複検出部２０５は通信状態記憶部２０６のテーブル５００を更新する（Ｓ７１１）。
【００５０】
［３．ＯＳ種別を利用したＩＰアドレス重複の検出例］
次にパケットモニタ１０３の他の実施例について説明する。この実施例におけるパケットモニタ１０３は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）種別を判別してＩＰアドレス重複を検出する。パケットモニタ１０３のハード構成は図２に示すブロック図と同等の構成によって実現されるものである。
【００５１】
パケットの送信元であるホストコンピュータのＯＳ種別の違いによって、ＩＤ値がランダムな値から始まる。そしてホストコンピュータが１パケット送信する毎にＩＤ値は１ずつ増加する。例えばＬｉｎｕｘ（登録商標）がそれにあたるＯＳである。
【００５２】
図８は本実施例に係るＯＳ種別を利用してＩＰアドレス重複を検出するフローチャートである。パケットモニタ１０３は、入力部２０３を用いてＴＣＰパケットの１つを読み込む（Ｓ８０１）。パケット情報取得部２０４は、入力部２０３を用いて読み込んだパケットがＳＹＮＡＣＫパケットか否かを判別する（Ｓ８０２）。ＳＹＮＡＣＫパケットはＳＹＮパケット（同期パケット）に対する確認応答のパケットである。ＳＹＮパケットはコンピュータ間のパケット転送の許可を要求するパケットである。したがってパケット情報取得部２０４がＳＹＮＡＣＫパケットを検出した場合は、これからＳＹＮパケット、ＳＹＮＡＣＫパケットを送受信したコンピュータ間でパケット転送が開始されることになる。そのためパケットモニタ１０３は、そのパケット転送を行うコンピュータのＯＳ種別を管理しておく。
【００５３】
パケット情報取得部２０４は、読み込んだパケットがＳＹＮＡＣＫパケットであると判別した場合（Ｓ８０２  ＹＥＳ）、パケット情報取得部２０４は通信状態記憶部２０６内のＯＳ種別テーブル９００に新規エントリを作成し記憶する（Ｓ８０３）。  図９はＯＳ種別テーブル９００を示す図である。ＯＳ種別テーブル９００は送信元アドレス９０１とＯＳ種別９０１を含む構成となっている。送信元アドレス９０１はＳＹＮＡＣＫパケットの送信元アドレスである。
【００５４】
パケット情報取得部２０４は、読み込んだパケットのＩＤ値が「０」であるか否か判別する（Ｓ８０４）。パケット情報取得部２０４が、読み込んだパケットのＩＤ値が「０」であると判別した場合（Ｓ８０４  ＹＥＳ）、パケット情報取得部２０４はＯＳ種別を「１」としてＯＳ種別テーブル９００に記憶する（Ｓ８０５）。またパケット情報取得部２０４が、読み込んだパケットのＩＤ値が「０」でないと判別した場合（Ｓ８０４  ＮＯ）、パケット情報取得部２０４はＯＳ種別を「２」としてＯＳ種別テーブル９００に記憶する（Ｓ８０６）。本実施例において、パケット情報取得部２０４は通信状態記憶部２０６内のＯＳ種別テーブル９００に新規エントリを記憶している。パケット情報取得部２０４は、処理部２０１において機能的に実現されるユニットである。そのため図２上ではＩＰアドレス重複検出部２０５を介してパケット情報取得部２０４が通信状態記憶部２０６にアクセスしているが、直接アクセスするものであってもよい。
【００５５】
パケット情報取得部２０４は、読み込んだパケットがＳＹＮＡＣＫパケットでないと判別した場合（Ｓ８０２  ＮＯ）、読み込んだパケットにおけるＳＡ、ＳＰ、ＤＡ、ＤＰ、ＩＤ値、フラグ情報を読み取る（Ｓ８０７）。ＩＰアドレス重複検出部２０５はＳＡ、ＳＰ、ＤＡ、ＤＰの組で示されるＣＩＤを検索条件としてテーブル５００内を検索する（Ｓ８０８）。
【００５６】
ＩＰアドレス重複検出部２０５は、読み込んだＣＩＤと同一のＣＩＤがテーブル５００内に同一ＣＩＤが存在するか否か判別する（Ｓ８０９）。ＩＰアドレス重複検出部２０５が、同一のＣＩＤがテーブル５００に存在すると判別する場合（Ｓ８０９  ＹＥＳ）、ＩＰアドレス重複検出部２０５は、Ｓ８０７でパケット情報取得部２０４が読み込んだフラグ情報でＲＳＴフラグがＯＮであるか否かを判別する（Ｓ８１０）。ＩＰアドレス重複検出部２０５が、ＲＳＴフラグがＯＮであると判別した場合（Ｓ８１０  ＹＥＳ）、ＩＰアドレス重複検出部２０５はＤＡが前回パケットの送信元アドレスであるか否かを判別する（Ｓ８１１）。ＩＰアドレス重複検出部２０５が、ＤＡが前回パケットの送信元であると判別した場合（Ｓ８１１  ＹＥＳ）、ＩＰアドレス重複検出部２０５がパケットを送信したホストコンピュータのＯＳ種別が「１」であるか否か判別する（Ｓ８１２）。ＩＰアドレス重複検出部２０５が、ＯＳ種別が「１」であると判別する場合（Ｓ８１２  ＹＥＳ）、ＩＰアドレス重複検出部２０５は、Ｎ＝「５」、Ｍ＝「５」に設定する（Ｓ８１３）。そしてＩＰアドレス重複検出部２０５は、ＲＳＴパケットのＩＤ値が通信状態記憶部２０６内のテーブル５００で同一ＣＩＤと判別したパケットのＩＤ値と比較してＮ以上増加、あるいはＭ以上減少したか否かを判別する（Ｓ８１５）。ここでＳ８１３においてＩＰアドレス重複検出部２０５が設定したように、Ｎ＝「５」、Ｍ＝「５」である。
【００５７】
ＩＰアドレス重複検出部２０５が、ＲＳＴパケットのＩＤ値が通信状態記憶部２０６内のテーブル５００で同一ＣＩＤと判別したパケットのＩＤ値と比較して５以上増加、あるいは５以上減少した場合（Ｓ８１５  ＹＥＳ）、ＩＰアドレス重複検出部２０５は、ＲＳＴパケットの送信元ＩＰアドレスが複数のホストコンピュータに割り当てられている（送信元ＩＰアドレスが重複している）と判別する（Ｓ８１６）。ＩＰアドレス重複検出部２０５はモニタ結果記憶部２０７内のテーブル６００を更新する（Ｓ８１７）。
【００５８】
またＩＰアドレス重複検出部２０５が、ＯＳ種別が「１」でないと判別した場合（Ｓ８１２  ＮＯ）、ＩＰアドレス重複検出部２０５は、Ｎ＝「１０００」、Ｍ＝「５」に設定する。そしてＩＰアドレス重複検出部２０５は、ＲＳＴパケットのＩＤ値が通信状態記憶部２０６内のテーブル５００で同一ＣＩＤと判別したパケットのＩＤ値と比較してＮ以上増加、あるいはＭ以上減少したか否かを判別する（Ｓ８１５）。ここでＳ８１４においてＩＰアドレス重複検出部２０５が設定したように、Ｎ＝「１０００」、Ｍ＝「５」である。
【００５９】
ＩＰアドレス重複検出部２０５が、ＲＳＴパケットのＩＤ値が通信状態記憶部２０６内のテーブル５００で同一ＣＩＤと判別したパケットのＩＤ値と比較して１０００以上増加、あるいは５以上減少した場合（Ｓ８１５  ＹＥＳ）、ＩＰアドレス重複検出部２０５は、ＲＳＴパケットの送信元ＩＰアドレスが複数のホストコンピュータに割り当てられている（送信元ＩＰアドレスが重複している）と判別する（Ｓ８１６）。ＩＰアドレス重複検出部２０５はモニタ結果記憶部２０７内のテーブル６００を更新する（Ｓ８１７）。
【００６０】
Ｓ８０９において、ＩＰアドレス重複検出部２０５がテーブル５００内に同一ＣＩＤが存在しないと判別する場合（Ｓ８０９  ＮＯ）、ＩＰアドレス重複検出部２０５は通信状態記憶部２０６内のテーブル５００に新たなレコードを作成する（Ｓ８１８）。レコードはＣＩＤ５０１、前回受信時刻５０２、前回送信元５０３、ＩＡ５０４、ＩＡ前回ＩＤ５０５、ＳＡ５０６、ＳＡ前回ＩＤ５０７の組である。新たなＣＩＤ５０１におけるパケットであるので、今回入力部２０３でパケットを受信した時刻を前回受信時刻５０２としてＩＰアドレス重複検出部２０５はテーブル５００に記憶する。そしてＩＰアドレス重複検出部２０５は、通信状態記憶部２０６のテーブル５００を更新する（Ｓ７１１）。ここでいうテーブル５００の更新は、作成した新たなレコードをテーブル５００に記憶することである。
【００６１】
またＳ８１０において、ＩＰアドレス重複検出部２０５がパケットのフラグ情報がＯＦＦであると判別した場合（Ｓ８１０  ＮＯ）、ＩＰアドレス重複検出部２０５は通信状態記憶部２０６のテーブル５００を更新する（Ｓ８１９）。ここでいうテーブルの更新は、Ｓ８０９で同一と判別したＣＩＤを含むレコードの更新である。
【００６２】
またＳ８１１において、ＩＰアドレス重複検出部２０５が、ＤＡが前回パケットの送信元でないと判別した場合（Ｓ８１１  ＮＯ）、ＩＰアドレス重複検出部２０５は通信状態記憶部２０６のテーブル５００を更新する（Ｓ８１９）。
【００６３】
またＳ８１５において、ＩＰアドレス重複検出部２０５が、ＲＳＴパケットのＩＤ値がテーブル５００で同一ＣＩＤと判別したパケットのＩＤ値と比較してＮ以上増加もしておらず、かつＭ以上も減少もしていないと判別した場合（Ｓ８１５  ＮＯ）、ＩＰアドレス重複検出部２０５は通信状態記憶部２０６のテーブル５００を更新する（Ｓ８１９）。ここでＳ８１３のステップを経由する場合はＮ＝「５」、Ｍ＝「５」である。Ｓ８１４のステップを経由する場合はＮ＝「１０００」、Ｍ＝「５」である。
【００６４】
［４．再起動処理した場合などの例外処理］
図１０はホストコンピュータ１００２が再起動処理した場合のモニタリングシーケンス１０００におけるパケットストリームを示す図である。同一サブネット内において、複数のホストコンピュータに同一ＩＰアドレスが割り当てられていない場合においてもＲＳＴパケットのＩＤ値が同一ＴＣＰコネクションで時系列的に直前に送信されたパケットのＩＤ値よりも大きく増加していることがある。
【００６５】
例えばホストコンピュータ１００２がパケット１００６をサーバ１００１へ送信してから長時間経過した後にサーバ１００１からパケット１００７を受信した場合である（パターン１）。この場合ホストコンピュータ１００２は、パケット１００６を送信してからＲＳＴパケット１００９を送信する間に、サーバ１００１以外のコンピュータへパケットを送信していることがある。そのような場合にはＲＳＴパケット１００９のＩＤ値は、同一ＴＣＰコネクションにおいて直前に送信されたパケット１００６のＩＤ値と比較して大きく異なる。
【００６６】
同様にホストコンピュータ１００２がパケット１００７を受信して長時間経過した後にパケット１００９を送信した場合も、ＲＳＴパケット１００９のＩＤ値が同一ＴＣＰコネクションで時系列的に直前に送信されたパケット１００６のＩＤ値と比較して大きく増加することがある（パターン２）。この場合もホストコンピュータ１００２は、パケット１００６を送信してからＲＳＴパケット１００９を送信する間に、サーバ１００１以外のコンピュータへパケットを送信していることに起因する。
【００６７】
またホストコンピュータ１００２がサーバ１００１と通信中に再起動した場合にはホストコンピュータ１００２はＲＳＴパケットで応答することがある。これは再起動後にホストコンピュータ１００２が未知のＴＣＰコネクションにおいてパケット１００８を受信するためである。この場合、ホストコンピュータ１００２は再起動した後であるため、ＲＳＴパケット１００９のＩＤ値は再起動前のパケット１００６のＩＤ値と大きく異なることがある（パターン３）。
【００６８】
なお図１０に示すパケットストリームでは、ＲＳＴパケット１００９のＩＤ値が「７１５１」となっている。ホストコンピュータ１００２がＲＳＴパケット１００９の前にサーバ１００１に対して送ったパケット１００６のＩＤ値「１０１」と比較して、パケット１００９のＩＤ値「７１５１」は大きく異なっている（著しく増加している）。本実施例ではより確実にＩＰアドレス重複を検出するために、上記ケースを例外として検出対象から除くものである。
【００６９】
図１１は本実施例に係るＩＰアドレス重複を検出するフローチャートである。また本実施例においてもＯＳ種別を判別し、同一サブネット内におけるＩＰアドレス重複を検出する。
【００７０】
パケットモニタ１０３は、入力部２０３を用いてＴＣＰパケットの１つを読み込む（Ｓ１１０１）。パケット情報取得部２０４は、読み込んだパケットがＳＹＮＡＣＫパケットであるか否かを判別する（Ｓ１１０２）。
【００７１】
パケット情報取得部２０４は、読み込んだパケットがＳＹＮＡＣＫパケットであると判別した場合（Ｓ１１０２  ＹＥＳ）、パケット情報取得部２０４は通信状態記憶部２０６内のＯＳ種別テーブル９００に新規エントリを作成し記憶する（Ｓ１１０３）。パケット情報取得部２０４は、読み込んだパケットのＩＤ値が「０」であるか否か判別する（Ｓ１１０４）。パケット情報取得部２０４がが、読み込んだパケットのＩＤ値が「０」であると判別した場合（Ｓ１１０４  ＹＥＳ）、パケット情報取得部２０４はＯＳ種別を「１」としてＯＳ種別テーブル９００に記憶する（Ｓ１１０５）。またパケット情報取得部２０４が、読み込んだパケットのＩＤ値が「０」でないと判別した場合（Ｓ１１０４  ＮＯ）、パケット情報取得部２０４はＯＳ種別を「２」としてＯＳ種別テーブル９００に記憶する（Ｓ１１０６）。本実施例において、パケット情報取得部２０４は通信状態記憶部２０６内のＯＳ種別テーブル９００に新規エントリを記憶している。パケット情報取得部２０４は、処理部２０１において機能的に実現されるユニットである。そのため図２上ではＩＰアドレス重複検出部２０５を介してパケット情報取得部２０４が通信状態記憶部２０６にアクセスしているが、直接アクセスするものであってもよい。
【００７２】
パケット情報取得部２０４は、読み込んだパケットがＳＹＮＡＣＫパケットでないと判別した場合（Ｓ１１０２  ＮＯ）、読み込んだパケットにおけるＳＡ、ＳＰ、ＤＡ、ＤＰ、ＩＤ値、フラグ情報を読み取る（Ｓ１１０７）。ＩＰアドレス重複検出部２０５はＳＡ、ＳＰ、ＤＡ、ＤＰの組で示されるＣＩＤを検索条件としてテーブル１２００内を検索する（Ｓ１１０８）。ここで図１２は本実施例に係る通信状態記憶部２０６内のテーブル１２００を示す図である。テーブル１２００を用いてパケットモニタ１０３はパケットの再送回数を管理している。テーブル１２００は、ＣＩＤ１２０１、前回送信元１２０２、ＩＡ１２０３、ＩＡ前回ＩＤ１２０４、ＩＡ直前再送回数１２０５、ＩＡ前回受信時刻１２０６、ＳＡ１２０７、ＳＡ前回ＩＤ１２０８、ＳＡ直前再送回数１２０９、前回受信時刻１２１０を含む構成となっている。ＩＡ１２０３はＳＹＮパケットを送信した側の装置が有するＩＰアドレスを示す。ＩＡ前回ＩＤ１２０４は、ＳＹＮパケットを送信した側の装置が直前に送ったパケットのＩＤ値である。ＩＡ直前再送回数１２０５は、ＳＹＮパケットを送信した側の装置が直前にパケットを再送した回数である。ＩＡ前回受信時刻１２０６は、ＳＹＮパケットを送信した側の装置から直前にパケットを受信した時刻である。ＳＡ１２０７は応答パケットの送信元アドレスである。ＳＡ前回ＩＤ１２０８は、直前の応答パケットのＩＤ値である。ＳＡ直前再送回数１２０９は、応答パケットの送信元アドレスを有する装置が直前に応答パケットを再送した回数である。前回受信時刻１２１０は、応答パケットの送信元アドレスを有する装置から直前に応答パケットを受信した時刻である。受信する主体はＩＰアドレス重複検出部２０５である。
【００７３】
ＩＰアドレス重複検出部２０５は、読み込んだＣＩＤと同一のＣＩＤがテーブル１２００内に同一ＣＩＤが存在するか否か判別する（Ｓ１１０９）。ＩＰアドレス重複検出部２０５が、同一のＣＩＤがテーブル１２００に存在すると判別する場合（Ｓ１１０９  ＹＥＳ）、ＩＰアドレス重複検出部２０５は、Ｓ１１０７でパケット情報取得部２０４が読み込んだフラグ情報でＲＳＴフラグがＯＮであるか否かを判別する（Ｓ１１１０）。ＩＰアドレス重複検出部２０５が、ＲＳＴフラグがＯＮであると判別した場合（Ｓ１１１０  ＹＥＳ）、ＩＰアドレス重複検出部２０５はＤＡが前回パケットの送信元アドレスであるか否かを判別する（Ｓ１１１１）。
【００７４】
ＩＰアドレス重複検出部２０５が、ＤＡが前回パケットの送信元であると判別した場合（Ｓ１１１１  ＹＥＳ）、ＩＰアドレス重複検出部２０５がＲＳＴパケットの受信直前に、ＲＳＴパケットの宛先アドレスを有するサーバ１００１から応答パケットの再送があったか否かを判別する（Ｓ１１１２）。換言すればＩＰアドレス重複検出部２０５は、同一ＴＣＰコネクションにおいてＲＳＴパケットの直前にサーバ１００２から複数回数、同一の応答パケットを受信したか否かを判別する。より具体的にはＩＰアドレス重複検出部２０５は、テーブル１２００のＳＡ直前再送回数１２０９を参照して、応答パケットの再送があったか否かを判別する。
【００７５】
ＩＰアドレス重複検出部２０５が、サーバ１００１が応答パケットの再送がないと判別する場合（Ｓ１１１２  ＹＥＳ）、ＩＰアドレス重複検出部２０５はＲＳＴパケットを受信した時刻Ｔ１と、サーバ１００１がＲＳＴパケットの受信直前に同一ＴＣＰコネクションにおいて応答パケットを送信し、その応答パケットをＩＰアドレス重複検出部２０５が受信した時刻Ｔ２との差分が一定時間Ｔ以下であるか否か判別する（Ｓ１１１３）。例えばＴは1分などの値である。１分以上経過してホストコンピュータ１００２がＲＳＴパケットを送信した場合には、パケットモニタ１０３は、ＲＳＴパケットのＩＤ値がいかなる値であってもＩＰアドレスの重複はないと判別することで、上記例外的な通信シーケンスを除外することができる。より具体的には、ＩＰアドレス重複検出部２０５が通信状態記憶部２０６内のテーブル１２００する。ＩＰアドレス重複検出部２０５がＲＳＴパケットを受信する（時間Ｔ１）と、テーブル１２００の前回受信時刻１２１０を参照して比較する。ＲＳＴパケットを受信した時間Ｔ１と比較する前回受信時刻１２１０は、サーバ１００１からＲＳＴパケット受信直前に同一ＴＣＰコネクションにおいて応答パケットを受信した時刻Ｔ２である。
【００７６】
また同様に説明を簡単にするために、単純に前回ＩＤとＩＤは１０００以上もしくは減少する場合に同一アドレスで異なるホストから送信されたと判断したが、実際にはＩＤは１６ｂｉｔで周回する値であり、かつＩＰパケットが送信順で到着せずに順序が反転する場合の考慮も必要な場合がある。このため、１６ｂｉｔ値の周回を考慮して比較してもよいし、単純に減少するのではなく、値が１０以上減少するなどと判断しても良い。
【００７７】
また、ＩＤは１６ｂｉｔの値だが、ホストの実装によっては、８ｂｉｔの上位下位の並びであるエンディアンがネットワークオーダではなく、ホストオーダになっている可能性もある。その場合も、上位下位を逆転させた連続性を比較してもよい。
【００７８】
なお以上のことは、上位概念も文言を用いて以下のように示すことができる。パケットモニタ１０３は、情報処理装置間において、送信される毎に増加する識別情報を有するパケットの通信を監視する監視装置である。監視装置は情報処理装置から送信された第１パケットの識別情報と前記第１パケットの送信元アドレスを関連付けて記憶する記憶部と、前記情報処理装置から新たに送信された第２パケットを取り込む入力部とを有している。そしてさらに監視装置は、  前記第１パケットの前記送信元アドレスと前記第２パケットの送信元アドレスが一致する場合、前記第１パケットの前記識別情報と前記第２パケットの識別情報を比較して不連続になっている場合に、前記情報処理装置に割り当てられているＩＰアドレスが他の前記情報処理装置に割り当てられていると判別する処理部を有している。
【００７９】
また監視装置は、前記第１パケットの前記識別情報と第２パケットの前記識別情報とを比較して不連続になっている場合に、同一サブネット内の複数の情報処理装置に同一アドレスが割り当てられていると判別する。
【００８０】
また監視装置の前記記憶部は、さらに第１パケットの宛先アドレスを前記第１パケットの送信元アドレスを関連づけて記憶する。そして前記処理部は、前記第１パケットの前記送信元アドレスと前記宛先アドレスと、前記第２パケットの前記送信元アドレスと宛先アドレスが一致する場合、前記識別情報の比較および判定を行う。
【００８１】
また監視装置の前記処理部は、前記第２パケットがリセットフラグを含む場合に、前記第１パケットの前記識別情報と前記第２パケットの前記識別情報を比較してより精度よくＩＰアドレス重複を検出する。
【００８２】
また監視装置の前記処理部は、前記情報処理装置のＯＳが前記サーバと通信を開始する毎に前記第２パケットの識別情報をリセットするＯＳであるか否かを判別する。
【００８３】
また監視装置の前記記憶部は、前記情報処理装置が前記第１パケットを送信した時刻を示す第１パケット送信時刻をさらに記憶し、前記処理部は、第２パケットの送信時刻と前記第１パケット送信時刻を比較し、経過時間が所定時間以下の場合に、前記第１パケットの前記識別情報と前記第２パケットの前記識別情報を比較することを特徴とする。
【００８４】
さらに監視装置は、前記処理部における判定結果を、前記情報処理装置を管理するネットワーク管理装置へ通知する出力部を有する。
【符号の説明】
【００８５】
１００…モニタリングシーケンス
１０１…サーバ
１０２…ホストコンピュータ
１０２…パケットモニタ
１０５…ホストコンピュータ
２０１…処理部
２０２…記憶部
２０３…入力部
２０４…パケット情報取得部
２０５…ＩＰアドレス重複検出部
２０６…通信状態記憶部
２０７…モニタ結果記憶部
２０８…モニタ結果出力部
２０９…出力部
３００…モニタリングシーケンス
４００…モニタリングシーケンス
５００…テーブル
６００…テーブル
９００…ＯＳ種別テーブル
１０００…モニタリングシーケンス
１２００…テーブル
【図７】
0005458752.tif 000002
【図９】
0005458752.tif 000003
【図１】
0005458752.tif 000004
【図２】
0005458752.tif 000005
【図３】
0005458752.tif 000006
【図４】
0005458752.tif 000007
【図５】
0005458752.tif 000008
【図６】
0005458752.tif 000009
【図８】
0005458752.tif 000010
【図１０】
0005458752.tif 000011
【図１１】
0005458752.tif 000012
【図１２】
0005458752.tif 000013