(58)【調査した分野】(Int.Cl.,DB名)
前記第1フローを受信した後、ローカルに保存された前記第1フロー転送用の転送エントリに第1転送エントリと第2転送エントリとが含まれていると確認した場合は、第2転送エントリより優先度の高い第1転送エントリを選択し、もし選択された第1転送エントリにおけるエッグレスポートに接続されるリンクの故障が検出されたら、選択された第1転送エントリの優先度をプリセットした最低値に設定し、第1転送エントリより優先度の低い第2転送エントリによって前記第1フローを転送すること、をさらに含む請求項1に記載の経路切替方法。
前記ルータ機器は、第3フロー転送用の予備転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた場合は、SDNコントローラから発行された第3フロー転送用の転送エントリを受信してローカルに保存し、前記ローカルに保存された第3フロー転送用の転送エントリに優先度がプリセットした最低値より高い1つの転送エントリが含まれており、当該転送エントリは前記第3フロー転送用の予備転送経路に従ってSDNコントローラにより生成されたものであることと、
前記キー転送機器によって転送されてきた第3フローを受信し、そのうち、前記第3フローは特殊フロー標識がキー転送機器によって取り除かれた後、ローカルに保存された前記第3フロー転送用の2つの転送エントリ中の優先度の低い転送エントリによって転送されるフローであることと、
ローカルに保存された前記第3フロー転送用の転送エントリに優先度がプリセットした最低値より高い1つの転送エントリが含まれていると確認した場合、前記転送エントリによって前記第3フローを転送することと、をさらに含む請求項1に記載の経路切替方法。
【発明を実施するための形態】
【0003】
次は、図面を参照して本発明の実施例を説明する。
【0004】
図1は本発明の実施例で提供されるSDNネットワークの模式図である。
図1に示すように、SDNにルータ(Router)A〜Fがあり、SDNコントローラはSDNにおける各ルータを制御し管理している。Router Bを例として、SDNにおけるRouter BがPC1からPC3へのフロー(flow1とする)の最初のパケットを受信すると、そのパケットをSDNコントローラに送信する。SDNコントローラは経路計算することによって1つの転送経路を生成し、当該転送経路をRouter B−>Router A−>Router C−>Router Fとする。SDNコントローラは転送経路に従って転送経路上の各ルータに対応するOpenFlowエントリを各ルータへ発行し、PC1から最終的にPC3へflow1のパケットを転送するよう指示する。SDNコントローラからRouter B、Router A、Router C、Router Fへそれぞれ発行するOpenFlowエントリをOpenFlowエントリB、OpenFlowエントリA、OpenFlowエントリC、OpenFlowエントリFとする。その後、Router BはパケットにマッチしているOpenFlowエントリBに従ってパケットを転送し、当該パケットがRouter Aに転送される。Router Aはパケットを受信すると、パケットにマッチしているOpenFlowエントリAに従ってパケットを転送し、当該パケットがRouter Cに転送される。Router Cはパケットを受信すると、パケットにマッチしているOpenFlowエントリCに従ってパケットを転送し、当該パケットがRouter Fに転送される。Router Fはパケットを受信すると、パケットにマッチしているOpenFlowエントリFに従ってパケットを転送し、当該パケットが最終にPC3に転送される。
【0005】
しかし、上記パケット転送において、もしRouter CからRouter Fまでのリンクが中断した場合は、Router CのローカルにパケットにマッチしているOpenFlowエントリCが存在しているとしても、パケットがRouter Fに転送できず、パケット送信の中断が起こってしまう。パケット送信中断の時間は以下の時間T1〜T4によるものである。Router C、Router FがSDNコントローラにリンクの故障を報告する時間T1、SDNコントローラが再度経路計算を行う時間T2、再度計算した経路に従ってSDNコントローラによりOpenFlowエントリを生成する時間T3、SDNコントローラがOpenFlowエントリを発行する時間T4。
【0006】
図2は本発明の実施例で提供される経路切替方法のフローチャートである。当該方法はSDNにおけるルータ機器に適用する。
図2に示すように、当該方法は下記のステップを含む。
【0007】
ステップ201:SDNコントローラから発行された第1フロー転送用の転送エントリを受信してローカルに保存する。そのうち、前記ルータ機器が前記第1フローのキー転送機器であるとSDNコントローラによって決めた場合は、前記ローカルに保存された前記第1フロー転送用の転送エントリに第1転送エントリと第2転送エントリとが含まれている。前記第1転送エントリの優先度が第2転送エントリの優先度よりが高く、そして両者ともプリセットした最低値より高い。前記第1転送エントリは前記第1フローのために確定したメイン転送経路に従ってSDNコントローラにより生成されたものであり、前記第2転送エントリは前記第1フローのために確定した予備転送経路に従ってSDNコントローラにより生成されたものである。前記ルータ機器がメイン転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた場合は、前記ローカルに保存された前記第1フローの転送用の転送エントリにプリセットした最低値より優先度の高い1つの転送エントリが含まれている。
【0008】
ステップ202:前記第1フローを受信し、ローカルに保存された前記第1フローの転送用の転送エントリにプリセットした最低値より優先度の高い1つの転送エントリが含まれていると確認し、かつ当該転送エントリにおけるエッグレス(egress)ポートに接続されるリンクの故障を検出した時に、ローカルに保存された転送エントリの優先度をプリセットした最低値に設定し、前記第1フローを前記キー転送機器に送り返すことによって、前記キー転送機器が第2転送エントリに従って前記第1フローを転送することを引き起こす。
【0009】
本発明の実施例において、前記第1フローを前記キー転送機器に送り返すことは、
ローカルに保存された前記第1フローの転送用の転送エントリから、前記第1フローが本ルータ機器に流れ込むイングレス(Ingress)ポートを確定することと、
前記第1フローを特殊フロー標識でカプセル化し、前記特殊フロー標識は特殊フローエントリへマッチングを行うためのものであり、前記特殊フローエントリは前記第1フローを前記キー転送機器に送り返すためのものであることと、
特殊フロー標識でカプセル化された第1フローを前記イングレスポートによって転送することと、を含む。
【0010】
本発明の実施例において、当該方法はさらに、
特殊フロー標識でカプセル化された第2フローを受信し、カプセル化された第2フローの特殊フロー標識によってローカルの特殊転送エントリへマッチングを行うことと、
ローカルの特殊転送エントリに従って、カプセル化された第2フローの特殊フロー標識を取り除き、ローカルにて優先度の最も高い前記第2フロー転送用の転送エントリをサーチし、得られた優先度の最も高い前記第2フロー転送用の転送エントリの優先度をプリセットした最低値に設定し、そして、ローカルに優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリがまだ存在するかどうかをチェックし、ローカルに優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリが存在する時は、当該優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリに従って前記第2フローを転送し、ローカルに優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリが存在しない時に、前記得られた優先度の最も高い前記第2フロー転送用の転送エントリから、前記第2フローが本ルータ機器に流れ込むイングレスポートを確定し、前記第2フローを特殊フロー標識でカプセル化して前記イングレスポートによって特殊フロー標識でカプセル化された第2フローを転送することと、を含む。
【0011】
本発明の実施例において、前記第1フローを受信した後、当該方法はさらに、
ローカルに保存された前記第1フロー転送用の転送エントリに第1転送エントリと第2転送エントリとが含まれていると確認した場合は、第2転送エントリより優先度の高い第1転送エントリを選択し、もし選択された第1転送エントリにおけるエッグレスポートに接続されるリンクの故障が検出されたら、選択された第1転送エントリの優先度をプリセットした最低値に設定し、第1転送エントリより優先度の低い第2転送エントリによって前記第1フローを転送することを含む。
【0012】
本発明の実施例において、当該方法はさらに、
前記ルータ機器は、第3フロー転送用の予備転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた場合は、SDNコントローラから発行された第3フロー転送用の転送エントリを受信してローカルに保存し、前記ローカルに保存された第3フロー転送用の転送エントリに優先度がプリセットした最低値より高い1つの転送エントリが含まれており、、当該転送エントリは前記第3フロー転送用の予備転送経路に従ってSDNコントローラにより生成されたものであることと、
前記キー転送機器によって転送されてきた第3フローを受信し、そのうち、前記第3フローはカプセル化された第3フローの特殊フロー標識がキー転送機器によって取り除かれた後、ローカルに保存された前記第3フロー転送用の2つの転送エントリ中の優先度の低い転送エントリによって転送されるフローであることと、
ローカルに保存された前記第3フロー転送用の転送エントリに優先度がプリセットした最低値より高い1つの転送エントリが含まれていると確認した場合、前記転送エントリによって前記第3フローを転送することと、を含む。
【0013】
図3は本発明の実施例で提供される他の経路切替方法のフローチャートである。当該方法はSDNに適用する。
図3に示されるように、当該方法は、
ステップ301:SDNコントローラはフローのためにメイン転送経路と予備転送経路を確定し、ルータ機器がフローのキー転送機器である場合は、2つの優先度の異なるフロー転送用の転送エントリをルータ機器へ発行し、優先度の高い転送エントリがメイン転送経路に従ってSDNコントローラにより生成されたものであり、優先度の低い転送エントリが予備転送経路に従ってSDNコントローラにより生成されたものであることと、 ルータ機器がメイン転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた時に、ルータ機器へ1つの転送エントリを発行し、当該発行した転送エントリがメイン転送経路に従ってSDNコントローラにより生成されたものであることと、ルータ機器が予備転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた時に、ルータ機器へ1つの転送エントリを発行し、当該発行した転送エントリが予備転送経路に従ってSDNコントローラにより生成されたものであることと、を含む。
【0014】
本発明の実施例において、ルータ機器がフローのために確定したメイン転送経路と予備転送経路の間の分岐位置に存在する場合は、当該ルータ機器がフローのキー転送機器であると確定する。
【0015】
ステップ301に関して、ルータ機器がフローのキー転送機器である時に当該ルータ機器へ発行された2つの転送エントリでも、ルータ機器がフローのキー転送機器ではないがメイン転送経路または予備転送経路にある時にルータ機器へ発行された1つの転送エントリでも、その優先度がいずれもプリセットした最低値より高い。ここでは、プリセットした最低値は実際の状況に応じて設置されるものであり、例えば0に設置される。
【0016】
ステップ302:ルータ機器がSDNコントローラから発行されたフロー転送用の転送エントリを受信してローカルに保存する。
【0017】
ステップ303:ルータ機器が前記フローを受信し、ローカルに1つの前記フロー転送用の転送エントリしか保存されていない時に、もし当該転送エントリにおけるエッグレスポートに接続されるリンクの故障が検出されたら、当該転送エントリの優先度をプリセットした最低値に設定し、前記フローを前記キー転送機器に送り返すことによって、前記キー転送機器が優先度の低いフロー転送用の転送エントリに従って前記フローを転送することを引き起こすこと、ローカルに2つの前記フロー転送用の転送エントリが保存されている時に、優先度の高い転送エントリを選択し、もし当該選択された転送エントリにおけるエッグレスポートに接続されるリンクの故障が検出されたら、当該選択された転送エントリの優先度をプリセットした最低値に設定し、優先度の低い前記フロー転送用の転送エントリによって前記フローを転送する。
【0018】
ステップ303において、フローをキー転送機器に送り返すことによって、キー転送機器が優先度の低いフロー転送用の転送エントリに従ってフローを転送することを引き起こすことは、
図4に示すステップを含むことが可能である。
図4は本発明の実施例で提供されるルータ機器からフローをキー転送機器に送り返す過程のフローチャートである。
図4を参照して、当該過程はステップa1〜ステップa2を含む。
【0019】
ステップa1:ローカルに保存された1つだけの前記フロー転送用の転送エントリから、前記フローが本ルータ機器に流れ込むイングレスポートを確定する。
【0020】
一般的に、SDNコントローラからルータ機器へ発行した転送エントリにイングレスポートが含まれているので、ステップa1では、ローカルに保存された1つだけの前記フロー転送用の転送エントリにおけるイングレスポートを、前記フローが本ルータ機器に流れ込むイングレスポートとして確定する。
【0021】
ステップa2:前記フローを特殊フロー標識でカプセル化して、特殊フロー標識でカプセル化されたフローを当該イングレスポートによって転送する。
ここでは、特殊フロー標識は特殊フローエントリへマッチングを行うためのフロー標識であり、特殊フローエントリはSDNコントローラからフローのメイン転送経路にあるルータ機器へ発行したものであり、具体的にフローのキー転送機器へフローを送り返すためのものである。特殊フローエントリのフロー標識が特殊フロー標識と呼ぶ原因は、当該フロー標識に対応するフローが実際に存在しなく、例えば全て1または0であり、通常のフローは特殊フローエントリにマッチすることがなく、特殊フロー標識だけマッチできる。
【0022】
ステップa2によってルータ機器が特殊フロー標識でカプセル化されたフローを転送した後、当該ルータ機器とキー転送機器の間の中間ルータ機器が特殊フロー標識でカプセル化されたフローを受信できる。中間ルータ機器は、特殊フロー標識でカプセル化されたフローを受信した時に、カプセル化されたフローの特殊フロー標識によってローカルの特殊転送エントリへマッチングを行い、その後、ローカルの特殊転送エントリに従って以下の操作を行う。つまり、カプセル化されたフローの特殊フロー標識を取り除いて、ローカルに保存された前記フロー転送用の転送エントリの優先度をプリセットした最低値に設定し、もしローカルの転送エントリに優先度が前記プリセットした最低値より高い前記フロー転送用の転送エントリが存在しない場合、ローカルに保存された前記フロー転送用の転送エントリから前記フローが本中間機器に流れ込むイングレスポートを確定し、前記フローを特殊フロー標識でカプセル化した上でイングレスポートによって特殊フロー標識でカプセル化されたフローを転送する。最後に特殊フロー標識でカプセル化されたフローがキー転送機器に転送される。
【0023】
キー転送機器は、特殊フロー標識でカプセル化されたフローを受信した時に、カプセル化されたフローの特殊フロー標識によってローカルの特殊転送エントリへマッチングを行い、その後、ローカルの特殊転送エントリに従って以下の操作を行う。つまり、カプセル化されたフローの特殊フロー標識を取り除いて、ローカルに保存された前記フロー転送用の転送エントリから優先度の最も高い転送エントリを選択し、選択された転送エントリの優先度をプリセットした最低値に設定し、ローカルに優先度が前記プリセットした最低値より高い前記フロー転送用の転送エントリが存在するかどうかをチェックし、もし存在する場合は、優先度が前記プリセットした最低値より高い前記フロー転送用の転送エントリにおけるエッグレスポートによって前記フローを転送する。上記キー転送機器のローカルに保存される、2つの前記フロー転送用の優先度の異なる転送エントリに関して、キー転送機器は優先度が前記プリセットした最低値より高い前記フロー転送用の転送エントリによってフローを転送することは、前記フローを予備転送経路に切り替えて、メイン転送経路と予備転送経路の切替をやり遂げることに相当する。
【0024】
ステップ303におけるルータ機器は、上記中間ルータ機器またはキー転送機器と類似する処理を行うことが可能である。
【0025】
ステップ303は主にメイン・予備転送経路の切替を果たすステップであるので、当該メイン・予備転送経路の切替を果たすために、ステップ303におけるルータ機器をフローのキー転送機器とすることが可能であり、またはステップ303におけるルータ機器をフローのキー転送機器ではなく、フローのメイン転送経路にあるものとすることが可能である。ルータ機器がフローのキー転送機器ではないが、フローのメイン転送経路にある場合は、ルータ機器が前記フローを受信すると、直接にローカルに保存されている1つの前記フロー転送用の転送エントリによって前記フローを転送する。
【0026】
以下では1つの実施例を通じて
図3に示す過程を説明する。
【0027】
図5に示すSDNネットワークを例として説明する。仮に
図5において1つのフローをPC1からPC3へ送信しようとして、そのフローをflow1とする。SDNコントローラは経路計算してflow1に2つの異なる転送経路を生成し、一方は
図5では実線で表示されるメイン転送経路であり、具体的にRouter B−>Router A−>Router C−>Router Fであり、他方は
図5では点線で表示される予備転送経路であり、具体的にRouter B−>Router D−>Router E−>Router Fである。
【0028】
Router Bはメイン転送経路と予備転送経路の間の分岐位置にあり、flow1のキー転送機器である。SDNコントローラは、Router Bによってflow1を転送するための2つの転送エントリを発行する。2つの転送エントリは優先度が異なるが、いずれもプリセットした最低値より高く、そのうちの優先度の高い転送エントリはエントリB1と呼ばれ、メイン転送経路に従って生成された、Router Bによってflow1を転送するための転送エントリであり、優先度の低い転送エントリはエントリB2と呼ばれ、予備転送経路に従って生成されたRouter Bによってflow1を転送するための転送エントリである。
Router Aはメイン転送経路にあり、flow1のキー転送機器ではない。SDNコントローラは、Router Aによってflow1を転送するための1つの転送エントリをRouter Aへ発行し、当該転送エントリはエントリA1と呼ばれ、メイン転送経路に従って生成された、Router Aによってflow1を転送するための転送エントリである。エントリA1の優先度はプリセットした最低値より高いが、その優先度の値は他の各ルータ機器における転送エントリの優先度と関係なく、プリセットした第1デフォルト値とすることが可能である。
【0029】
Router Cはメイン転送経路にあり、flow1のキー転送機器ではない。SDNコントローラは、Router Cによってflow1を転送するための1つの転送エントリをRouter Cへ発行し、当該転送エントリはエントリC1と呼ばれ、メイン転送経路に従って生成された、Router Cによってflow1を転送するための転送エントリである。エントリC1の優先度はプリセットした最低値より高いが、その優先度の値は他の各ルータ機器における転送エントリの優先度と関係なく、プリセットした第1デフォルト値とすることが可能である。
【0030】
Router Dは予備転送経路にあり、flow1のキー転送機器ではない。SDNコントローラは、Router Dによってflow1を転送するための1つの転送エントリをRouter Dへ発行し、当該転送エントリはエントリD1と呼ばれ、予備転送経路に従って生成された、Router Dによってflow1を転送するための転送エントリである。エントリD1の優先度はプリセットした最低値より高いが、その優先度の値は他の各ルータ機器における転送エントリの優先度と関係なく、プリセットした第2デフォルト値とすることが可能である。
【0031】
Router Eは予備転送経路にあり、flow1のキー転送機器ではない。SDNコントローラは、Router Eによってflow1を転送するための1つの転送エントリをRouter Eへ発行し、当該転送エントリはエントリE1と呼ばれ、予備転送経路に従って生成された、Router Eによってflow1を転送するための転送エントリである。エントリE1の優先度はプリセットした最低値より高いが、その優先度の値は他の各ルータ機器における転送エントリの優先度と関係なく、プリセットした第2デフォルト値とすることが可能である。
【0032】
Router Fは、メイン転送経路と予備転送経路とに同時に位置し、メイン転送経路と予備転送経路との間の分岐位置ではなく、メイン転送経路と予備転送経路の間の合流位置にある。合流位置にあるRouter Fに対して、SDNコントローラは実際の状況に応じて1つの転送エントリを発行すればよく、当該1つの転送エントリは、メイン転送経路に従ってSDNコントローラにより生成された、Router Fによってflow1を転送するための転送エントリであり、または、予備転送経路に従ってSDNコントローラにより生成された、Router Fによってflow1を転送するための転送エントリである。しかし、SDNコントローラから発行したのはメイン転送経路に従って生成した転送エントリであっても、予備転送経路に従って生成した転送エントリであっても、統一にエントリF1と呼び、エントリF1の優先度がプリセットした最低値より高いが、他の各ルータ機器における転送エントリの優先度と関係なく、プリセットした第1デフォルト値または2デフォルト値とすることが可能である。
【0033】
図5に示すように、PC1から送信したflow1はまずRouter Bに着く。Router Bがflow1を受信すると、ローカルに2つのflow1転送用の転送エントリが保存されているのを見つけ、優先度の高いエントリB1を選択する。エントリB1におけるエッグレスポートに接続されるリンクが正常であると検出した時に、エントリB1におけるエッグレスポートによってflow1を送信する。flow1はRouter BからRouter Aに送信される。
【0034】
Router Aがflow1を受信すると、ローカルに1つのflow1転送用の転送エントリ、すなわちエントリA1だけが保存されているのを見つけ、エントリA1におけるエッグレスポートに接続されるリンクが正常であることを検出した時に、エントリA1におけるエッグレスポートによってflow1を送信する。flow1はRouter AからRouter Cに送信される。
【0035】
Router Cがflow1を受信すると、ローカルに1つのflow1転送用の転送エントリ、すなわちエントリC1だけが保存されており、もしエントリC1におけるエッグレスポートに接続されるリンクの故障を検出したら、flow1の転送ができなくなり、SDNコントローラにリンクの故障を報告する。前記エントリC1におけるエッグレスポートに接続されるリンクの故障は、
図6に示すRouter CとRouter Fの間のリンクの故障である。リンクの故障の検出は、双方向転送検出(BFD:Bidirectional Forwarding Detection)によって行うことが可能である。リンクの故障はいろいろな状況を含み、例えばリンクdown、flow1送信失敗などがあります。
【0036】
Router Cは、エントリC1の優先度をプリセットした最低値に設定する。本実施例において、プリセットした最低値は0である。Router Cは、ローカルに優先度が0より高い前記フロー転送用の転送エントリが存在しないと検出した時に、特殊フロー標識でflow1をカプセル化する。本実施例では、特殊フロー標識はflow XXXである。Router CはエントリC1におけるイングレスポートによってflow XXXでカプセル化されたflow1を送信する。flow XXXでカプセル化されたflow1はRouter Aに送り返すことになる。
【0037】
Router Aはflow XXXでカプセル化されたflow1を受信すると、flow XXXによってローカルの特殊転送エントリへマッチングを行い、マッチしている特殊転送エントリに従ってカプセル化したflow1のflow XXXを取り除いて元のflow1を復元し、ローカルの転送エントリから優先度の最も高いflow1転送用の転送エントリであるエントリA1を確定し、エントリA1の優先度を0に設定し、ローカルの転送エントリに優先度が0より高いflow1転送用の転送エントリがまだあるかどうかをチェックし、結果がNOである時に、特殊フロー標識flow XXXでflow1をカプセル化し、エントリA1におけるイングレスポートによってflow XXXでカプセル化されたflow1を送信する。flow XXXでカプセル化されたflow1はRouter Bに送り返すことになる。
【0038】
Router Bはflow XXXでカプセル化されたflow1を受信すると、flow XXXによってローカルの特殊転送エントリへマッチングを行い、マッチしている特殊転送エントリに従ってカプセル化されたflow1のflow XXXを取り除いて元のflow1を復元し、ローカルの転送エントリから優先度の最も高いflow1転送用の転送エントリであるエントリB1を確定し、エントリB1の優先度を0に設定し、ローカルの転送エントリに優先度が0より高いflow1転送用の転送エントリがまだあるかどうかをチェックし、エントリB2が優先度が0より高いflow1転送用の転送エントリであることが分かり、エントリB2におけるエッグレスポートによってflow1を転送する。Router Dはflow1を受信すると、ローカルに保存された1つのflow1転送用のエントリ、すなわちエントリD1におけるエッグレスポートによってflow1を送信する。Router E、Router Fの処理方法はRouter Dに類似し、最終的にPC1からのflow1が予備転送経路Router B−>Router D−>Router E−>Router FによってPC3に転送し、Router CとRouter Fとの間の故障リンクを通さない。
図5に示すSDNネットワークに基づいて、
図6では点線によってflow1の一時転送経路を示している。
【0039】
その後でPC1からのflow1がRouter Bに着くときに、Router Bが既に元々優先度の最も高いエントリB1の優先度を最低値0に設定したので、これらの後でPC1からのflow1がRouter Bで予備転送経路に従って生成したエントリB2にマッチしていることになり、最終的に予備転送経路Router B−>Router D−>Router E−>Router Fに転送され、PC3に到着する。こうすることにより、リンクの故障に対応してSDNコントローラが各ルータ機器の転送エントリを更新するまでの、フローの中断を回避することができる。リンクの故障に対してSDNコントローラが各ルータ機器の転送エントリを更新した後、各ルータ機器は更新後の転送エントリに従ってデーターフローを転送する。
【0040】
以下では、本発明の実施例で提供される経路切替装置について説明する。当該経路切替装置はSDNに適用可能である。
【0041】
図7は本発明の実施例で提供される経路切替装置の構造模式図である。該装置はSDNにおけるルータ機器に適用し、
図7に示すように、エントリユニット701と、フローユニット702とを含む。
【0042】
エントリユニット701は、SDNコントローラから発行された第1フロー転送用の転送エントリを受信してローカルに保存するためものであり、ルータ機器が前記第1フローのキー転送機器であるとSDNコントローラによって決められた場合は、前記ローカルに保存された前記第1フロー転送用の転送エントリに第1転送エントリと第2転送エントリとが含まれており、前記第1転送エントリの優先度が第2転送エントリの優先度より高く、そして両者ともプリセットした最低値より高く、前記第1転送エントリは前記第1フローのために確定したメイン転送経路に従ってSDNコントローラにより生成されたものであり、前記第2転送エントリは前記第1フローのために確定した予備転送経路に従ってSDNコントローラにより生成されたものであり、ルータ機器が前記メイン転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた時に、前記ローカルに保存された前記第1フロー転送用の転送エントリにプリセットした最低値より優先度の高い1つの転送エントリが含まれており、当該転送エントリは前記メイン転送経路に従ってSDNコントローラにより生成されたものである。
【0043】
フローユニット702は、前記第1フローを受信するためのものであり、ローカルに保存された前記第1フローの転送用の転送エントリにプリセットした最低値より優先度の高い1つの転送エントリが含まれていると確認し、かつ当該転送エントリにおけるエッグレス(egress)ポートに接続されるリンクの故障を検出した時に、ローカルに保存された転送エントリの優先度をプリセットした最低値に設定し、前記第1フローを前記キー転送機器に送り返すことによって、前記キー転送機器が第2転送エントリに従って前記第1フローを転送することを引き起こす。
【0044】
本発明の実施例において、前記フローユニット702はローカルに保存された前記第1フローの転送用の転送エントリから、前記第1フローが本ルータ機器に流れ込むイングレスポートを確定し、前記第1フローを特殊フロー標識でカプセル化し、前記特殊フロー標識が特殊エントリへマッチングを行うためのものであり、前記特殊フローエントリが前記第1フローを前記キー転送機器に送り返すためのものであり、特殊フロー標識でカプセル化された第1フローを前記イングレスポートによって転送することによって、前記キー転送機器が第2転送エントリに従って前記第1フローを転送することを引き起こす。
【0045】
本発明の実施例において、前記フローユニット702はさらに特殊フロー標識でカプセル化された第2フローを受信し、カプセル化された第2フローの特殊フロー標識によってローカルの特殊転送エントリへマッチングを行い、ローカルの特殊転送エントリに従って下記操作を行う。カプセル化された第2フローの特殊フロー標識を取り除き、ローカルにて優先度の最も高い前記第2フロー転送用の転送エントリをサーチし、得られた優先度の最も高い前記第2フロー転送用の転送エントリの優先度をプリセットした最低値に設定し、そして、ローカルに優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリがまだ存在するかどうかをチェックし、ローカルに優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリが存在する時に、当該優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリに従って前記第2フローを転送し、ローカルに優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリが存在しない時に、前記得られた優先度の最も高い前記第2フロー転送用の転送エントリから前記第2フローが本ルータ機器に流れ込むイングレスポートを確定し、前記第2フローを特殊フロー標識でカプセル化して前記イングレスポートによって特殊フロー標識でカプセル化された第2フローを転送する。
本発明の実施例において、前記フローユニット702はローカルに保存された前記第1フロー転送用の転送エントリに第1転送エントリと第2転送エントリとが含まれていると確認した場合は、第2転送エントリより優先度の高い第1転送エントリを選択し、もし選択された第1転送エントリにおけるエッグレスポートに接続されるリンクの故障を検出したら、選択された第1転送エントリの優先度をプリセットした最低値に設定し、第1転送エントリより優先度の低い第2転送エントリによって前記第1フローを転送する。
【0046】
本発明の実施例において、ルータ機器が第3フロー転送用の予備転送経路に位置しながらSDNコントローラによってキー転送機器ではないと決めた場合は、前記エントリユニット701がSDNコントローラから発行された第3フロー転送用の転送エントリを受信してローカルに保存する。前記ローカルに保存された第3フロー転送用の転送エントリに優先度がプリセットした最低値より高い1つの転送エントリが含まれており、当該転送エントリは前記第3フロー転送用の予備転送経路に従ってSDNコントローラにより生成されたものである。前記フローユニット702は前記キー転送機器によって転送されてきた第3フローを受信し、そのうち、前記第3フローはキー転送機器によって特殊フロー標識を取り除かれた後、ローカルに保存された前記第3フロー転送用の2つの転送エントリ中の優先度の低い転送エントリによって転送されたフローであり、ローカルに保存された前記第3フロー転送用の転送エントリに優先度がプリセットした最低値より高い1つの転送エントリが含まれていると確認した場合、前記転送エントリによって前記第3フローを転送する。
【0047】
本発明の実施例では経路切替装置のハードウェア構造をさらに提供している。
図8は本発明の実施例で提供される経路切替装置のハードウェア構造模式図である。当該装置はSDNにおけるルータ機器である。
【0048】
図8に示すように、当該装置は、
プロセッサー801、例えばCPUと、非揮発性メモリ802と、を含むことが可能である。
【0049】
本発明の実施例において、非揮発性メモリ802はプロセッサー801より実行する機械可読命令を保存するためのものであり、前記機械可読命令はエントリ命令とフロー命令とを含むことができる。
本発明の実施例において、プロセッサー801は非揮発性メモリー802に保存されるエントリ命令を読み取り、
SDNコントローラから発行された第1フロー転送用の転送エントリを受信してローカルに保存し、前記ルータ機器が前記第1フローのキー転送機器であるとSDNコントローラによって決めた場合は、前記ローカルに保存された前記第1フロー転送用の転送エントリに第1転送エントリと第2転送エントリとが含まれており、前記第1転送エントリの優先度が第2転送エントリの優先度より高く、そして両者ともプリセットした最低値より高く、前記第1転送エントリは前記第1フローのために確定したメイン転送経路に従ってSDNコントローラにより生成されたものであり、前記第2転送エントリは前記第1フローのために確定した予備転送経路に従ってSDNコントローラにより生成されたものであるステップと、前記ルータ機器がメイン転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた場合は、前記ローカルに保存された前記第1フロー転送用の転送エントリにプリセットした最低値より優先度の高い1つの転送エントリが含まれているステップと、を実現する。
【0050】
本発明の実施例において、プロセッサー801は非揮発性メモリー802に保存されるフロー命令を読み取り、
前記第1フローを受信し、ローカルに保存された前記第1フローの転送用の転送エントリにプリセットした最低値より優先度の高い1つの転送エントリが含まれていると確認し、かつ当該転送エントリにおけるエッグレス(egress)ポートに接続されるリンクの故障を検出した時に、ローカルに保存された転送エントリの優先度をプリセットした最低値に設定し、前記第1フローを前記キー転送機器に送り返すことによって、前記キー転送機器が前記第2転送エントリに従って前記第1フローを転送することを引き起こすステップ、を実現する。
【0051】
本発明の実施例において、プロセッサー801は非揮発性メモリー802に保存されるフロー命令を読み取り、
ローカルに保存された前記第1フローの転送用の転送エントリから、前記第1フローが本ルータ機器に流れ込むイングレス(Ingress)ポートを確定するステップと、
前記第1フローを特殊フロー標識でカプセル化し、前記特殊フロー標識は前記特殊フローエントリへマッチングを行うためのものであり、前記特殊フローエントリは前記第1フローを前記キー転送機器に送り返すためのものであるステップと、
特殊フロー標識でカプセル化された第1フローを前記イングレスポートによって転送するステップと、を実現する。
【0052】
本発明の実施例において、プロセッサー801は非揮発性メモリー802に保存されるフロー命令を読み取り、
特殊フロー標識でカプセル化された第2フローを受信し、カプセル化された第2フローの特殊フロー標識によってローカルの特殊転送エントリへマッチングを行うステップと、
ローカルの特殊転送エントリに従って、カプセル化された第2フローの特殊フロー標識を取り除き、ローカルにて優先度の最も高い前記第2フロー転送用の転送エントリをサーチし、得られた優先度の最も高い前記第2フロー転送用の転送エントリの優先度をプリセットした最低値に設定し、そして、ローカルに優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリがまだ存在するかどうかをサーチし、ローカルに優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリが存在する時に、当該優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリに従って前記第2フローを転送し、ローカルに優先度が前記プリセットした最低値より高い前記第2フロー転送用の転送エントリが存在しない時に、前記得られた優先度の最も高い前記第2フロー転送用の転送エントリから、前記第2フローが本ルータ機器に流れ込むイングレスポートを確定し、前記第2フローを特殊フロー標識でカプセル化して前記イングレスポートによって特殊フロー標識でカプセル化された第2フローを転送するステップと、を実現する。
【0053】
本発明の実施例において、プロセッサー801は非揮発性メモリー802に保存されるフロー命令を読み取り、
ローカルに保存された前記第1フロー転送用の転送エントリに第1転送エントリと第2転送エントリとが含まれていると確認した場合は、第2転送エントリより優先度の高い第1転送エントリを選択し、もし選択された第1転送エントリにおけるエッグレスポートに接続されるリンクの故障を検出したら、該選択された第1転送エントリの優先度をプリセットした最低値に設定し、第1転送エントリより優先度の低い第2転送エントリによって前記第1フローを転送するステップを実現する。
本発明の実施例において、プロセッサー801は非揮発性メモリー802に保存されるエントリ命令を読み取り、
前記ルータ機器は、第3フロー転送用の予備転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた場合は、SDNコントローラから発行された第3フロー転送用の転送エントリを受信してローカルに保存し、そのうち、前記ローカルに保存された第3フロー転送用の転送エントリに優先度がプリセットした最低値より高い1つの転送エントリが含まれており、当該転送エントリは前記第3フロー転送用の予備転送経路に従ってSDNコントローラにより生成されたものであるステップ、を実現する。
【0054】
本発明の実施例において、プロセッサー801は非揮発性メモリー802に保存されるフロー命令を読み取り、
前記キー転送機器によって転送されてきた第3フローを受信し、そのうち、前記第3フローは特殊フロー標識がキー転送機器によって取り除かれた後、ローカルに保存された前記第3フロー転送用の2つの転送エントリ中の優先度の低い転送エントリによって転送されるフローであるステップと、
ローカルに保存された前記第3フロー転送用の転送エントリに優先度がプリセットした最低値より高い1つの転送エントリが含まれていると確認した場合、前記転送エントリによって前記第3フローを転送するステップと、を実現する。
【0055】
図9は本発明の実施例で提供される他の経路切替装置の構造模式図である。当該装置はSDNにおけるSDNコントローラに適用し、
図9に示すように、経路確定ユニット901と、エントリ発行ユニット902とを含むことができる。
【0056】
経路確定ユニット901は、フローのためにメイン転送経路と予備転送経路を確定するためのものであり、
エントリ発行ユニット902は、ルータ機器が前記フローのキー転送機器である場合は、前記フロー転送用の2つの転送エントリをルータ機器へ発行し、2つの転送エントリの優先度が異なるが、いずれもプリセットした最低値より高く、優先度の高い転送エントリは前記メイン転送経路に従ってSDNコントローラにより生成されたものであり、優先度の低い転送エントリは前記予備転送経路に従ってSDNコントローラにより生成されたものであり、ルータ機器が前記メイン転送経路と予備転送経路の間の分岐位置に存在する場合は、当該ルータ機器はフローのキー転送機器であると確定し、
ルータ機器が前記メイン転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた場合は、優先度がプリセットした最低値より高い1つの転送エントリをルータ機器へ発行し、当該転送エントリが前記メイン転送経路に従って生成されたものであり、
ルータ機器が前記予備転送経路に位置しながら前記SDNコントローラによってキー転送機器ではない場合と決めたは、優先度がプリセットした最低値より高い1つの転送エントリをルータ機器へ発行し、当該転送エントリは前記予備転送経路に従って生成されたものである。
【0057】
本発明の実施例では他の経路切替装置のハードウェア構造をさらに提供している。
図10は本発明の実施例で提供される他の経路切替装置のハードウェア構造模式図である。当該装置はSDNにおけるSDNコントローラである。
【0058】
図10に示すように、当該装置は、
プロセッサー1001、例えばCPUと、非揮発性メモリ1002と、を含むことが可能である。
【0059】
本発明の実施例において、非揮発性メモリ1002は機械可読命令を保存するためのものであり、機械可読命令はプロセッサー1001により実行される経路確定命令と、エントリ発行命令とを含むことができる。
【0060】
本発明の実施例において、プロセッサー1001は非揮発性メモリー1002に保存される経路確定命令を読み取り、
フローのためにメイン転送経路と予備転送経路を確定することを実現する。
【0061】
本発明の実施例において、プロセッサー1001は非揮発性メモリー1002に保存されるエントリ発行命令を読み取り、
ルータ機器が前記フローのキー転送機器である場合、2つの前記フロー転送用の転送エントリをルータ機器へ発行し、2つの転送エントリの優先度が異なるが、いずれもプリセットした最低値より高く、優先度の高い転送エントリは前記メイン転送経路に従ってSDNコントローラにより生成されたものであり、優先度の低い転送エントリは前記予備転送経路に従ってSDNコントローラにより生成されたものであるステップと、ルータ機器が前記メイン転送経路と予備転送経路の間の分岐位置に存在する場合は、当該ルータ機器が前記フローのキー転送機器であると確定するステップと、
ルータ機器が前記メイン転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた場合は、優先度がプリセットした最低値より高い1つの転送エントリをルータ機器へ発行し、当該転送エントリは前記メイン転送経路に従って生成されたものであるステップと、
ルータ機器が前記予備転送経路に位置しながら前記SDNコントローラによってキー転送機器ではないと決めた場合は、優先度がプリセットした最低値より高い1つの転送エントリをルータ機器へ発行し、当該転送エントリは前記予備転送経路に従って生成されたものであるステップと、を実現する。
【0062】
本発明の実施例において、ルータ機器はローカルに保存されたフロー転送用の優先度の最も高い転送エントリにおけるエッグレスポートに接続されるリンクに対して検測し、故障を検出した時に、当該優先度の最も高い転送エントリの優先度をプリセットした最低値に設定し、もしローカルに優先度が前記プリセットした最低値より高い前記フロー転送用の転送エントリがまだある場合、当該転送エントリにおけるエッグレスポートによって前記フローを転送し、でなければ、当該フローをフローのキー転送機器に送り返し、キー転送機器は優先度の最も高い転送エントリの優先度をプリセットした最低値に設定し、優先度の低い前記フロー転送用の転送エントリによってフローを転送することにより、リンクの迅速な収束が図ることができ、リンクの中断によるフローの中断を回避できる。
【0063】
以上は本発明の好ましい実施例を説明しましたが、そのいずれも本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲においてなされた如何なる補正、均等入れ替え、改善などは、本発明の請求の範囲に含まれていると解釈すべきである。