(57)【要約】【課題】フレーム伝送におけるループ検出の精度を向上させる。【解決手段】ＳＷ１００は、複数のポート４０とループ検出部５６を備える。複数のポート４０のそれぞれは、伝送路からＭＡＣフレームを受信し、または伝送路へＭＡＣフレームを出力する。ループ検出部５６は、第１のポート４０で受信されたＭＡＣフレームのペイロードと、第１のポート４０とは異なる第２のポート４０で受信されたＭＡＣフレームのペイロードとが一致する場合に、ＭＡＣフレームのループを検出する。【選択図】図１２
2016163281.tif 000002
【特許請求の範囲】
【請求項１】
伝送路からＭＡＣフレームを受信し、または伝送路へＭＡＣフレームを出力する複数のポートと、
第１ポートで受信されたＭＡＣフレームのペイロードと、前記第１ポートとは異なる第２ポートで受信されたＭＡＣフレームのペイロードとが一致する場合に、ＭＡＣフレームのループを検出するループ検出部と、
を備えることを特徴とする通信装置。
【請求項２】
前記ループ検出部は、第１ポートで受信されたＭＡＣフレームのヘッダ情報と、第２ポートで受信されたＭＡＣフレームのヘッダ情報が異なっても、両者のペイロードが一致する場合、ＭＡＣフレームのループを検出することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記ループ検出部によりＭＡＣフレームのループが検出された場合に、前記第２ポートで受信されたＭＡＣフレームのヘッダ情報に所定のデータを付加するデータ付加部と、
前記所定のデータが付加されたＭＡＣフレームを所定のポートから出力するフレーム出力部と、
をさらに備えることを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記ループ検出部によりループが検出されたＭＡＣフレームの受信ポートと出力ポートの少なくとも１つに関する情報を外部装置へ出力するループ情報出力部をさらに備えることを特徴とする請求項１から３のいずれかに記載の通信装置。
【請求項５】
第１のＭＡＣフレームが受信された場合に、前記第１のＭＡＣフレームの送信元アドレス、送信先アドレス、受信ポート情報を対応付けてＦＤＢ（Forwarding DataBase）に記録するＦＤＢ更新部と、
第２のＭＡＣフレームが受信された場合に、前記ＦＤＢを参照し、前記第２のＭＡＣフレームの送信先アドレスと送信元アドレスに基づいて、前記第２のＭＡＣフレームの出力ポートを決定する決定部と、
をさらに備えることを特徴とする請求項１から４のいずれかに記載の通信装置。
【請求項６】
第１のＭＡＣフレームが受信された場合に、前記第１のＭＡＣフレームの送信元アドレス、受信時刻、受信ポート情報を対応付けてＦＤＢに記録するＦＤＢ更新部と、
第２のＭＡＣフレームが受信された場合に、前記ＦＤＢを参照し、前記第２のＭＡＣフレームの送信先アドレスに対応する受信ポートであって、最も古い受信時刻に対応する受信ポートを、前記第２のＭＡＣフレームの出力ポートとして決定する決定部と、
をさらに備えることを特徴とする請求項１から４のいずれかに記載の通信装置。
【請求項７】
あるＭＡＣフレームが受信された場合に、前記ＭＡＣフレームの受信時刻を含む情報をＦＤＢに記録するＦＤＢ更新部をさらに備え、
前記ループ検出部は、前記ＦＤＢに記録された前記ＭＡＣフレームの受信時刻が所定の条件を満たす場合に、前記ＭＡＣフレームをループ検出の対象から除外することを特徴とする請求項１から６のいずれかに記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術に関し、特に通信装置に関する。
【背景技術】
【０００２】
レイヤ２スイッチは一般的にＦＤＢ（Forwarding DataBase）を備える。ＦＤＢはＭＡＣアドレステーブルとも呼ばれ、スイッチのポート毎に受信されたフレームの送信元が記録される。スイッチは、受信したフレームの送信先がＦＤＢに記録された送信元に一致する場合、記録されたポートへ当該フレームを出力する。
【０００３】
図１は、レイヤ２スイッチが中継するフレームのフォーマット例を示す。同図のフレームは、典型的にはＭＡＣフレーム（言い換えればイーサネット（登録商標）フレーム）である。同図の送信先アドレスと送信元アドレスは、例えば送信先装置のＭＡＣアドレスと送信元装置のＭＡＣアドレスである。
【０００４】
図２は、レイヤ２スイッチ（以下「ＳＷ」とも呼ぶ。）の動作を模式的に示す。同図のＳＷは、１〜４を記した４つのポート１０を備える。また、ＳＷは、端末Ａから送信されたフレーム１２を受信し、また端末Ｂから送信されたフレーム１４を受信する。図３はＦＤＢの例を示す。同図の送信元欄のＡ、Ｂは、例えば端末Ａ、端末ＢのＭＡＣアドレスである。またポート欄の数字は受信ポートの識別情報である。
【０００５】
図２のＳＷが送信元Ａのフレームを受信すると、ＳＷのＦＤＢには図３（ａ）で示す情報が記録される。次にＳＷが送信元Ｂ、送信先Ａのフレームを受信したとする。ＦＤＢの項１から送信先Ａはポート１に接続されていることが判るため、このフレームはポート１から出力される。また、送信元Ｂはポート３に接続されていることが学習され、ＦＤＢは図３（ｂ）の状態になる。同じ送信元のフレームが別のポートで受信された場合、スイッチは送信元との接続が変更されたと判断し、ＦＤＢから元のポート情報を削除し、新たに受信されたポート情報をＦＤＢへ記録する。
【０００６】
またＳＷは、ＦＤＢを用いたループ検出機能を備えることがある。図４は、ループが発生した状況を模式的に示す。例えば、ＳＷが端末Ａから受信したフレームをフラッディングし、ポート３から出力したフレームをポート２で受信する状況である。図５は、ループ発生時のＦＤＢを示す。フレームの伝送でループが発生すると、同じ送信元を持つフレームが異なるポートで繰り返し受信され、図５（ａ）と図５（ｂ）間でのＦＤＢの書き換えが頻繁に発生する。したがって、同じ送信元が別のポートに移動するようなＦＤＢの書き換えを監視することでループを検出することができる。
【０００７】
ＦＤＢを用いたループ検出方法として、設定時間内に同じ送信元が別ポートに学習された場合にループと判定することで判定時間を短縮することも提案されている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−１９４７５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来のループ検出方法では、ルータを含む通信経路で発生したループの検出が困難であった。図６は、ルータを含む通信経路でループが発生した状況を模式的に示す。同図は、端末Ａから送信されＳＷのポート１で受信されたフレーム１６が、ＳＷのポート３から出力され、ルータを含む通信経路で送信元アドレスと送信先アドレスが付け替えられてフレーム１８となり、ポート２へ戻る状況を示している。この場合、ＳＷのＦＤＢは、フレーム１６の受信時に図７（ａ）となり、フレーム１８の受信時に図７（ｂ）となるため、送信元Ａの学習ポートの移動に基づいてループを検出することはできない。
【００１０】
本発明はこうした状況に鑑みてなされたものであり、主な目的は、フレーム伝送におけるループ検出の精度を向上させるための技術を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明のある態様の通信装置は、伝送路からＭＡＣフレームを受信し、または伝送路へＭＡＣフレームを出力する複数のポートと、第１ポートで受信されたＭＡＣフレームのペイロードと、第１ポートとは異なる第２ポートで受信されたＭＡＣフレームのペイロードとが一致する場合に、ＭＡＣフレームのループを検出するループ検出部と、を備える。
【００１２】
なお、以上の構成要素の任意の組合せ、本発明の表現を、方法、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１３】
本発明によれば、フレーム伝送におけるループ検出の精度を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】レイヤ２スイッチが中継するフレームのフォーマット例を示す図である。
【図２】レイヤ２スイッチの動作を模式的に示す図である。
【図３】ＦＤＢの例を示す図である。
【図４】ループが発生した状況を模式的に示す図である。
【図５】ループ発生時のＦＤＢを示す図である。
【図６】ルータを含む通信経路でループが発生した状況を模式的に示す図である。
【図７】ＦＤＢを示す図である。
【図８】ループ発生により生じる問題の一例を示す図である。
【図９】ループ発生により生じる問題の一例を示す図である。
【図１０】ループが発生した状況を模式的に示す図である。
【図１１】ループ誤検出の例を示す図である。
【図１２】実施の形態のＳＷの機能構成を示すブロック図である
【図１３】図１２のＦＤＢの構成を示す図である。
【図１４】図１２のループ情報保持部の構成を示す図である。
【図１５】ルータを含む通信経路でのループ発生の状況を模式的に示す図である。
【図１６】図１５におけるＳＷのＦＤＢを示す図である。
【図１７】図１５におけるＳＷのループ情報保持部を示す図である。
【図１８】ループ発生の状況を示す図である。
【図１９】図１８のＦＤＢによるフレームの転送経路を示す図である。
【図２０】ループ発生の状況を示す図である。
【図２１】図２０におけるＳＷのＦＤＢを示す図である。
【図２２】ループ発生の状況を示す図である。
【図２３】ループ発生の状況を示す図である。
【発明を実施するための形態】
【００１５】
通信網でループが発生すると、同じフレームが増殖して帯域を圧迫することがあり、またフレームの転送が正常に行われなくなることがある。そのため、ループが発生した場合は、その早期発見が重要となる。
【００１６】
図８と図９は、ループ発生により生じる問題の一例を示す。図８のフレーム２０（送信先は端末Ｂ）はＳＷ１、ＳＷ２、ＳＷ３の経路で伝送され、フレーム２２（送信先は端末Ｃ）はＳＷ１、ＳＷ３、ＳＷ２の経路で伝送されることとする。この場合、図８のＳＷ２のＦＤＢとＳＷ３のＦＤＢは、送信元Ａに対応するポートが頻繁に書き換えられる。そのため、タイミングによっては、ＳＷ２のＦＤＢとＳＷ３のＦＤＢが図９に示す状態になることがある。この場合、フレーム２４（送信先は端末Ａ）を正常に転送できない。
【００１７】
同様に図４で示したループ発生の場合も、送信先が端末Ａのフレームを正常に転送できなくなる。すなわち、送信先が端末Ａのフレームは本来ポート１へ出力されるべきだが、ＦＤＢが図５（ｂ）に示す状態の場合、送信先が端末Ａのフレームをポート２へ出力してしまう。
【００１８】
既述したように、ＦＤＢにおいて特定の送信元の学習ポートが頻繁に書き換わることを監視する従来のループ検出方法では、ルータを含む通信経路で発生したループの検出が困難であった。また、ＳＷで受信されたフレーム全体のデータを比較して、一致する場合にループを検出する方法も考えられるが、図１０で示すように、フレームに設定されるタグ（典型的にはＶＬＡＮタグ）は、ループ経路内のＳＷで書き換えられることがある。例えば、ＳＷのポート１で受信されたフレーム２６のタグは「Ｃ」である一方、フレーム２６のループフレームであるフレーム２８のタグは「Ｃ’」となることがある。この場合、フレーム全体としては不一致となるため、ループを検出できない。また、ループ経路にルータが存在し、送信先と送信元が書き換えられる場合もやはりループを検出できない。
【００１９】
また、従来のループ検出方法ではループを誤検出してしまうことがある。図１１に示すように、送信元装置や送信先装置が同じであっても、フレームの送信元アプリケーションや送信先アプリケーションが異なる場合、フレームの転送経路が異なることがある。図１１の例では、ルータは、フレームの送信元アプリケーションまたは送信先アプリケーションに応じて異なる転送経路を選択する。例えば、フレームで指定された宛先ポート番号や送信元ポート番号にしたがって転送経路を選択する。具体的には、端末Ａから送信されたフレーム３０をＳＷ１へ転送し、フレーム３０はＳＷ２のポート１に到着する。その一方、端末Ａから送信されたフレーム３２をＳＷ３へ転送し、フレーム３２はＳＷ２のポート２に到着する。その結果、ＳＷ２のＦＤＢにおいて送信元Ａが別のポートに移動することを繰り返すため、ＳＷ２はループを検出してしまう。
【００２０】
これを踏まえ、実施の形態の通信装置は、自装置の第１ポートで受信されたＭＡＣフレームのペイロードと、自装置の第２ポートで受信されたＭＡＣフレームのペイロードとが一致する場合にループを検出する。言い換えれば、同じペイロードのＭＡＣフレームが異なるポートで受信された場合にループを検出する。これにより、レイヤ２網におけるループ検出の精度を向上し、言い換えれば、ループ検出の確実性を高めつつ、ループの誤検出を抑制する。なお、実施の形態の通信装置は、典型的にはレイヤ２スイッチであり、以下「ＳＷ」と呼ぶ。
【００２１】
図１２は、実施の形態のＳＷ１００の機能構成を示すブロック図である。ＳＷ１００はは、複数のポート（区別不要な場合、各ポートをポート４０と呼ぶ）と、制御部４２と、記憶部４４を備える。ポート４０は、伝送路からＭＡＣフレームを受信し、また、ＭＡＣフレームを伝送路へ送出する。記憶部４４は各種データを保持する記憶領域である。制御部４２は、記憶部４４に格納されたデータを参照し、また適宜更新しつつ、フレームの転送に関する処理を実行する。
【００２２】
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリをはじめとする素子や機械装置、電子回路で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現される。ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００２３】
例えば、制御部４２の機能は、各機能ブロックに対応するプログラムをＣＰＵが実行することにより実現されてもよい。また記憶部４４の機能は、メモリやストレージがデータを記憶することにより実現されてもよい。またＳＷ１００は、ボックス型のレイヤ２スイッチでもよく、シャーシ型のレイヤ２スイッチでもよい。シャーシ型の場合、ポート４０、制御部４２、記憶部４４の機能は、制御盤やインタフェース盤等の連携によって実現されてもよい。なおＳＷ１００は、レイヤ２スイッチとして周知の機能（不図示）をさらに備えてもよいことはもちろんである。
【００２４】
記憶部４４は、ＦＤＢ４６とループ情報保持部４８を含む。図１３はＦＤＢ４６の構成を示す。ＦＤＢ４６は、ＭＡＣフレームのヘッダ情報とペイロード、ＭＡＣフレームを受信したポートの識別情報（以下「受信ポート情報」と呼ぶ。）を対応付けて保持する。ＦＤＢ４６に格納されるヘッダ情報は、送信先ＭＡＣアドレス（単に「送信先アドレス」とも呼ぶ。）と、送信元ＭＡＣアドレス（単に「送信先アドレス」とも呼ぶ。）と、ＶＬＡＮタグ（単に「タグ」とも呼ぶ。）を含む。ペイロードは、例えばＩＰパケット（ＩＰデータグラム）である。以下、ＦＤＢ４６の１つのレコードを学習情報とも呼ぶ。
【００２５】
図１４は、ループ情報保持部４８の構成を示す。ループ情報保持部４８は、異なるポート４０で受信された同一ペイロードのＭＡＣフレームに関する情報と、ループの検出回数とを対応付けて保持する。具体的には、第１のポートで受信されたＭＡＣフレームの情報（ループフレーム情報１）と、第２のポートで受信されたＭＡＣフレームの情報（ループフレーム情報２）と、ループ検出回数を対応付けて保持する。ループフレーム情報は、送信先アドレス、送信元アドレス、タグ、受信ポートを対応付けた情報である。
【００２６】
図１２に戻り、制御部４２は、ＦＤＢ更新部５０、方路決定部５２、フレーム転送部５４、ループ検出部５６、ループ情報出力部５８を含む。
【００２７】
ＦＤＢ更新部５０は、ポート４０でＭＡＣフレームが受信された場合に、そのＭＡＣフレームで指定された送信先アドレス・送信元アドレス・タグ・ペイロードと、そのＭＡＣフレームの受信ポートの識別情報とを対応付けた学習情報をＦＤＢ４６へ格納する。実施の形態では、新たに受信したＭＡＣフレームから抽出した新たな学習情報と、既にＦＤＢ更新部５０に格納済の学習情報の少なくとも一部が異なれば、新たな学習情報をＦＤＢ４６へ格納する。ＦＤＢ更新部５０は、各学習情報の格納日時を記録しておき、格納日時から所定時間が経過した学習情報を順次削除してもよい。
【００２８】
変形例として、ＦＤＢ更新部５０は、新たな学習情報と既存の学習情報間で送信元・送信先・タグ（すなわちヘッダ情報）と受信ポートが一致すれば、新たな学習情報をＦＤＢ４６へ格納することを抑制してもよい。また、新たな学習情報と既存の学習情報間で送信元・送信先・タグと受信ポートが一致するがペイロードが異なる場合は、既存の学習情報を削除し、新たな学習情報を記録してもよく、また、既存の学習情報のペイロード部分を更新してもよい。
【００２９】
方路決定部５２は、受信されたＭＡＣフレームの出力ポートを、ＦＤＢ４６を参照して決定する。実施の形態では、受信フレームで指定された送信先アドレスを送信元アドレスとして記録した学習情報が存在するか否かを検索する。そして、該当する学習情報に記録された受信ポートを、受信フレームの出力ポートとして決定する。該当する学習情報がなければ、フレームを受信したポートを除く全てのポートを出力ポートとして決定する（フラッディング）。
【００３０】
すなわち実施の形態の方路決定部５２は、ＦＤＢに基づく公知の方路決定処理を実行する。受信フレームで指定された送信先アドレスを送信元アドレスとして記録した学習情報が複数存在し、各学習情報に記録された受信ポートが異なる場合、異なる複数の受信ポートの中で１つの受信ポートを出力ポートとして選択してもよい。また、異なる複数の受信ポートのそれぞれを出力ポートとして選択してもよい。
【００３１】
フレーム転送部５４は、方路決定部５２により決定された１つまたは複数の出力ポートへフレームを転送し、転送先のポート４０からＭＡＣフレームを出力させる。
【００３２】
ループ検出部５６は、ＦＤＢ更新部５０がＦＤＢ４６を更新した場合、または定期的に（例えば１０ミリ秒おきに）、ＦＤＢ４６に格納された学習情報を参照してＭＡＣフレームのループを検出する。ループ検出部５６は、あるポート４０で受信されたＭＡＣフレームのペイロードと、別のポート４０で受信されたＭＡＣフレームのペイロードが一致する場合にループを検出する。ループ検出部５６は、受信ポート情報が異なる第１学習情報と第２学習情報間で、送信先・送信元・タグ（すなわちヘッダ情報）の少なくとも一部が異なっても、両者のペイロードが一致すればループが発生していると判定する。
【００３３】
具体的には、ループ検出部５６は、ＦＤＢ４６において、受信ポートが異なり、かつ、ペイロードが一致する学習情報を検索する。受信ポートが異なり、かつ、ペイロードが一致する複数の学習情報が存在する場合、ループ検出部５６は、各学習情報の送信先、送信元、タグのデータをループ情報保持部４８へ格納する。具体的には、一方の学習情報のヘッダ情報＋受信ポート情報をループフレーム情報１へ格納し、他方の学習情報のヘッダ情報＋受信ポート情報をループフレーム情報２へ格納する。そして回数（ループ検出回数）を初期値の１とする。ループ検出部５６は、ペイロードが一致する複数の学習情報が、既存のループフレーム情報に一致する場合、既存のループフレーム情報に対応づけられた回数をインクリメントする。
【００３４】
ループ検出部５６は、ループ情報保持部４８においてループフレーム情報に対応付けられた回数が所定の閾値（例えば２０）以上になった場合に、ＭＡＣフレームのループが発生していると判定する。ループ検出部５６は、回数が、所定期間内に所定の閾値以上になった場合、例えば１秒以内に２０以上になった場合に、ループと判定してもよい。これにより、複数の端末から偶然、同一ペイロードのＭＡＣフレームがＳＷ１００へ送信されただけでループを検出してしまうことを抑制し、検出精度を高める。
【００３５】
ループ情報出力部５８は、ループ検出部５６によりＭＡＣフレームのループが検出された場合、ループの発生を示すアラート情報を、保守端末や監視装置等の所定の外部装置へ送信する。ループ情報出力部５８は、ＳｙｓｌｏｇやＳＮＭＰ−ＴＲＡＰを使用してアラート情報を外部装置へ送信してもよい。アラート情報は、ループ情報保持部４８において回数が閾値を超過したループフレーム情報１、ループフレーム情報２を含むものとしてもよい。ループ情報出力部５８は、ループフレームの出力ポートをＦＤＢ４６を参照して識別し、その出力ポート情報と、ループフレーム情報が含む受信ポート情報を含むアラート情報を出力してもよい。
【００３６】
以上の構成によるＳＷ１００の動作を説明する。
図１５は、ルータを含む通信経路でのループ発生の状況を模式的に示す。同図では、ＳＷ１００のポート３〜ポート２間でループが発生しており、端末Ａから送信されたフレーム６０・フレーム６２（ヘッダ情報はフレーム６０と同じ）が、それぞれフレーム６４・フレーム６６としてループしている。例えば、ポート３の先にレイヤ１のリピータハブ（不図示）が設置され、そのリピータハブと端末Ｂが接続され、また誤ってリピータハブとルータが接続されて通信経路のループが生じている状況である。フレーム６４、フレーム６６のヘッダ情報は、ループ経路内のルータによりフレーム６０、フレーム６２とは異なるものに書き換えられている。
【００３７】
図１６は、図１５におけるＳＷ１００のＦＤＢ４６を示し、図１７は、図１５におけるＳＷ１００のループ情報保持部４８を示す。ポート１でフレーム６０が受信された場合、ＦＤＢ更新部５０は、図１６（ａ）の項３の学習情報を記録する。また、ポート１でフレーム６２が受信された場合、図１６（ａ）の項４の学習情報を記録する。ここでは、ＦＤＢ４６の学習情報において端末Ｂがポート３に学習されていることとする。
【００３８】
方路決定部５２は、学習情報を参照してフレーム６０およびフレーム６２の出力先ポートをポート３に決定し、フレーム転送部５４は、フレーム６０およびフレーム６２をポート３から出力する。ポート３から出力されたフレーム６０、フレーム６２は、ルータによりヘッダ情報が書き換えられたフレーム６４、フレーム６６としてＳＷ１００のポート２で受信される。フレーム６４、フレーム６６は、送信先アドレスに応じてポート３から出力され、ループを繰り返すかもしれないし、またフラッディングされるかもしれない。
【００３９】
ＦＤＢ更新部５０は、ポート２でフレーム６４が受信された場合、図１６（ｂ）の項５の学習情報を記録する。ループ検出部５６は、項３の学習情報と項５の学習情報とのペイロード一致を検出し、図１７の項１のループ情報（ただし回数は１）をループ情報保持部４８に記録する。ＦＤＢ更新部５０は、ポート２でフレーム６６が受信された場合、図１６（ｂ）の項６の学習情報を記録する。ループ検出部５６は、項４の学習情報と項６の学習情報とのペイロード一致を検出し、図１７の項１の回数をインクリメントする。
【００４０】
端末Ａが端末Ｂ宛の新たなフレーム（データ３等）を送信する都度、ペイロードが一致する学習情報が追加され、ループ検出部５６は図１７の項１の回数をインクリメントする。またフレーム６４、フレーム６６がループを繰り返す場合も、ループ検出部５６は、学習情報間でのペイロード一致を検出し、図１７の項１の回数をインクリメントする。したがって、実際にループが発生している場合、ループ情報保持部４８の回数が所定のループ検出閾値に到達することになる。ループ検出部５６は、図１７の項１の回数がループ検出閾値以上になった場合に、ループが発生していると判定する。ループ情報出力部５８は、ループ発生を示すアラート情報を保守端末等へ通知する。
【００４１】
実施の形態のＳＷ１００によると、外部のルータやスイッチにより改変されないフレームのペイロードをループ判定の基準とするため、ループ経路上のルータやスイッチが、送信先、送信元、タグ等のヘッダ情報を書き換えた場合もフレームのループを検出できる。なお、ルータだけでなく、レイヤ３スイッチやレイヤ４スイッチ等、レイヤ２より上位の伝送装置がループ経路上に存在する場合も同様の効果を奏することはもちろんである。また、ＭＡＣフレームのペイロードの内容は通常、送信元のアプリケーション毎に異なる。したがって、図１１で示したように、送信元のアプリケーションによって伝送経路が変わる場合も、例えば図１１のＳＷ２に実施の形態のＳＷ１００を適用することで、ループの誤検出を抑制することができる。
【００４２】
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せによりいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、変形例を示す。
【００４３】
第１変形例を説明する。上記実施の形態では、ＦＤＢ４６の学習情報として、送信元アドレスと受信ポートに加えて、送信先アドレス、タグ、ペイロードを記録することとしたが、ＦＤＢ４６の学習情報の態様はこの構成に限られない。例えば、実施の形態におけるループ検出方法の原理的には、送信元アドレス、ペイロード、受信ポートを学習情報としてもよい。また、ＦＤＢ４６の学習情報は一般的な送信元アドレスと受信ポートとし、送信元アドレス、ペイロード、受信ポートを対応付けたループ検出テーブルをＦＤＢ４６とは別に設けてもよい。ループ検出部５６は、ループ検出テーブルを参照してＭＡＣフレームのループを検出してもよい。
【００４４】
第２変形例を説明する。図１８は、図８に対応し、ループ発生の状況を示す。同図のＳＷ１・ＳＷ２・ＳＷ３はいずれも実施の形態のＳＷ１００に対応する。図８に関連して説明したように、フレーム６８は、ＳＷ１〜ＳＷ２〜ＳＷ３〜端末Ｂの経路で伝送され、フレーム７０は、ＳＷ１〜ＳＷ３〜ＳＷ２〜端末Ｃの経路で伝送される。その結果、ＳＷ１・ＳＷ２・ＳＷ３のＦＤＢ４６は図１８に示す状態になる。
【００４５】
各ＳＷの方路決定部５２は、ポートでＭＡＣフレームが受信された場合に、ＦＤＢ４６を参照し、受信フレームの送信先アドレスと送信元アドレスに基づいて受信フレームの出力ポートを決定する。具体的には、受信フレームの送信先アドレスを送信元アドレスとし、受信フレームの送信元アドレスを送信先アドレスとする学習情報を検索し、その学習情報に記録された受信ポートを受信フレームの出力ポートとして決定する。
【００４６】
図１９は、図１８のＦＤＢによるフレームの転送経路を示す。端末Ｂから送信されたフレーム７２は、ＳＷ３〜ＳＷ２〜ＳＷ１〜端末Ａの経路で伝送され、端末Ｃから送信されたフレーム７４は、ＳＷ２〜ＳＷ３〜端末Ａの経路で伝送される。このように、本変形例の構成によると、ループが発生している状況においても正しい転送先へフレームを転送することができる。
【００４７】
なお、図１８、図１９のＦＤＢ４６はタグおよびペイロードを含まないが、これらを含む実施の形態のＦＤＢ４６と同じ構成であってもよい。方路決定部５２は、学習条件の検索条件に受信フレームのタグを加えてもよく、受信フレームのタグを記録した学習情報の受信ポートを受信フレームの出力ポートとして決定してもよい。また、ループ検出部５６は、実施の形態と同じ方法でループを検出し、アラートを出力させてもよい。
【００４８】
第３変形例を説明する。図２０は、図４に対応し、ループ発生の状況を示す。ＳＷのＦＤＢ更新部５０は、ポートでＭＡＣフレームが受信されると、その受信フレームの送信先アドレス、送信元アドレス、ペイロード、受信時刻、受信ポート情報を対応付けた学習情報をＦＤＢ４６に記録する。
【００４９】
図２１は、図２０におけるＳＷのＦＤＢを示す。図２１（ａ）のＦＤＢを「第１ＦＤＢ」と呼び、図２１（ｂ）のＦＤＢを「第２ＦＤＢ」と呼ぶ。フレーム７６が受信されると、ＦＤＢ更新部５０は、図２１（ａ）の第１ＦＤＢにおける項２の学習情報を記録する。タグを含む学習情報を記録してもよいことはもちろんである。また、フレーム７６のループフレームであるフレーム７８が受信されると、ＦＤＢ更新部５０は、図２１（ａ）の第１ＦＤＢにおける項３の学習情報を記録する。
【００５０】
ＦＤＢ更新部５０は、送信先、送信元、ペイロードの組み合わせをキーとして特定される学習情報のうち、最も受信時刻が古い学習情報を図２１（ｂ）の第２ＦＤＢに記録する。図２０の例では、フレーム７６の受信を契機に、図２１（ｂ）の第２ＦＤＢにおける項１の学習情報を記録する。その一方、フレーム７８の受信時は、送信先、送信元、ペイロードの組み合わせが一致し、かつ、受信時刻がより古い学習情報が第１ＦＤＢの項２に存在するため、図２１（ｂ）の第２ＦＤＢの更新を抑制する。
【００５１】
方路決定部５２は、ポートでＭＡＣフレームが受信されると、ＦＤＢ４６を参照し、受信フレームの送信先アドレスに対応する受信ポートであって、最も古い受信時刻に対応する受信ポートを、受信フレームの出力ポートとして決定する。図２０の例では、方路決定部５２は、フレーム８０が受信されると、図２１（ｂ）の第２ＦＤＢにおける項１の学習情報にしたがって、ポート１を出力ポートとして決定する。なお、図２１（ａ）の第１ＦＤＢを参照し、送信先・送信元が対応する項２・項３の学習情報のうち、受信時刻が最も古い項２の学習情報にしたがって、ポート１を出力ポートとして決定してもよい。これにより、フレーム８０はポート１から出力されて端末Ａに到達し、すなわち、正しい宛先へフレームを転送することができる。
【００５２】
なお、第２変形例と第３変形例に記載の方路決定方法は、ループ検出部５６によりフレームのループが検出された場合に適用されてもよい。例えば、ＳＷの方路決定部５２は、ループが検出されるまでは従来の方法にて受信フレームの出力ポートを決定し、ループが検出された場合に各変形例の方法で出力ポートを決定するよう切り替えてもよい。
【００５３】
第４変形例を説明する。実施の形態では言及していないが、ＳＷ１００は除外情報保持部と除外情報登録部をさらに備えてもよい。除外情報保持部は、ループ検出の対象外とするＭＡＣフレームのペイロードの内容を保持する。例えば、除外情報保持部は、イーサネットＯＡＭ（Operations, Administration, and Maintenance）で定められた監視フレームや保守フレームのペイロードを保持する。除外情報登録部は、保守端末等の外部装置から、特定のペイロードを指定した除外登録要求を受け付けた場合に、指定されたペイロードのデータを除外情報保持部へ格納する。
【００５４】
ループ検出部５６は、ＦＤＢ４６の複数の学習情報間でペイロード同一を検出しても、そのペイロードが除外情報保持部に登録されている場合、ループ発生の検出を抑制する。例えば、ループ情報保持部４８へのループ情報の記録を抑制し、またはループ検出回数のインクリメントを抑制してもよい。この態様によると、通信システムの運用上（例えば保守や監視のために）、同一ペイロードのＭＡＣフレームを伝送する必要がある場合に、ループを検出してしまうことを抑制できる。
【００５５】
第３変形例と第４変形例に関連する第５変形例を説明する。第５変形例では、ループ検出部５６は、ＦＤＢ４６に記録されたＭＡＣフレームの受信時刻が所定の条件を満たす場合に、そのＭＡＣフレームをループ検出の対象から除外する。具体的には、第４変形例に記載した除外情報登録部は、ＦＤＢ４６に記録されたＭＡＣフレームの受信時刻が所定の条件を満たす場合に、そのＭＡＣフレームのペイロードを除外情報保持部に記録することにより、ループ検出部５６によるループ検出の対象から除外する。所定の条件は、受信時刻の規則性に関する条件であってもよく、例えばＭＡＣフレームを定期的に受信することを示す受信時刻の態様を定めたものであってもよい。
【００５６】
本変形例のＦＤＢ４６は、第３変形例・図２１（ａ）で説明したように受信時刻を含む。ＦＤＢ更新部５０は、ポート４０でＭＡＣフレームが受信される都度、フレームの受信時刻を含む学習情報を図２１（ａ）の第１ＦＤＢに記録する。除外情報登録部は、送信先、送信元、（オプションとしてタグ）、ペイロード、受信ポートが一致する複数の学習情報を検索する。そして、それらの学習情報間の受信時刻の差が一定（例えば２秒等）、もしくは所定の範囲（例えば１．９秒から２．１秒の範囲）である場合に、学習情報のペイロードを除外情報保持部に記録する。判定基準とする受信時刻の差は、除外すべきペイロードを有するフレーム（例えば監視フレーム）の送信間隔であってもよい。
【００５７】
この態様によると、同じフォーマットの監視フレーム（例えばＯＡＭのＣＣＭフレーム）等が複数装置から発信されている場合に、当該フレームを自律的にループ検出対象外とする。これにより、本来検出すべきでないループの誤検出を防止できる。
【００５８】
第６変形例を説明する。実施の形態では、同一ペイロードのフレームを異なるポートで受信した回数が所定の閾値以上になった場合に、ループが発生していると判定した。本変形例では、実施の形態のＦＤＢ４６（図１３、図１６）を使用する一方、ループ情報保持部４８（図１４、図１７）は使用せずにループの検出精度を向上する。
【００５９】
具体的には、ＳＷ１００の制御部４２はデータ付加部をさらに備える。本変形例のループ検出部５６は、ＦＤＢ４６で同一ペイロードかつ異なる受信ポートの学習情報を検出した場合に、ＭＡＣフレームのループを検出する。データ付加部は、ＭＡＣフレームが受信されてＦＤＢ更新部５０により学習情報が記録され、そのＭＡＣフレームの学習情報に基づいてループ検出部５６がループを検出すると、そのＭＡＣフレームに対して所定のデータを付加する。具体的には、新たなＶＬＡＮタグ（例えば４バイト長）を既存のＶＬＡＮタグの前に追加する。フレーム転送部５４は、新たなタグが付加されたＭＡＣフレームを、方路決定部５２が決定した出力ポートから出力する。
【００６０】
図２２は、レイヤ２網でループが発生している状況を示す。ＳＷ１〜ＳＷ３のループ検出部５６がループを検出すると、ＳＷ１〜ＳＷ３のデータ付加部は、ループを検出したフレームに対して新たなＶＬＡＮタグを挿入する。図２２の例では、最初にＳＷ１はフレーム８２を受信し、ＳＷ２側へ送出する。フレーム８２がＳＷ２〜ＳＷ３の経路でＳＷ１に戻ると、ＳＷ１のループ検出部５６はループを検出し、ＳＷ１のデータ付加部はタグＥを追加する。その後、ＳＷ２のデータ付加部はタグＦを追加し、ＳＷ３のデータ付加部はタグＧを追加し、さらにＳＷ１のデータ付加部はタグＨ（不図示）を追加していく。
【００６１】
ループが発生していた場合、タグの追加によりループフレームが長くなっていき、最終的にはフレーム長が予め定められた上限値を超過し、ループフレームはいずれかのＳＷで廃棄される。したがって、各ＳＷにおけるフレームの廃棄を監視することでループを検出することができる。本変形例によると、偶然同じデータが別の送信元から送信された場合や、監視フレーム等の一定フォーマットのフレームが複数の送信元から発信されている場合にループの誤検出を防止できる。なお、新たなタグの設定位置または既存のタグを残す位置は、レイヤ２網の設定に応じて、経路上のスイッチやルータ等で廃棄判定がなされない位置に設定すればよい。
【００６２】
次にループ経路を特定する方法を説明する。例えば、保守端末等から、あるＳＷ（例えばＳＷ１）で廃棄されたフレームのペイロードをキーとして、各ＳＷ（例えばＳＷ１〜３）のＦＤＢ４６の学習情報を検索し、そのペイロードが学習情報として登録されているか否かを判定する。そして登録があるＳＷの情報を保守端末等の画面に表示することで、フレームがループした経路を表示することができる。また、ＦＤＢ４６の検索に代えて、廃棄されたフレームに付加された複数のタグと、各ＳＷで付加するように設定されたタグとを照合することによっても、ループ経路を推定することができる。
【００６３】
第７変形例を説明する。本変形例のＳＷのループ情報出力部５８は、ループ検出部５６によりＭＡＣフレームのループが検出された場合に、そのＭＡＣフレームの受信ポートと出力ポートの少なくとも１つに関する情報を、保守端末等の外部装置へ出力する。
【００６４】
図２３は、レイヤ２網でループが発生している状況を示す。同図では、フレーム８４がループすることとする。ペイロード「データ１」を含むフレーム８４のループがＳＷ１で検出された場合、ＳＷ１のループ情報出力部５８は、ＦＤＢ４６の学習情報を参照して、フレーム８４の受信ポートと出力ポートを特定する。例えば、ＦＤＢ４６のヘッダ情報とデータ１が対応付けられた受信ポートを識別し、そのヘッダ情報に基づいて方路決定部５２と同様の方法で出力ポートを識別してもよい。ループ情報出力部５８は、フレーム８４の受信ポートと出力ポートの識別情報を保守端末へ送信する。ＳＷ２およびＳＷ３のループ情報出力部５８も同様に動作する。
【００６５】
これにより、保守端末では、保守対象システム内の各ＳＷにおけるループフレームの入出力ポートを識別できる。例えば、図２３で示すように、各ＳＷの入力ポートと出力ポートを、ＳＷ内部への矢印とＳＷ外部への矢印で表示してもよい。なお、保守端末側から各ＳＷに対して定期的にループフレームの入出力ポートの情報を問い合わせてもよい。本変形例の態様によると、ネットワーク上でのループ発生箇所を保守端末側で自動的に収集し、また、ループ発生箇所を直観的に分かりやすく表示することができる。
【００６６】
なお、第６変形例および第７変形例の構成は、レイヤ２網を構成する複数のＳＷの一部のみに適用されてもよい。例えば、既存網の一台のみを変形例のＳＷに置換えることでも効果を享受できる。
【００６７】
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【００６８】
４０  ポート、  ４６  ＦＤＢ、  ４８  ループ情報保持部、  ５０  ＦＤＢ更新部、  ５２  方路決定部、  ５４  フレーム転送部、  ５６  ループ検出部、  ５８  ループ情報出力部、  １００  ＳＷ。
【図１】
2016163281.tif 000003
【図２】
2016163281.tif 000004
【図３】
2016163281.tif 000005
【図４】
2016163281.tif 000006
【図５】
2016163281.tif 000007
【図６】
2016163281.tif 000008
【図７】
2016163281.tif 000009
【図８】
2016163281.tif 000010
【図９】
2016163281.tif 000011
【図１０】
2016163281.tif 000012
【図１１】
2016163281.tif 000013
【図１２】
2016163281.tif 000014
【図１３】
2016163281.tif 000015
【図１４】
2016163281.tif 000016
【図１５】
2016163281.tif 000017
【図１６】
2016163281.tif 000018
【図１７】
2016163281.tif 000019
【図１８】
2016163281.tif 000020
【図１９】
2016163281.tif 000021
【図２０】
2016163281.tif 000022
【図２１】
2016163281.tif 000023
【図２２】
2016163281.tif 000024
【図２３】
2016163281.tif 000025