経路生成方法、中継装置、および経路生成プログラム
【課題】自動的に冗長経路を生成する。
【解決手段】複数のノード100からなるネットワーク上のIngressノードとEgressノード間の最短パスが生成されている状態において、IngressノードからEgressノードへパケットを送信する際に、最短パスへのポートからパケットを送信したうえで、最短パスへのポート以外の残余のポートからフラッディングすることにより、ネットワークを構成するノード100のうち最短パスを構成しないノード100は、従来技術である先着学習方式に従って、ネットワークから最短パスを除いた残余のネットワークにおいて最短となるパス、即ち最短パスとリンク・ノードを共用しない冗長パスを自動的に生成していく。そのため、オペレータは、IngressノードおよびEgressノードを指定するだけで冗長経路を自動的に生成することができる。
【解決手段】複数のノード100からなるネットワーク上のIngressノードとEgressノード間の最短パスが生成されている状態において、IngressノードからEgressノードへパケットを送信する際に、最短パスへのポートからパケットを送信したうえで、最短パスへのポート以外の残余のポートからフラッディングすることにより、ネットワークを構成するノード100のうち最短パスを構成しないノード100は、従来技術である先着学習方式に従って、ネットワークから最短パスを除いた残余のネットワークにおいて最短となるパス、即ち最短パスとリンク・ノードを共用しない冗長パスを自動的に生成していく。そのため、オペレータは、IngressノードおよびEgressノードを指定するだけで冗長経路を自動的に生成することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、経路を生成する経路生成方法、中継装置、および経路生成プログラムに関する。
【背景技術】
【0002】
広域イーサネット(登録商標)サービス(Ethernet(登録商標) Service)の普及に伴い、MAN(Metro Area Network)やWAN(Wide Area Network)といった広域ネットワークに対するイーサネット(登録商標)技術の進出がめざましくなっている。
【0003】
このようなネットワークでは、リンクの障害や中継装置(以下、「ノード」という)の障害が起こった場合にも通信が継続できるように、リンクやパスを冗長化して障害時には予備側に切り替える。
【0004】
例えば、イーサネット(登録商標)のネットワーク冗長方式として定められたスパニングツリープロトコル(STP)やSTPの拡張方式であるRSTP(ラピッドSTP)を用いた場合には、ツリーを構成し直すことで障害復旧が可能である(例えば、下記特許文献1参照)。
【0005】
また、近年、ITU−Tにおいてイーサネット(登録商標)冗長方式の標準化がなされ、1+1パスプロテクションが規定された。例えば、1+1パスプロテクション方式を用いた場合には、始点ノードと終点ノードの間に、リンク・ノードを共用しない現用パスと予備パスが設定され、始点ノードで両パスそれぞれにパケットを送信し、終点ノードにおいて現用パスから来たパケットを選択する。これにより、現用パスに障害が起きた場合には、終点ノードにおいて予備パスから来たパケットを使用するように切り替えることで、高速な障害復旧が可能である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−258955号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述したSTPを用いた場合には、ツリーを構成し直すのに時間がかかり、冗長経路への切り替え時間が長いという問題があった。また、RSTPは、このSTPの欠点をある程度解消できるが、障害の位置によってはSTP同様切り替え時間が長くなるという問題があった。
【0008】
また、1+1パスプロテクション方式を用いた場合には、障害復旧は高速に行うことができるが、この方式では、現用パスと予備パスが共用しないようにするためのオペレーションコストがかかるという問題があった。
【0009】
1つの側面では、本発明は、現用の経路とリンクやノードを共用しない代替経路の生成する経路生成方法、中継装置、および経路生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
1つの案では、先着学習方式により第1の装置から第2の装置への経路が設定されたネットワークを構成する中継装置群内の経路上の一端の中継装置が、第1の装置を送信元とし第2の装置を宛先とする往路パケットを、一端の中継装置のポート群のうち先着学習方式で学習済の特定のポートから送信し、ポート群のうち往路パケットの受信ポートおよび特定のポート以外のポートからパケットをフラッディングし、中継装置群内の経路上の中継装置以外の中継装置が、フラッディングされてきた往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を先着学習方式で学習し、受信ポート以外のポートから往路パケットをフラッディングし、中継装置群内の経路上の他端の中継装置が、経路上の中継装置から送信されてきた往路パケットを、先着学習方式で学習済の他端の中継装置のポート番号のポートから第2の装置宛に送信し、他端の中継装置にフラッディングされてきた往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を学習する経路生成方法を用いる。
【0011】
1つの案では、一連のパケットを受信し、受信した一連のパケットのうち先着のパケットと先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定し、後着のパケットが先着のパケットの次着であるか否かを判定し、宛先ごとに対応するポートのポート番号を記憶するテーブルに、同一性があると判定され、かつ、次着と判定された後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された後着のパケットの送信元とを関連付けて格納する中継装置および経路生成プログラムを用いる。
【0012】
1つの案では、パケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、パケット内の宛先に対応する特定のポート番号が記憶されているかを判定し、特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうちパケットを受信したポートを除くポートからパケットを一斉送信する中継装置および経路生成プログラムを用いる。
【発明の効果】
【0013】
本発明にかかる経路生成方法、中継装置、および経路生成プログラムによれば、現用の経路とリンクやノードを共用しない代替経路生成することができる。
【図面の簡単な説明】
【0014】
【図1】図1は、ノードによる次善パスの生成の内容を示す説明図(その1)である。
【図2】図2は、ノードによる次善パスの生成の内容を示す説明図(その2)である。
【図3】図3は、ノードのハードウェア構成を示すブロック図である。
【図4】図4は、MACテーブルの記憶内容を示す説明図である。
【図5】図5は、同一性情報テーブルの記憶内容を示す説明図である。
【図6】図6は、ノードの機能的構成を示す機能ブロック図である。
【図7】図7は、次善パスの生成の具体例を示す説明図(その1)である。
【図8】図8は、次善パスの生成の具体例を示す説明図(その2)である。
【図9】図9は、次善パスの生成の具体例を示す説明図(その3)である。
【図10】図10は、次善パスの生成の具体例を示す説明図(その4)である。
【図11】図11は、次善パスの生成の具体例を示す説明図(その5)である。
【図12】図12は、次善パスの生成の具体例を示す説明図(その6)である。
【図13】図13は、次善パスの生成の具体例を示す説明図(その7)である。
【図14】図14は、次善パスの生成の具体例を示す説明図(その8)である。
【図15】図15は、次善パスの生成の具体例を示す説明図(その9)である。
【図16】図16は、次善パスの生成の具体例を示す説明図(その10)である。
【図17】図17は、次善パスの生成の具体例を示す説明図(その11)である。
【図18】図18は、Ingressノードの経路生成処理の詳細を示すフローチャートである。
【図19】図19は、Ingressノードの遅延挿入を行う経路生成処理の詳細を示すフローチャートである。
【図20】図20は、Egressノードの経路生成処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下に添付図面を参照して、本発明の実施の形態にかかる経路生成方法、中継装置、および経路生成プログラムを詳細に説明する。
【0016】
(ノードによる次善パスの生成の内容)
まず、図1および図2を用いてノードによる次善パスの生成の内容を示す説明図について説明する。図1および図2は、ノードによる次善パスの生成の内容を示す説明図である。図1および図2は、複数のノード100によって構成されるネットワークを示している。ここでは、ネットワークは、ノードA〜Iの9つのノード100から構成される。また、ノードAは始点ノード(Ingressノード)としてオペレータによって設定されている。また、ノードIは終点ノード(Egressノード)としてオペレータによって設定されている。
【0017】
ここで、このネットワークでは、従来技術である先着学習方式によって、IngressノードであるノードAとEgressノードであるノードI間の最短のパス(最短パス)が生成されている。ここでは、最短パスは、ノードA、ノードB、ノードD、ノードG、ノードIを通過するパスであるとする。
【0018】
このように最短パスが生成された状態において、IngressノードであるノードAおよびEgressノードであるノードIは、最短パスのほかに、冗長経路として次善のパス(次善パス)を生成する処理を行う。一方で、ノードB〜Hは従来技術である先着学習方式に従って処理を行う。ここで、次善パスとは、最短パスとノードやリンクを共用しない(Node disjoint/Link disjoint)パスであり、最短パスを除外した残余のネットワークにおいて最短となりうるパスである。
【0019】
従来技術のため、詳細な説明を省略するが、先着学習方式では、ノード100は、複数のポートから同一パケットが受信された場合、最も早くパケットが受信されたポートのポート番号とパケットの送信元とを関連付けて保持する。そして、ノード100は、受信されたポート以外のポートからパケットをフラッディングする。また、ノード100は、次着以降のパケットは廃棄する。
【0020】
具体的には、まず、ノード100は、ポート群から同一パケット群を受信した際に、その同一パケット群のうち最も早く到着したパケット(以下、「先着パケット」という)を抽出する。ここで、送信元から最も早く到着したパケットが通過したパスは、即ち、その送信元を宛先とした場合に宛先に最も早く到着できるパス(最短パス)である。
【0021】
従って、ノード100は、自ノードから先着パケットの送信元への最短パスに対応するポートのポート番号として、先着パケットを受信したポートのポート番号を記憶する。その後、ノード100は、受信した先着パケットをフラッディングし、次着以降のパケット(以下、「後着パケット」という)は廃棄する。そして、他のノード100も同様に最短パスに対応するポート番号を記憶していくことで、自動的に各ノード100から送信元への最短パスを生成する。
【0022】
なお、先着学習方式では、ノード100は、最短パスに対応するポート番号を記憶した時から所定時間経過後までは、最短パスに対応するポート番号が上書きされないようにして、最短パスの安定性を確保している。
【0023】
ここで、図1において(A)に示すように、本実施の形態にかかるIngressノードであるノードAは、(1)パケットを既知の最短パスへのポートからユニキャスト送信するとともに最短パスのポート以外の全てのポートからフラッディング(一斉送信)する。最短パスへ送信されたパケットは最短パスを通過してEgressノードであるノードIへ到着する。一方、ノードAによってフラッディングされたパケットは、(2)送信先の各ノード100で従来技術である先着学習方式に従って、入力ポート以外の全てのポートからフラッディングされる。例えば、ノードCでは、ノードEおよびノードFへのポートからフラッディングされる。
【0024】
このように各ノード100が受信したパケットをフラッディングしていくと、(B)に示すようにパケットが送信されていく。ここで、従来技術である先着学習方式に従って、ノードB〜Hは、先着ポートをポート番号として学習する。これにより、最短パスを構成するノード100は、最短パスへのポートのポート番号を記憶し、残余のノード100は、最短パスを除いた残余のネットワークにおけるノードAへの最短のパス(次善パス)のポート番号を記憶していく。即ち、ノードAへの一方向の次善パスが生成される。
【0025】
例えば、ノードBでは、(3)最短パスへのポートが先着ポートとして既に学習されており、ノードEからのポートを先着ポートとして学習することはない。即ち、最短パスと交わるパスは次善パスから除外される。同様に、ノードGでは、(3)最短パスのポートが既に先着ポートとして学習されており、ノードEからのポートを先着ポートとして学習することはない。即ち、最短パスと交わるパスは次善パスから除外される。また、例えば、ノードHでは、(3)ノードEからのポートが既に先着ポートとして学習されており、ノードFからのポートを先着ポートとして学習することはない。即ち、最短パス以外のネットワークにおいて他のパスより遅延の大きいパスは次善パスから除外される。
【0026】
そして、本実施の形態にかかるEgressノードであるノードIは、先着パケットの次に到着したパケット(以下、「次着パケット」という)を受信したポート(以下、「次着ポート」という)を次善パスへのポートとして学習する。このようにして、(C)に示すように、次善パスを構成するノードC、ノードE、ノードH、ノードIはノードAへの次善パスのポートを学習することができるため、ノードIからノードAへの一方向の次善パスを生成できる。また、この次善パスは、最短パスとリンク・ノードを共用しないパスとなっている。
【0027】
次に、図2において(A)に示すように、本実施の形態にかかるEgressノードであるノードIは、(4)パケットを最短パスへのポートからユニキャスト送信するとともに、次善パスへのポートからユニキャスト送信する。最短パスへ送信されたパケットは最短パスを通過してIngressノードであるノードAへ到着し、次善パスへ送信されたパケットは次善パスを通過してIngressノードであるノードAへ到着する。
【0028】
ここで、次善パスを構成する各ノード100はノードIへの次善パスのポートを学習することができるため、ノードAからノードIへの一方向の次善パスが生成される。このようにして、(B)に示すように両方向の次善パスが生成される。
【0029】
このようにして、各ノード100は、パスを刈り取っていき最短パスと次善パスを生成する。生成後は、Ingressノードでは最短パスと次善パスの両方にパケットを送信し、Egressノードでは最短パスまたは次善パスによって送信されたパケットのうち、先着したパケットを保持し、後着パケットは廃棄する。次善パスと最短パスとはノード・リンクを共用しないため、このようにすれば、最短パスに障害が起こった場合でもパケットロスなく(無瞬断で)次善パスから受信したパケットを送信先に送信することができる。
【0030】
(ノードのハードウェア構成)
次に、図3を用いてノードのハードウェア構成について説明する。
【0031】
図3は、ノードのハードウェア構成を示すブロック図である。図3において、ノード100は、CPU(Central Processing Unit)301と、記憶装置302と、I/F(Interface)303と、を備えている。また、各構成部は、バス310によってそれぞれ接続されている。
【0032】
CPU301は、ノード100全体の制御を司る。記憶装置302は、冗長経路生成プログラムを記憶している。また、記憶装置302は、MACテーブル302aと同一性情報テーブル302bを記憶している。記憶装置302としては、不揮発性メモリやフラッシュメモリ、ハードディスクドライブなどを採用することができる。
【0033】
インターフェース(以下、「I/F」と略する。)303は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク320に接続され、このネットワーク320を介して他の装置に接続される。そして、I/F303は、ネットワーク320と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F303には、例えばモデムやLANアダプタなどを採用することができる。
【0034】
(MACテーブルの記憶内容)
次に、図3に示したMACテーブルの記憶内容について説明する。
【0035】
図4は、MACテーブルの記憶内容を示す説明図である。図4に示すように、MACテーブル302aは、アドレス項目と、先着ポート項目と、次着ポート項目と、学習時刻項目と、を有する。
【0036】
アドレス項目には、パケットの宛先を一意に識別する宛先MACアドレスが記憶される。MACアドレスとは、イーサネット(登録商標)の場合、48ビット(EUI−48)の符号である。先着ポート項目には、先着パケットを受信したポートのポート番号(以下、「先着ポート番号」という)が記憶される。先着パケットとは、他のノード100がフラッディングしたパケットのうち最も早く自ノードに到着したパケットである。次着ポート項目には、次着パケットを受信したポートのポート番号(以下、「次着ポート番号」という)が記憶される。次着パケットとは、他のノード100がフラッディングしたパケットのうち先着パケットの次に自ノードに到着したパケットである。学習時刻項目には、先着パケットを受信した時刻が記憶される。
【0037】
なお、MACテーブル302aでは、記憶内容を最新に保つため、所定時間更新されなかったレコードは削除される。この所定時間を測定するタイマーをAging timerという。
【0038】
(同一性情報テーブルの記憶内容)
次に、図3に示した同一性情報テーブルの記憶内容について説明する。
【0039】
図5は、同一性情報テーブルの記憶内容を示す説明図である。図5に示すように、同一性情報テーブル302bは、パケット情報(FCS値)項目と、先着時刻項目と、フラグ項目と、を有する。
【0040】
パケット情報項目には、受信したパケットが先着パケットか後着パケットかを判定するために用いるパケットのFCS(Frame Check Sequence)値(以下、「パケット情報」という)が記憶される。例えば、受信したパケットのFCS値と同値のFCS値が同一性情報テーブル302bに記憶されていない場合は受信したパケットは先着と判定されるようにする。また、受信したパケットのFCS値と同値のFCS値が同一性情報テーブル302bに記憶されている場合は受信したパケットは次着以降と判定されるようにする。
【0041】
ここで、FCS値とは、イーサネット(登録商標)におけるフレームの伝送誤り検出用に付加される32ビットのフィールドであり、生成多項式により得られるCRC(Cyclic Redundancy Code)値のことを指す。つまり、このFCS値は、パケット全体を縮退した値であるので、これを同一性情報テーブル302bに保持して同一性判定に用いることとすれば、ハッシュ関数を用いたハッシュ値算出を行うことなくハッシュ値による同一性判定を行うことができる。なお、FCS値を同一性判定に利用した場合の誤認識率は約43億分の1になる。
【0042】
ここでは、パケット情報項目には、パケットのFCS値が記憶されるとしたが、例えば、パケット情報項目には、パケットそのものが記憶されてもよいし、またパケットの所定部分のみが記憶されてもよい。パケットの所定部分としては、例えば、送信元MACアドレスや宛先MACアドレスを採用してもよいし、それらMACアドレスの組み合わせを採用してもよい。さらに、パケット情報項目には、パケットそのものまたはパケットの所定部分のハッシュ値を記憶してもよい。また、ハッシュ関数を用いたハッシュ値を採用してもよい。
【0043】
先着時刻項目には、パケット情報を記憶した時刻が記憶される。フラグ項目は、パケットのFCS値と組み合わせてパケットの着順を識別するためのフラグが記憶される。例えば、受信したパケットのFCS値と同値の先着パケットのFCS値が同一性情報テーブル302bに記憶されていて、かつフラグが1である場合に、受信したパケットが次着であることを示すようにする。また、受信したパケットのFCS値と同値の先着パケットのFCS値が同一性情報テーブル302bに記憶されていて、かつフラグが0である場合に、受信したパケットが3着以降であることを示すようにする。
【0044】
(ノードの機能的構成)
次に、図6を用いてノードの機能的構成について説明する。
【0045】
図6は、ノードの機能的構成を示す機能ブロック図である。図6に示すように、ノード100は、N個のポートを備えるとともに、パケット送受信部601と、パケット処理部602と、テーブル制御部603と、MACテーブル302aと、同一性情報テーブル302bと、を備える。また、各機能部(パケット送受信部601〜テーブル制御部603)の処理結果は、特に指定する場合を除いて、例えば、記憶装置302に記憶される。
【0046】
ノード100がIngressノードまたはEgressノードとして動作する場合のパケット送受信部601は、パケットを受信する機能を有する。具体的には、例えば、パケット送受信部601は、ポートからパケットを受信する。また、ノード100がIngressノードまたはEgressノードとして動作する場合のパケット送受信部601は、一連のパケットを受信する機能を有する。具体的には、例えば、パケット送受信部601は、複数のポートからそれぞれパケットを受信する。これにより、パケット送受信部601は、パケットを受信してMACテーブル302aや同一性情報テーブル302bを生成することができる。
【0047】
ここでは、ノード100がIngressノードとして動作する場合のパケット送受信部601の機能について説明する。パケット送受信部601は、テーブルに特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうちパケットを受信したポートを除くポートからパケットを一斉送信する機能を有する。ここで、テーブルとは、上述したMACテーブル302aである。特定のポート番号とは、上述した最短パスへのポートのポート番号である。
【0048】
具体的には、例えば、後述するパケット処理部602によりMACテーブル302aに最短パスへのポートのポート番号が記憶されているか否か判定される。そして、ポート番号が記憶されていると判定された場合、パケット送受信部601は、自ノードのポートのうちパケットを受信したポートを除くポートから、受信したパケットを複製してフラッディングする。
【0049】
例えば、あるノード100にポートが8個(ポートp1〜p8)あり、ポートp1が上述した特定のポートであり、ポートp2が、上述したパケットを受信したポートの場合、ポートp1,p3〜p8からフラッディングされる。
【0050】
また、VLAN(VirtualLAN)によりポート群(ポートp1〜p8)が、ポートp1〜p4とポートp5〜p8に論理分割されている場合は、ポートp1,p3、p4からフラッディングされる。ポートp5〜p8は、ポートp1、p2と同一VLANではないため、フラッディングされない。
【0051】
これにより、他のノード100は最短パスとリンク・ノードを共用しない次善パスを生成することができる。
【0052】
ここでは、ノード100がIngressノードとして動作する場合のパケット送受信部601の機能について説明する。パケット送受信部601は、テーブルに特定のポート番号が記憶されていると判定された場合、特定のポート番号のポートからパケットを送信する。そして、パケット送受信部601は、送信の時から所定時間経過後に、ポート群のうちパケットを受信したポートと特定のポート番号のポートとを除くポートからパケットを一斉送信する機能を有する。具体的には、例えば、パケット送受信部601は、MACテーブル302aに最短パスへのポートのポート番号が記憶されている場合に、受信したパケットを複製して最短パスへのポートから送信する。
【0053】
そして、最短パスへの送信から所定時間経過後に自ノードのポートのうちパケットを受信したポートおよび最短パスへのポートを除くポートから、受信したパケットを複製してフラッディングする。
【0054】
例えば、あるノード100にポートが8個(ポートp1〜p8)あり、ポートp1が上述した特定のポートであり、ポートp2が、上述したパケットを受信したポートの場合、ポートp3〜p8からフラッディングされる。
【0055】
また、VLAN(VirtualLAN)によりポート群(ポートp1〜p8)が、ポートp1〜p4とポートp5〜p8に論理分割されている場合は、ポートp3、p4からフラッディングされる。ポートp5〜p8は、ポートp1、p2と同一VLANではないため、フラッディングされない。
【0056】
これにより、最短パスへ送信したパケットが遅延した場合であっても他のノード100は最短パスとリンク・ノードを共用しない次善パスを生成することができる。
【0057】
ここでは、ノード100がEgressノードとして動作する場合のパケット送受信部601の機能について説明する。パケット送受信部601は、先着のパケットおよび次着と判定された後着のパケットの送信元を宛先とするパケットを、テーブルに基づいて、先着のパケットを受信したポートおよび次着と判定された後着のパケットを受信したポートのそれぞれから送信する機能を有する。ここで、先着のパケットとは上述した先着パケットであり、後着のパケットとは、上述した後着パケットであり、次着と判定された後着のパケットとは上述した次着パケットである。
【0058】
宛先とは、パケットの宛先であり、宛先MACアドレスとして表される。送信元とはパケットの送信元であり、送信元MACアドレスとして表される。具体的には、例えば、パケット送受信部601は、MACテーブル302aに基づき、最短パスへのポートおよび次善パスへのポートの2つのポートからパケットを送信する。これにより、同一パケットを2つのパスを経由して宛先に送信することができるため、いずれか一方のパスに障害があっても宛先へパケットを到着させることができる。
【0059】
ここでは、ノード100がEgressノードとして動作する場合のパケット送受信部601の機能について説明する。パケット送受信部601は、テーブルに記憶されている宛先を送信元とするパケットが、宛先に対応する2つのポートからそれぞれ受信された場合、2つのポートから受信されたパケットのうち先着のパケットのみを送信する機能を有する。ここで、宛先に対応する2つのポートとは、上述した最短パスへのポートおよび次善パスへのポートである。
【0060】
具体的には、パケット送受信部601は、MACテーブル302aにポート番号で記憶されている最短パスへのポートおよび次善パスへのポートからそれぞれパケットを受信した場合、いずれのパスを通過したパケットかに関わらず、先着パケットをパケットの宛先に送信し、もう一方のパケットは廃棄する。これにより、パケット送受信部601は、一方のパスに障害が発生した場合であっても、他方のパスからパケットを受信することができる。
【0061】
パケット送受信部601は、具体的には、例えば、図3に示した記憶装置302に記憶された経路生成プログラムをCPU301に実行させることにより、およびI/F303により、その機能を実現する。
【0062】
ここでは、ノード100がIngressノードとして動作する場合のパケット処理部602の機能について説明する。パケット処理部602は、パケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する機能を有する。具体的には、例えば、パケット処理部602は、MACテーブル302aに、パケット送受信部601によって受信されたパケット内の宛先MACアドレスに対応するポート番号が記憶されているか判定する。これにより、上述した最短パスへのポートのポート番号がMACテーブル302aに記憶されているか判定することができる。
【0063】
ここでは、ノード100がIngressノードまたはEgressノードとして動作する場合のパケット処理部602の機能について説明する。パケット処理部602は、一連のパケットが受信された場合、一連のパケットのうち先着のパケットと先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定機能を有する。具体的には、例えば、パケット処理部602は、受信したパケットのFCS値と同値のFCS値が同一性情報テーブル302bに記憶されているか判定し、記憶されていなければ受信したパケットを先着パケットと判定する。
【0064】
一方、パケット処理部602は、受信したパケットのFCS値と同値のFCS値が同一性情報テーブル302bに記憶されていれば受信したパケットを次着以降のパケットと判定する。これにより、パケット処理部602は、一連のパケットのうち先着パケットと次着以降のパケットとを識別することができる。
【0065】
ここでは、ノード100がEgressノードとして動作する場合のパケット処理部602の機能について説明する。パケット処理部602は、後着のパケットが先着のパケットの次着であるか否かを判定する着順判定機能を有する。具体的には、例えば、パケット処理部602は、同一性情報テーブル302bに基づき次着以降と判定された場合に、さらに同一性情報テーブル302bのフラグに基づき、受信したパケットが次着パケットか3着以降のパケットかを判定することができる。これにより、パケット処理部602は、次着パケットを判定し、次善パスへのポートを特定することができる。
【0066】
パケット処理部602は、具体的には、例えば、図3に示した記憶装置302に記憶された経路生成プログラムをCPU301に実行させることにより、その機能を実現する。
【0067】
ここでは、ノード100がIngressノードとして動作する場合のテーブル制御部603の機能について説明する。テーブル制御部603は、テーブルに、同一性判定機能によって同一性があると判定された後着のパケットを受信したポートのポート番号と、宛先となる後着のパケットの送信元とを関連付けて格納する機能を有する。具体的には、例えば、テーブル制御部603は、MACテーブル302aに後着パケットを受信したポートのポート番号と次着パケットの送信元MACアドレスとを関連付けてレコードとして記憶する。これにより、テーブル制御部603は、着順を判定せずに後着のパケットを受信したポートのポート番号に基づき、次善パスへのポートのポート番号をMACテーブル302aに保持することができる。
【0068】
ここでは、ノード100がEgressノードとして動作する場合のテーブル制御部603の機能について説明する。テーブル制御部603は、宛先ごとに対応するポートのポート番号を記憶するテーブルに、同一性判定機能によって同一性があると判定され、かつ、着順判定機能によって次着と判定された後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された後着のパケットの送信元とを関連付けて格納する機能を有する。
【0069】
具体的には、例えば、テーブル制御部603は、MACテーブル302aに次着パケットを受信したポートのポート番号と次着パケットの送信元MACアドレスとを関連付けてレコードとして記憶する。これにより、テーブル制御部603は、次着パケットを受信したポートのポート番号に基づき、次善パスへのポートのポート番号をMACテーブル302aに保持することができる。
【0070】
テーブル制御部603は、具体的には、例えば、図3に示した記憶装置302に記憶された経路生成プログラムをCPU301に実行させることにより、および記憶装置302によりその機能を実現する。
【0071】
(次善パスの生成の具体例)
次に、図7〜17を用いて、次善パスの生成の具体例について説明する。図7〜図17は、次善パスの生成の具体例を示す説明図である。ここで、図7〜図17は、ノードA〜Iから構成されるネットワークを示している。また、ノードAのポート番号「0」のポートのリンクの先にはMACアドレス「xxx」の装置701が接続されており、ノードIのポート番号「25」のポートのリンクの先にはMACアドレス「yyy」の装置702が接続されている。なお、以下の図では、簡単のため、ポート番号「0」のポート、MACアドレス「xxx」の装置701、ポート番号「25」のポート、MACアドレス「yyy」の装置702の図示を省略する場合がある。
【0072】
図7に示すように、このネットワークでは、まず従来技術である先着学習方式によって、MACアドレス「xxx」およびMACアドレス「yyy」間の最短パスが生成されている。ここでは、最短パスは、ノードA、ノードB、ノードD、ノードG、ノードIを通過するパスである。また、最短パスを構成する各ノード100は、MACアドレス「xxx」およびMACアドレス「yyy」に対してパケットを送信する際に使用するポートのポート番号をテーブルに保持している。一方で、最短パスを構成しないノードC、ノードE、ノードF、ノードHは、MACアドレス「yyy」に対してパケットを送信する際に使用するポートのポート番号は保持していない。
【0073】
このように最短パスが生成された状態で、本実施の形態にかかるIngressノードおよびEgressノードは、次善パスの生成を行う。ここでは、IngressノードおよびEgressノードとなりうるノード100は、ノードAとノードIであるとする。なお、IngressノードおよびEgressノード以外のノードは、従来の先着学習方式に従って処理を行っている。
【0074】
図8に示すように、送信元MACアドレス(SA、Source Address)を「xxx」、宛先MACアドレス(DA、Destination Address)を「yyy」とするパケットがノードAに送信されたとする。ノードAはパケットを受信すると、本実施の形態にかかるIngressノードの処理に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。
【0075】
また、ノードAは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「1」が保持されているため、ポート番号「1」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してDA「yyy」に向かう。一方で、ノードAは、MACテーブル302aにDA「yyy」に対応する次着ポート番号が保持されていないため、入力ポートおよび先着ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0076】
図8において送信されたパケットは、それぞれ図9に示すように各ノード100に受信される。パケットを受信したノードBは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードBは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「5」が保持されているため、ポート番号「5」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してDA「yyy」に向かう。
【0077】
パケットを受信したノードCは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードCは、MACテーブル302aにDA「yyy」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0078】
図9において送信されたパケットは、それぞれ図10に示すように各ノード100に受信される。パケットを受信したノードDは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードDは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「10」が保持されているため、ポート番号「10」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してDA「yyy」に向かう。
【0079】
パケットを受信したノードEは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aのSA「xxx」に対応するポート番号「11」を受信したパケットのポート番号「12」に更新し、Aging timerを更新する。また、ノードEは、MACテーブル302aにDA「yyy」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パスの生成の際に保持されたSA「xxx」に対応するポート番号が更新され、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0080】
パケットを受信したノードFは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードFは、MACテーブル302aにDA「yyy」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0081】
図10において送信されたパケットは、それぞれ図11に示すように各ノード100に受信される。パケットを受信したノードGは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードGは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「19」が保持されているため、ポート番号「19」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してDA「yyy」に向かう。
【0082】
パケットを受信したノードHは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードHは、MACテーブル302aにDA「yyy」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0083】
再度別ポートからパケットを受信したノードBは、従来の先着学習方式に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。ここで、同一性情報テーブル302bに同一のパケット情報が保持されているため、ノードBは、受信したパケットは後着パケットであると判断し、パケットを廃棄する。この時MACテーブル302aは更新されない。これにより、最短パスとノード100を共有するパスは次善パスから除外される。
【0084】
図11において送信されたパケットは、それぞれ図12に示すように各ノード100に受信される。パケットを受信したノードIは、本実施の形態にかかるEgressノードの処理に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードIは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「25」が保持されているため、ポート番号「25」のポートからパケットをユニキャスト送信する。これによりパケットは、DA「yyy」に送信される。
【0085】
再度別ポートからパケットを受信したノードGは、従来の先着学習方式に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。ここで、同一性情報テーブル302bに同一のパケット情報が保持されているため、ノードGは、受信したパケットは後着パケットであると判断し、パケットを廃棄する。この時MACテーブル302aは更新されない。これにより、最短パスとノード100を共有するパスは次善パスから除外される。
【0086】
再度別ポートからパケットを受信したノードHは、従来の先着学習方式に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。ここで、同一性情報テーブル302bに同一のパケット情報が保持されているため、ノードHは、受信したパケットは後着パケットであると判断し、パケットを廃棄する。この時MACテーブル302aは更新されない。これにより、最短パス以外のネットワークにおいて他のパスより遅延の大きいパスは次善パスから除外される。
【0087】
図12において送信されたパケットは、それぞれ図13に示すように各ノード100に受信される。再度別ポートからパケットを受信したノードIは、本実施の形態にかかるEgressノードの処理に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。同一性情報テーブル302bに同一のパケット情報が保持されている場合、ノードIは、同一性情報テーブル302bのフラグに基づき受信したパケットが次着パケットであるか否かを判断する。
【0088】
ここで、ノードIは、受信したパケットを次着パケットと判断し、受信したパケットのポート番号を次善パスへの送信に使用するポート番号としてMACテーブル302aに保持する。そして受信したパケットを廃棄する。これにより、最短パスとノード・リンクを共有しない次善パスへ送信するポート番号がMACテーブル302aに保持され、SA「yyy」からDA「xxx」への一方向への次善パスが生成される。なお、3着目以降のパケットは同一性情報テーブル302bのパケット情報とフラグとに基づいて廃棄され、MACテーブル302aは更新されない。
【0089】
次に、図14に示すように、SAを「yyy」DAを「xxx」とするパケットがノードIに送信されたとする。ここで、ノードIは、本実施の形態にかかるEgressノードの処理に従って、MACテーブル302aに最短パスのポート番号と次善パスのポート番号とが保持されているため、それぞれのポートからユニキャスト送信する。最短パスを構成する各ノード100はMACアドレス「xxx」およびMACアドレス「yyy」に対してパケットを送信する際に使用するポート番号をテーブルに保持しているため、MACテーブル302aに基づいてDA「xxx」までパケットを送信することができる。
【0090】
一方、図15に示すように、次善パスを構成する各ノード100は、DA「xxx」に対応するポート番号がMACテーブル302aに保持されているため、対応するポート番号のポートからパケットをユニキャスト送信する。同時に、SA「yyy」に対応するポート番号をMACテーブル302aに保持していく。これにより、パケットは、次善パスを通過してDA「xxx」に向かい、同時に、DA「yyy」へ送信する際に使用するポート番号を保持することができる。
【0091】
そして、図16に示すように、再度別ポートからパケットを受信したノードAは、本実施の形態にかかるIngressノードの処理に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。同一性情報テーブル302bに同一のパケット情報が保持されている場合、ノードAは、同一性情報テーブル302bのフラグに基づき受信したパケットが次着パケットであるか否かを判断する。
【0092】
ここで、ノードAは、受信したパケットを次着パケットと判断し、受信したパケットのポート番号を次善パスへの送信に使用するポート番号としてMACテーブル302aに保持する。そして受信したパケットを廃棄する。これにより、最短パスとノード・リンクを共有しない次善パスへ送信するポート番号がMACテーブル302aに保持され、SA「xxx」からDA「yyy」への双方向への次善パスが生成される。なお、3着目以降のパケットは同一性情報テーブル302bのパケット情報とフラグとに基づいて廃棄され、MACテーブル302aは更新されない。
【0093】
このように次善パスが生成された後、本実施の形態にかかるIngressノードは、パケットを受信すると、最短パスと次善パスのそれぞれにパケットを送信する。そして、本実施の形態にかかるEgressノードは、最短パスと次善パスのうち、先着したパケットをDA「yyy」に送信し、後着したパケットは廃棄する。
【0094】
これにより、図17に示すように、最短パスを構成するリンクに障害が起こった場合であっても、次善パスからパケットを受信することができ、無瞬断かつパケットロスなしにネットワークを冗長化することができる。同様に、一方のパスがいわゆるキュー遅延により大きく遅延している場合であっても、もう一方のパスから遅延なしにパケットを受信することができる。そして、この次善パスは、IngressノードおよびEgressノード以外のノード100では従来の先着学習方式によって処理を行うため、オペレータはIngressノードおよびEgressノードについて設定を行うだけで、自動的にネットワークの冗長化を行うことができる。そのため、オペレーションコストを削減することができる。
【0095】
次に、図18に示したIngressノードの経路生成処理の詳細について説明する。図18は、Ingressノードの経路生成処理の詳細を示すフローチャートである。
【0096】
図18に示すように、パケット処理部602は、パケットが到着すると(ステップS1801)、パケット情報(FCS値)を同一性情報テーブル302bに保持する(ステップS1802)。
【0097】
つづいて、パケット処理部602は、MACテーブル302aに到着したパケット(以下、「到着パケット」という)内のSA(送信元MACアドレス)と同一のアドレスがあるか否かを判定し(ステップS1803)、SAがある場合には(ステップS1803:Yes)、Aging timerの更新を行う(ステップS1804)。一方、SAがない場合には(ステップS1803:No)、パケット処理部602は、MACテーブル302aにSAおよび到着パケットを受信したポートのポート番号(以下、「受信ポート」という)を保持するとともに(ステップS1805)、Aging timerの開始を行う(ステップS1806)。
【0098】
また、パケット処理部602は、MACテーブル302aに到着パケット内のDA(宛先MACアドレス)に対応する先着ポート項目のポート番号(以下、「先着ポート番号」という)があるか否かを判定する(ステップS1807)。先着ポート番号がある場合には(ステップS1807:Yes)、パケット処理部602は、MACテーブル302aに到着パケット内のDA(宛先MACアドレス)に対応する次着ポート項目のポート番号(以下、「次着ポート番号」という)があるか否かを判定する(ステップS1808)。
【0099】
次着ポート番号がある場合には(ステップS1808:Yes)、パケット処理部602は、テーブルで指定された先着ポート番号のポート(以下、「先着ポート」という)と次着ポート番号のポート(以下、「次着ポート」という)の2ポートからユニキャスト送信を行って(ステップS1809)処理を終了する。
【0100】
一方、先着ポート番号がない場合(ステップS1807:No)、または次着ポート番号がない場合には(ステップS1808:No)、パケット処理部602は、該当パケットが未到着の全ポートから到着パケットをフラッディングして(ステップS1810)、処理を終了する。このとき、ポートが例えばVLAN(VirtualLAN)などのネットワーク単位でグループ分けされている場合は、パケット処理部602は、パケットの受信ポートと同じグループに所属するポートのみに対してフラッディングを行う。換言すれば、パケット処理部602は、先着ポート番号がない場合(ステップS1807:No)、または次着ポート番号がない場合には(ステップS1808:No)、パケットが未到着のポートのうちブロードキャストドメインの全ポートからフラッディングを行う。
【0101】
ここでは、各ノード100に最短パスからのパケットが必ず先着することを前提としているが、キュー遅延によって最短パスからのパケットの到着が遅れる場合も考えられる。このような場合にも、最短パスからのパケットが必ず先着するようにするために、図18に示した経路生成処理を、図19に示す経路生成処理に修正してもよい。
【0102】
図19は、Ingressノードの遅延挿入を行う経路生成処理の詳細を示すフローチャートである。図19に示すように、パケット処理部602は、パケットが到着すると(ステップS1901)、パケット情報を同一性情報テーブル302bに保持する(ステップS1902)。
【0103】
つづいて、パケット処理部602は、MACテーブル302aに到着パケット内のSAと同一のアドレスがあるか否かを判定し(ステップS1903)、SAがある場合には(ステップS1903:Yes)、Aging timerの更新を行う(ステップS1904)。一方、SAがない場合には(ステップS1903:No)、パケット処理部602は、MACテーブル302aにSAおよび受信ポートを保持するとともに(ステップS1905)、Aging timerの開始を行う(ステップS1906)。
【0104】
また、パケット処理部602は、MACテーブル302aに到着パケット内のDAに対応する先着ポート番号があるか否かを判定する(ステップS1907)。先着ポート番号がある場合には(ステップS1907:Yes)、パケット処理部602は、MACテーブル302aに到着パケット内のDAに対応する次着ポート番号があるか否かを判定する(ステップS1908)。
【0105】
次着ポート番号がある場合には(ステップS1908:Yes)、パケット処理部602は、テーブルで指定された先着ポートと次着ポートの2ポートからユニキャスト送信を行って(ステップS1909)処理を終了する。
【0106】
一方、次着ポート番号がない場合には(ステップS1908:No)、パケット処理部602は、テーブルで指定された先着ポートから送信を行って、所定時間経過後(遅延挿入という)にステップS1911に進む(ステップS1910)。そして、パケット処理部602は、先着ポート以外であって該当パケットが未到着の全ポートからフラッディングして(ステップS1911)処理を終了する。
【0107】
また、先着ポート番号がない場合には(ステップS1907:No)、パケット処理部602は、該当パケットが未到着の全ポートからフラッディングを行って(ステップS1912)処理を終了する。このとき、ポートが例えばVLAN(VirtualLAN)などのネットワーク単位でグループ分けされている場合は、パケット処理部602は、パケットの受信ポートと同じグループに所属するポートのみに対してフラッディングを行う。換言すれば、パケット処理部602は、先着ポート番号がない場合(ステップS1907:No)、または次着ポート番号がない場合には(ステップS1908:No)、パケットが未到着のポートのうちブロードキャストドメインの全ポートからフラッディングを行う。
【0108】
次に、図20に示したEgressノードの経路生成処理の詳細について説明する。図20は、Egressノードの経路生成処理の詳細を示すフローチャートである。
【0109】
図20に示すように、パケット処理部602は、パケットが到着すると(ステップS2001)、同一性情報テーブル302bに一致情報があるか否かを判定する(ステップS2002)。そして、同一性情報テーブル302bに一致情報がない場合には(ステップS2002:No)、パケット処理部602は、ステップS2001におけるパケットに関するパケット情報を同一性情報テーブル302bに保持するとともに、フラグを1にセットする(ステップS2003)。
【0110】
つづいて、パケット処理部602は、MACテーブル302aに到着パケット内のSAと同一のアドレスがあるか否かを判定し(ステップS2004)、SAがある場合には(ステップS2004:Yes)、Aging timerの更新を行う(ステップS2005)。一方、SAがない場合には(ステップS2004:No)、パケット処理部602は、MACテーブル302aにSAおよび受信ポートを保持するとともに(ステップS2006)、Aging timerの開始を行う(ステップS2007)。
【0111】
また、パケット処理部602は、MACテーブル302aに到着パケット内のDAに対応する先着ポート番号があるか否かを判定し(ステップS2008)、先着ポート番号がある場合には(ステップS2008:Yes)、テーブルで指定されたポートからユニキャスト送信を行って(ステップS2009)処理を終了する。一方、先着ポート番号がない場合には(ステップS2008:No)、パケット処理部602は、該当パケットが未到着の全ポートからフラッディングを行って(ステップS2010)処理を終了する。
【0112】
このとき、ポートが例えばVLAN(VirtualLAN)などのネットワーク単位でグループ分けされている場合は、パケット処理部602は、パケットの受信ポートと同じグループに所属するポートのみに対してフラッディングを行う。換言すれば、パケット処理部602は、DAがない場合には(ステップS2008:No)、パケットが未到着のポートのうちブロードキャストドメインの全ポートからフラッディングを行う。
【0113】
また、ステップS2002において同一性情報テーブル302bに一致情報があると判定された場合には(ステップS2002:Yes)、パケット処理部602は、同一性情報テーブル302bに記憶されているフラグが1か否か判定する(ステップS2011)。フラグが1でない場合(ステップS2011:No)、ステップS2014に進む。フラグが1である場合(ステップS2011:Yes)、パケット処理部602は、MACテーブル302aにSAおよび受信ポートを保持し(ステップS2012)、フラグを0にセットする(ステップS2013)。そして、パケット処理部602は、パケットを廃棄して(ステップS2014)処理を終了する。
【0114】
このように、上述した実施の形態では、最短パスの一端となるノード100は、パケットを受信したポート以外の全ポートへパケットをフラッディングする。これにより、ネットワークを構成するノード100に、最短パスとノード・リンクを共用しない次善パスの復路を自動的に学習させることができる。そして、最短パスの他端となるノード100は、最短パスと次善パスとを学習することができる。
【0115】
また、上述した実施の形態では、最短パスの一端となるノード100は、次善パスの生成の際、最短パスのポートからのパケットの送信時から一定時間経過後に、パケットを受信したポートおよび最短パスへのポート以外の全ポートへパケットをフラッディングする。そのため、最短パスにキュー遅延があった場合であっても、次善パスを学習することができる。
【0116】
このように次善パスを学習した他端のノード100は、パケットを受信すると、最短パスと次善パスのそれぞれにパケットを送信する。これにより、次善パスの復路上のノード100に、次善パスの往路を自動的に学習させることができる。そして、双方向への次善パスが最短パスの一端のノード100および他端のノード100のそれぞれにおいて学習できる。
【0117】
そして、双方向の次善パスを学習した一端のノードは最短パスと次善パスとのそれぞれにパケットを送信する。また、双方向の次善パスを学習した他端のノードは、最短パスと次善パスのうち、いずれのパスを経由したパケットであるかに関わらず先着パケットをパケット内の宛先MACアドレスに送信し、後着したパケットは廃棄する。これにより、いずれか一方のパスを構成するノード・リンクに障害が起こった場合であっても、他方のパスからパケットを受信することができ、無瞬断かつパケットロスなしに障害を復旧することができる。
【0118】
同様に、双方向の次善パスを学習した他端のノード100は、一方のパスがいわゆるキュー遅延により大きく遅延している場合であっても、他方のパスから遅延なしにパケットを受信することができる。
【0119】
そして、この次善パスは、最短パスの一端のノード100および他端のノード100以外のノード100では従来の先着学習方式によって処理を行うため、オペレータは最短パスの一端のノード100および他端のノード100について設定を行うだけで、自動的にネットワークの冗長化を行うことができる。
【0120】
そのため、オペレータによるパス設計の作業負担の軽減を図ることができる。また、次善パスを自動生成できるため、オペレータのパス設計の熟練度に関わらず、容易に次善パスを生成することができる。さらに、次善パスを自動生成できるため、次善パスを高速に設定することができる。
【0121】
そして、最短パスまたは次善パスのいずれか一方のパスに障害が発生した場合、未障害パスを生成済の最短パスとして、本実施の形態で示した次善パス生成を行うことで、パスが1本である期間を短くすることができ、ネットワークの安全性の向上を図ることができる。また、障害箇所の特定や障害の復旧には時間を要するが、障害発生時に次善パスを高速生成することで、パスが2本の状態に早期に復帰できるため、障害箇所の特定作業や障害の復旧作業を、時間をかけて行うこともできる。
【0122】
なお、上述した実施の形態では、簡単のため、ノード100がIngressノードまたはEgressノードであるとして記載した。しかし、実際には、ノード100は、IngressノードおよびEgressノードの両方の機能を有している。このため、実際には、オペレータは、ノード100のポートに対して、IngressまたはEgressのポート属性を設定することになる。
【0123】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0124】
(付記1)先着学習方式により第1の装置から第2の装置への経路が設定されたネットワークを構成する中継装置群内の前記経路上の一端の中継装置が、前記第1の装置を送信元とし前記第2の装置を宛先とする往路パケットを、前記一端の中継装置のポート群のうち前記先着学習方式で学習済の特定のポートから送信し、前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングする第1の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、フラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記受信ポート以外のポートから前記往路パケットをフラッディングする第2の工程と、
前記中継装置群内の前記経路上の他端の中継装置が、前記経路上の中継装置から送信されてきた前記往路パケットを、前記先着学習方式で学習済の前記他端の中継装置のポート番号のポートから前記第2の装置宛に送信し、前記他端の中継装置にフラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を学習する第3の工程と、
を含んだことを特徴とする経路生成方法。
【0125】
(付記2)前記第1の工程は、
前記一端の中継装置が、前記特定のポートから前記往路パケットを送信し、前記特定のポートからの前記往路パケットの送信時から所定時間経過後に前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングすることを特徴とする付記1に記載の経路生成方法。
【0126】
(付記3)前記他端の中継装置が、前記第2の装置を送信元とし前記第1の装置を宛先とする復路パケットを、前記先着学習方式で前記第3の工程の前に学習済の第1のポートと前記第3の工程で学習された第2のポートとから送信する第4の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、前記第4の工程によって送信されてきた前記復路パケットを受信できた場合、前記復路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記往路パケットの送信元に対応するポート番号のポートから前記復路パケットを送信する第5の工程と、
前記一端の中継装置が、前記特定のポートから受信された前記復路パケットを、前記先着学習方式で学習済である前記第1の装置の宛先に対応するポート番号のポートから前記第1の装置宛に送信し、前記特定のポート以外のポートから受信された前記復路パケットの送信元と前記復路パケットを受信した前記特定のポート以外のポートのポート番号を学習する第6の工程と、
を含んだことを特徴とする付記1または2に記載の経路生成方法。
【0127】
(付記4)前記第6の工程の後に、前記他端の中継装置が、前記第1の装置を送信元とし前記第2の装置を宛先とするあらたなパケットを、前記第1のポートと前記第2のポートからそれぞれ受信した場合、前記第1のポートから受信した前記パケットと前記第2のポートから受信した前記パケットとのうち、先着の前記パケットのみを前記第2の装置に送信する第7の工程を含んだことを特徴とする付記3に記載の経路生成方法。
【0128】
(付記5)パケットを受信する受信手段と、
前記受信手段によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定手段と、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信手段と、
を備えることを特徴とする中継装置。
【0129】
(付記6)前記送信手段は、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする付記5に記載の中継装置。
【0130】
(付記7)前記受信手段によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定手段と、
前記テーブルに、前記同一性判定手段によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする付記5または6に記載の中継装置。
【0131】
(付記8)一連のパケットを受信する受信手段と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定手段と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定手段と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定手段によって同一性があると判定され、かつ、前記着順判定手段によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする中継装置。
【0132】
(付記9)前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信手段を備えることを特徴とする付記8に記載の中継装置。
【0133】
(付記10)前記送信手段は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする付記9に記載の中継装置。
【0134】
(付記11)パケットを受信する受信工程と、
前記受信工程によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定工程と、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【0135】
(付記12)前記送信工程は、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする付記11に記載の経路生成プログラム。
【0136】
(付記13)前記受信工程によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定工程と、
前記テーブルに、前記同一性判定工程によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を備えることを特徴とする付記11または12に記載の経路生成プログラム。
【0137】
(付記14)一連のパケットを受信する受信工程と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定工程と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定工程と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定工程によって同一性があると判定され、かつ、前記着順判定工程によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【0138】
(付記15)前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信工程を備えることを特徴とする付記14に記載の経路生成プログラム。
【0139】
(付記16)前記送信工程は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする付記15に記載の経路生成プログラム。
【0140】
(付記17)コンピュータが、
パケットを受信する受信工程と、
前記受信工程によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定工程と、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信工程と、
を実行することを特徴とする経路生成方法。
【0141】
(付記18)前記送信工程は、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする付記17に記載の経路生成方法。
【0142】
(付記19)前記受信工程によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定工程と、
前記テーブルに、前記同一性判定工程によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を備えることを特徴とする付記17または18に記載の経路生成方法。
【0143】
(付記20)コンピュータが、
一連のパケットを受信する受信工程と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定工程と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定工程と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定工程によって同一性があると判定され、かつ、前記着順判定工程によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を実行することを特徴とする経路生成方法。
【0144】
(付記21)前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信工程を備えることを特徴とする付記20に記載の経路生成方法。
【0145】
(付記22)前記送信工程は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする付記21に記載の経路生成方法。
【符号の説明】
【0146】
100 ノード(中継装置)
302a MACテーブル
302b 同一性情報テーブル
601 パケット送受信部
602 パケット処理部
603 テーブル制御部
【技術分野】
【0001】
本発明は、経路を生成する経路生成方法、中継装置、および経路生成プログラムに関する。
【背景技術】
【0002】
広域イーサネット(登録商標)サービス(Ethernet(登録商標) Service)の普及に伴い、MAN(Metro Area Network)やWAN(Wide Area Network)といった広域ネットワークに対するイーサネット(登録商標)技術の進出がめざましくなっている。
【0003】
このようなネットワークでは、リンクの障害や中継装置(以下、「ノード」という)の障害が起こった場合にも通信が継続できるように、リンクやパスを冗長化して障害時には予備側に切り替える。
【0004】
例えば、イーサネット(登録商標)のネットワーク冗長方式として定められたスパニングツリープロトコル(STP)やSTPの拡張方式であるRSTP(ラピッドSTP)を用いた場合には、ツリーを構成し直すことで障害復旧が可能である(例えば、下記特許文献1参照)。
【0005】
また、近年、ITU−Tにおいてイーサネット(登録商標)冗長方式の標準化がなされ、1+1パスプロテクションが規定された。例えば、1+1パスプロテクション方式を用いた場合には、始点ノードと終点ノードの間に、リンク・ノードを共用しない現用パスと予備パスが設定され、始点ノードで両パスそれぞれにパケットを送信し、終点ノードにおいて現用パスから来たパケットを選択する。これにより、現用パスに障害が起きた場合には、終点ノードにおいて予備パスから来たパケットを使用するように切り替えることで、高速な障害復旧が可能である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007−258955号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述したSTPを用いた場合には、ツリーを構成し直すのに時間がかかり、冗長経路への切り替え時間が長いという問題があった。また、RSTPは、このSTPの欠点をある程度解消できるが、障害の位置によってはSTP同様切り替え時間が長くなるという問題があった。
【0008】
また、1+1パスプロテクション方式を用いた場合には、障害復旧は高速に行うことができるが、この方式では、現用パスと予備パスが共用しないようにするためのオペレーションコストがかかるという問題があった。
【0009】
1つの側面では、本発明は、現用の経路とリンクやノードを共用しない代替経路の生成する経路生成方法、中継装置、および経路生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
1つの案では、先着学習方式により第1の装置から第2の装置への経路が設定されたネットワークを構成する中継装置群内の経路上の一端の中継装置が、第1の装置を送信元とし第2の装置を宛先とする往路パケットを、一端の中継装置のポート群のうち先着学習方式で学習済の特定のポートから送信し、ポート群のうち往路パケットの受信ポートおよび特定のポート以外のポートからパケットをフラッディングし、中継装置群内の経路上の中継装置以外の中継装置が、フラッディングされてきた往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を先着学習方式で学習し、受信ポート以外のポートから往路パケットをフラッディングし、中継装置群内の経路上の他端の中継装置が、経路上の中継装置から送信されてきた往路パケットを、先着学習方式で学習済の他端の中継装置のポート番号のポートから第2の装置宛に送信し、他端の中継装置にフラッディングされてきた往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を学習する経路生成方法を用いる。
【0011】
1つの案では、一連のパケットを受信し、受信した一連のパケットのうち先着のパケットと先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定し、後着のパケットが先着のパケットの次着であるか否かを判定し、宛先ごとに対応するポートのポート番号を記憶するテーブルに、同一性があると判定され、かつ、次着と判定された後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された後着のパケットの送信元とを関連付けて格納する中継装置および経路生成プログラムを用いる。
【0012】
1つの案では、パケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、パケット内の宛先に対応する特定のポート番号が記憶されているかを判定し、特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうちパケットを受信したポートを除くポートからパケットを一斉送信する中継装置および経路生成プログラムを用いる。
【発明の効果】
【0013】
本発明にかかる経路生成方法、中継装置、および経路生成プログラムによれば、現用の経路とリンクやノードを共用しない代替経路生成することができる。
【図面の簡単な説明】
【0014】
【図1】図1は、ノードによる次善パスの生成の内容を示す説明図(その1)である。
【図2】図2は、ノードによる次善パスの生成の内容を示す説明図(その2)である。
【図3】図3は、ノードのハードウェア構成を示すブロック図である。
【図4】図4は、MACテーブルの記憶内容を示す説明図である。
【図5】図5は、同一性情報テーブルの記憶内容を示す説明図である。
【図6】図6は、ノードの機能的構成を示す機能ブロック図である。
【図7】図7は、次善パスの生成の具体例を示す説明図(その1)である。
【図8】図8は、次善パスの生成の具体例を示す説明図(その2)である。
【図9】図9は、次善パスの生成の具体例を示す説明図(その3)である。
【図10】図10は、次善パスの生成の具体例を示す説明図(その4)である。
【図11】図11は、次善パスの生成の具体例を示す説明図(その5)である。
【図12】図12は、次善パスの生成の具体例を示す説明図(その6)である。
【図13】図13は、次善パスの生成の具体例を示す説明図(その7)である。
【図14】図14は、次善パスの生成の具体例を示す説明図(その8)である。
【図15】図15は、次善パスの生成の具体例を示す説明図(その9)である。
【図16】図16は、次善パスの生成の具体例を示す説明図(その10)である。
【図17】図17は、次善パスの生成の具体例を示す説明図(その11)である。
【図18】図18は、Ingressノードの経路生成処理の詳細を示すフローチャートである。
【図19】図19は、Ingressノードの遅延挿入を行う経路生成処理の詳細を示すフローチャートである。
【図20】図20は、Egressノードの経路生成処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下に添付図面を参照して、本発明の実施の形態にかかる経路生成方法、中継装置、および経路生成プログラムを詳細に説明する。
【0016】
(ノードによる次善パスの生成の内容)
まず、図1および図2を用いてノードによる次善パスの生成の内容を示す説明図について説明する。図1および図2は、ノードによる次善パスの生成の内容を示す説明図である。図1および図2は、複数のノード100によって構成されるネットワークを示している。ここでは、ネットワークは、ノードA〜Iの9つのノード100から構成される。また、ノードAは始点ノード(Ingressノード)としてオペレータによって設定されている。また、ノードIは終点ノード(Egressノード)としてオペレータによって設定されている。
【0017】
ここで、このネットワークでは、従来技術である先着学習方式によって、IngressノードであるノードAとEgressノードであるノードI間の最短のパス(最短パス)が生成されている。ここでは、最短パスは、ノードA、ノードB、ノードD、ノードG、ノードIを通過するパスであるとする。
【0018】
このように最短パスが生成された状態において、IngressノードであるノードAおよびEgressノードであるノードIは、最短パスのほかに、冗長経路として次善のパス(次善パス)を生成する処理を行う。一方で、ノードB〜Hは従来技術である先着学習方式に従って処理を行う。ここで、次善パスとは、最短パスとノードやリンクを共用しない(Node disjoint/Link disjoint)パスであり、最短パスを除外した残余のネットワークにおいて最短となりうるパスである。
【0019】
従来技術のため、詳細な説明を省略するが、先着学習方式では、ノード100は、複数のポートから同一パケットが受信された場合、最も早くパケットが受信されたポートのポート番号とパケットの送信元とを関連付けて保持する。そして、ノード100は、受信されたポート以外のポートからパケットをフラッディングする。また、ノード100は、次着以降のパケットは廃棄する。
【0020】
具体的には、まず、ノード100は、ポート群から同一パケット群を受信した際に、その同一パケット群のうち最も早く到着したパケット(以下、「先着パケット」という)を抽出する。ここで、送信元から最も早く到着したパケットが通過したパスは、即ち、その送信元を宛先とした場合に宛先に最も早く到着できるパス(最短パス)である。
【0021】
従って、ノード100は、自ノードから先着パケットの送信元への最短パスに対応するポートのポート番号として、先着パケットを受信したポートのポート番号を記憶する。その後、ノード100は、受信した先着パケットをフラッディングし、次着以降のパケット(以下、「後着パケット」という)は廃棄する。そして、他のノード100も同様に最短パスに対応するポート番号を記憶していくことで、自動的に各ノード100から送信元への最短パスを生成する。
【0022】
なお、先着学習方式では、ノード100は、最短パスに対応するポート番号を記憶した時から所定時間経過後までは、最短パスに対応するポート番号が上書きされないようにして、最短パスの安定性を確保している。
【0023】
ここで、図1において(A)に示すように、本実施の形態にかかるIngressノードであるノードAは、(1)パケットを既知の最短パスへのポートからユニキャスト送信するとともに最短パスのポート以外の全てのポートからフラッディング(一斉送信)する。最短パスへ送信されたパケットは最短パスを通過してEgressノードであるノードIへ到着する。一方、ノードAによってフラッディングされたパケットは、(2)送信先の各ノード100で従来技術である先着学習方式に従って、入力ポート以外の全てのポートからフラッディングされる。例えば、ノードCでは、ノードEおよびノードFへのポートからフラッディングされる。
【0024】
このように各ノード100が受信したパケットをフラッディングしていくと、(B)に示すようにパケットが送信されていく。ここで、従来技術である先着学習方式に従って、ノードB〜Hは、先着ポートをポート番号として学習する。これにより、最短パスを構成するノード100は、最短パスへのポートのポート番号を記憶し、残余のノード100は、最短パスを除いた残余のネットワークにおけるノードAへの最短のパス(次善パス)のポート番号を記憶していく。即ち、ノードAへの一方向の次善パスが生成される。
【0025】
例えば、ノードBでは、(3)最短パスへのポートが先着ポートとして既に学習されており、ノードEからのポートを先着ポートとして学習することはない。即ち、最短パスと交わるパスは次善パスから除外される。同様に、ノードGでは、(3)最短パスのポートが既に先着ポートとして学習されており、ノードEからのポートを先着ポートとして学習することはない。即ち、最短パスと交わるパスは次善パスから除外される。また、例えば、ノードHでは、(3)ノードEからのポートが既に先着ポートとして学習されており、ノードFからのポートを先着ポートとして学習することはない。即ち、最短パス以外のネットワークにおいて他のパスより遅延の大きいパスは次善パスから除外される。
【0026】
そして、本実施の形態にかかるEgressノードであるノードIは、先着パケットの次に到着したパケット(以下、「次着パケット」という)を受信したポート(以下、「次着ポート」という)を次善パスへのポートとして学習する。このようにして、(C)に示すように、次善パスを構成するノードC、ノードE、ノードH、ノードIはノードAへの次善パスのポートを学習することができるため、ノードIからノードAへの一方向の次善パスを生成できる。また、この次善パスは、最短パスとリンク・ノードを共用しないパスとなっている。
【0027】
次に、図2において(A)に示すように、本実施の形態にかかるEgressノードであるノードIは、(4)パケットを最短パスへのポートからユニキャスト送信するとともに、次善パスへのポートからユニキャスト送信する。最短パスへ送信されたパケットは最短パスを通過してIngressノードであるノードAへ到着し、次善パスへ送信されたパケットは次善パスを通過してIngressノードであるノードAへ到着する。
【0028】
ここで、次善パスを構成する各ノード100はノードIへの次善パスのポートを学習することができるため、ノードAからノードIへの一方向の次善パスが生成される。このようにして、(B)に示すように両方向の次善パスが生成される。
【0029】
このようにして、各ノード100は、パスを刈り取っていき最短パスと次善パスを生成する。生成後は、Ingressノードでは最短パスと次善パスの両方にパケットを送信し、Egressノードでは最短パスまたは次善パスによって送信されたパケットのうち、先着したパケットを保持し、後着パケットは廃棄する。次善パスと最短パスとはノード・リンクを共用しないため、このようにすれば、最短パスに障害が起こった場合でもパケットロスなく(無瞬断で)次善パスから受信したパケットを送信先に送信することができる。
【0030】
(ノードのハードウェア構成)
次に、図3を用いてノードのハードウェア構成について説明する。
【0031】
図3は、ノードのハードウェア構成を示すブロック図である。図3において、ノード100は、CPU(Central Processing Unit)301と、記憶装置302と、I/F(Interface)303と、を備えている。また、各構成部は、バス310によってそれぞれ接続されている。
【0032】
CPU301は、ノード100全体の制御を司る。記憶装置302は、冗長経路生成プログラムを記憶している。また、記憶装置302は、MACテーブル302aと同一性情報テーブル302bを記憶している。記憶装置302としては、不揮発性メモリやフラッシュメモリ、ハードディスクドライブなどを採用することができる。
【0033】
インターフェース(以下、「I/F」と略する。)303は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク320に接続され、このネットワーク320を介して他の装置に接続される。そして、I/F303は、ネットワーク320と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F303には、例えばモデムやLANアダプタなどを採用することができる。
【0034】
(MACテーブルの記憶内容)
次に、図3に示したMACテーブルの記憶内容について説明する。
【0035】
図4は、MACテーブルの記憶内容を示す説明図である。図4に示すように、MACテーブル302aは、アドレス項目と、先着ポート項目と、次着ポート項目と、学習時刻項目と、を有する。
【0036】
アドレス項目には、パケットの宛先を一意に識別する宛先MACアドレスが記憶される。MACアドレスとは、イーサネット(登録商標)の場合、48ビット(EUI−48)の符号である。先着ポート項目には、先着パケットを受信したポートのポート番号(以下、「先着ポート番号」という)が記憶される。先着パケットとは、他のノード100がフラッディングしたパケットのうち最も早く自ノードに到着したパケットである。次着ポート項目には、次着パケットを受信したポートのポート番号(以下、「次着ポート番号」という)が記憶される。次着パケットとは、他のノード100がフラッディングしたパケットのうち先着パケットの次に自ノードに到着したパケットである。学習時刻項目には、先着パケットを受信した時刻が記憶される。
【0037】
なお、MACテーブル302aでは、記憶内容を最新に保つため、所定時間更新されなかったレコードは削除される。この所定時間を測定するタイマーをAging timerという。
【0038】
(同一性情報テーブルの記憶内容)
次に、図3に示した同一性情報テーブルの記憶内容について説明する。
【0039】
図5は、同一性情報テーブルの記憶内容を示す説明図である。図5に示すように、同一性情報テーブル302bは、パケット情報(FCS値)項目と、先着時刻項目と、フラグ項目と、を有する。
【0040】
パケット情報項目には、受信したパケットが先着パケットか後着パケットかを判定するために用いるパケットのFCS(Frame Check Sequence)値(以下、「パケット情報」という)が記憶される。例えば、受信したパケットのFCS値と同値のFCS値が同一性情報テーブル302bに記憶されていない場合は受信したパケットは先着と判定されるようにする。また、受信したパケットのFCS値と同値のFCS値が同一性情報テーブル302bに記憶されている場合は受信したパケットは次着以降と判定されるようにする。
【0041】
ここで、FCS値とは、イーサネット(登録商標)におけるフレームの伝送誤り検出用に付加される32ビットのフィールドであり、生成多項式により得られるCRC(Cyclic Redundancy Code)値のことを指す。つまり、このFCS値は、パケット全体を縮退した値であるので、これを同一性情報テーブル302bに保持して同一性判定に用いることとすれば、ハッシュ関数を用いたハッシュ値算出を行うことなくハッシュ値による同一性判定を行うことができる。なお、FCS値を同一性判定に利用した場合の誤認識率は約43億分の1になる。
【0042】
ここでは、パケット情報項目には、パケットのFCS値が記憶されるとしたが、例えば、パケット情報項目には、パケットそのものが記憶されてもよいし、またパケットの所定部分のみが記憶されてもよい。パケットの所定部分としては、例えば、送信元MACアドレスや宛先MACアドレスを採用してもよいし、それらMACアドレスの組み合わせを採用してもよい。さらに、パケット情報項目には、パケットそのものまたはパケットの所定部分のハッシュ値を記憶してもよい。また、ハッシュ関数を用いたハッシュ値を採用してもよい。
【0043】
先着時刻項目には、パケット情報を記憶した時刻が記憶される。フラグ項目は、パケットのFCS値と組み合わせてパケットの着順を識別するためのフラグが記憶される。例えば、受信したパケットのFCS値と同値の先着パケットのFCS値が同一性情報テーブル302bに記憶されていて、かつフラグが1である場合に、受信したパケットが次着であることを示すようにする。また、受信したパケットのFCS値と同値の先着パケットのFCS値が同一性情報テーブル302bに記憶されていて、かつフラグが0である場合に、受信したパケットが3着以降であることを示すようにする。
【0044】
(ノードの機能的構成)
次に、図6を用いてノードの機能的構成について説明する。
【0045】
図6は、ノードの機能的構成を示す機能ブロック図である。図6に示すように、ノード100は、N個のポートを備えるとともに、パケット送受信部601と、パケット処理部602と、テーブル制御部603と、MACテーブル302aと、同一性情報テーブル302bと、を備える。また、各機能部(パケット送受信部601〜テーブル制御部603)の処理結果は、特に指定する場合を除いて、例えば、記憶装置302に記憶される。
【0046】
ノード100がIngressノードまたはEgressノードとして動作する場合のパケット送受信部601は、パケットを受信する機能を有する。具体的には、例えば、パケット送受信部601は、ポートからパケットを受信する。また、ノード100がIngressノードまたはEgressノードとして動作する場合のパケット送受信部601は、一連のパケットを受信する機能を有する。具体的には、例えば、パケット送受信部601は、複数のポートからそれぞれパケットを受信する。これにより、パケット送受信部601は、パケットを受信してMACテーブル302aや同一性情報テーブル302bを生成することができる。
【0047】
ここでは、ノード100がIngressノードとして動作する場合のパケット送受信部601の機能について説明する。パケット送受信部601は、テーブルに特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうちパケットを受信したポートを除くポートからパケットを一斉送信する機能を有する。ここで、テーブルとは、上述したMACテーブル302aである。特定のポート番号とは、上述した最短パスへのポートのポート番号である。
【0048】
具体的には、例えば、後述するパケット処理部602によりMACテーブル302aに最短パスへのポートのポート番号が記憶されているか否か判定される。そして、ポート番号が記憶されていると判定された場合、パケット送受信部601は、自ノードのポートのうちパケットを受信したポートを除くポートから、受信したパケットを複製してフラッディングする。
【0049】
例えば、あるノード100にポートが8個(ポートp1〜p8)あり、ポートp1が上述した特定のポートであり、ポートp2が、上述したパケットを受信したポートの場合、ポートp1,p3〜p8からフラッディングされる。
【0050】
また、VLAN(VirtualLAN)によりポート群(ポートp1〜p8)が、ポートp1〜p4とポートp5〜p8に論理分割されている場合は、ポートp1,p3、p4からフラッディングされる。ポートp5〜p8は、ポートp1、p2と同一VLANではないため、フラッディングされない。
【0051】
これにより、他のノード100は最短パスとリンク・ノードを共用しない次善パスを生成することができる。
【0052】
ここでは、ノード100がIngressノードとして動作する場合のパケット送受信部601の機能について説明する。パケット送受信部601は、テーブルに特定のポート番号が記憶されていると判定された場合、特定のポート番号のポートからパケットを送信する。そして、パケット送受信部601は、送信の時から所定時間経過後に、ポート群のうちパケットを受信したポートと特定のポート番号のポートとを除くポートからパケットを一斉送信する機能を有する。具体的には、例えば、パケット送受信部601は、MACテーブル302aに最短パスへのポートのポート番号が記憶されている場合に、受信したパケットを複製して最短パスへのポートから送信する。
【0053】
そして、最短パスへの送信から所定時間経過後に自ノードのポートのうちパケットを受信したポートおよび最短パスへのポートを除くポートから、受信したパケットを複製してフラッディングする。
【0054】
例えば、あるノード100にポートが8個(ポートp1〜p8)あり、ポートp1が上述した特定のポートであり、ポートp2が、上述したパケットを受信したポートの場合、ポートp3〜p8からフラッディングされる。
【0055】
また、VLAN(VirtualLAN)によりポート群(ポートp1〜p8)が、ポートp1〜p4とポートp5〜p8に論理分割されている場合は、ポートp3、p4からフラッディングされる。ポートp5〜p8は、ポートp1、p2と同一VLANではないため、フラッディングされない。
【0056】
これにより、最短パスへ送信したパケットが遅延した場合であっても他のノード100は最短パスとリンク・ノードを共用しない次善パスを生成することができる。
【0057】
ここでは、ノード100がEgressノードとして動作する場合のパケット送受信部601の機能について説明する。パケット送受信部601は、先着のパケットおよび次着と判定された後着のパケットの送信元を宛先とするパケットを、テーブルに基づいて、先着のパケットを受信したポートおよび次着と判定された後着のパケットを受信したポートのそれぞれから送信する機能を有する。ここで、先着のパケットとは上述した先着パケットであり、後着のパケットとは、上述した後着パケットであり、次着と判定された後着のパケットとは上述した次着パケットである。
【0058】
宛先とは、パケットの宛先であり、宛先MACアドレスとして表される。送信元とはパケットの送信元であり、送信元MACアドレスとして表される。具体的には、例えば、パケット送受信部601は、MACテーブル302aに基づき、最短パスへのポートおよび次善パスへのポートの2つのポートからパケットを送信する。これにより、同一パケットを2つのパスを経由して宛先に送信することができるため、いずれか一方のパスに障害があっても宛先へパケットを到着させることができる。
【0059】
ここでは、ノード100がEgressノードとして動作する場合のパケット送受信部601の機能について説明する。パケット送受信部601は、テーブルに記憶されている宛先を送信元とするパケットが、宛先に対応する2つのポートからそれぞれ受信された場合、2つのポートから受信されたパケットのうち先着のパケットのみを送信する機能を有する。ここで、宛先に対応する2つのポートとは、上述した最短パスへのポートおよび次善パスへのポートである。
【0060】
具体的には、パケット送受信部601は、MACテーブル302aにポート番号で記憶されている最短パスへのポートおよび次善パスへのポートからそれぞれパケットを受信した場合、いずれのパスを通過したパケットかに関わらず、先着パケットをパケットの宛先に送信し、もう一方のパケットは廃棄する。これにより、パケット送受信部601は、一方のパスに障害が発生した場合であっても、他方のパスからパケットを受信することができる。
【0061】
パケット送受信部601は、具体的には、例えば、図3に示した記憶装置302に記憶された経路生成プログラムをCPU301に実行させることにより、およびI/F303により、その機能を実現する。
【0062】
ここでは、ノード100がIngressノードとして動作する場合のパケット処理部602の機能について説明する。パケット処理部602は、パケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する機能を有する。具体的には、例えば、パケット処理部602は、MACテーブル302aに、パケット送受信部601によって受信されたパケット内の宛先MACアドレスに対応するポート番号が記憶されているか判定する。これにより、上述した最短パスへのポートのポート番号がMACテーブル302aに記憶されているか判定することができる。
【0063】
ここでは、ノード100がIngressノードまたはEgressノードとして動作する場合のパケット処理部602の機能について説明する。パケット処理部602は、一連のパケットが受信された場合、一連のパケットのうち先着のパケットと先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定機能を有する。具体的には、例えば、パケット処理部602は、受信したパケットのFCS値と同値のFCS値が同一性情報テーブル302bに記憶されているか判定し、記憶されていなければ受信したパケットを先着パケットと判定する。
【0064】
一方、パケット処理部602は、受信したパケットのFCS値と同値のFCS値が同一性情報テーブル302bに記憶されていれば受信したパケットを次着以降のパケットと判定する。これにより、パケット処理部602は、一連のパケットのうち先着パケットと次着以降のパケットとを識別することができる。
【0065】
ここでは、ノード100がEgressノードとして動作する場合のパケット処理部602の機能について説明する。パケット処理部602は、後着のパケットが先着のパケットの次着であるか否かを判定する着順判定機能を有する。具体的には、例えば、パケット処理部602は、同一性情報テーブル302bに基づき次着以降と判定された場合に、さらに同一性情報テーブル302bのフラグに基づき、受信したパケットが次着パケットか3着以降のパケットかを判定することができる。これにより、パケット処理部602は、次着パケットを判定し、次善パスへのポートを特定することができる。
【0066】
パケット処理部602は、具体的には、例えば、図3に示した記憶装置302に記憶された経路生成プログラムをCPU301に実行させることにより、その機能を実現する。
【0067】
ここでは、ノード100がIngressノードとして動作する場合のテーブル制御部603の機能について説明する。テーブル制御部603は、テーブルに、同一性判定機能によって同一性があると判定された後着のパケットを受信したポートのポート番号と、宛先となる後着のパケットの送信元とを関連付けて格納する機能を有する。具体的には、例えば、テーブル制御部603は、MACテーブル302aに後着パケットを受信したポートのポート番号と次着パケットの送信元MACアドレスとを関連付けてレコードとして記憶する。これにより、テーブル制御部603は、着順を判定せずに後着のパケットを受信したポートのポート番号に基づき、次善パスへのポートのポート番号をMACテーブル302aに保持することができる。
【0068】
ここでは、ノード100がEgressノードとして動作する場合のテーブル制御部603の機能について説明する。テーブル制御部603は、宛先ごとに対応するポートのポート番号を記憶するテーブルに、同一性判定機能によって同一性があると判定され、かつ、着順判定機能によって次着と判定された後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された後着のパケットの送信元とを関連付けて格納する機能を有する。
【0069】
具体的には、例えば、テーブル制御部603は、MACテーブル302aに次着パケットを受信したポートのポート番号と次着パケットの送信元MACアドレスとを関連付けてレコードとして記憶する。これにより、テーブル制御部603は、次着パケットを受信したポートのポート番号に基づき、次善パスへのポートのポート番号をMACテーブル302aに保持することができる。
【0070】
テーブル制御部603は、具体的には、例えば、図3に示した記憶装置302に記憶された経路生成プログラムをCPU301に実行させることにより、および記憶装置302によりその機能を実現する。
【0071】
(次善パスの生成の具体例)
次に、図7〜17を用いて、次善パスの生成の具体例について説明する。図7〜図17は、次善パスの生成の具体例を示す説明図である。ここで、図7〜図17は、ノードA〜Iから構成されるネットワークを示している。また、ノードAのポート番号「0」のポートのリンクの先にはMACアドレス「xxx」の装置701が接続されており、ノードIのポート番号「25」のポートのリンクの先にはMACアドレス「yyy」の装置702が接続されている。なお、以下の図では、簡単のため、ポート番号「0」のポート、MACアドレス「xxx」の装置701、ポート番号「25」のポート、MACアドレス「yyy」の装置702の図示を省略する場合がある。
【0072】
図7に示すように、このネットワークでは、まず従来技術である先着学習方式によって、MACアドレス「xxx」およびMACアドレス「yyy」間の最短パスが生成されている。ここでは、最短パスは、ノードA、ノードB、ノードD、ノードG、ノードIを通過するパスである。また、最短パスを構成する各ノード100は、MACアドレス「xxx」およびMACアドレス「yyy」に対してパケットを送信する際に使用するポートのポート番号をテーブルに保持している。一方で、最短パスを構成しないノードC、ノードE、ノードF、ノードHは、MACアドレス「yyy」に対してパケットを送信する際に使用するポートのポート番号は保持していない。
【0073】
このように最短パスが生成された状態で、本実施の形態にかかるIngressノードおよびEgressノードは、次善パスの生成を行う。ここでは、IngressノードおよびEgressノードとなりうるノード100は、ノードAとノードIであるとする。なお、IngressノードおよびEgressノード以外のノードは、従来の先着学習方式に従って処理を行っている。
【0074】
図8に示すように、送信元MACアドレス(SA、Source Address)を「xxx」、宛先MACアドレス(DA、Destination Address)を「yyy」とするパケットがノードAに送信されたとする。ノードAはパケットを受信すると、本実施の形態にかかるIngressノードの処理に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。
【0075】
また、ノードAは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「1」が保持されているため、ポート番号「1」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してDA「yyy」に向かう。一方で、ノードAは、MACテーブル302aにDA「yyy」に対応する次着ポート番号が保持されていないため、入力ポートおよび先着ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0076】
図8において送信されたパケットは、それぞれ図9に示すように各ノード100に受信される。パケットを受信したノードBは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードBは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「5」が保持されているため、ポート番号「5」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してDA「yyy」に向かう。
【0077】
パケットを受信したノードCは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードCは、MACテーブル302aにDA「yyy」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0078】
図9において送信されたパケットは、それぞれ図10に示すように各ノード100に受信される。パケットを受信したノードDは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードDは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「10」が保持されているため、ポート番号「10」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してDA「yyy」に向かう。
【0079】
パケットを受信したノードEは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aのSA「xxx」に対応するポート番号「11」を受信したパケットのポート番号「12」に更新し、Aging timerを更新する。また、ノードEは、MACテーブル302aにDA「yyy」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パスの生成の際に保持されたSA「xxx」に対応するポート番号が更新され、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0080】
パケットを受信したノードFは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードFは、MACテーブル302aにDA「yyy」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0081】
図10において送信されたパケットは、それぞれ図11に示すように各ノード100に受信される。パケットを受信したノードGは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードGは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「19」が保持されているため、ポート番号「19」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してDA「yyy」に向かう。
【0082】
パケットを受信したノードHは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードHは、MACテーブル302aにDA「yyy」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【0083】
再度別ポートからパケットを受信したノードBは、従来の先着学習方式に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。ここで、同一性情報テーブル302bに同一のパケット情報が保持されているため、ノードBは、受信したパケットは後着パケットであると判断し、パケットを廃棄する。この時MACテーブル302aは更新されない。これにより、最短パスとノード100を共有するパスは次善パスから除外される。
【0084】
図11において送信されたパケットは、それぞれ図12に示すように各ノード100に受信される。パケットを受信したノードIは、本実施の形態にかかるEgressノードの処理に従って、パケット情報を同一性情報テーブル302bに保持し、MACテーブル302aにSA「xxx」が保持されているためAging timerを更新する。また、ノードIは、MACテーブル302aにDA「yyy」に対応する先着ポート番号「25」が保持されているため、ポート番号「25」のポートからパケットをユニキャスト送信する。これによりパケットは、DA「yyy」に送信される。
【0085】
再度別ポートからパケットを受信したノードGは、従来の先着学習方式に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。ここで、同一性情報テーブル302bに同一のパケット情報が保持されているため、ノードGは、受信したパケットは後着パケットであると判断し、パケットを廃棄する。この時MACテーブル302aは更新されない。これにより、最短パスとノード100を共有するパスは次善パスから除外される。
【0086】
再度別ポートからパケットを受信したノードHは、従来の先着学習方式に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。ここで、同一性情報テーブル302bに同一のパケット情報が保持されているため、ノードHは、受信したパケットは後着パケットであると判断し、パケットを廃棄する。この時MACテーブル302aは更新されない。これにより、最短パス以外のネットワークにおいて他のパスより遅延の大きいパスは次善パスから除外される。
【0087】
図12において送信されたパケットは、それぞれ図13に示すように各ノード100に受信される。再度別ポートからパケットを受信したノードIは、本実施の形態にかかるEgressノードの処理に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。同一性情報テーブル302bに同一のパケット情報が保持されている場合、ノードIは、同一性情報テーブル302bのフラグに基づき受信したパケットが次着パケットであるか否かを判断する。
【0088】
ここで、ノードIは、受信したパケットを次着パケットと判断し、受信したパケットのポート番号を次善パスへの送信に使用するポート番号としてMACテーブル302aに保持する。そして受信したパケットを廃棄する。これにより、最短パスとノード・リンクを共有しない次善パスへ送信するポート番号がMACテーブル302aに保持され、SA「yyy」からDA「xxx」への一方向への次善パスが生成される。なお、3着目以降のパケットは同一性情報テーブル302bのパケット情報とフラグとに基づいて廃棄され、MACテーブル302aは更新されない。
【0089】
次に、図14に示すように、SAを「yyy」DAを「xxx」とするパケットがノードIに送信されたとする。ここで、ノードIは、本実施の形態にかかるEgressノードの処理に従って、MACテーブル302aに最短パスのポート番号と次善パスのポート番号とが保持されているため、それぞれのポートからユニキャスト送信する。最短パスを構成する各ノード100はMACアドレス「xxx」およびMACアドレス「yyy」に対してパケットを送信する際に使用するポート番号をテーブルに保持しているため、MACテーブル302aに基づいてDA「xxx」までパケットを送信することができる。
【0090】
一方、図15に示すように、次善パスを構成する各ノード100は、DA「xxx」に対応するポート番号がMACテーブル302aに保持されているため、対応するポート番号のポートからパケットをユニキャスト送信する。同時に、SA「yyy」に対応するポート番号をMACテーブル302aに保持していく。これにより、パケットは、次善パスを通過してDA「xxx」に向かい、同時に、DA「yyy」へ送信する際に使用するポート番号を保持することができる。
【0091】
そして、図16に示すように、再度別ポートからパケットを受信したノードAは、本実施の形態にかかるIngressノードの処理に従って、受信したパケットのパケット情報が既に同一性情報テーブル302bに保持されているか判断する。同一性情報テーブル302bに同一のパケット情報が保持されている場合、ノードAは、同一性情報テーブル302bのフラグに基づき受信したパケットが次着パケットであるか否かを判断する。
【0092】
ここで、ノードAは、受信したパケットを次着パケットと判断し、受信したパケットのポート番号を次善パスへの送信に使用するポート番号としてMACテーブル302aに保持する。そして受信したパケットを廃棄する。これにより、最短パスとノード・リンクを共有しない次善パスへ送信するポート番号がMACテーブル302aに保持され、SA「xxx」からDA「yyy」への双方向への次善パスが生成される。なお、3着目以降のパケットは同一性情報テーブル302bのパケット情報とフラグとに基づいて廃棄され、MACテーブル302aは更新されない。
【0093】
このように次善パスが生成された後、本実施の形態にかかるIngressノードは、パケットを受信すると、最短パスと次善パスのそれぞれにパケットを送信する。そして、本実施の形態にかかるEgressノードは、最短パスと次善パスのうち、先着したパケットをDA「yyy」に送信し、後着したパケットは廃棄する。
【0094】
これにより、図17に示すように、最短パスを構成するリンクに障害が起こった場合であっても、次善パスからパケットを受信することができ、無瞬断かつパケットロスなしにネットワークを冗長化することができる。同様に、一方のパスがいわゆるキュー遅延により大きく遅延している場合であっても、もう一方のパスから遅延なしにパケットを受信することができる。そして、この次善パスは、IngressノードおよびEgressノード以外のノード100では従来の先着学習方式によって処理を行うため、オペレータはIngressノードおよびEgressノードについて設定を行うだけで、自動的にネットワークの冗長化を行うことができる。そのため、オペレーションコストを削減することができる。
【0095】
次に、図18に示したIngressノードの経路生成処理の詳細について説明する。図18は、Ingressノードの経路生成処理の詳細を示すフローチャートである。
【0096】
図18に示すように、パケット処理部602は、パケットが到着すると(ステップS1801)、パケット情報(FCS値)を同一性情報テーブル302bに保持する(ステップS1802)。
【0097】
つづいて、パケット処理部602は、MACテーブル302aに到着したパケット(以下、「到着パケット」という)内のSA(送信元MACアドレス)と同一のアドレスがあるか否かを判定し(ステップS1803)、SAがある場合には(ステップS1803:Yes)、Aging timerの更新を行う(ステップS1804)。一方、SAがない場合には(ステップS1803:No)、パケット処理部602は、MACテーブル302aにSAおよび到着パケットを受信したポートのポート番号(以下、「受信ポート」という)を保持するとともに(ステップS1805)、Aging timerの開始を行う(ステップS1806)。
【0098】
また、パケット処理部602は、MACテーブル302aに到着パケット内のDA(宛先MACアドレス)に対応する先着ポート項目のポート番号(以下、「先着ポート番号」という)があるか否かを判定する(ステップS1807)。先着ポート番号がある場合には(ステップS1807:Yes)、パケット処理部602は、MACテーブル302aに到着パケット内のDA(宛先MACアドレス)に対応する次着ポート項目のポート番号(以下、「次着ポート番号」という)があるか否かを判定する(ステップS1808)。
【0099】
次着ポート番号がある場合には(ステップS1808:Yes)、パケット処理部602は、テーブルで指定された先着ポート番号のポート(以下、「先着ポート」という)と次着ポート番号のポート(以下、「次着ポート」という)の2ポートからユニキャスト送信を行って(ステップS1809)処理を終了する。
【0100】
一方、先着ポート番号がない場合(ステップS1807:No)、または次着ポート番号がない場合には(ステップS1808:No)、パケット処理部602は、該当パケットが未到着の全ポートから到着パケットをフラッディングして(ステップS1810)、処理を終了する。このとき、ポートが例えばVLAN(VirtualLAN)などのネットワーク単位でグループ分けされている場合は、パケット処理部602は、パケットの受信ポートと同じグループに所属するポートのみに対してフラッディングを行う。換言すれば、パケット処理部602は、先着ポート番号がない場合(ステップS1807:No)、または次着ポート番号がない場合には(ステップS1808:No)、パケットが未到着のポートのうちブロードキャストドメインの全ポートからフラッディングを行う。
【0101】
ここでは、各ノード100に最短パスからのパケットが必ず先着することを前提としているが、キュー遅延によって最短パスからのパケットの到着が遅れる場合も考えられる。このような場合にも、最短パスからのパケットが必ず先着するようにするために、図18に示した経路生成処理を、図19に示す経路生成処理に修正してもよい。
【0102】
図19は、Ingressノードの遅延挿入を行う経路生成処理の詳細を示すフローチャートである。図19に示すように、パケット処理部602は、パケットが到着すると(ステップS1901)、パケット情報を同一性情報テーブル302bに保持する(ステップS1902)。
【0103】
つづいて、パケット処理部602は、MACテーブル302aに到着パケット内のSAと同一のアドレスがあるか否かを判定し(ステップS1903)、SAがある場合には(ステップS1903:Yes)、Aging timerの更新を行う(ステップS1904)。一方、SAがない場合には(ステップS1903:No)、パケット処理部602は、MACテーブル302aにSAおよび受信ポートを保持するとともに(ステップS1905)、Aging timerの開始を行う(ステップS1906)。
【0104】
また、パケット処理部602は、MACテーブル302aに到着パケット内のDAに対応する先着ポート番号があるか否かを判定する(ステップS1907)。先着ポート番号がある場合には(ステップS1907:Yes)、パケット処理部602は、MACテーブル302aに到着パケット内のDAに対応する次着ポート番号があるか否かを判定する(ステップS1908)。
【0105】
次着ポート番号がある場合には(ステップS1908:Yes)、パケット処理部602は、テーブルで指定された先着ポートと次着ポートの2ポートからユニキャスト送信を行って(ステップS1909)処理を終了する。
【0106】
一方、次着ポート番号がない場合には(ステップS1908:No)、パケット処理部602は、テーブルで指定された先着ポートから送信を行って、所定時間経過後(遅延挿入という)にステップS1911に進む(ステップS1910)。そして、パケット処理部602は、先着ポート以外であって該当パケットが未到着の全ポートからフラッディングして(ステップS1911)処理を終了する。
【0107】
また、先着ポート番号がない場合には(ステップS1907:No)、パケット処理部602は、該当パケットが未到着の全ポートからフラッディングを行って(ステップS1912)処理を終了する。このとき、ポートが例えばVLAN(VirtualLAN)などのネットワーク単位でグループ分けされている場合は、パケット処理部602は、パケットの受信ポートと同じグループに所属するポートのみに対してフラッディングを行う。換言すれば、パケット処理部602は、先着ポート番号がない場合(ステップS1907:No)、または次着ポート番号がない場合には(ステップS1908:No)、パケットが未到着のポートのうちブロードキャストドメインの全ポートからフラッディングを行う。
【0108】
次に、図20に示したEgressノードの経路生成処理の詳細について説明する。図20は、Egressノードの経路生成処理の詳細を示すフローチャートである。
【0109】
図20に示すように、パケット処理部602は、パケットが到着すると(ステップS2001)、同一性情報テーブル302bに一致情報があるか否かを判定する(ステップS2002)。そして、同一性情報テーブル302bに一致情報がない場合には(ステップS2002:No)、パケット処理部602は、ステップS2001におけるパケットに関するパケット情報を同一性情報テーブル302bに保持するとともに、フラグを1にセットする(ステップS2003)。
【0110】
つづいて、パケット処理部602は、MACテーブル302aに到着パケット内のSAと同一のアドレスがあるか否かを判定し(ステップS2004)、SAがある場合には(ステップS2004:Yes)、Aging timerの更新を行う(ステップS2005)。一方、SAがない場合には(ステップS2004:No)、パケット処理部602は、MACテーブル302aにSAおよび受信ポートを保持するとともに(ステップS2006)、Aging timerの開始を行う(ステップS2007)。
【0111】
また、パケット処理部602は、MACテーブル302aに到着パケット内のDAに対応する先着ポート番号があるか否かを判定し(ステップS2008)、先着ポート番号がある場合には(ステップS2008:Yes)、テーブルで指定されたポートからユニキャスト送信を行って(ステップS2009)処理を終了する。一方、先着ポート番号がない場合には(ステップS2008:No)、パケット処理部602は、該当パケットが未到着の全ポートからフラッディングを行って(ステップS2010)処理を終了する。
【0112】
このとき、ポートが例えばVLAN(VirtualLAN)などのネットワーク単位でグループ分けされている場合は、パケット処理部602は、パケットの受信ポートと同じグループに所属するポートのみに対してフラッディングを行う。換言すれば、パケット処理部602は、DAがない場合には(ステップS2008:No)、パケットが未到着のポートのうちブロードキャストドメインの全ポートからフラッディングを行う。
【0113】
また、ステップS2002において同一性情報テーブル302bに一致情報があると判定された場合には(ステップS2002:Yes)、パケット処理部602は、同一性情報テーブル302bに記憶されているフラグが1か否か判定する(ステップS2011)。フラグが1でない場合(ステップS2011:No)、ステップS2014に進む。フラグが1である場合(ステップS2011:Yes)、パケット処理部602は、MACテーブル302aにSAおよび受信ポートを保持し(ステップS2012)、フラグを0にセットする(ステップS2013)。そして、パケット処理部602は、パケットを廃棄して(ステップS2014)処理を終了する。
【0114】
このように、上述した実施の形態では、最短パスの一端となるノード100は、パケットを受信したポート以外の全ポートへパケットをフラッディングする。これにより、ネットワークを構成するノード100に、最短パスとノード・リンクを共用しない次善パスの復路を自動的に学習させることができる。そして、最短パスの他端となるノード100は、最短パスと次善パスとを学習することができる。
【0115】
また、上述した実施の形態では、最短パスの一端となるノード100は、次善パスの生成の際、最短パスのポートからのパケットの送信時から一定時間経過後に、パケットを受信したポートおよび最短パスへのポート以外の全ポートへパケットをフラッディングする。そのため、最短パスにキュー遅延があった場合であっても、次善パスを学習することができる。
【0116】
このように次善パスを学習した他端のノード100は、パケットを受信すると、最短パスと次善パスのそれぞれにパケットを送信する。これにより、次善パスの復路上のノード100に、次善パスの往路を自動的に学習させることができる。そして、双方向への次善パスが最短パスの一端のノード100および他端のノード100のそれぞれにおいて学習できる。
【0117】
そして、双方向の次善パスを学習した一端のノードは最短パスと次善パスとのそれぞれにパケットを送信する。また、双方向の次善パスを学習した他端のノードは、最短パスと次善パスのうち、いずれのパスを経由したパケットであるかに関わらず先着パケットをパケット内の宛先MACアドレスに送信し、後着したパケットは廃棄する。これにより、いずれか一方のパスを構成するノード・リンクに障害が起こった場合であっても、他方のパスからパケットを受信することができ、無瞬断かつパケットロスなしに障害を復旧することができる。
【0118】
同様に、双方向の次善パスを学習した他端のノード100は、一方のパスがいわゆるキュー遅延により大きく遅延している場合であっても、他方のパスから遅延なしにパケットを受信することができる。
【0119】
そして、この次善パスは、最短パスの一端のノード100および他端のノード100以外のノード100では従来の先着学習方式によって処理を行うため、オペレータは最短パスの一端のノード100および他端のノード100について設定を行うだけで、自動的にネットワークの冗長化を行うことができる。
【0120】
そのため、オペレータによるパス設計の作業負担の軽減を図ることができる。また、次善パスを自動生成できるため、オペレータのパス設計の熟練度に関わらず、容易に次善パスを生成することができる。さらに、次善パスを自動生成できるため、次善パスを高速に設定することができる。
【0121】
そして、最短パスまたは次善パスのいずれか一方のパスに障害が発生した場合、未障害パスを生成済の最短パスとして、本実施の形態で示した次善パス生成を行うことで、パスが1本である期間を短くすることができ、ネットワークの安全性の向上を図ることができる。また、障害箇所の特定や障害の復旧には時間を要するが、障害発生時に次善パスを高速生成することで、パスが2本の状態に早期に復帰できるため、障害箇所の特定作業や障害の復旧作業を、時間をかけて行うこともできる。
【0122】
なお、上述した実施の形態では、簡単のため、ノード100がIngressノードまたはEgressノードであるとして記載した。しかし、実際には、ノード100は、IngressノードおよびEgressノードの両方の機能を有している。このため、実際には、オペレータは、ノード100のポートに対して、IngressまたはEgressのポート属性を設定することになる。
【0123】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0124】
(付記1)先着学習方式により第1の装置から第2の装置への経路が設定されたネットワークを構成する中継装置群内の前記経路上の一端の中継装置が、前記第1の装置を送信元とし前記第2の装置を宛先とする往路パケットを、前記一端の中継装置のポート群のうち前記先着学習方式で学習済の特定のポートから送信し、前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングする第1の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、フラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記受信ポート以外のポートから前記往路パケットをフラッディングする第2の工程と、
前記中継装置群内の前記経路上の他端の中継装置が、前記経路上の中継装置から送信されてきた前記往路パケットを、前記先着学習方式で学習済の前記他端の中継装置のポート番号のポートから前記第2の装置宛に送信し、前記他端の中継装置にフラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を学習する第3の工程と、
を含んだことを特徴とする経路生成方法。
【0125】
(付記2)前記第1の工程は、
前記一端の中継装置が、前記特定のポートから前記往路パケットを送信し、前記特定のポートからの前記往路パケットの送信時から所定時間経過後に前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングすることを特徴とする付記1に記載の経路生成方法。
【0126】
(付記3)前記他端の中継装置が、前記第2の装置を送信元とし前記第1の装置を宛先とする復路パケットを、前記先着学習方式で前記第3の工程の前に学習済の第1のポートと前記第3の工程で学習された第2のポートとから送信する第4の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、前記第4の工程によって送信されてきた前記復路パケットを受信できた場合、前記復路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記往路パケットの送信元に対応するポート番号のポートから前記復路パケットを送信する第5の工程と、
前記一端の中継装置が、前記特定のポートから受信された前記復路パケットを、前記先着学習方式で学習済である前記第1の装置の宛先に対応するポート番号のポートから前記第1の装置宛に送信し、前記特定のポート以外のポートから受信された前記復路パケットの送信元と前記復路パケットを受信した前記特定のポート以外のポートのポート番号を学習する第6の工程と、
を含んだことを特徴とする付記1または2に記載の経路生成方法。
【0127】
(付記4)前記第6の工程の後に、前記他端の中継装置が、前記第1の装置を送信元とし前記第2の装置を宛先とするあらたなパケットを、前記第1のポートと前記第2のポートからそれぞれ受信した場合、前記第1のポートから受信した前記パケットと前記第2のポートから受信した前記パケットとのうち、先着の前記パケットのみを前記第2の装置に送信する第7の工程を含んだことを特徴とする付記3に記載の経路生成方法。
【0128】
(付記5)パケットを受信する受信手段と、
前記受信手段によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定手段と、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信手段と、
を備えることを特徴とする中継装置。
【0129】
(付記6)前記送信手段は、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする付記5に記載の中継装置。
【0130】
(付記7)前記受信手段によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定手段と、
前記テーブルに、前記同一性判定手段によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする付記5または6に記載の中継装置。
【0131】
(付記8)一連のパケットを受信する受信手段と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定手段と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定手段と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定手段によって同一性があると判定され、かつ、前記着順判定手段によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする中継装置。
【0132】
(付記9)前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信手段を備えることを特徴とする付記8に記載の中継装置。
【0133】
(付記10)前記送信手段は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする付記9に記載の中継装置。
【0134】
(付記11)パケットを受信する受信工程と、
前記受信工程によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定工程と、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【0135】
(付記12)前記送信工程は、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする付記11に記載の経路生成プログラム。
【0136】
(付記13)前記受信工程によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定工程と、
前記テーブルに、前記同一性判定工程によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を備えることを特徴とする付記11または12に記載の経路生成プログラム。
【0137】
(付記14)一連のパケットを受信する受信工程と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定工程と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定工程と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定工程によって同一性があると判定され、かつ、前記着順判定工程によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【0138】
(付記15)前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信工程を備えることを特徴とする付記14に記載の経路生成プログラム。
【0139】
(付記16)前記送信工程は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする付記15に記載の経路生成プログラム。
【0140】
(付記17)コンピュータが、
パケットを受信する受信工程と、
前記受信工程によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定工程と、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信工程と、
を実行することを特徴とする経路生成方法。
【0141】
(付記18)前記送信工程は、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする付記17に記載の経路生成方法。
【0142】
(付記19)前記受信工程によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定工程と、
前記テーブルに、前記同一性判定工程によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を備えることを特徴とする付記17または18に記載の経路生成方法。
【0143】
(付記20)コンピュータが、
一連のパケットを受信する受信工程と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定工程と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定工程と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定工程によって同一性があると判定され、かつ、前記着順判定工程によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を実行することを特徴とする経路生成方法。
【0144】
(付記21)前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信工程を備えることを特徴とする付記20に記載の経路生成方法。
【0145】
(付記22)前記送信工程は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする付記21に記載の経路生成方法。
【符号の説明】
【0146】
100 ノード(中継装置)
302a MACテーブル
302b 同一性情報テーブル
601 パケット送受信部
602 パケット処理部
603 テーブル制御部
【特許請求の範囲】
【請求項1】
先着学習方式により第1の装置から第2の装置への経路が設定されたネットワークを構成する中継装置群のうち、前記経路上の一端の中継装置が、前記第1の装置を送信元とし前記第2の装置を宛先とする往路パケットを、前記一端の中継装置のポート群のうち前記先着学習方式で学習済の特定のポートから送信し、前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングする第1の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、フラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記受信ポート以外のポートから前記往路パケットをフラッディングする第2の工程と、
前記中継装置群内の前記経路上の他端の中継装置が、前記経路上の中継装置から送信されてきた前記往路パケットを、前記先着学習方式で学習済の前記他端の中継装置のポート番号のポートから前記第2の装置宛に送信し、前記他端の中継装置にフラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を学習する第3の工程と、
を含んだことを特徴とする経路生成方法。
【請求項2】
前記第1の工程は、
前記一端の中継装置が、前記特定のポートから前記往路パケットを送信し、前記特定のポートからの前記往路パケットの送信時から所定時間経過後に前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングすることを特徴とする請求項1に記載の経路生成方法。
【請求項3】
前記他端の中継装置が、前記第2の装置を送信元とし前記第1の装置を宛先とする復路パケットを、前記先着学習方式で前記第3の工程の前に学習済の第1のポートと前記第3の工程で学習された第2のポートとから送信する第4の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、前記第4の工程によって送信されてきた前記復路パケットを受信できた場合、前記復路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記往路パケットの送信元に対応するポート番号のポートから前記復路パケットを送信する第5の工程と、
前記一端の中継装置が、前記特定のポートから受信された前記復路パケットを、前記先着学習方式で学習済である前記第1の装置の宛先に対応するポート番号のポートから前記第1の装置宛に送信し、前記特定のポート以外のポートから受信された前記復路パケットの送信元と前記復路パケットを受信した前記特定のポート以外のポートのポート番号を学習する第6の工程と、
を含んだことを特徴とする請求項1または2に記載の経路生成方法。
【請求項4】
前記第6の工程の後に、前記他端の中継装置が、前記第1の装置を送信元とし前記第2の装置を宛先とするあらたなパケットを、前記第1のポートと前記第2のポートからそれぞれ受信した場合、前記第1のポートから受信した前記パケットと前記第2のポートから受信した前記パケットとのうち、先着の前記パケットのみを前記第2の装置に送信する第7の工程を含んだことを特徴とする請求項3に記載の経路生成方法。
【請求項5】
パケットを受信する受信手段と、
前記受信手段によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定手段と、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信手段と、
を備えることを特徴とする中継装置。
【請求項6】
前記送信手段は、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする請求項5に記載の中継装置。
【請求項7】
前記受信手段によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定手段と、
前記テーブルに、前記同一性判定手段によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする請求項5または6に記載の中継装置。
【請求項8】
一連のパケットを受信する受信手段と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定手段と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定手段と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定手段によって同一性があると判定され、かつ、前記着順判定手段によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする中継装置。
【請求項9】
前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信手段を備えることを特徴とする請求項8に記載の中継装置。
【請求項10】
前記送信手段は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする請求項9に記載の中継装置。
【請求項11】
パケットを受信する受信工程と、
前記受信工程によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定工程と、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【請求項12】
前記送信工程は、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする請求項11に記載の経路生成プログラム。
【請求項13】
前記受信工程によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定工程と、
前記テーブルに、前記同一性判定工程によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を備えることを特徴とする請求項11または12に記載の経路生成プログラム。
【請求項14】
一連のパケットを受信する受信工程と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定工程と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定工程と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定工程によって同一性があると判定され、かつ、前記着順判定工程によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【請求項15】
前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信工程を備えることを特徴とする請求項14に記載の経路生成プログラム。
【請求項16】
前記送信工程は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする請求項15に記載の経路生成プログラム。
【請求項1】
先着学習方式により第1の装置から第2の装置への経路が設定されたネットワークを構成する中継装置群のうち、前記経路上の一端の中継装置が、前記第1の装置を送信元とし前記第2の装置を宛先とする往路パケットを、前記一端の中継装置のポート群のうち前記先着学習方式で学習済の特定のポートから送信し、前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングする第1の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、フラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記受信ポート以外のポートから前記往路パケットをフラッディングする第2の工程と、
前記中継装置群内の前記経路上の他端の中継装置が、前記経路上の中継装置から送信されてきた前記往路パケットを、前記先着学習方式で学習済の前記他端の中継装置のポート番号のポートから前記第2の装置宛に送信し、前記他端の中継装置にフラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を学習する第3の工程と、
を含んだことを特徴とする経路生成方法。
【請求項2】
前記第1の工程は、
前記一端の中継装置が、前記特定のポートから前記往路パケットを送信し、前記特定のポートからの前記往路パケットの送信時から所定時間経過後に前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングすることを特徴とする請求項1に記載の経路生成方法。
【請求項3】
前記他端の中継装置が、前記第2の装置を送信元とし前記第1の装置を宛先とする復路パケットを、前記先着学習方式で前記第3の工程の前に学習済の第1のポートと前記第3の工程で学習された第2のポートとから送信する第4の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、前記第4の工程によって送信されてきた前記復路パケットを受信できた場合、前記復路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記往路パケットの送信元に対応するポート番号のポートから前記復路パケットを送信する第5の工程と、
前記一端の中継装置が、前記特定のポートから受信された前記復路パケットを、前記先着学習方式で学習済である前記第1の装置の宛先に対応するポート番号のポートから前記第1の装置宛に送信し、前記特定のポート以外のポートから受信された前記復路パケットの送信元と前記復路パケットを受信した前記特定のポート以外のポートのポート番号を学習する第6の工程と、
を含んだことを特徴とする請求項1または2に記載の経路生成方法。
【請求項4】
前記第6の工程の後に、前記他端の中継装置が、前記第1の装置を送信元とし前記第2の装置を宛先とするあらたなパケットを、前記第1のポートと前記第2のポートからそれぞれ受信した場合、前記第1のポートから受信した前記パケットと前記第2のポートから受信した前記パケットとのうち、先着の前記パケットのみを前記第2の装置に送信する第7の工程を含んだことを特徴とする請求項3に記載の経路生成方法。
【請求項5】
パケットを受信する受信手段と、
前記受信手段によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定手段と、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信手段と、
を備えることを特徴とする中継装置。
【請求項6】
前記送信手段は、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする請求項5に記載の中継装置。
【請求項7】
前記受信手段によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定手段と、
前記テーブルに、前記同一性判定手段によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする請求項5または6に記載の中継装置。
【請求項8】
一連のパケットを受信する受信手段と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定手段と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定手段と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定手段によって同一性があると判定され、かつ、前記着順判定手段によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする中継装置。
【請求項9】
前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信手段を備えることを特徴とする請求項8に記載の中継装置。
【請求項10】
前記送信手段は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする請求項9に記載の中継装置。
【請求項11】
パケットを受信する受信工程と、
前記受信工程によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定工程と、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【請求項12】
前記送信工程は、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする請求項11に記載の経路生成プログラム。
【請求項13】
前記受信工程によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定工程と、
前記テーブルに、前記同一性判定工程によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を備えることを特徴とする請求項11または12に記載の経路生成プログラム。
【請求項14】
一連のパケットを受信する受信工程と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定工程と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定工程と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定工程によって同一性があると判定され、かつ、前記着順判定工程によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【請求項15】
前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信工程を備えることを特徴とする請求項14に記載の経路生成プログラム。
【請求項16】
前記送信工程は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する2つのポートからそれぞれ受信された場合、前記2つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする請求項15に記載の経路生成プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2012−169791(P2012−169791A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−27947(P2011−27947)
【出願日】平成23年2月10日(2011.2.10)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願日】平成23年2月10日(2011.2.10)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]