(57)【特許請求の範囲】
【請求項１】
複数のポートを有する中継装置を複数含むサブネットの物理結線の情報の収集に用いられる物理結線情報収集プログラムであって、複数の中継装置のうちの何れか１つに接続されたコンピュータに、
前記サブネット内でＬ２ループ状態を発生させる、４以上のポートが属する一組のポートを閉塞し、前記一組のポートを閉塞した状態で、前記物理結線の一部の情報を前記複数の中継装置から収集し、
前記サブネット内でＬ２ループ状態を発生させる他の一組のポートを決定し、決定した前記他の一組のポートを閉塞する、
処理を実行させる物理結線情報収集プログラム。
【請求項２】
前記他の一組のポート以外のポートを開放し前記他の一組のポートを閉塞した状態で、前記物理結線の他の一部の情報を収集し、前記一部の情報および前記他の一部の情報に基づいて、前記物理結線の情報を生成する、請求項１記載の物理結線情報収集プログラム。
【請求項３】
前記複数の中継装置それぞれが前記コンピュータのＭＡＣ（Media Access Control）アドレスに対応付けるポートに基づいて、ポート閉塞に用いる中継装置を決定する、請求項１または２記載の物理結線情報収集プログラム。
【請求項４】
前記サブネット内で利用されていない複数種類のダミーＭＡＣアドレスを送信元とする複数のデータをブロードキャストで送信し、
前記複数種類のダミーＭＡＣアドレスの何れかに対応付けられたポートが複数であり、かつ、当該複数のポート以外のポートを前記コンピュータのＭＡＣアドレスに対応付けた中継装置を特定し、当該中継装置を用いてポート閉塞を行う、
請求項３記載の物理結線情報収集プログラム。
【請求項５】
前記複数の中継装置それぞれが前記コンピュータのＭＡＣアドレスに対応付けるポートに基づいて、閉塞対象のポートを決定する、請求項１乃至４の何れか１項に記載の物理結線情報収集プログラム。
【請求項６】
前記サブネット内で利用されていない複数種類のダミーＭＡＣアドレスを送信元とする複数のデータをブロードキャストで送信し、
前記複数種類のダミーＭＡＣアドレスの何れかに対応付けられたポートが複数であり、かつ、当該複数のポート以外のポートを前記コンピュータのＭＡＣアドレスに対応付けた中継装置を特定し、当該中継装置が備えるポートのうち何れかのダミーＭＡＣアドレスが対応付けられたポートの中から閉塞対象のポートを決定する、
請求項５記載の物理結線情報収集プログラム。
【請求項７】
前記複数の中継装置それぞれから取得された、ＭＡＣアドレスとポートとの対応関係を示す情報に基づいて、前記一組のポートおよび前記他の一組のポートを決定する、請求項１乃至６の何れか１項に記載の物理結線情報収集プログラム。
【請求項８】
複数のポートを有する中継装置を複数含むサブネットの物理結線の情報の収集に用いられ、複数の中継装置のうちの何れか１つに接続される情報処理装置であって、
前記複数の中継装置との通信に用いられる通信部と、
前記サブネット内でＬ２ループ状態を発生させる、４以上のポートが属する一組のポートを閉塞し、
前記一組のポートを閉塞した状態で、前記物理結線の一部の情報を前記複数の中継装置から収集し、
前記サブネット内でＬ２ループ状態を発生させる他の一組のポートを決定し、決定した前記他の一組のポートを閉塞する、演算部と、
を有する情報処理装置。
【請求項９】
複数のポートを有する中継装置を複数含むサブネットの物理結線の情報の収集に用いられる物理結線情報収集方法であって、複数の中継装置のうちの何れか１つに接続されたコンピュータが、
前記サブネット内でＬ２ループ状態を発生させる、４以上のポートが属する一組のポートを閉塞し、
前記一組のポートを閉塞した状態で、前記物理結線の一部の情報を前記複数の中継装置から収集し、
前記サブネット内でＬ２ループ状態を発生させる他の一組のポートを決定し、決定した前記他の一組のポートを閉塞する、
物理結線情報収集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は物理結線情報収集プログラム、情報処理装置および物理結線情報収集方法に関する。
【背景技術】
【０００２】
現在、種々の装置がネットワークに接続されている。ネットワークは１以上の中継装置を含み得る。中継装置は複数のポートを有する。中継装置のポートと他の装置のポートとを所定のケーブルを用いて物理的に接続（結線）することで、通信経路が形成される。ＬＡＮ（Local Area Network）などのネットワークでは、ＯＳＩ（Open Systems Interconnection）参照モデルの第２層（Ｌ２：Layer 2）でデータを転送する中継装置（例えば、Ｌ２スイッチ）が利用され得る。ＯＳＩ参照モデルの第２層はデータリンク層とも呼ばれる。例えば、同第２層におけるデータ転送には、イーサネット（登録商標）と呼ばれる技術が用いられる。
【０００３】
ここで、ＯＳＩ参照モデルの第３層（ネットワーク層）におけるネットワークの識別情報（ネットワークアドレス）によって論理的に区分されたネットワークを、サブネットと呼ぶことがある。同一サブネット内でのデータ転送は、イーサネットを用いて行える。
【０００４】
サブネット内に、ある２つの中継装置を結ぶ複数の物理的な経路（Ｌ２ループ）が形成されていることがある。Ｌ２ループが存在すると、ある装置からブロードキャストされたイーサネットフレームがＬ２ループ内を繰り返し巡回してトラフィックを増大させる、ブロードキャストストームと呼ばれる障害を引き起こすおそれがある。
【０００５】
そこで、サブネットに属する複数の中継装置から、Ｌ２ループ箇所を特定することが考えられている。例えば、ネットワーク障害箇所検出装置を用いて、複数の異なる発ＭＡＣ（Media Access Control）アドレスのパケットをブロードキャストし、複数の中継装置それぞれから発ＭＡＣアドレス毎の学習ポートの情報を取得する提案がある。ネットワーク障害箇所検出装置は、取得された情報から複数の異なる発ＭＡＣアドレスの学習ポートが２つである中継装置を、Ｌ２ループ障害箇所であると判定する。
【０００６】
また、管理装置が、Ｌ２スイッチのポート毎に、ネットワーク構成に基づいて、ループトポロジの発生の危険指数（ＬＤ値）を導出し、当該ＬＤ値を用いて、ループトポロジを構成するポートのうち閉塞対象とするポートを決定する提案もある。
【０００７】
なお、Ｌ２ループ・ブロードキャストストームが発生した時にも、ループサブネット内のホスト同士、あるいはループサブネット内のホストとループサブネット外のホストの通信路を確保し、サブネット内の通信を可能にする提案がある。また、ロングサイズのブロードキャストパケットを連続的に送信することで、既に発生しているＬ２ループの負荷を低減させる提案もある。
【０００８】
更に、ＬＡＮスイッチのＦＤＢ（Forwarding DataBase）からスイッチ間の接続関係を推測・表示するシステムも考えられている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−１７４１８２号公報
【特許文献２】特開２００９−１３０４７６号公報
【特許文献３】特開２００６−３５２２６３号公報
【特許文献４】特開２００６−３５２２６２号公報
【非特許文献】
【００１０】
【非特許文献１】藤田俊輔、外４名、“Layer２ネットワーク構成情報推測システムの改良について”、［online］、2008年、大分大学、［2014年7月9日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｃｓ２．ｃｓｉｓ．ｏｉｔａ−ｕ．ａｃ．ｊｐ／ｐａｐｅｒ／ｌａｙｅｒ２ｐａｐｅｒ０３．ｐｄｆ＞
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ネットワークの管理において、中継装置間の物理的な結線の状況（物理トポロジ）を確認したいことがある（例えば、結線が設計通りであるかを確認する場合など）。確認のために、上記のように、情報処理装置を用いて、物理結線の情報（例えば、ＦＤＢなど）を各中継装置から収集することが考えられる。しかし、サブネット内にＬ２ループが発生している状態では、ブロードキャストストームの影響により、物理結線の情報を適切に収集することが困難であるという問題がある。
【００１２】
例えば、２つの中継装置を結ぶ物理的な経路を複数設けた後、ＳＴＰ（Spanning Tree Protocol）、リンクアグリゲーションまたはＶＬＡＮ（Virtual LAN）などの論理的な経路制御の設定を行う前の段階では、Ｌ２ループが発生するため物理トポロジの確認が難しい。また、論理的な経路制御の設定が行われていたとしても、誤った設定や誤った結線があるとＬ２ループが発生してしまい物理トポロジの確認が困難になる。
【００１３】
１つの側面では、本発明は、Ｌ２ループ状態が発生しているサブネットの物理結線の情報を収集できる物理結線情報収集プログラム、情報処理装置および物理結線情報収集方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
１つの態様では、複数のポートを有する中継装置を複数含むサブネットの物理結線の情報の収集に用いられる物理結線情報収集プログラムが提供される。この物理結線情報収集プログラムは、複数の中継装置のうちの何れか１つに接続されたコンピュータに、サブネット内でＬ２ループ状態を発生させる、４以上のポートが属する一組のポートを閉塞し、一組のポートを閉塞した状態で、物理結線の一部の情報を複数の中継装置から収集し、サブネット内でＬ２ループ状態を発生させる他の一組のポートを決定し、決定した他の一組のポートを閉塞する、処理を実行させる。
【００１５】
また、１つの態様では、複数のポートを有する中継装置を複数含むサブネットの物理結線の情報の収集に用いられ、複数の中継装置のうちの何れか１つに接続される情報処理装置が提供される。この情報処理装置は、通信部と演算部とを有する。通信部は、複数の中継装置との通信に用いられる。演算部は、サブネット内でＬ２ループ状態を発生させる、４以上のポートが属する一組のポートを閉塞し、一組のポートを閉塞した状態で、物理結線の一部の情報を複数の中継装置から収集し、サブネット内でＬ２ループ状態を発生させる他の一組のポートを決定し、決定した他の一組のポートを閉塞する。
【００１６】
また、１つの態様では、複数のポートを有する中継装置を複数含むサブネットの物理結線の情報の収集に用いられる物理結線情報収集方法が提供される。この物理結線情報収集方法では、複数の中継装置のうちの何れか１つに接続されたコンピュータが、サブネット内でＬ２ループ状態を発生させる、４以上のポートが属する一組のポートを閉塞し、一組のポートを閉塞した状態で、物理結線の一部の情報を複数の中継装置から収集し、サブネット内でＬ２ループ状態を発生させる他の一組のポートを決定し、決定した他の一組のポートを閉塞する。
【発明の効果】
【００１７】
１つの側面では、Ｌ２ループ状態が発生しているサブネットの物理結線の情報を収集できる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態の情報処理装置の例を示す図である。
【図２】第２の実施の形態のシステムの例を示す図である。
【図３】情報処理装置のハードウェア例を示す図である。
【図４】スイッチのハードウェア例を示す図である。
【図５】情報処理装置の機能例を示す図である。
【図６】ポート状態管理テーブルの例を示す図である。
【図７】ホストテーブルの例を示す図である。
【図８】ポートテーブルの例を示す図である。
【図９】リンクテーブルの例を示す図である。
【図１０】情報処理装置の処理の例を示すフローチャートである。
【図１１】部分結線情報収集処理の例を示すフローチャートである。
【図１２】Ｌ２ループ状態解消処理の例を示すフローチャートである。
【図１３】被疑ポートの例を示す図である。
【図１４】ポート切替処理の例を示すフローチャートである。
【図１５】ポート開放時の処理例を示す図である。
【図１６】マージ処理の例を示すフローチャートである。
【図１７】結線情報の収集処理の例を示す図である。
【図１８】結線情報の収集処理の例（続き）を示す図である。
【図１９】結線情報の収集処理の例（続き）を示す図である。
【図２０】他のシステム例（その１）を示す図である。
【図２１】他のシステム例（その１）における処理例を示す図である。
【図２２】他のシステム例（その１）における処理例（続き）を示す図である。
【図２３】他のシステム例（その１）における処理例（続き）を示す図である。
【図２４】他のシステム例（その１）における処理例（続き）を示す図である。
【図２５】他のシステム例（その２）を示す図である。
【図２６】他のシステム例（その２）における処理例を示す図である。
【図２７】他のシステム例（その２）における処理例（続き）を示す図である。
【図２８】他のシステム例（その２）における処理例（続き）を示す図である。
【図２９】他のシステム例（その２）における処理例（続き）を示す図である。
【図３０】他のシステム例（その２）における処理例（続き）を示す図である。
【図３１】他のシステム例（その２）における処理例（続き）を示す図である。
【図３２】ＭＡＣアドレス解決の例を示す図である。
【図３３】ＳＮＭＰ通信の例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置の例を示す図である。第１の実施の形態の情報処理システムは、情報処理装置１、中継装置２，３，４，５および端末装置６を含む。情報処理装置１は、第１の情報処理システムにおける各中継装置のポート間の物理結線の情報を取得する。情報処理装置１は、物理結線の情報を情報処理システムのユーザなどに提示することで、ユーザによる物理結線状況の把握を支援する。ここで、以下の説明において、中継装置２，３，４，５には、ＳＴＰ、リンクアグリゲーションおよびＶＬＡＮなどの論理的な経路制御の設定は行われていないものとする。
【００２０】
中継装置２，３，４，５の各ポートは、所定のケーブル（ＴＰ（Twisted Pair）ケーブルなど）を用いて相互に接続され、ネットワークＮ１を形成する。中継装置２は、ポート２ａ，２ｂ，２ｃを有する。中継装置３は、ポート３ａ，３ｂ，３ｃを有する。中継装置４は、ポート４ａ，４ｂ，４ｃを有する。中継装置５は、ポート５ａ，５ｂ，５ｃを有する。ポート２ａは、情報処理装置１と接続されている。ポート５ｃは端末装置６と接続されている。また、次のポート同士が接続されている。ポート２ｂ，３ａ。ポート２ｃ，３ｂ。ポート３ｃ，４ａ。ポート４ｂ，５ａ。ポート４ｃ，５ｂ。情報処理装置１および端末装置６は同じサブネットに属している。中継装置２，３，４，５は例えばＬ２スイッチである。
【００２１】
中継装置２は、中継装置３，４，５、情報処理装置１および端末装置６が有するＭＡＣアドレスと、ポート２ａ，２ｂ，２ｃとの対応関係を学習し、学習テーブル（ＭＡＣアドレステーブルやＦＤＢなどと呼ばれることもある）に登録する。中継装置３，４，５も、中継装置２と同様に、他の中継装置、情報処理装置１および端末装置６が有するＭＡＣアドレスと自身が有するポートとの対応関係を学習し、学習テーブルに登録する。情報処理装置１は、中継装置２，３，４，５が保持する学習テーブルの内容を、物理結線の情報として、中継装置２，３，４，５から収集する。
【００２２】
ここで、情報処理装置１は、情報処理装置１と中継装置２，３，４，５との間で正常な通信を行える場合に、中継装置２，３，４，５から適切に物理結線の情報を収集可能である。ところが、ネットワークＮ１の接続関係では、中継装置２，３の間、および、中継装置４，５の間でＬ２ループが形成されている。すなわち、中継装置２，３の間には、ポート２ｂ，３ａを結ぶ経路とポート２ｃ，３ｂを結ぶ経路との２つの経路が存在する。中継装置４，５の間には、ポート４ｂ，５ａを結ぶ経路とポート４ｃ，５ｂを結ぶ経路との２つの経路が存在する。
【００２３】
Ｌ２ループが発生していると、中継装置２，３，４，５の学習テーブルには、ブロードキャストストームの影響により、ＭＡＣアドレスとポートとの対応関係が誤って登録される（誤学習される）。例えば、情報処理装置１が所定のＩＰアドレス（例えば、端末装置６のＩＰアドレス）に対するＭＡＣアドレスを解決するためのＡＲＰ（Address Resolution Protocol）要求を送信することを考える。このＡＲＰ要求の宛先ＭＡＣアドレスはブロードキャストアドレス、送信元ＭＡＣアドレスは情報処理装置１のＭＡＣアドレスである。各中継装置は、ＡＲＰ要求の宛先ＭＡＣアドレスがブロードキャストアドレスであるので、当該ＡＲＰ要求を複製し、受信ポート以外の各ポートから送信する。すると、例えば、中継装置２では、情報処理装置１がポート２ａの先に接続されているにも関わらず、中継装置３側のポート２ｂ，２ｃの何れかでもＡＲＰ要求が受信される。
【００２４】
この場合、中継装置２は、情報処理装置１のＭＡＣアドレスをポート２ｂまたはポート２ｃに対応付けて学習してしまう。他の装置のＭＡＣアドレスも同様に誤学習される。例えば、特開２００６−３５２２６３号公報や特開２００６−３５２２６２号公報に開示の方法を用いて、各中継装置の学習テーブルを情報処理装置１に収集することが考えられる。しかし、誤学習された学習テーブルからは各中継装置のポート間の物理結線の状況を適正に把握することは難しい。
【００２５】
一方、Ｌ２ループ状態を抑制するＳＴＰやリンクアグリゲーションなどの論理的な経路制御の設定を行い、中継装置２，３，４，５により適正な学習テーブルを生成させた後に、学習テーブルを収集することも考えられる。しかし、この場合、一部の物理結線が学習テーブルに反映されなくなるため全体の結線状況を把握することが困難になる。また、論理的な経路制御の設定に誤りがあると結局Ｌ２ループが発生してしまい、ネットワークＮ１における各中継装置のポート間の物理結線の状況を適正に把握することは難しくなる。
【００２６】
そこで、情報処理装置１は、次のようにしてネットワークＮ１における物理結線の情報を収集する。情報処理装置１は、通信部１ａおよび演算部１ｂを有する。通信部１ａは、中継装置２，３，４，５との通信に用いられる通信インタフェースである。
【００２７】
演算部１ｂは、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。演算部１ｂはプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。
【００２８】
情報処理装置１は、演算部１ｂの処理に用いられるデータを記憶する、ＲＡＭ（Random Access Memory）などの揮発性記憶装置やＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置を備える（図示を省略）。
【００２９】
演算部１ｂは、サブネット内でＬ２ループ状態を発生させる一組のポートを閉塞する。「Ｌ２ループ状態を発生させる一組のポート」は、「Ｌ２ループ状態の要因となる一組のポート」ということもできる。中継装置２，３，４，５の例では、前述のように中継装置２，３の間および中継装置４，５の間にＬ２ループが形成されている。中継装置２，３の間の経路の何れか１つ、および、中継装置４，５の間の経路の何れか１つを利用不可とすれば、ネットワークＮ１におけるＬ２ループを解消し得る。
【００３０】
第１の実施の形態の例では、「Ｌ２ループ状態を発生させる一組のポート」は次の４種類である。第１の組は、ポート２ｂ，３ａ，４ｂ，５ａの組である。第２の組は、ポート２ｃ，３ｂ，４ｃ，５ｂの組である。第３の組は、ポート２ｂ，３ａ，４ｃ，５ｂの組である。第４の組は、ポート２ｃ，３ｂ，４ｂ，５ａの組である。第１〜第４の組の何れか１つを選択し、選択した組に属する全てのポートを閉塞すれば、ネットワークＮ１におけるＬ２ループを解消可能である。
【００３１】
例えば、演算部１ｂは、次のようにして上記組の何れかを特定し得る。具体的には、演算部１ｂは、ダミーの送信元ＭＡＣアドレスが設定されたイーサネットフレーム（単にフレームと称する）を情報処理装置１からブロードキャストで送信する。ダミーのＭＡＣアドレスとは、サブネット内に存在していないＭＡＣアドレスである。例えば、演算部１ｂは、サブネット内に存在していないＩＰアドレスを問い合わせ先とし、サブネット内に存在していないＭＡＣアドレスを送信元とするＡＲＰ要求を送信してもよい。このとき、演算部１ｂは、ダミーの送信元ＭＡＣアドレスを複数種類用いて、複数のフレームをブロードキャストする。
【００３２】
演算部１ｂは、例えばＳＮＭＰ（Simple Network Management Protocol）などを用いて中継装置２，３，４，５からそれぞれの学習テーブルを収集する。その際、Ｌ２ループにより、中継装置２，３，４，５では、情報処理装置１のＭＡＣアドレスが誤学習されている（適切なポートに対応付けられていない）可能性がある。また、ブロードキャストストームにより、中継装置２，３，４，５の通信負荷が高まっている可能性がある。そこで、演算部１ｂは、特開２００６−３５２２６３号公報に開示の方法を用いて、情報処理装置１のＭＡＣアドレスの各中継装置による誤学習を訂正し得る。また、演算部１ｂは、特開２００６−３５２２６２号公報に開示の方法を用いて、サブネット内の通信負荷を軽減し得る。演算部１ｂは、当該誤学習の訂正および通信負荷の軽減のための処理を行った上で、学習テーブルの収集を行える。
【００３３】
このとき、ループするフレームを送受信するポートをもつ中継装置の学習テーブルには、ダミーの複数種類の送信元ＭＡＣアドレスが複数のポートに対応付けて登録されることになる。ここで、以下ではループするフレームを送受信するポートを、Ｌ２ループ形成に関与し得るポートという意味で「被疑ポート」と称する。ある程度多種類のダミーＭＡＣアドレスを用意して送信元ＭＡＣアドレスとして利用すれば、常に何れかのダミーＭＡＣアドレスが被疑ポートに対応付けられるようにすることができる。
【００３４】
例えば、中継装置２について、ある時点で収集された学習テーブルを参照すると、複数種類のダミーＭＡＣアドレスのうち、第１のダミーＭＡＣアドレスがポート２ｂに対応付けられ、第２のダミーＭＡＣアドレスがポート２ｃに対応付けられる。すると、演算部１ｂは、ポート２ｂ，２ｃを被疑ポートと検出する。ネットワークＮ１の場合、演算部１ｂは、同様にしてポート３ａ，３ｂ，３ｃ，４ａ，４ｂ，４ｃ，５ａ，５ｂも、被疑ポートとして検出する。
【００３５】
複数の被疑ポートの一部を閉塞させることで、閉塞された被疑ポートを経由する一部の通信経路（パス）をダウンさせ、Ｌ２ループを解消し得る。ただし、被疑ポートの閉塞に用いる中継装置の選択を誤ると、情報処理装置１からの通信範囲が狭まるおそれがある。ネットワークＮ１の例の場合、被疑ポートを閉塞させる際に、中継装置４を用いてポート４ａをダウンさせてしまうと、情報処理装置１からの通信の到達範囲が狭まる（中継装置４と通信できなくなり、ポート４ａの開放を指示できなくなるため）。そこで、被疑ポートを閉塞させる中継装置を選択するために次のような選択基準を設ける。
【００３６】
すなわち、演算部１ｂは、（１）被疑ポートを複数もち、かつ、（２）情報処理装置１のＭＡＣアドレスを学習し得るポートが被疑ポートと異なる中継装置を選択する。演算部１ｂは、各中継装置の学習テーブルの収集を所定期間収集し、監視することで、各中継装置の学習テーブルが、（１）、（２）の基準を満たすか否かを判定し得る。例えば、演算部１ｂは、上記の基準を満たす中継装置として中継装置２を検出する。中継装置２は、（１）ポート２ｂ，２ｃの２つの被疑ポートをもち、かつ、（２）情報処理装置１のＭＡＣアドレスを被疑ポート２ｂ，２ｃとは異なるポート２ａで学習し得るからである。
【００３７】
したがって、まず、演算部１ｂは、ポート２ｂ，２ｃの何れかを閉塞させる。例えば、ポート番号の小さい方から閉塞させてもよいし、ポート番号の大きい方から閉塞させてもよい。例えば、演算部１ｂは、ポート２ｂを閉塞させると決定し、中継装置２にポート２ｂの閉塞を指示する。すると、中継装置２はポート２ｂを閉塞させる。そして、ポート２ｂおよびポート２ｂの先にあるポート３ａがリンクダウンする。この場合、ポート３ａも閉塞されたと考えることができる。
【００３８】
ポート２ｂ，３ａ間の経路が不通になった後、演算部１ｂは、ダミーの複数種類の送信元ＭＡＣアドレスを送信元とした複数のフレームを再度ブロードキャストする。この場合、演算部１ｂは、各中継装置の学習テーブルに基づいて、ポート４ｂ，４ｃ，５ａ，５ｃを被疑ポートとして検出することになる。そして、演算部１ｂは、上記の中継装置の選択基準により中継装置４を選択し、被疑ポートであるポート４ｂを閉塞させる。すると、ポート４ｂおよびポート４ｂの先にあるポート５ａがリンクダウンする。この場合、ポート５ａも閉塞されたと考えることができる。
【００３９】
ポート２ｂ，３ａ，４ｂ，５ａ（ポートの組Ｇ１とする）を閉塞させた状態では、ダミーの複数種類の送信元ＭＡＣアドレスは、各中継装置において単一のポートにより学習される。この場合、Ｌ２ループは解消されたことになる。ポートの組Ｇ１は、前述の「Ｌ２ループ状態を発生させる一組のポート」の第１の組に相当する。ネットワークＮ２は、ネットワークＮ１に対して、ポートの組Ｇ１を閉塞した状態を例示している。ポートの組Ｇ１を閉塞した状態であれば、Ｌ２ループが解消されているので、中継装置２，３，４，５は各装置のＭＡＣアドレスとポートとの対応関係を適正に学習し、学習テーブルに登録できる。
【００４０】
演算部１ｂは、当該一組のポートを閉塞した状態で、物理結線の一部分の情報を各中継装置から収集する。例えば、演算部１ｂは、ポートの組Ｇ１を閉塞した状態で、中継装置２，３，４，５の間の物理結線の一部分の情報（各中継装置の学習テーブル）を、中継装置２，３，４，５から収集する。このとき収集される物理結線の情報は、ポート２ａ，２ｃ，３ｂ，３ｃ，４ａ，４ｃ，５ｂ，５ｃの結線に関する情報（ネットワークＮ２の結線に相当する情報）であり、ポート２ｂ，３ａ，４ｂ，５ａの結線に関する情報は含まれない。
【００４１】
演算部１ｂは、サブネット内でＬ２ループ状態を発生させる他の一組のポートを決定する。演算部１ｂは、決定した他の一組のポートを閉塞する。
例えば、演算部１ｂは、ポートの組Ｇ１を選択した各ポートの次のポートを選択することで、「Ｌ２ループ状態を発生させる他の一組のポート」として、ポートの組Ｇ２を決定してもよい。すなわち、演算部１ｂは、中継装置２において選択したポート２ｂの逆のポートとしてポート２ｃを、中継装置４において選択したポート４ｂの逆のポートとしてポート４ｃを選択する。すると、ポート２ｃ，４ｃ、ポート２ｃに繋がるポート３ｂおよびポート４ｃに繋がるポート５ｂが、「Ｌ２ループ状態を発生させる他の一組のポート」として決定される。ポートの組Ｇ２は、前述の「Ｌ２ループ状態を発生させる一組のポート」の第２の組に相当する。演算部１ｂは、中継装置２にポート２ｂの開放を、中継装置４にポート４ｂの開放を指示することでポートの組Ｇ１を開放する。そして、演算部１ｂは、中継装置２にポート２ｃの閉塞を、中継装置４にポート４ｃの閉塞を指示することで、ポートの組Ｇ２を閉塞する。
【００４２】
あるいは、演算部１ｂは、閉塞させているポート２ｂ，３ａおよびポート４ｂ，５ａの閉塞を順に解除（開放）しながら、解除時のＬ２ループの発生状況に応じて、「Ｌ２ループ状態を発生させる他の一組のポート」を決定することも考えられる。具体的には、演算部１ｂは、ポート２ｂ，３ａを開放し、ダミーの複数種類の送信元ＭＡＣアドレスを送信元とした複数のフレームをブロードキャストする。この場合、演算部１ｂは、ポート２ｂ，３ａ，２ｃ，３ｂを被疑ポートと検出する。演算部１ｂは、そのうち、既に閉塞を行ったポート２ｂ，３ａ以外のポート２ｃ，３ｂを閉塞する。同様にして、ポート４ｂ，５ａを開放し、ポート４ｃ，５ｂを閉塞する。演算部１ｂは、このようにしてポートの組Ｇ２を閉塞することも考えられる。ネットワークＮ３は、ネットワークＮ１に対して、ポートの組Ｇ２を閉塞した状態を例示している。
【００４３】
情報処理装置１によれば、サブネット内でＬ２ループ状態を発生させる一組のポート２ｂ，３ａ，４ｂ，５ａが閉塞される。情報処理装置１により、一組のポート２ｂ，３ａ，４ｂ，５ａが閉塞された状態で、物理結線の一部分の情報が中継装置２，３，４，５から収集される。情報処理装置１により、サブネット内でＬ２ループ状態を発生させる他の一組のポート２ｃ，３ｂ，４ｃ，５ｂが決定され、閉塞される。これにより、Ｌ２ループ状態が発生しているサブネットの物理結線の情報を収集できる。
【００４４】
ここで、例えば、システム構築の現場では、中継装置間をケーブルで結線した後に、結線が設計通り行われているかを確認したいことがある。しかし、サブネット内にＬ２ループが発生している状態では、ブロードキャストストームの影響でＭＡＣアドレスが誤学習されており、物理結線の情報を把握することが困難であるという問題がある。
【００４５】
例えば、前述のように、２つの中継装置を結ぶ物理的な経路が複数あるとき、ＳＴＰ、リンクアグリゲーションまたはＶＬＡＮなどの論理的な経路制御の設定を行う前の段階では、Ｌ２ループが発生するため物理トポロジの確認が難しい。また、論理的な経路制御の設定が行われていたとしても、その設定が誤っているとＬ２ループが発生してしまい物理トポロジの確認が難しい。
【００４６】
そこで、情報処理装置１は、サブネット内の複数の中継装置のポート群に対し、Ｌ２ループを解消する複数の閉塞パターンを順次試しながら、中継装置間の物理結線の情報を部分的に収集していく。例えば、ポートの組Ｇ１を閉塞させた状態で、中継装置２，３，４，５は学習テーブルを作成し直す。すると、中継装置２，３，４，５の学習テーブルには、ポート２ｃ，３ｂ，３ｃ，４ａ，４ｃ，５ｂを介する通信経路についての情報が適正に反映される。このため、演算部１ｂは、このときの中継装置２，３，４，５の学習テーブルを、ポート２ａ，２ｃ，３ｂ，３ｃ，４ａ，４ｃ，５ｂの結線に関する情報（ネットワークＮ２の結線に相当する情報）として、中継装置２，３，４，５から収集可能である。
【００４７】
また、ポートの組Ｇ２を閉塞させた状態で、中継装置２，３，４，５は学習テーブルを作成し直す。すると、中継装置２，３，４，５の学習テーブルには、ポート２ｂ，３ａ，３ｃ，４ａ，４ｂ，５ａを介する通信経路についての情報が適正に反映される。このため、演算部１ｂは、このときの中継装置２，３，４，５の学習テーブルを、ポート２ａ，２ｂ，３ａ，３ｃ，４ａ，４ｂ，５ｃの結線に関する情報（ネットワークＮ３の結線に相当する情報）として、中継装置２，３，４，５から収集可能である。そして、演算部１ｂは、収集した各情報をマージすることで、中継装置２，３，４，５間の全ての物理結線を含む情報（ネットワークＮ１の結線に相当する情報）を取得し得る。
【００４８】
例えば、演算部１ｂは、ポート２ｃ，３ｂを開放してポート２ｂ，３ａを閉塞した状態で中継装置２，３の間のパスを検出し、ポート２ｂ，３ａを開放してポート２ｃ，３ｂを閉塞した状態でも中継装置２，３の間のパスを検出する。すると、演算部１ｂは、中継装置２，３の間に、ポート２ｂ，３ａを繋ぐパスおよびポート２ｃ，３ｂを繋ぐパスが存在することを検出できる。演算部１ｂは、中継装置４，５の間に、ポート４ｂ，５ａを繋ぐパスおよびポート４ｃ，５ｂを繋ぐパスが存在することを検出できる。
【００４９】
これにより、例えば、２つの中継装置を結ぶ物理的な経路を複数設けた後、ＳＴＰ、リンクアグリゲーションまたはＶＬＡＮなどの論理的な経路制御の設定を行う前の段階でも、サブネットの物理結線の情報を収集可能となる。また、例えば、論理的な経路制御の設定内容が誤っている、ポート間が誤って結線されているなどの理由により、Ｌ２ループが発生していても、サブネットの物理結線の情報を収集可能となる。
【００５０】
なお、ポートの組Ｇ１，Ｇ２（第１，第２の組）を順に（順番は任意でよい）閉塞させていくものとしたが、演算部１ｂは、ポートの上記第３，第４の組を順に（順番は任意でよい）閉塞させて、物理結線の情報を部分的に収集していってもよい。あるいは、演算部１ｂは、閉塞候補のポートの全ての組（本例では第１，第２，第３，第４の組）を順に（順番は任意でよい）閉塞させて、物理結線の情報を部分的に収集していってもよい。
【００５１】
［第２の実施の形態］
図２は、第２の実施の形態のシステムの例を示す図である。第２の実施の形態のシステムは、情報処理装置１００、スイッチ２００，２００ａおよび端末装置２１，２２，２３を含む。
【００５２】
情報処理装置１００は、スイッチ２００，２００ａの間の物理結線の情報を収集し、スイッチ２００，２００ａの物理結線の状況をシステムの管理者に提示するコンピュータである。情報処理装置１００は、スイッチ２００に接続されている。
【００５３】
スイッチ２００，２００ａは、情報処理装置１００と端末装置２１，２２，２３との間や端末装置２１，２２，２３同士の通信を、イーサネットを用いて中継するＬ２スイッチである。スイッチ２００，２００ａは、ＳＮＭＰを利用可能である。ここで、第２の実施の形態のシステムに含まれる全ての装置は、同一のサブネットに属している。一例として、当該サブネットのネットワークアドレスを“１９２．１６８．１．０／２４”とする。スイッチ２００のＩＰアドレスは“１９２．１６８．１．１”である。スイッチ２００ａのＩＰアドレスは“１９２．１６８．１．２”である。
【００５４】
スイッチ２００，２００ａの間は、ＴＰケーブルや光ケーブルなどの所定のケーブルを２本用いて結線されている。パスＲ１は、スイッチ２００，２００ａと１本目のケーブルによって形成される物理的なパスである。パスＲ２は、スイッチ２００，２００ａと２本目のケーブルによって形成される物理的なパスである。以下の説明において、スイッチ２００，２００ａには、ＳＴＰ、リンクアグリゲーションおよびＶＬＡＮなどの論理的な経路制御の設定は行われていないものとする。すなわち、スイッチ２００，２００ａの間でＬ２ループが発生している。
【００５５】
端末装置２１，２２，２３は、ユーザによって利用されるクライアントコンピュータである。端末装置２１は、スイッチ２００に接続されている。端末装置２２は、スイッチ２００ａに接続されている。端末装置２３は、スイッチ２００ａに接続されている。
【００５６】
図３は、情報処理装置のハードウェア例を示す図である。情報処理装置１００は、プロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、読み取り装置１０６および通信インタフェース１０７を有する。各ユニットは情報処理装置１００のバスに接続されている。
【００５７】
プロセッサ１０１は、情報処理装置１００の情報処理を制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００５８】
ＲＡＭ１０２は、情報処理装置１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００５９】
ＨＤＤ１０３は、情報処理装置１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。情報処理装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００６０】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、情報処理装置１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００６１】
入力信号処理部１０５は、情報処理装置１００に接続された入力デバイス１２から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス１２としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００６２】
読み取り装置１０６は、記録媒体１３に記録されたプログラムやデータを読み取る装置である。記録媒体１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１３として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置１０６は、例えば、プロセッサ１０１からの命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００６３】
通信インタフェース１０７は、スイッチ２００に接続されており、スイッチ２００を介して他の装置と通信を行う。
図４は、スイッチのハードウェア例を示す図である。スイッチ２００は、プロセッサ２０１、ＲＡＭ２０２、ＲＯＭ２０３、スイッチ部２０４およびポートＰ１１，Ｐ１２，Ｐ１３，Ｐ１４を有する。
【００６４】
プロセッサ２０１は、スイッチ２００の情報処理を制御する。プロセッサ２０１は、マルチプロセッサであってもよい。プロセッサ２０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ２０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００６５】
ＲＡＭ２０２は、スイッチ２００の主記憶装置である。ＲＡＭ２０２は、プロセッサ２０１に実行させるファームウェアのプログラムなどの少なくとも一部を一時的に記憶する。また、ＲＡＭ２０２は、プロセッサ２０１による処理に用いる各種データを記憶する。
【００６６】
ＲＯＭ２０３は、ファームウェアのプログラムやデータを予め記憶している。ＲＯＭ２０３は、フラッシュメモリなど、書き換え可能な不揮発性メモリであってもよい。ＲＯＭ２０３に記憶されたプログラムやデータは、プロセッサ２０１の処理に用いられる。
【００６７】
スイッチ部２０４は、ポートＰ１１，Ｐ１２，Ｐ１３，Ｐ１４の何れかで受信されたフレームを、他のポートから送信する。ここで、ＯＳＩ参照モデルの第２層で用いられるＰＤＵ（Protocol Data Unit）をフレームと呼ぶことがある。また、同第３層で用いられるＰＤＵをパケットと呼ぶことがある。ポートＰ１１は、スイッチ２００ａのポートＰ２１と所定のケーブルにより直接接続されている。ポートＰ１２は、情報処理装置１００と所定のケーブルにより直接接続されている。ポートＰ１３は、スイッチ２００ａのポートＰ２２と所定のケーブルにより直接接続されている。ポートＰ１４は、端末装置２１と所定のケーブルにより直接接続されている。
【００６８】
ポートＰ１１，Ｐ１２，Ｐ１３，Ｐ１４のポート番号（同一スイッチ内でポートを一意に識別する番号）は次の通りである。ポートＰ１１のポート番号は“１”である。ポートＰ１２のポート番号は“２”である。ポートＰ１３のポート番号は“３”である。ポートＰ１４のポート番号は“４”である。
【００６９】
スイッチ２００ａは、プロセッサ２０１ａ、ＲＡＭ２０２ａ、ＲＯＭ２０３ａ、スイッチ部２０４ａおよびポートＰ２１，Ｐ２２，Ｐ２３，Ｐ２４を有する。スイッチ２００ａの各ユニットは、スイッチ２００の同名の各ユニットと同様である。
【００７０】
ポートＰ２１は、スイッチ２００のポートＰ１１と所定のケーブルにより直接接続されている。ポートＰ２２は、スイッチ２００のポートＰ１３と所定のケーブルにより直接接続されている。ポートＰ２３は、端末装置２２と所定のケーブルにより直接接続されている。ポートＰ２４は、端末装置２３と所定のケーブルにより直接接続されている。
【００７１】
ポートＰ２１，Ｐ２２，Ｐ２３，Ｐ２４のポート番号は次の通りである。ポートＰ２１のポート番号は“１”である。ポートＰ２２のポート番号は“２”である。ポートＰ２３のポート番号は“３”である。ポートＰ２４のポート番号は“４”である。
【００７２】
図５は、情報処理装置の機能例を示す図である。情報処理装置１００は、記憶部１１０、収集部１２０および結線検出部１３０を有する。記憶部１１０は、ＲＡＭ１０２やＨＤＤ１０３に確保された記憶領域を用いて実現され得る。収集部１２０および結線検出部１３０は、プロセッサ１０１がプログラムを実行することで実現され得る。
【００７３】
記憶部１１０は、収集部１２０および結線検出部１３０の処理に用いられる各種の情報を記憶する。例えば、記憶部１１０は、物理結線の情報（結線情報）の収集対象とするサブネットのネットワークアドレス（本例では、“１９２．１６８．１．０／２４”とする）の情報を記憶する。記憶部１１０は、ＳＮＭＰにより各種情報を取得する際に利用されるＳＮＭＰコミュニティ名などの情報を記憶する。
【００７４】
記憶部１１０は、スイッチ２００，２００ａから取得されたＭＡＣアドレステーブルを記憶する。記憶部１１０は、装置間の物理結線に関する情報やスイッチ２００，２００ａが備えるポートの閉塞状態を管理するための情報などを記憶する。
【００７５】
収集部１２０は、記憶部１１０に記憶された情報に基づいて、スイッチ２００，２００ａからＭＡＣアドレステーブルなどの情報を収集し、記憶部１１０に格納する。収集部１２０は、ＳＮＭＰを用いてスイッチ２００，２００ａから情報を収集し得る。例えば、収集部１２０はＳＮＭＰマネージャとして機能し得る。スイッチ２００，２００ａはＳＮＭＰエージェントとして機能し得る。収集部１２０は、ＭＡＣアドレステーブルを要求するＳＮＭＰリクエストを送信することで、スイッチ２００，２００ａからＭＡＣアドレステーブルを収集し得る。
【００７６】
収集部１２０がＭＡＣアドレステーブルを収集しようとするとき、スイッチ２００，２００ａ間でＬ２ループが発生し、情報処理装置１００のＭＡＣアドレスが誤学習されていたり、通信負荷が高まっていたりする可能性がある。そこで、収集部１２０は、特開２００６−３５２２６２号公報や特開２００６−３５２２６３号公報に開示の方法を用いることができる。
【００７７】
例えば、収集部１２０は、特開２００６−３５２２６２号公報に開示の方法を用いて、Ｌ２ループによる通信負荷を軽減し得る。すなわち、収集部１２０は、ブロードキャストＭＡＣアドレスあるいはマルチキャストＭＡＣアドレスを宛先とする、Ｌ２ループを生じたフレームよりも長いロングサイズのフレームをサブネット内に連続して送信する。これにより、Ｌ２ループ内で転送されるフレーム数を低減させ、Ｌ２ループによる通信負荷を軽減し得る。
【００７８】
また、収集部１２０は、特開２００６−３５２２６３号公報（例えば、第１〜第３実施例）に開示の方法を用いて、スイッチ２００，２００ａによりＭＡＣアドレスが誤学習された状態を訂正し得る。例えば、収集部１２０は、ブロードキャストＭＡＣアドレスまたはサブネットに実在しないＭＡＣアドレスを宛先とし、情報処理装置１００のＭＡＣアドレス以外のＭＡＣアドレスを送信元とするフレームを連続して送信する。すると、情報処理装置１００のＭＡＣアドレスの誤学習の原因となるフレーム（送信元ＭＡＣアドレスが情報処理装置１００のＭＡＣアドレスであるフレーム）が、スイッチ２００，２００ａにおけるキュー溢れにより廃棄される。その結果、当該誤学習の原因となるフレームがスイッチ２００，２００ａ内をループする状態を抑制し得る。こうして、情報処理装置１００のＭＡＣアドレスが、スイッチ２００，２００ａにより連続して誤学習される状態が解消される。そして、情報処理装置１００が次に他の装置とユニキャストの通信を行う際に、情報処理装置１００のＭＡＣアドレスをスイッチ２００，２００ａに正しく学習させ、情報処理装置１００とスイッチ２００，２００ａとの間のＳＮＭＰなどの通信を可能にし得る。
【００７９】
更に、収集部１２０は、サブネットに存在する各スイッチのＭＡＣアドレスを認識していなくても、特開２００６−３５２２６３号公報（例えば、第６実施例）に開示の方法を用いて、各スイッチのＭＡＣアドレスを取得し得る。例えば、収集部１２０は、サブネットに属するＩＰアドレスを１つ選択し、当該ＩＰアドレスを宛先、情報処理装置１００のＭＡＣアドレスおよびＩＰアドレスを送信元としたＡＲＰ要求を送信する。一例として、ＡＲＰ要求の宛先ＩＰアドレスが、端末装置２２のＩＰアドレスである場合を考える。
【００８０】
ＡＲＰ要求の宛先ＭＡＣアドレスは、ブロードキャストアドレスであるため、ＡＲＰ要求はスイッチ２００，２００ａ間をループする。端末装置２２は、ＡＲＰ要求を受信するたびに、ＡＲＰ応答（情報処理装置１００のＭＡＣアドレスおよびＩＰアドレスを宛先としたユニキャストの応答）を送信する。ただし、ＡＲＰ要求がループされることで、情報処理装置１００のＭＡＣアドレスがスイッチ２００，２００ａにより誤学習されている。このため、ＡＲＰ応答はスイッチ２００，２００ａ間をループし、情報処理装置１００まで到達しない可能性がある。
【００８１】
通常、ブロードキャストフレーム（ＡＲＰ要求）とは逆方向に、ユニキャストフレーム（ＡＲＰ応答）はループする。収集部１２０は、例えば、サブネット内に実在しないＭＡＣアドレス（ＭＸとする）を送信元としたブロードキャストフレームを、大量に送信することで、ＡＲＰ要求をループから消滅させる（ＡＲＰ応答のループは残る）。続いて、収集部１２０は、送信元ＭＡＣアドレスが情報処理装置１００のＭＡＣアドレスであり、宛先ＭＡＣアドレスがＭＸである任意のＭＡＣフレームを送信する。すると、スイッチ２００，２００ａによる情報処理装置１００のＭＡＣアドレスの誤学習が一時的に訂正される。その結果、ループしていたスイッチ２００ａのＡＲＰ応答が、情報処理装置１００に向かってフォワードされる。こうして、収集部１２０は、スイッチ２００ａのＭＡＣアドレスを取得できる。収集部１２０は、サブネットのネットワークアドレスに属する他のＩＰアドレスに対しても、同様の処理を行うことで、他のＩＰアドレスに対応するＭＡＣアドレスを解決できる。
【００８２】
収集部１２０は、スイッチ２００，２００ａにおいてＬ２ループが発生していたとしても、これらの処理を用いて、スイッチ２００，２００ａのＭＡＣアドレスを解決し得る。また、収集部１２０は、ＳＮＭＰを用いてスイッチ２００，２００ａからＭＡＣアドレステーブルを収集し得る。
【００８３】
収集部１２０は、収集されたスイッチ２００，２００ａのＭＡＣアドレステーブルに基づいて、被疑ポートの検出を行う。被疑ポートとは、スイッチ間でＬ２ループが発生している場合に、ループするフレームの送受信に使用されるポートである。収集部１２０は、特開２００７−１７４１８２号公報に開示の方法を用いて、被疑ポートの検出を行える。
【００８４】
例えば、収集部１２０は、複数種類のダミーＭＡＣアドレスを用意する。ダミーＭＡＣアドレスは、サブネット内に存在していないＭＡＣアドレスである。ダミーＭＡＣアドレスは、サブネット内で使用されないことが明らかなＭＡＣアドレスと考えてもよい。
【００８５】
収集部１２０は、ダミーＭＡＣアドレスを送信元とするフレームを、ブロードキャストで複数回送信する。例えば、収集部１２０は、毎回、何れかのダミーＭＡＣアドレスをランダムに選択し、選択したダミーＭＡＣアドレスを送信元とするフレームを、ブロードキャストで送信する。そして、収集部１２０は、スイッチ２００，２００ａそれぞれのＭＡＣアドレステーブルを収集する。収集部１２０は、収集したＭＡＣアドレステーブルを参照し、ダミーＭＡＣアドレスが対応付けられたポートを被疑ポートとする。収集部１２０は、ある程度多種類のダミーＭＡＣアドレスをブロードキャストフレームの送信元ＭＡＣアドレスとして利用することで、常に何れかのダミーＭＡＣアドレスが各被疑ポートに対応付けられるようにすることができる。
【００８６】
収集部１２０は、Ｌ２ループ状態が解消されるように、閉塞対象とする被疑ポートの組を特定する。Ｌ２ループ状態が解消された状態では、スイッチ２００，２００ａは、適正なＭＡＣアドレステーブルを生成できる。このため、収集部１２０は、Ｌ２ループ状態が解消された状態で、ＭＡＣアドレステーブルをスイッチ２００，２００ａから収集することで、物理結線の情報を適切に把握できる。
【００８７】
収集部１２０は、被疑ポートの複数の閉塞パターンを順次試しながら、スイッチ２００，２００ａからＭＡＣアドレステーブルを収集していき、記憶部１１０に格納する。Ｌ２ループ状態を解消後に、スイッチ２００により作成されるＭＡＣアドレステーブルと、スイッチ２００ａにより作成されるＭＡＣアドレステーブルとの組は、物理的な結線の状況が適正に反映された情報となる。このため、当該ＭＡＣアドレステーブルの組を、結線情報（システム全体の結線のうちの一部の結線情報）と呼ぶことができる。ここで、最終的に取得されるシステム全体の結線情報を指して「全体結線情報」、全体結線情報のうちの一部の結線情報を指して「部分結線情報」と称する。収集部１２０が、スイッチ２００，２００ａから収集できる結線情報は、被疑ポートが閉塞された状態で作成されたものなので、部分結線情報である。
【００８８】
結線検出部１３０は、スイッチ２００，２００ａにより収集された複数の部分結線情報をマージすることで、全体結線情報を生成する。例えば、結線検出部１３０は、文献“Layer２ネットワーク構成情報推測システムの改良について”（藤田俊介、外４名著、2008年、大分大学）に開示の方法を用いて、スイッチ２００，２００ａにおけるポート間の接続関係の一部を、部分結線情報に基づいて検出できる。ただし、１つの部分結線情報（ある被疑ポートの組を閉塞して作成されたＭＡＣアドレステーブルの組）では、スイッチ２００，２００ａ間の一部の結線を検出できるが、閉塞された被疑ポートに関する他の一部の結線を検出できない。そこで、結線検出部１３０は、他の部分結線情報（別の被疑ポートの組を閉塞して作成されたＭＡＣアドレステーブルの組）を参照して、当該他の一部の結線の情報を補完することで、全体結線情報を生成する。
【００８９】
図６は、ポート状態管理テーブルの例を示す図である。ポート状態管理テーブル１１１は、収集部１２０によって生成され、記憶部１１０に格納される。ポート状態管理テーブル１１１は、スイッチのＩＰアドレス、ポート番号、ポート開閉状態、切替実行済フラグおよび切替先ポート番号の項目を含む。
【００９０】
スイッチのＩＰアドレスの項目には、スイッチのＩＰアドレスが登録される。ポート番号の項目には、当該スイッチが有するポートのポート番号が登録される。ポート開閉状態の項目には、ケーブルが接続されているポートの開放または閉塞の状態を示す情報が登録される。切替実行済フラグの項目には、閉塞から開放、または、開放から閉塞の切替を行ったか否かを示す情報が登録される。“未実行”は切替未実行を示す。また、切替実行済の場合は、“実行済”という情報が切替実行済フラグの項目に登録される。切替先ポート番号の項目には、切替先ポートのポート番号が登録される。切替先ポートとは、当該エントリで示されるポートを開放状態にしたときに、同じスイッチ上で当該ポートとともに被疑ポートとして検出されるポートである。切替先ポートが未定の場合、切替先ポート番号の項目には“未定”という情報が登録される。
【００９１】
例えば、ポート状態管理テーブル１１１には、スイッチのＩＰアドレスが“１９２．１６８．１．１”、ポート番号が“１”、ポート開閉状態が“開放”、切替実行済フラグが“未実行”、切替先ポート番号が“未定”という情報が登録される。これは、スイッチ２００のポートＰ１１が開放状態となっており、開放状態から閉塞状態への切替が未だ実行されていないこと、切替先ポート番号が未定であることを示す。
【００９２】
また、ポート状態管理テーブル１１１には、スイッチのＩＰアドレスが“１９２．１６８．１．１”、ポート番号が“３”、ポート開放状態が“閉塞”、切替実行済フラグが“未実行”、切替先ポート番号が“未定”という情報が登録される。これは、スイッチ２００のポートＰ１３が閉塞状態となっており、閉塞状態から開放状態への切替が未だ実行されていないこと、切替先ポート番号が未定であることを示す。
【００９３】
なお、切替実行済フラグのデフォルト値は、“未実行”である。切替先ポート番号のデフォルト値は“未定”である。
図７は、ホストテーブルの例を示す図である。ホストテーブル１１２は、収集部１２０によって生成され、記憶部１１０に格納される。ホストテーブル１１２は、装置名、ＭＡＣアドレスおよびＩＰアドレスの項目を含む。装置名の項目には、装置の名称が登録される。ＭＡＣアドレスの項目には、当該装置のＭＡＣアドレスが登録される。ＩＰアドレスの項目には、当該装置のＩＰアドレスが登録される。
【００９４】
例えば、ホストテーブル１１２には、装置名が“ＰＣ１”、ＭＡＣアドレスが“ＭＰ”、ＩＰアドレスが“１９２．１６８．１．１０”という情報が登録される。これは、装置名“ＰＣ１”の装置によって保持されるＭＡＣアドレスが“ＭＰ”、ＩＰアドレスが“１９２．１６８．１．１０”であることを示す。ここで、“ＰＣ１”は、情報処理装置１００の装置名である。ＭＡＣアドレス“ＭＰ”は、情報処理装置１００のＭＡＣアドレスである。ＩＰアドレス“１９２．１６８．１．１０”は、情報処理装置１００のＩＰアドレスである。
【００９５】
また、装置名“ＳＷ１”は、スイッチ２００の装置名である。ＭＡＣアドレス“ＭＱ”は、スイッチ２００のＭＡＣアドレスである。装置名“ＳＷ２”は、スイッチ２００ａの装置名である。ＭＡＣアドレス“ＭＲ”は、スイッチ２００ａのＭＡＣアドレスである。
【００９６】
図８は、ポートテーブルの例を示す図である。ポートテーブル１１３は、収集部１２０によって生成され、記憶部１１０に格納される。ポートテーブル１１３は、ポート識別子、装置名およびポート番号の項目を含む。
【００９７】
ポート識別子の項目には、サブネット内でポートを識別するためのポート識別子が登録される。装置名の項目には、装置の名称が登録される。ポート番号の項目には、当該装置が有するポートのポート番号が登録される。
【００９８】
例えば、ポートテーブル１１３には、ポート識別子が“ＰＣ１−ｐ１”、装置名が“ＰＣ１”、ポート番号が“１”という情報が登録される。これは、ポート識別子“ＰＣ１−ｐ１”で識別されるポートが、情報処理装置１００のポート番号“１”のポートであることを示す。
【００９９】
同様に、ポートテーブル１１３によれば、例えば、ポート識別子“ＳＷ１−ｐ１”で識別されるポートは、スイッチ２００のポート番号“１”のポートＰ１１である。ポート識別子“ＳＷ１−ｐ２”で識別されるポートは、スイッチ２００のポート番号“２”のポートＰ１２である。他のポート識別子についても同様である。
【０１００】
図９は、リンクテーブルの例を示す図である。リンクテーブル１１４は、結線検出部１３０によって部分結線情報に基づいて作成され、記憶部１１０に格納される。リンクテーブル１１４は、ポート識別子（１）およびポート識別子（２）の項目を含む。ポート識別子（１）の項目には、第１のポート識別子が登録される。ポート識別子（２）の項目には、第１のポート識別と直接接続されていると判断された第２のポート識別子が登録される。
【０１０１】
例えば、リンクテーブル１１４には、ポート識別子（１）が“ＳＷ１−ｐ１”、ポート識別子（２）が“ＳＷ２−ｐ１”という情報が登録される。これは、スイッチ２００のポート番号“１”であるポートＰ１１と、スイッチ２００ａのポート番号“１”であるポートＰ２１とが、ケーブルにより直接接続されていることを示す。他のポートの組についても同様である。
【０１０２】
なお、ポート識別子（１）およびポート識別子（２）に登録されたポート識別子の組は、登録する項目を逆にしても、同じ意味である。したがって、ポート識別子（１）が“ＳＷ１−ｐ１”、ポート識別子（２）が“ＳＷ２−ｐ１”という情報が登録されている場合、ポート識別子（１）が“ＳＷ２−ｐ１”、ポート識別子（２）が“ＳＷ１−ｐ１”という情報が重複して登録されることはない。
【０１０３】
図１０は、情報処理装置の処理の例を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
（ステップＳ１）収集部１２０は、結線情報の収集対象とするサブネットのネットワークアドレス（“１９２．１６８．１．０／２４”）や、ＳＮＭＰコミュニティ名などの情報の入力を受け付けて、結線収集対象情報を生成し、記憶部１１０に格納する。例えば、収集部１２０は、ユーザによる各情報の入力を許容してもよいし、所定のデータ形式で各情報を記述した設定ファイルの入力を許容してもよい。結線収集対象情報は、結線情報の収集対象とするサブネットのネットワークアドレスやＳＮＭＰコミュニティ名などの情報を含む。
【０１０４】
（ステップＳ２）収集部１２０は、被疑ポートを検出するために、スイッチ２００，２００ａからＳＮＭＰを用いてＭＡＣアドレステーブルを収集する。このとき、収集部１２０は、前述のように、特開２００６−３５２２６２号公報や特開２００６−３５２２６３号公報に開示の方法を利用し得る。収集部１２０は、収集したＭＡＣアドレステーブルに基づいて、被疑ポートの検出および被疑ポートの閉塞を行い、スイッチ２００，２００ａでＭＡＣアドレスが誤学習された状態を解消する。その上で、収集部１２０は、スイッチ２００，２００ａのＭＡＣアドレステーブルの組（部分結線情報）の収集を行う。収集部１２０は、閉塞対象の被疑ポートの閉塞パターンを変更しながら、複数の部分結線情報を収集し、記憶部１１０に格納する。処理の詳細については後述する。
【０１０５】
（ステップＳ３）結線検出部１３０は、記憶部１１０を参照して、収集部１２０が収集した複数の部分結線情報をマージすることで、全体結線情報を生成する。処理の詳細については後述する。
【０１０６】
（ステップＳ４）結線検出部１３０は、ステップＳ３で生成した全体結線情報に基づいて、システム全体の物理的な結線状況を示す画像情報を生成し、ディスプレイ１１に出力する。ディスプレイ１１は、当該画像情報に対応する画像を表示する。
【０１０７】
図１１は、部分結線情報収集処理の例を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。図１１の手順は図１０のステップＳ２に相当する。
【０１０８】
（ステップＳ１１）収集部１２０は、記憶部１１０に記憶された結線収集対象情報を読み込み、結線情報の収集対象とするサブネットのネットワークアドレス（“１９２．１６８．１．０／２４”）およびＳＮＭＰコミュニティ名などの情報を取得する。
【０１０９】
（ステップＳ１２）収集部１２０は、ＳＮＭＰを用いて、スイッチ２００，２００ａからＭＡＣアドレステーブルを収集し、収集したＭＡＣアドレステーブルに基づいて、Ｌ２ループ状態の解消処理を実行する。前述のように、収集部１２０は、特開２００６−３５２２６２号公報や特開２００６−３５２２６３号公報に開示の方法を利用することで、各装置のＭＡＣアドレスの解決や、各装置からのＭＡＣアドレステーブルの取得などを行える。なお、収集部１２０は、ＭＡＣアドレステーブルの取得前に実行するＡＲＰ通信や収集したＭＡＣアドレステーブルに基づいて、ポート状態管理テーブル１１１、ホストテーブル１１２およびポートテーブル１１３を生成し、記憶部１１０に格納する。
【０１１０】
（ステップＳ１３）収集部１２０は、Ｌ２ループを解消した状態を維持して、スイッチ２００，２００ａのＭＡＣアドレステーブルの組（部分結線情報）の収集を行い、各ＭＡＣアドレステーブルをスイッチの装置名に対応付けて記憶部１１０に格納する。収集部１２０は、ここで収集されたＭＡＣアドレステーブルの組を１つの部分結線情報として管理する。ＭＡＣアドレステーブルをスイッチから受信するときのＳＮＭＰ応答には、送信元のスイッチのＭＡＣアドレスおよびＩＰアドレスが含まれる。このため、収集部１２０は、ＳＮＭＰ応答に含まれるＭＡＣアドレスまたはＩＰアドレスとホストテーブル１１２とに基づいて、ＭＡＣアドレステーブルの送信元のスイッチの装置名を特定できる。
【０１１１】
（ステップＳ１４）収集部１２０は、通信が到達可能な範囲におけるスイッチからポート状態に関する情報をＳＮＭＰにより収集し、ポート状態管理テーブル１１１に登録する。収集部１２０は、元々ケーブルが接続されていないポートについてはポート状態管理テーブル１１１に登録しなくてよい。後述するように、ステップＳ１２の処理により、通信が到達可能なＩＰアドレスをもつ装置の情報がホストテーブル１１２に追加されていく。収集部１２０は、ホストテーブル１１２には登録されているが、ポート状態管理テーブル１１１には未登録であるＩＰアドレスをもつスイッチから、ポート状態に関する情報の収集を行う。ポート状態管理テーブル１１１に登録済のＩＰアドレスをもつスイッチからは、ポート状態に関する情報を収集しなくてよい。なお、ホストテーブル１１２に登録された全てのスイッチのＩＰアドレスが、ポート状態管理テーブル１１１に登録済であれば、ステップＳ１４をスキップしてよい。
【０１１２】
（ステップＳ１５）収集部１２０は、ポート状態管理テーブル１１１を参照して、閉塞かつ切替未実行のポートがあるか否かを判定する。閉塞かつ切替未実行のポートがある場合、処理をステップＳ１６に進める。閉塞かつ切替未実行のポートがない場合、処理をステップＳ１７に進める。
【０１１３】
（ステップＳ１６）収集部１２０は、ポート切替処理を実行する。収集部１２０は、現在閉塞している被疑ポートを開放し、当該被疑ポートに対応する他の被疑ポートを閉塞させる（ポート切替）。そして、処理をステップＳ１２に進める。
【０１１４】
（ステップＳ１７）結線検出部１３０は、ポート状態管理テーブル１１１を参照して、単一スイッチ内での結線検出を行う（単一スイッチの２つの被疑ポート同士がケーブルで直接接続されていることによって発生しているＬ２ループを検出する）。具体的には、結線検出部１３０は、ポート状態管理テーブル１１１において切替先ポートで関連づけられたポートのペアのうち、部分結線情報において他のスイッチの何れのポートとも接続されていないペアを、単一スイッチ内で結線されていると判断する。結線検出部１３０は、単一スイッチ内での結線検出結果を、記憶部１１０に保存する。単一スイッチ内での結線検出結果は、単一スイッチ内で互いに接続されているポート識別子のペア（または、スイッチの装置名に対応付けられたポート番号のペア）を示す情報である。
【０１１５】
図１２は、Ｌ２ループ状態解消処理の例を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。図１２の手順は、図１１のステップＳ１２に相当する。
【０１１６】
（ステップＳ２１）収集部１２０は、Ｌ２ループ状態が発生しているか否かを判定する。Ｌ２ループ状態が発生している場合、処理をステップＳ２２に進める。Ｌ２ループ状態が発生していない場合、処理を終了する。例えば、収集部１２０は、Ｌ２ループ状態が発生しているか否かを、任意のフレームを１回以上ブロードキャスト送信することで確認できる。収集部１２０は、当該ブロードキャストフレームが情報処理装置１００で受信されれば、Ｌ２ループ状態が発生していると判定する。収集部１２０は、当該ブロードキャストフレームが情報処理装置１００で受信されなければ、Ｌ２ループ状態が発生していないと判定する。
【０１１７】
（ステップＳ２２）収集部１２０は、ＡＲＰを用いて、サブネット内の装置を検出する。例えば、収集部１２０は、サブネットのネットワークアドレスに属するＩＰアドレスを１つ選択し、当該ＩＰアドレスを問い合わせ先とするＡＲＰ要求をブロードキャストで送信する。収集部１２０は、特開２００６−３５２２６３号公報に開示の方法を用いてＡＲＰ応答を受信できれば、当該ＩＰアドレスおよびＭＡＣアドレスをもつ装置がサブネット内に存在することを検出できる。収集部１２０は、ＡＲＰ通信で得たＭＡＣアドレスおよびＩＰアドレスに対応付けて各装置に識別子を付与し、ホストテーブル１１２に新規エントリを追加する。なお、ステップＳ２２ではサブネット内に存在する全ての装置を一度に検出できなくてもよい。図２５〜図３１で後述するように、サブネット内のループ構成によっては、一部の装置からのＡＲＰ応答が情報処理装置１００に到達しないこともあるからである。現時点で検出できていない装置については、以降のステップで被疑ポートを閉塞させた後に、順次検出されていくことになる。なお、ステップＳ２２を繰り返し実行する際に、収集部１２０は、ホストテーブル１１２において、ＭＡＣアドレスとの対応関係を登録済のＩＰアドレスについては、ＡＲＰ要求を行わなくてよい。収集部１２０は、ＭＡＣアドレスが判明した装置について、特開２００６−３５２２６３号公報に開示の方法により、ＳＮＭＰを用いてＭＡＣアドレステーブルを取得することで、ポートテーブル１１３を作成する（各ポートに識別子を付与する）。収集部１２０は、同様にＳＮＭＰを用いて、何れのＭＡＣアドレスをもつ装置がスイッチであるかを予め特定する。
【０１１８】
（ステップＳ２３）収集部１２０は、Ｌ２ループの被疑ポートを検出する。例えば、収集部１２０は、特開２００７−１７４１８２号公報に開示の方法を用いて、被疑ポートを検出し得る。具体的には、収集部１２０は、複数種類のダミーＭＡＣアドレスを用意する。収集部１２０は、ダミーＭＡＣアドレスを送信元とするフレームを、ブロードキャストで複数回送信する。例えば、収集部１２０は、何れかのダミーＭＡＣアドレスをランダムに選択し、選択したダミーＭＡＣアドレスを送信元とするフレームを、ブロードキャストで送信する処理を複数回実行する。そして、収集部１２０は、スイッチ２００，２００ａそれぞれのＭＡＣアドレステーブルを収集する。収集部１２０は、収集したＭＡＣアドレステーブルを参照し、あるスイッチの何れかのポートに対してダミーＭＡＣアドレスが対応付けられていれば、当該ポートを被疑ポートとする。
【０１１９】
（ステップＳ２４）収集部１２０は、被疑ポートをもつスイッチのうち、閉塞条件を満たすスイッチがあるか否かを判定する。ある場合、処理をステップＳ２５に進める。ない場合、処理をステップＳ２１に進める。閉塞条件とは、閉塞させる被疑ポートを決定するための条件である。閉塞条件は、（１）被疑ポートを複数もつスイッチであり、かつ、（２）情報処理装置１００のＭＡＣアドレスを学習しているポートが被疑ポートと異なるスイッチ、である。（２）の条件について、あるスイッチのＭＡＣアドレステーブルを所定期間監視したときに、少なくとも１つの時点で、情報処理装置１００のＭＡＣアドレスを学習しているポートが被疑ポートと異なっていれば、当該スイッチは（２）の条件を満たすとする。逆に、（２）の条件について、あるスイッチのＭＡＣアドレステーブルを所定期間監視したときに、情報処理装置１００のＭＡＣアドレスを学習しているポートが被疑ポートに常に一致していれば、当該スイッチは（２）の条件を満たさないとする。
【０１２０】
（ステップＳ２５）収集部１２０は、ステップＳ２３で閉塞条件を満たすと判定されたスイッチの複数の被疑ポートのうち、１つの被疑ポートを閉塞する。具体的には、収集部１２０は、該当のスイッチに対して、閉塞対象の被疑ポートを閉塞する旨の指示を送信する。指示を受信したスイッチは、指示に応じて、該当の被疑ポートを閉塞する。そして、処理をステップＳ２１に進める。
【０１２１】
このようにして、情報処理装置１００は、Ｌ２ループ状態が解消されるまで、閉塞条件を満たすスイッチの被疑ポートを順次閉塞させていく。ステップＳ２４で閉塞条件を満たすスイッチを選択する理由は、あるスイッチにおいて被疑ポートを閉塞させることで、情報処理装置１００が送信したフレームの到達範囲が狭まった上、当該到達範囲が狭まった状態から戻せなくなることを防止するためである。情報処理装置１００は、Ｌ２ループ状態が解消されると、図１１で示したように、部分結線情報の収集を行う。
【０１２２】
図１３は、被疑ポートの例を示す図である。図１３では端末装置２１，２２，２３の図示を省略している。スイッチ２００，２００ａの全てのポートが開放された状態では、スイッチ２００，２００ａの間にＬ２ループが形成される。例えば、情報処理装置１００は、ダミーのＭＡＣアドレス“ＭＡ”，“ＭＢ”，“ＭＣ”，“ＭＤ”を送信元とするフレーム（例えば、ＡＲＰ）をブロードキャストで複数回送信する。その後、情報処理装置１００は、当該ブロードキャストフレームがスイッチ２００，２００ａ間をループしている状態で、スイッチ２００，２００ａからＭＡＣアドレステーブルを収集する。
【０１２３】
例えば、情報処理装置１００はスイッチ２００のＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＡ”、“ＭＤ”がポートＰ１１（ポート番号１）に対応付けられ、ＭＡＣアドレス“ＭＢ”、“ＭＣ”がポートＰ１３（ポート番号３）に対応付けられていることを検出する。この場合、情報処理装置１００は、ポートＰ１１，Ｐ１３を被疑ポートと特定する。
【０１２４】
同様に、情報処理装置１００は、スイッチ２００ａのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＡ”、“ＭＤ”がポートＰ２２（ポート番号２）に対応付けられ、ＭＡＣアドレス“ＭＢ”、“ＭＣ”がポートＰ２１（ポート番号１）に対応付けられていることを検出する。この場合、情報処理装置１００はポートＰ２１，Ｐ２２を被疑ポートと特定する。
【０１２５】
また、例えば情報処理装置１００は、スイッチ２００のＭＡＣアドレステーブル（観察期間の何れかのタイミングで取得されたＭＡＣアドレステーブルでもよい）から、ＭＡＣアドレス“ＭＰ”がポートＰ１２に対応付けられていることを検出する。同様に、情報処理装置１００は、スイッチ２００ａのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ２１に対応付けられていることを検出する。
【０１２６】
この場合、情報処理装置１００は、図１２のステップＳ２４で説明した閉塞条件を満たすスイッチとして、スイッチ２００を特定する。なぜなら、ＭＡＣアドレス“ＭＰ”が、被疑ポートではないポートＰ１２で学習されている（スイッチ２００のＭＡＣアドレステーブルにおいてＭＡＣアドレス“ＭＰ”がポートＰ１２に対応付けられている）からである。
【０１２７】
一方、情報処理装置１００は、スイッチ２００ａを、当該閉塞条件を満たさないスイッチと判定する。ＭＡＣアドレス“ＭＰ”が、被疑ポートＰ２１で学習されているからである。したがって、情報処理装置１００は、ポートＰ１１，Ｐ１３の何れかを閉塞する。例えば、ポート番号の大きい方を優先して閉塞させるならば、ポートＰ１３を閉塞する。ポートＰ１３を閉塞すると、ポートＰ２２も通信に利用できなくなるため、ポートＰ１３の閉塞は、ポートＰ１３，Ｐ２２（一組のポート）の閉塞と考えることもできる。
【０１２８】
図１４は、ポート切替処理の例を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。図１４の手順は、図１１のステップＳ１６に相当する。
【０１２９】
（ステップＳ３１）収集部１２０は、ポート状態管理テーブル１１１を参照して、ポート開閉状態が“閉塞”かつ切替実行済フラグが“未実行”であるポートを１つ選択する。
（ステップＳ３２）収集部１２０は、ポート状態管理テーブル１１１を参照して、切替実行済フラグを“切替実行済”に設定する。
【０１３０】
（ステップＳ３３）収集部１２０は、選択したポートを開放する。具体的には、収集部１２０は、選択したポートを開放する旨を、該当のスイッチに指示する。スイッチは、指示を受け付けると、当該ポートを開放する。収集部１２０は、ポート状態管理テーブル１１１を参照して、当該ポートのポート開閉状態を“開放”に設定する。
【０１３１】
（ステップＳ３４）収集部１２０は、ポート開放を行ったスイッチの被疑ポートを特定する。被疑ポート数の特定は、前述のように複数のダミーＭＡＣアドレスを送信元とするフレームをブロードキャストで送信した上で、該当のスイッチのＭＡＣアドレステーブルを収集し、参照することで特定できる。収集部１２０は、開放したポートが被疑ポートとして特定されたか否かを判定する。開放したポートが被疑ポートである場合、処理をステップＳ３５に進める。開放したポートが被疑ポートでない場合、処理を終了する。
【０１３２】
（ステップＳ３５）収集部１２０は、ポート開放を行ったスイッチの被疑ポート数を判定する。被疑ポート数が“１”の場合、処理を終了する。ポート開放を行ったスイッチの被疑ポート数が“２”の場合、処理をステップＳ３６に進める。すなわち、該当のスイッチにおいて、開放したポートのみが被疑ポートであれば、被疑ポート数は“１”である。該当のスイッチにおいて、開放したポート以外にも被疑ポートがあれば、被疑ポート数は“２”である。
【０１３３】
（ステップＳ３６）収集部１２０は、ステップＳ３１で選択したポートの切替先ポートに、ステップＳ３５で判定されたもう一方の被疑ポート（すなわち、切替先ポート）の識別子を登録する。
【０１３４】
（ステップＳ３７）収集部１２０は、ポート状態管理テーブル１１１を参照して、切替先ポートの切替実行済フラグを“実行済”に設定する。
（ステップＳ３８）収集部１２０は、切替先ポートを閉塞する。具体的には、収集部１２０は、切替先ポートを閉塞する旨を、該当のスイッチに指示する。スイッチは、指示を受け付けると、当該ポートを閉塞する。収集部１２０は、ポート状態管理テーブル１１１を参照して、ポート開閉状態を“閉塞”に設定する。
【０１３５】
図１５は、ポート開放時の処理例を示す図である。図１５では、図１４のステップＳ３３のポート開放により発生し得る状況のパターン（開放パターンと称する）と、開放パターンに応じたポート閉塞の処理例とを例示している。ここで、図１５でいう被疑ポート数とは、ポートを開放したスイッチ内での被疑ポート数である。また、図１５において、四角形のシンボルは、開放されたポートＰ１を表している。また、図１５において、黒色が付された四角形および丸型のシンボルは、被疑ポートを表している。
【０１３６】
開放パターンＡは、被疑ポート数が０の場合である。すなわち、あるスイッチのポートＰ１を開放しても、Ｌ２ループが発生しない。収集部１２０は、ポートＰ１を開放することで、通信の到達範囲を拡張する。
【０１３７】
開放パターンＢ１は、被疑ポート数が１の場合である。すなわち、あるスイッチのポートＰ１を開放することで、サブネット内にＬ２ループが発生したが、開放したポートＰ１は、Ｌ２ループに直接関係するポートではない場合である。収集部１２０は、ポートＰ１を開放することで、通信の到達範囲を拡張し、その後、Ｌ２ループを発生させている他のスイッチの被疑ポートを閉塞することで、Ｌ２ループ状態を解消する。
【０１３８】
開放パターンＡ，Ｂ１の何れであるかは、被疑ポートの数によって識別可能である。
開放パターンＢ２，Ｂ３は、被疑ポート数が２の場合である。そのうち、開放パターンＢ２は、単一スイッチの中でループ結線を検出する場合である。収集部１２０は、当該スイッチのポートＰ１，Ｐ２の何れかを閉塞することで、Ｌ２ループ状態を解消し得る。
【０１３９】
また、開放パターンＢ３は、他のスイッチとともにループを形成する場合である。収集部１２０は、ポートＰ１，Ｐ２の何れかを閉塞する。開放パターンＢ２，Ｂ３は、被疑ポート数で区別することはできないが、該当スイッチのポートＰ１，Ｐ２の何れかを閉塞する処理を行う点では同じである。結線検出部１３０は、単一スイッチの中でのループ結線の検出を、図１１のステップＳ１７において別途実行する。
【０１４０】
図１６は、マージ処理の例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。図１６の手順は、図１０のステップＳ３に相当する。
（ステップＳ４１）結線検出部１３０は、部分結線情報の収集結果のうち、１番目を記憶部１１０から読み込み、暫定の全体結線情報（全体結果Ｖ）とする。ここで、収集結果（部分結線情報）は、Ｎ（Ｎは２以上の整数）個存在している。ｎ番目の部分結線情報を収集結果Ｖｎと表す。例えば、１番目の部分結線情報は収集結果Ｖ１である。２番目の部分結線情報は収集結果Ｖ２である。結線検出部１３０は、収集結果Ｖ１を参照して、ケーブルにより物理的に接続されたポートのペアに対応するポート識別子のペアをリンクテーブル１１４に追加する。このときリンクテーブル１１４に登録されているポート間の接続関係の情報が暫定の全体結果Ｖである。また、結線検出部１３０は、単一スイッチ内で結線されているポートのペアに対応するポート識別子のペア（図１１のステップＳ１７で取得した情報）を記憶部１１０から取得し、リンクテーブル１１４に追加する。
【０１４１】
ここで、部分結線情報として取得されたＭＡＣアドレステーブルは、スイッチの装置名に対応付けて記憶部１１０に格納されている。更に、ＭＡＣアドレステーブルには、当該スイッチにおけるポート番号と他の装置のＭＡＣアドレスとの対応関係が含まれる。このため、収集部１２０は、ポートテーブル１１３に基づいて、収集したＭＡＣアドレステーブルに含まれるポートのポート識別子を特定できる。
【０１４２】
（ステップＳ４２）結線検出部１３０は、次の収集結果Ｖｎを読み込む。
（ステップＳ４３）結線検出部１３０は、暫定の全体結果Ｖと収集結果Ｖｎとをマージし、暫定の全体結果Ｖを更新する。例えば、結線検出部１３０は、収集結果Ｖｎからケーブルにより物理的に接続されたポートのポート識別子のペアを取得できる。収集結果Ｖｎから取得したポート識別子のペアのうち、現状のリンクテーブル１１４にはないペアを、リンクテーブル１１４に追加する。追加後のリンクテーブル１１４が、更新された後の暫定の全体結果Ｖである。
【０１４３】
（ステップＳ４４）結線検出部１３０は、Ｎ個の収集結果を全てマージしたか否かを判定する。Ｎ個の収集結果を全てマージした場合、処理をステップＳ４５に進める（ｎに１加算する）。Ｎ個の収集結果を全てマージしていない場合、処理をステップＳ４２に進める。
【０１４４】
（ステップＳ４５）結線検出部１３０は、暫定の全体結果Ｖ（リンクテーブル１１４）を全体結線情報（最終結果）とし、記憶部１１０に格納する。結線検出部１３０は、全体結線情報を参照することで、スイッチ２００，２００ａを含む装置間の物理結線の状況を示す画像などを作成し、ユーザに提示することができる。
【０１４５】
図１７は、結線情報の収集処理の例を示す図である。図１７の例では、図１２のステップＳ２５で例示した手順によって、ポートＰ１３が閉塞されている。この場合、スイッチ２００，２００ａの間ではポートＰ１３，Ｐ２２を繋ぐパスＲ２を介した通信は不可（閉塞状態）となり、ポートＰ１１，Ｐ２１を繋ぐパスＲ１を介した通信が可能となる。このため、情報処理装置１００は、ポート状態管理テーブル１１１のポートＰ１３に相当するエントリにおいてポート開閉状態を“閉塞”と管理している。ここで、ポートＰ１３を積極的に閉塞状態としているのはスイッチ２００側であり、スイッチ２００ａ側ではポートＰ２２を開放状態（積極的に閉塞状態としているわけではない）と管理している。このため、情報処理装置１００は、ポートＰ１３の状態を“閉塞”としてスイッチ２００から取得するが、スイッチ２００ａからはポートＰ２１の状態を“開放”として取得する。
【０１４６】
なお、ポート状態管理テーブル１１１上で、スイッチ２００ａではなくスイッチ２００の側のポートの設定により当該閉塞状態が管理される理由は、図１３で例示したように、スイッチ２００，２００ａの全てのポートが開放された状態において、スイッチ２００が図１２のステップＳ２４で説明した閉塞条件を満たすからである。
【０１４７】
そして、情報処理装置１００は、サブネット内のＬ２ループ状態が解消されたことを検出する。例えば、情報処理装置１００は、サブネットにブロードキャスト送信したデータが自身に戻ってこないことや、サブネット内に被疑ポートを複数もつスイッチがなくなったことなどを検出することで、Ｌ２ループ状態の解消を検出し得る。情報処理装置１００は、スイッチ２００，２００ａからＭＡＣアドレステーブルを収集する。情報処理装置１００は、収集したＭＡＣアドレステーブルから、ポートＰ１１，Ｐ２１を繋ぐ物理的なパスＲ１の存在を検出できる。
【０１４８】
ここで、ポートＰ１３のエントリでは、ポート開閉状態が“閉塞”で、切替実行済フラグが“未実行”となっている。そこで、情報処理装置１００は、図１１のステップＳ１５，Ｓ１６および図１４で例示した手順に基づいて、ポート切替処理を実行する。
【０１４９】
図１８は、結線情報の収集処理の例（続き）を示す図である。情報処理装置１００は、ポートＰ１３について、ポート状態管理テーブル１１１のポート開閉状態を“開放”、切替実行済フラグを“実行済”に変更するとともに、閉塞していたポートＰ１３を開放する。すると、パスＲ２が開通する。パスＲ１を介した通信も引き続き可能であるため、Ｌ２ループ状態が発生する。そして、情報処理装置１００は、スイッチ２００において、ポートＰ１１，Ｐ１３の２つを被疑ポートとして検出する。
【０１５０】
図１９は、結線情報の収集処理の例（続き）を示す図である。情報処理装置１００は、ポート状態管理テーブル１１１のポートＰ１３に相当するエントリの切替先ポート番号に、ポートＰ１１のポート番号“１”を登録する。情報処理装置１００は、ポートＰ１１について、ポート状態管理テーブル１１１のポート開閉状態を“閉塞”、切替実行済フラグを“実行済”に変更するとともに、開放していたポートＰ１１を閉塞する。すると、スイッチ２００，２００ａの間では、パスＲ１を介した通信は不可（閉塞状態）となり、パスＲ２を介した通信が可能となる。
【０１５１】
情報処理装置１００は、サブネット内のＬ２ループ状態が解消されたことを検出する。情報処理装置１００は、スイッチ２００，２００ａからＭＡＣアドレステーブルを収集する。情報処理装置１００は、収集したＭＡＣアドレステーブルから、ポートＰ１３，Ｐ２２を繋ぐ物理的なパスＲ２の存在を検出できる。
【０１５２】
情報処理装置１００は、切替対象となり得るポートがなくなったので、部分結線情報の収集を完了する。情報処理装置１００は、収集した２つの部分結線情報をマージすることで、全体結線情報を生成する。例示したように、情報処理装置１００は、スイッチ２００，２００ａの間に、ポートＰ１１，Ｐ２１を繋いだパスＲ１を検出し、ポートＰ１３，Ｐ２２を繋いだパスＲ２を検出する。このため、情報処理装置１００は、これらの検出結果から、スイッチ２００，２００ａの間に、ポートＰ１１，Ｐ２１を繋いだパスＲ１およびポートＰ１３，Ｐ２２を繋いだパスＲ２が存在することを検出する。このようにして、情報処理装置１００は、サブネット内にＬ２ループ状態が発生していても、物理的な結線情報を取得できる。
【０１５３】
ところで、情報処理装置１００は、Ｌ２ループ状態が発生している他のシステムにおいても、物理的な結線情報を取得できる。そこで、以下では情報処理装置１００を他のシステムに用いる場合を例示する。
【０１５４】
図２０は、他のシステム例（その１）を示す図である。例えば、スイッチ２００ｂ，２００ｃ，２００ｄ，２００ｅを含むサブネットを考える。情報処理装置１００のＩＰアドレスおよびスイッチ２００ｂ，２００ｃ，２００ｄ，２００ｅのＩＰアドレスは同一のネットワークアドレスに属している。
【０１５５】
スイッチ２００ｂは、ポートＰ３１，Ｐ３２，Ｐ３３を有する。ポートＰ３１のポート番号は“１”である。ポートＰ３２のポート番号は“２”である。ポートＰ３３のポート番号は“３”である。
【０１５６】
スイッチ２００ｃは、ポートＰ４１，Ｐ４２，Ｐ４３を有する。ポートＰ４１のポート番号は“１”である。ポートＰ４２のポート番号は“２”である。ポートＰ４３のポート番号は“３”である。
【０１５７】
スイッチ２００ｄは、ポートＰ５１，Ｐ５２，Ｐ５３を有する。ポートＰ５１のポート番号は“１”である。ポートＰ５２のポート番号は“２”である。ポートＰ５３のポート番号は“３”である。
【０１５８】
スイッチ２００ｅは、ポートＰ６１，Ｐ６２を有する。ポートＰ６１のポート番号は“１”である。ポートＰ６２のポート番号は“２”である。
情報処理装置１００は、ポートＰ３１に接続されている。それ以外の各ポートの次のポート同士がケーブルを用いて接続されている。ポートＰ３２，Ｐ４１。ポートＰ３３，Ｐ４２。ポートＰ４３，Ｐ５１。ポートＰ５２，Ｐ６１。ポートＰ５３，Ｐ６２。
【０１５９】
前述のように、情報処理装置１００は、特開２００６−３５２２６２号公報や特開２００６−３５２２６３号公報に開示の方法を利用することで、各装置のＭＡＣアドレスの解決や、各装置との以下に示す通信を行える。
【０１６０】
図２１は、他のシステム例（その１）における処理例を示す図である。情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、当該フレームとして、例えばＡＲＰ要求を送信してもよい（以下、同様）。すると、情報処理装置１００は、スイッチ２００ｂから取得したＭＡＣアドレステーブルに基づいて、ポートＰ３２，Ｐ３３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ３２，Ｐ３３で学習されているからである。
【０１６１】
情報処理装置１００は、スイッチ２００ｃから取得したＭＡＣアドレステーブルに基づいて、ポートＰ４１，Ｐ４２，Ｐ４３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ４１，Ｐ４２，Ｐ４３で学習されているからである。
【０１６２】
情報処理装置１００は、スイッチ２００ｄから取得したＭＡＣアドレステーブルに基づいて、ポートＰ５１，Ｐ５２，Ｐ５３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ５１，Ｐ５２，Ｐ５３で学習されているからである。
【０１６３】
情報処理装置１００は、スイッチ２００ｅから取得したＭＡＣアドレステーブルに基づいて、ポートＰ６１，Ｐ６２を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ６１，Ｐ６２で学習されているからである。
【０１６４】
また、例えば情報処理装置１００は、スイッチ２００ｂのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ３１に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｃのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ４２に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｄのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ５１に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｅのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ６１に対応付けられていることを検出する。
【０１６５】
この場合、複数の被疑ポートをもち、被疑ポート以外のポートでＭＡＣアドレス“ＭＰ”を学習しているのは、スイッチ２００ｂである。このため、情報処理装置１００は、閉塞条件を満たすスイッチとして、スイッチ２００ｂを特定する（ステップＳＴ１１）。
【０１６６】
図２２は、他のシステム例（その１）における処理例（続き）を示す図である。情報処理装置１００は、閉塞条件を満たすスイッチ２００ｂにおいて、被疑ポートであるポートＰ３３を閉塞する。
【０１６７】
情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信することで、サブネット内のＬ２ループが解消されていないことを検出する。
【０１６８】
そして、情報処理装置１００は、スイッチ２００ｂから取得したＭＡＣアドレステーブルに基づいて、ポートＰ３２を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ３２で学習されているからである。
【０１６９】
情報処理装置１００は、スイッチ２００ｃから取得したＭＡＣアドレステーブルに基づいて、ポートＰ４３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ４３で学習されているからである。
【０１７０】
情報処理装置１００は、スイッチ２００ｄから取得したＭＡＣアドレステーブルに基づいて、ポートＰ５２，Ｐ５３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ５２，Ｐ５３で学習されているからである。
【０１７１】
情報処理装置１００は、スイッチ２００ｅから取得したＭＡＣアドレステーブルに基づいて、ポートＰ６１，Ｐ６２を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ６１，Ｐ６２で学習されているからである。
【０１７２】
また、例えば情報処理装置１００は、スイッチ２００ｂのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ３１に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｃのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ４１に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｄのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ５１に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｅのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ６１に対応付けられていることを検出する。
【０１７３】
この場合、複数の被疑ポートをもち、被疑ポート以外のポートでＭＡＣアドレス“ＭＰ”を学習しているのは、スイッチ２００ｄである。このため、情報処理装置１００は、閉塞条件を満たすスイッチとして、スイッチ２００ｄを特定する（ステップＳＴ１２）。
【０１７４】
図２３は、他のシステム例（その１）における処理例（続き）を示す図である。情報処理装置１００は、閉塞条件を満たすスイッチ２００ｄにおいて、被疑ポートであるポートＰ５３を閉塞する。その結果、ポートＰ３３，Ｐ４２，Ｐ５３，Ｐ６２の組が閉塞されたことになる。
【０１７５】
情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、ブロードキャストしたフレームが自身に戻ってこないことや、各スイッチから取得したＭＡＣアドレステーブルに基づき、被疑ポートを複数もつスイッチが存在しないことを確認することで、Ｌ２ループが解消されたことを検出する。
【０１７６】
すると、情報処理装置１００は、スイッチ２００ｂ，２００ｃ，２００ｄ，２００ｅから部分結線情報としてＭＡＣアドレステーブルを収集する（ステップＳＴ１３）。Ｌ２ループ解消の確認のために、各スイッチからＭＡＣアドレステーブルを既に取得しているならば、改めて収集しなくてもよい。このタイミングで収集された部分結線情報は、ポートＰ３２，Ｐ４１間の結線、ポートＰ４３，Ｐ５１間の結線およびポートＰ５２，Ｐ６１間の結線を示す情報を含む。
【０１７７】
次に、情報処理装置１００は、閉塞するポートの切替を行う。例えば、情報処理装置１００は、ポートＰ３３を開放する。情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。すると、情報処理装置１００は、スイッチ２００ｂから取得したＭＡＣアドレステーブルに基づいて、ポートＰ３２，Ｐ３３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ３２，Ｐ３３で学習されるからである（ステップＳＴ１４）。
【０１７８】
このため、情報処理装置１００は、ポートＰ３３に対する切替先ポートとして、ポートＰ３２を特定する。情報処理装置１００は、ポートＰ３２を閉塞する。その結果、ポートＰ３２，Ｐ４１，Ｐ５３，Ｐ６２の組が閉塞されたことになる。
【０１７９】
情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、ブロードキャストしたフレームが自身に戻ってこないことや、各スイッチから取得したＭＡＣアドレステーブルに基づき、被疑ポートを複数もつスイッチが存在しないことを確認することで、Ｌ２ループが解消されたことを検出する。
【０１８０】
すると、情報処理装置１００は、スイッチ２００ｂ，２００ｃ，２００ｄ，２００ｅから部分結線情報としてＭＡＣアドレステーブルを収集する（ステップＳＴ１５）。Ｌ２ループ解消の確認のために、各スイッチからＭＡＣアドレステーブルを既に取得しているならば、改めて収集しなくてもよい。このタイミングで収集された部分結線情報は、ポートＰ３３，Ｐ４２間の結線、ポートＰ４３，Ｐ５１間の結線およびポートＰ５２，Ｐ６１間の結線を示す情報を含む。
【０１８１】
図２４は、他のシステム例（その１）における処理例（続き）を示す図である。情報処理装置１００は、閉塞するポートの切替を行う。情報処理装置１００は、ポートＰ５３を開放する。情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。すると、情報処理装置１００は、スイッチ２００ｄから取得したＭＡＣアドレステーブルに基づいて、ポートＰ５２，Ｐ５３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ５２，Ｐ５３で学習されるからである（ステップＳＴ１６）。
【０１８２】
このため、情報処理装置１００は、ポートＰ５３に対する切替先ポートとして、ポートＰ５２を特定する。情報処理装置１００は、ポートＰ５２を閉塞する。その結果、ポートＰ３２，Ｐ４１，Ｐ５２，Ｐ６１の組が閉塞されたことになる。
【０１８３】
情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、ブロードキャストしたフレームが自身に戻ってこないことや、各スイッチから取得したＭＡＣアドレステーブルに基づき、被疑ポートを複数もつスイッチが存在しないことを確認することで、Ｌ２ループが解消されたことを検出する。
【０１８４】
すると、情報処理装置１００は、スイッチ２００ｂ，２００ｃ，２００ｄ，２００ｅから部分結線情報としてＭＡＣアドレステーブルを収集する（ステップＳＴ１７）。Ｌ２ループ解消の確認のために、各スイッチからＭＡＣアドレステーブルを既に取得しているならば、改めて収集しなくてもよい。このタイミングで収集された部分結線情報は、ポートＰ３３，Ｐ４２間の結線、ポートＰ４３，Ｐ５１間の結線およびポートＰ５３，Ｐ６２間の結線を示す情報を含む。この時点で、切替候補となるポートに対する切替を全て行ったことになるので、情報処理装置１００は、部分結線情報の収集を終了する。
【０１８５】
情報処理装置１００は、ステップＳＴ１３，ＳＴ１５，ＳＴ１７で収集された部分結線情報をマージすることで、スイッチ２００ｂ，２００ｃ，２００ｄ，２００ｅの間の全ての物理結線の情報を生成する。なお、ステップＳＴ１６，ＳＴ１７を先に実行した後に、ステップＳＴ１４，ＳＴ１５を実行してもよい。
【０１８６】
図２５は、他のシステム例（その２）を示す図である。例えば、スイッチ２００ｆ，２００ｇ，２００ｈ，２００ｉ，２００ｊ，２００ｋを含むサブネットを考える。情報処理装置１００のＩＰアドレスおよびスイッチ２００ｆ，２００ｇ，２００ｈ，２００ｉ，２００ｊ，２００ｋのＩＰアドレスは同一のネットワークアドレスに属している。
【０１８７】
スイッチ２００ｆは、ポートＰ７１を有する。ポートＰ７１のポート番号は“１”である。
スイッチ２００ｇは、ポートＰ８１，Ｐ８２，Ｐ８３を有する。ポートＰ８１のポート番号は“１”である。ポートＰ８２のポート番号は“２”である。ポートＰ８３のポート番号は“３”である。
【０１８８】
スイッチ２００ｈは、ポートＰ９１，Ｐ９２，Ｐ９３を有する。ポートＰ９１のポート番号は“１”である。ポートＰ９２のポート番号は“２”である。ポートＰ９３のポート番号は“３”である。
【０１８９】
スイッチ２００ｉは、ポートＰ１０１，Ｐ１０２，Ｐ１０３を有する。ポートＰ１０１のポート番号は“１”である。ポートＰ１０２のポート番号は“２”である。ポートＰ１０３のポート番号は“３”である。
【０１９０】
スイッチ２００ｊは、ポートＰ１１１，Ｐ１１２，Ｐ１１３を有する。ポートＰ１１１のポート番号は“１”である。ポートＰ１１２のポート番号は“２”である。ポートＰ１１３のポート番号は“３”である。
【０１９１】
スイッチ２００ｋは、ポートＰ１２１，Ｐ１２２を有する。ポートＰ１２１のポート番号は“１”である。ポートＰ１２２のポート番号は“２”である。
情報処理装置１００は、ポートＰ１０３に接続されている。それ以外の各ポートの次のポート同士がケーブルを用いて接続されている。ポートＰ７１，Ｐ８１。ポートＰ８２，Ｐ９１。ポートＰ８３，Ｐ９２。ポートＰ９３，Ｐ１０１。ポートＰ１０２，Ｐ１１１。ポートＰ１１２，Ｐ１２１。ポートＰ１１３，Ｐ１２２。
【０１９２】
ここで、本接続例のように結線状況が複雑である場合には、ＭＡＣアドレスの解決やＭＡＣアドレステーブルの収集を、サブネット内の全てのスイッチに対して１度に行えないことが考えられる。この場合、情報処理装置１００は、ＭＡＣアドレスを解決でき、ＭＡＣアドレステーブルの収集を行えた範囲内で、ポートの閉塞対象とするスイッチの決定やポートの閉塞を行う。ＭＡＣアドレスを解決できたスイッチであれば、特開２００６−３５２２６３号公報に開示の方法によって、ＭＡＣアドレステーブルも取得可能である。
【０１９３】
そして、情報処理装置１００は、ポートの閉塞を行うたびに、ＭＡＣアドレスを解決できていないＩＰアドレスについてＭＡＣアドレスの解決を試みる。情報処理装置１００は、解決できたＭＡＣアドレスのスイッチについて、ＭＡＣアドレステーブルを収集する。その上で、再び、ポートの閉塞対象とするスイッチの決定やポートの閉塞を行う。このように、情報処理装置１００は、スイッチの探索範囲を徐々に広げることで、複雑な結線状況の場合にも適正に結線情報を得ることができる。この場合、情報処理装置１００は、新たにスイッチを発見するたびに、発見したスイッチの情報を、ポート状態管理テーブル１１１、ホストテーブル１１２およびポートテーブル１１３に追加する。次に、図２５の接続例における処理を例示する。
【０１９４】
図２６は、他のシステム例（その２）における処理例を示す図である。情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、当該フレームとして、例えばＡＲＰ要求を送信してもよい（以下、同様）。この場合、情報処理装置１００は、スイッチ２００ｉのＭＡＣアドレスを解決し得るが、それ以外のスイッチのＭＡＣアドレスを解決することは困難である。情報処理装置１００は、スイッチ２００ｉのＩＰアドレスに対応するＭＡＣアドレスを解決した上で、スイッチ２００ｉのＩＰアドレスに対してＳＮＭＰ要求を送信し、スイッチ２００ｉのＭＡＣアドレステーブルを取得し得る。
【０１９５】
情報処理装置１００は、スイッチ２００ｉから取得したＭＡＣアドレステーブルに基づいて、ポートＰ１０１，Ｐ１０２を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ１０１，Ｐ１０２で学習されているからである。また、情報処理装置１００は、スイッチ２００ｉのＭＡＣアドレステーブルから、ポートＰ１０３で情報処理装置１００のＭＡＣアドレスが学習されていることを検出する。
【０１９６】
この場合、スイッチ２００ｉは、複数の被疑ポートをもち、被疑ポート以外のポートでＭＡＣアドレス“ＭＰ”を学習している。このため、情報処理装置１００は、閉塞条件を満たすスイッチとして、スイッチ２００ｉを特定する（ステップＳＴ２１）。
【０１９７】
なお、図２６では、この状態において、スイッチ２００ｆ，２００ｇ，２００ｈ，２００ｊ，２００ｋそれぞれが保持するＭＡＣアドレステーブルの例も図示している。また、図２６では、被疑ポートに相当するポートを網掛けで図示している。情報処理装置１００は、ポートＰ１０１，Ｐ１０２を被疑ポートとして認識している。ただし、情報処理装置１００は、他のスイッチからはＭＡＣアドレステーブルを取得していないので、ポートＰ１０１，Ｐ１０２以外のポートを被疑ポートとして認識しているわけではない。
【０１９８】
図２７は、他のシステム例（その２）における処理例（続き）を示す図である。情報処理装置１００は、閉塞条件を満たすスイッチ２００ｉにおいて、被疑ポートであるポートＰ１０２を閉塞する（ステップＳＴ２２）。すると、情報処理装置１００は、特開２００６−３５２２６２号公報や特開２００６−３５２２６３号公報の方法を用いて、スイッチ２００ｆ，２００ｇ，２００ｈのＭＡＣアドレスの解決およびＭＡＣアドレステーブルの収集が可能となる。
【０１９９】
情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信することで、サブネット内のＬ２ループが解消されていないことを検出する。
【０２００】
そして、情報処理装置１００は、スイッチ２００ｆから取得したＭＡＣアドレステーブルに基づいて、ポートＰ７１を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ７１で学習されているからである。
【０２０１】
情報処理装置１００は、スイッチ２００ｇから取得したＭＡＣアドレステーブルに基づいて、ポートＰ８２，Ｐ８３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ８２，Ｐ８３で学習されているからである。
【０２０２】
情報処理装置１００は、スイッチ２００ｈから取得したＭＡＣアドレステーブルに基づいて、ポートＰ９１，Ｐ９２を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ９１，Ｐ９２で学習されているからである。
【０２０３】
情報処理装置１００は、スイッチ２００ｉから取得したＭＡＣアドレステーブルに基づいて、ポートＰ１０１を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ１０１で学習されているからである。
【０２０４】
また、例えば情報処理装置１００は、スイッチ２００ｆのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ７１に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｇのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ８２に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｈのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ９３に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｉのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ１０３に対応付けられていることを検出する。
【０２０５】
この場合、複数の被疑ポートをもち、被疑ポート以外のポートでＭＡＣアドレス“ＭＰ”を学習しているのは、スイッチ２００ｈである。このため、情報処理装置１００は、閉塞条件を満たすスイッチとして、スイッチ２００ｈを特定する（ステップＳＴ２３）。
【０２０６】
図２８は、他のシステム例（その２）における処理例（続き）を示す図である。情報処理装置１００は、閉塞条件を満たすスイッチ２００ｈにおいて、被疑ポートであるポートＰ９２を閉塞する。その結果、ポートＰ８３，Ｐ９２，Ｐ１０２，Ｐ１１１の組が閉塞されたことになる。
【０２０７】
情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、ブロードキャストしたフレームが自身に戻ってこないことや、各スイッチから取得したＭＡＣアドレステーブルに基づき、被疑ポートを複数もつスイッチが存在しないことを確認することで、Ｌ２ループが解消されたことを検出する。
【０２０８】
すると、情報処理装置１００は、スイッチ２００ｆ，２００ｇ，２００ｈ，２００ｉから部分結線情報としてＭＡＣアドレステーブルを収集する（ステップＳＴ２４）。Ｌ２ループ解消の確認のために、各スイッチからＭＡＣアドレステーブルを既に取得しているならば、改めて収集しなくてもよい。このタイミングで収集された部分結線情報は、ポートＰ７１，Ｐ８１間の結線、ポートＰ８２，Ｐ９１間の結線およびポートＰ９３，Ｐ１０１間の結線を示す情報を含む。
【０２０９】
次に、情報処理装置１００は、閉塞するポートの切替を行う。例えば、情報処理装置１００は、ポートＰ１０２を開放する。ポートＰ１０２と接続するポートＰ１１１も開放されることになる（ステップＳＴ２５）。その結果、情報処理装置１００は、スイッチ２００ｊ，２００ｋのＭＡＣアドレスの解決およびＭＡＣアドレステーブルの収集が可能となる。
【０２１０】
図２９は、他のシステム例（その２）における処理例（続き）を示す図である。情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、スイッチ２００ｉのＭＡＣアドレステーブルから、開放したポートＰ１０２がスイッチ２００ｉにおける唯一の被疑ポートとなったことを検出する。すると、情報処理装置１００は、Ｌ２ループの解消処理を行う。
【０２１１】
すなわち、情報処理装置１００は、スイッチ２００ｆから取得したＭＡＣアドレステーブルに基づいて、ポートＰ７１を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ７１で学習されているからである。
【０２１２】
情報処理装置１００は、スイッチ２００ｇから取得したＭＡＣアドレステーブルに基づいて、ポートＰ８２を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ８２で学習されているからである。
【０２１３】
情報処理装置１００は、スイッチ２００ｈから取得したＭＡＣアドレステーブルに基づいて、ポートＰ９３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ９３で学習されているからである。
【０２１４】
情報処理装置１００は、スイッチ２００ｉから取得したＭＡＣアドレステーブルに基づいて、ポートＰ１０２を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ１０２で学習されているからである。
【０２１５】
情報処理装置１００は、スイッチ２００ｊから取得したＭＡＣアドレステーブルに基づいて、ポートＰ１１２，Ｐ１１３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ１１２，Ｐ１１３で学習されているからである。
【０２１６】
情報処理装置１００は、スイッチ２００ｋから取得したＭＡＣアドレステーブルに基づいて、ポートＰ１２１，Ｐ１２２を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ１２１，Ｐ１２２で学習されているからである。
【０２１７】
また、例えば情報処理装置１００は、スイッチ２００ｆのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ７１に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｇのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ８２に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｈのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ９３に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｉのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ１０３に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｊのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ１１１に対応付けられていることを検出する。情報処理装置１００は、スイッチ２００ｋのＭＡＣアドレステーブルから、ＭＡＣアドレス“ＭＰ”がポートＰ１２１に対応付けられていることを検出する。
【０２１８】
この場合、複数の被疑ポートをもち、被疑ポート以外のポートでＭＡＣアドレス“ＭＰ”を学習しているのは、スイッチ２００ｊである。このため、情報処理装置１００は、閉塞条件を満たすスイッチとして、スイッチ２００ｊを特定する（ステップＳＴ２６）。
【０２１９】
情報処理装置１００は、閉塞条件を満たすスイッチ２００ｊにおいて、被疑ポートであるポートＰ１１３を閉塞する。その結果、ポートＰ８３，Ｐ９２，Ｐ１１３，Ｐ１２２の組が閉塞されたことになる。
【０２２０】
情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、ブロードキャストしたフレームが自身に戻ってこないことや、各スイッチから取得したＭＡＣアドレステーブルに基づき、被疑ポートを複数もつスイッチが存在しないことを確認することで、Ｌ２ループが解消されたことを検出する。
【０２２１】
すると、情報処理装置１００は、スイッチ２００ｆ，２００ｇ，２００ｈ，２００ｉから部分結線情報としてＭＡＣアドレステーブルを収集する（ステップＳＴ２７）。Ｌ２ループ解消の確認のために、各スイッチからＭＡＣアドレステーブルを既に取得しているならば、改めて収集しなくてもよい。このタイミングで収集された部分結線情報は、ポートＰ７１，Ｐ８１間の結線、ポートＰ８２，Ｐ９１間の結線およびポートＰ９３，Ｐ１０１間の結線、ポートＰ１０２，Ｐ１１１間の結線、ポートＰ１１２，Ｐ１２１間の結線を示す情報を含む。
【０２２２】
図３０は、他のシステム例（その２）における処理例（続き）を示す図である。情報処理装置１００は、閉塞するポートの切替を行う。例えば、情報処理装置１００は、ポートＰ９２を開放する。情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。すると、情報処理装置１００は、スイッチ２００ｈから取得したＭＡＣアドレステーブルに基づいて、ポートＰ９１，Ｐ９２を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ９１，Ｐ９２で学習されているからである（ステップＳＴ２８）。
【０２２３】
このため、情報処理装置１００は、ポートＰ９２に対する切替先ポートとして、ポートＰ９１を特定する。情報処理装置１００は、ポートＰ９１を閉塞する。その結果、ポートＰ８２，Ｐ９１，Ｐ１１３，Ｐ１２２の組が閉塞されたことになる。
【０２２４】
情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、ブロードキャストしたフレームが自身に戻ってこないことや、各スイッチから取得したＭＡＣアドレステーブルに基づき、被疑ポートを複数もつスイッチが存在しないことを確認することで、Ｌ２ループが解消されたことを検出する。
【０２２５】
すると、情報処理装置１００は、スイッチ２００ｆ，２００ｇ，２００ｈ，２００ｉ，２００ｊ，２００ｋから部分結線情報としてＭＡＣアドレステーブルを収集する（ステップＳＴ２９）。Ｌ２ループ解消の確認のために、各スイッチからＭＡＣアドレステーブルを既に取得しているならば、改めて収集しなくてもよい。このタイミングで収集された部分結線情報は、ポートＰ７１，Ｐ８１間の結線、ポートＰ８３，Ｐ９２間の結線およびポートＰ９３，Ｐ１０１間の結線、ポートＰ１０２，Ｐ１１１間の結線およびポートＰ１１２，１２１間の結線を示す情報を含む。
【０２２６】
図３１は、他のシステム例（その２）における処理例（続き）を示す図である。情報処理装置１００は、閉塞するポートの切替を行う。例えば、情報処理装置１００は、ポートＰ１１３を開放する。情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。すると、情報処理装置１００は、スイッチ２００ｊから取得したＭＡＣアドレステーブルに基づいて、ポートＰ１１２，Ｐ１１３を被疑ポートと検出する。ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”が、ポートＰ１１２，Ｐ１１３で学習されているからである（ステップＳＴ３０）。
【０２２７】
このため、情報処理装置１００は、ポートＰ１１３に対する切替先ポートとして、ポートＰ１１２を特定する。情報処理装置１００は、ポートＰ１１２を閉塞する。その結果、ポートＰ８２，Ｐ９１，Ｐ１１２，Ｐ１２１の組が閉塞されたことになる。
【０２２８】
情報処理装置１００は、ダミーＭＡＣアドレス“ＭＡ”、“ＭＢ”、“ＭＣ”、“ＭＤ”を送信元とするフレームをブロードキャストで複数回送信する。情報処理装置１００は、ブロードキャストしたフレームが自身に戻ってこないことや、各スイッチから取得したＭＡＣアドレステーブルに基づき、被疑ポートを複数もつスイッチが存在しないことを確認することで、Ｌ２ループが解消されたことを検出する。
【０２２９】
すると、情報処理装置１００は、スイッチ２００ｆ，２００ｇ，２００ｈ，２００ｉ，２００ｊ，２００ｋから部分結線情報としてＭＡＣアドレステーブルを収集する（ステップＳＴ３１）。Ｌ２ループ解消の確認のために、各スイッチからＭＡＣアドレステーブルを既に取得しているならば、改めて収集しなくてもよい。このタイミングで収集された部分結線情報は、ポートＰ７１，Ｐ８１間の結線、ポートＰ８３，Ｐ９２間の結線およびポートＰ９３，Ｐ１０１間の結線、ポートＰ１０２，Ｐ１１１間の結線およびポートＰ１１３，Ｐ１２２間の結線を示す情報を含む。
【０２３０】
情報処理装置１００は、ステップＳＴ２４，ＳＴ２７，ＳＴ２９，ＳＴ３１で収集された部分結線情報をマージすることで、スイッチ２００ｂ，２００ｃ，２００ｄ，２００ｅの間の全ての物理結線の情報を生成する。
【０２３１】
なお、ステップＳＴ２５で示した閉塞対象ポートの切替の前に、ステップＳＴ２８，ＳＴ２９で示した閉塞対象ポートの切替を行ってもよい。あるいは、ステップＳＴ２８，ＳＴ２９で示した閉塞対象ポートの切替の前に、ステップＳＴ３０，ＳＴ３１で示した閉塞対象ポートの切替を行ってもよい。
【０２３２】
ここで、以下では、特開２００６−３５２２６３号公報の方法を用いた、情報処理装置１００とスイッチとの通信例について補足する。以下に示す図３２〜図３３では、情報処理装置１００およびスイッチ２００，２００ａ，２００ｚを含むシステム（各装置は同一サブネットに属する）を例示し、情報処理装置１００がスイッチ２００ｚと通信する例を説明する。
【０２３３】
図３２は、ＭＡＣアドレス解決の例を示す図である。図３２に示す方法は、特開２００６−３５２２６３号公報の第６実施例に基づくものである。情報処理装置１００はスイッチ２００に接続されている。スイッチ２００，２００ａの間には２つの物理パスが存在している。スイッチ２００ｚは、単一の物理パスでスイッチ２００ａに接続されている。
【０２３４】
まず、情報処理装置１００は、スイッチ２００ｚのＩＰアドレス（“ＩＰｚ”とする）を問い合わせ先に指定したＡＲＰ要求（図３２では太い点線で図示している）を送信する。ＡＲＰ要求の宛先ＭＡＣアドレスは、ブロードキャストアドレス“ＢＣ”である。ＡＲＰ要求の送信元ＭＡＣアドレスは、情報処理装置１００のＭＡＣアドレス“ＭＰ”である。すると、ＡＲＰ要求は、スイッチ２００，２００ａの間をループする。ＡＲＰ要求がループするので、スイッチ２００，２００ａにより情報処理装置１００のＭＡＣアドレス“ＭＰ”が誤学習される。
【０２３５】
また、スイッチ２００ｚは、当該ＡＲＰ要求を頻繁に受信する。スイッチ２００ｚのＭＡＣアドレスは“ＭＺ”である。スイッチ２００ｚは、受信のたびにＡＲＰ応答を送信する（図３２では細い点線で図示している）。ＡＲＰ応答の宛先ＭＡＣアドレスは“ＭＰ”、送信元ＭＡＣアドレスは“ＭＺ”である。しかし、情報処理装置１００のＭＡＣアドレス“ＭＰ”は、スイッチ２００，２００ａにより誤学習されているので、ＡＲＰ応答も誤学習された経路に沿ってスイッチ２００，２００ａの間をループする（ステップＳＴ１０１）。
【０２３６】
通常、図３２で示されるように、ブロードキャストフレームが回っている方向と逆方向でユニキャストフレームがループする。情報処理装置１００は、サブネット内に実在しないＭＡＣアドレス“ＭＸ”が送信元ＭＡＣアドレスであるブロードキャストフレーム（図３２では太い実線で図示している）を大量に送信することで、ＡＲＰ要求をループから消滅させる。すると、スイッチ２００，２００ａによりループに沿って、ＭＡＣアドレス“ＭＸ”が学習される（ステップＳＴ１０２）。
【０２３７】
次に、例えば、宛先ＭＡＣアドレスが“ＭＸ”であり、送信元ＭＡＣアドレスが情報処理装置１００のＭＡＣアドレス“ＭＰ”である任意データ（図３２では細い実線で図示している）を、情報処理装置１００が送信する。すると、スイッチ２００，２００ａにより、ステップＳＴ１０２で形成されたループに向かって、情報処理装置１００のＭＡＣアドレス“ＭＰ”が学習され、ループから情報処理装置１００へ抜ける経路が一時的に確立される（ステップＳＴ１０３）。
【０２３８】
すると、スイッチ２００，２００ａ間をループしていたＡＲＰ応答が情報処理装置１００に到達する（ステップＳＴ１０４）。こうして、情報処理装置１００は、ＩＰアドレス“ＩＰｚ”に対応するＭＡＣアドレス“ＭＺ”を解決し得る。
【０２３９】
図３３は、ＳＮＭＰ通信の例を示す図である。図３３に示す方法は、特開２００６−３５２２６３号公報の第３実施例に基づくものである。図３３でも図３２と同じサブネットを想定する。
【０２４０】
情報処理装置１００は、情報処理装置１００およびスイッチ２００ｚのＭＡＣアドレス以外のＭＡＣアドレスを送信元としたフレームを連続してブロードキャストで送信する。これにより、通信させたい情報処理装置１００およびスイッチ２００ｚのＭＡＣアドレスを送信元ＭＡＣアドレスとするフレームのループを消滅させる。
【０２４１】
その上で、情報処理装置１００は、ＡＲＰ要求（図３３では太い実線で図示している）を送信する。ＡＲＰ要求の問い合わせ先ＩＰアドレスは、スイッチ２００ｚのＩＰアドレス“ＩＰｚ”である。ＡＲＰ要求の宛先ＭＡＣアドレスはブロードキャストアドレス“ＢＣ”である。ＡＲＰ要求の送信元ＩＰアドレスおよび送信元ＭＡＣアドレスは、サブネットに存在しないＩＰアドレス“ＩＰｘ”（図示を省略している）およびＭＡＣアドレス“ＭＸ”である。当該ＡＲＰ要求は、スイッチ２００，２００ａ間でループされる。また、スイッチ２００ｚは、当該ＡＲＰ要求を頻繁に受信する。
【０２４２】
スイッチ２００ｚは、ＡＲＰ要求を受信するたびに、宛先ＭＡＣアドレスを“ＭＸ”、送信元ＭＡＣアドレスをスイッチ２００ｚのＭＡＣアドレス“ＭＺ”としたＡＲＰ応答（図３３では太い点線で図示している）を送信する。
【０２４３】
ＭＡＣアドレス“ＭＸ”は、ループ内のスイッチ２００，２００ａにおいて誤学習されているため、結果的に、ループに向かってＡＲＰ応答が中継され、中継路に沿って各スイッチでスイッチ２００ｚのＭＡＣアドレス“ＭＺ”が正常に学習される（ステップＳＴ１１１）。
【０２４４】
この状態で、宛先ＭＡＣアドレスが“ＭＺ”、送信元ＭＡＣアドレスが“ＭＰ”であるＳＮＭＰ要求（図３３では細い実線で図示している）を情報処理装置１００から送ることで、当該ＳＮＭＰ要求がスイッチ２００ｚに到達する（ステップＳＴ１１２）。
【０２４５】
そして、スイッチ２００ｚは、ＳＮＭＰ要求に対してＳＮＭＰ応答（図３３では細い点線で図示している）を送信する。ＳＮＭＰ要求の送信経路に沿って、情報処理装置１００のＭＡＣアドレス“ＭＰ”も各スイッチで学習されるので、スイッチ２００ｚのＳＮＭＰ応答は、当該経路を戻るようにして、情報処理装置１００に到達する（ステップＳＴ１１３）。このようにＳＮＭＰ通信を用いて、情報処理装置１００は、スイッチ２００ｚからＭＡＣアドレステーブルを収集したり、スイッチ２００ｚにポート閉塞を指示したりすることができる。
【０２４６】
ステップＳＴ１１３において、スイッチ２００ｚからのＳＮＭＰ応答が、スイッチ２００，２００ａ間でループし続けることも考えられる（例えば、ＳＮＭＰ要求がスイッチ２００，２００ａ間を１回以上ループしてからスイッチ２００ｚに到達したとき）。その場合（例えば、一定時間経っても情報処理装置１００でＳＮＭＰ応答を受信しない場合）は、図３２のステップＳＴ１０３と同様に、例えば、送信元ＭＡＣアドレスが情報処理装置１００のＭＡＣアドレス“ＭＰ”であり、宛先ＭＡＣアドレスが“ＭＸ”である任意のフレームを、情報処理装置１００が送信してもよい。すると、ステップＳＴ１０３の場合と同様に、ループから情報処理装置１００へ抜ける経路が一時的に確立され、ＳＮＭＰ応答が情報処理装置１００に到達する。
【０２４７】
なお、第１の実施の形態の情報処理は、演算部１ｂにプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、プロセッサ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体１３に記録できる。
【０２４８】
例えば、プログラムを記録した記録媒体１３を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体１３に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＨＤＤ１０３などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０２４９】
１  情報処理装置
１ａ  通信部
１ｂ  演算部
２，３，４，５  中継装置
２ａ，２ｂ，２ｃ，３ａ，３ｂ，３ｃ，４ａ，４ｂ，４ｃ，５ａ，５ｂ，５ｃ  ポート
６  端末装置
Ｇ１，Ｇ２  ポートの組
Ｎ１，Ｎ２，Ｎ３  ネットワーク
【図１】
0006409414.tif 000002
【図２】
0006409414.tif 000003
【図３】
0006409414.tif 000004
【図４】
0006409414.tif 000005
【図５】
0006409414.tif 000006
【図６】
0006409414.tif 000007
【図７】
0006409414.tif 000008
【図８】
0006409414.tif 000009
【図９】
0006409414.tif 000010
【図１０】
0006409414.tif 000011
【図１１】
0006409414.tif 000012
【図１２】
0006409414.tif 000013
【図１３】
0006409414.tif 000014
【図１４】
0006409414.tif 000015
【図１５】
0006409414.tif 000016
【図１６】
0006409414.tif 000017
【図１７】
0006409414.tif 000018
【図１８】
0006409414.tif 000019
【図１９】
0006409414.tif 000020
【図２０】
0006409414.tif 000021
【図２１】
0006409414.tif 000022
【図２２】
0006409414.tif 000023
【図２３】
0006409414.tif 000024
【図２４】
0006409414.tif 000025
【図２５】
0006409414.tif 000026
【図２６】
0006409414.tif 000027
【図２７】
0006409414.tif 000028
【図２８】
0006409414.tif 000029
【図２９】
0006409414.tif 000030
【図３０】
0006409414.tif 000031
【図３１】
0006409414.tif 000032
【図３２】
0006409414.tif 000033
【図３３】
0006409414.tif 000034