(57)【要約】【課題】リンクアグリゲーションの設定ミスによる隣接装置間でのループを検出し、リンクアグリゲーション機能の縮退機能を利用し、ループを回避させ、かつ、端末間の通信を継続させる方法を提供すること。【解決手段】フレーム送信時に、リンクアグリゲーションから送信したフレームの送信元ＭＡＣアドレスを保持しておき、同一リンクアグリゲーションから保持したＭＡＣアドレスを送信元ＭＡＣアドレスにもつフレームを受信したことにより、ループを検出し、リンクアグリゲーション機能の縮退機能を利用し、集約している回線のうちの一つの回線のみで運用し、ループを回避させ、かつ、端末間の通信は継続させる。【選択図】  図４
2007104512.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワーク回線に接続してデータを送受信するデータ通信装置で実行するループ回避方法であって、
第１ネットワーク回線から第１データを受信し、
前記第１ネットワーク回線がリンクアグリゲーションと設定されているかを判断し、
リンクアグリゲーションと設定されているときには、当該リンクアグリゲーションの設定と前記第１データの送信元アドレスとの組が記憶されているかを判断し、
記憶されているとき、ループと判断する。
【請求項２】
複数のネットワーク回線に接続してデータを送受信するデータ通信装置で実行するループ回避方法であって、
第１データを送信する第１ネットワーク回線がリンクアグリゲーションと設定されているかを判断し、
リンクアグリゲーションと設定されているときには、当該リンクアグリゲーションの設定と送信元アドレスとの組が記憶されているかを判断し、
記憶されていないときには当該リンクアグリゲーションの設定と送信元アドレスとの組を記憶し、
第２ネットワーク回線から第２データを受信し、
前記第２ネットワーク回線がリンクアグリゲーションと設定されているかを判断し、
リンクアグリゲーションと設定されているときには、当該リンクアグリゲーションの設定と前記第２データの送信元アドレスとの組が記憶されているかを判断し、
記憶されているときにはループと判断する。
【請求項３】
請求項１記載のループ回避方法であって、さらに、
ループと判断した前記第１ネットワーク回線を含んで設定されたリンクアグリゲーションを縮退する。
【請求項４】
請求項１記載のループ回避方法であって、さらに、
ループと判断した前記第１ネットワーク回線を含んで設定されたリンクアグリゲーションに属する複数のネットワーク回線の一部を遮断する。
【請求項５】
請求項２記載のループ回避方法であって、さらに、
前記記憶したリンクアグリゲーションと送信元アドレスとの組を、所定時間経過後に削除する。
【発明の詳細な説明】
【技術分野】
【０００１】
複数のネットワークをレイヤ２レベルで接続するネットワーク通信装置、及び、該装置の処理方法に関する。特に冗長回線で接続された隣接装置間のループを検出し、また、このようなループを回避する技術に関する。
【背景技術】
【０００２】
ループを検知して是正する技術として、スパニング・ツリー・プロトコル（例えば、非特許文献１を参照）やＦＤＢ（Ｆｉｌｔｅｒｌｉｎｇ Ｄａｔａ Ｂａｓｅ）の書き換わりを監視する方法（特許文献１を参照）がある。
【０００３】
スパニング・ツリー・プロトコルは制御フレームＢＰＤＵ（Ｂｒｉｄｇｅ Ｐｒｏｔｏｃｏｌ Ｄａｔａ Ｕｎｉｔ）でループを検出し、ＦＤＢの書き換わりを監視する方法はＦＤＢの書き換わり頻度を監視することによってループを検出する。それぞれループを検出すると、ループの原因となっている論理回線をブロッキング状態（フレームを中継しない状態）に遷移させ、ループを論理的に遮断する。
【０００４】
図１は、ループ構成になっているネットワーク構成図の例を示す。１００のようにループが発生している。この構成にループ防止機能を適用すると、ネットワーク通信機器１０１の回線１０３側をブロッキング状態に遷移させることによって、ループを論理的に遮断する。このようにループを遮断することで、端末１０４から端末１０５宛の通信が、ネットワーク通信機器１０６、１０７、１０２を経由して行われ、ループにならない。
【０００５】
一方、リンクアグリゲーション（非特許文献２を参照）という機能がある。これは、複数の回線を集約して一つの論理回線として扱う技術であり、集約している回線に障害が発生した場合、残りの回線で運用を継続することができる縮退機能を備えている。リンクアグリゲーション機能は隣接装置間で使う技術であり、両端の装置の設定をあわせておく必要がある。この集約設定を動的に組み上げる制御プロトコルとしてＬＡＣＰ（Ｌｉｎｋ Ａｇｇｒｅｇａｔｉｏｎ Ｃｏｎｔｒｏｌ Ｐｒｏｔｏｃｏｌ）が規定されている。
【０００６】
【特許文献１】特開２００５−３３３６０号公報
【非特許文献１】ＩＥＥＥ８０２．１Ｄ
【非特許文献２】ＩＥＥＥ８０２．３ａｄ
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、リンクアグリゲーション機能のＬＡＣＰにおいては、集約しようとしている全回線において双方から秒オーダーで定期的に制御フレームのやり取りを行うため、パフォーマンスが低下する場合がある。また、ＬＡＣＰをサポートしていない装置もある。このようなときＬＡＣＰは用いられない。
【０００８】
リンクアグリゲーション機能は両装置間で設定を合わせておく必要があるが、ＬＡＣＰを使用せず、手動で設定する場合、設定ミスによって図２のようにループになってしまう場合がある。図２では、ネットワーク通信機器３０２は回線３０５、３０６、３０７をリンクアグリゲーション３０９として認識できているが、ネットワーク通信機器３０３は回線３０５、３０６、３０７がリンクアグリゲーションであるとは認識していない。この状態で、ネットワーク通信機器３０２でリンクアグリゲーション３０９から送信されたフレームは、ネットワーク通信機器３０３でフラッディング（受信した回線以外の全回線へ中継）するため、図２の３１０のように折り返しネットワーク通信機器３０２へ戻ってしまいループとなる。
【０００９】
ここで、上記のスパニング・ツリー・プロトコルや特許文献１の技術を利用すると、図３のようにネットワーク通信機器３０２でループを検出し、リンクアグリゲーション３０９をブロッキング状態にしてしまい、端末間の通信を遮断してしまう。
【００１０】
そこで、図２のような隣接装置間のループを検出し、また、このループ検出時に、リンクアグリゲーション機能の縮退機能を利用し、ループを回避させ、かつ端末間の通信を継続させる技術の提供を一つの目的とする。
【課題を解決するための手段】
【００１１】
上記課題の解決に当たり、例えば、リンクアグリゲーションから送信されたフレームの送信元ＭＡＣアドレスを保持しておき、同一リンクアグリゲーションから保持したＭＡＣアドレスと同じＭＡＣアドレスを送信元ＭＡＣアドレスにもつフレームを受信した場合、すなわち送信したフレームが戻ってきた場合、リンクアグリゲーションの縮退機能を利用して、集約している回線のうち一つ以外の全回線が障害になってしまった場合と同じように、一つの回線のみで運用させ、ループを回避させる技術を提供する。
【発明の効果】
【００１２】
上記手段によれば、リンクアグリゲーションの設定ミスによる隣接装置間のループを検出して回避することができ、また、端末間の通信を遮断することを防ぐことができる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施に好適な実施例を説明する。ただし、本発明は本実施例に限定されない。
【００１４】
まず、本実施例の概要について図４を用いて説明する。図４は、ループ回避機能を持つネットワーク通信機器の動作を説明するためのネットワーク構成の例を示す。図４のネットワーク通信機器３０３でリンクアグリゲーションの設定ミスがある場合について考える。
【００１５】
まず、ネットワーク構成を説明する。ネットワーク通信機器３０２と３０３の間は回線３０５、３０６、３０７で接続されており、リンクアグリゲーション機能を利用してこの３つの回線を集約しようとしているが、ネットワーク通信機器３０３のリンクアグリゲーション機能の設定ミスがあるため、ネットワーク通信機器３０３ではリンクアグリゲーションではなく回線３０５、３０６、３０７として認識されている。ネットワーク通信機器３０２と３０３には端末が２台ずつ接続されており、各装置間は全てレイヤ２レベルで接続されている。
【００１６】
この構成で、ネットワーク通信機器３０２、３０３ともに何もＭＡＣアドレスを学習していない状態で、端末３００から端末３０１へフレームを送信することを考える。
【００１７】
端末３００から送信されたフレームをネットワーク通信機器３０２が受信し、ネットワーク通信機器３０２はリンクアグリゲーション３０９へフレームを中継させ（ここでは回線３０５から送信されたと仮定）、その際、該当フレームの送信元ＭＡＣアドレスと送信先のリンクアグリゲーション３０９を保持しておく。
【００１８】
ネットワーク通信機器３０２が回線３０５へ送信したフレームをネットワーク通信機器３０３が受信し、ネットワーク通信機器３０３はリンクアグリゲーションと認識していないため、回線３０６、３０７、３０８へフラッディング（受信回線以外の回線へ中継）させる。
【００１９】
回線３０６、３０７へ中継されたフレームは再度ネットワーク通信機器３０２が受信し、ネットワーク通信機器３０２から見るとリンクアグリゲーション３０９からフレームを受信したように見える。
【００２０】
ネットワーク通信機器３０２は、受信したフレームの送信元ＭＡＣアドレスと受信した論理回線（リンクアグリゲーション３０９）の組と送信時に保持した情報を比較し、一致しているエントリが存在することによって、自装置のリンクアグリゲーションから送信したフレームが戻ってきたと判断し、つまり、隣接装置のリンクアグリゲーション機能の設定ミスによる隣接装置間のループであると判断し、リンクアグリゲーション機能の縮退機能を利用し、リンクアグリゲーション３０９を集約している回線のうちの一つの回線のみ（ここでは回線３０５のみとする）で運用させる。
【００２１】
リンクアグリゲーション３０９を縮退させ、回線３０５のみで運用しているため、ネットワーク通信機器３０３が回線３０６と３０７にフラッディングさせても、ネットワーク通信機器３０２は回線３０６と３０７からのフレームを受信しないため、ループを回避することができるようになる。また、端末３００と３０１間の通信も遮断されることなく正しく通信することが可能となる。
【００２２】
次に、図４を実現する装置の詳細について図５〜８を用いて説明する。
【００２３】
図５は、図４のネットワーク通信機器３０２の詳細を示すブロック図例である。
【００２４】
本実施例において追加した機能ブロックは、特にループ監視制御部５００である。本機能ブロック内は送信元ＭＡＣアドレスを保持しておくテーブル５０１、フレーム送信時に送信元ＭＡＣアドレスをテーブルに保持するテーブル管理部５０２、フレーム受信時に送信元ＭＡＣアドレスをチェックするチェック処理部５０３、ループ検出時にリンクアグリゲーションの縮退処理を指示する実行処理部５０４に分かれている。
【００２５】
その他にフレームを送受信するためのインタフェース制御部５０８、５０９、５１０、５１１、フレームを中継する中継処理部５０５、中継処理部５０５にはフレームの送信処理を行う送信処理部５０６、フレーム受信処理を行う受信処理部５０７に分かれている。また、インタフェース制御部５０９、５１０、５１１は図４のリンクアグリゲーション３０９に該当する。また、図示していないがリンクアグリゲーション機能の設定（リンクアグリゲーションで集約された回線又はインタフェース制御部の番号、リンクアグリゲーションのグループ名等）を記憶するリンクアグリゲーション設定部も有する。
【００２６】
図６は、本発明で保持するアドレス管理テーブル５０１の内容である。送信元ＭＡＣアドレス、リンクアグリゲーショングループ、エージング値（エントリを保持し続ける時間）から構成され、フレームをリンクアグリゲーションから送信する時にフレームの送信元ＭＡＣアドレスと送信するリンクアグリゲーションを保持し、エージング値の設定を行う。この保持したエントリは、エージングアウト契機でテーブルから削除させる。このリンクアグリゲーショングループは、リンクアグリゲーション設定部から取得する。
【００２７】
例えば、端末３００からのフレームをネットワーク通信機器３０２がリンクアグリゲーション３０９から送信するときには、図中の５５０のエントリを生成し保持することになり、端末３１１からのフレームをネットワーク通信機器３０２がリンクアグリゲーション３０９から送信するときには、図中の５５１のエントリを生成し保持することになる。
【００２８】
また、エージング値の目安は、フレームが送信されてから隣接装置を経由して戻ってくるまでの短い時間とする。あまり長い時間、情報を保持していると、次のようにループを誤検出してしまう可能性がある。
【００２９】
例えば、図４において、ネットワーク通信機器３０３のリンクアグリゲーション機能が正しく設定されているときに、端末３１１をネットワーク通信機器３０２からネットワーク通信機器３０３へと物理的に移動した場合を考える。図７にこのときのイメージ図を示す。このとき、ネットワーク通信機器３０２が図６の５５１のエントリを保持していると、ネットワーク通信機器３０２はリンクアグリゲーション３０９から送信元ＭＡＣアドレスが端末３１１であるフレームを送信したと記憶しているため、この状態で、端末３１１が端末３００に送ったフレームをネットワーク通信機器３０２が受信した時点で、自装置が送信したフレームが同一リンクアグリゲーションから戻ってきたと思い、ループだと判断してしまう。このようなループの誤検出を防ぐために、エージング値にあまり長い時間を設定することは望ましくない。ただし、ループを誤検出してしまっても、ループ回避のためにリンクアグリゲーションの縮退機能を利用し、集約している回線のうちの一つのみで運用させているため、端末間の通信が遮断されることはない。
【００３０】
アドレス管理テーブル５０１は、どのフレームをどのリンクアグリゲーションから送信したかを記憶するための領域である。
【００３１】
次に、図５と図６で説明した構成とデータを用いてネットワーク通信機器３０２がループを検出し、回避するまでの処理をフローチャートを用いて説明する。
【００３２】
図８は、ネットワーク通信機器３０２において、フレームを受信してから、送信するまでの流れの概要をフローチャートに示したものである。
【００３３】
インタフェース制御部が回線からフレームを受信し（８００）、受信したフレームを受信処理部５０７へ渡し（８０１）、ここで、ループ監視制御部５００にて受信時のチェック処理（詳細は後述）を行い（８０２）、このチェック結果にてループかどうか判断（８０３）し、ループを検出した場合は、フレームを廃棄し（８０８）、このフレームの処理はここで終了し送信処理は行わない。
【００３４】
ループで無いと判断した場合は、その後、フレームの送信処理を行うため、受信処理部５０７は送信処理部５０６へフレームを渡す（８０４）。
【００３５】
フレームの送信前に、ループ監視制御部５００にて送信時のアドレス保持処理を行い（８０５）、送信処理部５０６にて送信先のインタフェース制御部へフレームを渡し（８０６）、インタフェース制御部が回線へフレームを送信する（８０７）。
【００３６】
さらに、ループ監視制御部５００の詳細な処理をフローチャートを用いて説明する。本発明は送信時に送信したフレーム情報を保持し、受信時にチェックすることによって、ループを検出するものであるため、ここでは先に送信時の処理、次に受信時の処理について説明を行う。
【００３７】
図９は、図８の８０５の送信時のアドレス保持処理の詳細な処理のフローチャートである。
【００３８】
テーブル管理部５０２にて、フレームの送信先論理回線がリンクアグリゲーション設定部にリンクアグリゲーションと設定されているか否かをチェック（６００）し、リンクアグリゲーションと設定されていない場合は何もせず、リンクアグリゲーションと設定されている場合は、フレームの送信元ＭＡＣアドレスと送信先リンクアグリゲーションの組でアドレス管理テーブル５０１に存在するかチェック（６０１）し、一致するエントリが存在する場合は、つまり、既に登録済みである場合は何もせず、一致するエントリが存在しない場合は、フレームの送信元ＭＡＣアドレスと送信先のリンクアグリゲーションをアドレス管理テーブル５０１へ保持（６０２）し、エージング値の設定を行う。
【００３９】
図１０は、図８の８０２の受信時のチェック処理の詳細な処理のフローチャートである。
【００４０】
チェック処理部５０３にて、まずは本チェック処理終了後に使用する戻り値にループ未検出を設定して（７００）おき、フレームの受信論理回線がリンクアグリゲーション設定部にリンクアグリゲーションと設定されているか否かをチェックし（７０１）し、リンクアグリゲーションと設定されていない場合は何もせず、リンクアグリゲーションと設定されている場合は次のチェック処理を行う。
【００４１】
フレームの送信元ＭＡＣアドレスと受信リンクアグリゲーションの組と一致するエントリがアドレス管理テーブル５０１に存在するかチェック（７０２）し、一致するエントリが存在しない場合は何もせず、一致するエントリが存在する場合は、隣接装置間のループであると判断し、実行処理部５０４にてループ回避処理を行う。
【００４２】
実行処理部５０４では、該リンクアグリゲーション３０９の縮退機能を利用し、集約しているの回線のうちの一つの回線のみで運用させ（７０３）、他の回線では以降のフレーム中継処理を行わせない。例えば、リンクアグリゲーション設定部でリンクアグリゲーションと設定されている複数の回線のうち任意の一つ又はフレームを送信した又はフレームを受信したインタフェース制御部に対応する回線を有効に維持し、リンクアグリゲーションと設定されている複数の回線のうち他の回線を無効にするよう中継処理部５０５の設定を変更する。回線に対応するポートの電源を落としたり、受信したフレームを無視するようにしたりしてもよい。
【００４３】
また、必要に応じて、コンソールメッセージ・ＳＹＳＬＯＧメッセージ・ＳＮＭＰ（Ｓｉｍｐｌｅ Ｎｅｔｗｏｒｋ Ｍａｎａｇｅｍｅｎｔ Ｐｒｏｔｏｃｏｌ）トラップパケット等を使って管理者に該リンクアグリゲーションにてループを検出したことを報告（７０４）する。
【００４４】
最後に、戻り値をループ検出に変更して（７０５）、本チェック処理を終了させる。
【００４５】
なお、管理者は原因となっているリンクアグリゲーションの設定を正しく行い、ループを取り除いた後、手動の保守コマンド等によりリンクアグリゲーションの縮退を解除させ復旧させることができる。または、縮退させてから一定時間後に、縮退を自動的に解除させ再度ループ監視を行うことで対応させてもよい。まだリンクアグリゲーションの設定が正しくなく、ループが取り除かれていなければ再度リンクアグリゲーションが縮退されループは回避される。
【図面の簡単な説明】
【００４６】
【図１】一般的なループ構成例のネットワーク構成図
【図２】隣接装置間でループ構成となっている状態例のネットワーク構成図
【図３】従来のループ防止機能を使用した例のネットワーク構成図
【図４】ループ回避機能を持つネットワーク通信機器の動作例を説明するためのネットワーク構成図
【図５】ループ回避機能を持つネットワーク通信機器の例の機能ブロック図
【図６】アドレス管理テーブルの内容例
【図７】アドレス管理テーブルに登録済みの端末が移動したときの動作例を説明するためのネットワーク構成図
【図８】フレームを受信してから送信するまで処理例のフロー図
【図９】フレーム送信前に行うアドレス保持処理例のフロー図
【図１０】フレーム受信後に行うチェック処理例のフロー図
【符号の説明】
【００４７】
１００  フレームがループしている流れ
１０１、１０２  ネットワーク通信機器
１０３  ネットワーク通信機器間を接続している回線
１０４  フレーム送信元の端末
１０５  フレーム送信先の端末
１０６、１０７  ネットワーク通信機器
３００、３０１  端末
３０２  本発明によるループ回避機能を持つネットワーク通信機器
３０３  ３０２の隣接装置であるネットワーク通信機器
３０４〜３０８  端末やネットワーク通信機器を接続している回線
３０９  ネットワーク通信機器３０２のリンクアグリゲーション
３１０  フレームがループしている流れ
３１１、３１２  端末
３１３  ネットワーク通信機器３０３のリンクアグリゲーション
５００  ループ監視制御部（本発明で追加した機能ブロック）
５０１  アドレス管理テーブル
５０２  テーブル管理部
５０３  チェック処理部
５０４  実行処理部
５０５  中継処理部
５０６  送信処理部
５０７  受信処理部
５０８〜５１１  インタフェース制御部
５５０、５５１  アドレス管理テーブル５０１のエントリ情報
６００〜６０２  フレーム受信時のループ監視制御部の処理
７００〜７０５  フレーム送信時のループ監視制御部の処理
８００〜８０３  フレームの受信処理
８０４〜８０７  フレームの送信処理
８０８  ループ検出時のフレーム廃棄処理
【図１】
2007104512.tif 000003
【図２】
2007104512.tif 000004
【図３】
2007104512.tif 000005
【図４】
2007104512.tif 000006
【図５】
2007104512.tif 000007
【図６】
2007104512.tif 000008
【図７】
2007104512.tif 000009
【図８】
2007104512.tif 000010
【図９】
2007104512.tif 000011
【図１０】
2007104512.tif 000012