(57)【要約】【課題】  通信経路の制御を改善したパケット転送装置及びパケット転送方法を提供する。【解決手段】  パケット転送装置は、複数のポートと、ルーティングテーブルに従って複数のポート間でパケットを交換するスイッチ部と、操作者からコマンド入力を受け付ける受付部と、複数のノードのうち、コマンド入力で設定された通信経路上の次ノードにパケットが転送されるように、ルーティングテーブルを設定する設定処理部と、ネットワーク内のリンク障害を検出する障害検出部とを有し、設定処理部は、障害検出部が、コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害を検出した場合、パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替えるように、ルーティングテーブルの設定を変更し、障害検出部が、ネットワーク内の他の箇所のリンク障害を検出した場合、ルーティングテーブルの設定を維持する。【選択図】図１２
2014230100.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内の複数のノードとそれぞれ接続され、パケットを送受信する複数のポートと、
ルーティングテーブルに従って前記複数のポート間で前記パケットを交換するスイッチ部と、
操作者からコマンド入力を受け付ける受付部と、
前記複数のノードのうち、前記コマンド入力で設定された通信経路上の次ノードに前記パケットが転送されるように、前記ルーティングテーブルを設定する設定処理部と、
前記ネットワーク内のリンク障害を検出する障害検出部とを有し、
前記設定処理部は、前記障害検出部が、前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害を検出した場合、前記パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替えるように、前記ルーティングテーブルの設定を変更し、前記障害検出部が、前記ネットワーク内の他の箇所のリンク障害を検出した場合、前記ルーティングテーブルの設定を維持することを特徴とするパケット転送装置。
【請求項２】
前記ルーティングテーブルは、前記コマンド入力で設定された通信経路上の次ノードを示す第１識別子、及び、前記設定処理部が自律的に設定した通信経路上の次ノードを示す第２識別子を含み、
前記スイッチ部は、前記第２識別子より優先的に、前記第１識別子に従って前記複数のポート間で前記パケットを交換し、
前記設定処理部は、前記障害検出部が、前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害を検出した場合、前記ルーティングテーブルから前記第１識別子を削除し、または前記第１識別子を無効化することを特徴とする請求項１に記載のパケット転送装置。
【請求項３】
前記設定処理部は、前記障害検出部が、前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害の復旧を検出した場合、前記第１識別子を有効化することを特徴とする請求項２に記載のパケット転送装置。
【請求項４】
前記パケットは、前記パケットを識別するためのパケット識別子が付与され、
前記設定処理部は、自律的に設定した通信経路が複数存在する場合、前記パケットが各通信経路に均等に振り分けられるように、前記パケットの転送先として、前記パケット識別子に応じて通信経路上の次ノードを選択することを特徴とする請求項１乃至３の何れかに記載のパケット転送装置。
【請求項５】
ネットワーク内の複数のノードの少なくとも１つにおいて、操作者から受け付けたコマンド入力で設定された通信経路上の次ノードにパケットを転送し、
前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害が検出された場合、前記パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替え、前記ネットワーク内の他の箇所のリンク障害が検出された場合、前記パケットの転送先を維持することを特徴とするパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、パケット転送装置及びパケット転送方法に関する。
【背景技術】
【０００２】
通信需要の増加に伴い、ネットワーク内においてパケットを転送するレイヤ２スイッチに、より効果的な通信経路の制御機能が求められている。例えばスパニングツリープロトコルは、通信経路の制御手段として知られている。しかし、スパニングツリープロトコルは、通信経路がループ状になることを避けるため、通信経路の候補をツリー状に限定することによりブロッキングポートが生ずるので、例えば、帯域の有効利用が困難となるという問題が存在する。
【０００３】
これに対して、ＩＥＴＦ(the Internet Engineering Task Force)により規定されたＴＲＩＬＬ(Transparent Interconnection of Lots of Links)技術が、通信経路の制御手段として普及しつつある（例えば非特許文献１〜４参照）。ＴＲＩＬＬ技術は、コスト（リンクごとの通信速度）の合計が最小となるように通信経路を決定するＳＰＦ(Shortest Path Fast)と、そのような通信経路が複数存在する場合にトラフィックの分散を許容するＥＣＭＰ(Equal Cost Multi Path)とを特徴とする。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】IETF RFC6326,“Transparent Interconnection of Lots of Links (TRILL) Use of IS-IS”、[online]、[平成２５年５月７日検索］、インターネット＜URL:http://www.ietf.org/rfc/rfc6326.txt＞
【非特許文献２】IETF RFC6325,“Routing Bridges (RBridges): Base Protocol Specification”，[online]，[平成２５年５月７日検索］，インターネット＜URL:http://www.ietf.org/rfc/rfc6325.txt＞
【非特許文献３】IETF RFC6327,“Routing Bridges (RBridges): Adjacency”，[online]，[平成２５年５月７日検索］，インターネット＜URL:http://www.ietf.org/rfc/rfc6327.txt＞
【非特許文献４】IETF RFC6439,“Routing Bridges (RBridges): Appointed Forwarders”，[online]，[平成２５年５月７日検索］，インターネット＜URL:http://www.ietf.org/rfc/rfc6439.txt＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＴＲＩＬＬ技術によれば、レイヤ２スイッチは、ネットワーク内の他スイッチと通信することにより、ネットワークのトポロジを学習する。そして、レイヤ２スイッチは、所定のプロトコルに従って、データフロー（例えばVLAN(Virtual Local Area Network) IDで識別されるパケット）ごとに、自律的に通信経路を決定する。このとき、最小コストとなるように選択された複数の通信経路、つまりＥＣＭＰから１つの通信経路が選択される。
【０００６】
自律的に決定された通信経路は、例えば、特定のレイヤ２スイッチの保守のために該スイッチを迂回する通信経路の確立が必要となる場合、または各通信経路の帯域が均等になるようにデータフローを分散させる場合、操作者のコマンド入力により任意に変更される。なお、コマンド入力は、ＣＬＩ(Command Line Interface)などを介して行われる。
【０００７】
しかし、ＴＲＩＬＬ技術によれば、レイヤ２スイッチは、例えば、ネットワーク内の何れかの箇所においてリンク障害を検出すると、自律的に通信経路を再設定する。このため、操作者のコマンド入力で設定された通信経路が、自律的に決定された通信経路に戻されることにより、通信が瞬断するなどの問題が生ずる。
【０００８】
そこで本件は上記の課題に鑑みてなされたものであり、通信経路の制御を改善したパケット転送装置及びパケット転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本明細書に記載のパケット転送装置は、ネットワーク内の複数のノードとそれぞれ接続され、パケットを送受信する複数のポートと、ルーティングテーブルに従って前記複数のポート間で前記パケットを交換するスイッチ部と、操作者からコマンド入力を受け付ける受付部と、前記複数のノードのうち、前記コマンド入力で設定された通信経路上の次ノードに前記パケットが転送されるように、前記ルーティングテーブルを設定する設定処理部と、前記ネットワーク内のリンク障害を検出する障害検出部とを有し、前記設定処理部は、前記障害検出部が、前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害を検出した場合、前記パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替えるように、前記ルーティングテーブルの設定を変更し、前記障害検出部が、前記ネットワーク内の他の箇所のリンク障害を検出した場合、前記ルーティングテーブルの設定を維持する。
【００１０】
本明細書に記載のパケット転送方法は、ネットワーク内の複数のノードの少なくとも１つにおいて、操作者から受け付けたコマンド入力で設定された通信経路上の次ノードにパケットを転送し、前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害が検出された場合、前記パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替え、前記ネットワーク内の他の箇所のリンク障害が検出された場合、前記パケットの転送先を維持する方法である。
【発明の効果】
【００１１】
本明細書に記載のパケット転送装置及びパケット転送方法は、通信経路の制御を改善できるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】パケット転送装置のネットワークの一例を示す構成図である。
【図２】リンクコストの一例を示す表である。
【図３】ＥＣＭＰの一例を示すネットワーク構成図である。
【図４】通信経路に対するＶＬＡＮ  ＩＤの割り当てを示す表である。
【図５】コマンド入力による通信経路の変更例（１）を示すネットワーク構成図である。
【図６】変更前後の通信経路ごとの帯域合計を示す表である。
【図７】コマンド入力による通信経路の変更例（２）を示すネットワーク構成図である。
【図８】比較例として、変更前後及びリンク断後の通信経路に対するＶＬＡＮ  ＩＤの割り当てを示す表である。
【図９】比較例として、リンク断後の通信経路を示すネットワーク構成図である。
【図１０】初期状態における通信経路の一例を示すネットワーク構成図である。
【図１１】図１０の状態における各ノードのルーティングテーブルの設定を示す表である。
【図１２】リンク障害発生後の通信経路の例（１）を示すネットワーク構成図である。
【図１３】図１２の状態における各ノードのルーティングテーブルの設定例（１）を示す表である。
【図１４】図１２の状態における各ノードのルーティングテーブルの設定例（２）を示す表である。
【図１５】リンク障害発生後の通信経路の例（２）を示すネットワーク構成図である。
【図１６】図１５の状態における各ノードのルーティングテーブルの設定例（１）を示す表である。
【図１７】図１５の状態における各ノードのルーティングテーブルの設定例（２）を示す表である。
【図１８】リンク障害発生後の通信経路の例（３）を示すネットワーク構成図である。
【図１９】パケット転送装置の機能構成を示す構成図である。
【図２０】パケットの転送処理を示すフローチャートである。
【図２１】リンク障害発生時の通信経路の制御処理を示すフローチャートである。
【図２２】リンク障害復旧時の通信経路の制御処理を示すフローチャートである。
【図２３】イングレスＲＢ(Routing Bridge)における転送先ノードの決定方法を示す図である。
【図２４】トランジットＲＢにおける転送先ノードの決定方法を示す図である。
【図２５】ネットワークの他例における通信経路の初期状態を示すネットワーク構成図である。
【図２６】図２５の状態におけるノードＲＢ＃１のルーティングテーブルの設定を示す表である。
【図２７】コマンド入力で変更した通信経路の例を示すネットワーク構成図である。
【図２８】図２７の状態におけるノードＲＢ＃１のルーティングテーブルの設定を示す表である。
【図２９】リンク断後の通信経路の例を示すネットワーク構成図である。
【図３０】図２９の状態におけるノードＲＢ＃１のルーティングテーブルの設定を示す表である。
【発明を実施するための形態】
【００１３】
（ＳＰＦ及びＥＣＭＰ）
まず、図１及び図２を参照して、ＴＲＩＬＬ技術におけるＳＰＦ及びＥＣＭＰに関して説明する。図１は、パケット転送装置のネットワークの一例を示す構成図である。
【００１４】
パケット転送装置１は、メッシュ状のネットワークを構成するように相互に接続された複数のノードＲＢ＃１〜ＲＢ＃９にそれぞれ設けられている。パケット転送装置１は、ＬＡＮケーブルまたは光ファイバを介して相互に接続される。パケット転送装置１は、ノード間においてパケットを転送するレイヤ２スイッチとして機能する。パケットとしては、例えば、ＶＬＡＮ  ＩＤ（パケット識別子）が付与されたイーサネット（登録商標、以下同様）フレーム、またはイーサネットフレームを所定のフォーマットに従ってカプセル化して得たフレームが挙げられる。
【００１５】
各ノードＲＢ＃１〜ＲＢ＃９パケット転送装置１は、Ｈｅｌｌｏ交換と呼ばれるプロトコルによりネットワーク内の隣接関係を学習する。これにより、パケット転送装置１は、隣接ノードのノード識別子（あるいは、パケット転送装置１の装置ＩＤ）を取得する。例えばノードＲＢ＃１のパケット転送装置１は、隣接ノードのノード識別子として、ＲＢ＃２及びＲＢ＃３を取得する。
【００１６】
また、パケット転送装置１は、ＬＳＰ（Link State PDU(Protocol Data Unit)）交換と呼ばれるプロトコルにより、ネットワークの形態（トポロジー）を学習する。ＬＳＰ交換において、各パケット転送装置１は、自装置が生成したＬＳＰフレーム及び他装置から受信したＬＳＰフレームを、全ポートに出力（つまり、フラッディング）する。これにより、パケット転送装置１は、ネットワークの全体構成を学習するとともに、各ノード間のリンクのコスト、つまりリンクコストを取得する。
【００１７】
リンクコストは、図１に示されるように（「コスト」参照）、通信経路の最小単位となるリンクごとに決定されるパラメータである。図２には、リンクコストの一例を示す表である。リンクコストは、例えば、リンクの通信速度に応じて、１〜５の値を有し、通信速度が高いほど低い。
【００１８】
各パケット転送装置１は、ＳＰＦアルゴリズムを用いて、リンクコストに基づき、他ノードまでの最短の通信経路を自律的に算出する。例えば、ＲＢ＃１のパケット転送装置１は、ＲＢ＃９までの通信経路として、リンクコストの合計が最小となるように、ＲＢ＃２，ＲＢ＃５，及びＲＢ＃８の順に経由する経路を算出する。このときのリンクコストは、５（＝１＋１＋１＋２）である。
【００１９】
また、ＲＢ＃１のパケット転送装置１は、ＲＢ＃６までの通信経路として、ＲＢ＃２及びＲＢ＃３を順に経由する経路Ｐ１と、ＲＢ＃２及びＲＢ＃５を順に経由する経路Ｐ２とを算出する。経路Ｐ１，Ｐ２は、リンクコストの合計が、ともに５であるため、ＥＣＭＰとして取り扱われる。このため、パケット転送装置１は、後述するように、パケットを、ＶＬＡＮ  ＩＤに応じて経路Ｐ１，Ｐ２に振り分けて転送する。
【００２０】
（パケットの振り分け）
次に、パケットのＥＣＭＰへの振り分けについて述べる。図３は、ＥＣＭＰの一例を示すネットワーク構成図である。本例のネットワークは、ノードＥＳ＃１，ＥＳ＃２，ＲＢ＃１〜ＲＢ＃６を含む。ノードＥＳ＃１，ＥＳ＃２には、エンドステーション２（例えば、サーバー）が設けられ、ノードＲＢ＃１〜ＲＢ＃６には、パケット転送装置１が設けられている。
【００２１】
図３において、ノードＲＢ＃１〜ＲＢ＃６の枠内の数字（「１」〜「３」）は、パケット転送装置１のポート番号（ポート＃１〜＃３）を示す。本例の接続構成を述べると、ノードＲＢ＃１のパケット転送装置１は、ポート＃１を介してノードＲＢ＃２と接続され、ポート＃２を介してノードＲＢ＃３と接続され、ポート＃３を介してノードＥＳ＃１と接続されている。
【００２２】
ノードＲＢ＃２のパケット転送装置１は、ポート＃１を介してノードＲＢ＃１と接続され、ポート＃２を介してノードＲＢ＃４と接続され、ポート＃３を介してノードＲＢ＃５と接続されている。ノードＲＢ＃３のパケット転送装置１は、ポート＃１を介してノードＲＢ＃１と接続され、ポート＃２を介してノードＲＢ＃５と接続され、ポート＃３を介してノードＲＢ＃４と接続されている。
【００２３】
ノードＲＢ＃４のパケット転送装置１は、ポート＃１を介してノードＲＢ＃２と接続され、ポート＃２を介してノードＲＢ＃６と接続され、ポート＃３を介してノードＲＢ＃３と接続されている。ノードＲＢ＃５のパケット転送装置１は、ポート＃１を介してノードＲＢ＃３と接続され、ポート＃２を介してノードＲＢ＃６と接続され、ポート＃３を介してノードＲＢ＃２と接続されている。ノードＲＢ＃６のパケット転送装置１は、ポート＃１を介してノードＲＢ＃４と接続され、ポート＃２を介してノードＲＢ＃５と接続され、ポート＃３を介してノードＥＳ＃２と接続されている。
【００２４】
各ノードＲＢ＃１〜＃６のパケット転送装置１は、上記のＳＰＦに基づき、ノードＥＳ＃１，＃２間の通信経路として、ＥＣＭＰである４つの通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１（点線参照）を算出する。各パケット転送装置１は、パケットを識別するために、パケットに付与されたＶＬＡＮ  ＩＤを各通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１に、自律的に割り当てる。
【００２５】
図４には、通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１に対するＶＬＡＮ  ＩＤの割り当てが示されている。通信経路Ｐ１０は、ノードＲＢ＃１，ＲＢ＃２，ＲＢ＃４，ＲＢ＃６を順に経由する。通信経路Ｐ１０には、ＶＬＡＮ  ＩＤとして、８ｎ，８ｎ＋２（ｎ＝０，１，２，・・・，５１１）が割り当てられる。
【００２６】
通信経路Ｐ１１は、ノードＲＢ＃１，ＲＢ＃２，ＲＢ＃５，ＲＢ＃６を順に経由する。通信経路Ｐ１１には、ＶＬＡＮ  ＩＤとして、８ｎ＋１，８ｎ＋３が割り当てられる。
【００２７】
通信経路Ｐ２１は、ノードＲＢ＃１，ＲＢ＃３，ＲＢ＃４，ＲＢ＃６を順に経由する。通信経路Ｐ２１には、ＶＬＡＮ  ＩＤとして、８ｎ＋５，８ｎ＋７が割り当てられる。
【００２８】
通信経路Ｐ２０は、ノードＲＢ＃１，ＲＢ＃３，ＲＢ＃５，ＲＢ＃６を順に経由する。通信経路Ｐ２０には、ＶＬＡＮ  ＩＤとして、８ｎ＋４，８ｎ＋６が割り当てられる。
【００２９】
したがって、図３に示されるように、ＶＬＡＮ  ＩＤ＝８，１０のパケットは、通信経路Ｐ１０に従って転送され、ＶＬＡＮ  ＩＤ＝９，１１のパケットは、通信経路Ｐ１１に従って転送される。また、ＶＬＡＮ  ＩＤ＝１３，１５のパケットは、通信経路Ｐ２０に従って転送され、ＶＬＡＮ  ＩＤ＝１２，１４のパケットは、通信経路Ｐ２１に従って転送される。
【００３０】
なお、ノードＲＢ＃１は、通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１のデータ入力側に位置するため、イングレスＲＢと呼ばれ、ノードＲＢ＃６は、通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１のデータ出力側に位置するため、イーグレスＲＢと呼ばれる。また、ノードＲＢ＃２〜ＲＢ＃５は、通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１のデータ中継点に位置するため、トランジットＲＢと呼ばれる。
【００３１】
また、本実施例では、ＶＬＡＮ  ＩＤに基づいて、パケットをＥＣＭＰに振り分ける例を挙げるが、これに限定されない。例えば、イーサネットフレームのヘッダ内のＤＡ（Destination Address）及びＳＡ（Source Address）、またはＩＰ（Internet Protocol）パケットの宛先ＩＰアドレス及び送信元ＩＰアドレスなどに基づいて、パケットをＥＣＭＰに振り分けてもよい。
【００３２】
このように、パケット転送装置１は、自律的に通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１を設定するが、様々な要求や状況に対応できるように、ＣＬＩなどのコマンド入力手段を介して、操作者から受け付けたコマンド入力に従い、経路を変更できる。以下に、通信経路の変更例を挙げて説明する。
【００３３】
（コマンド入力による通信経路の変更例（１））
本変更例では、上記の通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１に流れるトラフィックの帯域を、通信経路間で調整することを目的として、通信経路を変更する場合を示す。なお、帯域とは、リンクの通信速度ではなく、ネットワークの利用者が、利用にあたって保証された契約帯域である。
【００３４】
図５は、コマンド入力による通信経路の変更例（１）を示すネットワーク構成図である。図３と比較すると理解されるように、本変更例では、ＶＬＡＮ  ＩＤ＝１０の通信経路Ｐ１０が、他の通信経路Ｐ２１に変更されている。
【００３５】
図６には、変更前後の通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１ごとの帯域合計が示されている。図６において、ＶＬＡＮ  ＩＤごとの帯域は、［  ］内に記載されている。
【００３６】
変更前において、通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１の帯域合計は、それぞれ、６００（Ｍｂｐｓ）、４００（Ｍｂｐｓ）、３００（Ｍｂｐｓ）、４００（Ｍｂｐｓ）である。一方、変更後、通信経路Ｐ１０，Ｐ１１，Ｐ２０，Ｐ２１の帯域合計は、それぞれ、５００（Ｍｂｐｓ）、４００（Ｍｂｐｓ）、４００（Ｍｂｐｓ）、４００（Ｍｂｐｓ）である。
【００３７】
このように、本変更例では、コマンド入力による通信経路の変更により、通信経路Ｐ１０，Ｐ２１の帯域の差分が、３００（Ｍｂｐｓ）から１００（Ｍｂｐｓ）となり、該通信経路間の帯域のバランスが調整される。
【００３８】
（コマンド入力による通信経路の変更例（２））
本変更例では、ノードＲＢ＃５のパケット転送装置１の保守作業を行うため（「保守作業」参照）、ノードＲＢ＃５を含む通信経路Ｐ１１，Ｐ２０がパケット転送に使用されないように、当該ＶＬＡＮ  ＩＤ＝９，１１，１２，１４の通信経路を変更する。
【００３９】
図７は、コマンド入力による通信経路の変更例（２）を示すネットワーク構成図である。本変更例では、ＶＬＡＮ  ＩＤ＝９，１１は通信経路Ｐ１０に割り当てられ、ＶＬＡＮ  ＩＤ＝１２，１４は通信経路Ｐ２１に割り当てられる。なお、図７において、通信経路Ｐ１１，Ｐ２０に付された「ＶＬＡＮ  ＩＤ＝ＮＯＮＥ」の表記は、ＶＬＡＮ  ＩＤが割り当てられていないことを表す。
【００４０】
図８には、比較例として、変更前後及びリンク断後の通信経路に対するＶＬＡＮ  ＩＤの割り当てが示されている。変更前後のＶＬＡＮ  ＩＤの割り当てを比較すると理解されるように、ＶＬＡＮ  ＩＤ＝９，１１，１２，１４の通信経路が変更される。また、比較例において、各パケット転送装置１は、ネットワーク内の何れかのノード間におけるリンク断の検出を契機として、通信経路の設定を変更前の状態に戻す。
【００４１】
図９は、比較例として、リンク断後の通信経路を示すネットワーク構成図である。ノードＲＢ＃５のパケット転送装置１の保守作業を行うために、ノードＲＢ＃５のパケット転送装置１及びノードＲＢ＃３のパケット転送装置１の間のＬＡＮケーブル（または光ファイバ）を装置から取り外すと、リンク断が発生する（×印参照）。リンク断の発生は、上記のＬＳＰフレームにより、ノードＲＢ＃３，＃５のパケット転送装置１から、リンク障害として、ネットワーク内の発生箇所を示す情報とともに、他のノードＲＢ＃１，ＲＢ＃２，ＲＢ＃４，ＲＢ＃６のパケット転送装置１に通知される。
【００４２】
各パケット転送装置１は、リンク障害が検出されると、ＶＬＡＮ  ＩＤ＝９，１１の通信経路Ｐ１０を、自律的に設定した通信経路Ｐ１１に切り替える。なお、ＶＬＡＮ  ＩＤ＝１２，１４の通信経路Ｐ２１は、自律的に設定した通信経路Ｐ２０が、リンク障害が発生したリンクを含むので、切り替えられない。
【００４３】
このように、比較例において、パケット転送装置１は、リンク障害の発生を契機として、通信経路の再計算を行うことにより、ＶＬＡＮ  ＩＤ＝９，１１についてコマンド入力で設定された通信経路Ｐ１０を、自律的に設定した通信経路Ｐ１１に切り替える。このため、ＶＬＡＮ  ＩＤ＝９，１１のパケットの通信が瞬断してしまう。
【００４４】
（実施例）
実施例に係るパケット転送装置１は、コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害の有無に応じ、パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替えるか否かを判定することにより、通信経路の制御を改善する。以下に、このパケット転送方法について、例を挙げて詳細に述べる。
【００４５】
図１０は、初期状態における通信経路の一例を示すネットワーク構成図である。図１０において、図３と共通する構成については、同一の符号を付し、その説明を省略する。
【００４６】
図１０は、ＶＬＡＮ  ＩＤ＝１０のパケットの通信経路を、自律的に設定された通信経路Ｐ１０から、操作者のコマンド入力で通信経路Ｐ２１に変更した例を示す。各パケット転送装置１は、通信経路に応じて、パケットの転送先のノードを選択する。
【００４７】
より具体的には、各パケット転送装置１は、コマンド入力で設定された通信経路が存在しない場合、自律的に設定した通信経路上の次ノードを、パケットの転送先ノードとする。一方、コマンド入力で設定された通信経路が存在する場合、各パケット転送装置１は、コマンド入力で設定された通信経路上の次ノードを、パケットの転送先ノードとする。すなわち、各パケット転送装置１は、通信経路に応じて、パケットの転送先ノードを決定する。
【００４８】
例えば、ノードＲＢ＃１，＃３のパケット転送装置１は、ＶＬＡＮ  ＩＤ＝１０について、コマンド入力で設定された通信経路上の次ノードＲＢ＃３，＃４をそれぞれ転送先ノードとする。また、ノードＲＢ＃４のパケット転送装置１は、ＶＬＡＮ  ＩＤ＝１０について、自律的に設定した通信経路上の次ノードＲＢ＃６を転送先ノードとする。これにより、ノードＲＢ＃１，＃３，＃４を順に経由する通信経路Ｐ２１が形成される。
【００４９】
また、ノードＲＢ＃１，＃２のパケット転送装置１は、符号Ｒ１０で示されるように、転送先ノードとして選択しないが、自律的に設定した通信経路上の次ノードＲＢ＃２，＃４の設定をそれぞれ保持する。これと同様に、ノードＲＢ＃３，＃５のパケット転送装置１は、符号Ｒ２０で示されるように、転送先ノードとして選択しないが、自律的に設定した通信経路上の次ノードＲＢ＃５，＃６の設定をそれぞれ保持する。
【００５０】
つまり、符号Ｒ１０，Ｒ２０で示された通信経路は、ノードＲＢ＃１，＃２，＃５，＃６のパケット転送装置１において、設定として保持されるだけであって、トラフィックが流れない。なお、リンクごとの径路の種類は、図１０中の「注」に表記されるとおり、線種により区別される。
【００５１】
各パケット転送装置１は、装置内に記憶したルーティングテーブルに基づいて、転送先ノードを選択する。図１１には、図１０の状態における各ノードＲＢ＃１〜＃５のルーティングテーブルの設定が示されている。なお、図１１は、ルーティングテーブルに、ＶＬＡＮ  ＩＤ＝１１についてのみ設定された例を示すが、他のＶＬＡＮ  ＩＤについての設定も同様に存在する。
【００５２】
図１１において、「ノード」は、パケット転送装置１が設置されたノードＲＢ＃１〜＃５を表す。つまり、「ノード」は、ルーティングテーブルの所在、つまり、何れのノードのパケット転送装置１が保持するルーティングテーブルかを表す。
【００５３】
「ＶＬＡＮ  ＩＤ」は、通信経路に割り当てるパケットのＶＬＡＮ  ＩＤを表す。「次ノードＩＤ」は、当該通信経路上の次ノードの識別子、つまりパケットの転送先の識別子を表す。「有効／無効」設定は、上記の「次ノードＩＤ」が、有効であるか、または無効であるかを示す。
【００５４】
「優先度」は、上記の「ＶＬＡＮ  ＩＤ」及び「次ノードＩＤ」の優先度を示す。優先度が「高」である次ノードＩＤ（第１識別子）は、当該ＶＬＡＮ  ＩＤについて、コマンド入力で設定された通信経路上の次ノードを示す。一方、優先度が「低」である次ノードＩＤ（第２識別子）は、当該ＶＬＡＮ  ＩＤについて、自律的に設定された通信経路上の次ノードを示す。次ノードＩＤは、各パケット転送装置１において、ポート識別子（ポート＃１〜＃３）に対応付けられる。
【００５５】
各パケット転送装置１は、優先度が「低」である次ノードＩＤより優先的に、優先度が「高」である次ノードＩＤを、パケットの転送先ノードとする。つまり、各パケット転送装置１は、自装置のルーティングテーブルに、優先度が「高」である有効な次ノードＩＤが存在する場合、当該次ノードＩＤを、パケットの転送先ノードとする。一方、自装置のルーティングテーブルに、優先度が「高」である次ノードＩＤが存在しない場合、または、優先度が「高」である次ノードＩＤが無効である場合、優先度が「低」である次ノードＩＤを、パケットの転送先ノードとする。
【００５６】
ノードＲＢ＃１，＃３のパケット転送装置１は、自装置のルーティングテーブルに、優先度が「高」である有効な次ノードＩＤが存在するので、コマンド入力で設定された通信経路上の次ノードＲＢ＃３，ＲＢ＃４をそれぞれ転送先ノードとする。また、ノードＲＢ＃１，ＲＢ＃３のルーティングテーブルには、優先度が「低」である有効な次ノードＩＤＲＢ＃２，＃３が設定として保持されているが、当該経路には、上述したようにトラフィックが流れない。
【００５７】
一方、他のノードＲＢ＃２，＃４，＃５のパケット転送装置１は、自装置のルーティングテーブルに、優先度が「高」である次ノードＩＤが存在しないので、優先度が「低」である次ノードＩＤが示すノードＲＢ＃４，ＲＢ＃６，ＲＢ＃６をそれぞれ転送先ノードとする。つまり、ノードＲＢ＃２，＃４，＃５のパケット転送装置１は、自律的に設定された通信経路上の次ノードＲＢ＃４，＃６，＃６をそれぞれ転送先ノードとする。なお、ノードＲＢ＃２、＃５の次ノードＩＤは、設定として保持されるだけであって、当該経路には、上述したようにトラフィックが流れない。
【００５８】
図１２は、リンク障害発生後の通信経路の例（１）を示すネットワーク構成図である。本例では、ノードＲＢ＃１及びノードＲＢ＃３の間においてリンク障害が発生した場合を挙げる。このリンク障害により、ノードＲＢ＃１、ノードＲＢ＃３、及びノードＲＢ＃４を経由する経路Ｒ２１には、トラフィックが流れなくなる。
【００５９】
ノードＲＢ＃１のパケット転送装置１は、コマンド入力で設定された通信経路上の次ノードＲＢ＃３との間でリンク障害が発生したので、符号Ｋ１で示されるように、転送先ノードを、ノードＲＢ＃３からノードＲＢ＃２に切り替える（「切り替え：有」参照）。これにより、ＶＬＡＮ  ＩＤ＝１０の通信経路は、経路Ｐ２１（図１０参照）から経路Ｐ１０に変更されるので、リンク障害が回避される。
【００６０】
一方、ノードＲＢ＃３のパケット転送装置１は、転送先ノードを切り替えることなく、ノードＲＢ＃４に維持する（「切り替え：無」参照）。このため、例えば、ノードＲＢ＃３及びノードＲＢ＃４間の経路Ｒ２１の設定を、リンク障害の復旧後に元の通信経路Ｐ２１に戻す場合に備え、保持することが可能である。もっとも、経路Ｒ２１は、設定として存在するだけで、トラフィックは流れない。なお、リンクごとの径路の種類は、図１２中の「注」に表記されるとおり、線種により区別される。
【００６１】
図１３には、図１２の状態における各ノードＲＢ＃１〜＃５のルーティングテーブルの設定例（１）が示されている。ノードＲＢ＃１のパケット転送装置１は、リンク障害の発生に応じて、優先度が「高」である次ノードＩＤを無効化（「有効／無効」＝「無効」）する。このため、ノードＲＢ＃１のパケット転送装置１は、優先度が「低」である次ノードＩＤが示すノードＲＢ＃２、つまり自律的に設定した通信経路上の次ノードＲＢ＃２を、転送先ノードとして選択する。これにより、ＶＬＡＮ  ＩＤ＝１０の通信経路は、経路Ｐ２１（図１０参照）から経路Ｐ１０に変更される。
【００６２】
また、リンク障害が復旧したとき、パケット転送装置１は、通信経路を、リンク障害の発生前の状態に戻すか否かを、操作者からのコマンド入力で設定された経路復旧設定に従って選択してもよい。例えば、パケット転送装置１は、端末装置からコマンド「path_recovery_enable 」が入力されると、経路復旧設定を「有」とする。この場合、ノードＲＢ＃１のパケット転送装置１は、リンク障害の復旧後、「有効／無効」設定を「有効」に変更することにより、優先度が「高」の次ノードＩＤを有効化（図１１参照）する。
【００６３】
これにより、リンク障害の復旧後、ＶＬＡＮ  ＩＤ＝１０の通信経路は、経路Ｐ１０（図１２参照）から経路Ｐ２１（図１０参照）に戻される。つまり、コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害の復旧が検出された場合、パケットの転送先が、コマンド入力で設定された通信経路上の次ノードに戻される。したがって、リンク障害の復旧後、コマンド入力で設定した通信経路を再設定する手間が省かれる。
【００６４】
一方、パケット転送装置１は、コマンド「path_recovery_disable 」が入力されると、経路復旧設定を「無」とする。この場合、ノードＲＢ＃１のパケット転送装置１は、リンク障害の復旧後、「有効／無効」設定を「無効」に維持し、リンク障害の復旧後も、ＶＬＡＮ  ＩＤ＝１０の通信経路を、経路Ｐ１０（図１２参照）のままとする。
【００６５】
このように、経路復旧設定が「無」である場合、リンク障害の復旧後、通信経路は、リンク障害発生前の状態に戻らない。したがって、この場合、ノードＲＢ＃１のパケット転送装置１は、リンク障害発生時、優先度が「高」である次ノードＩＤを削除してもよい。
【００６６】
図１４には、図１２の状態における各ノードＲＢ＃１〜＃５のルーティングテーブルの設定例（２）が示されている。この場合、ノードＲＢ＃１のパケット転送装置１は、リンク障害発生時、優先度が「高」である次ノードＩＤを削除する。これにより、図１３の場合と同様に、ノードＲＢ＃１のパケット転送装置１は、優先度が「低」である次ノードＩＤが示すノードＲＢ＃２を、転送先ノードとして選択し、ＶＬＡＮ  ＩＤ＝１０の通信経路は、経路Ｐ２１（図１０参照）から経路Ｐ１０に変更される。
【００６７】
また、図１５は、リンク障害発生後の通信経路の例（２）を示すネットワーク構成図である。本例では、ノードＲＢ＃３及びノードＲＢ＃４の間においてリンク障害が発生した場合を挙げる。このリンク障害により、ノードＲＢ＃３及びノードＲＢ＃４の間の経路Ｒ１１には、トラフィックが流れなくなる。なお、リンクごとの径路の種類は、図１５中の「注」に表記されるとおり、線種により区別される。
【００６８】
ノードＲＢ＃３のパケット転送装置１は、コマンド入力で設定された通信経路上の次ノードＲＢ＃４との間でリンク障害が発生したので、転送先ノードを、符号Ｋ２で示されるように、ノードＲＢ＃４からノードＲＢ＃５に切り替える（「切り替え：有」参照）。これにより、ＶＬＡＮ  ＩＤ＝１０の通信経路は、経路Ｐ２１（図１０参照）から経路Ｐ２０に変更されるので、リンク障害が回避される。
【００６９】
一方、ノードＲＢ＃１のパケット転送装置１は、ノードＲＢ＃３のパケット転送装置１において転送先ノードが切り替えられたので、転送先ノードを切り替えることなく（「切り替え：無」参照）、ノードＲＢ＃３に維持する。
【００７０】
図１６には、図１５の状態における各ノードのルーティングテーブルの設定例（１）が示されている。ノードＲＢ＃３のパケット転送装置１は、リンク障害の発生に応じて、優先度が「高」である次ノードＩＤを無効化（「有効／無効」設定＝「無効」）する。このため、ノードＲＢ＃３のパケット転送装置１は、優先度が「低」である次ノードＩＤが示すノードＲＢ＃５、つまり自律的に設定した通信経路上の次ノードＲＢ＃５を、転送先ノードとして選択する。これにより、ＶＬＡＮ  ＩＤ＝１０の通信経路は、経路Ｐ２１（図１０参照）から経路Ｐ２０に変更される。
【００７１】
リンク障害の復旧後、上記の経路復旧設定が「有」である場合、ノードＲＢ＃１のパケット転送装置１は、「有効／無効」設定を「有効」に変更することにより、優先度が「高」である次ノードＩＤを有効化（図１１参照）する。これにより、リンク障害の復旧後、ＶＬＡＮ  ＩＤ＝１０の通信経路は、経路Ｐ２０（図１５参照）から経路Ｐ２１（図１０参照）に戻される。一方、経路復旧設定が「無」である場合、ＶＬＡＮ  ＩＤ＝１０の通信経路を、経路Ｐ２０のままとするため、ノードＲＢ＃１のパケット転送装置１は、リンク障害発生時、優先度が「高」である次ノードＩＤを削除してもよい。
【００７２】
図１７には、図１５の状態における各ノードＲＢ＃１〜ＲＢ＃５のルーティングテーブルの設定例（２）が示されている。この場合、ノードＲＢ＃３のパケット転送装置１は、リンク障害発生時、優先度が「高」である次ノードＩＤを削除する。これにより、図１５の場合と同様に、ノードＲＢ＃３のパケット転送装置１は、優先度が「低」である次ノードＩＤが示すノードＲＢ＃５を、転送先ノードとして選択し、ＶＬＡＮ  ＩＤ＝１０の通信経路は、経路Ｐ２１（図１０参照）から経路Ｐ２０に変更される。
【００７３】
図１８は、リンク障害発生後の通信経路の例（３）を示すネットワーク構成図である。本例では、ノードＲＢ＃３及びノードＲＢ＃５の間においてリンク障害が発生した場合を挙げる。なお、リンクごとの径路の種類は、図１８中の「注」に表記されるとおり、線種により区別される。
【００７４】
ノードＲＢ＃１，＃３のパケット転送装置１は、リンク障害の発生箇所が、コマンド入力で設定された通信経路上の次ノードとの間ではなく、ＶＬＡＮ  ＩＤ＝１０のパケットの通信に影響はないので、転送先ノードを切り替えない。つまり、ノードＲＢ＃１，＃３のパケット転送装置１は、転送先ノードとして、ノード＃３、＃４をそれぞれ維持する。このため、本例におけるルーティングテーブルは、図１１に示されたとおりである。
【００７５】
このように、ネットワーク内の複数のノードＲＢ＃１〜＃６の少なくとも１つにおいて、操作者から受け付けたコマンド入力で設定された通信経路上の次ノードにパケットを転送する。そして、コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害が検出された場合、パケットの転送先は、自律的に設定した通信経路上の次ノードに切り替えられる。また、ネットワーク内の他の箇所のリンク障害が検出された場合、パケットの転送先は維持される。
【００７６】
したがって、リンク障害の発生により、コマンド入力で設定された通信経路を介した通信が不可能となった場合、リンク障害を回避するように通信経路が切り替えられ、通信が継続される。一方、リンク障害が発生しても、コマンド入力で設定された通信経路を介した通信が可能である場合、パケットの転送先は、切り替えられずに維持されるので、該通信経路も維持され、利便性が向上する。つまり、この場合、図９を参照して述べたような問題は発生しない。
【００７７】
次に、実施例に係るパケット転送装置１の構成を述べる。図１９は、パケット転送装置１の機能構成を示す構成図である。
【００７８】
パケット転送装置１は、プロセッサ１０と、不揮発性メモリ１１と、ＣＬＩ処理部１２と、内部メモリ１４を有するスイッチ部１３と、複数のポート１５とを有する。複数のポート１５は、ＬＡＮケーブルや光ファイバを接続するコネクタ、及び、物理レイヤ及びＭＡＣレイヤの処理を行うＰＨＹ／ＭＡＣチップなどを有する。複数のポート１５は、ネットワーク内の複数のノードＥＳ＃１，ＥＳ＃２，ＲＢ＃１〜＃６とそれぞれ接続され、パケットを送受信する。
【００７９】
スイッチ部１３は、上記のルーティングテーブルに従って複数のポート１５間でパケットを交換する。これにより、複数のノードＥＳ＃１，ＥＳ＃２，ＲＢ＃１〜＃６間においてパケットが転送される。
【００８０】
内部メモリ（記憶部）１４は、ルーティングテーブルを記憶する。ルーティングテーブル内の次ノードＩＤは、ポート１５と１対１の関係で対応する。このため、スイッチ部１３は、内部メモリ１４に記憶したルーティングテーブルを参照し、パケットのＶＬＡＮ  ＩＤに応じて転送先ノードとして選択した次ノードＩＤに対応するポート１５に、パケットを転送する。なお、内部メモリ１４に代えて、スイッチ部１３の外部に設けられたメモリを使用してもよい。
【００８１】
プロセッサ１０は、ＣＰＵ（Central Processing Unit）などの演算処理回路であり、パケット転送装置１の全体の動作を制御する。不揮発性メモリ１１は、例えばフラッシュメモリであり、プロセッサ１０を駆動するプログラムなどを記憶する。プロセッサ１０は、起動時に不揮発性メモリ１１からプログラムを読み出して動作する。なお、図示を省略するが、プロセッサ１０は、動作に使用するワークメモリを有する。
【００８２】
プロセッサ１０は、プログラムを読み込むことにより、機能として、設定処理部１００及び障害検出部１０１が形成される。設定処理部１００は、スイッチ部１３の内部メモリ１４にアクセスすることにより、ルーティングテーブルを設定する。設定処理部１００は、図１及び図２を参照して述べたＳＰＦ及びＥＣＭＰの機能を実行し、自律的に通信経路を設定する。設定処理部１００は、自律的に通信経路を設定した場合、ルーティングテーブルの優先度が「低」の次ノードＩＤを設定する。なお、設定処理部１００及び障害検出部１０１は、ソフトウェアに限定されず、ハードウェアにより構成されてもよい。
【００８３】
ＣＬＩ処理部（受付部）１２は、操作者からコマンド入力を受け付ける。ＣＬＩ処理部は、ＬＡＮケーブルなどを介して外部の端末装置１６と接続され、操作者が端末装置１６を用いて入力したコマンドを処理して、処理内容をプロセッサ１０に出力する。なお、端末装置１６としては、パーソナルコンピュータなどが挙げられる。
【００８４】
設定処理部１００は、複数のノードのうち、コマンド入力で設定された通信経路上の次ノードにパケットが転送されるように、ルーティングテーブルを設定する。つまり、設定処理部１００は、コマンド入力に従って、ルーティングテーブル内の優先度が「高」の次ノードＩＤを設定する。
【００８５】
また、設定処理部１００は、コマンド入力に従って、上記の経路復旧設定を設定する。設定処理部１００は、経路復旧設定を「有」に設定した場合、リンク障害の復旧後、通信経路がリンク障害発生前の状態に戻るように、ルーティングテーブルを設定し、経路復旧設定を「無」に設定した場合、ルーティングテーブルの設定を維持する。
【００８６】
障害検出部１０１は、ネットワーク内のリンク障害を検出する。スイッチ部１３は、ＬＳＰフレームを受信した場合、ＬＳＰフレームを設定処理部１００に出力する。障害検出部１０１は、ＬＳＰフレームに含まれる情報から、リンク障害の発生及び発生箇所、またはリンク障害の復旧及び復旧箇所を検出する。
【００８７】
次に、実施例に係るパケット転送装置１の動作を説明する。図２０は、パケットの転送処理を示すフローチャートである。この処理は、ＶＬＡＮ  ＩＤごとに実行される。
【００８８】
スイッチ部１３は、内部メモリ１４内のルーティングテーブルを参照し、コマンド入力で設定された通信経路の次ノードＩＤが存在するか否かを検出する（ステップＳｔ１）。つまり、スイッチ部１３は、ルーティングテーブルに、優先度が「高」である次ノードＩＤが存在するか否かを確認する。
【００８９】
コマンド入力で設定された通信経路の次ノードＩＤが存在する場合（ステップＳｔ１のＹＥＳ）、スイッチ部１３は、該次ノードＩＤの「有効／無効」設定が「有効」であるか否かを検出する（ステップＳｔ２）。「有効／無効」設定が「有効」である場合（ステップＳｔ２のＹＥＳ）、スイッチ部１３は、パケットを、コマンド入力で設定された通信経路上の次ノードに転送する（ステップＳｔ３）。つまり、スイッチ部１３は、パケットを、優先度が「高」である次ノードＩＤに対応するポートに出力する。
【００９０】
また、コマンド入力で設定された通信経路の次ノードＩＤが存在しない場合（ステップＳｔ１のＮＯ）、スイッチ部１３は、パケットを、自律的に設定された通信経路上の次ノードに転送する（ステップＳｔ４）。つまり、スイッチ部１３は、パケットを、優先度が「低」である次ノードＩＤに対応するポートに出力する。この処理は、「有効／無効」設定が「無効」である場合（ステップＳｔ２のＮＯ）も同様に行われる。このようにして、パケットの転送処理は行われる。
【００９１】
このように、スイッチ部は、優先度が「低」である次ノードＩＤより優先的に、優先度が「高」である次ノードＩＤに従って複数のポート１５間でパケットを交換する。このため、パケットは、ルーティングテーブルに、コマンド入力で設定された有効な通信経路が存在する場合、該通信経路上の次ノードに転送され、そうでない場合、自律的に設定された通信経路上の次ノードに転送される。したがって、本実施例では、ルーティングテーブルに含まれる次ノードＩＤに従って、容易に転送先ノードが決定される。
【００９２】
図２１は、リンク障害発生時の通信経路の制御処理を示すフローチャートである。障害検出部１０１は、ＬＳＰフレームに基づき、リンク障害を検出したか否かを判定する（ステップＳｔ１１）。リンク障害を検出していない場合（ステップＳｔ１１のＮＯ）、処理は終了する。
【００９３】
リンク障害を検出した場合（ステップＳｔ１１のＹＥＳ）、障害検出部１０１は、ＬＳＰフレームに基づき、リンク障害が、コマンド入力で設定された通信経路上の次ノードとの間で発生したか否かを判定する（ステップＳｔ１２）。リンク障害が、ネットワーク内の他の箇所で発生した場合（ステップＳｔ１２のＮＯ）、処理は終了する。
【００９４】
リンク障害が、コマンド入力で設定された通信経路上の次ノードとの間で発生した場合（ステップＳｔ１２のＹＥＳ）、設定処理部１００は、経路復旧設定が「有」であるか否かを判定する（ステップＳｔ１３）。経路復旧設定が「有」である場合（ステップＳｔ１３のＹＥＳ）、設定処理部１００は、コマンド入力で設定された通信経路上の次ノードＩＤの「有効／無効」設定を「無効」に変更する（ステップＳｔ１４）。つまり、設定処理部１００は、優先度が「高」である次ノードＩＤを無効化する。
【００９５】
経路復旧設定が「無」である場合（ステップＳｔ１３のＮＯ）、設定処理部１００は、コマンド入力で設定された通信経路上の次ノードＩＤを、ルーティングテーブルから削除する（ステップＳｔ１５）。つまり、設定処理部１００は、ルーティングテーブルから、優先度が「高」である次ノードＩＤを削除する。このようにして、リンク障害発生時の通信経路の制御処理は行われる。
【００９６】
ステップＳｔ１４、Ｓｔ１５の処理が行われると、スイッチ部１３は、図２０に示されたフローに従い、パケットを、優先度が「低」である次ノードＩＤに対応するポートに出力する。一方、ステップＳｔ１４、Ｓｔ１５の処理が行われなければ、スイッチ部１３は、図２０に示されたフローに従い、パケットを、優先度が「高」である次ノードＩＤに対応するポートに出力する。
【００９７】
このように、設定処理部１００は、障害検出部１０１が、コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害を検出した場合、ルーティングテーブルから、優先度が「高」である次ノードＩＤを削除し、または無効化する。このため、パケットの転送先が、自律的に設定された通信経路上の次ノードに切り替わるので、リンク障害が回避される。
【００９８】
一方、設定処理部１００は、障害検出部１０１が、ネットワーク内の他の箇所のリンク障害を検出した場合、ルーティングテーブルの設定を維持する。このため、パケットの転送先が、自律的に設定された通信経路上の次ノードに切り替わることなく、コマンド入力で設定された通信経路上の次ノードに転送される。したがって、図９を参照して述べたような問題を生ずることはないので、利便性が向上する。
【００９９】
図２２は、リンク障害復旧時の通信経路の制御処理を示すフローチャートである。障害検出部１０１は、ＬＳＰフレームに基づき、リンク障害の復旧を検出したか否かを判定する（ステップＳｔ２１）。リンク障害の復旧を検出していない場合（ステップＳｔ２１のＮＯ）、処理は終了する。
【０１００】
障害検出部１０１がリンク障害の復旧を検出した場合（ステップＳｔ２１のＹＥＳ）、設定処理部１００は、経路復旧設定が「有」であるか否かを判定する（ステップＳｔ２２）。経路復旧設定が「無」である場合（ステップＳｔ２２のＮＯ）、処理は終了する。
【０１０１】
経路復旧設定が「有」である場合（ステップＳｔ２２のＹＥＳ）、設定処理部１００は、コマンド入力で設定された通信経路上の次ノードＩＤの「有効／無効」設定を「有効」に変更する（ステップＳｔ２３）。つまり、設定処理部１００は、ルーティングテーブルにおいて、優先度が「高」である次ノードＩＤを有効化する。このようにして、リンク障害復旧時の通信経路の制御処理は行われる。
【０１０２】
このように、設定処理部１００は、障害検出部１０１が、コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害の復旧を検出した場合、優先度が「高」である次ノードＩＤを有効化する。このため、リンク障害の復旧後、通信経路は、リンク障害の発生前の状態（コマンド入力で設定された通信経路）に戻る。したがって、リンク障害の復旧後、コマンド入力で設定した通信経路を再設定する手間が省かれる。
【０１０３】
（ＶＬＡＮ  ＩＤに応じた転送先ノードの決定方法）
次に、ＶＬＡＮ  ＩＤに応じた転送先ノードの決定方法について述べる。この決定方法は、各パケット転送装置１の設定処理部１００において自律的に実行される。設定処理部１００は、決定した転送先ノードを、ルーティングテーブルにおいて、優先度が「低」である次ノードＩＤとして設定する。
【０１０４】
転送先ノードの決定方法は、パケット転送装置１のノードが、イングレスＲＢであるか、またはトランジットＲＢであるかに応じて異なる。以下に、イングレスＲＢの場合及びトランジットＲＢである場合に分けて、転送先ノードの決定方法を例示する。本例では、自的に決定された４つの通信経路（ＥＣＭＰ）に、８つのＶＬＡＮ  ＩＤ＝８〜１５を振り分けることにより、図３に示された通信経路を得る場合を示す。
【０１０５】
図２３には、イングレスＲＢにおける転送先ノードの決定方法が示されている。まず、図２３（ａ）に示されるように、ＶＬＡＮ  ＩＤを、２進数表示時（「ＶＬＡＮ  ＩＤ（ｂｉｎ．）」参照）の下位３ビットに基づいて、８つのパタン「００１」〜「１１１」に分ける。
【０１０６】
次に、図２３（ｂ）に示されるように、パタンの各々に、ＥＣＭＰ数（１〜８）に応じた出力先番号を割り当てる。ＥＣＭＰ数は、自律的に決定された通信経路上の次ノードの数である。図３を参照すると、イングレスＲＢであるノードＲＢ＃１は、次ノードとして、ＲＢ＃２及びＲＢ＃３を有するため、そのＥＣＭＰ数は２である。
【０１０７】
出力先番号（１〜８）は、ＥＣＭＰ数分の出力先を互いに区別するための番号である。出力先番号は、降順に並んだパタンをＥＣＭＰ数分ずつ均等に分けて得たグループごとに、同一番号となるように割り当てられる。例えば、ＥＣＭＰ数が２の場合、パタン「００１」〜「０１１」には、出力先番号「１」が割り当てられ、パタン「１００」〜「１１１」には、出力先番号「２」が割り当てられる。なお、ＥＣＭＰ数が１の場合、全パタン「０００」〜「１１１」には、出力先番号「１」が割り当てられる。
【０１０８】
次に、図２３（ｃ）に示されるように、各パタンに次ノードＩＤを割り当てる。図２３（ｃ）は、図３中のノードＲＢ＃１の場合の割り当てを示す。出力先番号は、番号の並び順に従って次ノードＩＤに対応付けられる。これにより、出力先番号「１」及び「２」は、ノードＲＢ＃１及びＲＢ＃３にそれぞれ対応付けられる。したがって、ＶＬＡＮ  ＩＤ＝８〜１１（パタン「０００」〜「０１１」）は、次ノードＩＤとしてＲＢ＃２が割り当てられ、ＶＬＡＮ  ＩＤ＝１２〜１５（パタン「０１１」〜「１１１」）は、次ノードＩＤとしてＲＢ＃３が割り当てられる。
【０１０９】
図２４には、トランジットＲＢにおける転送先ノードの決定方法が示されている。図２４（ａ）に示されるように、図２３（ａ）と同様にＶＬＡＮ  ＩＤのパタン分けを行う。
【０１１０】
次に、図２４（ｂ）に示されるように、パタンの各々に、ＥＣＭＰ数（１〜８）に応じた出力先番号を割り当てる。出力先番号は、降順で並んだパタンに、降順で繰り返されるように割り当てられる。例えば、ＥＣＭＰ数が２の場合、パタン「０００」，「０１０」，「１００」，「１１０」には、出力先番号「１」が割り当てられ、パタン「００１」，「０１１」，「１０１」，「１１１」には、出力先番号「２」が割り当てられる。なお、ＥＣＭＰ数が１の場合、全パタン「０００」〜「１１１」には、出力先番号「１」が割り当てられる。
【０１１１】
次に、図２４（ｃ）に示されるように、各パタンに次ノードＩＤを割り当てる。図２４（ｃ）は、図３中のノードＲＢ＃２の場合の割り当てを示す。出力先番号は、番号の並び順に従って次ノードＩＤに対応付けられる。これにより、出力先番号「１」及び「２」は、ノードＲＢ＃４及びＲＢ＃５にそれぞれ対応付けられる。したがって、ＶＬＡＮ  ＩＤ＝８，１０，１２，１４（パタン「０００」，「０１０」，「１００」，「１１０」）は、次ノードＩＤとしてＲＢ＃４が割り当てられる。また、ＶＬＡＮ  ＩＤ＝９，１１，１３，１５（パタン「００１」，「０１１」，「１０１」，「１１１」）は、次ノードＩＤとしてＲＢ＃５が割り当てられる。なお、他のノードに関しても、同様の手法で割り当てが行われる。
【０１１２】
このように、設定処理部１００は、自律的に設定した通信経路が複数存在する場合（ＥＣＭＰが存在する場合）、パケットが各通信経路に均等に振り分けられるように、パケットの転送先として、ＶＬＡＮ  ＩＤに応じて通信経路上の次ノードを選択する。これにより、ＥＣＭＰの各径路に、複数のＶＬＡＮ  ＩＤを均等に振り分けることが可能となる。
【０１１３】
（ネットワークの他例）
次に、ネットワークの他例を挙げて、実施例に係るパケット転送装置１の動作を説明する。図２５は、ネットワークの他例における通信経路の初期状態を示すネットワーク構成図である。
【０１１４】
ネットワークは、エンドステーション２が設置されたノードＥＳ＃１０，＃１１，＃２０，＃２１と、パケット転送装置１が設置されたノードＲＢ＃１〜ＲＢ＃６とを含む。このネットワークにおいて、ＶＬＡＮ  ＩＤ＝９について、ノードＥＳ＃１０及びＥＳ＃２１間の通信経路Ｐ３０と、ノードＥＳ＃１１及びＥＳ＃２２間の通信経路Ｐ３１とが自律的に設定されている。つまり、このネットワークには、同一ＶＬＡＮ  ＩＤに関し、異なるＥＣＭＰが混在する。通信経路Ｐ３０は、ノードＲＢ＃１，＃２，＃４，＃６を順に経由し、通信経路Ｐ３１は、ノードＲＢ＃１０，＃１，＃３，＃５，＃６を順に経由する。
【０１１５】
図２６には、図２５の状態におけるノードＲＢ＃１のルーティングテーブルの設定が示されている。ルーティングテーブルは、ノード種別として、イングレスＲＢ及びトランジットＲＢの場合の２種類が設けられている。パケット転送装置１は、例えば上記のＬＳＰ交換により、通信経路Ｐ３０，３１ごとに、自ノードがイングレスＲＢ及びトランジットＲＢの何れかに該当するのかを判断できる。
【０１１６】
ノードＲＢ＃１は、通信経路Ｐ３０においてイングレスＲＢとして機能するので、通信経路Ｐ３０に関し、「イングレスＲＢ」のルーティングテーブルを参照する。「イングレスＲＢ」のルーティングテーブルは、図２３を参照して述べた転送先ノードの決定方法を用いて設定される。この設定に従い、ノードＲＢ＃１のパケット転送装置１は、ノードＥＳ＃１０からのパケットを、自律的に設定された通信経路上の次ノードＲＢ＃２に転送する。
【０１１７】
一方、ノードＲＢ＃１は、通信経路Ｐ３１においてトランジットＲＢとして機能するので、通信経路Ｐ３１に関し、「トランジットＲＢ」のルーティングテーブルを参照する。「トランジットＲＢ」のルーティングテーブルは、図２４を参照して述べた転送先ノードの決定方法を用いて設定される。この設定に従い、ノードＲＢ＃１のパケット転送装置１は、ノードＥＳ＃１１からのパケットを、自律的に設定された通信経路上の次ノードＲＢ＃２に転送する。なお、図２５は、ＶＬＡＮ  ＩＤ＝８以外の通信経路の図示が省略されている。
【０１１８】
図２７は、コマンド入力で変更した通信経路の例を示すネットワーク構成図である。本例では、コマンド入力により、ノードＥＳ＃１０及びＥＳ＃２１間の通信経路Ｐ３０が、他の通信経路Ｐ３２に変更されている。通信経路Ｐ３２は、ノードＲＢ＃１，＃３，＃５，＃６を順に経由する。
【０１１９】
図２８には、図２７の状態におけるノードＲＢ＃１のルーティングテーブルの設定を示されている。「イングレスＲＢ」のルーティングテーブルにおいて、ＶＬＡＮ  ＩＤ＝９について、優先度が「高」である次ノードＩＤに、ＲＢ＃３が設定されている。これにより、ノードＲＢ＃１のパケット転送装置１は、ノードＥＳ＃１０からのパケットを、コマンド入力で設定された通信経路上の次ノードＲＢ＃３に転送する。なお、「トランジットＲＢ」のルーティングテーブルは変更されていないため、ノードＥＳ＃１１及びＥＳ＃２２間の通信経路Ｐ３１に変更はない。
【０１２０】
図２９は、リンク断後の通信経路の例を示すネットワーク構成図である。本例では、ノードＲＢ＃１及びＲＢ＃３の間においてリンク断が発生し、ノードＥＳ＃１０及びＥＳ＃２１間の通信経路Ｐ３２が、自律的に設定された通信経路Ｐ３０に変更されている。また、ノードＥＳ＃１１及びＥＳ＃２２間の通信経路Ｐ３１は、リンク断により通信が不能となるため、自律的に設定された他の通信経路Ｐ３３に変更される。
【０１２１】
図３０には、図２９の状態におけるノードＲＢ＃１のルーティングテーブルの設定が示されている。「イングレスＲＢ」のルーティングテーブルにおいて、優先度が「高」の次ノードＩＤの設定は削除される。ここで、経路復旧設定は、「無」に設定されているとする。これにより、ノードＥＳ＃１０及びＥＳ＃２１間の通信経路Ｐ３２が、自律的に設定された通信経路Ｐ３０に切り替えられる。
【０１２２】
また、「イングレスＲＢ」のルーティングテーブルにおいて、ＶＬＡＮ  ＩＤ＝１２〜１５の次ノードＩＤの設定が、ＲＢ＃３からＲＢ＃２に変更される。これにより、他のＶＬＡＮ  ＩＤの通信経路は、リンク障害を回避するように、自律的に設定された他の経路に切り替えられる。これと同様に、「トランジットＲＢ」のルーティングテーブルにおいて、ＬＡＮ  ＩＤ＝９，１１，１３，１５の次ノードＩＤの設定が、ＲＢ＃３からＲＢ＃２に変更される。
【０１２３】
このように、異なるＥＣＭＰが混在する場合でも、パケット転送装置１は、効果的に通信経路を制御することができる。
【０１２４】
これまで述べたように、実施例に係るパケット転送装置１は、複数のポート１５と、スイッチ部１３と、ＣＬＩ処理部１２と、設定処理部１００と、障害検出部１０１とを有する。複数のポート１５は、ネットワーク内の複数のノードとそれぞれ接続され、パケットを送受信する。
【０１２５】
スイッチ部１３は、ルーティングテーブルに従って複数のポート１５間でパケットを交換する。ＣＬＩ処理部１２は、操作者からコマンド入力を受け付ける。
【０１２６】
設定処理部１００は、複数のノードのうち、コマンド入力で設定された通信経路上の次ノードにパケットが転送されるように、ルーティングテーブルを設定する。障害検出部１０１は、ネットワーク内のリンク障害を検出する。
【０１２７】
設定処理部１００は、障害検出部１０１が、コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害を検出した場合、パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替えるように、ルーティングテーブルの設定を変更する。設定処理部１００は、障害検出部１０１が、ネットワーク内の他の箇所のリンク障害を検出した場合、ルーティングテーブルの設定を維持する。
【０１２８】
実施例に係るパケット転送装置１によると、スイッチ部１３は、ルーティングテーブルに従って複数のポート１５間でパケットを交換するので、複数のノード間においてパケットを転送できる。設定処理部１００は、複数のノードのうち、コマンド入力で設定された通信経路上の次ノードにパケットが転送されるように、ルーティングテーブルを設定するので、操作者により任意に通信経路が設定される。
【０１２９】
設定処理部１００は、障害検出部１０１が、コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害を検出した場合、パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替えるように、ルーティングテーブルの設定を変更する。このため、リンク障害の発生により、コマンド入力で設定された通信経路を介した通信が不可能となった場合、リンク障害を回避するように通信経路が切り替えられ、通信が継続される。
【０１３０】
設定処理部１００は、障害検出部１０１が、ネットワーク内の他の箇所のリンク障害を検出した場合、ルーティングテーブルの設定を維持する。このため、コマンド入力で設定された通信経路が維持され、利便性が向上する。したがって、実施例に係るパケット転送装置１によると、通信経路の制御が改善される。
【０１３１】
また、実施例に係るパケット転送方法は、ネットワーク内の複数のノードの少なくとも１つにおいて、操作者から受け付けたコマンド入力で設定された通信経路上の次ノードにパケットを転送し、コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害が検出された場合、パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替え、ネットワーク内の他の箇所のリンク障害が検出された場合、パケットの転送先を維持する方法である。
【０１３２】
実施例に係るパケット転送方法は、上記のパケット転送装置１と同様の構成を有するので、上記の作用効果を奏する。
【０１３３】
また、上述した実施例によると、ＴＲＩＬＬ技術に基づくプロトコルに従って自律的に経路制御を行いつつ、操作者が任意に通信経路を設定することができる。また、リンク障害が発生に伴う通信経路の再計算が行われた場合でも、操作者が設定した通信経路を可能な限り維持しつつ、動的な経路制御にも対応するので、柔軟なネットワークの提供が可能となる。
【０１３４】
したがって、上述した実施例によると、ＴＲＩＬＬ技術に基づくプロトコルを用いて、ＳＤＮ（Software Defined Network）、つまり、構成及び設定をソフトウェアだけで自在に変更可能な仮想的なネットワークを実現することが可能となる。例えば、ソフトウェアを用いて、ＥＣＭＰの各通信径路に対して、帯域を可能な限り均等に割り当てるトラフィックエンジニアリングや、保守作業において、対象装置からトラフィックを問題なく退避させることが可能となる。
【０１３５】
以上、好ましい実施例を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば、種々の変形態様を採り得ることは自明である。
【０１３６】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  ネットワーク内の複数のノードとそれぞれ接続され、パケットを送受信する複数のポートと、
ルーティングテーブルに従って前記複数のポート間で前記パケットを交換するスイッチ部と、
操作者からコマンド入力を受け付ける受付部と、
前記複数のノードのうち、前記コマンド入力で設定された通信経路上の次ノードに前記パケットが転送されるように、前記ルーティングテーブルを設定する設定処理部と、
前記ネットワーク内のリンク障害を検出する障害検出部とを有し、
前記設定処理部は、前記障害検出部が、前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害を検出した場合、前記パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替えるように、前記ルーティングテーブルの設定を変更し、前記障害検出部が、前記ネットワーク内の他の箇所のリンク障害を検出した場合、前記ルーティングテーブルの設定を維持することを特徴とするパケット転送装置。
（付記２）  前記ルーティングテーブルは、前記コマンド入力で設定された通信経路上の次ノードを示す第１識別子、及び、前記設定処理部が自律的に設定した通信経路上の次ノードを示す第２識別子を含み、
前記スイッチ部は、前記第２識別子より優先的に、前記第１識別子に従って前記複数のポート間で前記パケットを交換し、
前記設定処理部は、前記障害検出部が、前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害を検出した場合、前記ルーティングテーブルから前記第１識別子を削除し、または前記第１識別子を無効化することを特徴とする付記１に記載のパケット転送装置。
（付記３）  前記設定処理部は、前記障害検出部が、前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害の復旧を検出した場合、前記第１識別子を有効化することを特徴とする付記２に記載のパケット転送装置。
（付記４）  前記パケットは、前記パケットを識別するためのパケット識別子が付与され、
前記設定処理部は、自律的に設定した通信経路が複数存在する場合、前記パケットが各通信経路に均等に振り分けられるように、前記パケットの転送先として、前記パケット識別子に応じて通信経路上の次ノードを選択することを特徴とする付記１乃至３の何れかに記載のパケット転送装置。
（付記５）  ネットワーク内の複数のノードの少なくとも１つにおいて、操作者から受け付けたコマンド入力で設定された通信経路上の次ノードにパケットを転送し、
前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害が検出された場合、前記パケットの転送先を、自律的に設定した通信経路上の次ノードに切り替え、前記ネットワーク内の他の箇所のリンク障害が検出された場合、前記パケットの転送先を維持することを特徴とするパケット転送方法。
（付記６）  前記コマンド入力で設定された通信経路上の次ノードとの間におけるリンク障害の復旧が検出された場合、前記パケットの転送先を、前記コマンド入力で設定された通信経路上の次ノードに戻すことを特徴とする付記５に記載のパケット転送方法。
【符号の説明】
【０１３７】
１                    パケット転送装置
１０                  プロセッサ
１００                設定処理部
１０１                障害検出部
１２                  ＣＬＩ処理部（受付部）
１３                  スイッチ部
【図１】
2014230100.tif 000003
【図２】
2014230100.tif 000004
【図３】
2014230100.tif 000005
【図４】
2014230100.tif 000006
【図５】
2014230100.tif 000007
【図６】
2014230100.tif 000008
【図７】
2014230100.tif 000009
【図８】
2014230100.tif 000010
【図９】
2014230100.tif 000011
【図１０】
2014230100.tif 000012
【図１１】
2014230100.tif 000013
【図１２】
2014230100.tif 000014
【図１３】
2014230100.tif 000015
【図１４】
2014230100.tif 000016
【図１５】
2014230100.tif 000017
【図１６】
2014230100.tif 000018
【図１７】
2014230100.tif 000019
【図１８】
2014230100.tif 000020
【図１９】
2014230100.tif 000021
【図２０】
2014230100.tif 000022
【図２１】
2014230100.tif 000023
【図２２】
2014230100.tif 000024
【図２３】
2014230100.tif 000025
【図２４】
2014230100.tif 000026
【図２５】
2014230100.tif 000027
【図２６】
2014230100.tif 000028
【図２７】
2014230100.tif 000029
【図２８】
2014230100.tif 000030
【図２９】
2014230100.tif 000031
【図３０】
2014230100.tif 000032