(57)【要約】【課題】ネットワーク障害時の通信不可時間を短縮できるようにする。【解決手段】受信したレイヤー２フレームからレイヤー３パケットを生成し、生成されたレイヤー３パケットを送信可能なＳＷ１において、データを送受信可能な複数のポート２００を有し、ポート２００を介して接続されたネットワーク３の障害を検出するレイヤー２リング処理部２０３と、レイヤー２リング処理部２０３によりネットワーク３の障害が検出された場合に、ポート２００を介して受信した１つのレイヤー２フレームから複数のレイヤー３パケットを生成し、生成した複数のレイヤー３パケットを複数のポート２００を介してネットワークに送信するＶＸＬＡＮ処理部４と、を備えるように構成する。【選択図】図４
2020022100.tif 000002
【特許請求の範囲】
【請求項１】
受信したレイヤー２フレームからレイヤー３パケットを生成し、生成されたレイヤー３パケットを送信可能なネットワーク中継装置であって、
データを送受信可能な複数のポートを有し、
前記ポートを介して接続されたネットワークの障害を検出する検出部と、
前記検出部により前記ネットワークの障害が検出された場合に、前記ポートを介して受信した１つのレイヤー２フレームから複数のレイヤー３パケットを生成し、生成した複数のレイヤー３パケットを複数のポートを介してネットワークに送信する送信処理部と、
を備える
ネットワーク中継装置。
【請求項２】
前記ネットワークの障害が発生している際における各宛先への前記レイヤー３パケットを出力すべきポートを学習してレイヤー３パケット経路情報として記憶する経路情報学習部をさらに備え、
前記経路情報学習部による前記レイヤー３パケット経路情報の学習が終了した場合に、前記送信処理部は、受信した１つのレイヤー２フレームから１つのレイヤー３パケットを生成して、前記レイヤー３パケット経路情報に基づいて、前記レイヤー３パケットを出力すべき前記ポートを特定し、特定した前記ポートに対して、生成した前記レイヤー３パケットを送信する
請求項１に記載のネットワーク中継装置。
【請求項３】
受信したレイヤー２フレームに基づいて、ＭＡＣアドレスに対応するＩＰアドレスを学習して送信先アドレス情報として記憶するアドレス学習部をさらに備え、
前記送信処理部は、送信先アドレス情報に、受信した前記レイヤー２フレームの送信先のＩＰアドレスが学習されている場合には、前記レイヤー３パケット経路情報に基づいて学習されているＩＰアドレスに対応するポートを特定し、
前記アドレス学習部は、前記障害が検出された場合に、前記ＩＰアドレスの学習を抑止する
請求項２に記載のネットワーク中継装置。
【請求項４】
前記アドレス学習部は、前記経路情報学習部による前記レイヤー３パケット経路情報の学習が終了した場合に、前記ＩＰアドレスの学習の抑止を解除する
請求項３に記載のネットワーク中継装置。
【請求項５】
前記アドレス学習部は、前記障害が検出された場合に、前記送信先アドレス情報の学習内容を消去する
請求項４に記載のネットワーク中継装置。
【請求項６】
前記検出部は、前記ネットワークの障害からの復旧を検出し、
前記アドレス学習部は、前記障害からの復旧が検出された場合に、前記送信先アドレス情報の学習内容を消去する
請求項５に記載のネットワーク中継装置。
【請求項７】
前記レイヤー２フレームの送信先のＩＰアドレスが送信先アドレス情報に学習されていない場合における、前記レイヤー３パケットを出力すべきポートを示す未学習用情報を記憶し、
前記送信処理部は、受信した前記レイヤー２フレームの送信先のＩＰアドレスが学習されていない場合に、前記未学習用情報に基づいて、前記レイヤー３パケットを出力すべきポートを介して送信する
請求項３に記載のネットワーク中継装置。
【請求項８】
前記未学習用情報は、前記ネットワークに障害が発生した場合に、前記レイヤー３パケットを出力すべき複数のポートを示す障害時ポート情報と、それ以外の時に前記レイヤー３パケットを出力すべきポートを示す通常時ポート情報とを含み、
前記送信処理部は、前記検出部により前記ネットワークの障害が検出された場合であって、受信した前記レイヤー２フレームの送信先のＩＰアドレスが学習されていない場合に、前記障害時ポート情報に基づいて、前記レイヤー３パケットを出力すべき複数のポートに送信する
請求項７に記載のネットワーク中継装置。
【請求項９】
前記未学習用情報における障害時ポート情報と、前記通常時ポート情報とのいずれかを示す参照先情報を記憶し、
前記送信処理部は、前記参照先情報を用いて、前記未学習情報から障害時ポート情報又は前記通常時ポート情報を参照し、
前記送信処理部は、前記検出部により前記ネットワークの障害が検出された場合に、前記参照先情報として、前記障害時ポート情報を示す参照先情報を設定する
請求項８に記載のネットワーク中継装置。
【請求項１０】
前記ネットワーク中継装置は、他のネットワーク中継装置と接続されてリング状のネットワークを構成し、
前記検知部は、前記リング状のネットワークの障害を検出し、
前記送信処理部は、前記ポートを介して受信した１つのレイヤー２フレームから２つのレイヤー３パケットを生成し、生成した２つのレイヤー３パケットを、前記リング状のネットワークを構成する他の２つのネットワーク中継装置に接続されている２つのポートを介して送信する
請求項１に記載のネットワーク中継装置。
【請求項１１】
受信したレイヤー２フレームからレイヤー３パケットを生成し、生成されたレイヤー３パケットを送信可能なネットワーク中継装置によるネットワーク中継方法であって、
前記ネットワーク中継装置は、データを送受信可能な複数のポートを有し、
前記ポートを介して接続されたネットワークの障害を検出し、
前記ネットワークの障害が検出された場合に、前記ポートを介して受信した１つのレイヤー２フレームから複数のレイヤー３パケットを生成し、
生成した複数のレイヤー３パケットを複数のポートを介してネットワークに送信する
ネットワーク中継方法。
【請求項１２】
受信したレイヤー２フレームからレイヤー３パケットを生成し、生成されたレイヤー３パケットを送信可能なネットワーク中継装置を構成するコンピュータに実行させるネットワーク中継プログラムであって、
前記コンピュータは、データを送受信可能な複数のポートを有し、
前記コンピュータを、
前記ポートを介して接続されたネットワークの障害を検出する検出部と、
前記検出部により前記ネットワークの障害が検出された場合に、前記ポートを介して受信した１つのレイヤー２フレームから複数のレイヤー３パケットを生成し、生成した複数のレイヤー３パケットを複数のポートを介してネットワークに送信する送信処理部と、
して機能させる
ネットワーク中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークにおけるデータを中継する技術に関する。
【背景技術】
【０００２】
通信ネットワークでは、ケーブルの断線や装置故障が発生すると通信不可となる課題が存在する。そこで、レイヤー２（ＯＳＩ参照モデルにおけるレイヤー）のネットワークでは、メッシュトポロジやリングトポロジといったネットワークトポロジに依存せず論理的にブロッキングポートを設けることで、ループ構成を排除し、障害発生時にブロッキングポートを開放することで通信を復旧させるスパニングツリー（ＩＥＥＥ８０２．１Ｄで規定）が用いられている。
【０００３】
また、トポロジをリングに限定することで、障害検出と障害復旧とを高速化したリングプロトコルを各ネットワーク装置ベンダが独自に仕様を策定している。このようなリングプロトコルとしては、例えば、アラクサラリングプロトコルが知られている。
【０００４】
また、レイヤー２上で動作するレイヤー３では、レイヤー２の経路が切り替わった後に、レイヤー３の経路切替が行われる為、レイヤー３の経路切替には時間がかかる課題が存在している。そこで、障害箇所毎に切替経路を事前に検索しておき、障害発生時に事前に検索した経路を設定することで切替時間を高速化する技術が知られている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＲＦＣ４０９０：Ｆａｓｔ  Ｒｅｒｏｕｔｅ  Ｅｘｔｅｎｓｉｏｎｓ  ｔｏ  ＲＳＶＰ−ＴＥ  ｆｏｒ  ＬＳＰ  Ｔｕｎｎｅｌｓ
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１の技術を用いることで、経路切替の高速化が可能になるが、切替対象が多い場合や、切替の設定自体に時間がかかる場合、すべて切替が完了し、通信が可能になるまでに多くの時間がかかってしまう。また、切替経路を事前に検索する必要があり、事前の処理の負荷が大きい。
【０００７】
本発明は、上記事情に鑑みなされたものであり、その目的は、ネットワーク障害時の通信不可時間を短縮することのできる技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、一観点に係るネットワーク中継装置は、受信したレイヤー２フレームからレイヤー３パケットを生成し、生成されたレイヤー３パケットを送信可能なネットワーク中継装置であって、データを送受信可能な複数のポートを有し、ポートを介して接続されたネットワークの障害を検出する検出部と、検出部によりネットワークの障害が検出された場合に、ポートを介して受信した１つのレイヤー２フレームから複数のレイヤー３パケットを生成し、生成した複数のレイヤー３パケットを複数のポートを介してネットワークに送信する送信処理部と、を備える。
【発明の効果】
【０００９】
本発明によれば、ネットワーク障害時の通信不可時間を短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、一実施形態に係るネットワークシステムの全体構成図及びネットワークシステムの状態を説明する図である。
【図２】図２は、一実施形態に係るＶＸＬＡＮ通信の概念を示す図である。
【図３】図３は、一実施形態に係るＶＸＬＡＮに係るフレームとパケットのフォーマットを示す図である。
【図４】図４は、一実施形態に係るネットワークスイッチの機能構成図である。
【図５】図５は、一実施形態に係るＡＲＰテーブルの一例の構成図である。
【図６】図６は、一実施形態に係るＶＬＡＮ−ＶＮＩテーブルの一例の構成図である。
【図７】図７は、一実施形態に係るＦＤＢテーブルの一例の構成図である。
【図８】図８は、一実施形態に係る学習済みカプセル化テーブルの一例の構成図である。
【図９】図９は、一実施形態に係る複製ＩＤテーブルの一例の構成図である。
【図１０】図１０は、一実施形態に係る複製切替登録テーブルの一例の構成図である。
【図１１】図１１は、一実施形態に係る未学習カプセル化テーブルの一例の構成図である。
【図１２】図１２は、一実施形態に係る受信時処理のフローチャートである。
【図１３】図１３は、一実施形態に係るカプセル化処理のフローチャートである。
【図１４】図１４は、一実施形態に係るデカプセル化処理のフローチャートである。
【図１５】図１５は、一実施形態に係るテーブル更新処理のフローチャートである。
【図１６】図１６は、一実施形態に係る障害対応処理のフローチャートである。
【図１７】図１７は、一実施形態に係る障害時処理のフローチャートである。
【発明を実施するための形態】
【００１１】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
以下の説明では、「ＡＡＡテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「ＡＡＡテーブル」を「ＡＡＡ情報」と呼ぶことができる。
【００１３】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号（又は参照符号における共通部分）を使用し、同種の要素を区別して説明する場合は、要素のＩＤ（又は要素の参照符号）を使用することがある。
【００１４】
図１は、一実施形態に係るネットワークシステムの全体構成図及びネットワークシステムの状態を説明する図である。
【００１５】
ネットワークシステム１０００は、複数（図１では、例えば、３台）のネットワークスイッチ１（ＳＷ：スイッチ）をリング状に接続したリングトポロジとなっている。ＳＷ１は、ネットワーク中継装置の一例である。ネットワークシステム１０００においては、レイヤー２のリングプロトコルが動作している。レイヤー２ネットワークでは、ＢＵＭ（Ｂｒｏａｄｃａｓｔ，  Ｕｎｋｎｏｗｎ  Ｕｎｉｃａｓｔ，  Ｍｕｌｔｉｃａｓｔ）フレームは、送信先が一意に決定されない為、すべてのポートに複製して中継する。その為、ループ状のネットワークが構成されると、ループ内を永久にフレームが中継され続けてしまう。本実施形態では、リングプロトコルは、通信を論理的にブロックすることで、ループが形成されることを論理的に排除しつつ、通信経路の冗長性を確保している。なお、本実施形態では、リングプロトコルを用いた例を示しているが、スパニングツリープロトコル（ＳＴＰ）を用いるようにしてもよい。ＳＴＰとリングプロトコルとは、通信を論理的にブロックする点で共通である一方、異なる点も存在する。ＳＴＰでは、メッシュトポロジやリングトポロジなど様々なトポロジが構成可能であるが、リングプロトコルでは、リングトポロジだけが構成可能である。また、ＳＴＰは、複雑なトポロジが可能である為、経路切替に時間がかかる。一方、リングプロトコルは、トポロジを単純にしている為、経路切替がＳＴＰに比べて高速である。
【００１６】
ネットワークシステム１０００におけるネットワーク３は、３台のＳＷ１（ＳＷ＃１、ＳＷ＃２、ＳＷ＃３）がリング状に接続されたリングトポロジ構成となっている。ＳＷ１には、１台以上の端末２を接続可能である。ＳＷ＃１には、端末Ａと、端末Ｂとが接続さ、ＳＷ＃２には、端末Ｃが接続され、ＳＷ＃３には、端末Ｄが接続されている。各端末２は、ＳＷ１を介して通信を行う。
【００１７】
本実施形態では、ＳＷ＃３がマスターノードに設定されている。マスターノードは、リングプロトコル制御の中心となる装置である。リングトポロジを構成するＳＷ１の中のマスターノード以外のＳＷ１（ＳＷ＃１、ＳＷ＃２）を、トランジットノードと呼ぶ。
【００１８】
リングトポロジを構成するＳＷ１の２つのポートを、リングポートと呼ぶ。特に、マスターノードの２つのリングポートを、プライマリーポート及びセカンダリーポートと呼ぶ。ここでは、例えばポート番号の数字が小さいポートが自動的にプライマリーポートとなることとする。また、セカンダリーポートは、通常時には論理的に通信を遮断するブロッキングポートになる。
【００１９】
ネットワークシステム１０００では、ＳＷ＃１のポート１（図面上側）とＳＷ＃２のポート２（図面下側）が接続され、ＳＷ＃２のポート１とＳＷ＃３のポート２とが接続され、ＳＷ＃３のポート１とＳＷ＃１のポート２が接続されることにより、リングトポロジのネットワーク３が構成されている。
【００２０】
ネットワークシステム１０００では、図１（ａ）に示すように、ネットワーク障害が発生していない通常状態では、マスターノードであるＳＷ＃３のポート２がブロックキングポートとなっており、ＳＷ＃３のポート２に入る通常フレームは廃棄される。また、ネットワークシステム１０００では、図１（ｂ）に示すように、例えば、ＳＷ＃１とＳＷ＃２との間のケーブルが断線したネットワーク障害時においては、ＳＷ＃３のポート１がブロッキングポートから、フレーム中継を行う通常のポートに変更されることとなる。
【００２１】
マスターノード（ＳＷ＃３）は、ヘルスチェックフレームの送受信を行う。ヘルスチェックフレームは、リングに断線箇所がないか、もしくはネットワークスイッチ１が故障などで中継不可となっていないかをチェックするためのフレームである。トランジットノード（ＳＷ＃１、ＳＷ＃２）がリングポートでヘルスチェックフレームを受信すると、受信したリングポートではないもう１つのリングポートへヘルスチェックフレームを送信する。これにより、マスターノード（ＳＷ＃３）が送信したヘルスチェックフレームは、ネットワーク障害が発生していない場合には、各トランジットノードを経由してマスターノードに戻ってくることとなる。これにより、マスターノードは、ネットワーク障害が発生しているか否かを把握することができる。
【００２２】
次に、ネットワークシステム１０００で行われるＶＸＬＡＮ（Ｖｉｒｔｕａｌ  ｅＸｔｅｎｓｉｂｌｅ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）通信について説明する。
【００２３】
図２は、一実施形態に係るＶＸＬＡＮ通信の概念を示す図である。
【００２４】
ネットワークシステム１０００では、ＩＥＴＦ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）がＲＦＣ７３４８として仕様公開したＶＸＬＡＮ通信を実現している。ＶＸＬＡＮは、レイヤー２フレーム１００（図３参照）をレイヤー３パケットにカプセル化することで、レイヤー３ネットワーク上に仮想的にレイヤー２ネットワークを構築する技術である。ＳＷ１に設けられているＶＬＡＮ処理部４は、ＶＸＬＡＮの終端であり、レイヤー２フレーム１００をＶＸＬＡＮパケット１２５（図３参照：レイヤー３パケット）にカプセル化したり、ＶＸＬＡＮパケット１２５をレイヤー２フレーム１００にデカプセル化したりする。
【００２５】
次に、ＶＸＬＡＮに係るフレーム（レイヤー２フレーム１００）と、パケット（ＶＸＬＡＮパケット１２５）とについて説明する。
【００２６】
図３は、一実施形態に係るＶＸＬＡＮに係るフレームとパケットのフォーマットを示す図である。
【００２７】
図３に示すＶＸＬＡＮパケット１２５は、ＲＦＣ７３４８で規定されているＶＸＬＡＮパケットである。
【００２８】
レイヤー２フレーム１００は、宛先ＭＡＣアドレス（Ｄｓｔ  ＭＡＣ  Ａｄｄｒ）１０１と、送信元ＭＡＣアドレス（Ｓｒｃ  ＭＡＣ  Ａｄｄｒ）１０２と、プロトコル種別（Ｅｔｈｅｒ  Ｔｙｐｅ）１０３と、ＶＬＡＮ  Ｔａｇ１０４と、ｐａｙｌｏａｄ１０５と、ＦＣＳ１０６とを含む。宛先ＭＡＣアドレス１０１は、フレームの送信元の装置のＭＡＣアドレスである。送信元ＭＡＣアドレス１０２は、フレームの送信先の装置のＭＡＣアドレスである。プロトコル種別１０３は、フレームが対応しているプロトコルの種別を示す情報であり、図３の例では、「０ｘ８１００」である。ＶＬＡＮ  Ｔａｇ１０４は、ＶＬＡＮのＴａｇである。ｐａｙｌｏａｄ１０５は、送信対象のユーザデータである。ＦＣＳ１０６は、フレームの終端を示すＦＣＳ（Ｆｌａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）である。
【００２９】
ＶＸＬＡＮパケット１２５は、Ｏｕｔｅｒ  ＭＡＣ  Ｈｅａｄｅｒ１０７と、Ｏｕｔｅｒ  ＩＰ  Ｈｅａｄｅｒ１０８と、Ｏｕｔｅｒ  ＵＤＰ  Ｈｅａｄｅｒ１０９と、ＶＸＬＡＮ  Ｈｅａｄｅｒ１１０と、オリジナルＬ２フレーム（Ｏｒｉｇｉｎａｌ  Ｌ２  Ｆｌａｍｅ）１１１と、ＦＣＳ１１２とを含む。Ｏｕｔｅｒ  ＭＡＣ  Ｈｅａｄｅｒ１０７は、宛先ＭＡＣアドレス１１３と、送信元ＭＡＣアドレス１１４と、プロトコル種別１１５とを含む。Ｏｕｔｅｒ  ＩＰ  Ｈｅａｄｅｒ１０８は、ＩＰヘッダ等（ＩＰ  Ｈｅａｄｅｒ  ｍｉｓｃ）１１６と、送信元ＩＰアドレス（Ｏｕｔｅｒ  Ｓｒｃ  ＩＰ）１１７と、宛先ＩＰアドレス（Ｏｕｔｅｒ  Ｄｓｔ  ＩＰ）１１８とを含む。ＶＸＬＡＮ  Ｈｅａｄｅｒ１１０は、ＶＸＬＡＮ  ＩＤに対応するＶＮＩ（ＶＸＬＡＮ  Ｎｅｔｗｏｒｋ  Ｉｄｅｎｔｉｆｉｅｒ）１２３と、予約ビット（Ｒｅｓｅｒｖｅｄ）１２４と、その他の識別子（ＶＸＬＡＮ  ｍｉｓｃ）１２２とを含む。オリジナルＬ２フレーム１１１は、宛先ＭＡＣアドレス１０１と、送信元ＭＡＣアドレス１０２と、ｐａｙｌｏａｄ１０５とを含む。宛先ＭＡＣアドレス１０１と、送信元ＭＡＣアドレス１０２と、ｐａｙｌｏａｄ１０５とは、カプセル化前又はデカプセル化後のレイヤー２フレーム１００の内容に対応する。
【００３０】
次に、ＳＷ１の機能構成について詳細に説明する。
【００３１】
図４は、一実施形態に係るネットワークスイッチの機能構成図である。
【００３２】
ＳＷ１は、２個以上のポート２００と、ＦＤＢ（Ｆｏｒｗａｒｄｉｎｇ  Ｄａｔａｂａｓｅ）制御部２０１と、送信処理部の一例としてのＶＸＬＡＮ処理部４と、検出部の一例としてのレイヤー２リング処理部２０３と、ＣＰＵ２０４と、ＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）制御部２０５と、レイヤー２処理部２１５と、レイヤー３処理部２１６とを備える。
【００３３】
ＦＤＢ制御部２０１は、ＦＤＢテーブル２０６を記憶し、宛先ＭＡＣアドレスに応じた転送先を制御する。ＡＲＰ制御部２０５はＡＲＰテーブル２０７を記憶し、ＡＲＰ送受信を行ってＡＲＰテーブル２０７の登録、更新、削除を行う。レイヤー２リング処理部２０３は、レイヤー２リングプロトコルを制御する、具体的には、レイヤー２リング処理部２０３は、ヘルスチェックフレームや、障害通知フレーム、復旧通知フレーム等の送受信を行う。ＶＸＬＡＮ処理部４は、ＶＬＡＮ−ＶＮＩテーブル２１４と、経路情報学習部及びアドレス学習部の一例としてのカプセル化処理部２０８と、デカプセル化処理部２０９とを含む。カプセル化処理部２０８は、学習済みカプセル化テーブル２１０と、複製ＩＤテーブル２１１と、複製切替登録テーブル２１２と、未学習カプセル化テーブル２１３とを記憶し、レイヤー２フレーム１００をＶＸＬＡＮパケット１２５へ変換するカプセル化処理を行う。デカプセル化処理部２０９は、ＶＸＬＡＮパケット１２５をレイヤー２フレーム１００に変換するデカプセル化処理を行う。ＶＬＡＮ−ＶＮＩテーブル２１４は、ＶＸＬＡＮのＶＮＩと、ＶＬＡＮＩＤとのマッピングを管理するテーブルである。レイヤー２処理部２１５は、レイヤー２に従ったレイヤー２フレームの中継等の処理を行う。レイヤー３処理部２１６は、レイヤー３に従ったＶＸＬＡＮパケット１２５の中継等の処理を行う。ＣＰＵ２０４は、ＳＷ１全体の制御を行う。
【００３４】
図５は、一実施形態に係るＡＲＰテーブルの一例の構成図である。
【００３５】
ここで、図１に示すネットワークシステム１０００の各ＳＷ１に備えられている各ＶＸＬＡＮ処理部４には、ＩＰアドレスが付与されている。また、ＳＷ＃１のＶＸＬＡＮ処理部＃１のＩＰアドレスをＩＰ１、ＭＡＣアドレスをＭＡＣ１とし、ＳＷ＃２のＶＸＬＡＮ処理部＃２のＩＰアドレスをＩＰ２、ＭＡＣアドレスをＭＡＣ２とし、ＳＷ＃３のＶＸＬＡＮ処理部＃３のＩＰアドレスをＩＰ３、ＭＡＣアドレスをＭＡＣ３として説明する。なお、ＩＰアドレスを便宜的にＩＰ１，ＩＰ２，ＩＰ３としたが、具体的には、ＩＰｖ４であれば１９２．１６８．１．１などの表記となる。
【００３６】
図５（ａ）は、ネットワークシステム１０００が図１（ａ）に示す通常状態である場合における各ＳＷ１のＡＲＰテーブル２０７を示し、図５（ｂ）は、ネットワークシステム１０００が図１（ｂ）に示す障害状態となり、障害発生後にＡＲＰ再解決が実行されて更新された場合における各ＳＷ１のＡＲＰテーブル２０７を示している。
【００３７】
ＡＲＰテーブル２０７は、ＩＰアドレス２０７ａと、ＭＡＣアドレス２０７ｂと、出力ポート２０７ｃとの列を有する。ＩＰアドレス２０７ａには、中継先のＳＷ１のＩＰアドレスが格納される。ＭＡＣアドレス２０７ｂには、宛先の装置のＭＡＣアドレスが格納される。出力ポート２０７ｃには、宛先への通信に用いるポート２００のＩＤ（識別子）が格納される。
【００３８】
ネットワークシステム１０００が図１（ａ）に示す通常状態である場合においては、図５（ａ）に示すＳＷ＃１のＡＲＰテーブル２０７によると、ＳＷ＃１では、ＩＰ２へ中継する場合には、宛先ＭＡＣアドレスをＭＡＣ２としてｐｏｒｔ２から出力すればよいことを示している。
【００３９】
また、ネットワークシステム１０００が図１（ｂ）に示す障害状態である場合においては、図５（ｂ）に示すＳＷ＃１のＡＲＰテーブル２０７によると、ＳＷ＃１では、ＩＰ２へ中継する場合、宛先ＭＡＣアドレスをＭＡＣ２としてｐｏｒｔ１から出力すればよいことを示している。なお、ＡＲＰの動作やＡＲＰテーブル２０７の作成についてはＲＦＣ８２６で定義されている。
【００４０】
図６は、一実施形態に係るＶＬＡＮ−ＶＮＩテーブルの一例の構成図である。
【００４１】
ＶＬＡＮ−ＶＮＩテーブル２１４は、ＶＸＬＡＮのカプセル化およびデカプセル化を行う際に、レイヤー２のＶＬＡＮＩＤをＶＸＬＡＮのＶＮＩにマッピングするために使用するテーブルであり、ＶＬＡＮＩＤ２１４ａとＶＮＩ２１４ｂとのを列に持つ。ＶＬＡＮＩＤ２１４ａには、ＶＬＡＮＩＤが格納される。ＶＮＩ２１４ｂには、同一行（エントリ）のＶＬＡＮＩＤに対応するＶＮＩが格納される。図６の例では、ＶＬＡＮＩＤが“ＶＩＤ１”である場合、ＶＮＩは“ＶＮＩ１”であり、ＶＬＡＮＩＤが“ＶＩＤ２”である場合、ＶＮＩは“ＶＮＩ２”であることを示している。このＶＬＡＮ−ＶＮＩテーブル２１４は、例えば、ＳＷ１の管理者によって登録される。
【００４２】
図７は、一実施形態に係るＦＤＢテーブルの一例の構成図である。
【００４３】
ＦＤＢテーブル２０６は、ＭＡＣアドレス２０６ａと、ＶＮＩ２０６ｂと、宛先処理部ＩＰアドレス２０６ｃと、出力ポート２０６ｄとの列を持つ。ＭＡＣアドレス２０６ａには、通信対象の装置のＭＡＣアドレスが格納される。ＶＮＩ２０６ｂには、同一行（エントリ）の装置が属するＶＬＡＮに対応するＶＮＩが格納される。宛先処理部ＩＰアドレス２０６ｃには、宛先のＶＸＬＡＮ処理部４のＩＰアドレスが格納される。出力ポート２０６ｄには、同一行の装置と通信する際に使用するポートのＩＤが格納される。例えば、レイヤー２のフレーム中継では、宛先ＭＡＣアドレスがＦＤＢテーブル２０６に登録されている場合、その登録された受信ポートに向けて送信される一方、宛先マックアドレスが登録されていない場合（未学習の場合）には、リングポートの双方向のポートへ送信される。ＦＤＢテーブル２０６は、送信先アドレス情報に相当する。
【００４４】
図８は、一実施形態に係る学習済みカプセル化テーブルの一例の構成図である。
【００４５】
学習済みカプセル化テーブル２１０は、学習済みユニキャストカプセル化を行う際に参照されるテーブル（ユニキャストカプセル化テーブル）であり、宛先ＩＰアドレス２１０ａと、宛先ＭＡＣアドレス２１０ｂと、出力ポート２１０ｃとの列に持つ。宛先ＩＰアドレス２１０ａには、宛先となる装置のＩＰアドレス（宛先ＩＰアドレス）が格納される。宛先ＩＰアドレス２１０ａの宛先ＩＰアドレスは、ＳＷ１の管理者がＶＸＬＡＮ処理部４同士の接続（トンネル）情報を登録する時に登録される。図８の例は、ＳＷ＃１のＶＸＬＡＮ処理部＃１における学習済みカプセル化テーブル２１０を示しており、ＶＸＬＡＮ処理部＃２のＩＰアドレス（ＩＰ２）およびＶＸＬＡＮ処理部＃３のＩＰアドレス（ＩＰ３）と接続するように管理者が登録した状態を示している。宛先ＭＡＣアドレス２１０ｂには、同一行の宛先ＩＰアドレスの装置に対応するＭＡＣアドレスが格納される。出力ポート２１０ｃには、同一行の装置への出力時に使用するポートのＩＤが格納される。例えば、ＶＸＬＡＮ処理部４は、学習済みカプセル化テーブル２１０の宛先ＩＰアドレス２１０ａに管理者が宛先ＩＰアドレスを登録した後、宛先ＩＰアドレスを用いてＡＲＰテーブル２０７を検索し、検索した得られた結果（ＭＡＣアドレスおよび出力ポート）を宛先ＭＡＣアドレス２１０ｂおよび出力ポート２１０ｃに登録する。また、ＶＸＬＡＮ処理部４は、ＡＲＰテーブル２０７が更新されたタイミングでも、学習済みカプセル化テーブル２１０を更新する。この学習済みカプセル化テーブル２１０のエントリがレイヤー３パケット経路情報の一例である。
【００４６】
図９は、一実施形態に係る複製ＩＤテーブルの一例の構成図である。
【００４７】
複製ＩＤテーブル２１１は、レイヤー２フレーム１００の受信時に参照されるテーブルであり、ＶＮＩ毎の複製を特定する情報を記憶する。複製ＩＤテーブル２１１は、ＶＮＩ２１１ａと、複製ＩＤ２１１ｂとの列を持つ。ＶＮＩ２１１ａには、ＳＷ１が関係するＶＮＩが格納される。複製ＩＤ２１１ｂには、同一行のＶＮＩが示すＶＸＬＡＮにおける中継時の複製を示すＩＤ（複製ＩＤ）が格納される。ＶＮＩ２１１ａには、ＳＷ１の管理者がＶＬＡＮ−ＶＮＩテーブル２１４のＶＮＩ２１４ａにＶＮＩの登録を行ったことに基づいて、ＶＮＩ２１４ａの値と同じ値が登録され、また、それと同時に複製ＩＤ２１１ｂには、複製ＩＤが格納される。複製ＩＤ２１１ｂに格納される複製ＩＤは、複製ＩＤテーブル２１１内でユニークな値であれば任意の値でよい。複製ＩＤ２１１ｂには、リングの状態に応じて、後述する複製切替登録テーブル２１２の対応するＶＮＩの通常時複製ＩＤ２１２ｂもしくは障害時複製ＩＤ２１２ｃのいずれかの値が入る。複製ＩＤ２１１Ｂに格納されている複製ＩＤが参照先情報に対応する。
【００４８】
図１０は、一実施形態に係る複製切替登録テーブルの一例の構成図である。
【００４９】
複製切替登録テーブル２１２は、ＶＮＩ２１２ａと、通常時複製ＩＤ２１２ｂと、障害時複製ＩＤ２１２ｃとの列を持つ。ＶＮＩ２１２ａには、送信対象のＶＬＡＮのＶＮＩが格納される。通常時複製ＩＤ２１２ｂには、同一行のＶＮＩのＶＬＡＮについて、通常時の複製を示す複製ＩＤが格納される。障害時複製ＩＤ２１２ｃには、同一行のＶＮＩのＶＬＡＮについて、障害時の複製を示す複製ＩＤが格納される。
複製切替登録テーブル２１２の各列２１２ａ、２１２ｂ、２１２ｃは、ＳＷ１の管理者がＶＬＡＮ−ＶＮＩテーブル２１４にＶＮＩの登録を行ったことに基づいて、登録される。複製切替登録テーブル２１２のＶＮＩ２１２ａには、ＶＬＡＮ−ＶＮＩテーブル２１４のＶＮＩ２１４ａと同じ値が登録され、通常時複製ＩＤ２１２ｂおよび障害時複製ＩＤ２１２ｃには、複製切替登録テーブル２１２内でユニークな値が登録される。
【００５０】
図１１は、一実施形態に係る未学習カプセル化テーブルの一例の構成図である。
【００５１】
未学習カプセル化テーブル２１３は、中継先が学習されていない宛先に対するフレーム（未学習フレーム）をＶＸＬＡＮパケット１２５もしくはレイヤー２フレーム１００のまま中継する際に参照されるテーブルであり、複製ＩＤ２１３ａと、宛先ＩＰアドレス２１３ｂと、宛先ＭＡＣアドレス２１３ｃと、出力ポート２１３ｄとの列を持つ。未学習カプセル化テーブル２１３は、複製ＩＤ毎に１以上の行のグループを有する。複製ＩＤ２１３ａには、複製を示す複製ＩＤが格納される。宛先ＩＰアドレス２１３ｂには、同一行（エントリ）の複製における送信データ単位（パケットまたはフレーム）の宛先となるＩＰアドレスが格納される。宛先ＭＡＣアドレス２１３ｃには、エントリの複製における宛先となる装置のＭＡＣアドレスが格納される。出力ポート２１３ｄには、エントリの複製におけるパケットまたはフレームを出力するポートのＩＤが格納される。未学習カプセル化テーブル２１３の宛先ＩＰアドレス２１３ｂおよび宛先ＭＡＣアドレス２１３ｃに値が登録されているエントリが未学習用情報に対応し、障害時複製ＩＤに対応付けられているエントリが障害時ポート情報に対応し、通常時複製ＩＤに対応付けられているエントリが通常時ポート情報に対応する。
【００５２】
図１１の未学習カプセル化テーブル２１３においては、複製ＩＤ２１３ａが“ｉｄ１”の複製のグループでは、４つの送信データ単位に複製されて中継されることを表している。宛先ＩＰアドレス２１３ｂおよび宛先ＭＡＣアドレス２１３ｃに値が登録されている場合、ＶＸＬＡＮパケットにカプセル化して中継することを表し、宛先ＩＰアドレス２１３ｂおよび宛先ＭＡＣアドレス２１３ｂに値が登録されていない場合、レイヤー２フレーム１００のまま中継することを表している。
【００５３】
未学習カプセル化テーブル２１３に、複製ＩＤ２１３ａの値が、複製切替登録テーブル２１２の通常時複製ＩＤ２１２ｂに登録された値であるエントリを登録する際のカプセル化処理部２０８の処理動作について説明する。
【００５４】
カプセル化処理部２０８は、処理対象の複製に対応するＶＮＩのＶＸＬＡＮにおいて、ＳＷ１の管理者が他のＶＸＬＡＮ処理部４との中継を許可しているＶＸＬＡＮ処理部４のＩＰアドレスのそれぞれが宛先ＩＰアドレス２１３ｂに含まれるようにエントリを登録する。ここで、ＳＷ１の管理者は、予めＶＮＩ毎に、他のＶＸＬＡＮ処理部４との中継を許可しているＶＸＬＡＮ処理部４のＩＰアドレスをＶＸＬＡＮ処理部４等に記憶させているものとする。
【００５５】
例えば、複製ＩＤ２１３ａが“ｉｄ１”の場合には、複製切替登録テーブル２１２を“ｉｄ１”を用いて参照することにより、“ＶＮＩ１”を特定する。ここで、“ＶＮＩ１”は、ＩＰアドレス“ＩＰ２”および“ＩＰ３”のＶＸＬＡＮ処理部４との間で中継する設定がＳＷ１の管理者により行われているものとすると、“ＶＮＩ１”に対応して記憶されているＩＰアドレス“ＩＰ２”および“ＩＰ３”を特定し、“ＩＰ２”及び“ＩＰ３”のそれぞれを異なるエントリの宛先ＩＰアドレス２１３ｂに設定する。
【００５６】
次いで、カプセル化処理部２０８は、ＡＲＰテーブル２０７を参照して“ＩＰ２”、“ＩＰ３”のそれぞれに対応するＭＡＣアドレスおよび出力ポートを検索し、検索結果のＭＡＣアドレスおよび出力ポートを、対応するエントリの宛先ＭＡＣアドレス２１３ｃおよび出力ポート２１３ｄに登録する。また、カプセル化処理部２０８は、ＶＬＡＮ−ＶＮＩテーブル２１４を参照して、“ｉｄ１”に対応する“ＶＮＩ１”に対応する“ＶＩＤ１”を得る。さらに、カプセル化処理部２０８は、レイヤー２リング処理部２０３に、“ＶＩＤ１”が設定されているポートを問い合わせ、問い合わせにより得られたポートＩＤを、対応するエントリの出力ポート２１３ｄに登録する。なお、レイヤー２リング処理部２０３は、ＶＬＡＮＩＤと、ＶＬＡＮＩＤに設定されているポート２００のポートＩＤとを対応付けて記憶している。
【００５７】
これにより、未学習カプセル化テーブル２１３には、複製ＩＤが”ｉｄ１“の場合、ＶＸＬＡＮパケット１２５にカプセル化して宛先ＩＰアドレス“ＩＰ２”および“ＩＰ３”に向けて中継し、レイヤー２フレーム１００を“ｐｏｒｔ３”および“ｐｏｒｔ４”に複製して中継することを示すエントリが登録される。ただし、複製においては、レイヤー２フレーム１００が入力されたポート２００へ折り返して中継することはしないものとする。例えば“ｐｏｒｔ３”からレイヤー２フレーム１００が入力された場合は“ｐｏｒｔ３”に折り返して中継せず、“ｐｏｒｔ４”のみにレイヤー２フレーム１００を複製して中継する。
【００５８】
次に、未学習カプセル化テーブル２１３に、複製ＩＤ２１３ａの値が、複製切替登録テーブル２１２の障害時複製ＩＤ２１２ｃに登録された値であるエントリを登録する際のカプセル化処理部２０８の処理動作について説明する。
【００５９】
カプセル化処理部２０８は、複製ＩＤ２１３ａの複製ＩＤ（障害時複製ＩＤ）と対応付けられている（同一エントリとして対応付けられている）複製切替登録テーブル２１２の通常時複製ＩＤ２１２ｂの複製ＩＤ（通常時複製ＩＤ）を特定し、未学習カプセル化テーブル２１３の複製ＩＤ２１３ａの障害時複製ＩＤのエントリを、通常時複製ＩＤのエントリと同内容とする。例えば、複製ＩＤ２１３ａが“ｉｄ３”の場合、対応する“ｉｄ１”を複製ＩＤとする未学習カプセル化テーブル２１３のエントリにおける宛先ＩＰアドレス２１３ｂ、宛先ＭＡＣアドレス２１３ｃ、出力ポート２１３ｄの値を、複製ＩＤ２１３ａが“ｉｄ３”の各エントリの対応する列にコピーする。
【００６０】
次に、カプセル化処理部２０８は、ＶＸＬＡＮパケット１２５にカプセル化することを示すエントリにおいて、出力ポート１２３ｄのポートＩＤがリングポートである場合、出力ポート１２３ｄの値を、このリングポートと対を成すリングポートに変更した新たなエントリをＶＸＬＡＮパケット１２５にカプセル化するためのエントリとして追加登録する。具体的には、複製ＩＤ２１３ａが“ｉｄ３”の場合、ＶＸＬＡＮパケット１２５にカプセル化することを示すエントリとして宛先ＩＰアドレス２１３ｂ、宛先ＭＡＣアドレス２１３ｃ、出力ポート２１３ｃに“ＩＰ２”、“ＭＡＣ２”、“ｐｏｒｔ２”が設定されているエントリが存在しているので、このエントリをそのまま残し、出力ポート２１３ｃの値を“ｐｏｒｔ２”と対をなす“ｐｏｒｔ１”に変更した新たなエントリを追加登録する。同様に、ＶＸＬＡＮパケット１２５にカプセル化することを示すエントリとして宛先ＩＰアドレス２１３ｂ、宛先ＭＡＣアドレス２１３ｃ、出力ポート２１３ｃに“ＩＰ３”、“ＭＡＣ３”，“ｐｏｒｔ１”が設定されているエントリが存在しているので、このエントリをそのまま残し、出力ポート２１３ｃの値を“ｐｏｒｔ１”と対をなす“ｐｏｒｔ２”に変更した新たなエントリを追加登録する。
【００６１】
これにより、障害時複製ＩＤに対応付けられたエントリとしては、同一の宛先ＩＰアドレス及び同一の宛先ＭＡＣアドレスの宛先に対して、複数の異なるポート（例では、対となる２つのリングポート）により、カプセル化したＶＸＬＡＮパケット１２５を出力することとなる。
【００６２】
次に、ＳＷ１における処理動作について説明する。
【００６３】
図１２は、一実施形態に係る受信時処理のフローチャートである。
【００６４】
ＳＷ１のＶＸＬＡＮ処理部４は、ポート２００を介して通信データを受信すると、通信データが自装置宛ＶＸＬＡＮパケットであるか否かを判定する（Ｓ１１）。具体的には、ＶＸＬＡＮ処理部４は、通信データが自装置宛ＶＸＬＡＮパケットであるか否かについては、通信データが、ＵＤＰ／ＩＰパケットであり、パケットの宛先ＭＡＣアドレス１１３が自装置宛（ＳＷ１のＭＡＣアドレス）であり、且つ宛先ＵＤＰポート番号１２０がＶＸＬＡＮに割り当てられているポート番号（例えば、“４７８９”）であるか否かにより判定している。
【００６５】
この結果、通信データが自装置宛ＶＸＬＡＮパケットである場合（Ｓ１１：Ｙｅｓ）には、ＶＸＬＡＮ処理部４は、デカプセル化処理（図１４参照）を実行する（Ｓ１３）。一方、通信データが自装置宛ＶＸＬＡＮパケットでない場合、すなわち、通信データがレイヤー２フレーム１００である、又は、自装置以外宛のＶＸＬＡＮパケットである場合（Ｓ１１：Ｎｏ）には、ＶＸＬＡＮ処理部４は、カプセル化処理（図１３参照）を実行する（Ｓ１２）。
【００６６】
図１３は、一実施形態に係るカプセル化処理のフローチャートである。カプセル化処理は、図１２のステップＳ１２の処理に対応する。
【００６７】
ＶＸＬＡＮ処理部４は、受信データ（レイヤー２フレーム１００、又はＶＸＬＡＮパケット１２５）のＶＬＡＮ  Ｔａｇ１０４内のＶＬＡＮＩＤを参照し、このＶＬＡＮＩＤを用いてＶＬＡＮ−ＶＮＩテーブル２１４を検索する（Ｓ２１）。この検索の結果、ＶＬＡＮ−ＶＮＩテーブル２１４に登録されていない場合（Ｓ２１：ミス）には、自装置が管理するＶＸＬＡＮ用の通信データではないことを意味しているので、ＶＸＬＡＮ処理部４は、レイヤー２処理部２１５又はレイヤー３処理部２１６により、既存のレイヤー２処理もしくはレイヤー３処理を実行させ（Ｓ２２）、処理を終了する。
【００６８】
一方、ＶＬＡＮＩＤがＶＬＡＮ−ＶＮＩテーブル２１４に登録されている場合（Ｓ２１：ヒット）には、ＶＸＬＡＮ処理部４は、レイヤー２フレーム１００の情報をＦＤＢテーブル２０６に登録する（Ｓ２３：カプセル化時ＦＤＢテーブル登録）。具体的には、ＶＸＬＡＮ処理部４は、レイヤー２フレーム１００の送信元ＭＡＣアドレス１０２をＭＡＣアドレス２０６ａに格納し、ＶＬＡＮ−ＶＮＩテーブル２１４をＶＬＡＮＩＤで検索して得られたＶＮＩをＶＮＩ２０６ｂに格納し、レイヤー２フレーム１００を受信したポートのポート番号を出力ポート２０６ｄに格納したエントリをＦＤＢテーブル２０６に追加する。なお、ＦＤＢテーブル２０６に、同じ内容のエントリが存在している場合には、ＶＸＬＡＮ処理部４は、エントリを追加しない。例えば、送信元ＭＡＣアドレス１０２が“ＭＡＣ４”、ＶＬＡＮＩＤが“ＶＩＤ１”であるレイヤー２フレーム１００を“ｐｏｒｔ２”のポート２００から受信した場合には、図７に示すＦＤＢテーブル２０６における３行目のエントリが登録される。なお、ステップＳ２３の処理で追加されるエントリにおいては、宛先処理部ＩＰアドレス２０６ｃには、何も登録されない。
【００６９】
次に、ＶＸＬＡＮ処理部４は、ＦＤＢテーブル２０６の検索を行う（Ｓ２４）。具体的には、ＶＸＬＡＮ処理部４は、レイヤー２フレーム１００の宛先ＭＡＣアドレス１０１および検索して得られたＶＮＩの組み合わせが、ＦＤＢテーブル２０６に登録されているか否かを検索する。
【００７０】
この結果、ＦＤＢテーブル２０６に宛先ＭＡＣアドレス１０１およびＶＮＩの組み合わせのエントリが見つかった場合（Ｓ２４：ヒット）、ＶＸＬＡＮ処理部４は、見つかったエントリの宛先処理部ＩＰアドレス２０６ｃにＩＰアドレスが設定されているか否かを判定する（Ｓ２５）。
【００７１】
この結果、見つかったエントリの宛先処理部ＩＰアドレス２０６ｃにＩＰアドレスが設定されている場合（Ｓ２５：Ｙｅｓ）には、ＶＸＬＡＮ処理部４は、学習済みカプセル化、中継処理を行う（Ｓ２６）。
【００７２】
ここで、学習済みカプセル化、中継処理を、ＶＬＡＮ−ＶＮＩテーブル２１４、ＦＤＢテーブル２０６、及び学習済みカプセル化テーブル２１０が図６乃至図８に示す状態であり、宛先ＭＡＣアドレス１０１が“ＭＡＣ２”であり、ＶＬＡＮ  Ｔａｇ１０４内のＶＬＡＮＩＤが“ＶＩＤ１”であるレイヤー２フレーム１００を受信した場合を例に説明する。
【００７３】
このレイヤー２フレーム１００を受信した場合には、ステップＳ２１で、“ＶＩＤ１“に対応するＶＮＩが“ＶＮＩ１“であると検索され、ステップＳ２４では、ＦＤＢテーブル２０６から、”ＭＡＣ２“および”ＶＮＩ１“の組み合わせが検索されて、図７の１行目のエントリが検索され、ステップＳ２５において、宛先処理部ＩＰアドレス２０６ｃにＩＰアドレスとして”ＩＰ２“が設定されていることが判定される。
【００７４】
この場合に、ＶＸＬＡＮ処理部４は、以下に示すように、レイヤー２フレーム１００をカプセル化させてＶＸＬＡＮパケット１２５を生成する。この際、ＶＸＬＡＮ処理部４は、宛先宛先処理部ＩＰアドレス２０６ｃに設定された“ＩＰ２”を用いて学習済みカプセル化テーブル２１０を検索し、“ＩＰ２”をＶＸＬＡＮパケット１２５の宛先ＩＰアドレス１１８とし、検索によって得られた学習済みカプセル化テーブル２１０のエントリの宛先ＭＡＣアドレス２１０ｂの値（“ＭＡＣ２”）を、ＶＸＬＡＮパケット１２５の宛先ＭＡＣアドレス１１３とする。また、ＶＸＬＡＮ処理部４は、ＶＸＬＡＮ処理部４のＩＰアドレス（“ＩＰ１”）をＶＸＬＡＮパケット１２５の送信元ＩＰアドレス１１７とし、ＶＸＬＡＮ処理部４のＭＡＣアドレス（“ＭＡＣ１”）を送信元ＭＡＣアドレス１１４とする。また、ＶＸＬＡＮ処理部４は、ＶＬＡＮ−ＶＮＩテーブル２１４の検索結果のＶＮＩの値をＶＸＬＡＮパケット１２５のＶＮＩ１２３とし、“４７８９”がＶＸＬＡＮパケット１２５の宛先ポート１２０とされる。この後、ＶＬＡＮ処理部４は、生成したＶＸＬＡＮパケット１２５を学習済みカプセル化テーブル２１０のエントリの出力ポート２１０ｃのＩＤのポート２００を介して送信する。
【００７５】
一方、見つかったエントリの宛先処理部ＩＰアドレス２０６ｃにＩＰアドレスが設定されていない場合（Ｓ２５：Ｎｏ）には、ＶＸＬＡＮ処理部４は、レイヤー２フレーム１００を、エントリの出力ポート２０６ｄに設定されているＩＤのポート２００により送信する学習済み中継処理を行う（Ｓ２７）。
【００７６】
一方、ステップＳ２４において、ＦＤＢテーブル２０６に宛先ＭＡＣアドレス１０１およびＶＮＩの組み合わせのエントリが見つからなかった場合は（Ｓ２４：ミス）、未学習カプセル化、中継処理を行う（Ｓ２８）。未学習カプセル化、中継処理では、ＶＸＬＡＮ処理部４は、レイヤー２フレーム１００を複数のレイヤー２フレーム１００に複製し、その一部のレイヤー２フレーム１００をそれぞれＶＸＬＡＮパケット１２５にカプセル化して送信するとともに、残りのレイヤー２フレーム１００をそのまま送信する。
【００７７】
ここで、未学習カプセル化、中継処理を、ＶＬＡＮ−ＶＮＩテーブル２１４、複製ＩＤテーブル２１１、及び未学習カプセル化テーブル２１３が図６、図９、及び図１１に示す状態であり、宛先ＭＡＣアドレス１０１が“ＭＡＣ２”であり、ＶＬＡＮ  Ｔａｇ１０４内のＶＬＡＮＩＤが“ＶＩＤ１”であるレイヤー２フレーム１００を受信した場合を例に説明する。なお、ＦＤＢテーブル２０６に宛先ＭＡＣアドレス１０１およびＶＮＩの組み合わせのエントリが見つからなかったものとする。
【００７８】
ＶＸＬＡＮ処理部４は、ＶＮＩを用いて複製ＩＤテーブル２１１を参照して、複製ＩＤを検索する。この結果、複製ＩＤ（“ｉｄ１”）が検出された場合（通常時）には、ＶＸＬＡＮ処理部４は、複製ＩＤ（“ｉｄ１”）を用いて、未学習カプセル化テーブル２１３を検索する。これにより、図１１の未学習カプセル化テーブル２１３の複製ＩＤ２１３ａが“ｉｄ１”である１行目から４行目までの４つのエントリが特定される。
【００７９】
次いで、ＶＸＬＡＮ処理部４は、レイヤー２フレーム１００を複製する。次いで、ＶＸＬＡＮ処理部４は、１つのレイヤー２フレーム１００を、宛先ＭＡＣアドレス“ＭＡＣ２”に対応する１行目のエントリを用いて、ＶＸＬＡＮパケット１２５にカプセル化して“ｐｏｒｔ２”から送信し、１つのレイヤー２フレーム１００を、３行目のエントリに基づいて、“ｐｏｒｔ３”から送信し、１つのレイヤー２フレーム１００を、４行目のエントリに基づいて、“ｐｏｒｔ４”から送信する。
【００８０】
一方、ＶＮＩを用いて複製ＩＤテーブル２１１を参照して、複製ＩＤ（“ｉｄ３”）が検出された場合、すなわち、リングにおけるネットワーク障害が発生した直後の場合には、ＶＸＬＡＮ処理部４は、複製ＩＤ（“ｉｄ３）”）を用いて、未学習カプセル化テーブル２１３を検索する。これにより、図１１の未学習カプセル化テーブル２１３の複製ＩＤ２１３ａが“ｉｄ３”である６つのエントリが特定される。
【００８１】
次いで、ＶＸＬＡＮ処理部４は、レイヤー２フレーム１００を複製する。次いで、ＶＸＬＡＮ処理部４は、１つのレイヤー２フレーム１００を、宛先ＭＡＣアドレス“ＭＡＣ２”に対応する１番目のエントリを用いて、ＶＸＬＡＮパケット１２５にカプセル化して“ｐｏｒｔ２”から送信し、１つのレイヤー２フレーム１００を、３番目のエントリに基づいて、“ｐｏｒｔ３”から送信し、１つのレイヤー２フレーム１００を、４番目のエントリに基づいて、“ｐｏｒｔ４”から送信する。さらに、ＶＸＬＡＮ処理部４は、１つのレイヤー２フレーム１００を、宛先ＭＡＣアドレス“ＭＡＣ２”に対応する５番目のエントリを用いて、ＶＸＬＡＮパケット１２５にカプセル化して“ｐｏｒｔ１”から送信する。
【００８２】
この結果、宛先ＩＰアドレスを“ＩＰ２”とし、宛先ＭＡＣアドレスを“ＭＡＣ２”とするＶＸＬＡＮパケット１２５を、リングポートである“ｐｏｒｔ１”と、“ｐｏｒｔ１”と対を成す“ｐｏｒｔ２”との両方向に送信することができる。これにより、リングトポロジのネットワーク３の一部が遮断されている場合であっても、所望の送信先の装置に、ＶＸＬＡＮパケット１２５を送信することができる。
【００８３】
図１４は、一実施形態に係るデカプセル化処理のフローチャートである。デカプセル化処理は、図１２のステップＳ１３の処理に対応する。
【００８４】
ＶＸＬＡＮ処理部４は、受信データ（すなわち、ＶＸＬＡＮパケット１２５）レイヤー２フレーム１００の情報をＦＤＢテーブル２０６に登録する（Ｓ３３：デカプセル化時ＦＤＢテーブル登録）。具体的には、ＶＸＬＡＮ処理部４は、ＶＸＬＡＮパケット１２５の送信元ＭＡＣアドレス１１４をＭＡＣアドレス２０６ａに格納し、ＶＮＩ１２３をＶＮＩ２０６ｂに格納し、宛先ＩＰアドレス１１８を宛先ＩＰアドレス２０６ｃに格納したエントリをＦＤＢテーブル２０６に追加する。なお、ＦＤＢテーブル２０６に、同じ内容のエントリが存在している場合には、ＶＸＬＡＮ処理部４は、エントリを追加しない。例えば、送信元ＭＡＣアドレス１１４が“ＭＡＣ２”、ＶＬＡＮＩＤが“ＶＩＤ１”、送信先ＩＰアドレスが“ＩＰ２”であるＶＸＬＡＮパケット１２５を受信した場合には、図７に示すＦＤＢテーブル２０６における１行目のエントリが登録される。なお、ステップＳ３３の処理で追加されるエントリにおいては、出力ポート２０６ｄには、何も登録されない。
【００８５】
次に、ＶＸＬＡＮ処理部４は、ＦＤＢテーブル２０６の検索を行う（Ｓ３４）。具体的には、ＶＸＬＡＮ処理部４は、ＶＸＬＡＮパケット１２５の宛先ＭＡＣアドレス１０１およびＶＮＩ１２３のＶＮＩの組み合わせが、ＦＤＢテーブル２０６に登録されているか否かを検索する。
【００８６】
この結果、ＦＤＢテーブル２０６に宛先ＭＡＣアドレス１０１およびＶＮＩの組み合わせのエントリが見つかった場合（Ｓ３４：ヒット）、ＶＸＬＡＮ処理部４は、学習済みデカプセル化、中継処理を実行する（Ｓ３５）。具体的には、ＶＸＬＡＮ処理部４は、ＶＸＬＡＮパケット１２５をデカプセル化してレイヤー２フレーム１００を生成し、レイヤー２フレーム１００をＦＤＢテーブル２０６の見つかったエントリの出力ポート２０６ｄのＩＤのポート２００に送信する。
【００８７】
一方、ＦＤＢテーブル２０６に宛先ＭＡＣアドレス１０１およびＶＮＩの組み合わせのエントリが見つからなかった場合（Ｓ３４：ミス）、ＶＸＬＡＮ処理部４は、未学習デカプセル化、中継処理を実行する（Ｓ３６）。
【００８８】
ここで、未学習デカプセル化、中継処理を、ＶＬＡＮ−ＶＮＩテーブル２１４、複製ＩＤテーブル２１１、及び未学習カプセル化テーブル２１３が図６、図９、及び図１１に示す状態であり、宛先ＭＡＣアドレス１０１が“ＭＡＣ２”であり、ＶＮＩが“ＶＮＩ１”であるＶＸＬＡＮパケット１２５を受信した場合を例に説明する。なお、ＦＤＢテーブル２０６に宛先ＭＡＣアドレス１０１およびＶＮＩの組み合わせのエントリが見つからなかったものとする。
【００８９】
ＶＸＬＡＮ処理部４は、ＶＮＩを用いて複製ＩＤテーブル２１１を参照して、複製ＩＤを検索する。この結果、複製ＩＤ（“ｉｄ１”）が検出された場合には、ＶＸＬＡＮ処理部４は、複製ＩＤ（“ｉｄ１”）を用いて、未学習カプセル化テーブル２１３を検索する。これにより、図１１の未学習カプセル化テーブル２１３の複製ＩＤ２１３ａが“ｉｄ１”である１行目から４行目までの４つのエントリが特定される。
【００９０】
次いで、ＶＸＬＡＮ処理部４は、ＶＸＬＡＮパケット１２５をデカプセル化してレイヤー２フレーム１００を生成し、このレイヤー２フレームを複製して、１つのレイヤー２フレーム１００を、宛先ＩＰアドレス２１３ｂが設定されていない３番目のエントリに基づいて、ｐｏｒｔ３”から送信し、１つのレイヤー２フレーム１００を、４番目のエントリに基づいて、“ｐｏｒｔ４”から送信する。
【００９１】
図１５は、一実施形態に係るテーブル更新処理のフローチャートである。
【００９２】
テーブル更新処理は、ＡＲＰテーブル２０７が登録もしくは更新されたときに実行される。
【００９３】
ＡＲＰテーブル２０７が更新されると、ＶＸＬＡＮ処理部４のカプセル化処理部２０８は、学習済みカプセル化テーブル２１０を設定、更新する（Ｓ４１）。次に、カプセル化処理部２０８は、未学習カプセル化参照テーブル２１３のうち、通常時複製ＩＤに対応するエントリを設定、更新する（Ｓ４２）。次いで、カプセル化処理部２０８は、レイヤー２リング処理部２０３によって、リング状のネットワーク３に障害が検知されていない場合（Ｓ４３：正常）、カプセル化処理部２０８は、未学習カプセル化テーブル２１３のうち、障害時複製ＩＤに対応するエントリを設定、更新する（Ｓ４４）。一方、レイヤー２リング処理部２０３により、リングに障害が検知されている、もしくはレイヤー２リング処理部２０３が動作していない場合（Ｓ４３：障害、リング無効）は、カプセル化処理部２０８は、障害時複製ＩＤに対応するエントリを設定、更新せずに処理を終了する。
【００９４】
図１６は、一実施形態に係る障害対応処理のフローチャートである。
【００９５】
障害対応処理は、マスターノードにより実行される処理である。例えば、図１に示すように３台のＳＷ１によってリングトポロジのネットワーク３を構成したときには、マスターノードであるＳＷ＃３が実行する処理である。以下、図１に示す構成を例に障害対応処理を説明する。
【００９６】
マスターノード（ＳＷ＃３）のレイヤー２リング処理部２０３は、リングを構成するポート１とポート２との双方から一定周期、例えば１０ｍｓ周期でヘルスチェックフレームを送信する（Ｓ１）。トランジットノード（ＳＷ＃１、ＳＷ＃２）は、ヘルスチェックフレームを受信すると、受信したリングポート以外のリングポートへ受信したヘルスチェックフレームを送信する。例えば、図１の構成ではＳＷ＃１がポート１からチェックフレームを受信した場合はポート２へ送信し、ポート２から受信した場合はポート１へ送信する。
【００９７】
次いで、マスターノード（ＳＷ＃３）は、レイヤー２（Ｌ２）のリング障害が発生しているか否かを判定する（Ｓ２）。具体的には、マスターノードは、自身が送信したヘルスチェックフレームが戻ってくる間は、リング障害が発生していない状態（通常状態）であると判定する。一方、ヘルスチェックフレームがマスターノードに戻ってこない状態、例えば１０ｍｓ周期でヘルスチェックを送信し続けているが、最後のヘルスチェック受信から３０ｍｓ経過してもヘルスチェックがマスターノードに戻ってこない場合、マスターノードはリング障害が発生したと判定する。
【００９８】
この結果、リング異常が発生していないと判定した場合（Ｓ２：Ｎｏ）には、マスターノードは、処理をステップＳ１に進める。
【００９９】
一方、リング異常が発生していると判定した場合（Ｓ２：Ｙｅｓ）、マスターノードは、障害通知フレームを、プライマリーポート（ポート１）およびセカンダリーポート（ポート２）から送信する（Ｓ３）。障害通知フレームを受け取ったトランジットノードは、障害時処理（図１７参照）を実行することとなる。
【０１００】
次いで、マスターノードは、ブロッキングポートを解除して、プライマリーポート（ポート１）およびセカンダリーポート（ポート２）を用いてデータを中継可能にする（Ｓ４）。次いで、マスターノードは、ＦＤＢテーブル２０６をクリア（ＦＤＢテーブル２０６のエントリをクリア：との部分も同様）し（Ｓ５）、後述する障害時処理（図１７参照）の実行を開始する。
【０１０１】
次いで、マスターノードは、再びリングを構成するポート１とポート２との双方から一定周期、例えば１０ｍｓ周期でヘルスチェックフレームを送信する（Ｓ６）。次いで、マスターノードは、障害状態から復旧したか否かを判定する（Ｓ７）。
【０１０２】
この結果、障害状態から復旧していない判定した場合、すなわち、ヘルスチェックフレームが戻ってこない場合（Ｓ７：Ｎｏ）には、マスターノードは、処理をステップＳ６に進める。
【０１０３】
一方、障害状態から復旧したと判定した場合（Ｓ７：Ｙｅｓ）には、マスターノードは、障害復旧通知フレームをポート１およびポート２から送信する（Ｓ８）。障害復旧通知フレームを受け取ったトランジットノードは、ＦＤＢテーブル２０６をクリアする。これにより、障害時に学習した経路情報をクリアすることができる。
【０１０４】
次いで、マスターノードは、ポート２にブロックポイントを設定し（Ｓ９）、ＦＤＢテーブル２０６をクリアすることにより障害時の経路情報をクリアし（Ｓ１０）、処理をステップＳ１に進める。
【０１０５】
図１７は、一実施形態に係る障害時処理のフローチャートである。
【０１０６】
障害時処理は、マスターノードでは、障害対応処理のステップＳ５において実行され、トランジットノードでは、障害通知フレームを受信した場合に実行される。
【０１０７】
まず、ＳＷ１のカプセル化処理部２０８は、ＦＤＢテーブル２０６をクリアし、ＦＤＢテーブル２０６の学習を抑止する（Ｓ５１）。ＦＤＢテーブル２０６をクリアすることにより、障害が発生していない状態の経路情報を削除し、障害発生時には送信していなかった経路での通信データの中継を行うことができるようになる。例えば、図１（ａ）の通常状態では端末Ａが端末Ｃへ通信する場合、ＳＷ＃１からＳＷ＃２を経由して通信していたのに対し、図１（ｂ）の障害状態では、ＳＷ＃１からＳＷ＃２へ中継不可であるが、ＳＷ＃１からＳＷ＃３、ＳＷ＃２の順に経由して通信が可能となる。
【０１０８】
なお、対向する（直接接続されている）ＶＬＡＮ処理部４からのＶＸＬＡＮパケットについてのみのＦＤＢテーブル２０６の学習を抑止するようにして、それ以外の装置との間（例えば、端末２）との間の通信データについてのＦＤＢテーブル２０６の学習については抑止しなくてもよい。このようにすると、リングにおける通信障害によってＦＤＢテーブル２０６がクリアされた後、対向するＶＸＬＡＮ処理部４からのパケットの学習だけが抑止され、自ＶＸＬＡＮ処理部４の配下に接続された装置（端末２）のＭＡＣアドレスは学習される為、自ＶＸＬＡＮ処理部４の配下の端末２間の通信を学習した状態とすることができ、対向するＶＸＬＡＮ処理部４との通信のみについて、未学習カプセル化、中継処理（Ｓ２８）を実行するようにすることができる。つまり、すべてについてＦＤＢテーブル２０６の学習を抑止するよりも、不要に複製してデータを中継する処理を抑制することができる。
【０１０９】
次に、カプセル化処理部２０８は、複製ＩＤテーブル２１１の複製ＩＤ２１１ｂの複製ＩＤを、複製切替登録テーブル２１２の障害時複製ＩＤ２１２ｃの複製ＩＤ（障害時複製ＩＤ）に書換える（Ｓ５２）。これにより、未学習カプセル化、中継処理（Ｓ２８）において、障害発生前のＡＲＰテーブル２０７によってＡＲＰ解決したレイヤー３の中継経路へ送信していたＶＸＬＡＮパケット１２５を、レイヤー３の中継経路に加えて、リングポートの対を成すポートに対して送信が可能となる。つまり、レイヤー３の中継動作を、一時的にレイヤー２に似た動作にすることができる。このステップを実行することにより、ＶＸＬＡＮパケットの通信が復旧する。このステップでの複製ＩＤの書換にかかる処理時間は、複製切替登録テーブル２１２の障害時複製ＩＤ２１２ｃに登録された複製ＩＤについての読み込み時間と、複製ＩＤテーブル２１１の複製ＩＤ２１１ｂへの複製ＩＤの書き込み時間とに限定することができ、比較的短時間となる。なお、通常時複製ＩＤと、障害時複製ＩＤとの対応関係を常に固定的にしておき、例えば通常時複製ＩＤの値は１〜４，０００、障害時複製ＩＤの値は１０，００１〜１４，０００として、若い順番からそれぞれ対応するように決めておけば、複製ＩＤの書換にかかる処理時間を、複製ＩＤテーブル２１１の複製ＩＤ  ２１１ｂに障害時複製ＩＤを書き込むだけの時間だけに限定することができる。
【０１１０】
次に、カプセル化処理部２０８は、カプセル化経路の再学習が完了したか否か（Ｓ５３）、すなわち、障害発生時におけるＡＲＰテーブル２０７の再学習と、学習済みカプセル化テーブル２１０と、未学習カプセル化テーブル２１３の通常時複製ＩＤに対応するエントリの更新がすべて完了したか否かを判定する。この結果、カプセル化経路の再学習が完了していない場合（Ｓ５３：未完）には、カプセル化処理部２０８は、処理をステップＳ５３に進めて、再学習が完了するまで待つ。
【０１１１】
一方、カプセル化経路の再学習が完了した場合（Ｓ５３：完了）は、カプセル化処理部２０８は、複製ＩＤテーブル２１１の複製ＩＤを通常時複製ＩＤに書き換える（Ｓ５４）。これにより、レイヤー２の障害に合わせて、レイヤー３の中継経路の完全な切替が完了する。
【０１１２】
次に、カプセル化処理部２０８は、ＦＤＢテーブル２０６の学習の抑止を解除し（Ｓ５５）、処理を終了する。これにより、障害通知フレームの受信後のＶＸＬＡＮパケットへのカプセル化を、未学習カプセル化、中継処理（Ｓ２８）のみとなるよう制限していた動作を、学習済みカプセル化、中継処理（Ｓ２６）も動作するようにすることができる。
【０１１３】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【０１１４】
例えば、上記実施形態では、障害時処理のステップＳ５１においては、ＦＤＢテーブル２０６の経路情報の全体（全エントリ）をクリアするようにして、クリアに係る処理時間を短くするようにしていたが、本発明はこれに限られず、例えば、ＦＤＢテーブル２０６のＶＸＬＡＮパケットの送信に関わるエントリ（すなわち、ＩＰアドレスが設定されているエントリ）のみをクリアするようにしてもよい。このようにすると、ＶＸＬＡＮパケット以外の通信データについては、障害発生前の経路情報をそのまま利用して、不要なデータの複製と中継に係る処理を抑制することができる。
【０１１５】
また、上記実施形態において、ＦＤＢ制御部２０１、ＶＸＬＡＮ処理部４、レイヤー２リング処理部２０３、ＡＲＰ制御部２０５、レイヤー２処理部２１５、レイヤー３処理部２１６が行っていた処理の一部又は全部を、ＣＰＵ２０４がプログラムを実行することに実現するようにしてもよい。このプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア（例えば可搬型の記憶メディア）であってもよい。
【符号の説明】
【０１１６】
１…ＳＷ（ネットワーク中継装置）、２…端末、３…ネットワーク、４…ＶＸＬＡＮ処理部、１００…レイヤー２フレーム、１２５…ＶＸＬＡＮパケット、２００…ポート、２０１…ＦＤＢ制御部、２０３…レイヤー２リング処理部、２０４…ＣＰＵ、２０５…ＡＲＰ制御部、２０６…ＦＤＢテーブル、２０７…ＡＲＰテーブル、２０８…カプセル化処理部、２０９…デカプセル化処理部、２１０…学習済みカプセル化テーブル、２１１…複製ＩＤテーブル、２１２…複製切替登録テーブル、２１３…未学習カプセル化テーブル、２１５…レイヤー２処理部、２１６…レイヤー３処理部
【図１】
2020022100.tif 000003
【図２】
2020022100.tif 000004
【図３】
2020022100.tif 000005
【図４】
2020022100.tif 000006
【図５】
2020022100.tif 000007
【図６】
2020022100.tif 000008
【図７】
2020022100.tif 000009
【図８】
2020022100.tif 000010
【図９】
2020022100.tif 000011
【図１０】
2020022100.tif 000012
【図１１】
2020022100.tif 000013
【図１２】
2020022100.tif 000014
【図１３】
2020022100.tif 000015
【図１４】
2020022100.tif 000016
【図１５】
2020022100.tif 000017
【図１６】
2020022100.tif 000018
【図１７】
2020022100.tif 000019