(57)【要約】  経路制御部は、リンクまたは他の中継装置が故障した際に、現経路表に格納された経路表を更新する。更新に際して、更新後の経路表における、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得して抑止対象テーブルに登録する。抑止制御部は、隣接中継装置における経路更新が完了したことを条件に該隣接中継装置を次転送先とする経路を抑止対象テーブルから削除する。転送処理部は、現経路表に基づいてパケットの転送経路を決定し、決定された転送経路が抑止対象テーブルに登録されていないことを条件に該パケットの転送を実行する。したがって、複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステムにおける経路切替時に、マイクロループを確実に回避することができる。
2009130941.tif 000002
【特許請求の範囲】
【請求項１】
複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステムにおける前記中継装置であって、
各隣接中継装置との間のネットワークにそれぞれ接続する複数のネットワークインタフェースと、
宛先と、いずれかの隣接中継装置である次転送先とを対応付けた経路表を格納する現経路表格納部と、
前記ネットワークシステムにおけるリンクまたは他の中継装置が故障した際に、前記現経路表格納部に格納された経路表を更新すると共に、更新に際して、更新後の経路表における、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得する経路制御部と、
前記抑止対象経路情報を格納する抑止対象テーブルと、
隣接中継装置における経路更新が完了したことを条件に、該隣接中継装置を次転送先とする経路を前記抑止対象テーブルから削除する抑止制御部と、
前記現経路表格納部に格納された経路表に基づいてパケットの転送経路を決定し、決定された前記パケットの転送経路が前記抑止対象テーブルに登録されていないことを条件に該パケットの転送を実行する転送処理部とを備えることを特徴とする中継装置。
【請求項２】
前記経路制御部は、更新前後の経路表を比較して、比較結果から前記抑止対象経路情報を取得することを特徴とする請求項１に記載の中継装置。
【請求項３】
前記経路制御部は、更新前後の経路表間で、宛先が同一であり、次転送先が異なる経路を抑止対象経路として求めて前記抑止対象経路情報を取得することを特徴とする請求項２に記載の中継装置。
【請求項４】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了後に、経路更新完了通知を各隣接中継装置に送信することを特徴とする請求項１から３のいずれか１項に記載の中継装置。
【請求項５】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了により、前記経路更新完了通知の送信先の隣接中継装置が抑止を解除すべき経路を示す抑止解除メッセージを作成して前記経路更新完了通知として前記隣接中継装置に送信することを特徴とする請求項４に記載の中継装置。
【請求項６】
前記抑止制御部は、前記更新完了通知の送信先の隣接中継装置との間のネットワークに接続したネットワークインタフェースと、更新後の経路表における次転送先から決まるネットワークインタフェースとが異なる経路の宛先を宛先とし、前記抑止制御部自身が設けられた中継装置を次転送先とする経路を示す前記抑止解除メッセージを作成して送信することを特徴とする請求項５に記載の中継装置。
【請求項７】
直結のリンクまたは隣接中継装置の故障時に使用する代替経路表を故障箇所に対応付けて保持する代替経路表格納部と、
前記代替経路表毎に、該代替経路表に含まれる各経路がマイクロループを生じさせるか否かを判定するループ判定部と、
前記代替経路表毎に、前記ループ判定部によりマイクロループを生じさせると判定された経路となる抑止対象経路のみを示す代替抑止対象経路表を格納する代替抑止対象経路表格納部とを有し、直結のリンクまたは隣接中継装置の故障時に、前記代替経路表に格納された当該代替経路表で前記現経路表格納部に格納された経路表を更新すると共に、前記代替抑止対象経路表格納部に格納された対応の代替抑止対象経路表を前記抑止対象テーブルに登録することにより高速切替を実行する高速切替部をさらに備え、
前記経路制御部は、直結のリンクと隣接中継装置以外の箇所に故障が生じたときに動作することを特徴とする請求項６に記載の中継装置。
【請求項８】
前記抑止制御部は、前記更新完了通知の送信先の隣接中継装置が今回の経路更新時に前記高速切替を実施するか否かを判定し、
前記高速切替を実施しないと判定した場合に、前記隣接中継装置に対して前記抑止解除メッセージを作成して送信する一方、
前記高速切替を実施すると判定した場合に、前記抑止解除メッセージが示す各経路のうちの、前記現経路表に格納された経路表の更新前において次転送先が前記隣接中継装置であり、かつ更新後において次転送先が前記隣接中継装置ではない経路の宛先を宛先とする経路のみを示す高速切替対応抑止解除メッセージを作成して送信することを特徴とする請求項７に記載の中継装置。
【請求項９】
直結のリンクまたは隣接中継装置の故障時に使用する代替経路表を故障箇所に対応付けて保持する代替経路表格納部と、
前記代替経路表毎に、該代替経路表に含まれる各経路がマイクロループを生じさせるか否かを判定するループ判定部と、
前記代替経路表毎に、前記ループ判定部によりマイクロループを生じさせると判定された経路となる抑止対象経路のみを示す代替抑止対象経路表を格納する代替抑止対象経路表格納部とを有し、直結のリンクまたは隣接中継装置の故障時に、前記代替経路表に格納された当該代替経路表で前記現経路表格納部に格納された経路表を更新すると共に、前記代替抑止対象経路表格納部に格納された対応の代替抑止対象経路表を前記抑止対象テーブルに登録することにより高速切替を実行する高速切替部をさらに備え、
前記経路制御部は、直結のリンクと隣接中継装置以外の箇所に故障が生じたときに動作することを特徴とする請求項１から５のいずれか１項に記載の中継装置。
【請求項１０】
前記経路制御部は、前記ネットワークシステムに備えられた制御サーバが、前記ネットワークシステムにおけるリンクまたは中継装置が故障した際に送信してきた代替の経路表で前記現経路表格納部に格納された経路表を更新すると共に、前記制御サーバから送信してきた前記抑止対象経路情報を前記抑止対象テーブルに登録することを特徴とする請求項１に記載の中継装置。
【請求項１１】
前記抑止制御部は、前記経路表格納部に格納された経路表の更新完了後に、経路更新完了通知を前記制御サーバに送信することを特徴とする請求項１０に記載の中継装置。
【請求項１２】
前記抑止制御部は、隣接中継装置における経路更新が完了したことを示す経路更新完了通知を受信した際に、該隣接中継装置を次転送先とする各抑止対象経路を前記抑止対象テーブルから削除することを特徴とする請求項１から１１のいずれか１項に記載の中継装置。
【請求項１３】
前記抑止制御部は、隣接中継装置を次転送先とした、抑止を解除すべき経路を含む前記経路更新完了通知を受信した際に、該経路更新通知に含まれる各経路を前記抑止対象テーブルから削除することを特徴とする請求項１２に記載の中継装置。
【請求項１４】
前記抑止制御部は、夫々の隣接中継装置が経路更新にかかる時間の推定値を保持しており、前記現経路表格納部に格納された経路表の更新開始からの時間が前記推定値に達した際に、前記推定値に対応する隣接中継装置を次転送先とする経路を前記抑止対象テーブルから削除することを特徴とする請求項１から３のいずれか１項に記載の中継装置。
【請求項１５】
複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステムにおいて、
前記中継装置は、
各隣接中継装置との間のネットワークにそれぞれ接続する複数のネットワークインタフェースと、
宛先と、いずれかの隣接中継装置である次転送先とを対応付けた経路表を格納する現経路表格納部と、
前記ネットワークシステムにおけるリンクまたは他の中継装置が故障した際に、前記現経路表格納部に格納された経路表を更新すると共に、更新に際して、更新後の経路表における、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得する経路制御部と、
前記抑止対象経路情報を格納する抑止対象テーブルと、
隣接中継装置における経路更新が完了したことを条件に、該隣接中継装置を次転送先とする経路を前記抑止対象テーブルから削除する抑止制御部と、
前記現経路表格納部に格納された経路表に基づいてパケットの転送経路を決定し、決定された前記パケットの転送経路が前記抑止対象テーブルに登録されていないことを条件に該パケットの転送を実行する転送処理部とを備えることを特徴とするネットワークシステム。
【請求項１６】
前記経路制御部は、更新前後の経路表を比較して、比較結果から前記抑止対象経路情報を取得することを特徴とする請求項１５に記載のネットワークシステム。
【請求項１７】
前記経路制御部は、更新前後の経路表間で、宛先が同一であり、次転送先が異なる経路を抑止対象経路として求めて前記抑止対象経路情報を取得することを特徴とする請求項１６に記載のネットワークシステム。
【請求項１８】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了後に、経路更新完了通知を各隣接中継装置に送信することを特徴とする請求項１５から１７のいずれか１項に記載のネットワークシステム。
【請求項１９】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了により、前記経路更新完了通知の送信先の隣接中継装置が抑止を解除すべき経路を示す抑止解除メッセージを作成して前記経路更新完了通知として前記隣接中継装置に送信することを特徴とする請求項１８に記載のネットワークシステム。
【請求項２０】
前記抑止制御部は、前記更新完了通知の送信先の隣接中継装置との間のネットワークに接続したネットワークインタフェースと、更新後の経路表における次転送先から決まるネットワークインタフェースとが異なる経路の宛先を宛先とし、前記抑止制御部自身が設けられた中継装置を次転送先とする経路を示す前記抑止解除メッセージを作成して送信することを特徴とする請求項１９に記載のネットワークシステム。
【請求項２１】
前記中継装置は、直結のリンクまたは隣接中継装置の故障時に動作する高速切替部をさらに備え、
該高速切替部は、
直結のリンクまたは隣接中継装置の故障時に使用する代替経路表を故障箇所に対応付けて保持する代替経路表格納部と、
前記代替経路表毎に、該代替経路表に含まれる各経路がマイクロループを生じさせるか否かを判定するループ判定部と、
前記代替経路表毎に、前記ループ判定部によりマイクロループを生じさせると判定された経路となる抑止対象経路のみを示す代替抑止対象経路表を格納する代替抑止対象経路表格納部とを有し、直結のリンクまたは隣接中継装置の故障時に、前記代替経路表に格納された当該代替経路表で前記現経路表格納部に格納された経路表を更新すると共に、前記代替抑止対象経路表格納部に格納された対応の代替抑止対象経路表を前記抑止対象テーブルに登録することにより高速切替を実行し、
前記経路制御部は、直結のリンクと隣接中継装置以外の箇所に故障が生じたときに動作することを特徴とする請求項２０に記載のネットワークシステム。
【請求項２２】
前記抑止制御部は、前記更新完了通知の送信先の隣接中継装置が今回の経路更新時に前記高速切替を実施するか否かを判定し、
前記高速切替を実施しないと判定した場合に、前記隣接中継装置に対して前記抑止解除メッセージを作成して送信する一方、
前記高速切替を実施すると判定した場合に、前記抑止解除メッセージが示す各経路のうちの、前記現経路表に格納された経路表の更新前において次転送先が前記隣接中継装置であり、かつ更新後において次転送先が前記隣接中継装置ではない経路の宛先を宛先とする経路のみを示す高速切替対応抑止解除メッセージを作成して送信することを特徴とする請求項２１に記載のネットワークシステム。
【請求項２３】
前記中継装置は、直結のリンクまたは隣接中継装置の故障時に動作する高速切替部をさらに備え、
該高速切替部は、
直結のリンクまたは隣接中継装置の故障時に使用する代替経路表を故障箇所に対応付けて保持する代替経路表格納部と、
前記代替経路表毎に、該代替経路表に含まれる各経路がマイクロループを生じさせるか否かを判定するループ判定部と、
前記代替経路表毎に、前記ループ判定部によりマイクロループを生じさせると判定された経路となる抑止対象経路のみを示す代替抑止対象経路表を格納する代替抑止対象経路表格納部とを有し、直結のリンクまたは隣接中継装置の故障時に、前記代替経路表に格納された当該代替経路表で前記現経路表格納部に格納された経路表を更新すると共に、前記代替抑止対象経路表格納部に格納された対応の代替抑止対象経路表を前記抑止対象テーブルに登録することにより高速切替を実行し、
前記経路制御部は、直結のリンクと隣接中継装置以外の箇所に故障が生じたときに動作することを特徴とする請求項１５から１９のいずれか１項に記載のネットワークシステム。
【請求項２４】
いずれかのリンクまたは中継装置が故障した際に、各中継装置に、該中継装置に対応した代替の経路表と抑止対象情報を送信する制御サーバを備えに備え、
各前記中継装置の前記経路制御部は、前記制御サーバから送信してきた代替の経路表で前記現経路表格納部に格納された経路表を更新すると共に、前記制御サーバから送信してきた前記抑止対象経路情報を前記抑止対象テーブルに登録することを特徴とする請求項１５に記載のネットワークシステム。
【請求項２５】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了後に、経路更新完了通知を前記制御サーバに送信することを特徴とする請求項２４に記載のネットワークシステム。
【請求項２６】
前記制御サーバは、いずれかの中継装置から経路更新完了通知を受信した際に、該中継装置の隣接中継装置に前記中継装置の経路更新完了通知を送信することを特徴とする請求項２５に記載のネットワークシステム。
【請求項２７】
前記制御サーバは、前記隣接中継装置が抑止を解除すべき経路として、該隣接中継装置に対応する代替抑止対象表における、前記中継装置を次転送先とする経路を示す情報を含む経路更新完了通知を前記隣接中継装置に送信することを特徴とする請求項２６に記載のネットワークシステム。
【請求項２８】
前記抑止制御部は、隣接中継装置における経路更新が完了したことを示す経路更新完了通知を受信した際に、該隣接中継装置を次転送先とする各抑止対象経路を前記抑止対象テーブルから削除することを特徴とする請求項１５から２７のいずれか１項に記載のネットワークシステム。
【請求項２９】
前記抑止制御部は、隣接中継装置を次転送先とした、抑止を解除すべき経路を含む前記経路更新完了通知を受信した際に、該経路更新通知に含まれる各経路を前記抑止対象テーブルから削除することを特徴とする請求項２８に記載のネットワークシステム。
【請求項３０】
前記抑止制御部は、夫々の隣接中継装置が経路更新にかかる時間の推定値を保持しており、前記現経路表格納部に格納された経路表の更新開始からの時間が前記推定値に達した際に、前記推定値に対応する隣接中継装置を次転送先とする経路を前記抑止対象テーブルから削除することを特徴とする請求項１５から１８のいずれか１項に記載のネットワークシステム。
【請求項３１】
宛先と、いずれかの隣接中継装置である次転送先とを対応付けた経路表と、抑止対象テーブルとを備え、前記経路表に基づいてパケットの転送経路を決定し、決定された前記転送経路が前記抑止対象テーブルに登録されていないことを条件に前記パケットの転送を実行する複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステムにおける各前記中継装置の経路切替方法であって、
当該中継装置が使用する経路表を更新すると共に、更新に際して、更新後の経路表における、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得して保持し、
隣接中継装置における経路更新が完了したことを条件に、該隣接中継装置を次転送先とする経路を前記抑止対象経路テーブルから削除することを特徴とする経路切替方法。
【請求項３２】
宛先と、いずれかの隣接中継装置である次転送先とを対応付けた経路表と、抑止対象テーブルとを備え、前記経路表に基づいてパケットの転送経路を決定し、決定された前記転送経路が前記抑止対象テーブルに登録されていないことを条件に前記パケットの転送を実行する複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステムにおける各前記中継装置の経路切替に際して、
当該中継装置が使用する経路表を更新すると共に、更新に際して、更新後の経路表における、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得して保持し、
隣接中継装置における経路更新が完了したことを条件に、該隣接中継装置を次転送先とする経路を前記抑止対象経路テーブルから削除することをコンピュータに実行せしめるプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムにおける経路切替え技術に関する。
【背景技術】
【０００２】
Ｉｎｔｅｔｎｅｔ  Ｐｒｏｔｏｃｏｌを用いてネットワーク（以下ＩＰネットワークという）の経路制御プロトコルとして、ＩＧＰ（Ｉｎｔｅｒｉｏｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）が知られている。ＩＧＰは、大きく分けて２つの種類に分類され、それぞれのアルゴリズムが異なる。１つは、ディスタンスベクター型と呼ばれ、その代表的なプロトコルにＲＩＰ（Ｒｏｕｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）がある。ディスタンスベクター型のアルゴリズムでは、送信元と宛先のルータホップつまり通過しなければならないルータの数が一番小さい経路が選択される。もう１つは、リンクステート型であり、そのプロトコルにはＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ  ｒｏｕｔｉｎｇ）がある。リンクステート型プロトコルでは、ネットワークシステム内のトポロジー情報を全てのルータで共有することができる。トポロジー情報は、システム内にどのようなルータが存在し、それぞれがどのようなリンクで接続されているかという情報である。また、ルータは、中継装置、ゲートウェイ装置、ノードなど様々な呼び方がある。【０００３】
リンクステート型プロトコルでは、各ルータは、トポロジー情報から生成される有向グラフを用い、他の各ルータに対して最小コストを達成するパスから最短パスツリーを作成し、目的宛先までの最短パスを計算し、各宛先毎の次転送先ルータを確定する。最短パスツリーを作成するためのアルゴリズムには、Ｄｉｊｋｓｔｒａアルゴリズムが知られている。以上の一連の最短パス選択決定動作は、リンクステート型プロトコルにおける「経路計算」と呼ばれる。【０００４】
通常、ＩＰネットワークにおいて、故障時に経路を切り替えて通信サービスを継続させるために、予めルータやリンクを冗長に構成することが行われる。このように構成されたシステムにおいて、ルータまたはリンクに故障が生じ、トポロジー情報が変化すると、この故障を検知したルータは経路の再計算を行うと共に、他のルータに故障の通知を行う。通知を受けた各ルータは、故障したリンクやルータを取り除いたうえで経路の再計算を行う。こうすることによって、故障したリンクやルータを通らないパスが形成され、通信サービスが継続される。なお、リンクは、ルータと接続されたネットワークを意味し、リンクの故障は、ネットワークそのものの故障と、ルータにおいて該ネットワークと接続するインターフェースの故障を含む。【０００５】
また、リンクや他のルータの故障を想定して予め代替経路を計算して保持し、故障が生じたときに、保持された代替経路を用いることにより高速経路切替えを図る技術も考えられている（特許文献１）。【０００６】
ここで、図２５を参照して経路の切替えを具体的に説明する。
図２５は、ＩＰネットワークシステムの構成例を示す。このシステム１０は、複数（図示の例では６つ）のルータ１１〜１６と複数（図示の例では６つ）のネットワーク２１〜２６を有する。ネットワーク２１〜２６は、それぞれ「１９２．１６８．１．０／２４」、「１９２．１６８．２．０／２４」、「１９２．１６８．３．０／２４」、「１９２．１６８．４．０／２４」、「１９２．１６８．５．０／２４」、「１９２．１６８．６．０／２４」である。各ルータは、２つのネットワークと接続され、該２つのネットワークと接続するためのインターフェース（以下ＩＦ）を備える。例えば、図示のように、ルータ１１は、ネットワーク２６と接続するためのＩＦ１１Ａと、ネットワーク２１と接続するためのＩＦ１１Ｂを備え、ＩＦ１１Ａは、ネットワーク２６内のＩＰアドレス「１９２．１６８．２．２」が割り当てられており、ＩＦ１１Ｂは、ネットワーク２１内のＩＰアドレス「１９２．１６８．１．１」が割り当てられている。同様に、ルータ１４は、ネットワーク２３と接続するためのＩＦ１４Ａと、ネットワーク２４と接続するためのＩＦ１４Ｂを備え、ＩＦ１４Ａは、ネットワーク２３内のＩＰアドレス「１９２．１６８．３．２」が割り当てられており、ＩＦ１４Ｂは、ネットワーク２４内のＩＰアドレス「１９２．１６８．４．１」が割り当てられている。また、ルータ１５は、ネットワーク２４と接続するためのＩＦ１５Ａと、ネットワーク２５と接続するためのＩＦ１５Ｂを備え、ＩＦ１５Ａは、ネットワーク２４内のＩＰアドレス「１９２．１６８．４．２」が割り当てられており、ＩＦ１５Ｂは、ネットワーク２５内のＩＰアドレス「１９２．１６８．５．１」が割り当てられている。ルータ１６は、ネットワーク２５と接続するためのＩＦ１６Ａと、ネットワーク２６と接続するためのＩＦ１６Ｂを備え、ＩＦ１６Ａは、ネットワーク２５内のＩＰアドレス「１９２．１６８．５．２」が割り当てられており、ＩＦ１６Ｂは、ネットワーク２６内のＩＰアドレス「１９２．１６８．６．１」が割り当てられている。図示していないが、ルータ１２とルータ１３も、２つのネットワークと接続するための２つのＩＦをそれぞれ有し、これらのＩＦは、それらが接続されたネットワーク内のＩＰアドレスが割り当てられている。【０００７】
なお、図２５では、分かりやすいように、各ルータがそれぞれ２つのネットワークにしか接続されていないが、ルータが接続されるネットワークの数、およびそれに応じたＩＦの数は、２つに限られることがない。【０００８】
各ルータは、経路表を保持しており、経路表に基づいてパケット転送を行う。図２６は、システム１０上のすべてのルータおよびリンクが正常に動作する場合に、ルータ１６とルータ１５の経路表を示す。なお、図２６は、ＯＳＰＦの場合の例である。【０００９】
図２６に示すように、経路表は、パケットの宛先のネットワーク、マスク長、次転送先のＩＰアドレスと、該転送を担うインターフェースと、コストが対応付けて格納されている。【００１０】
たとえば、ルータ１６の場合、「１９２．１６０．１．０／２４」のネットワーク（ネットワーク２１）宛てのパケットに対して、次転送先がルータ１１具体的にルータ１１のＩＦ１１ＡのＩＰアドレス「１９２．１６８．６．２」であり、転送を担うインターフェースが１６Ｂであるように示されている。また、「１９２．１６０．２．０／２４」のネットワーク（ネットワーク２２）宛てのパケットに対しても、次転送先がルータ１１のＩＦ１１ＡのＩＰアドレス「１９２．１６８．６．２」であり、転送を担うインターフェースが１６Ｂであるように示されている。一方、「１９２．１６０．３．０／２４」のネットワーク（ネットワーク２３）宛てのパケットに対して、次転送先がルータ１５具体的にルータ１５のＩＦ１５ＢのＩＰアドレス「１９２．１６８．５．１」であり、転送を担うインターフェースが１６Ａであるように示されている。【００１１】
また、ルータ１５の場合、「１９２．１６０．１．０／２４」のネットワーク（ネットワーク２１）宛てのパケットに対して、次転送先がルータ１６具体的にルータ１６のＩＦ１６ＡのＩＰアドレス「１９２．１６８．５．２」であり、転送を担うインターフェースが１５Ｂであるように示されている。一方、「１９２．１６０．２．０／２４」のネットワーク（ネットワーク２２）宛てのパケットに対して、次転送先がルータ１４具体的にルータ１４のＩＦ１４ＢのＩＰアドレス「１９２．１６８．４．１」であり、転送を担うインターフェースが１５Ａであるように示されている。【００１２】
ここで、ルータ１１が故障した場合を考える。このとき、ルータ１１に隣接するルータ１２とルータ１６は、ルータ１１からｋｅｅｐａｌｉｖｅメッセージ（ＯＳＰＦにおけるＨｅｌｌｏメッセージ）を一定時間受信しなかったことや、下位レイヤからの切断通知からルータ１１が故障したことを検知すると、自身と隣接する他のルータにその旨を通知すると共に、次転送先からルータ１１を排除するように経路表を更新する。たとえば、ルータ１６は、ルータ１１の故障を検知すると、ルータ１５にルータ１１の故障を通知すると共に、自身の経路表を更新する。ルータ１５は、ルータ１６からルータ１１の故障が通知されると、隣接のルータ１４にその旨を通知すると共に、次転送先からルータ１１を排除するように経路表を更新する。このようにして、システム１０を構成する各ルータの経路表は、順次更新される。【００１３】
図２７は、ルータ１６とルータ１５の更新後の経路表を示す。図２７に示すように、ルータ１６の場合、ネットワーク２１（１９２．１６８．１．０／２４）へのパケットの転送がＩＦ１６Ａにより担い、次転送先がルータ１５のＩＦ１５ＢのＩＰアドレス「１９２．１６８．５．１」に変更されている。ネットワーク２２へのパケットについて同様である。【００１４】
また、ルータ１５の場合は、ネットワーク２１（１９２．１６８．１．０／２４）へのパケットの転送がＩＦ１５Ａにより担い、次転送先がルータ１４のＩＦ１４ＢのＩＰアドレス「１９２．１６８．４．１」に変更されている。【００１５】
システム１０において、ルータ１１を除いたすべてのルータは、このように経路表を更新することにより、ルータ１１が故障しても、通信サービスが継続される。【００１６】
ところで、ルータ１５は、ルータ１６からルータ１１の故障が通知されてから経路表を更新するので、ルータ１５の経路表の更新は、ルータ１６の経路表の更新より後になされる。すなわち、図２８に示すように、ルータ１６では既に経路表が更新されているが、ルータ１５ではまだ経路表が更新されていない期間が存在する。この期間において、たとえばネットワーク２１（１９２．１６８．１．０／２４）宛てのパケットに転送について考える。【００１７】
ルータ１５は、「１９２．１６８．１．０／２４」宛てのパケットを受信すると、図２８に示す更新前の経路表に基づいて、次転送先として「１９２．１６８．５．２」すなわちルータ１６に該パケットを転送する。ところで、ルータ１６は、既に更新された経路表を用いるため、「１９２．１６８．１．０／２４」宛てのパケットを受信すると、それを「１９２．１６８．５．１」すなわちルータ１５に転送する。その結果、ネットワーク２１へのパケットは、ルータ１５とルータ１６の間で行き来することになる。この状態は、マイクロループと呼ばれ、両ルータの転送処理に大きな負荷をかけてしまう。【００１８】
この問題は、故障が生じたときに経路の再計算を行うシステムと、予め代替経路を計算して保持するいわゆる高速経路切替システムのいずれにも生じうる。【００１９】
特許文献１には、高速経路切替システムにおいてマイクログループを解消する手法が開示されている。この手法は、予め代替経路を計算して保持する際に、該代替経路がマイクロループとなりうるか否かを判定し、マイクロループにならないと判定した代替経路のみを保持する。こうすることにより、故障が生じた際に、保持された代替経路を用いることになるが、これらの代替経路は、マイクロループにならないものであるため、マイクロループが生じない。
【特許文献１】特開２００６−２７９４８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
ところで、例えば、図２５に示すシステム１０において、ルータ１１が故障したときに、ルータ１６にとって、「１９２．１６０．１．０／２４」のネットワーク（ネットワーク２１）宛てのパケットに対して、次転送先がルータ１１だった経路の代替経路は、次転送先がルータ１５になる経路しかない。この経路は、前述したように、ルータ１５との間でマイクロループが生じる可能性のある経路である。すなわち、ネットワークシステムの構成によって、マイクロループになる可能性の経路を代替経路とせざるをえなく、特許文献１による手法では対応しきれない場合がある。【００２１】
本発明は、上記事情を鑑みてなされたものであり、マイクロループを確実に回避できる技術を提供する。
【課題を解決するための手段】
【００２２】
本発明の一つの態様は、複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステムにおける中継装置である。この中継装置は、各隣接中継装置との間のネットワークにそれぞれ接続する複数のネットワークインタフェースと、現経路表格納部と、経路制御部と、抑止対象テーブルと、抑止制御部と、転送処理部を備える。【００２３】
転送処理部は、現経路表格納部に格納された経路表に基づいてパケットの転送経路を決定し、決定されたパケットの転送経路が抑止対象テーブルに登録されていないことを条件に該パケットの転送を実行する。【００２４】
現経路表格納部は、宛先と、いずれかの隣接中継装置である次転送先とを対応付けた経路表を格納する。【００２５】
経路制御部は、ネットワークシステムにおけるリンクまたは他の中継装置が故障した際に、現経路表格納部に格納された経路表を更新すると共に、更新に際して、更新後の経路表における、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得して、抑止対象テーブルに格納する。【００２６】
抑止制御部は、隣接中継装置における経路更新が完了したことを条件に、該隣接中継装置を次転送先とする経路を抑止対象テーブルから削除する。【００２７】
なお、上記態様の中継装置を備えたネットワークシステムや、上記態様の中継装置を方法や、コンピュータに当該中継装置として動作せしめるプログラム、該プログラムを記録したコンピュータにより読取可能な記録媒体として置き換えて表現したもの、本発明の態様として有効である。
【発明の効果】
【００２８】
本発明にかかる技術によれば、ＩＰネットワークシステムにおいて、マイクロループを確実に回避できる。
【図面の簡単な説明】
【００２９】
【図１】本発明にかかる技術の原理を説明するための中継装置の模式図である。
【図２】図１に示すルータにおける更新前の現経路表の例を示す図である。
【図３】図１に示すルータにおける抑止対象テーブルの例を示す図である。
【図４】図２に示す現経路表の更新後の例を示す図である。
【図５】本発明の第１の実施の形態にかかるネットワークシステムを示す図である。
【図６】図５に示すネットワークシステムにおけるルータを示す図である。
【図７】トポロジー情報に変化が生じた際に、図６に示すルータにおいて行われる経路更新に関連する処理を示すフローチャートである。
【図８】図７におけるステップＳ１１０の処理を詳細に示すフローチャートである。
【図９】図７におけるステップＳ１３０の処理を詳細に示すフローチャートである。
【図１０】抑止解除ＭＳＧのフォーマット例を示す図である。
【図１１】図１０に示す抑止解除ＭＳＧにおける「Ｒｏｕｔｅ  Ｅｎｔｒｙ」のフォーマット例を示す図である。
【図１２】本発明の第２の実施の形態にかかるルータを示す図である。
【図１３】図１２に示すルータにおける抑止制御部の処理を示すフローチャートである。
【図１４】本発明の第３の実施の形態にかかるネットワークシステムを示す図である。
【図１５】図１４に示すネットワークシステムにおけるルータを示す図である。
【図１６】図１５に示すルータのループ判定部によりマイクロループが生じるか否かを判断するアルゴリズムを説明するための図である（その１）。
【図１７】図１５に示すルータのループ判定部によりマイクロループが生じるか否かを判断するアルゴリズムを説明するための図である（その２）。
【図１８】図１５に示すルータのループ判定部によりマイクロループが生じるか否かを判断する処理を示すフローチャートである。
【図１９】図１５に示すルータの抑止解除ＭＳＧ送信部の処理を示すフローチャートである。
【図２０】図１４に示すネットワークシステムの隣接する２つのルータの更新前の経路表の例を示す図である。
【図２１】図２０に示す２つの経路表の更新後の例を示す図である。
【図２２】図１９のステップＳ２４０を詳細に示すフローチャートである。
【図２３】本発明の第４の実施の形態にかかるネットワークシステムを示す図である。
【図２４】トポロジー情報に変化が生じた際に、図２３に示すネットワークシステムにおける制御サーバの動作を示すフローチャートである。
【図２５】ＩＰネットワークシステムの例を示す図である。
【図２６】図２５に示すＩＰネットワークシステムにおけるルータ１５とルータ１６の更新前の経路表の例を示す図である。
【図２７】図２６に示す経路表の更新後の例を示す図である。
【図２８】図２５に示すＩＰネットワークシステムにおけるルータ１６の経路更新が完了し、ルータ１５の経路更新が未完である場合の該２つのルータの経路表の例を示す。
【符号の説明】
【００３０】
１００  中継装置  １１１〜１１ｎ  ネットワークインタフェース
１２０  パケット転送部  １２１  現経路表
１２３  抑止対象テーブル  １２４  転送処理部
１３０  経路制御部  １４０  抑止制御部
２００  ネットワークシステム  ２１０  ルータ
２９０  ネットワーク  ２１１  ＮＩＦ
２１２  ＮＩＦ  ２２０  パケット転送部
２２１  現経路表  ２２２  旧経路表
２２３  抑止対象テーブル  ２２４  転送処理部
２２５  転送実行部  ２２６  フィルタ部
２３０  経路制御部  ２３１  トポロジー情報交換部
２３２  経路計算部  ２３３  経路比較部
２４０  抑止制御部  ２４１  抑止解除ＭＳＧ送信部
２４２  抑止解除ＭＳＧ受信部  ２４３  抑止解除部
２５０  ルータ  ２６０  抑止制御部
２６１  計時部  ２６２  タイマ
２６３  管理部  ２６４  抑止解除部
３００  ネットワークシステム  ３１１〜３１６  ルータ
３１１Ａ  ＮＩＦ  ３１１Ｂ  ＮＩＦ
３２０  パケット転送部  ３２１  現経路表
３２２  旧経路表  ３２３  抑止対象テーブル
３２４  転送処理部  ３２５  転送実行部
３２６  フィルタ部  ３３０  経路制御部
３３１  トポロジー情報交換部  ３３２  経路計算部
３３３  経路比較部  ３３３  代替経路計算部
３４０  抑止制御部  ３４１  抑止解除ＭＳＧ送信部
３４２  抑止解除ＭＳＧ受信部  ３４３  抑止解除部
３５０  高速切替部  ３５１  代替経路計算部
３５２  ループ判定部  ３５３  切替実行部
３５４  代替経路表群  ３５５  代替抑止対象表群
３９１〜３９６  ネットワーク  ４００  ネットワークシステム
４１１〜  ４１ｎ  ＮＩＦ    ４１０  ルータ
４２０  パケット転送部  ４２１  経路表
４２３  抑止対象テーブル  ４２４  転送処理部
４２５  転送実行部  ４２６  フィルタ部
４３０  経路設定部  ４３１  経路表受信部
４３２  更新完了通知部  ４４０  抑止制御部
４４１  抑止対象経路受信部  ４４２  抑止解除指示受信部
４４３  抑止解除部  ５００  ネットワーク
５１０  制御サーバ  ５１１  ＮＩＦ
５２０  パケット転送部  ５３０  経路計算管理部
５３１  トポロジー情報取得部  ５３２  ルータ別経路計算部
５３３  ルータ別現経路表  ５３４  ルータ別旧経路表
５３５  ルータ別経路比較部  ５４０  メッセージ送受信部
５４１  経路表送信部  ５４２  抑止対象経路送信部
５４３  更新完了通知受信部  ５４４  抑止解除指示送信部
【発明を実施するための最良の形態】
【００３１】
本発明の具体的な実施の形態を説明する前に、まず、本発明にかかる技術の原理を説明する。なお、以下の説明に用いられる図面に、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、プロセッサ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリに記録された、またはロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。また、分かりやすいように、これらの図面において、本発明の技術を説明するために必要なもののみを示す。【００３２】
図１は、本発明にかかる技術を適用した中継装置の模式図である。この中継装置１００は、ＩＰネットワークシステムにおける複数のネットワーク間のパケットの転送を行うものであり、複数のネットワークインタフェース（以下ＮＩＦという）１１１〜１１ｎ（ｎ≧２）と、パケットの転送を行うパケット転送部１２０と、パケット転送の経路を制御する経路制御部１３０と、抑止制御部１４０を備える。【００３３】
ＮＩＦ１１１〜ＮＩＦ１１Ｎは、Ｎ個のネットワークにそれぞれ接続され、それぞれのネットワークのＩＰアドレスが割り当てられている。【００３４】
パケット転送部１２０は、現経路表１２１と、抑止対象テーブル１２３と、転送処理部１２４を備える。【００３５】
現経路表１２１は、現在の経路表である。図２は、経路制御プロトコルとしてＯＳＰＦが用いられる場合の現経路表１２１の例を示す。図２に示す現経路表１２１は、中継装置１００が、図２５に示すシステム１０にルータ１６として設けられ、ＮＩＦ１１１とＮＩＦ１１２が、ルータ１６のＩＦ１６ＢとＩＦ１６Ａとした場合の例である。図示のように、現経路表１２１は、「宛先ネットワーク」と、「次転送先」と、「インターフェース」と、「コスト」とを対応付けて格納している。「次転送先」は、当該パケットを次に転送する先のＩＰアドレス、すなわち次に転送する先の中継装置のＮＩＦに割り当てられたＩＰアドレスである。「インターフェース」は、中継装置１００の複数のＮＩＦのうちの、当該パケットの転送を担うＮＩＦを示す。「コスト」は、当該パケットが宛先のネットワークに到達するまでのコストを示し、ＯＳＰＦでは、複数の経路候補のうちの、コストが最も小さい経路が選択される。すなわち、図２に示す各経路は、それぞれの宛先について、最小コストを有する経路である。【００３６】
現経路表１２１は、このように、中継装置１００が設けられたシステムにおけるすべてのネットワーク毎に、次転送先、ＮＩＦを対応付けて格納している。なお、現経路表１２１の作成と更新は、経路制御部１３０により行われる。【００３７】
抑止対象テーブル１２３は、複数の経路エントリを有する。図３は、抑止対象テーブル１２３の例を示す。図示のように、抑止対象テーブル１２３において、各経路エントリは、「宛先ネットワーク」と「次転送先」を含む。これらの経路エントリの登録と削除は、経路制御部１３０と抑止制御部１４０によりそれぞれ行われる。抑止対象テーブル１２３に含まれるエントリの意義、および抑止対象テーブル１２３の登録と削除の詳細について、後に経路制御部１３０と抑止制御部１４０と共に説明する。【００３８】
転送処理部１２４は、現経路表１２１と抑止対象テーブル１２３に基づいてパケット転送を行う。具体的には、転送対象のパケットの宛先ＩＰアドレスから宛先ネットワークを取得し、現経路表１２１を参照して「次転送先」と「インターフェース」（ＮＩＦ）を決定する。この処理は、いわば当該パケットの転送経路を選択する処理である。そして、転送処理部１２４は、抑止対象テーブル１２３を参照して、選択した転送経路が、抑止対象テーブル１２３における経路エントリが示す経路に含むか否かを確認する。選択した転送経路が抑止対象テーブル１２３における経路エントリが示す経路のうちのいずれか１つに該当するときに、当該パケットを破棄する。一方、選択した転送経路が抑止対象テーブル１２３におけるすべての経路エントリが示す経路にも該当しない場合には、当該パケットを、選択した経路で転送する。具体的には、選択した経路通りに、当該インターフェース（ＮＩＦ）に次転送先に転送させる。【００３９】
経路制御部１３０は、他の中継装置やリンクに故障が生じ、現経路表１２１を更新する必要があるときに、代替の経路表で現経路表１２１を更新すると共に、該更新によりマイクロループが生じる可能性のある経路を示す抑止対象経路情報を取得して、抑止対象テーブル１２３に登録する。【００４０】
図３は、図２と図４に示す更新前後の現経路表１２１の場合に対応する抑止対象テーブル１２３の一例を示す。図示のように、抑止対象テーブル１２３において、マイクロループを生じさせる可能性のある経路１と経路２にそれぞれ対応したエントリ１とエントリ２が登録されている。【００４１】
前述したように、転送処理部１２４は、転送経路として抑止対象テーブル１２３に登録されたエントリが示す経路が選択されたパケットを破棄する。そのため、抑止対象テーブル１２３が図３に示す状態であるときに、エントリ１により示される、宛先ネットワークが「１９２．１６８．１．０／２４」であり、次転送先が「１９２．１６８．５．１」となる転送経路が選択されたパケットは破棄される。同様に、エントリ２により示される、宛先ネットワークが「１９２．１６８．２．０／２４」であり、次転送先が「１９２．１６８．５．１」となるである転送経路が選択されたパケットも破棄される。一方、次転送先が同じく「１９２．１６８．５．１」であるものの、例えば宛先ネットワークが「１９２．１６８．３．０／２４」である転送経路が抑止対象テーブル１２３に登録されていないため、この転送経路が選択されたパケットは「１９２．１６８．５．１」に転送される。【００４２】
抑止制御部１４０は、抑止対象テーブル１２３におけるエントリの削除を行う。具体的には、隣接中継装置における経路更新が完了したことを条件に、抑止対象テーブル１２３に登録されたエントリのうちの、「次転送先」が該隣接中継装置である経路に対応するエントリを削除する。例えば、図３に示すエントリ１とエントリ２において、「次転送先」の「１９２．１６８．５．１」に対応する隣接中継装置（図２５に示すシステム１０の場合には、ルータ１５である）における経路更新が完了すれば、抑止制御部１４０は、エントリ１とエントリ２を削除する。これにより、のちに、転送経路としてエントリ１とエントリ２が示す経路が選択されたパケットも転送されることになる。【００４３】
このように、中継装置１００によれば、経路切替えに際して、現経路表１２１を更新すると共に、更新後の現経路表１２１における、マイクロループを生じさせる可能性のある経路を抑止対象テーブル１２３に登録する。そして、パケット転送する際に、新しい現経路表１２１に基づいて選択された転送経路が抑止対象テーブル１２３に登録されていないことを条件に該パケットを転送する。【００４４】
また、中継装置１００は、抑止対象テーブル１２３に登録された経路の「次転送先」に当たる隣接中継装置における経路更新が完了したことを条件に、当該隣接中継装置を「次転送先」とするエントリを抑止対象テーブル１２３から削除する。これにより、後に転送経路として、該隣接中継装置を「次転送先」とする経路が選択されたパケットも転送されることになる。【００４５】
すなわち、本発明の技術によれば、代替経路として使用できる経路が、マイクロループが生じる可能性のある経路しかない場合でも、マイクロループを回避しつつこの代替経路を使用可能である。【００４６】
また、特許文献１の手法は、マイクロループが生じる可能性のある経路を代替経路として使わないようにしているので、当該経路を使用するパケットは宛先まで到達できず、システムの効率が低下してしまう恐れがある。それに対して、本発明の技術に基づく中継装置１００によれば、隣接中継装置の経路更新完了によりマイクロループが生じない状況になったときに代替経路を使用可能とすることができ、システム全体の転送効率の向上に貢献できる。【００４７】
経路制御部１３０が代替の経路表と抑止対象経路情報を取得する手法は、経路制御部１３０自身により求めるようにしてもよく、ネットワークシステムに各中継装置の経路切替に関する処理を行う制御サーバが設けられている場合には、該制御サーバが送信してきた代替の経路表と抑止対象経路情報を受信することにより取得するようにしてもよい。
抑止制御部１４０が隣接中継装置における経路更新の完了を確認する手法としても、様々考えられる。【００４８】
例えば、ＩＰネットワークにおける各中継装置に、自身における経路更新が完了すればその旨を示す通知（更新完了通知）を隣接中継装置に行う機能と、他の中継装置から更新完了通知を受信する機能を備えるようにする。この２つの機能を例えば抑止制御部１４０に設けることができる。抑止制御部１４０は、中継装置１００において現経路表１２１の更新が完了すればパケット転送部１２０を介して更新完了通知を隣接中継装置に対して行い、隣接中継装置から更新完了通知を受信すると、抑止対象テーブル１２３から、当該中継装置のＮＩＦのＩＰアドレスを次転送先とするエントリを削除する。【００４９】
なお、抑止制御部１４０は、現経路表１２１の更新完了を経路制御部１３０から通知されるようにすればよい。【００５０】
さらに、各中継装置は、更新完了通知としては、自身を次転送先とする経路が抑止対象経路として隣接中継装置の抑止対象テーブルに登録されている可能性のある経路を示すメッセージ（以下抑止解除ＭＳＧという）を隣接中継装置に送信するようにしてもよい。この抑止解除ＭＳＧが、隣接中継装置が抑止を解除すべき経路そのものの情報を含むので、抑止解除ＭＳＧメッセージを受信した中継装置は、自身の抑止対象テーブルのどのエントリが、更新完了通知を送信した中継装置を次転送先とする経路であるかを調べる必要が無く、抑止対象テーブルに抑止解除ＭＳＧが示す経路に対応するエントリがあればそれを削除すればよい。【００５１】
また、上述した制御サーバが設けられたネットワークシステムの場合、各中継装置が更新完了通知を制御サーバに送信し、制御サーバは、受信した更新完了通知の送信元の中継装置の各隣接中継装置にその旨を通知するようにしてもよい。【００５２】
さらに、隣接中継装置が経路更新にかかる時間の推定値に基づいて、抑止対象テーブル１２３におけるエントリの削除をする手法も考えられる。例えば、抑止制御部１４０は、夫々の隣接中継装置が経路更新にかかる時間の推定値を保持しておき、経路制御部１３０による現経路表１２１の更新開始からの時間が、保持した推定値に達すると、該推定値に対応する隣接装置を次転送先とするエントリを抑止対象テーブル１２３から削除する。なお、推定値は、隣接中継装置が確実に経路更新を完了できる長さを有し、隣接中継装置の仕様や、帯域などを踏まえたシミュレーションにより知ることができる。【００５３】
本発明にかかる技術は、経路切替えが必要なときに、経路の再計算を行って経路表を更新するシステムにのみならず、いわゆる高速切替システムにも適用することができる。【００５４】
この場合、予め代替経路を計算して保持しておき、経路切替えの際には代替経路で経路表を更新する。これについて後に実施の形態を用いて詳細に説明する。本発明の技術を高速切替システムに適用することにより、上述した本発明の効果を得ることができると共に、経路の再計算の時間を節約することができるので、経路の切替えを高速にできる。【００５５】
以上の説明を踏まえて、本発明の実施の形態について説明する。
＜第１の実施の形態＞
図５は、本発明の第１の実施の形態にかかるネットワークシステム２００を示す。ネットワークシステム２００は、複数のルータ２１０と複数のネットワーク２９０を接続してなり、ルータ２１０によりネットワーク２９０間の通信を中継する。なお、図５の例では、各ルータは、それぞれ２つのネットワークと接続されるようになっている。【００５６】
図６は、ルータ２１０を示す。ルータ２１０は、２つのネットワークインタフェース（ＮＩＦ２１１、ＮＩＦ２１２）と、パケット転送部２２０と、経路制御部２３０と、抑止制御部２４０を有する。【００５７】
本実施の形態では、ルータ２１０が２つのネットワークと接続されるため、ＮＩＦ２１１とＮＩＦ２１２は、この２つのネットワークとそれぞれ接続され、それぞれのネットワークのＩＰアドレスが割り当てられている。【００５８】
パケット転送部２２０は、本発明の原理を説明する際に用いた中継装置１００（図１参照）におけるパケット転送部１２０と同様の機能を有する。図示のように、パケット転送部２２０は、現経路表２２１と、旧経路表２２２と、抑止対象テーブル２２３と、転送処理部２２４を備える。【００５９】
現経路表２２１は、ルータ２１０が使用する現在の経路表であり、経路切替時には経路制御部２３０により更新される、また、現経路表２２１は、更新される際に、更新前の経路表を旧経路表２２２に出力する。旧経路表２２２は、現経路表２２１からの旧経路表を格納する。すなわち、旧経路表２２２は、現経路表２２１より１つ前の経路表である。【００６０】
抑止対象テーブル２２３は、複数の経路エントリを有し、これらの経路エントリの登録は、経路制御部２３０の後述する経路比較部２３３により行われ、削除は、抑止制御部２４０の後述する抑止解除部２４３により行われる。【００６１】
転送処理部２２４は、転送実行部２２５とフィルタ部２２６を備える。転送実行部２２５は、パケットの宛先ＩＰアドレスから「宛先ネットワーク」を取得し、現経路表２２１を参照して、該「宛先ネットワーク」と対応付けられた「次転送先」とインターフェース（ＮＩＦ２１１またはＮＩＦ２１２）を特定する。これによって、パケットの転送経路が特定される。フィルタ部２２６は、転送実行部２２５が特定した経路に基づいて、該経路と同一の「宛先ネットワーク」および「次転送先」を有する経路エントリが抑止対象テーブル２２３にあるか否かを確認する。確認の結果、該当する経路エントリがある場合にはパケットを破棄し、該当する経路エントリが無い場合にはパケットを転送する。【００６２】
経路制御部２３０は、トポロジー情報交換部２３１と、経路計算部２３２と、経路比較部２３３を有する。【００６３】
トポロジー情報交換部２３１は、パケット転送部２２０を介して、ルータ２１０と、他の中継装置との間で、経路制御プロトコル例えばＯＳＰＦを用いてトポロジー情報の交換を行う。たとえば、トポロジー情報交換部２３１が、ＦＮＩＦ２１１とＮＩＦ２１２に接続しているリンクや、隣接ルータの故障を検知したとき、トポロジー情報に変化が生じたと認識し、変化分を各隣接ルータに通知する。また、隣接ルータからも、他のルータやリンクのトポロジー情報の変化が通知される。トポロジー情報交換部２３１は、上述したようなトポロジー情報の変化が生じた際に、この変化を経路計算部２３２に通知する。【００６４】
経路計算部２３２は、ＯＳＰＦプロトコルに準拠し、トポロジー情報交換部２３１からのトポロジー情報を用いて宛先のネットワーク毎に、コストが最小である経路を算出して現経路表２２１に供する、また、経路計算部２３２は、トポロジー情報交換部２３１から通知されたトポロジー情報の変化に応じて、故障が生じたリンクまたはルータを取り除いた上でコストが最小である経路を再計算して新しい経路情報を得る。経路計算部２３２は、再計算により得た経路情報を用いて現経路表２２１を更新すると共に、抑止制御部２４０にも出力する。なお、現経路表２２１の更新に伴って、現経路表２２１に格納されていた経路表は、旧経路表として旧経路表２２２に出力され、旧経路表２２２が更新される。【００６５】
経路比較部２３３は、経路計算部２３２により算出した新しい経路と、旧経路表２２２に格納された１つ前の経路表を比較し、変化があった経路について経路エントリを作成して抑止対象テーブル２２３に登録する。【００６６】
ここで、「変化のあった経路」とは、新旧経路表間で、宛先のネットワークが同一であり、次転送先が異なる経路を意味する。このような経路は、マイクロループを生じさせる可能性のある経路である。なお、「次転送先が異なる」ことは、次転送先への転送を担うインターフェースが異なることと同じ意味である。【００６７】
抑止制御部２４０は、抑止解除ＭＳＧ送信部２４１と、抑止解除ＭＳＧ受信部２４２と、抑止解除部２４３を備え、抑止解除ＭＳＧ送信部２４１は、抑止解除メッセージ（抑止解除ＭＳＧ）を送信する機能を担い、抑止解除ＭＳＧ受信部２４２と抑止解除部２４３は、抑止対象テーブル２２３に登録された経路エントリを削除する機能を担う。抑止解除ＭＳＧ送信部２４１は、現経路表２２１の更新が完了したことを条件に抑止解除ＭＳＧを隣接ルータに送信する。抑止解除ＭＳＧ受信部２４２は、ＮＩＦおよびパケット転送部２２０を介して他のルータから抑止解除ＭＳＧを受信した際に、それを抑止解除部２４３に出力する。抑止解除部２４３は、抑止解除ＭＳＧ受信部２４２からの抑止解除ＭＳＧに基づいて、抑止対象テーブル２２３における当該エントリを削除する。【００６８】
ここで、トポロジー情報交換部２３１がトポロジー情報に変化が生じたことを認識した際に、ルータ２１０において行われる経路切替処理をより詳細に説明する。【００６９】
図７のフローチャートに示すように、この際、まず、経路計算部２３２は、故障したリンクやルータを取り除いた上で、ＩＰＧの通常の経路計算により経路を再計算する（Ｓ１００）。経路計算部２３２は、再計算により得られた新しい経路を示す経路表で現経路表２２１を更新すると共に、新経路表を経路比較部２３３と抑止制御部２４０に出力する（Ｓ１０２）。なお、旧経路表２２２は、更新される前の現経路表２２１で更新される。【００７０】
経路比較部２３３は、経路計算部２３２から通知された新しい経路の経路表（更新後の現経路表２２１と同一である）と、旧経路表２２２（更新前の現経路表２２１と同一である）を比較し、比較の結果に応じて、抑止対象テーブル２２３に抑止対象となる経路のエントリを登録する（Ｓ１１０）。これに並行して、抑止解除ＭＳＧ送信部２４１は、各隣接ルータに抑止解除ＭＳＧを送信する（Ｓ１３０）。【００７１】
図８は、図７のステップＳ１１０における抑止対象テーブル２２３へのエントリ登録処理の詳細を示すフローチャートである。経路比較部２３３は、まず、新しい経路表に含まれる各経路から、旧経路表２２２との比較がなされていない経路を１つ選択する（Ｓ１１２）。そして、選択された経路と「宛先ネットワーク」が同一の経路を旧経路表２２２から検索する（Ｓ１１４）。抑止対象テーブル２２３は、ステップＳ１１１で選択した新しい経路と、ステップＳ１１４で検索した旧経路の「次転送先」を比較し、両者が一致しない場合は、図３に示すような、新しい経路の「宛先ネットワーク」と「次転送先」からなるエントリを抑止対象テーブル２２３に追加する（Ｓ１１６：Ｎｏ、Ｓ１１８）。一方、両者が一致した場合は、この新しい経路についてエントリ無しとする（Ｓ１１６：Ｙｅｓ）。【００７２】
経路比較部２３３は、ステップＳ１１２〜Ｓ１１８の処理を、新しい経路表における各経路に対して行い（Ｓ１２０：Ｎｏ、Ｓ１１２〜）、全ての経路の比較を完了したことをもって（Ｓ１２０：Ｙｅｓ）、処理を終了する。【００７３】
経路比較部２３３による抑止対象テーブル２２３へのエントリの登録に並行して、抑止制御部２４０における抑止解除ＭＳＧ送信部２４１は、抑止解除ＭＳＧの送信を行う。図９のフローチャートに示すように、抑止解除ＭＳＧ送信部２４１は、まず、各隣接ルータから、抑止解除ＭＳＧをまだ送信していないルータを１つ選択する（Ｓ１３２）。そして、選択された隣接ルータと接続しているインターフェース（ＮＩＦ）を特定する（Ｓ１３４）。抑止解除ＭＳＧ送信部２４１は、新しい経路表に含まれる各経路から、ステップＳ１３４で特定されたＮＩＦと異なる「インターフェース」を有する経路を全て抽出して抑止解除ＭＳＧを作成する（Ｓ１３６、Ｓ１４０）。抑止解除ＭＳＧ送信部２４１は、続いて、ステップＳ１４０で作成した抑止解除ＭＳＧを、ステップＳ１３２で選択した隣接ルータに送信する（Ｓ１４２）。なお、この送信は、ステップＳ１３４において特定されたＮＩＦを介して行われる。【００７４】
抑止解除ＭＳＧ送信部２４１は、すべての隣接ルータに対してステップＳ１３２〜Ｓ１４４の処理を完了した（Ｓ１４４：Ｙｅｓ）ことをもって、処理を終了する。【００７５】
図１０と図１１は、抑止解除ＭＳＧと、抑止解除ＭＳＧにおける「Ｒｏｕｔｅ  Ｅｎｔｒｙ」のパケットフォーマット例をそれぞれ示す。なお、図１０と図１１は、ＩＰｖ４の場合のフォーマット例を示しているが、ＩＰｖ６の場合も同様である。【００７６】
図１０に示すように、抑止解除ＭＳＧは、「Ｃｏｍｍａｎｄ」、「Ｖｅｒｓｉｏｎ」、「Ｕｎｕｓｅｄ」、および複数の「Ｒｏｕｔｅ  Ｅｎｔｒｙ」からなる。【００７７】
「Ｃｏｍｍａｎｄ」フィールドは、該パケットを受信したルータが行うべき処理を示す値が格納されており、本実施の形態では、「Ｒｏｕｔｅ  Ｅｎｔｒｙ」が示す経路に対する抑止解除を示す値たとえば「１」が格納されている。【００７８】
「Ｖｅｒｓｉｏｎ」フィールドは、将来、図１０に示すフォーマットが変更された場合に識別できるようにするためのものであり、本実施の形態では、現在のバージョンたとえば「１」が格納される。【００７９】
「Ｕｎｕｓｅｄ」フィールドは、将来のフォーマット拡張などのために用意されたものであり、本実施の形態では使用しないため、いかなる値が格納されてもかまわない。【００８０】
「Ｒｏｕｔｅ  Ｅｎｔｒｙ」フィールドは、抑止解除をすべき経路に関する情報が格納されている。図１１に示すように、このフィールドは、「Ａｄｄｒｅｓｓ  Ｆａｍｉｌｙ  Ｉｄｅｎｔｉｆｉｅｒ」、「Ｕｎｕｓｅｄ」以外に、「ＩＰ  Ａｄｄｒｅｓｓ」、「Ｎｅｔｍａｓｋ」、「Ｎｅｘｔｈｏｐ」を備える。【００８１】
「Ｕｎｕｓｅｄ」は、本実施の形態において使用しないフィールドである。「Ａｄｄｒｅｓｓ  Ｆａｍｉｌｙ  Ｉｄｅｎｔｉｆｉｅｒ」フィールドには、この「Ｒｏｕｔｅ  Ｅｎｔｒｙ」で扱っている経路のアドレスファミリを指定する値が格納されている。ＩＰｖ４の場合は、ここはＡＦ＿ＩＮＥＴ（２）という値が格納される。【００８２】
「ＩＰ  Ａｄｄｒｅｓｓ」と「Ｎｅｔｍａｓｋ」は、当該経路の「宛先ネットワーク」（図２を参照）が格納される。なお、「Ｎｅｔｍａｓｋ」フィールドの値は、ネットマスク形式で格納される。たとえば、図２に示す経路１に対して、「２４」である「Ｎｅｔｍａｓｋ」は、ここで２進数表記の「１１１１１１１１  １１１１１１１１  １１１１１１１１  ０００００００」で格納される。【００８３】
「Ｎｅｘｔｈｏｐ」の値は、抑止解除ＭＳＧを送信するルータの次転送先ではなく、抑止解除ＭＳＧを受信するルータにとっての次転送先を意味する。そのため、このフィールドには、抑止解除ＭＳＧを送信するルータ自身のＩＰアドレスのうちの、該抑止解除ＭＳＧを送信するインターフェースとして選択されたＮＩＦのＩＰアドレスとなる。このＮＩＦは、図９のフローチャートのステップＳ１３４で特定されたＮＩＦである。【００８４】
図１０と図１１が示す抑止解除ＭＳＧの例では、トランスポート層のプロトコルとして一般的に広く使用されているＵＤＰが適用されている。すなわち、送信する際に、図１０に示す抑止解除ＭＳＧに対してさらにＵＤＰヘッダ、ＩＰヘッダを付与する。ＩＰヘッダにおいて、抑止解除ＭＳＧの宛先アドレスは送信先の隣接ルータのＩＰアドレスであり、送信元アドレスは、送信を担うＮＩＦのＩＰアドレスである。ＵＤＰヘッダにおける宛先および送信元ポート番号は、予め定められた値が用いられる。【００８５】
また、１つの抑止解除ＭＳＧに含まれる「Ｒｏｕｔｅ  Ｅｎｔｒｙ」数の最大値は、ＩＰヘッダ、ＵＤＰヘッダを含めたパケット長が送信元のＮＩＦのＭＴＵ長を超えないよう最大の値に規定される。「Ｒｏｕｔｅ  Ｅｎｔｒｙ」の数が上記最大値より多い場合には、これらの「Ｒｏｕｔｅ  Ｅｎｔｒｙ」を複数個の抑止解除ＭＳＧに分けて格納して送信すればよい。【００８６】
抑止解除ＭＳＧ受信部２４２は、このような抑止解除ＭＳＧを、経路表の更新が完了した隣接のルータから受信する。抑止解除部２４３は、受信した抑止解除ＭＳＧの各「Ｒｏｕｔｅ  Ｅｎｔｒｙ」に基づいて、該「Ｒｏｕｔｅ  Ｅｎｔｒｙ」における「「ＩＰ  Ａｄｄｒｅｓｓ」、「Ｎｅｔｍａｓｋ」が示すネットワークを「宛先ネットワーク」とし、かつ、「Ｎｅｘｔｈｏｐ」と同一のＩＰアドレスを「次転送先」とする経路エントリを抑止対象テーブル２２３から削除する。【００８７】
ネットワークシステム２００は、本発明の原理の実施の形態であり、各ルータ２１０が図１に示す中継装置１００の機能を備えることにより、マイクロループを確実に回避することができる。
＜第２の実施の形態＞【００８８】
図１２は、本発明の第２の実施の形態にかかるルータ２５０である。ルータ２５０は、その抑止制御部２６０が、図６に示すルータ２１０の抑止制御部２４０と異なる点を除き、ルータ２１０と同様の構成を有する。ここで、ルータ２５０の抑止制御部２６０についてのみ説明する。【００８９】
図１２に示すように、ルータ２５０の抑止制御部２６０は、計時部２６１、管理部２６３、抑止解除部２６４を備え、計時部２６１は、タイマ２６２を有する。計時部２６１は、現経路表２２１の更新が完了したことを経路計算部２３２から知らせられると、タイマ２６２を起動する。計時を開始させる。管理部２６３は、経路更新にかかる時間の推定値を隣接ルータ毎に記憶しており、タイマ２６１が計時したタイマ値が当該隣接ルータの推定値に達すると、抑止対象テーブル２２３におけるこの隣接ルータについてのエントリの削除を抑止解除部２６４に指示する。抑止解除部２６４は、管理部２６３からの指示を受信すると、抑止対象テーブル２２３から、該隣接ルータを次転送先とするエントリを削除する。【００９０】
図１３は、抑止制御部２６０の処理を示すフローチャートである。まず、経路計算部２３２から、ルータ２５０自身の現経路表２２１の更新開始が通知されると、計時部２６１はタイマ２６２を起動させる（Ｓ１５０）。管理部２６３は、隣接する各ルータのうちの、経路更新がまだ完了していないルータを選択し、該ルータに対応する更新時間の推定値を得る（Ｓ１５１）。そして、タイマ２６２の時間が、ステップＳ１５１で得た推定値に達すると、管理部２６３は、該ルータについてのエントリ削除を抑止解除部２６４に指示する（Ｓ１５２：Ｙｅｓ、Ｎｏ）。抑止解除部２６４は、この指示を受けて、抑止対象テーブル２２３から、該ルータを次転送先とするエントリを削除する（Ｓ１５４）。同時に、管理部２６３は、該ルータの状態を「更新完了」とする（Ｓ１５５）。【００９１】
ステップＳ１５１からステップＳ１５５までの処理は、すべての隣接ルータが「更新完了」になるまで繰り返される（Ｓ１５６：Ｎｏ、Ｓ１５１〜）。【００９２】
本実施の形態のルータ２５０において、抑止制御部２６０は、隣接ルータの経路更新の完了時刻を推定することにより、抑止対象テーブル２２３のエントリを削除するタイミングを決定している。そのため、隣接ルータが、本発明の技術を適用していない通常のルータであっても、このルータとの間のマイクロループを防ぐことができる。すなわち、隣接する２つのルータ間のいずれか一方のみを本実施の形態のルータ２５０を用いるようにＩＰネットワークシステムを構築すれば、マイクロループを確実に回避できるなど、前述した本発明の技術の効果を得ることができる。
＜第３の実施の形態＞【００９３】
図１４は、本発明の第３の実施の形態にかかるネットワークシステム３００を示す。ネットワークシステム３００は、複数のルータ（図示の例では６つ：ルータ３１１〜ルータ３１６）と複数のネットワーク（図示の例では６つ：ネットワーク３９１〜ネットワーク３９６）を接続してなり、これらのルータにより各ネットワーク間の通信を中継する。なお、図１４の例では、各ルータは、それぞれ２つのネットワークと接続されるようになっている。【００９４】
ネットワークシステム３００における６つのネットワークは、ネットワーク３９１（１９２．１６８．４．０／２４）、ネットワーク３９２（１９２．１６８．３．０／２４）と、ネットワーク３９３（１９２．１６８．２．０／２４）、ネットワーク３９４（１９２．１６８．１．０／２４）と、ネットワーク３９５（１９２．１６８．６．０／２４）、ネットワーク３９６（１９２．１６８．５．０／２４）であり、図２５に示すシステム１０における各ネットワーク２４、ネットワーク２３、ネットワーク２２、ネットワーク２１、ネットワーク２６、ネットワーク２５と夫々同じである。【００９５】
ルータ３１１〜ルータ３１６は、同じ構成を有する。ここでルータ３１１を代表にしてネットワークシステム３００における各ルータを説明する。【００９６】
図１５は、ルータ３１１を示す。ルータ３１１は、２つのネットワークインタフェース（ＮＩＦ３１１Ａ、ＮＩＦ３１１Ｂ）と、パケット転送部３２０と、経路制御部３３０と、抑止制御部３４０、高速切替部３５０を有する。【００９７】
ＮＩＦ３１１ＡとＮＩＦ３１１Ｂは、ネットワーク３９１（１９２．１６８．４．０／２４）とネットワーク３９６（１９２．１６８．５．０／２４）にそれぞれ接続する。【００９８】
パケット転送部３２０は、現経路表３２１と、旧経路表３２２と、抑止対象テーブル３２３と、転送処理部３２４を備える。現経路表３２１は、現在の経路表である。旧経路表３２２は、現経路表３２１の１つ前の経路表である。抑止対象テーブル３２３は、複数の経路エントリを有し、これらの経路エントリの登録は、経路制御部３３０の後述する経路比較部３３３または高速切替部３５０の後述する切替実行部３５３により行われ、削除は、抑止制御部３４０の後述する抑止解除部３４３により行われる。【００９９】
転送処理部３２４は、ルータ２１０のパケット転送部２２０における転送処理部２２４と同様の動作をする。具体的には、転送実行部３２５は、現経路表３２１に基づいてパケットの転送経路を特定し、フィルタ部３２６は、転送実行部３２５が特定した経路について、抑止対象テーブル３２３にそのエントリが登録されている場合に、当該パケットを破棄する一方、該経路のエントリが抑止対象テーブル３２３に登録されていない場合には、当該パケットを転送する。【０１００】
経路制御部３３０は、トポロジー情報交換部３３１と、経路計算部３３２と、経路比較部３３３を備える。トポロジー情報交換部３３１は、経路制御プロトコル例えばＯＳＰＦを用いて隣接ルータとトポロジー情報の交換を行う。ルータ３１１の初期化時に、トポロジー情報交換部３３１は、トポロジー情報をパケット転送部３２０、経路計算部３３２、高速切替部３５０に出力し、その後、トポロジー情報に変化が生じた際に、変化の通知、および変化分の出力をパケット転送部３２０、経路計算部３３２、高速切替部３５０に出力する。【０１０１】
経路計算部３３２は、ルータ３１１の初期化時に、トポロジー情報交換部３３１からのトポロジー情報を用いて経路を計算する。経路計算部３３２は、算出した経路表を現経路表３２１に格納すると共に、高速切替部３５０にも出力する。その後、経路計算部３３２は、ネットワークシステム３００においてリンクまたは他のルータが故障したことをトポロジー情報交換部３３１から通知されたとき、自身により経路の更新を行うべきと判定した際に、故障が生じたリンクまたはルータを取り除いた上で経路の再計算を行って現経路表３２１を更新する。これに伴って、現経路表３２１に格納されていた経路表は、旧経路表として旧経路表３２２に出力され、旧経路表３２２が更新される。【０１０２】
本実施の形態において、現経路表３２１の更新は、経路計算部３３２または高速切替部３５０により行われる。高速切替部３５０は、ルータ３１１の隣接ルータ、およびルータ３１１と直結のリンクに故障が生じたときに現経路表３２１の更新を行い、それ以外の箇所に故障が生じた場合には、経路計算部３３２が現経路表３２１の更新を行う。【０１０３】
経路計算部３３２は、トポロジー情報交換部３３１から通知された故障情報に基づいて、故障箇所がルータ３１１の隣接ルータ、または直結のリンクであるかを確認する。故障個所がルータ３１１の直結のリンクまたは隣接ルータであれば経路の再計算など、経路更新に関わる処理を行わない。そうではなければ、経路計算部３３２は、経路の再計算を行って現経路表３２１を更新すると共に、新しい経路を経路比較部３３３と、抑止制御部３４０にも出力する。【０１０４】
経路比較部３３３は、経路計算部３３２により算出した新しい経路と、旧経路表３２２に格納された１つ前の経路表とを比較し、変化があった経路について経路エントリを作成して抑止対象テーブル３２３に登録する。【０１０５】
高速切替部３５０は、ルータ３１１の直結のリンクまたは隣接ルータに故障が生じた際に経路の更新を行うものであり、代替経路計算部３５１と、ループ判定部３５２と、切替実行部３５３を備える。切替実行部３５３は、複数の代替経路表を含む代替経路表群３５４と、複数の抑止対象表（以下代替抑止対象表という）を含む代替抑止対象表群３５５を有する。代替抑止対象表群３５５に含まれる各代替抑止対象表は、代替経路表群３５４に含まれる各代替経路に夫々対応する。なお、代替抑止対象表は、抑止対象テーブル３２３と同じ構成を有し、抑止すべき経路を示すエントリが格納されている。【０１０６】
代替経路計算部３５１は、ルータ３１１の初期化時に、トポロジー情報交換部３３１からのトポロジー情報を元に、ネットワークシステム３００上において、ルータ３１１の直結のリンクまたは隣接ルータが故障したことを仮定して、仮定した故障箇所毎に代替経路を計算して代替経路表を得る。代替経路計算部３５１は、このように作成した各代替経路表をループ判定部３５２に出力すると共に、切替実行部３５３の代替経路表群３５４に格納する。【０１０７】
ループ判定部３５２は、代替経路計算部３５１が得られた各代替経路について、経路計算部３３２が算出した経路から当該代替経路への切替えによりマイクロループが生じるか否かを判定する。ループ判定部３５２は、各代替経路表毎に、該代替経路表に含まれる各経路のうちの、マイクロループが生じうると判断した経路についてのみエントリを作成して代替抑止対象表を得て、代替抑止対象表群３５５に格納する。【０１０８】
ここでループ判定部３５２による判定のアルゴリズムを説明する。分かりやすいように、図１６に示す接続例を用いる。また、図中ルータ５４とルータ５３をそれぞれ送信元（ｓｒｃ：ｓｏｕｒｃｅ）と送信先（ｄｓｔ：ｄｅｓｔｉｎａｔｉｏｎ）とする。【０１０９】
ルータ５４からルータ５３までの経路は、パス６１（ルータ５４→ルータ５３）とパス６２（ルータ５４→ルータ５２→ルータ５１→ルータ５３）の２つがある。リンク７４の故障前、パス６１が最短パスであるため、転送経路として用いられる。パス６１のコストを「Ｘ」とする。【０１１０】
リンク７４が故障したとき、パス６２が代替経路として算出され、隣接ルータ５２が次転送先のルータとして選択される。なお、パス６２のコストを「Ｙ」とする。このとき、ルータ５２がルータ５３宛てのパケットの転送経路として、パス６３（ルータ５２→ルータ５１→ルータ５３）を使用するか、パス６４（ルータ５２→ルータ５４→ルータ５３）を使用するかを調べる必要がある。パス６３が使用されていればマイクロループが生じないが、パス６４が使用されていれば、マイクロループが生じる。【０１１１】
ルータ５４とルータ５２間のリンク７２のコストを「Ｚ」とすると、パス６３のコストは「Ｙ−Ｚ」であり、パス６４のコストは「Ｘ＋Ｚ」である。【０１１２】
このとき、ルータ５２において、ルータ５３宛ての経路として、パス６４ではなく、パス６３が選ばれるのは、パス６３のコストがパス６４のコストよりも小さい、すなわち下記の式（１）が成り立つ場合である。
（Ｙ−Ｚ）＜（Ｘ＋Ｚ）              （１）【０１１３】
従って、式（１）が成り立つときには、ルータ５４における代替経路（パス６２）は、マイクロループにならないものと判断できる。
図１７は、上記各パスやリンクのコストと、マイクロループにならない条件を示している。【０１１４】
本実施の形態におけるルータ３１１のループ判定部３５２は、このアルゴリズムを用いて代替経路への切替えがマイクロループになるか否かを判断する。図１８は、この判断処理のフローチャートを示す。ループ判定部３５２は、現在の経路における宛先までのコストと、現在の経路の代替経路における同一宛先までのコストとをそれぞれ「Ｘ」と「Ｙ」として取得する（Ｓ２００、Ｓ２０２）。そして、当該代替経路における次転送先のルータまでのコストを「Ｚ」として、「Ｙ−Ｚ」と「Ｘ＋Ｚ」を算出する（Ｓ２０４）。ループ判定部３５２は、「Ｙ−Ｚ」と「Ｘ＋Ｚ」が上記式（１）を満たす場合には、該代替経路に切り替えてもマイクロループにならないと判定し（Ｓ２１０：Ｙｅｓ、Ｓ２１２）、上記式（１）を満たさない場合には、マイクロループになると判定する（Ｓ２１０：Ｎｏ、Ｓ２１４）。【０１１５】
ループ判定部３５２は、各代替経路表について、マイクロループになると判定した経路についてのみ代替抑止対象表へのエントリを作成し、それらを切替実行部３５３の代替抑止対象表群３５５における当該代替抑止対象表に登録する。なお、代替抑止対象表群３５５における代替抑止対象表は、代替経路表群３５４における代替経路表と対応付けられている。【０１１６】
切替実行部３５３は、トポロジー情報交換部３３１から通知された故障情報に基づいて故障箇所がルータ３１１の直結のリンクまたは隣接ルータであるかを確認する。故障個所がルータ３１１の直結のリンクまたは隣接ルータではなければ、経路更新処理を行わない。一方、故障個所がルータ３１１の直結のリンクまたは隣接ルータであれば、切替実行部３５３は、故障箇所に対応した代替経路表を代替経路表群３５４から読み出して現経路表３２１を更新すると共に、代替抑止対象表群３５５から該代替経路表に対応する代替抑止対象表を代替抑止対象表群３５５から読み出して抑止対象テーブル３２３に登録する。これに伴い、現経路表３２１に格納されていた経路表が旧経路表として旧経路表３２２に出力され、旧経路表３２２も更新される。【０１１７】
すなわち、本実施の形態において、ルータ３１１の初期化直後、現経路表３２１には経路計算部３３２により得られた経路表が格納され、代替経路表群３５４には、ルータ３１１の直結のリンクまたは隣接ルータに故障が生じたことを仮定した場合の故障箇所毎の代替経路表が格納され、代替抑止対象表群３５５には、代替経路表群３５４に格納された代替経路表毎に、該代替経路表に対応した代替抑止対象表が格納される。なお、代替抑止対象表には、対応する代替経路表に切り替わるときに、マイクロループが生じうる経路についてのみエントリが登録されている。なお、抑止対象テーブル３２３には、何も登録されていない。【０１１８】
ルータ３１１の動作中に、トポロジー情報交換部３３１が他のルータやリンクの故障が生じたと認識した際に、その旨を経路計算部３３２と切替実行部３５３に通知する。【０１１９】
経路計算部３３２は、トポロジー情報交換部３３１からの故障情報に基づき、自身により経路の更新を行うべきと判定した際に、新しい経路表を算出して現経路表３２１を更新すると共に、新しい経路表を経路比較部３３３と抑止制御部３４０に出力する。経路比較部３３３は、新旧経路表を比較し、変化のあった経路についてエントリを作成して抑止対象テーブル３２３に登録する。なお、経路計算部３３２は、自身により経路の更新を行うべきではないと判定した際に、上記処理をしない。【０１２０】
高速切替部３５０における切替実行部３５３は、トポロジー情報交換部３３１からの故障情報に基づき、自身により経路の更新を行うべきと判定した際に、代替経路表群３５４から当該代替経路表を読み出して現経路表３２１を更新すると共に、該代替経路表に対応する代替抑止対象表を代替抑止対象表群３５５から読み出して抑止対象テーブル３２３に登録する。また、切替実行部３５３は、新しい経路表（代替経路表）を抑止制御部３４０にも出力する。【０１２１】
抑止制御部３４０は、抑止解除ＭＳＧ送信部３４１と、抑止解除部３４３と、抑止解除ＭＳＧ受信部３４２を備える。抑止解除ＭＳＧ送信部３４１は、抑止解除ＭＳＧを隣接するルータに送信する機能を担い、抑止解除ＭＳＧ受信部３４２と抑止解除部３４３は、抑止対象テーブル３２３に登録された経路エントリを削除する機能を担う。【０１２２】
抑止解除ＭＳＧ受信部３４２と抑止解除部３４３は、図６に示すルータ２１０の抑止制御部２４０における抑止解除ＭＳＧ受信部２４２と抑止解除部２４３と同様の動作をする。具体的には、抑止解除ＭＳＧ受信部３４２は、隣接するルータから抑止解除ＭＳＧを受信すると、それを抑止解除部３４３に出力する。抑止解除部３４３は、抑止解除ＭＳＧ受信部３４２からの抑止解除ＭＳＧに基づいて、抑止対象テーブル３２３から当該エントリを削除する。【０１２３】
抑止解除ＭＳＧ送信部３４１は、経路計算部３３２または切替実行部３５３により現経路表３２１の更新が完了すると抑止解除ＭＳＧを隣接するルータに送信する。図１９を参照して抑止解除ＭＳＧ送信部３４１の動作を説明する。【０１２４】
図１９は、抑止解除ＭＳＧ送信部３４１による抑止解除ＭＳＧ送信処理を示すフローチャートである。図示のように、抑止解除ＭＳＧ送信部３４１は、まず、各隣接するルータ（図１４に示すネットワークシステム３００の例では、ルータ３１２とルータ３１６）から、抑止解除ＭＳＧをまだ送信していないルータを１つ選択する（Ｓ２３２）。そして、選択したルータに対して送信すべき抑止解除ＭＳＧのタイプを判定する（Ｓ２４０）。本実施の形態において、抑止解除ＭＳＧ送信部３４１は、抑止解除ＭＳＧのタイプとして、「高速切替に対応した抑止解除ＭＳＧ」と、「高速切替に対応しない抑止解除ＭＳＧ」のいずれかを判定する。「高速切替に対応した抑止解除ＭＳＧ」は、高速切替を実行する隣接ルータに送信するものであり、「高速切替に対応しない抑止解除ＭＳＧ」は、高速切替を実行しない隣接ルータに送信するものである。この判定処理の詳細については、後述する。【０１２５】
抑止解除ＭＳＧ送信部３４１は、ステップＳ２３２で選択した隣接ルータが、高速切替に対応した抑止解除ＭＳＧを送信すべきルータである場合に（Ｓ２５０：Ｙｅｓ）、旧経路表３２２から、次転送先が、ステップ２３２で選択された隣接ルータである経路をすべて抽出する（Ｓ２５２）。そして、抑止解除ＭＳＧ送信部３４１は、切替実行部３５３からの代替経路表（現経路表３２１に格納されたものと同様である）と、ステップＳ２５２で抽出した経路とを比較し、両者間で、宛先が同一であり、次転送先が異なる経路を抽出する（Ｓ２５４）。【０１２６】
一方、抑止解除ＭＳＧ送信部３４１は、ステップＳ２３２で選択した隣接ルータが、高速切替に対応する抑止解除ＭＳＧを送信すべきルータではない場合に（Ｓ２５０：Ｎｏ）、該隣接ルータと接続しているインターフェース（ＮＩＦ）を特定する（Ｓ２５６）。そして、抑止解除ＭＳＧ送信部３４１は、新しい経路表に含まれる各経路から、ステップＳ２５６で特定されたＮＩＦと異なる「インターフェース」を有する経路を全て抽出する（Ｓ２５８）。なお、ステップＳ２５６〜ステップＳ２５８の処理は、ルータ２１０における抑止解除ＭＳＧ送信部２４１の処理を示す図９におけるステップＳ１３４〜ステップＳ１３６と同様である。【０１２７】
抑止解除ＭＳＧ送信部３４１は、ステップＳ２５４で抽出した経路、またはステップＳ２５８で抽出した経路を用いて抑止解除ＭＳＧを作成して、ステップＳ２３２で選択した隣接ルータに送信する（Ｓ２６０、Ｓ２６２）。なお、ステップＳ２６０とステップＳ２６２における抑止解除ＭＳＧの作成および送信は、ルータ２１０における抑止解除ＭＳＧ送信部２４１の当該処理と同様である。【０１２８】
抑止解除ＭＳＧ送信部３４１は、全ての隣接ルータに対して抑止解除ＭＳＧを送信したことをもって（Ｓ２６４：Ｙｅｓ）、処理を終了する。【０１２９】
図１９のフローチャートが示す抑止解除ＭＳＧ送信部３４１の処理と、図９のフローチャートが示すルータ２１０における抑止解除ＭＳＧ送信部２４１の処理とを比較すると分かるように、本実施の形態において、抑止解除ＭＳＧ送信部３４１は、隣接ルータが高速切替を実行しない場合には、ルータ２１０における抑止解除ＭＳＧ送信部２４１と同様の処理を行う一方、隣接ルータが高速切替を実行している場合には、高速切替に対応する抑止解除ＭＳＧを作成する。なお、高速切替に対応する抑止解除ＭＳＧは、抑止すべき経路が異なる以外、高速切替に対応しない抑止解除ＭＳＧと同様である。【０１３０】
これについて、ネットワークシステム３００において、ルータ３１１がルータ３１６に抑止解除ＭＳＧを送信する場合を例にして詳細に説明する。これは、ステップＳ２３２において、抑止解除ＭＳＧ送信部３４１が隣接ルータとしてルータ３１６を選択した場合である。【０１３１】
図２０は、ネットワークシステム３００の初期化直後におけるルータ３１１とルータ３１６の現経路表３２１にそれぞれ格納された経路表である。なお、図中３１１Ａと３１１Ｂは、ルータ３１１において、ネットワーク３９１（１９２．１６８．４．０／２４）とネットワーク３９６（１９２．１６８．５．０／２４）にそれぞれ接続するＮＩＦであり、３１６Ａと３１６Ｂは、ルータ３１６において、ネットワーク３９６（１９２．１６８．５．０／２４）とネットワーク３９５（１９２．１６８．６．０／２４）にそれぞれ接続するＮＩＦである。【０１３２】
図２１は、ネットワークシステム３００においてルータ３１５またはネットワーク３９５に故障が生じたときにルータ３１６とルータ３１１の更新後の経路表である。図２０と図２１を比べると分かるように、ルータ３１６では、更新前後に変更のあった経路は、宛先がネットワーク３９４（１９２．１６８．１．０／２４）とネットワーク３９３（１９２．１６８．２．０／２４）の２つである。【０１３３】
ルータ３１６が高速切替を実行する場合（すなわちルータ３１６の直結のリンクまたは隣接ルータに故障が生じた場合）、ルータ３１６の抑止対象テーブルには、上述した２つの経路のうちの、マクロループになりうる経路のみが登録される。この場合、ルータ３１１の旧経路表において次転送先がルータ３１６ではない経路に関しては、ルータ３１６側ではマクロループが生じない経路として判断されるため、抑止の対象になっていない。図２０に示すルータ３１１の旧経路表において宛先がネットワーク３９３（１９２．１６８．０２．０／２４）である経路は、これに該当する。図２０と図２１に示すように、ルータ３１６では、ネットワーク３９３（１９２．１６８．０２．０／２４）宛ての経路は、更新前後で１９２．１６８．６．２（ルータ３１５）から１９２．１６８．５．１（ルータ３１１）に変わっている。しかし、ルータ３１１の経路表から分かるように、宛先がネットワーク３９３（１９２．１６８．２．０／２４）である経路が、更新前後とも次転送先のルータがルータ３１６ではなく、ロループが生じないと判断できる。そのため、ルータ３１６側では高速切替えを実施する際に、抑止対象テーブルには、宛先がネットワーク３９４（１９２．１６８．１．０／２４）のエントリのみが登録される。【０１３４】
従って、ルータ３１１は、ルータ３１６に抑止解除ＭＳＧを送信するとき、ルータ３１６が高速切替えを実施していると判定した際に、宛先がネットワーク３９４（１９２．１６８．１．０／２４）の経路についてのみ抑止解除ＭＳＧを作成して送信すればよい。【０１３５】
一方、ルータ３１６が高速切替えを実行しない場合には、ルータ３１１は、ルータ３１６においてどの経路が抑止対象とされているのかを把握することができないため、インターフェースが３１１Ａである経路、すなわちネットワーク３９４（１９２．１６８．１．０／２４）、ネットワーク３９３（１９２．１６８．２．０／２４）、ネットワーク３９２（１９２．１６８．３．０／２４）、ネットワーク３９１（１９２．１６８．４．０／２４）を宛先とする４つの経路についてすべて抑止解除ＭＳＧを送信する。【０１３６】
図２２は、図１９のステップＳ２４０における判定処理の詳細を示すフローチャートである。図２１に示すように、抑止解除ＭＳＧのタイプ判定に際して、抑止解除ＭＳＧ送信部３４１は、まず、トポロジー情報交換部３３１からのトポロジー情報から、故障箇所がリンクであるかルータであるかを判定する（Ｓ２４１）。故障箇所がルータである場合には、抑止解除ＭＳＧ送信部３４１は、さらに、故障ルータが、図１９のステップＳ２３２で選択した隣接ルータの隣接ルータであるかを判定する（Ｓ２４１：ルータ、Ｓ２４５）。【０１３７】
故障ルータが、図１９のステップＳ２３２で選択した隣接ルータの隣接ルータであることは、ステップＳ２３２で選択した隣接ルータが高速切替を実行することを意味する。そのため、抑止解除ＭＳＧ送信部３４１は、故障ルータがステップＳ２３２で選択した隣接ルータの隣接ルータであると判定した場合、送信すべき抑止解除ＭＳＧのタイプを「高速切替に対応した抑止解除ＭＳＧ」に判定する（Ｓ２４５：Ｙｅｓ、Ｓ２４３）。一方、抑止解除ＭＳＧ送信部３４１は、故障ルータがステップＳ２３２で選択した隣接ルータの隣接ルータではないと判定した場合、送信すべき抑止解除ＭＳＧのタイプを「高速切替に対応しない抑止解除ＭＳＧ」に判定する（Ｓ２４５：Ｎｏ、Ｓ２４６）。【０１３８】
ステップＳ２４１において、故障箇所がリンクであると判定された場合（Ｓ２４１：リンク）、抑止解除ＭＳＧ送信部３４１は、さらに、故障リンクが、図１９のステップＳ２３２で選択した隣接ルータと直結のリンクであるかを確認する（Ｓ２４１：リンク、Ｓ２４２）。【０１３９】
故障リンクが、図１９のステップＳ２３２で選択した隣接ルータと直結のリンクであることは、ステップＳ２３２で選択した隣接ルータが高速切替を実行することを意味する。そのため、抑止解除ＭＳＧ送信部３４１は、故障リンクがステップＳ２３２で選択した隣接ルータの直結のリンクであると判定した場合、送信すべき抑止解除ＭＳＧのタイプを「高速切替に対応した抑止解除ＭＳＧ」に判定する（Ｓ２４２：Ｙｅｓ、Ｓ２４３）。一方、抑止解除ＭＳＧ送信部３４１は、故障リンクがステップＳ２３２で選択した隣接ルータの直結のリンクではないと判定した場合、送信すべき抑止解除ＭＳＧのタイプを「高速切替に対応しない抑止解除ＭＳＧ」に判定する（Ｓ２４２：Ｎｏ、Ｓ２４６）。【０１４０】
本実施の形態のネットワークシステム３００において、各ルータが、高速切替機能を備え、直結のリンクまたは隣接ルータに故障が生じた際に、予め用意された代替経路表で現経路表を更新するため、経路の更新を高速にできる。また、経路更新後に隣接ルータに抑止解除ＭＳＧを送信する際に、隣接ルータが高速切替を実施するルータであると判定した際に、高速切替に対応した抑止解除ＭＳＧを送信することによって、第１の実施の形態のネットワークシステム２００におけるルータ２１０より、抑止解除ＭＳＧにより抑止解除を通知する経路の数を削減することができる。【０１４１】
ネットワークシステムの任意のリンクとルータにおいて故障が発生したときに高速切替を実施するのでは、予め用意する代替経路表の数が膨大になるため、本実施の形態のネットワークシステム３００において、各ルータが、直結のリンクまたは隣接ルータに故障が生じたときにのみ高速切替を実行する。例えば、ルータ乃至リンクの数が少ないネットワークシステムの場合、システムのいずれの場所に故障が生じても各ルータが高速切替を実施するようにしてもよい。この場合、隣接ルータに抑止解除ＭＳＧは、すべて「高速切替に対応した抑止解除ＭＳＧ」となる。【０１４２】
また、本実施の形態において、ルータ３１１は、隣接ルータから受信した抑止解除ＭＳＧに応じて抑止対象テーブル３２３におけるエントリの削除を行っているが、第２の実施の形態のように、隣接するルータが経路更新を完了した時間を推定して、推定時間に達すれば該隣接ルータに対応する経路エントリを抑止対象テーブル３２３から削除するようにしてもよい。
＜第４の実施の形態＞【０１４３】
図２３は、本発明の第４の実施の形態にかかるネットワークシステム４００を示す。ネットワークシステム４００は、複数のネットワークと、該複数のネットワーク間の通信を中継する複数のルータを備える。図２３において、分かりやすいように、これらの複数のネットワークをまとめてネットワーク５００で示し、ルータについてはルータ４１０のみを示す。なお、図示しない各ルータは、ルータ４１０と同様の構成を有する。【０１４４】
ネットワークシステム４００は、ネットワーク５００に接続した制御サーバ５１０を備える。この制御サーバ５１０は、ネットワークシステム４００における各ルータの経路の制御を行う。図示のように、制御サーバ５１０は、ネットワーク５００に接続するためのネットワークインタフェース（ＮＩＦ）５１１と、制御サーバ５１０宛のパケットと制御サーバ５１０から送出するパケットの転送を行うパケット転送部５２０と、経路計算管理部５３０と、メッセージ送受信部５４０を備える。【０１４５】
経路計算管理部５３０は、トポロジー情報取得部５３１と、トポロジー情報取得部５３１と、ルータ別経路計算部５３２と、ルータ別現経路表５３３と、ルータ別旧経路表５３４と、ルータ別経路比較部５３５を有する。トポロジー情報取得部５３１は、ネットワーク５００からトポロジー情報を取得してルータ別経路計算部５３２に供する。ルータ別経路計算部５３２は、トポロジー情報取得部５３１が取得したトポロジー情報に基づいて、ネットワーク５００に接続された各ルータの経路表を作成して、ルータ別現経路表５３３に出力すると共に、メッセージ送受信部５４０における後述する経路表送信部５４１を介して夫々のルータに送信する。また、トポロジー情報取得部５３１から故障箇所を示すトポロジー情報を受信した際に、ルータ毎に新しい経路表を作成してルータ別現経路表５３３に格納された各ルータの現経路表を更新すると共に、経路表送信部５４１を介して夫々のルータに送信する。【０１４６】
ルータ別現経路表５３３は、ルータ別経路計算部５３２から新しい経路表を受信する度に、格納中の各ルータの現経路表を旧経路表としてルータ別旧経路表５３４に出力すると共に、ルータ別経路計算部５３２からの新しい経路表を格納する。また、ルータ別現経路表５３３は、格納した新しい経路表を経路表送信部５４１とルータ別経路比較部５３５に出力する。【０１４７】
ルータ別旧経路表５３４は、ルータ別現経路表５３３から出力した経路表（旧経路表）で格納中の旧経路表を更新する。また、ルータ別旧経路表５３４は、更新後の旧経路表をルータ別経路比較部５３５に出力する。【０１４８】
すなわち、ルータ別現経路表５３３には、ルータ毎の最新の経路表が格納されており、ルータ別旧経路表５３４には、ルータ別現経路表５３３に格納された経路表より１つ前の経路表が格納されている。【０１４９】
ルータ別経路比較部５３５は、ルータ毎に、ルータ別現経路表５３３に格納された現経路表と、ルータ別旧経路表５３４に格納された旧経路表とを比較して抑止対象経路を抽出する。この抽出処理は、前述した各実施の形態における相対応する処理と同様に、変化のあった経路、すなわち、新旧経路表間で、「宛先ネットワーク」が同一であり、「次転送先」が異なる経路を抽出する。【０１５０】
ルータ別経路比較部５３５は、抽出した抑止対象経路を示す情報（以下抑止対象経路情報という）をメッセージ送受信部５４０の後述する抑止対象経路送信部５４２と抑止解除指示送信部５４４に出力する。【０１５１】
メッセージ送受信部５４０は、経路表送信部５４１と、抑止対象経路送信部５４２と、更新完了通知受信部５４３と、抑止解除指示送信部５４４を備える。【０１５２】
経路表送信部５４１は、ルータ別現経路表５３３からルータ毎の新しい経路表を受信する度に、夫々のルータの新しい経路表を当該ルータに送信する。抑止対象経路送信部５４２は、ルータ別経路比較部５３５からルータ毎の抑止対象経路情報を受信する度に、夫々のルータの抑止対象経路情報を当該ルータに送信する。【０１５３】
本実施の形態において、各ルータが、自身において経路の更新が完了した際に更新完了通知を制御サーバ５１０に送信する。更新完了通知ついてのちにルータ４１０を説明する際に詳細に説明する。制御サーバ５１０のメッセージ送受信部５４０における更新完了通知受信部５４３は、この更新完了通知を受信し、送信元のルータ（以下完了通知送信元ルータという）を抑止解除指示送信部５４４に知らせる。【０１５４】
抑止解除指示送信部５４４は、更新完了通知受信部５４３から知らせられた完了通知送信元ルータの隣接ルータに、完了通知送信元ルータについて、抑止対象経路を解除する指示（抑止解除指示）を送信する。【０１５５】
なお、メッセージ送受信部５４０が行う経路表の送信、抑止対象経路の送信、更新完了通知の受信、抑止解除指示の送信は、パケット転送部５２０乃至ＮＩＦ５１１を介して行われる。【０１５６】
次いで、ルータ４１０を代表にしてネットワークシステム４００における各ルータを説明する。ルータ４１０は、ネットワーク５００に含まれる２つ以上のネットワークとそれぞれ接続する２つ以上のＮＩＦ（ＮＩＦ４１１、ＮＩＦ４１２、・・・、ＮＩＦ４１ｎ）と、パケット転送部４２０と、経路設定部４３０と、抑止制御部４４０を備える。ルータ４１０宛のパケットと、ルータ４１０から送出するパケットは、当該ＮＩＦ乃至パケット転送部４２０を介して行われる。【０１５７】
経路設定部４３０は、経路表受信部４３１と、更新完了通知部４３２を有し、ルータ４１０の経路の設定（更新を含む）と、経路更新が完了したことを制御サーバ５１０に通知することを担う。具体的には、経路表受信部４３１は、制御サーバ５１０から自身の経路表を受信する度にそれをパケット転送部４２０の後述する経路表４２１に出力する。また、２度目以降に受信した経路表を経路表４２１に出力し終わる度に、経路更新があったことを更新完了通知部４３２に知らせる。更新完了通知部４３２は、経路表受信部４３１から経路更新があったことを知らせられると、制御サーバ５１０に更新完了通知を送信し、ルータ４１０において経路更新が完了したことを知らせる。【０１５８】
パケット転送部４２０は、経路表４２１と、抑止対象テーブル４２３と、転送処理部４２４を有する。経路表４２１は、経路表受信部４３１から経路表を受信する度に、この経路表で、格納中の経路表を更新する。抑止対象テーブル４２３は、抑止制御部４４０から抑止対象経路情報を受信して格納する。なお、この抑止対象経路情報は、制御サーバ５１０のメッセージ送受信部５４０における抑止対象経路送信部５４２から送信され、抑止制御部４４０の後述する抑止対象経路受信部４４１により受信されたものである。【０１５９】
転送処理部４２４は、転送実行部４２５とフィルタ部４２６を備え、経路表４２１と抑止対象テーブル４２３を参照してパケットの転送を行う。転送処理部４２４は、図６に示すルータ２１０のパケット転送部２２０における転送処理部２２４と同様の動作をするものであり、ここで詳細な説明を省略する。【０１６０】
抑止制御部４４０は、抑止対象経路受信部４４１と、抑止解除指示受信部４４２と、抑止解除部４４３を備える。【０１６１】
抑止対象経路受信部４４１は、制御サーバ５１０から具体的には制御サーバ５１０の抑止対象経路送信部５４２から抑止対象経路情報を受信するものであり、受信した抑止対象経路情報を抑止対象テーブル４２３に出力する。これにより、ルータ４１０の経路更新に伴い、抑止すべく経路エントリが抑止対象テーブル４２３に登録される。【０１６２】
抑止解除指示受信部４４２は、制御サーバ５１０から具体的には制御サーバ５１０のメッセージ送受信部５４０における抑止解除指示送信部５４４から抑止解除指示を受信するものであり、受信した抑止解除指示が示すルータについての経路を抑止解除部４４３に知らせる。【０１６３】
抑止解除部４４３は、抑止解除指示受信部４４２から知らせられた経路に該当するエントリを抑止対象テーブル４２３から削除する。【０１６４】
図２４は、ネットワークシステム４００のトポロジー情報が変化し、各ルータの経路表を更新する必要があるときにおける制御サーバ５１０の動作を示すフローチャートである。図２４に示すように、ネットワーク５００上に各ルータの経路を更新するために、まず、ルータ別経路計算部５３２は、ルータ別の新しい経路表を作成する（Ｓ３１０）。これにより、ルータ別現経路表５３３に記憶されたルータ別の経路表は旧経路表としてルータ別旧経路表５３４に出力され、ルータ別旧経路表５３４が更新される。それに伴って、ルータ別現経路表５３３は、ステップＳ３１０で作成された新しい経路表で更新される（Ｓ３１２、Ｓ３１４）。ルータ別経路比較部５３５は、ルータ毎に、新旧経路表を比較し、比較結果に基づいて抑止対象経路を抽出する（Ｓ３１８）。ルータ別経路比較部５３５は、抽出した抑止対象経路を示す抑止対象経路情報を抑止対象経路送信部５４２と抑止解除指示送信部５４４に出力する（Ｓ３２０）。そして、経路表送信部５４１は、ルータ別現経路表５３３からの新経路表を当該ルータに送信し、抑止対象経路送信部５４２は、ルータ別経路比較部５３５からの抑止対象経路情報を当該ルータに送信する（Ｓ３２２、Ｓ３２４）。【０１６５】
抑止解除指示送信部５４４は、ルータ別経路比較部５３５から受信したルータ毎の抑止対象経路情報を保持して、各ルータからの更新完了通知を待つ（Ｓ３２６）。更新完了通知受信部５４３がいずれかのルータから更新完了通知を受信し、完了通知送信元ルータを抑止解除指示送信部５４４に知らせると、抑止解除指示送信部５４４は、該完了通知送信元ルータの各隣接ルータに抑止解除指示を送信する（Ｓ３３０）。なお、この抑止解除指示は、前述した各実施の形態に用いられる抑止解除ＭＳＧと同じフォーマットとすることができる。また、抑止解除指示送信部５４４は、各ルータの抑止対象経路を保持しているので、完了通知送信元ルータの隣接ルータに送信する抑止解除指示には、完了通知送信元ルータについて、隣接ルータが抑止対象にしている経路のみを含ませればよい。【０１６６】
抑止解除指示送信部５４４は、全てのルータについて、該ルータの隣接ルータへ抑止解除指示を送信したか否か、すなわち全てのルータが経路更新完了したかを確認する（Ｓ３３２）。経路更新がまだ完了していないルータがあればステップＳ３２６に戻り、（Ｓ３３２：Ｎｏ、Ｓ３２６〜）。全てのルータの経路更新が完了したならば（Ｓ３３２：Ｙｅｓ）、処理を終了する。【０１６７】
ルータ自身により経路制御を行うのではなく、１つの制御サーバによりすべてのルータの経路更新を制御するネットワークシステムにおいても、経路更新のタイミングが隣接ルータ間で異なることによりマイクロループが生じる可能性がある。本実施の形態のネットワークシステム４００において、制御サーバ５１０は、各ルータに新しい経路表を送信すると共に、抑止対象経路情報も送信する。各ルータは、制御サーバ５１０から受信した新しい経路表で旧経路表を更新すると共に、抑止対象経路情報を抑止対象テーブルに登録する。そして、ルータの転送処理部は、パケットを転送する際に、該パケットの転送経路が抑止対象テーブルに登録されていないことを条件にこのパケットの転送を実行する。こうすることにより、隣接するルータの経路更新タイミングが異なってもマイクロループを防ぐことができる。また、制御サーバ５１０は、経路更新が完了したルータ（完了通知送信元ルータ）の隣接ルータに対して抑止解除指示を送信し、抑止解除指示を受信した隣接ルータは、完了通知送信元ルータについての経路エントリを抑止対象テーブルから削除すること。これにより、マイクロループが生じる可能性が無くなったときに、該ルータはすべてのパケットについて転送可能になる。【０１６８】
以上、実施の形態（および実施例）を参照して本願発明を説明したが、本願発明は上記実施の形態（および実施例）に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、２００８年４月２２日に出願された日本出願特願２００８−１１１５８２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１６９】
本発明は、例えば、ネットワークシステムにおける経路切替え技術に使用される。
【図１】
2009130941.tif 000003
【図２】
2009130941.tif 000004
【図３】
2009130941.tif 000005
【図４】
2009130941.tif 000006
【図５】
2009130941.tif 000007
【図６】
2009130941.tif 000008
【図７】
2009130941.tif 000009
【図８】
2009130941.tif 000010
【図９】
2009130941.tif 000011
【図１０】
2009130941.tif 000012
【図１１】
2009130941.tif 000013
【図１２】
2009130941.tif 000014
【図１３】
2009130941.tif 000015
【図１４】
2009130941.tif 000016
【図１５】
2009130941.tif 000017
【図１６】
2009130941.tif 000018
【図１７】
2009130941.tif 000019
【図１８】
2009130941.tif 000020
【図１９】
2009130941.tif 000021
【図２０】
2009130941.tif 000022
【図２１】
2009130941.tif 000023
【図２２】
2009130941.tif 000024
【図２３】
2009130941.tif 000025
【図２４】
2009130941.tif 000026
【図２５】
2009130941.tif 000027
【図２６】
2009130941.tif 000028
【図２７】
2009130941.tif 000029
【図２８】
2009130941.tif 000030
【手続補正書】
【提出日】平成22年9月22日(2010.9.22)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステムに
おける前記中継装置であって、
各隣接中継装置との間のネットワークにそれぞれ接続する複数のネットワークインタフ
ェースと、
宛先と、いずれかの隣接中継装置である次転送先とを対応付けた経路表を格納する現経
路表格納部と、
前記ネットワークシステムにおけるリンクまたは他の中継装置が故障した際に、前記現
経路表格納部に格納された経路表を更新すると共に、更新に際して、更新後の経路表にお
ける、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得する
経路制御部と、
前記抑止対象経路情報を格納する抑止対象テーブルと、
隣接中継装置における経路更新が完了したことを条件に、該隣接中継装置を次転送先と
する経路を前記抑止対象テーブルから削除する抑止制御部と、
前記現経路表格納部に格納された経路表に基づいてパケットの転送経路を決定し、決定
された前記パケットの転送経路が前記抑止対象テーブルに登録されていないことを条件に
該パケットの転送を実行する転送処理部とを備えることを特徴とする中継装置。
【請求項２】
前記経路制御部は、更新前後の経路表を比較して、比較結果から前記抑止対象経路情報
を取得することを特徴とする請求項１に記載の中継装置。
【請求項３】
前記経路制御部は、更新前後の経路表間で、宛先が同一であり、次転送先が異なる経路
を抑止対象経路として求めて前記抑止対象経路情報を取得することを特徴とする請求項２
に記載の中継装置。
【請求項４】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了後に、経路更新
完了通知を各隣接中継装置に送信することを特徴とする請求項１から３のいずれか１項に
記載の中継装置。
【請求項５】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了により、前記経
路更新完了通知の送信先の隣接中継装置が抑止を解除すべき経路を示す抑止解除メッセー
ジを作成して前記経路更新完了通知として前記隣接中継装置に送信することを特徴とする
請求項４に記載の中継装置。
【請求項６】
前記抑止制御部は、前記更新完了通知の送信先の隣接中継装置との間のネットワークに
接続したネットワークインタフェースと、更新後の経路表における次転送先から決まるネ
ットワークインタフェースとが異なる経路の宛先を宛先とし、前記抑止制御部自身が設け
られた中継装置を次転送先とする経路を示す前記抑止解除メッセージを作成して送信する
ことを特徴とする請求項５に記載の中継装置。
【請求項７】
直結のリンクまたは隣接中継装置の故障時に使用する代替経路表を故障箇所に対応付け
て保持する代替経路表格納部と、
前記代替経路表毎に、該代替経路表に含まれる各経路がマイクロループを生じさせるか
否かを判定するループ判定部と、
前記代替経路表毎に、前記ループ判定部によりマイクロループを生じさせると判定され
た経路となる抑止対象経路のみを示す代替抑止対象経路表を格納する代替抑止対象経路表
格納部とを有し、直結のリンクまたは隣接中継装置の故障時に、前記代替経路表格納部に
格納された当該代替経路表で前記現経路表格納部に格納された経路表を更新すると共に、
前記代替抑止対象経路表格納部に格納された対応の代替抑止対象経路表を前記抑止対象テ
ーブルに登録することにより高速切替を実行する高速切替部をさらに備え、
前記経路制御部は、直結のリンクと隣接中継装置以外の箇所に故障が生じたときに動作
することを特徴とする請求項６に記載の中継装置。
【請求項８】
前記抑止制御部は、前記更新完了通知の送信先の隣接中継装置が今回の経路更新時に前
記高速切替を実施するか否かを判定し、
前記高速切替を実施しないと判定した場合に、前記隣接中継装置に対して前記抑止解除
メッセージを作成して送信する一方、
前記高速切替を実施すると判定した場合に、前記抑止解除メッセージが示す各経路のう
ちの、前記現経路表格納部に格納された経路表の更新前において次転送先が前記隣接中継
装置であり、かつ更新後において次転送先が前記隣接中継装置ではない経路の宛先を宛先
とする経路のみを示す高速切替対応抑止解除メッセージを作成して送信することを特徴と
する請求項７に記載の中継装置。
【請求項９】
直結のリンクまたは隣接中継装置の故障時に使用する代替経路表を故障箇所に対応付け
て保持する代替経路表格納部と、
前記代替経路表毎に、該代替経路表に含まれる各経路がマイクロループを生じさせるか
否かを判定するループ判定部と、
前記代替経路表毎に、前記ループ判定部によりマイクロループを生じさせると判定され
た経路となる抑止対象経路のみを示す代替抑止対象経路表を格納する代替抑止対象経路表
格納部とを有し、直結のリンクまたは隣接中継装置の故障時に、前記代替経路表格納部に
格納された当該代替経路表で前記現経路表格納部に格納された経路表を更新すると共に、
前記代替抑止対象経路表格納部に格納された対応の代替抑止対象経路表を前記抑止対象テ
ーブルに登録することにより高速切替を実行する高速切替部をさらに備え、
前記経路制御部は、直結のリンクと隣接中継装置以外の箇所に故障が生じたときに動作
することを特徴とする請求項１から５のいずれか１項に記載の中継装置。
【請求項１０】
前記経路制御部は、前記ネットワークシステムに備えられた制御サーバが、前記ネット
ワークシステムにおけるリンクまたは中継装置が故障した際に送信してきた代替の経路表
で前記現経路表格納部に格納された経路表を更新すると共に、前記制御サーバから送信し
てきた前記抑止対象経路情報を前記抑止対象テーブルに登録することを特徴とする請求項
１に記載の中継装置。
【請求項１１】
前記抑止制御部は、前記経路表格納部に格納された経路表の更新完了後に、経路更新完
了通知を前記制御サーバに送信することを特徴とする請求項１０に記載の中継装置。
【請求項１２】
前記抑止制御部は、隣接中継装置における経路更新が完了したことを示す経路更新完了
通知を受信した際に、該隣接中継装置を次転送先とする各抑止対象経路を前記抑止対象テ
ーブルから削除することを特徴とする請求項１から１１のいずれか１項に記載の中継装置。
【請求項１３】
前記抑止制御部は、隣接中継装置を次転送先とした、抑止を解除すべき経路を含む前記
経路更新完了通知を受信した際に、該経路更新完了通知に含まれる各経路を前記抑止対象
テーブルから削除することを特徴とする請求項１２に記載の中継装置。
【請求項１４】
前記抑止制御部は、夫々の隣接中継装置が経路更新にかかる時間の推定値を保持してお
り、前記現経路表格納部に格納された経路表の更新開始からの時間が前記推定値に達した
際に、前記推定値に対応する隣接中継装置を次転送先とする経路を前記抑止対象テーブル
から削除することを特徴とする請求項１から３のいずれか１項に記載の中継装置。
【請求項１５】
複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステムに
おいて、
前記中継装置は、
各隣接中継装置との間のネットワークにそれぞれ接続する複数のネットワークインタフ
ェースと、宛先と、いずれかの隣接中継装置である次転送先とを対応付けた経路表を格納
する現経路表格納部と、
前記ネットワークシステムにおけるリンクまたは他の中継装置が故障した際に、前記現
経路表格納部に格納された経路表を更新すると共に、更新に際して、更新後の経路表にお
ける、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得する
経路制御部と、
前記抑止対象経路情報を格納する抑止対象テーブルと、
隣接中継装置における経路更新が完了したことを条件に、該隣接中継装置を次転送先と
する経路を前記抑止対象テーブルから削除する抑止制御部と、
前記現経路表格納部に格納された経路表に基づいてパケットの転送経路を決定し、決定
された前記パケットの転送経路が前記抑止対象テーブルに登録されていないことを条件に
該パケットの転送を実行する転送処理部とを備えることを特徴とするネットワークシステ
ム。
【請求項１６】
前記経路制御部は、更新前後の経路表を比較して、比較結果から前記抑止対象経路情報
を取得することを特徴とする請求項１５に記載のネットワークシステム。
【請求項１７】
前記経路制御部は、更新前後の経路表間で、宛先が同一であり、次転送先が異なる経路
を抑止対象経路として求めて前記抑止対象経路情報を取得することを特徴とする請求項１
６に記載のネットワークシステム。
【請求項１８】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了後に、経路更新
完了通知を各隣接中継装置に送信することを特徴とする請求項１５から１７のいずれか１
項に記載のネットワークシステム。
【請求項１９】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了により、前記経
路更新完了通知の送信先の隣接中継装置が抑止を解除すべき経路を示す抑止解除メッセー
ジを作成して前記経路更新完了通知として前記隣接中継装置に送信することを特徴とする
請求項１８に記載のネットワークシステム。
【請求項２０】
前記抑止制御部は、前記更新完了通知の送信先の隣接中継装置との間のネットワークに
接続したネットワークインタフェースと、更新後の経路表における次転送先から決まるネ
ットワークインタフェースとが異なる経路の宛先を宛先とし、前記抑止制御部自身が設け
られた中継装置を次転送先とする経路を示す前記抑止解除メッセージを作成して送信する
ことを特徴とする請求項１９に記載のネットワークシステム。
【請求項２１】
前記中継装置は、直結のリンクまたは隣接中継装置の故障時に動作する高速切替部をさ
らに備え、
該高速切替部は、
直結のリンクまたは隣接中継装置の故障時に使用する代替経路表を故障箇所に対応付け
て保持する代替経路表格納部と、
前記代替経路表毎に、該代替経路表に含まれる各経路がマイクロループを生じさせるか
否かを判定するループ判定部と、
前記代替経路表毎に、前記ループ判定部によりマイクロループを生じさせると判定され
た経路となる抑止対象経路のみを示す代替抑止対象経路表を格納する代替抑止対象経路表
格納部とを有し、直結のリンクまたは隣接中継装置の故障時に、前記代替経路表格納部に
格納された当該代替経路表で前記現経路表格納部に格納された経路表を更新すると共に、
前記代替抑止対象経路表格納部に格納された対応の代替抑止対象経路表を前記抑止対象テ
ーブルに登録することにより高速切替を実行し、
前記経路制御部は、直結のリンクと隣接中継装置以外の箇所に故障が生じたときに動作
することを特徴とする請求項２０に記載のネットワークシステム。
【請求項２２】
前記抑止制御部は、前記更新完了通知の送信先の隣接中継装置が今回の経路更新時に前
記高速切替を実施するか否かを判定し、
前記高速切替を実施しないと判定した場合に、前記隣接中継装置に対して前記抑止解除
メッセージを作成して送信する一方、
前記高速切替を実施すると判定した場合に、前記抑止解除メッセージが示す各経路のう
ちの、前記現経路表格納部に格納された経路表の更新前において次転送先が前記隣接中継
装置であり、かつ更新後において次転送先が前記隣接中継装置ではない経路の宛先を宛先
とする経路のみを示す高速切替対応抑止解除メッセージを作成して送信することを特徴と
する請求項２１に記載のネットワークシステム。
【請求項２３】
前記中継装置は、直結のリンクまたは隣接中継装置の故障時に動作する高速切替部をさ
らに備え、
該高速切替部は、
直結のリンクまたは隣接中継装置の故障時に使用する代替経路表を故障箇所に対応付け
て保持する代替経路表格納部と、
前記代替経路表毎に、該代替経路表に含まれる各経路がマイクロループを生じさせるか
否かを判定するループ判定部と、
前記代替経路表毎に、前記ループ判定部によりマイクロループを生じさせると判定され
た経路となる抑止対象経路のみを示す代替抑止対象経路表を格納する代替抑止対象経路表
格納部とを有し、直結のリンクまたは隣接中継装置の故障時に、前記代替経路表格納部に
格納された当該代替経路表で前記現経路表格納部に格納された経路表を更新すると共に、
前記代替抑止対象経路表格納部に格納された対応の代替抑止対象経路表を前記抑止対象テ
ーブルに登録することにより高速切替を実行し、
前記経路制御部は、直結のリンクと隣接中継装置以外の箇所に故障が生じたときに動作
することを特徴とする請求項１５から１９のいずれか１項に記載のネットワークシステム。
【請求項２４】
いずれかのリンクまたは中継装置が故障した際に、各中継装置に、該中継装置に対応し
た代替の経路表と抑止対象経路情報を送信する制御サーバをさらに備え、
各前記中継装置の前記経路制御部は、前記制御サーバから送信してきた代替の経路表で
前記現経路表格納部に格納された経路表を更新すると共に、前記制御サーバから送信して
きた前記抑止対象経路情報を前記抑止対象テーブルに登録することを特徴とする請求項１
５に記載のネットワークシステム。
【請求項２５】
前記抑止制御部は、前記現経路表格納部に格納された経路表の更新完了後に、経路更新
完了通知を前記制御サーバに送信することを特徴とする請求項２４に記載のネットワーク
システム。
【請求項２６】
前記制御サーバは、いずれかの中継装置から経路更新完了通知を受信した際に、該中継
装置の隣接中継装置に前記中継装置の経路更新完了通知を送信することを特徴とする請求
項２５に記載のネットワークシステム。
【請求項２７】
前記制御サーバは、前記隣接中継装置が抑止を解除すべき経路として、該隣接中継装置
に対応する代替抑止対象表における、前記中継装置を次転送先とする経路を示す情報を含
む経路更新完了通知を前記隣接中継装置に送信することを特徴とする請求項２６に記載の
ネットワークシステム。
【請求項２８】
前記抑止制御部は、隣接中継装置における経路更新が完了したことを示す経路更新完了
通知を受信した際に、該隣接中継装置を次転送先とする各抑止対象経路を前記抑止対象テ
ーブルから削除することを特徴とする請求項１５から２７のいずれか１項に記載のネット
ワークシステム。
【請求項２９】
前記抑止制御部は、隣接中継装置を次転送先とした、抑止を解除すべき経路を含む前記
経路更新完了通知を受信した際に、該経路更新完了通知に含まれる各経路を前記抑止対象
テーブルから削除することを特徴とする請求項２８に記載のネットワークシステム。
【請求項３０】
前記抑止制御部は、夫々の隣接中継装置が経路更新にかかる時間の推定値を保持してお
り、前記現経路表格納部に格納された経路表の更新開始からの時間が前記推定値に達した
際に、前記推定値に対応する隣接中継装置を次転送先とする経路を前記抑止対象テーブル
から削除することを特徴とする請求項１５から１８のいずれか１項に記載のネットワーク
システム。
【請求項３１】
宛先と、いずれかの隣接中継装置である次転送先とを対応付けた経路表と、抑止対象テ
ーブルとを備え、前記経路表に基づいてパケットの転送経路を決定し、決定された前記転
送経路が前記抑止対象テーブルに登録されていないことを条件に前記パケットの転送を実
行する複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステ
ムにおける各前記中継装置の経路切替方法であって、
当該中継装置が使用する経路表を更新すると共に、更新に際して、更新後の経路表にお
ける、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得して
保持し、
隣接中継装置における経路更新が完了したことを条件に、該隣接中継装置を次転送先と
する経路を前記抑止対象経路テーブルから削除することを特徴とする経路切替方法。
【請求項３２】
宛先と、いずれかの隣接中継装置である次転送先とを対応付けた経路表と、抑止対象テ
ーブルとを備え、前記経路表に基づいてパケットの転送経路を決定し、決定された前記転
送経路が前記抑止対象テーブルに登録されていないことを条件に前記パケットの転送を実
行する複数の中継装置により複数のネットワーク間の通信を中継するネットワークシステ
ムにおける各前記中継装置の経路切替に際して、
当該中継装置が使用する経路表を更新すると共に、更新に際して、更新後の経路表にお
ける、マイクロループを生じさせる可能性がある経路を示す抑止対象経路情報を取得して
保持し、
隣接中継装置における経路更新が完了したことを条件に、該隣接中継装置を次転送先と
する経路を前記抑止対象経路テーブルから削除することをコンピュータに実行せしめるプ
ログラム。
【国際調査報告】
2009130941.tif 000031
2009130941.tif 000032
2009130941.tif 000033
2009130941.tif 000034