以下に添付図面を参照して、この発明にかかるネットワークノード装置およびその経路情報更新方法の好適な実施の形態を詳細に説明する。
実施の形態1.
図1は、この発明にかかるネットワークノード装置が配置されるリング状のレイヤ2ネットワークを用いたネットワーク構成の一例を模式的に示す図であり、図2は、この発明にかかるネットワークノード装置の実施の形態1の機能構成を示すブロック図であり、図3は、図1のネットワーク構成をレイヤ3のレベルでみた場合のネットワークの論理構成図である。
この実施の形態1では、レイヤ2(第2層)ネットワーク110は、双方向二重リング構成を有している。つまり、各ネットワークノード装置(以下、ノード装置ともいう)100〜104は、二重化された通信回線111,112で互いにリング状に接続された構成を有している。2本の通信回線のうち1本の通信回線111は時計回り(右回り)にデータを送信するもので、0系または0系リングというものとし、もう1本の通信回線112は反時計回り(左回り)にデータを送信するもので1系または1系リングというものとする。また、このレイヤ2ネットワークを構成するノード装置100〜104は、それぞれ同一のレイヤ2制御方式とレイヤ3(第3層)制御方式を備え、データの送受信を行う機能を有している。
図1に示されるネットワーク構成では、レイヤ2制御方式とレイヤ3制御方式を備えるノード装置100〜104によって形成される双方向二重リング構成のレイヤ2ネットワーク110と、このレイヤ2ネットワーク110のノード装置100に接続される情報処理端末装置(以下、単に端末という)Aと、ノード装置102,103と接続され、ノード装置100〜104と同一のレイヤ3制御方式のみを備えるレイヤ3ノード装置105と、このレイヤ3ノード装置105に接続される端末Bと、を備えて構成される。なお、この実施の形態1では、レイヤ2制御方式としてRPRを用いるものとし、レイヤ3ノード装置105またはレイヤ3制御方式を備えるネットワークノード装置100〜104とネットワーク間の接続情報に基づいて経路制御を行う方式としてOSPFを用いるものとする。
この図1に示されるネットワーク構成は、レイヤ3レベルで観察すると図3に示されるようになる。つまり、双方向二重リング構成を有するレイヤ2リングネットワークは、ノード装置を相互に接続するネットワーク(マルチアクセスネットワーク)N4となる。また、端末Aは、ネットワークN4のノード装置100に設定されるネットワークN5に収容され、端末Bは、レイヤ3ノード装置105に設定されるネットワークN1に収容される。さらに、レイヤ3ノード装置105とネットワークN4のノード装置102との間と、レイヤ3ノード装置105とネットワークN4のノード装置103との間とは、それぞれネットワークN2,N3によって接続されている。
なお、以下では、適宜図1と図3を用いて具体的な例を挙げて説明するが、そのときに必要な各ノードに設定されるアドレスや識別情報などを図4に示す。この図4には、各ノード装置(ネットワークノード装置100〜104とレイヤ3ノード装置105)の物理アドレス、各ノード装置(ネットワークノード装置100〜104)のIP(Internet Protocol)アドレスおよび各ノード装置(ネットワークノード装置100〜104とレイヤ3ノード装置105)を識別するためのルータID(Identification)を示している。
レイヤ2ネットワーク110に配置されるネットワークノード装置100〜104は、二重化された通信回線111,112の制御を行う第一リンク制御部11、第二リンク制御部12と、レイヤ2でのデータ処理の制御を行うレイヤ2制御部13と、レイヤ2ネットワークのトポロジマップを格納するトポロジマップ格納部14と、レイヤ2ネットワークのARP(Address Resolution Protocol)テーブルを生成するARPテーブル生成部15と、ARPテーブルを格納するARPテーブル格納部16と、レイヤ3ルーティングプロトコルにしたがってパケットの中継に必要な処理を行うレイヤ3ルーティングプロトコル処理部17と、レイヤ3レベルで隣接するネットワークノード装置についての情報を格納するネイバ登録テーブル格納部18と、ルーティングテーブルを格納するルーティングテーブル格納部19と、レイヤ2ネットワーク110におけるトポロジ情報の変化を検出するトポロジ変化検出部20と、トポロジ情報に基づいてノード装置100〜104間の接続情報を更新する接続情報更新部21と、を備えて構成される。
第一リンク制御部11は、0系リングからの入力と1系リングへの出力となるインタフェースである第一リンクを制御する機能を有する。また、第二リンク制御部12は、1系リングからの入力と0系リングへの出力となるインタフェースである第二リンクを制御する機能を有する。たとえば、第二リンク側に隣接して接続されるノード装置またはこのノード装置との間の通信回線に障害が発生した場合に、第一リンク制御部11は、リンク障害発生をレイヤ2制御部13に通知する。
レイヤ2制御部13は、レイヤ2ネットワーク110を構成する他のノード装置との間でトポロジ情報を交換し、トポロジマップを生成するとともに、生成したトポロジマップを管理する機能を有する。具体的には、レイヤ2制御部13は、自ノード装置のレイヤ2で使用される物理アドレスである物理アドレス情報と、自リングノード装置と隣接ノード装置との間の接続が正常か否かのリンク状態を示すリンク状態情報とを含むトポロジ情報113,114を、定期的に0系リング111と1系リング112にそれぞれ送信し、他のノード装置から受信したトポロジ情報113,114に基づいて、リング111,112上のノード装置の並び順を把握して、トポロジマップを生成する。また、レイヤ2制御部13は、隣接ノード装置との間のリンク状態を監視して、リング111,112上のいずれかの物理リンクで障害が発生してリンク状態に変化が生じた場合には、そのリンク状態を反映したトポロジ情報113,114を即座に送信する機能も有する。
トポロジマップ格納部14は、レイヤ2制御部13によって生成されたトポロジマップを格納する。図5は、トポロジマップの構成の一例を示す図である。この図5に示されるトポロジマップ14aは、ノード装置100によって生成されたものであり、レイヤ2ネットワーク110全体のリンク状態が正常である場合を示している。トポロジマップ14aは、「物理アドレス」、「0系TTL(Time To Live)」、「1系TTL」、「第一リンク状態」、「第二リンク状態」の項目を含んで構成される。「物理アドレス」は、リング状のレイヤ2ネットワーク110を構成するノード装置の物理アドレスを示す。「0系TTL」は、0系リングすなわち時計回りのリング(通信回線)111を経由した場合の宛先までのホップ数を示し、「1系TTL」は、1系リングすなわち反時計回りのリング(通信回線)112を経由した場合の宛先までのホップ数を示している。また「第一リンク状態」は、第一リンク(すなわち、0系リングの入力側および1系リングの出力側)のリンク状態を表し、「第二リンク状態」は、第二リンク(すなわち、1系リングの入力側および0系リングの出力側)のリンク状態を表している。
たとえば、トポロジマップ14aのエントリ502には、ノード装置101についてのトポロジ情報が格納されており、ノード装置100からのホップ数は、0系リング111の場合には「1」であり、1系リング112の場合には「4」であることが示されている。また、第一リンクと第二リンクのリンク状態はともに正常であることが示されている。他のエントリ501,503〜505に格納されるトポロジ情報も同様に解釈することができる。なお、0系TTLと1系TTLの値が「0」であるエントリは、自ノード装置を示すエントリである。このトポロジマップ14aから、物理アドレス「MAC0」のノード装置100から時計回りに「MAC1」,「MAC2」,「MAC3」,「MAC4」の各ノード装置101〜104が並んでおり、「MAC4」のノード装置104のつぎに「MAC0」のノード装置100が接続してリングを形成していることが把握される。
ARPテーブル生成部15は、IPアドレスに対応するノード装置の物理アドレスを自ノード装置の属するネットワーク内(レイヤ2ネットワーク110内)から取得する処理を行い、その結果をARPテーブル格納部16内のARPテーブルに格納する機能を有する。たとえば、取得したIPアドレスに対応するノード装置にデータを送信したい場合に、ARPテーブルを上記IPアドレスに基づいて検索したが対応する物理アドレスが見つからない場合に、上記IPアドレスを設定したARPリクエストパケットをレイヤ2ネットワーク110内に送信する。そして目的とするノード装置からのARPレスポンスパケットを受信して、そのIPアドレスと物理アドレスとの組をARPテーブルに格納する。
ARPテーブル格納部16は、各ノード装置100〜104のインタフェースにおけるレイヤ3ネットワークで使用されるIPアドレス(論理アドレス)と、レイヤ2ネットワークで使用される物理アドレスとの対応付けを示すARPテーブルを格納する。このARPテーブルは、自ノード装置と同一のサブネット内にある装置のIPアドレスと物理アドレスの対応を示している。図6は、ARPテーブルの一例を示す図である。この図6では、ノード装置100によって生成されたARPテーブル16aが示されている。ARPテーブル16aは、同一サブネットであるレイヤ2ネットワーク110内のノード装置100〜104のIPアドレスを格納する項目「IPアドレス」と、このIPアドレスに対応する物理アドレスを格納する項目「物理アドレス」とを含んで構成される。このARPテーブル16aは、パケットを中継する際に参照され、宛先装置またはネクストホップへパケットを送信する際に使用する物理アドレスを取得するために使用される。
レイヤ3ルーティングプロトコル処理部17は、レイヤ3レベルの隣接するノード装置の情報を管理してネイバ登録テーブルを生成するとともに、レイヤ3レベルの隣接するノード装置によって送信されるネットワーク接続情報に基づいてデータ(パケット)の転送経路を決定するためのルーティングテーブルを生成する機能を有する。また、レイヤ3ルーティングプロトコル処理部17は、後述する接続情報更新部21によってネイバ登録テーブルの内容が更新されると、ネットワーク接続情報に基づいてルーティングテーブルを再生成する機能を有する。さらに、受信したパケットをその宛先IPアドレスから、ルーティングテーブルに基づいて中継する機能も有する。
ここで、レイヤ3ルーティングプロトコル処理部17によるネイバ登録テーブルの生成処理と、ネイバ登録テーブルの内容の更新を検出するための精査処理について説明する。この実施の形態1で使用されるOSPFでは、ネイバ登録テーブルの生成にOSPF Helloパケットが使用され、レイヤ3ルーティングプロトコル処理部17は、定期的にOSPF Helloパケットを送信している。図7は、OSPF Helloパケットの内容を模式的に示す図である。OSPF Helloパケット200は、OSPFデータ部205と、IPヘッダ部201とからなる。OSPFデータ部205は、Helloパケット200を構成するHello情報部210と、このHello情報部210に付加されるOSPFヘッダ部206とからなる。OSPFヘッダ部206は、OSPFのバージョン情報などからなる領域207と、レイヤ3ルーティングプロトコルを実行するノード装置(ルータ)を示すルータID(図中では、RouterIDと表記)208と、OSPFパケットチェックサムなどを含む領域209とを含んで構成される。また、IPヘッダ部201には、IPのバージョン情報などからなる領域202と、送信元IPアドレス203と、宛先IPアドレス204とを含んで構成される。
図8−1は、レイヤ3ルーティングプロトコル処理部によるネイバ登録テーブルの生成処理の手順を示すフローチャートである。レイヤ3ルーティングプロトコル処理部17は、レイヤ3レベルの隣接ノード装置から定期的に送信されるOSPF Helloパケット200を受信し(ステップS11)、隣接ノード装置の存在を認識する。受信したOSPF Helloパケット200にはこのパケットを送信したノード装置の送信元IPアドレス203と、そのルータID208が格納されているので、その結果をネイバ登録テーブル格納部18内のネイバ登録テーブルに格納する(ステップS12)。そして、OSPF Helloパケット200の最終受信時間を更新して(ステップS13)、ネイバ登録テーブルの生成処理が終了する。
図8−2は、レイヤ3ルーティングプロトコル処理部によるネイバ登録テーブルの精査処理の手順を示すフローチャートである。レイヤ3ルーティングプロトコル処理部17は、ネイバ登録テーブル内の先頭エントリからその変更を検出するために順にループする(ステップS21)。最初のエントリについて、OSPF Helloパケット200の最終受信時間からRouterDeadIntervalで設定される所定時間以上経過したか否かを判定する(ステップS22)。このRouterDeadIntervalは、ネットワークが一時的に輻輳し、OSPF Helloパケット200が廃棄されてしまった場合でも、OSPFを安定して動作させるために、OSFP Helloパケット200の送信間隔であるHelloIntervalの3〜4倍の値に設定される。OSPF Helloパケット200の最終受信時間から所定時間が経過した場合(ステップS22でYesの場合)には、該エントリをネイバ登録テーブルから削除する(ステップS23)。その後、またはOSPF Helloパケット200の最終受信時間から所定時間が経過していない場合(ステップS22でNoの場合)には、検査したエントリがネイバ登録テーブル中の最終エントリか否かを判定する(ステップS24)。該エントリが最終エントリでない場合(ステップS24でNoの場合)には、ネイバ登録テーブル中のつぎのエントリに進み(ステップS25)、このエントリについてステップS22からの処理が繰り返し実行される。また、検査したエントリが最終エントリである場合(ステップS24でYesの場合)には、ネイバ登録テーブルの精査処理が終了する。
また、レイヤ3ルーティングプロトコル処理部17によるルーティングテーブルの生成処理は、従来公知のOSPFを用いた場合のルーティングテーブルの生成処理と同様であり、ノード装置間でネットワーク接続情報を交換し、このネットワーク接続情報に基づいてネットワーク全体への経路を生成してルーティングテーブル格納部19内のルーティングテーブルに格納する。ただし、この実施の形態1では、レイヤ3ルーティングプロトコル処理部17は、トポロジマップ14aの内容の変化が検出された場合にも、ルーティングテーブルの生成処理を行うことを特徴とする。
ネイバ登録テーブル格納部18は、レイヤ3ルーティングプロトコル処理部17によって生成されたネイバ登録テーブルを格納する機能を有する。図9は、ネイバ登録テーブル格納部に格納されるネイバ登録テーブルの内容の一例を示す図である。この図9のネイバ登録テーブル18aは、ノード装置100によって生成されたものを示している。ネイバ登録テーブル18aは、上述したように、隣接ノード装置の送信元IPアドレスを示す「IPアドレス」と、該隣接ノード装置に付与されている識別情報を示す「ルータID」の項目を含んで構成される。たとえば、エントリ601は、IPアドレスが「10.0.0.101」であり、ルータIDが「127.0.0.101」であるノード装置101がレイヤ3レベルの隣接ノード装置であることを示している。他のエントリ602〜604についても同様である。
ルーティングテーブル格納部19は、レイヤ3ルーティングプロトコル処理部17によって生成されたルーティングテーブルを格納する機能を有する。図10は、ルーティングテーブル格納部に格納されるルーティングテーブルのデータ構成の一例を示す図である。この図10では、ノード装置100によって生成されたルーティングテーブル19aが示されている。ルーティングテーブル19aは、中継するデータの宛先となるネットワークを示す「宛先アドレス」と、そのサブネットマスクを示す「宛先マスク」と、「宛先アドレス」と「宛先マスク」の組で指定されたネットワークにルーティングするためにつぎに送信するノード装置のIPアドレスを示す「ネクストホップ」と、使用されるレイヤ3ルーティングプロトコルの種類である「タイプ」の項目を含んで構成される。たとえば、この図10のエントリ701では、ノード装置100でOSPFにより学習したネットワークN1(図中では、「NetworkN1」、「MaskN1」と表記)への経路のネクストホップは、「10.0.0.103」すなわちノード装置103のIPアドレスであることが示されている。他のエントリ702〜705も同様である。
トポロジ変化検出部20は、トポロジマップ格納部14に格納されるトポロジマップ14aの変化から、それまで存在したノード装置の消失を検出して、接続情報更新部21にトポロジ情報の変化を示すトポロジ情報変化検出通知を通知する機能を有する。トポロジ情報変化検出通知には、消失したノード装置の物理アドレス情報が含まれている。
接続情報更新部21は、トポロジ変化検出部20からトポロジ情報変化検出通知を受け取ると、この通知に含まれる物理アドレス情報に対応するIPアドレスをARPテーブル16aから取得し、このIPアドレスに対応するノード装置の情報をネイバ登録テーブル18aから削除する機能を有する。
このように、この実施の形態1では、トポロジ変化検出部20と接続情報更新部21を備えることによって、レイヤ2ネットワーク110に生じたトポロジ情報の変化を速やかにレイヤ3ネットワークのパケット転送に使用されるネイバ登録テーブル18aに反映させている。そして、このネイバ登録テーブル18aの更新を契機として、レイヤ3ルーティングプロトコル処理部17はルーティングテーブル19aを再生成する処理を行うので、レイヤ3レベルでの中継先の変更が速やかに行われる。
ここで、上述した構成のレイヤ2ネットワーク110内のノード装置100〜104のパケットの中継処理と、レイヤ2ネットワーク内110のノード装置に異常が発生した場合のノード装置100〜104における経路情報更新処理について説明する。
図11は、レイヤ2ネットワークが正常な場合のノード装置によるパケット中継の動作処理の手順を示すフローチャートである。まず、レイヤ2ネットワーク110内のノード装置100〜104のレイヤ3ルーティングプロトコル処理部17は、IPパケットを受信すると(ステップS31)、このIPパケットの宛先IPアドレスを用いてルーティングテーブル19aを検索する。つまり、IPパケットの宛先IPアドレスに対応する「宛先アドレス」と「宛先マスク」とを、ルーティングテーブル19aを用いて検索し(ステップS32)、ネクストホップのノード装置のIPアドレスを取得する(ステップS33)。
ついで、レイヤ3ルーティングプロトコル処理部17は、取得したネクストホップのノード装置のIPアドレスに対応する物理アドレスがARPテーブル16aにあるか否かを検索する(ステップS34)。取得したIPアドレスに対応するエントリがARPテーブル16aにない場合(ステップS34でNoの場合)には、ARPテーブル生成部15は、ネクストホップのノード装置のIPアドレスをターゲットとするARPリクエストパケットをネットワークN4(レイヤ2ネットワーク110)内に送信する(ステップS35)。このARPリクエストを受信し対応する物理アドレスを有するノード装置によって、応答としてのARPレスポンスパケットが送信される。ノード装置100〜104のARPテーブル生成部15は、このARPレスポンスパケットを受信すると(ステップS36)、ARPレスポンスパケットに含まれる送信元装置の物理アドレスを取得し(ステップS37)、送信元プロトコルアドレスであるネクストホップのノード装置のIPアドレスと対応付けてARPテーブル16aに格納する(ステップS38)。
その後、またはステップS34で取得したIPアドレスに対応するエントリがARPテーブル16aに存在する場合(ステップS34でYesの場合)には、レイヤ3ルーティングプロトコル処理部17は、ARPテーブル16aからステップS33で取得したノード装置のIPアドレスに対応する物理アドレスを取得し(ステップS39)、中継IPパケットを送信する処理を行う。ついで、レイヤ2制御部13は、受信した中継IPパケットをEthernet(登録商標)フレームに格納し(ステップS40)、その宛先物理アドレスをステップS39で取得した、ネクストホップとなるノード装置の物理アドレスに設定し(ステップS41)、トポロジマップ14aを参照してフレームを送信するリングを決定し、ネットワークN4内に送信する(ステップS42)。以上により、ノード装置100〜104によるパケット中継の動作処理が終了する。
このように、レイヤ2ネットワーク110が正常な場合には、レイヤ3のIPアドレスで指定された宛先にパケットを中継するために、レイヤ2の物理アドレスとの対応関係をARPテーブル16aにより解決し、物理アドレスを指定して物理ネットワーク(レイヤ2ネットワーク110)上にデータ(パケット)が送信される。
つぎに、レイヤ2ネットワーク110に異常が発生した場合のノード装置による経路情報更新処理について説明する。図12は、レイヤ2ネットワークにおける障害が発生したノード装置にレイヤ2レベルで隣接するノード装置の動作処理の手順を示すフローチャートである。障害が発生したノード装置にレイヤ2レベルで隣接するノード装置のレイヤ2制御部13は、障害が発生したノード装置と接続する側のリンクのリンク断を検出し(ステップS61)、リンク状態情報にそのリンクがリンク断であることを示したトポロジ情報パケットを逆側のリンクの出力側リングから送信する(ステップS62)。たとえば、第二リンク側のノード装置で障害が発生した場合には、レイヤ2制御部13は第二リンクがリンク断であることを表示したリンク状態情報を含むトポロジ情報パケットを第一リンク側の1系リング112に送信する。同様に、第一リンク側のノード装置で障害が発生した場合には、レイヤ2制御部13は第一リンクがリンク断であることを表示したリンク状態情報を含むトポロジ情報パケットを第二リンク側の0系リング111に送信する。これらのトポロジ情報パケットは、リング111,112にそって中継され、リングネットワークを構成するレイヤ2ネットワーク110上の全ノード装置100〜104に到達する。これにより、障害が発生したノード装置に隣接するノード装置の処理が終了する。
図13は、障害発生時におけるレイヤ2ネットワークにおけるノード装置の経路情報更新処理の動作手順を示すフローチャートである。まず、ノード装置100〜104のレイヤ2制御部13は、障害が発生したノード装置に隣接するノード装置から送信されたトポロジ情報パケットを受信すると(ステップS81)、トポロジマップの更新を実施し、その結果、障害を起こしたノード装置がトポロジマップ14aから除去される(ステップS82)。ついで、トポロジ変化検出部20は、上述のトポロジマップ14aの更新によって消失したノード装置を検出し(ステップS83)、消失したノード装置の物理アドレス情報を含むトポロジ情報変化検出通知を接続情報更新部21に通知する(ステップS84)。
接続情報更新部21は、トポロジ情報変化検出通知を受けると、この通知に含まれる物理アドレス情報に対応するノード装置のIPアドレスをARPテーブル16aから検索し、上記物理アドレス情報に対応するノード装置のIPアドレスを取得する(ステップS85)。ついで、接続情報更新部21は、取得したIPアドレスをネイバ登録テーブル18aから検索し、そのIPアドレスを有するノード装置に対応するエントリをネイバ登録テーブル18aから削除する(ステップS86)。その後、レイヤ3ルーティングプロトコル処理部17は、ネイバ登録テーブル18aからノード装置の情報が削除されたことを検出し(ステップS87)、経路の再計算を行ってルーティングテーブル19aを生成し(ステップS88)、その結果をルーティングテーブル格納部19に格納して、障害が発生した場合のノード装置の経路情報更新処理が終了する。
つぎに、上記で説明した正常時と障害発生時におけるノード装置の具体的な動作処理について、図1(図3)に示されるネットワーク構成おいて端末Aから端末Bへ送信されるパケットのノード装置100における中継処理を例に挙げて説明する。
最初に、レイヤ2ネットワーク110(ネットワークN4)のノード装置100〜104に障害が発生していない正常時の場合におけるノード装置100の端末Aから端末Bへのパケットの中継処理について説明する。まず、ノード装置100のレイヤ3ルーティングプロトコル処理部17は、端末AからIPパケットを受信すると、そのパケットの宛先IPアドレスに対応する宛先アドレス「NetworkN1」と宛先マスク「MaskN1」を有するエントリを図10のルーティングテーブル19aから検索する。その結果、エントリ701からネクストホップのノード装置のIPアドレスとして「10.0.0.103」を取得する。このIPアドレス「10.0.0.103」はノード装置103を示している。
ついで、レイヤ3ルーティングプロトコル処理部17は、取得したノード装置103のIPアドレス「10.0.0.103」に対応する物理アドレスを図6のARPテーブル16aから検索し、その物理アドレスとして「MAC3」を取得する。その後、レイヤ2制御部13は、端末Aからの中継IPパケットをEthernet(登録商標)フレームに格納し、その宛先物理アドレスをノード装置103の物理アドレス「MAC3」に設定し、レイヤ2ネットワーク110であるネットワークN4内に送信する。このフレーム送信時に、レイヤ2制御部13では、図5のトポロジマップ14aのエントリ504を参照し、宛先ノード装置103の物理アドレス「MAC3」からホップ数の少ない1系を選択して、図1でノード装置100→ノード装置104→ノード装置103の順にEthernet(登録商標)フレームを送信する。以上により、ノード装置100の正常時におけるパケット中継の動作処理が終了する。
このように、レイヤ3のIPアドレスで指定された宛先にパケットを中継するために、IPアドレスとレイヤ2の物理アドレスとの対応関係をARPテーブル16aにより解決し、その物理アドレスからデータを送信するのに最適なリンクを決定して物理ネットワーク(リングネットワーク)上にデータが送信される。
つぎに、レイヤ2ネットワーク110のノード装置103に障害が発生した場合におけるノード装置100の端末Aから端末Bへのパケットの中継処理について説明する。図14は、図1においてレイヤ2ネットワークに異常が発生した場合のネットワーク構成の一例を示す図である。図1の状態からこの図14に示されるようにノード装置103に障害が発生して停止した場合、ノード装置100からネットワークN1へパケットを中継する場合のネクストホップであるノード装置103がパケット中継に使用できなくなる。そのため、端末Aから端末Bへの通信は停止する状態となる。このとき、障害が発生したノード装置103に隣接するノード装置102のレイヤ2制御部13は、ノード装置103と接続する第二リンクのリンク断を検出し、第二リンクがリンク断であることを表示したリンク状態情報を含むトポロジ情報パケット116を1系リング112に送信する。同様に、障害が発生したノード装置103に隣接するノード装置104のレイヤ2制御部13も、ノード装置103と接続する第一リンクのリンク断を検出し、第一リンクがリンク断であることを表示したリンク状態情報を含むトポロジ情報パケット115を0系リング111に送信する。これらのトポロジ情報パケット115,116は、リング111,112に沿って中継され、リングネットワーク上の全ノード装置100〜104に到達する。
ノード装置100のレイヤ2制御部13は、トポロジ情報パケット115,116を受信すると、トポロジ情報パケットの内容にしたがってトポロジマップを更新し、その結果、トポロジマップ14aから障害を起こしたノード装置103についてのエントリ504が除去される。図15は、レイヤ2ネットワークの異常発生後に生成されたトポロジマップの一例を示す図であり、図5と同様に装置100の生成するトポロジマップ14bを示している。このトポロジマップ14bのエントリ513は、物理アドレスが「MAC2」であるノード装置102の第二リンク側がリンク断となっていることを表しており、エントリ514は、物理アドレスが「MAC4」であるノード装置104の第一リンク側がリンク断となっていることを表している。また、「0系TTL」の項目では、「MAC0」のノード装置100から0系リング111では「MAC4」のノード装置104へは接続できないことを示している。同様に、「1系TTL」の項目では、「MAC0」のノード装置100から1系リング112では「MAC1」のノード装置101と「MAC2」のノード装置102へは接続できないことを示している。さらに、図5のトポロジマップ14aと比較して明らかなように、ノード装置103を示す「MAC3」のエントリ504が削除されており、ノード装置103を経由した方向のリンク状態も変更されている。
ついで、ノード装置100のトポロジ変化検出部20は、図5から図15に示されるトポロジマップ14a,14bの変化から消失したノード装置103を検出して、この消失したノード装置103の物理アドレス情報「MAC3」を含むトポロジ情報変化検出通知を接続情報更新部21に通知する。接続情報更新部21は、トポロジ情報変化検出通知に含まれる物理アドレス情報「MAC3」に対応するノード装置103のIPアドレスを図6のARPテーブル16aから検索して、ノード装置103のIPアドレス「10.0.0.103」を取得する。さらに、接続情報更新部21は、取得したノード装置103のIPアドレスから図9のネイバ登録テーブル18aを検索し、そのIPアドレスすなわちノード装置103に対応するエントリ603をネイバ登録テーブル18aから削除する。図16は、ノード装置103に関するエントリが削除されたネイバ登録テーブルの一例を示す図である。
レイヤ3ルーティングプロトコル処理部17は、図9から図16に示されるネイバ登録テーブル18a,18bの変化からノード装置103のエントリ603が削除されたことを検出すると、経路の再計算を行ってルーティングテーブルを再生成し、その結果をルーティングテーブル格納部19に格納する。図17は、再計算されたルーティングテーブルの一例を示す図である。このルーティングテーブル19bでは、端末Bが収容される宛先アドレス「ネットワークN1」(図中、「NetworkN1」、「MaskN1」で表記される組)へのネクストホップが、エントリ711に示されるように、障害発生前のノード装置103のIPアドレス「10.0.0.103」(図10のエントリ701参照)からノード装置102のIPアドレス「10.0.0.102」に変更されている。
ネクストホップが変更された後は、端末Aから端末Bに送信されたIPパケットを、ノード装置100がルーティングテーブル19bにしたがって新たなネクストホップであるノード装置102へ中継するため、ノード装置103の障害の発生によって中断された端末Aから端末Bへの通信は再開される。このとき、ノード装置100のレイヤ2制御部13は、図15のトポロジマップ14aを参照して、ノード装置の物理アドレス「MAC2」へのデータの送信は0系を採用するので、データは図14でノード装置100→ノード装置101→ノード装置102の順に0系リング111を使用して送信されることになる。
なお、上述した説明において、ARPテーブル生成部15は、レイヤ2ネットワーク110上の隣接する各ノード装置に対し、隣接ノード装置を認識した時点でARPリクエストを送信するほか、定期的にARPリクエストを送信するようにしてもよい。これにより、レイヤ2ネットワーク110上の隣接ノード装置のARPテーブル16aのエントリは常に存在するようになるので、トポロジ情報変化検出通知が発行された際にARP手順を実行する必要がなく、対応する隣接ノード装置の情報(IPアドレス)を必ず取得可能となり、経路変更を即座にかつ確実に行なうことが可能となる。
この実施の形態1によれば、トポロジマップの変更を即座にネイバ登録テーブルに反映させるようにしたので、レイヤ2ネットワーク110を構成するノード装置が故障してから新たな経路情報を確立して中継が再開されるまでの時間は、レイヤ3ルーティングプロトコル処理部17がネイバ登録テーブルのエントリのタイムアウトすなわちRouterDeadIntervalで設定される時間経過による経路切り替えを実施するまでの時間に比べて、格段に短くすることができるという効果を有する。
実施の形態2.
実施の形態1では、レイヤ3ルーティングプロトコルとしてOSPFを用いた場合を説明したが、この実施の形態2ではレイヤ3ルーティングプロトコルとして、レイヤ3ノードの経路情報を交換することによって経路制御を行うRIPを用いる場合を説明する。
図18は、この発明にかかるネットワークノード装置の実施の形態2の機能構成を示すブロック図である。このネットワークノード装置100〜104は、実施の形態1の図1や図3におけるレイヤ2ネットワーク110(ネットワークN4)で使用されるノード装置であり、2重化された通信回線111,112の制御を行う第一リンク制御部11、第二リンク制御部12と、レイヤ2でのデータ処理の制御を行うレイヤ2制御部13と、トポロジマップを格納するトポロジマップ格納部14と、レイヤ2ネットワーク110のARPテーブルを生成するARPテーブル生成部15と、ARPテーブルを格納するARPテーブル格納部16と、RIPに基づいてルーティングテーブルを生成してパケットの中継処理を行うレイヤ3ルーティングプロトコル処理部17と、ルーティングテーブルを格納するルーティングテーブル格納部22と、レイヤ2ネットワークにおけるトポロジ情報の変化を検出するトポロジ変化検出部20と、トポロジマップの変更によってネットワークノード装置間の経路情報を更新する経路情報更新部23と、を備えて構成される。なお、実施の形態1と同一の機能を有する構成要素には同一の名称と同一の符号を付してその説明を省略し、以下では、実施の形態1と異なる処理部についてのみ説明する。
ルーティングテーブル格納部22は、レイヤ3ルーティングテーブルプロトコル処理部によって生成されるルーティングテーブルを格納する機能を有するが、この実施の形態2では、RIPに基づいて生成されるルーティングテーブルが格納される。図19は、ルーティングテーブルの一例を示す図である。この図19では、ノード装置100によって生成されたルーティングテーブル22aが示されている。実施の形態1の図10に示されるルーティングテーブル19aに示される項目に加えて、「宛先アドレス」と「宛先マスク」との組で指定されたネットワークへのホップ数である「メトリック」の項目を含んで構成される。たとえば、エントリ721は、宛先アドレス「NetworkN1」と宛先マスク「MaskN1」の組で表される宛先のネクストホップは「10.0.0.103」で、該エントリのネットワーク経路を学習したレイヤ3ルーティングプロトコルのタイプは「RIP」であり、ネクストホップまでのメトリックは「3」であることが示されている。他のエントリ722〜725についても同様である。
レイヤ3ルーティングプロトコル処理部17は、RIPに基づいてレイヤ3レベルの隣接するネットワークノード装置との間でやり取りされる経路情報に基づいてルーティングテーブルを作成するとともに、受信したパケットの中継処理を行う機能を有する。ルーティングテーブルの作成機能は、具体的には、自ノード装置のルーティングテーブルの各エントリの内容である経路エントリを格納したRIP Responseメッセージを定期的(30秒ごと)に送信し、また、他のノード装置から受信したRIP Responseパケットに格納される経路エントリの宛先情報を自ノード装置の有するルーティングテーブルと比較して、ルーティングテーブルの内容を追加または更新する処理を行う。また、後述する経路情報更新部23によって無効化された経路を、他のノード装置から受信したRIP Responseパケットから宛先ネットワークへのネクストホップとして該メッセージを送信したノード装置のIPアドレスを学習し、またこのパケットに含まれる経路エントリの情報を用いてルーティングテーブルの該当するエントリを更新して、経路を有効化する処理も行う。
図20は、RIPで使用されるRIP Responseパケットの構造の一例を示す図である。RIP Responseパケット300は、ヘッダ部301と経路エントリ部310,320とからなる。ヘッダ部301には、IPヘッダ302、UDPヘッダ303、commandフィールドを格納する領域304やVersionなどのフィールドを格納する領域305などのRIPヘッダを含む。また、経路エントリ部310,320は、アドレスファミリフィールド311,321、宛先ネットワークのIPアドレスを示すIPアドレスフィールド312,322、宛先ネットワークのサブネットマスクを示すサブネットマスクフィールド313,323、宛先ネットワークへのネクストホップを示すネクストホップ(NestHop)フィールド314,324、宛先ネットワークまでのメトリックを示すメトリック(Metric)フィールド315,325を含んで構成される。この経路エントリ部310,320は、ルーティングテーブルのエントリの内容が格納されるものであり、最大25個の経路エントリが格納される。ここでは、2つの経路エントリ310,320が含まれる場合を例示している。
図21は、レイヤ3ルーティングプロトコル処理部によるルーティングテーブルの生成処理の手順を示すフローチャートである。レイヤ3ルーティングプロトコル処理部17は、レイヤ3レベルの隣接ノードから定期的に送信されるRIP Responseパケットを受信すると(ステップS101)、そのパケット中の経路エントリが自ノード装置のルーティングテーブルに含まれていないかを判定する(ステップS102)。その経路エントリが自ノード装置のルーティングテーブルに含まれていない場合(ステップS102でYesの場合)には、ルーティングテーブルに該当するエントリを追加し(ステップS103)、追加したエントリについて経路情報エントリタイマを起動する(ステップS104)。
ステップS102でパケット中の経路エントリが自ノード装置のルーティングテーブルに含まれている場合(ステップS102でNoの場合)には、RIP Responseパケットのネクストホップアドレスが自ノード装置のルーティングテーブルの該当するエントリのネクストホップ情報と異なるか否かを判定する(ステップS105)。なお、RIP Responseパケットのネクストホップフィールド値が「0.0.0.0」の場合は、ネクストホップアドレスは送信元ノード装置のIPアドレスであり、ネクストホップフィールド値に「0.0.0.0」以外のアドレスが格納されている場合は、該アドレスがネクストホップとみなされる。RIP Responseパケットのネクストホップアドレスとネクストホップ情報とが異なる場合(ステップS105でYesの場合)には、そのパケットの経路エントリのメトリックが自ノード装置のルーティングテーブルの該当するエントリのメトリックよりも小さいか否かを判定する(ステップS106)。経路エントリのメトリックが自ノード装置のメトリックよりも小さい場合(ステップS106でYesの場合)には、自ノード装置のルーティングテーブルの該当するエントリのネクストホップ情報をRIP Responseパケットのネクストホップアドレスに変更し、経路エントリに基づいてメトリックの値も変更し(ステップS107)、このエントリについての経路情報エントリタイマを再起動する(ステップS109)。また、経路エントリのメトリックが自ノード装置のメトリック以上である場合(ステップS106でNoの場合)には、該当するエントリの更新は行われない。
また、ステップS105でネクストホップ情報が同じ場合(ステップS105でNoの場合)には、自ノード装置のルーティングテーブルの該当するエントリのメトリックを、RIP Responseパケットの該当する経路エントリのメトリックに設定し(ステップS108)、このエントリについての経路情報エントリタイマを再起動する(ステップS109)。
以上のステップS104,S106,S109の後で、RIP Responseパケット中に他の経路エントリが存在するか否かを判定し(ステップS110)、他の経路エントリが存在する場合(ステップS110でYesの場合)には、再びステップS102へと戻り、他の経路エントリについて上述した処理を繰り返し実行する。また、他の経路エントリが存在しない場合(ステップS110でNoの場合)には、ルーティングテーブルの生成処理が終了する。
なお、経路情報エントリタイマが所定の期間再起動されずに満了した場合は、その経路情報(エントリ)は無効とされる。具体的には、そのエントリのメトリックに「16」が設定されて宛先到達不能となる。ここで、一般的に経路情報エントリタイマに設定される所定の期間(満了時間)は180秒である。
また、RIPでは、無効化されていたインタフェースのリンクが有効化した場合に、レイヤ3ルーティングプロトコル処理部17が該インタフェースへRIP Requestパケットを送信してもよい。図22は、RIP Requestパケットの構造の一例を示す図である。RIP Requestパケット400は、ヘッダ部401と経路エントリ部410とからなる。ヘッダ部401には、IPヘッダ402、UDPヘッダ403、commandフィールドを格納する領域404やVersionなどを格納する領域405などのRIPヘッダを含む。また、経路エントリ部410は、アドレスファミリフィールド411、宛先ネットワークのIPアドレスを示すIPアドレスフィールド412、宛先ネットワークのサブネットマスクを示すサブネットマスクフィールド413、宛先ネットワークへのネクストホップを示すネクストホップ(NextHop)フィールド414、宛先ネットワークまでのメトリックを示すメトリック(Metric)フィールド415を含んで構成される。
RIP Requestパケット400を受信した同一ネットワーク上のノード装置は、自ノード装置の持つルーティングテーブルの内容をRIP Responseパケットで返送する。ここで、受信したRIP Requestパケット400において、そのアドレスファミリフィールド411およびメトリックフィールド414がそれぞれ「0」に設定されて全経路が指定された場合には、レイヤ3レベルの隣接ノード装置は、ルーティングテーブルの内容の全てを応答する。応答する際には、RIP Responseパケットを送信するインタフェースから学習した情報については、応答パケットに含めないかまたはメトリックを「16」とする。このように応答パケットに含めないかまたはメトリックを「16」とすることで、該RIP Responseパケットを受信した同一ネットワーク上のノード装置はその該経路情報を学習せず、経路のループを防ぐことが可能となる。この処置は、Split Horizon技術として広く知られている。定期的に送信するRIP Responseパケットの場合にもSplit Horizon技術は用いられる。また、RIP Requestパケット400において、そのアドレスファミリフィールド411が「AF_INET」すなわち「2」に設定され、かつIPアドレスフィールド412およびサブネットマスクフィールド413で特定の経路が指定された場合には、レイヤ3レベルの隣接ノード装置は、ルーティングテーブルの内容のうち、指定された経路の情報のみをRIP Responseパケットに格納し、応答する。特定の経路が指定された場合には、RIP Responseパケットを送信するインタフェースから学習した情報については、メトリックとしてルーティングテーブル上の値を設定する。この場合にはSplit Horizonは行われない。
経路情報更新部23は、トポロジ変化検出部20からトポロジ情報変化検出通知を受けると、該通知に含まれる物理アドレス情報を基にARPテーブル16aを検索して、該物理アドレス情報に対応するノード装置のIPアドレスを取得し、取得したIPアドレスをネクストホップに設定しているルーティングテーブル中のエントリのメトリックを「16」にしてその経路を無効化する機能を有する。
ARPテーブル生成部15は、レイヤ2ネットワーク上の各ノード装置に対して、RIP Responseパケットを受信してノード装置を認識した時点でARPリクエストを送信するほか、所定の時間ごとにARPリクエストを送信する機能を有する。また、他のノード装置から受信したARPレスポンスパケットを用いてARPテーブル16aを生成する機能を有する。
ここで、このような構成のネットワークノード装置による動作処理について説明する。ただし、ネットワーク構成は、実施の形態1の図1(図3)に示されるものと同一のものとする。また、ノード装置のパケットの中継処理と、レイヤ2ネットワーク110において障害が発生したノード装置にレイヤ2レベルで隣接するノード装置の動作処理の手順については、レイヤ3ルーティングプロトコルが異なるが実施の形態1で説明したOSPFの場合と同様であるので、それらの説明を省略し、レイヤ2ネットワーク110内のノード装置に異常が発生した場合の経路情報更新処理についてのみ説明する。
図23は、障害発生時のレイヤ2ネットワークにおけるノード装置の経路情報更新処理の手順を示すフローチャートである。まず、ノード装置100〜104は、障害が発生したノード装置にレイヤ2レベルで隣接するノード装置から送信されたトポロジ情報パケットを受信すると(ステップS131)、トポロジ情報パケットの内容にしたがってトポロジマップを更新し(ステップS132)、その結果、トポロジマップ14aから障害を起こしたノード装置103についてのエントリ504が除去される。ついで、トポロジ変化検出部20は、上述のトポロジマップの更新によって消失したノード装置を検出し(ステップS133)、消失したノード装置の物理アドレス情報を含むトポロジ情報変化検出通知を経路情報更新部23に通知する(ステップS134)。
経路情報更新部23は、トポロジ情報変化検出通知を受けると、ARPテーブルを検索し、上記物理アドレス情報に対応するノード装置のIPアドレスを取得する(ステップS135)。ついで、経路情報更新部23は、取得したIPアドレスをネクストホップとするエントリをルーティングテーブル22aから検索し、そのエントリのメトリックを「16」に変更して、そのエントリによって示される経路を無効化する(ステップS136)。
その後、レイヤ3ルーティングプロトコル処理部17は、レイヤ2ネットワーク上の隣接するノード装置が定期的に送信しているRIP Responseパケットを受信し(ステップS137)、そのRIP Responseパケットに含まれる経路エントリの情報から学習して、無効化した経路のネクストホップとメトリックを更新し、経路を有効化する(ステップS138)。ただし、無効化した経路のうち、行き着くことができない宛先ネットワークに対しては、無効化した状態のままとする。以上によって、障害が発生した場合のノード装置の経路情報の更新処理が終了する。
つぎに、上記で説明した障害発生時におけるノード装置の具体的なパケットの中継処理について、図1(図3)に示されるネットワーク構成において端末Aから端末Bへ送信されるパケットを中継するノード装置100における中継処理を例に挙げて説明する。ただし、ノード装置100は正常な状態(障害が発生する前)において、図19のルーティングテーブル22aと、図6のARPテーブル16aと、図5のトポロジマップ14aとを有しているものとする。
図1の状態から図14に示されるようにノード装置103に障害が発生して停止した場合、ノード装置100からネットワークN1へ中継されるパケットのネクストホップであるノード装置103はパケット中継に使用できなくなるために、端末Aから端末Bへの通信は停止する状態となる。このとき、障害が発生したノード装置103にレイヤ2レベルで隣接するノード装置102は、ノード装置103と接続する第二リンクのリンク断を検出し、第二リンクがリンク断であることを表示したトポロジ情報パケット116を1系リング112に送信する。同様に、障害が発生したノード装置103にレイヤ2レベルで隣接するノード装置104も、ノード装置103と接続する第一リンクのリンク断を検出し、第一リンクがリンク断であることを表示したトポロジ情報パケット115を0系リング111に送信する。これらのトポロジ情報パケット115,116は、リングに沿って中継され、リングネットワークであるレイヤ2ネットワーク110上の全ノード装置100〜102,104に到達する。なお、ノード装置103の障害の発生によってネットワークN3もダウンした状態にあるものとする。
ノード装置100のレイヤ2制御部13は、トポロジ情報パケット115,116を受信すると、トポロジ情報パケットの内容にしたがってトポロジマップを更新し、その結果、トポロジマップ14aから障害を起こしたノード装置103についてのエントリ504が除去される。レイヤ2ネットワークの障害発生後にノード装置100によって生成されたトポロジマップ14bは、図15に示されるものと同じである。ついで、ノード装置100のトポロジ変化検出部20は、図5のトポロジマップ14aから図15に示されるトポロジマップ14bの変化から消失したノード装置103を検出して、この消失したノード装置103の物理アドレス情報「MAC3」を含むトポロジ情報変化検出通知を経路情報更新部23に通知する。経路情報更新部23は、図6のARPテーブル16aを検索して、トポロジ情報変化検出通知に含まれる物理アドレス情報「MAC3」に対応するノード装置103のIPアドレス「10.0.0.103」を取得する。さらに、経路情報更新部23は、図19のルーティングテーブル22aを検索して、取得したIPアドレス「10.0.0.103」をネクストホップとするエントリ181,183を抽出し、そのメトリックを「16」にして経路を無効化する。図24は、障害発生時のルーティングテーブルの内容の一例を示す図である。この図24は、図19と同様にノード装置100が生成したルーティングテーブル22bである。この図24に示されるように、ノード装置103のIPアドレス「10.0.0.103」をネクストホップとしている宛先ネットワークN1,ネットワークN3に対応するエントリ721,723のメトリックが、到達不可能を示す値「16」に変更されている。
その後、ノード装置100のレイヤ3ルーティングプロトコル処理部17は、レイヤ3レベルの隣接するノード装置102が定期的に送信しているRIP Responseパケットを受信する。このRIP Responseパケットには、ノード装置102が有するルーティングテーブルの内容が経路エントリとして含まれており、その中にはネットワークN1とネットワークN2へ経路が含まれている。このパケットに含まれる経路エントリの情報から、宛先ネットワークN1へのネクストホップとして、RIP Responseパケットを送信したノード装置102のIPアドレスを学習し、ルーティングテーブル22bの該当するエントリを更新して経路を有効化する。図25は、経路を有効化した後のルーティングテーブルの内容の一例を示す図である。この図25も、図24と同様にノード装置100が生成したルーティングテーブル22cである。このルーティングテーブル22cに示されるように、宛先アドレスが「ネットワークN1(「NetworkN1」と「MaskN1」の組」に対応するエントリ721のネクストホップは、ノード装置102のIPアドレスである「10.0.0.102」に変更されるとともに、メトリックも「16」から「3」に変更されている。なお、宛先アドレスが「ネットワークN3」のエントリについては、Split Horizonによって、パケット中にその経路エントリが含まれないので、無効化されたままの状態となっている。
図25のようにネクストホップが変更されてルーティングテーブル22cが更新された後は、端末Aから端末Bに送信されたIPパケットは、ノード装置100がルーティングテーブル22cにしたがって新たなネクストホップであるノード装置102へ中継されることになるので、ノード装置103の障害の発生によって中断された端末Aから端末Bへの通信は再開される。
この実施の形態2によれば、レイヤ2ネットワーク110で障害が発生してパケットの中継が停止した場合に、最大でもRIP Responseパケット送信間隔の時間だけ経過すれば通信を再開することが可能となるため、通信復旧までの時間を大幅に短縮することが可能となる。つまり、従来のようにルーティングテーブル中の経路情報エントリタイマの満了時間経過後まで待って障害の発生を認識し、それから経路情報の変更処理を行って通信を再開する場合に比して、時間を大幅に短縮することができるという効果を有する。
また、ARPテーブル生成部15によって、RPRネットワーク(レイヤ2ネットワーク110)上の隣接ノード装置に対応するARPテーブル16aのエントリが常に存在するようにARPテーブル16aの内容が管理されるので、トポロジ情報変化検出通知が発行された際に、対応する隣接ノード装置の情報(IPアドレス)を必ず取得可能となり、経路変更を確実に行なうことが可能となる。
実施の形態3.
実施の形態2では、ノード装置がトポロジ情報変化検出通知によりルーティングテーブルの該当エントリを無効化した後に、レイヤ2ネットワーク上のノード装置が定期的に送信するRIP Responseパケットを用いてルーティングテーブルの更新、つまり無効化されたエントリを有効化するようにしていたが、この実施の形態3では、エントリを無効化したノード装置が、ルーティングテーブルの該当するエントリを無効化した際にネットワーク上のノード装置に対して経路情報を要求するRIP Requestパケットを送信して、その結果得られるRIP Responseパケットを用いてルーティングテーブルの更新を行う場合について説明する。
図26は、この発明にかかるネットワークノード装置の実施の形態3の機能構成を模式的に示すブロック図である。このネットワークノード装置100〜104は、実施の形態2の図18において、経路情報更新部23によってトポロジ情報変化検出通知に含まれる物理アドレス情報に該当するルーティングテーブル内のエントリを無効化した際に、レイヤ2ネットワーク110のレイヤ3レベルの隣接ノード装置に対してRIP Requestパケットを送信して経路情報の問合せを行う経路情報問合部24をさらに備える構成を有している。なお、実施の形態2の図18と同一の構成要素には同一の符号を付して、その詳細な説明を省略している。
このような構成を有するノード装置において、レイヤ2ネットワーク110に障害が発生した場合の経路情報更新処理における経路情報の取得処理について説明すると、ノード装置の経路情報問合部24は、図22において、RIPヘッダ部のcommandフィールド404に「要求」を設定し、経路エントリ部410のアドレスファミリフィールド411に「0」を設定し、メトリックフィールド415に「16」を設定した全経路指定のRIP Requestパケット400を送信する。
一方、このようなRIP Requestパケット400を受信したレイヤ2ネットワーク110上のノード装置のレイヤ3ルーティングプロトコル処理部17は、自ノード装置のルーティングテーブルの内容を格納したRIP Responseパケットを送信する。
RIP Requestパケット400を送信したノード装置のレイヤ3ルーティングプロトコル処理部17は、RIP Responseパケットを受信すると、パケットに含まれる経路エントリから無効化された宛先ネットワークへの経路を学習してルーティングテーブルを更新する。つまり、ルーティングテーブル中の該当するエントリの「ネクストホップ」にRIP Responseパケットを送信したノード装置の送信元IPアドレスを用い、また、「メトリック」をRIP Responseパケットの経路エントリのメトリックフィールド415の値を用いて更新し、無効化された宛先ネットワークへの経路を有効化する。
ここで、隣接するノード装置に障害が発生した場合のノード装置の経路情報の取得処理の具体例について説明する。ここでは、実施の形態2と同じように、図1(図3)に示されるネットワーク構成で、ノード装置103に障害が発生した後のノード装置100の経路情報更新の動作処理について説明する。実施の形態2と同様に、ノード装置103に障害が発生したことによって、ノード装置100のトポロジマップ14aが更新されると、トポロジ変化検出部20によってトポロジ情報変化検出通知が経路情報更新部23に通知される。経路情報更新部23によって、その通知に含まれる物理アドレス情報に対応するIPアドレスをネクストホップとするエントリが無効化される際に、経路情報問合部24は、レイヤ2ネットワーク110(ネットワークN4)上のノード装置に対して図22に示されるRIP Requestパケット400を送信する。つまり、上述したように、commandフィールド404に「要求」を設定し、アドレスファミリフィールド411に「0」を設定し、メトリックフィールド415を「16」に設定した全経路指定のRIP Requestパケット400を送信する。
このRIP Requestパケット400を受信したノード装置102は、自ノード装置のルーティングテーブルの内容を格納したRIP Responseパケットを送信する。ただし、このとき送信されるRIP Responseパケット300は、図20に示されるように、宛先IPアドレスが「ネットワークN1」、「ネットワークN2」への経路である経路エントリ310,320を含んでいるが、Split Horizonにより宛先IPアドレスが「ネットワークN3」、「ネットワークN4」、「ネットワークN5」への経路である経路エントリを含んでいない。
ノード装置100は、このRIP Responseパケット300を受信すると、RIP Responseパケット300に含まれる経路エントリ310から宛先ネットワークが「ネットワークN1」への経路を学習する。つまり、このRIP Responseパケット300のネクストホップフィールドが「0.0.0.0」ならば「ネクストホップ」としてIPヘッダ302に含まれる送信元のノード装置102のIPアドレスを、または、ネクストホップフィールドが「0.0.0.0」以外ならば「ネクストホップ」としてネクストホップフィールドの値を用い、また、「メトリック」として経路エントリ310のメトリックフィールド325の値を用いて、ルーティングテーブル22bの該当するエントリ721を更新し、「ネットワークN1」への経路を有効化する。このようにして、図25に示されるルーティングテーブル22cが得られる。なお、ネットワークN3に障害が発生していると仮定しているために、ルーティングテーブル22bのエントリ723に関しては無効化されたままとなる。
この実施の形態3によれば、レイヤ2ネットワーク110での障害発生によるルーティングテーブルの該当するエントリが無効化されて宛先経路が消失した後すぐに、経路情報問合部24が、RIP Requestパケットを送信することによって、レイヤ3レベルの隣接するノード装置から代替経路の情報を取得することが可能となる。そのため、障害が発生してから通信が復旧するまでの時間を従来に比べて大幅に短縮することができるという効果を有する。また、RIP Responseパケットを送信する他のノード装置がこの実施の形態3の機能を実装していない場合でも、この実施の形態3の機能を実装するノード装置においては、上述の効果を得ることができる。つまり、レイヤ2ネットワーク110上で必要な箇所のノード装置のみにこの実施の形態3の機能を実装させれば、レイヤ2ネットワーク110全体のノード装置100〜104の変更を行なうことなく、低コストで信頼性の高いネットワークを構築することが可能となる。
実施の形態4.
実施の形態3では、レイヤ3ルーティングプロトコルとしてRIPを用いた場合において、トポロジ情報変化検出通知によってルーティングテーブルの該当するエントリを無効化する際にレイヤ3レベルの隣接するノード装置のすべての経路情報について指定されていないRIP Requestパケットを送信する場合を説明したが、この実施の形態4では、無効化した経路情報の宛先ネットワークに関する情報のみをRIP Requestパケットで要求する場合を説明する。
図27は、この発明にかかるネットワークノード装置の実施の形態4の機能構成を模式的に示すブロック図である。このネットワークノード装置100〜104は、実施の形態2の図18において、レイヤ3レベルの隣接ノード装置に特定の経路情報の問合せを行なう特定経路情報問合部26と、ルーティングテーブルのメトリック変更前の情報を保存する更新前経路情報保存処理部27と、更新前の経路情報と特定経路情報問合部26による問い合わせの結果取得した経路情報とを比較する経路情報比較部28と、をさらに備える構成を有する。なお、実施の形態2の図18と同一の機能を有する構成要素には同一の名称と同一の符号を付してその説明を省略している。
特定経路情報問合部26は、RPRによって構成されるレイヤ2ネットワーク110上のノード装置に対して、経路情報更新部23によってルーティングテーブルの無効化されたエントリに相当する特定の経路エントリについての情報を送信するように指定したRIP Requestパケットを送信する機能を有する。
更新前経路情報保存処理部27は、トポロジ変化検出部20からのトポロジ情報変化検出通知を受けて経路情報更新部23がルーティングテーブルの該当するエントリを無効化する際に、更新前の経路情報(以下、更新前経路情報という)を保存する処理を行う機能を有する。より具体的には、この更新前経路情報として、ルーティングテーブルの無効化されるエントリのメトリック情報であり、ルーティングテーブルにオールドメトリック情報として保存される。
経路情報比較部28は、レイヤ3レベルの隣接するノード装置によって送信されたRIP Requestパケットに対する応答であるRIP Responseパケットを受信すると、ルーティングテーブル中の更新前経路情報すなわち無効化されたエントリのオールドメトリック情報と、このエントリに対応するRIP Responseパケットに含まれる経路エントリと比較して、RIP Responseパケット中の経路エントリを新たな経路情報として採用するか否かを判定する機能を有する。具体的には、RIP Responseパケットの経路エントリのメトリック情報が、ルーティングテーブル内の該当する無効化されたエントリのオールドメトリック情報よりも小さいか否かを判定し、小さい場合にRIP Responseパケットの経路エントリを新たな経路情報として採用し、それ以外の場合には経路情報として採用しない。
ルーティングテーブル格納部19は、ルーティングテーブルを格納する機能を有する点で実施の形態2と同様であるが、この実施の形態4では更新前経路情報保存処理部27によって付加された「オールドメトリック」を新たな項目として含むルーティングテーブルを格納する点で実施の形態2のものと異なる。図28は、更新前経路情報を含むルーティングテーブルの一例を示す図である。この図28には、実施の形態2の図19と同様に、ノード装置100によって生成されたルーティングテーブル25aが示されている。項目「オールドメトリック」には、更新前経路情報保存処理部27によって保存される該当するエントリが無効化される前のメトリック情報が格納される。
また、レイヤ3ルーティングプロトコル処理部17は、実施の形態2に示した機能に加えて、他のノード装置の特定経路情報問合部26から送信されたRIP Requestパケットに対する応答メッセージとして、自ルーティングテーブル中のこのパケットに格納されている特定の経路のエントリのみをRIP Responseパケットに設定して送信する機能をさらに有する。
ここで、このような構成のネットワークノード装置による動作処理について説明する。ただし、ネットワーク構成は、実施の形態1の図1(図3)に示されるものと同一のものとする。また、ノード装置のパケットの中継処理と、レイヤ2ネットワーク110において障害が発生したノード装置にレイヤ2レベルで隣接するノード装置の動作処理の手順については、レイヤ3ルーティングプロトコルが異なるが実施の形態1で説明したOSPFの場合と同様であるので、それらの説明を省略し、レイヤ2ネットワーク110内のノード装置に異常が発生した場合の経路情報更新処理についてのみ説明する。
図29は、レイヤ2ネットワークで障害が発生した場合におけるノード装置の経路情報更新処理の手順を示すフローチャートである。まず、実施の形態2の図23で説明したステップS131〜S135と同じ処理を行って、更新前のトポロジマップ14aと更新されたトポロジマップ14bから消失したノード装置のIPアドレスを取得する処理を行う(ステップS151〜S155)。すなわち、ノード装置のレイヤ2制御部13が、障害が発生したノード装置にレイヤ2レベルで隣接するノード装置から送信されたトポロジ情報パケットを受信して、障害を起こしたノード装置をトポロジマップ14aから除去するようにトポロジマップ14bを更新すると、トポロジ変化検出部20は、上述のトポロジマップ14bの更新によって消失したノード装置を検出し、消失したノード装置の物理アドレス情報を含むトポロジ情報変化検出通知を経路情報更新部23に通知する。ついで、トポロジ変化検出通知を受けた経路情報更新部23は、この通知に含まれる物理アドレス情報に対応するノード装置のIPアドレスをARPテーブル16aから取得する。
その後、更新前経路情報保存処理部27は、ルーティングテーブル中の取得したノード装置のIPアドレスをネクストホップとするエントリのメトリック情報を保存する(ステップS156)。また、経路情報更新部23は、ルーティングテーブル中の取得したIPアドレスをネクストホップとするエントリの経路を無効化する(ステップS157)。ついで、特定経路情報問合部26は、レイヤ2ネットワーク110上のノード装置に対して、ステップS157で経路を無効化したルーティングテーブル中のエントリに相当する経路エントリを特定の経路として経路エントリ部に設定したRIP Requestパケットを送信する(ステップS158)。
このRIP Requestパケットを受信したレイヤ3レベルの隣接ノード装置は、RIP Requestパケット内の特定の経路エントリに相当するメトリック情報を自ノード装置のルーティングテーブルから抽出してRIP Responseパケットに設定して、RIP Requestパケットを送信したノード装置に送信する。
このRIP Responseパケットを受信すると(ステップS159)、ノード装置の経路情報比較部28は、ルーティングテーブル中の無効化されたエントリのオールドメトリックとRIP Responseパケットに含まれる経路エントリのメトリックとを比較して、所定の条件を満たすか否かを判定する(ステップS160)。ここで、所定の条件とは、たとえばRIP Responseパケットに含まれる経路エントリのメトリックが、無効化されたエントリのオールドメトリックの値よりも小さい場合などを例示することができる。
経路情報比較部28によってRIP Responseパケット内の経路エントリが所定の条件を満たすと判定された場合(ステップS160でYesの場合)には、経路情報比較部28はそのパケットに含まれる経路エントリを新たな経路情報として採用して、レイヤ3ルーティングプロトコル処理部17はルーティングテーブルの対応するエントリを更新する(ステップS161)。これにより、ステップS157で無効化された経路が有効化され、障害発生時におけるノード装置の処理が終了する。一方、経路情報比較部28によってRIP Responseパケット内の経路エントリが所定の条件を満たさないと判定された場合(ステップS160でNoの場合)には、経路情報比較部28は、そのパケットに含まれる経路エントリを新たな経路情報として採用しない(ステップS162)。つまり、ルーティングテーブル内の無効化された経路をその状態のままとする。以上によって、レイヤ2ネットワーク110に障害が発生した場合のノード装置の経路情報更新処理が終了する。
つぎに、上記で説明した障害発生時におけるノード装置の具体的なパケットの中継処理について、図1(図3)に示されるネットワーク構成において端末Aから端末Bへ送信されるパケットを中継するノード装置100における中継処理を例に挙げて説明する。ただし、ノード装置100は正常な状態(障害が発生する前)において、図28のルーティングテーブル25aと、図6のARPテーブル16aと、図5のトポロジマップ14aとを有しているものとする。また、ノード装置102はネットワークN3への経路をノード装置100から学習しているが、この実施の形態4の機能を実装しておらず、ノード装置103の故障による経路消失を検出していないものとする。
図1の状態から図14に示されるようにレイヤ2ネットワーク110のノード装置103に障害が発生して停止した場合、ノード装置100からネットワークN1(レイヤ2ネットワーク110)へ中継されるパケットのネクストホップであるノード装置103がパケット中継に使用できなくなるため、端末Aから端末Bへの通信は停止する状態となる。このとき、障害が発生したノード装置103にレイヤ2レベルで隣接するノード装置102は、ノード装置103と接続する第二リンクのリンク断を検出し、第二リンクがリンク断であることを表示したトポロジ情報パケットを1系リング112に送信する。同様に、障害が発生したノード装置103にレイヤ2レベルで隣接するノード装置104も、ノード装置103と接続する第一リンクのリンク断を検出し、第一リンクがリンク断であることを表示したトポロジ情報パケットを0系リング111に送信する。これらのトポロジ情報パケットは、リング111,112にそって中継され、リングネットワークであるレイヤ2ネットワーク110上の全ノード装置100〜104に到達する。
ノード装置100のレイヤ2制御部13は、トポロジ情報パケット115,116を受信すると、トポロジマップ14aから障害を起こしたノード装置103についてのエントリを除去するとともに、障害発生後のノード装置間の接続関係を反映させるようにトポロジマップ14aを更新する。レイヤ2ネットワーク110の障害発生後にノード装置100によって生成されたトポロジマップ14bは、図15に示されるものと同じである。ついで、ノード装置100のトポロジ変化検出部20は、図5から図15に示されるトポロジマップ14a,14bの変化から消失したノード装置103を検出して、この消失したノード装置103の物理アドレス情報「MAC3」を含むトポロジ情報変化検出通知を経路情報更新部23に通知する。経路情報更新部23は、図6のARPテーブル16aを検索して、トポロジ情報変化検出通知に含まれる物理アドレス情報「MAC3」に対応するノード装置103のIPアドレス「10.0.0.103」を取得する。このとき、更新前経路情報保存処理部27は、経路情報更新部23によって取得されたIPアドレスをネクストホップとするエントリをルーティングテーブルから抽出し、その「メトリック」の値を「オールドメトリック」に格納し、さらに、経路情報更新部23は、その「メトリック」の値を「16」にして経路を無効化する。図30は、障害発生時のルーティングテーブルの内容の一例を示す図である。この図30は、図28と同様にノード装置100が生成したルーティングテーブル25cである。この図30に示されるように、ノード装置103のIPアドレス「10.0.0.103」をネクストホップとしている宛先アドレスが「ネットワークN1」、「ネットワークN3」に対応するエントリ731,733のメトリックの値が、到達不可能を示す値「16」に変更され、「オールドメトリック」には無効化される前のメトリック値である「3」、「2」がそれぞれ入力されている。
その後、ノード装置100の特定経路情報問合部26は、レイヤ3レベルの隣接ノード装置に対して、無効化したエントリを特定の経路として経路エントリ部に設定したRIP Requestパケットを送信する。図31は、特定経路情報問合部によって送信されるRIP Requestパケットの内容の一例を示す図である。このRIP Requestパケット400aの構成は図22で説明したものと同様であるが、ヘッダ部401のcommandフィールド404には「要求」が設定され、経路エントリ部420,430にはルーティングテーブル中の経路を無効化したエントリ731,733に相当する経路エントリが格納される。つまり、経路エントリ420には宛先アドレスが「ネットワークN1」の経路が設定され、経路エントリ430には宛先アドレスが「ネットワークN3」の経路が設定されている。このとき、アドレスファミリフィールド421には「2」が設定される。
このRIP Requestパケット400aを受信したレイヤ3レベルの隣接するノード装置102は、RIP Requestパケット400aによって指定された特定の経路に対応する自ノード装置102の有するルーティングテーブル中のエントリのみを経路エントリ部に設定したRIP Responseパケットを送信する。図32は、このRIP Responseパケットの内容の一例を示す図である。このRIP Responseパケット300aの構成は図20で説明したものと同様であり、この例では、図31のRIP Requestパケット400aに対する応答として、経路エントリ330には宛先ネットワークとして「ネットワークN1」の経路が設定され、経路エントリ340には宛先ネットワークとして「ネットワークN3」の経路が設定されている。
ノード装置100は、ノード装置102からのRIP Responseパケット300aを受信し、経路情報比較部28は、このパケットに含まれる経路エントリ330のIPアドレスフィールドがルーティングテーブル25bの無効化したエントリ731の「宛先アドレス」と等しく、メトリックの値「2」が保存されたオールドメトリックの値「3」よりも小さいため、経路エントリ330を新たな経路情報として採用する。その結果、レイヤ3ルーティングプロトコル処理部17は、ルーティングテーブルエントリ731のネクストホップにはノード装置102のIPアドレス「10.0.0.102」を格納し、メトリックには受信した経路エントリ260のメトリックに1を加えた値である「3」を格納してエントリを有効化する。また、受信したパケットの経路エントリ340については、メトリックの値「2」がルーティングテーブル25bの対応するエントリ733の保存されたオールドメトリックの値「2」と等しいため、新たな経路情報としては採用しない。つまり、エントリ733は、無効化されたままの状態となる。図33は、更新されたルーティングテーブルの内容の一例を示す図である。この図33も、図28と同様にノード装置100が生成したルーティングテーブル25cである。このルーティングテーブル25cに示されるように、エントリ731に対応するネクストホップとメトリックの値が図30の無効化された状態から有効化されている。
なお、ノード装置104などレイヤ3レベルの他の隣接ノード装置も、ノード装置100の送信するRIP Requestメッセージを受信すると、宛先アドレスが「ネットワークN1」と「ネットワークN3」の情報を格納したRIP Responseメッセージを送信する。しかし、ノード装置104の送信するRIP Responseメッセージに含まれる経路エントリは、ノード装置102またはノード装置103の送信するRIP Responseメッセージにより学習したものであり、そのメトリックの値はノード装置102またはノード装置103の送信するRIP Responseメッセージ内のメトリックの値に1を加えたものとなっている。したがって、ノード装置104からのRIP Responseメッセージを受信したノード装置100において、保存されたオールドメトリックの値と受信した経路エントリのメトリックの値が等しいため、ノード装置100がノード装置104の送信した経路情報を採用することはなく、経路のループを防ぐことが可能となる。
この実施の形態4によれば、トポロジ情報の変化を検出したノード装置は、無効化した経路情報の宛先ネットワークに関する情報のみをレイヤ3レベルの隣接するノード装置に要求し、隣接するノード装置からは指定した無効化された経路についての情報(経路情報)のみが応答されるので、レイヤ2ネットワーク110の負荷を低減する効果を有する。そして、ネットワーク規模が大きく、リング外の経路が多数あるほど、有効となる。