以下、本発明の実施形態を実施例に基づいて以下の順序で説明する。
A.実施例:
A−1.ネットワークの構成:
A−2.障害検出前動作:
A−3.障害検出時動作1:
A−4.障害検出時動作2:
A−5.経路復旧時の動作:
A−6.実施例の効果:
B.変形例:
B−1.変形例1:
B−2.変形例2:
A.実施例:
A−1.ネットワークの構成:
まず、本発明の実施例におけるネットワークシステムの構成について説明する。
図1は、本発明の一実施例におけるネットワークシステムの構成図である。ネットワーク装置101,102,103,104,105はインターネット400から端末301,302,303宛のパケットを中継する、レイヤ3ネットワーク装置である。また、端末301−303からインターネット400へのパケットを中継することで、インターネット400への接続を提供している。
ネットワーク装置101は、インタフェース201より回線を介してインターネット400に、インタフェース202より回線を介してネットワーク装置105に、インタフェース203より回線を介してネットワーク装置102に接続されている。
ネットワーク装置102は、インタフェース204より回線を介してネットワーク装置104に、インタフェース205より回線を介してネットワーク装置101に、インタフェース206より回線を介してネットワーク装置103に接続されている。
ネットワーク装置103は、インタフェース207より回線を介してネットワーク装置105に、インタフェース208より回線を介してネットワーク装置102に、インタフェース209より回線を介して端末301に、インタフェース210より回線を介して端末302に、インタフェース211より回線を介して端末303に接続されている。
ネットワーク装置104は、インタフェース212より回線を介してインターネット400に、インタフェース213より回線を介してネットワーク装置105に、インタフェース214より回線を介してネットワーク装置102に接続されている。
ネットワーク装置105は、インタフェース215より回線を介してネットワーク装置104に、インタフェース216より回線を介してネットワーク装置101に、インタフェース217より回線を介してネットワーク装置103に接続されている。
なお、このネットワークシステムはマルチパス構成となっており、例えばネットワーク装置101がインタフェース201から受信したパケットを端末301に転送する場合、ネットワーク装置102とネットワーク装置103を経由する経路で転送してもよいし、ネットワーク装置105とネットワーク装置103を経由する経路で転送することもできる構成となっている。つまり、ネットワーク装置101は、端末301の宛先IPアドレスに対して複数の出力インタフェース202,203を備えている。ネットワーク装置104についても同様である。
なお、ネットワーク装置101−105はOSPF(Open Shortest Path First)プロトコルを用いて経路制御を行っているものとする。
図2は、ネットワーク装置101の構成を示すブロック図である。なお、他のネットワーク装置102,103,104,105も同様の構成である。
ネットワーク装置101は、他のネットワーク中継装置や端末、インターネットなどに回線を介して接続するためのインタフェース201,202,203を備えている。インタフェースの数は3つに限らず更に多くのインタフェースを備えていてもよい。例えば、ネットワーク装置102の場合は、インタフェース204,205,206の少なくとも3つのインタエースを備えているし、ネットワーク装置103の場合は、インタフェース207,208,209,210,211の少なくとも5つのインタエースを備えている。
メモリ120は、フォワーディングテーブル111と、出力パス優先度テーブル118と、折返し判定テーブル116を格納している。
経路計算処理部110と、パケット転送処理部112と、マルチパス制御部113と、障害復旧検出処理部117は、いずれもメモリ120内に格納されているプログラムを、図示しないCPU(Central Processing Unit)が実行することにより実現される機能部である。なお、CPUとプログラムに代えて、ASIC(Application Specific Integrated Circuit)を用いることも可能である。
経路計算処理部110は、OSPFプロトコル制御を行い、フォワーディングテーブル111を管理する。フォワーディングテーブル111は、宛先IPアドレスに対する出力インタフェースを特定するためのテーブルである。テーブルの内容は後述する図4、図5、図6で説明する。パケット転送処理部112は、受信したパケットをフォワーディングテーブル111に従って転送を行う。つまり、受信したパケットの宛先IPアドレスを確認し、フォワーディングテーブル111を参照して対応する出力インタフェースからパケットを出力する処理を行う。マルチパス制御部113は、宛先IPアドレスに対して複数の出力インタフェースが存在する場合に、出力パス優先度テーブル118を参照し、実際にパケットを出力するインタフェースを特定する処理を行う。出力パス優先度テーブル118は、宛先IPアドレスに対する複数の各出力インタフェースに対してパケットを送信する優先度を設定したテーブルである。テーブルの内容は、後述する図12、図13で説明する。マルチパス制御部113は、パス選択処理部114と廃棄判定処理部115を含んでおり、それぞれの処理内容は後述する図14で説明する。障害復旧検出処理部117は、インタフェースの障害および復旧を監視、検出する制御を行い、折返し判定テーブル116を管理する。折返し判定テーブル116の内容は後述する図7、図8、図9、図10、図11で説明する。
図3は、端末301−303のIPアドレスを示す図である。端末301は10.0.0.254/24、端末302は10.0.1.254/24、端末303は10.0.2.254/24のIPアドレスをそれぞれ保持している。端末301−303のIPアドレスはサブネット単位にOSPFルーティングプロトコルにより、ネットワーク装置101−105に経路として配布される。ネットワーク装置101−105に配布された経路は、経路計算処理部110により出力インタフェースが計算され、計算結果は、フォワーディングテーブル111にインストールされる。
図4は、ネットワーク装置101のフォワーディングテーブル111の内容を示す図である。フォワーディングテーブル111は、宛先IPアドレス1111と対応する出力インタフェース1112の項目を含んでいる。宛先IPアドレス1111は、受信したパケットの到達点である宛先IPアドレスを示し、出力インタフェース1112は、受信したパケットを転送するインタフェースを示す。ネットワーク装置101の場合、端末301,302,303の3つのエントリを保持し、それぞれ、端末301のエントリは宛先IPアドレス1111が10.0.0.254、出力インタフェース1112がインタフェース202,203、端末302のエントリは宛先IPアドレス1111が10.0.1.254、出力インタフェース1112がインタフェース202,203、端末303のエントリは宛先IPアドレス1111が10.0.2.254、出力インタフェース1112がインタフェース202,203である。端末301,302,303宛の経路は全てマルチパスの経路となっており、インタフェース202,203どちらを選択しても宛先に到達可能であるため、出力インタフェース1112には複数のインタフェースが登録されている。
図5は、ネットワーク装置102のフォワーディングテーブル111の内容を示す図である。各項目の説明は図4と同様であるため省略する。端末301,302,303宛の経路は出力インタフェースが1つのみであり、インタフェース206のみが登録されている。
図6は、ネットワーク装置105のフォワーディングテーブル111の内容を示す図である。各項目の説明は図4と同様であるため省略する。端末301,302,303宛の経路は出力インタフェースが1つのみであり、インタフェース217のみが登録されている。
図7は、ネットワーク装置101の折返し判定テーブル116の内容を示す図である。折返し判定テーブル116は、インタフェース1161と折返しフラグ1162の項目を含んでいる。インタフェース1161は、パケットを送信するインタフェースを示し、折返しフラグ1162は、パケットを当該インタフェースから送信するか、受信インタフェースからパケットを折返し送信するかを判定するためのフラグである。折返しフラグ1162がONの場合は、当該インタフェースからパケットを送信することができないため、受信したパケットを受信インタフェースから折返して送信する必要があることを示す。折返しフラグ1162がOFFの場合は、当該インタフェースからパケットを送信可能であることを示す。ネットワーク装置101では、インタフェース201、202、203が通信可能状態であり、後述する図11に示すように、インタフェースが通信可能状態の場合、当該インタフェースの折返しフラグ1162にはOFFが設定される。このため、ネットワーク装置101では、パケットを出力するインタフェースがインタフェース201、202、203の場合、折返しフラグ1162がOFFであり、当該インタフェースからパケットを送信可能であることを示している。
図8は、ネットワーク装置102の折返し判定テーブル116の内容を示す図である。各項目の説明は図7と同様であるため省略する。ネットワーク装置102では、インタフェース204、205、206が通信可能状態であり、折返しフラグ1162にはOFFが設定されている。
図9は、ネットワーク装置105の折返し判定テーブル116の内容を示す図である。各項目の説明は図7と同様であるため省略する。ネットワーク装置105では、インタフェース215、216、217が通信可能状態であり、折返しフラグ1162にはOFFが設定されている。
図10は、折返し判定テーブル116の折返しフラグ1162をONに設定するフローを示す図である。ネットワーク装置101−105は、インタフェースに障害が発生すると、障害復旧検出処理部117により障害が発生したことを検出する(S101)。障害復旧検出処理部117は、障害が発生したインタフェースが通信不可状態に変更したことを検知し(S102)、折返し判定テーブル116の中から通信不可状態となったインタフェースに該当する折返しフラグをONに設定し、当該インタフェースに障害が発生したことを記憶する(S103)。
図11は、折返し判定テーブル116の折返しフラグ1162をOFFに設定するフローを示す図である。ネットワーク装置101−105は、インタフェースが障害から復旧すると、障害復旧検出処理部117により障害が復旧したことを検出する(S201)。障害復旧検出処理部117は、障害が復旧したインタフェースが通信可能状態に変更したことを検知し(S202)、折返し判定テーブル116の中から通信可能状態となったインタフェースに該当する折返しフラグをOFFに設定し、当該インタフェースが障害から復旧したことを記憶する(S203)。
図12は、ネットワーク装置101の出力パス優先度テーブル118の内容を示す図である。出力パス優先度テーブル118の宛先IPアドレス1181と出力インタフェース1182の項目はフォワーディングテーブル111と同じであり、加えて出力優先度1183の項目を含んでいる。
ネットワーク装置101の出力パス優先度テーブル118の宛先IPアドレス1181と出力インタフェース1182は、フォワーディングテーブル111に対応した内容であり、ネットワーク装置101のフォワーディングテーブル111については、図4で説明したため省略する。
出力パス優先度テーブル118の出力優先度1183は、宛先IPアドレス1181に対して、マルチパス構成のため出力インタフェース1182が複数存在する場合、各インタフェースに対して優先度を括りつけ、最も優先度の高いインタフェースを出力インタフェースとして使用することを決めるものである。ネットワーク装置101の場合、端末301,302,303の3つのエントリを保持し、それぞれ、端末301のエントリは宛先IPアドレスが10.0.0.254、出力インタフェースがインタフェース202の出力優先度は1,出力インタフェース203の出力優先度は2、端末302のエントリは宛先IPアドレスが10.0.1.254、出力インタフェースがインタフェース202の出力優先度は2,出力インタフェース203の出力優先度は1、端末303のエントリは宛先IPアドレスが10.0.2.254、出力インタフェースがインタフェース202の出力優先度は1,出力インタフェース203の出力優先度は2である。出力優先度1183の決定方法は図13で説明する。なお、出力優先度は1を最高優先とし、以降数値が大きくなるごとに優先度は低くなるものとする。
なお、出力優先度1183を決定する方法としては、図12、13に示す出力パス優先度テーブルを用いる方法以外であっても、マルチパスの各出力インタフェースにおいて優先度を決定する手段と、ある出力インタフェースが利用不可の場合に次の優先度の出力インタフェースを選択する手段を備えているものであればいかなる方法であってもよい。本実施例では、マルチパスの各出力インタフェースに固定的に出力優先度を括りつける方式を例に挙げ以下説明する。
図13は、出力パス優先度テーブル118の出力優先度1183の決定方法を示す図である。マルチパスの各出力インタフェースに固定的に出力優先度を括りつける方式での、出力優先度1183の決定方法を示している。フォワーディングテーブル111に登録された複数の宛先IPアドレスが、N個の出力インタフェースを含むマルチパスを共有した場合、一つ目の経路(宛先IPアドレス)は図13のケース1に該当する出力優先度出力インタフェースに括りつける。同様に二つ目の経路はケース2を、N個目の経路はケースNを、N+1個目の経路はケース1を括りつける。このように一つ一つの経路にケース1からケースNをラウンドロビンで括りつけることで出力優先度を決定することができる。
図12に示したネットワーク装置101の出力パス優先度テーブル118では、マルチパスの出力インタフェース数が、インタフェース202,203の2つである。一つ目の経路である10.0.0.254はケース1が括りつけられ、出力インタフェース202が出力優先度1、出力インタフェース203が出力優先度2と決定する。同様に二つ目の経路である10.0.1.254はケース2が括りつけられ、出力インタフェース202が出力優先度2、出力インタフェース203が出力優先度1、三つ目の経路である10.0.2.254はケース1が括りつけられ、出力インタフェース202が出力優先度1、出力インタフェース203が出力優先度2と決定する。
図14は、ネットワーク装置101−105のパケット受信時の処理内容を示すフローチャートである。なお、ネットワーク装置101−105を接続する回線はイーサネット(登録商標)として説明する。
S301では、ネットワーク装置がインタフェースを介してパケットを受信する。
S302では、パケット転送処理部112が、受信したパケットの宛先IPアドレスを用いて、フォワーディングテーブル111を検索し、当該宛先IPアドレスに対応する出力インタフェースを求める。フォワーディングテーブル111に宛先IPアドレスが存在し、出力インタフェースが求められれば、“経路あり”と判定しS303へ移行し、宛先IPアドレスが存在せず、出力インタフェースが求められなければ“経路なし”と判定し、S311へ移行する。
S311では、パケット転送処理部112が、従来技術と同様に受信したパケットの宛先IPアドレスに対応する経路がない場合の処理を行う。具体的には、パケットを廃棄したり、ICMPプロトコルを用いてパケット送信元に対して経路がないことを通知したりする。
S303は、S302の次に実行される場合と、S307の次に実行される場合とがあるが、まずS302の次に実行された場合について説明する。
S303がS302の次に実行された場合は、マルチパス制御部113のパス選択処理部114が、S302でフォワーディングテーブル111を検索して求めた出力インタフェースを用いて出力パス優先度テーブル118を検索し、最も出力優先度1183の高い出力インタフェース1182を決定する。出力インタフェースが存在すれば“出力パスあり”と判定し、S304へ移行する。
S304では、パス選択処理部114が、S302においてフォワーディングテーブル111を検索した結果求められた出力インタフェースの中に、当該受信パケットを受信したインタフェースである入力インタフェースが含まれているか検索する。出力インタフェースの中に、受信パケットの入力インタフェースが含まれていれば当該受信パケットは“折返しパケット”であると判定しS305へ移行、含まれていなければ“通常パケット”であると判定しS306へ移行する。なお、S304処理は、1つのパケット受信において1回実施すれば十分であるため、既に実施済であれば処理を省略し、前回の処理結果を流用することが可能である。
S305では、パス選択処理部114が、S302においてフォワーディングテーブル111を検索した結果求められた出力インタフェースの中に、パケットの入力インタフェースが含まれる。このため、パス選択処理部114は、該当入力インタフェースと一致する出力インタフェースの出力優先度1183を入力優先度として決定し、この入力優先度と、S303で求められた出力優先度を比較する。入力優先度とS303で求められた出力優先度が等しい場合、および、S303で求められた出力優先度が入力優先度よりも高い場合は“転送不可”と判定し、S307へ移行、S303で求められた出力優先度が入力優先度より低い場合は“転送可”と判定し、S306へ移行する。なお、S305処理のうち、入力優先度の決定処理は1つのパケット受信において1回実施すれば十分であるため、既に実施済であれば処理を省略し、前回の処理結果を流用することが可能である。
S306では、パス選択処理部114が、S303で出力パス優先度テーブル118を検索した結果求められた出力インタフェースを用いて、折返し判定テーブル116を検索する。出力インタフェースに対応する折返しフラグがONであれば、S307へ移行、OFFであればS312へ移行する。
S307では、現在の出力インタフェースが送信不可と判断されたため、現在の出力インタフェース情報を入力情報として、S303処理へ移行する。
S303がS307の次に実行された場合は、パス選択処理部114が、S302においてフォワーディングテーブル111を検索した結果求められた出力インタフェースを用いて出力パス優先度テーブル118を検索し、S307からの入力情報である現在の出力インタフェースの次に出力優先度1183の高い出力インタフェースを決定する。出力インタフェースが存在すれば“出力パスあり”と判定し、S304へ移行、存在しなければ“出力パスなし”と判定し、S308へ移行する。
S308は、マルチパス制御部113の廃棄判定処理部115が行う処理であるが、処理内容はS304と同様であるため説明は省略する。入力パケットが、”折返しパケット“と判定された場合はS314へ移行し、”通常パケット“と判定された場合はS310へ移行する。
S310では、廃棄判定処理部115が、受信したパケットのレイヤ2ヘッダのDMAC(Destination Media Access Control)フィールドとSMAC(Source Media Access Control)フィールドを反転させる。MACアドレスを反転させるのは、パケット送信元のレイヤ3ネットワーク装置に折返すためであり、この方法であれば、パケット長を変化させずに送信元にパケットを折返すことができる。なお、レイヤ3ヘッダの送信元IPアドレスや宛先IPアドレスは変更しない。
S312では、パケット転送処理部112が、受信したパケットを出力インタフェースにから送信する処理を行う。
S313では、パケット転送処理部112が、受信したパケットを入力インタフェースに対して折返す処理を行う。
S314では、パケット転送処理部112が、受信したパケットを廃棄する処理を行う。
A−2.障害検出前動作:
ここでは、ネットワーク網に障害の発生していない状態で、インターネット400から端末302宛のパケットが、端末302へ到達するまでのパケット転送ルートについて説明する。
図15は、インターネット400から端末302宛のパケットがネットワーク装置101を経由した場合のパケット転送処理について説明する図である。
端末302のIPアドレスは、図3に示すように10.0.1.254である。ネットワーク装置101−105を接続する回線はイーサネット(登録商標)として説明する。
ネットワーク装置101は、インターネット400から端末302宛てのパケットを、インタフェース201より受信する(図14のS301)。ネットワーク装置101では、パケット転送処理部112が、図4に示したフォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース202またはインタフェース203と決定する(図14のS302)。続いて、マルチパス制御部113のパス選択処理部114が、図12に示した出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が1と最も高いインタフェース203を出力インタフェースに決定する(図14のS303)。
パス選択処理部114は、更に、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース202及びインタフェース203の中に、パケットの入力インタフェースであるインタフェース201が含まれていないため、受信したパケットを“通常パケット”であると判定する(図14のS304)。パス選択処理部114は、図7に示した折返し判定テーブル116を検索し、出力インタフェースであるインタフェース203に対応する折返しフラグがOFFであると判定する(図14のS306)。そして、パケット転送処理部112が、受信したパケットを出力インタフェースであるインタフェース203からネットワーク装置102へ送信する(図14のS312)。
ネットワーク装置102は、ネットワーク装置101が送信したパケットを、インタフェース205より受信する(図14のS301)。ネットワーク装置102では、パケット転送処理部112が、図5に示したフォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース206と決定する(図14のS302)。続いて、マルチパス制御部113のパス選択処理部114が、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が最も高い優先度のインタフェース206を出力インタフェースに決定する(図14のS303)。なお、ネットワーク装置102の出力パス優先度テーブル118の説明図は省略するが、ネットワーク装置102の優先度テーブル118は、端末302の宛先IPアドレスに対し、出力インタフェースが1つのみであり、出力優先度が最も高いインタフェースが、インタフェース206であるという内容になっている。
パス選択処理部114は、更に、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース206が、パケット入力インタフェースであるインタフェース205と一致しないため、受信したパケットを“通常パケット”であると判定する(図14のS304)。パス選択処理部114は、図8に示した折返し判定テーブル116を検索し、出力インタフェースである、インタフェース206に対応する折返しフラグがOFFであると判定する(図14のS306)。そして、パケット転送処理部112が、受信したパケットを出力インタフェースであるインタフェース206からネットワーク装置103へ送信する(図14のS312)。
ネットワーク装置103は、ネットワーク装置102が送信したパケットを、インタフェース208より受信する(図14のS301)。ネットワーク装置103では、パケット転送処理部112が、フォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース210と決定する(図14のS302)。なお、ネットワーク装置103のフォワーディングテーブル111の説明図は省略するが、ネットワーク装置103は端末302と直接接続されているため、ネットワーク装置103のフォワーディングテーブル111は、端末302に対応する宛先IPアドレスとインタフェース出力インタフェース210が登録されているという内容となっている。続いて、マルチパス制御部113のパス選択処理部114が、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が最も高い優先度のインタフェース210を出力インタフェースに決定する(図14のS303)。なお、ネットワーク装置103の出力パス優先度テーブル118の説明図は省略するが、ネットワーク装置103の優先度テーブル118は、端末302の宛先IPアドレスに対し、出力インタフェースが1つのみであり、出力優先度が最も高いインタフェースが、インタフェース210であるという内容になっている。
パス選択処理部114は、更に、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース210が、パケット入力インタフェースであるインタフェース208と一致しないため、受信したパケットを“通常パケット”であると判定する(図14のS304)。パス選択処理部114は、折返し判定テーブル116を検索し、出力インタフェースであるインタフェース210に対応する折返しフラグがOFFであると判定する(図14のS306)。なお、ネットワーク装置103の折返し判定テーブル116の説明図は省略するが、ネットワーク装置103の折返し判定テーブル116は、端末302宛のパケットはインタフェース210が通信可能状態であり、インタフェース210に対応する折返しフラグもOFFであるという内容になっている。そして、パケット転送処理部112が、受信したパケットを出力インタフェースであるインタフェース210から端末302へ送信する(図14のS312)。
以上で説明したように、インターネット400から端末302宛のパケットがネットワーク装置101を経由した場合、図15の点線矢印1001で示す転送ルートで端末302まで転送される。
A−3.障害検出時動作1:
ここでは、ネットワーク装置102とネットワーク装置103を接続する回線に障害が発生した場合において、インターネット400から端末302宛のパケットが、端末302へ到達するまでのパケット転送処理について説明する。
図16は、インターネット400から端末302宛のパケットがネットワーク装置101を経由した場合のパケット転送処理について説明する図である。
端末302のIPアドレスは、図3に示すように10.0.1.254である。ネットワーク装置101−105を接続する回線はイーサネット(登録商標)として説明する。
ネットワーク装置101が、インターネット400からパケットを受信し、ネットワーク装置102へ転送する処理は、「A−2.障害検出前動作」で説明した動作と同様であるため省略する。
なお、ネットワーク装置102とネットワーク装置103を接続する回線に障害500が発生すると、ネットワーク装置102はインタフェース206からパケットを出力することができないため、ネットワーク装置103との間のパケット通信は停止する。この場合、ネットワーク装置102の折返し判定テーブル116のインタフェース206に対応する折返しフラグはONに設定されることになる。
図17は、障害500が発生した場合におけるネットワーク装置102の折返し判定テーブル116の内容を示す図である。各項目の説明は図7と同様であるため省略する。ネットワーク装置102は、図10に示すように、障害500が発生すると、障害復旧検出処理部117により障害が発生したことを検出する(図10のS101)。ネットワーク装置102の障害復旧検出処理部117は、インタフェース206が通信不可状態に変更したことを検知し(図10のS102)、折返し判定テーブル116のインタフェース206に該当する折返しフラグをONに設定する(図10のS103)。
ネットワーク装置102は、ネットワーク装置101が送信したパケットをインタフェース205より受信すると(図14のS301)、パケット転送処理部112が、図5に示したフォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース206と決定する(図14のS302)。続いて、マルチパス制御部113のパス選択処理部114が、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が最も高い優先度のインタフェース206を出力インタフェースに決定する(図14のS303)。上述したように、ネットワーク装置102の出力パス優先度テーブル118の説明図は省略する。
パス選択処理部114は、更に、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース206が、パケットの入力インタフェースであるインタフェース205と一致しないため、受信したパケットを“通常パケット”であると判定する(図14のS304)。パス選択処理部114は、図17に示した折返し判定テーブル116を検索し、出力インタフェースである、インタフェース206に対応する折返しフラグがONであると判定する(図14のS306)。パス選択処理部114は、現在の出力インタフェースであるインタフェース206は折返しフラグがONであるためパケットを送信することができないと判断し、他の送信可能インタフェースを検索するために、現在の出力インタフェースであるインタフェース206を入力情報として指定し(図14のS307)、S303処理へ移行する。なお、S307で指定した入力情報は、S303で他の送信可能インタフェースを検索するための検索条件となる。続いて、パス選択処理部114は、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が、検索条件に指定されたインタフェース206の次に高い出力インタフェースを検索するが、宛先IPアドレス10.0.1.254に対する出力インタフェースはインタフェース206のみであるため、“出力パスなし”と判定し(図14のS303)、S308処理へ移行する。
受信パケットはS304において既に“通常パケット”であると判定済であるため、S310処理へ移行する(図14のS308)。そして、マルチパス制御部113の廃棄判定処理部115が、受信したパケットのDMAC(Destination Media Access Control)フィールドとSMAC(Source Media Access Control)フィールドを反転し(図14のS310)、パケット転送処理部112が、受信したパケットを入力インタフェースであるインタフェース205からネットワーク装置101へ折返す(図14のS313)。
ネットワーク装置101は、ネットワーク装置102が折返したパケットを、インタフェース203より受信すると(図14のS301)、パケット転送処理部112が、図4に示したフォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース202またはインタフェース203と決定する(図14のS302)。続いて、マルチパス制御部113のパス選択処理部114が、図12に示した出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が1と最も高いインタフェース203を出力インタフェースに決定する(図14のS303)。
パス選択処理部114は、更に、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース202及びインタフェース203の中に、パケットの入力インタフェースであるインタフェース203が含まれているため、受信したパケットは“折返しパケット”であると判定し(図14のS304)、S305処理に移行する。
パス選択処理部114は、図12に示した出力パス優先度テーブル118を検索し、パケットの入力インタフェースがインタフェース203であるため、宛先IPアドレス10.0.1.254の出力インタフェース203の出力優先度である1を入力優先度として決定する。また、更に、パス選択処理部114は、S303で決定したパケットを送信する出力インタフェース203の出力優先度と、パケットを受信した入力インタフェースの入力優先度を比較し、これらがともに1で等しいため、“転送不可”と判定する(図14のS305)。このように、受信したパケットの出力優先度と入力優先度が等しい場合は検索した出力インタフェースからは転送不可であると判定するため、折返しパケットを受信した場合に再度同じインタフェースから送信してしまうといったことを防ぐことができる。
パス選択処理部114は、現在の出力インタフェースであるインタフェース203からはパケットを送信することができないと判断し、他の送信可能インタフェースを検索するために、現在の出力インタフェースであるインタフェース203を入力情報として指定し(図14のS307)、S303処理へ移行する。なお、S307で指定した入力情報は、S303で他の送信可能インタフェースを検索するための検索条件となる。続いて、パス選択処理部114は、図12に示した出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が、検索条件に指定されたインタフェース203の次に高い出力インタフェースを検索し、出力優先度が2とインタフェース203の次に高いインタフェース202を出力インタフェースに決定し(図14のS303)、S304処理に移行する。
受信パケットは既に“折返しパケット”であると判定済であるため、S305処理に移行する(図14のS304)。パス選択処理部114は、既に1と算出済の入力優先度と、パケットを送信するインタフェースである出力インタフェース202の出力優先度を比較し、出力インタフェース202の出力優先度が2と入力優先度より低いため、“転送可”であると判定する(図14のS305)。パス選択処理部114は、図7に示した折返し判定テーブル116を検索し、出力インタフェースであるインタフェース202に対応する折返しフラグがOFFであると判定する(図14のS306)。そして、パケット転送処理部112が、受信したパケットを出力インタフェースであるインタフェース202からネットワーク装置105へ送信する(図14のS312)。
ネットワーク装置105は、ネットワーク装置101が送信したパケットを、インタフェース216より受信すると(図14のS301)、パケット転送処理部112が、図6に示したフォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース217と決定する(図14のS302)。マルチパス制御部113のパス選択処理部114が、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が最も高い優先度のインタフェース217を出力インタフェースに決定する(図14のS303)。なお、ネットワーク装置105の出力パス優先度テーブル118の説明図は省略するが、ネットワーク装置105の優先度テーブル118は、端末302の宛先IPアドレスに対し、出力インタフェースが1つのみであり、出力優先度が最も高いインタフェースが、インタフェース217であるという内容になっている。
パス選択処理部114は、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース217が、パケット入力インタフェースであるインタフェース216と一致しないため、受信したパケットを“通常パケット”であると判定する(図14のS304)。パス選択処理部114は、更に、図9に示した折返し判定テーブル116を検索し、出力インタフェースであるインタフェース217に対応する折返しフラグがOFFであると判定する(図14のS306)。そして、パケット転送処理部112が、受信したパケットを出力インタフェースであるインタフェース217からネットワーク装置103へ送信する(図14のS312)。
ネットワーク装置103は、ネットワーク装置105が送信したパケットを、インタフェース207より受信すると(図14のS301)、パケット転送処理部112が、フォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース210と決定する(図14のS302)。なお、上述したようにネットワーク装置103のフォワーディングテーブル111の説明図は省略する。パス選択処理部114は、更に、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が最も高い優先度のインタフェース210を出力インタフェースに決定する(図14のS303)。なお、上述したようにネットワーク装置103の出力パス優先度テーブル118の説明図は省略する。
続いて、パス選択処理部114は、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース210が、パケット入力インタフェースであるインタフェース209と一致しないため、受信したパケットは“通常パケット”であると判定する(図14のS304)。パス選択処理部114は、折返し判定テーブル116を検索し、出力インタフェースであるインタフェース210に対応する折返しフラグがOFFであると判定する(図14のS306)。なお、上述したようにネットワーク装置103の折返し判定テーブル116の説明図は省略する。そして、パケット転送処理部112が、受信したパケットを出力インタフェースであるインタフェース210から端末302へ送信する(図14のS312)。
以上で説明したように、ネットワークに障害500が発生している状況においてインターネット400から端末302宛のパケットがネットワーク装置101を経由した場合、図16の点線矢印1002で示す転送ルートで端末302まで転送される。
A−4.障害検出時動作2:
ここでは、ネットワーク装置102とネットワーク装置103を接続する回線に障害が発生し、さらに、ネットワーク装置105とネットワーク装置103を接続する回線にも障害が発生場合における、インターネット400から端末302宛のパケットの転送処理について説明する。
図18は、ネットワークに多重障害が発生した状況においてインターネット400から端末302宛のパケットがネットワーク装置101を経由した場合のパケット転送処理について説明する図である。図18を用いて、端末302へ到達可能なルートが無くなった際のネットワーク内のパケット転送ルートとパケットループ回避方式を説明する。
端末302のIPアドレスは、図3に示すように10.0.1.254である。ネットワーク装置101−105を接続する回線はイーサネット(登録商標)として説明する。
ネットワーク装置101が、インターネット400からパケットを受信し、ネットワーク装置102へ転送する処理は、「A−2.障害検出前動作」で説明した動作と同様であるため省略する。
ネットワーク装置102が、ネットワーク装置101からパケットを受信し、障害500が発生したため、ネットワーク装置101へパケットを折返す処理は、「A−3.障害検出時動作1」で説明した動作と同様であるため省略する。
ネットワーク装置101が、ネットワーク装置102が折返したパケットを受信し、ネットワーク装置105へ転送する処理は、「A−3.障害検出時動作1」で説明した動作と同様であるため省略する。
なお、ネットワーク装置105とネットワーク装置103を接続する回線に障害501が発生すると、ネットワーク装置105はインタフェース217からパケットを出力することができないため、ネットワーク装置103との間のパケット通信は停止する。この場合、ネットワーク装置105の折返し判定テーブル116のインタフェース217に対応する折返しフラグはONに設定されることになる。
図19は、障害501が発生した場合におけるネットワーク装置105の折返し判定テーブル116の内容を示す図である。各項目の説明は図8と同様であるため省略する。ネットワーク装置105は、図10に示すように、障害501が発生すると、障害復旧検出処理部117により障害が発生したことを検出する(図10のS101)。ネットワーク装置105の障害復旧検出処理部117は、インタフェース217が通信不可状態に変更したことを検知し(図10のS102)、折返し判定テーブル116のインタフェース217に該当する折返しフラグをONに設定する(図10のS103)。
ネットワーク装置105は、ネットワーク装置101が送信したパケットを、インタフェース216より受信すると(図14のS301)、パケット転送処理部112が、図6に示したフォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース217と決定する(図14のS302)。マルチパス制御部113のパス選択処理部114は、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が最も高い優先度のインタフェース217を出力インタフェースに決定する(図14のS303)。なお、上述したように、ネットワーク装置105の出力パス優先度テーブル118の説明図は省略する。
パス選択処理部114は、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース217が、パケット入力インタフェースであるインタフェース216と一致しないため、受信したパケットは“通常パケット”であると判定する(図14のS304)。パス選択処理部114は、更に、図19に示した折返し判定テーブル116を検索し、出力インタフェースであるインタフェース217に対応する折返しフラグがONであると判定する(図14のS306)。パス選択処理部114は、現在の出力インタフェースであるインタフェース217は折返しフラグがONであるためパケットを送信することができないと判断し、他の送信可能インタフェースを検索するために、現在の出力インタフェースであるインタフェース217を入力情報として指定し(図14のS307)、S303処理へ移行する。なお、S307で指定した入力情報は、S303で他の送信可能インタフェースを検索するための検索条件となる。パス選択処理部114は、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が、検索条件に指定されたインタフェース217の次に高い出力インタフェースを検索するが、宛先IPアドレス10.0.1.254に対する出力インタフェースはインタフェース217のみであるため、“出力パスなし”と判定し(図14のS303)、S308処理へ移行する。
受信パケットはS304において既に“通常パケット”であると判定済であるため(図14のS308)S310処理へ移行する。マルチパス制御部113の廃棄判定処理部115は、受信したパケットのDMACフィールドとSMACフィールドを反転する(図14のS310)。そして、パケット転送処理部112が、受信したパケットを入力インタフェースであるインタフェース216からネットワーク装置101へ折返す(図14のS313)。
ネットワーク装置101は、ネットワーク装置105が折返したパケットを、インタフェース202より受信すると(図14のS301)、パケット転送処理部112が、図4に示したフォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース202またはインタフェース203と決定する(図14のS302)。マルチパス制御部113のパス選択処理部114は、図12に示した出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が1と最も高いインタフェース203を出力インタフェースに決定する(図14のS303)。
パス選択処理部114は、更に、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース202及びインタフェース203の中に、パケットの入力インタフェースであるインタフェース202が含まれているため、受信したパケットは“折返しパケット”であると判定する(図14のS304)。続いて、パス選択処理部114は、図12に示した出力パス優先度テーブル118を検索し、パケットの入力インタフェースがインタフェース202であるため、宛先IPアドレス10.0.1.254の出力インタフェース202の出力優先度である2を入力優先度として決定する。また、更に、パス選択処理部114は、S303で決定したパケットを送信する出力インタフェース203の出力優先度と、パケットを受信した入力インタフェースの入力優先度を比較し、出力優先度が1と入力優先度より高いため、“転送不可”と判定する(図14のS305)。このように、受信したパケットの出力優先度が入力優先度より高い場合は検索した出力インタフェースからは転送不可であると判定するため、既にパケットを送信して折り返されてしまったインタフェース203に再度パケットを送信してしまうといったことを防ぐことができる。
パス選択処理部114は、現在の出力インタフェースであるインタフェース203からは、パケットを送信することができないと判断し、他の送信可能インタフェースを検索するために、現在の出力インタフェースであるインタフェース203を入力情報として指定し(図14のS307)、S303処理へ移行する。なお、S307で指定した入力情報は、S303で他の送信可能インタフェースを検索するための検索条件となる。パス選択処理部114は、図12に示した出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が、検索条件に指定されたインタフェース203の次に高い出力インタフェースを検索し、出力優先度が2とインタフェース203の次に高いインタフェース202を出力インタフェースに決定し(図14のS303)、S304処理に移行する。
受信パケットは既に“折返しパケット”であると判定済であるため、S305処理に移行する(図14のS304)。パス選択処理部114は、既に2と算出済の入力優先度と、パケットを送信するインタフェースである出力インタフェース202の出力優先度を比較し、ともに2であるため、“転送不可”であると判定する(図14のS305)。このように、受信したパケットの出力優先度と入力優先度が等しい場合は検索した出力インタフェースからは転送不可であると判定するため、折返しパケットを受信した場合に再度同じインタフェースから送信してしまうといったことを防ぐことができる。
パス選択処理部114は、現在の出力インタフェースであるインタフェース202からもパケットを送信することができないと判断し、更に他の送信可能インタフェースを検索するために、現在の出力インタフェースであるインタフェース202を入力情報として指定し(図14のS307)、再びS303処理へ移行する。なお、S307で指定した入力情報は、S303で他の送信可能インタフェースを検索するための検索条件となる。パス選択処理部114は、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が検索条件に指定されたインタフェース202の次に高い出力インタフェースを検索するが、宛先IPアドレス10.0.1.254に対する出力インタフェースはインタフェース202、インタフェース203のみであるため、“出力パスなし”と判定し(図14のS303)、S308処理に移行する。
受信パケットは既に“折返しパケット”であると判定済であるため、S314処理に移行する(図14のS308)。そして、パケット転送処理部112が、受信したパケット廃棄する(図14のS314)。
以上で説明したように、多重障害により折返しパケットを複数回受信した場合、最も出力優先度の低いインタフェースから折返しパケットを受信した契機でパケットを廃棄するため、図18の点線矢印1003で示すように、ネットワーク内に多重障害が発生しても折返しパケットがループすることを回避することができる。
A−5.経路復旧時の動作:
A−3で説明した、ネットワーク装置102とネットワーク装置103を接続する回線に障害が発生すると、ネットワーク装置101−105の経路計算処理部110にて経路再計算が行われ、再計算後の経路がフォワーディングテーブル111にインストールされる。ここでは経路再計算が完了した後の、インターネット400から端末302宛のパケットが、端末302へ到達するまでのパケット転送ルートについて説明する。
ネットワーク装置101−105の経路計算処理部110は、OSPFルーティングプロトコルにより、回線障害500が発生したことを広告し、端末302宛の経路を再計算する。そして、再計算した経路をフォワーディングテーブル111にインストールする。
図21は、回線障害500が発生し、OSPFルーティングプロトコルにより経路の再計算が完了した後の、ネットワーク装置101のフォワーディングテーブル111の内容を示す図である。各項目の説明は図4と同様であるため省略する。端末301,302,303宛の経路は出力インタフェースが1つのみであり、インタフェース202のみが登録されている。
図20は、ルーティングプロトコルによる経路の再計算が完了した後の、インターネット400から端末302宛のパケットがネットワーク装置101を経由し、端末302へ到達するまでのパケット転送処理について説明する図である。
端末302のIPアドレスは、図3に示すように10.0.1.254である。
ネットワーク装置101は、インターネット400からのパケットを、インタフェース201より受信すると(図14のS301)、パケット転送処理部112が、図21のフォワーディングテーブル111を検索し、宛先IPアドレス10.0.1.254に対する出力インタフェースをインタフェース202に決定する(図14のS302)。マルチパス制御部113のパス選択処理部114は、出力パス優先度テーブル118を検索し、宛先IPアドレス10.0.1.254の出力インタフェースのうち出力優先度が最も高い優先度のインタフェース202を出力インタフェースに決定する(図14のS303)。なお、経路再計算後のネットワーク装置101の出力パス優先度テーブル118の説明図は省略するが、ネットワーク装置101の優先度テーブル118は、端末302の宛先IPアドレスに対し、出力インタフェースが1つのみであり、出力優先度が最も高いインタフェースが、インタフェース202であるという内容になっている。
パス選択処理部114は、更に、S302におけるフォワーディングテーブル111の検索結果より、宛先IPアドレス10.0.1.254に対する出力インタフェースであるインタフェース202が、パケット入力インタフェースであるインタフェース201と異なるため、受信したパケットは“通常パケット”であると判定する(図14のS304)。続いて、パス選択処理部114は、図7に示した折返し判定テーブル116を検索し、出力インタフェースであるインタフェース202に対応する折返しフラグがOFFであると判定する(図14のS306)。そして、パケット転送処理部112が、受信したパケットをインタフェース202からネットワーク装置105へ送信する(図14のS312)。
ネットワーク装置105は、ルーティングプロトコルによる経路の再計算前後で端末302の経路情報に差分がない。このため、ネットワーク装置105が、ネットワーク装置101からパケットを受信し、ネットワーク装置103へ転送する処理は、「A−3.障害検出時動作1」で説明した動作と同様であるため省略する。
ネットワーク装置103も、ルーティングプロトコルによる経路の再計算前後で端末302の経路情報に差分がない。このため、ネットワーク装置103が、ネットワーク装置105からパケットを受信し、端末302へ転送する処理は、「A−3.障害検出時動作1」で説明した動作と同様であるため省略する。
以上で説明したように、インターネット400から端末302宛のパケットがネットワーク装置101を経由した場合、図20の点線矢印1004で示す転送ルートで端末302まで転送される。経路再計算後の完了後のフォワーディングテーブルの内容に従った転送ルートでパケットを転送することを実現している。
A−6.実施例の効果:
本実施例の効果を以下に示す。
第一の効果は、障害発生時においても、パケットを折り返して別経路で転送するため、経路の再計算が完了するまでの間にパケットの転送が停止することがなく、予備経路の計算を事前に行わなくてもパケットの通信停止を最小限に防ぐ信頼性の高いネットワークシステムを構築可能なことである。
第二の効果は、MPLSのような特別なプロトコルを使用していないため、既設のIPv4/IPv6ネットワーク網への適用が低コストで実現可能なことである。
第三の効果は、折返しパケットは特殊なカプセリングを施していないため、既設のIPネットワーク網の帯域を増やすことなく移設を可能としていることである。
第四の効果は、折返しパケットであるか否かの判断を、フォワーディングテーブルの検索結果と入力インタフェースとの比較により行うため、特殊なヘッダの解析処理などを行う必要がなく、通常のパケット転送で行われる処理の中で容易に折返しパケットであるか否かを判断できることである。これにより、折返しパケットであるか否かを判断するネットワーク装置の処理負荷が軽減される。
第五の効果は、障害発生時の通信が停止する時間は、障害発生から障害検出までの時間のみとなり、ルーティングプロトコルによる経路再計算や、障害によって変更された経路のインストール時間に依存しないことである。
第六の効果は、予備経路を備えるネットワーク装置において、出力インタフェースを決定する際に、既に送信した出力インタフェースを選択しないため、折返しパケットによりループが発生することを回避することができる。また、出力優先度に応じて順次出力するインタフェースを決定するため、複数の予備経路が存在するネットワークシステムにおいても適用することができる。
B.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
B−1.変形例1:
各ネットワーク装置は、パケットのTTL(Time To Live)を減算するモードと、減算しないモードを備え、TTLを減算しないモードを適用した場合、折返しフラグがONであるためパケットを折返すときと、折返されたパケットを別のインタフェースに転送するときは、TTLを減算しないようにしてもよい。TTLを減算しないモードの場合、障害の発生によりパケットが迂回ルートを経由して転送している間も、受信端末は障害発生前と変化なくパケットを受信することが可能である。
B−2.変形例2:
実施例ではイーサネット(登録商標)を例に説明したが、折返しパケットのレイヤ2ヘッダは、1つ手前のパケット送信元であるレイヤ3ネットワーク装置を宛先とするように変更するものであればどのような方式でも適用も可能である。ただし、折返すパケットはパケット長が変化しないことが望ましい。