JP2017228935A - パケット転送制御装置、パケット転送制御方法、およびパケット転送制御プログラム - Google Patents

パケット転送制御装置、パケット転送制御方法、およびパケット転送制御プログラム Download PDF

Info

Publication number
JP2017228935A
JP2017228935A JP2016123818A JP2016123818A JP2017228935A JP 2017228935 A JP2017228935 A JP 2017228935A JP 2016123818 A JP2016123818 A JP 2016123818A JP 2016123818 A JP2016123818 A JP 2016123818A JP 2017228935 A JP2017228935 A JP 2017228935A
Authority
JP
Japan
Prior art keywords
external
ofs
internal
destination
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016123818A
Other languages
English (en)
Other versions
JP6527488B2 (ja
Inventor
成正 熊川
Sigemasa Kumakawa
成正 熊川
隆典 岩井
Takanori Iwai
隆典 岩井
高橋 賢
Masaru Takahashi
賢 高橋
仁志 入野
Hitoshi Irino
仁志 入野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016123818A priority Critical patent/JP6527488B2/ja
Publication of JP2017228935A publication Critical patent/JP2017228935A/ja
Application granted granted Critical
Publication of JP6527488B2 publication Critical patent/JP6527488B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】従来型ルータおよび相互接続するOFSクラスタを拡大させてもネットワークの大規模化を容易に実現させる。【解決手段】複数の従来型ルータを介して外部NWと接続される内部NW上に配置されているOFS#1〜#6を制御してパケット転送を制御するOFC1は、OFS#1〜#6の各々にRE4−1〜4−6を備え、内部NWに対する経路計算を行う内部NW経路制御部13と、OFS#1〜#6をクラスタ化したOFSクラスタ2にRE4−Cを備え、外部NWに対する経路計算を行う外部NW経路制御部12と、OFS#1〜#6の各々に対して生成されるフローエントリにおいて、外部NW上の宛先が設定されたパケットの、OFSクラスタ2からの流出先を、設定された、外部NW上の宛先へ転送する従来型ルータに接続しているOpenFlowスイッチの出力IFに設定するフローエントリ生成部113と、を備える。【選択図】図5

Description

本発明は、OpenFlowスイッチ(以下、「OFS」と呼ぶ場合がある。)と従来型ルータとを相互接続してパケット転送を制御する技術に関する。なお、「NW」は、ネットワーク(Network)の略語として用いる。また、「RE」は、ルーチングエンジン(Routing Engine)の略語として用いる。
複数の従来型ルータを用いてNWを大規模化するために、複数のOFSを用いて構成される内部NWと従来型ルータを用いて構成される外部NWとを相互接続する接続方法がある。この接続方法には、主に、方式1に従うものと方式2に従うものが考えられる。
方式1は、パケット転送用の経路計算を行うREをOFSごとに配備し、OFSを制御するOpenFlowコントローラ(以下、「OFC」を呼ぶ場合がある。)が内部NWと外部NWとを区別なく管理して相互接続を実現する方式である。方式1の接続方法は、RE群のトポロジをOFS群のトポロジと同じにすることができ、REの実装を単純にすることができるというメリットがある。しかし、方式1では、外部NWからは、OFSの数だけ従来型ルータの数が存在しているように見えてしまい、OFS数の増加に伴いルーチング負荷が増大してしまうというデメリットがある。
方式2は、内部NWをクラスタ化してOFSクラスタとし、OFSクラスタに1つのREを配備し、OFCが外部NWと内部NWとを区別して管理して相互接続を実現する方式である。方式2の接続方法は、方式1とは対照的に、外部NWからは、従来型ルータが1つだけ存在しているように見せることができるため、ルーチング負荷を低減させることができるというメリットがある。しかし、方式2では、OFSクラスタを拡大させるようにOFSの数を増大させた場合、内部NW上の経路と外部NW上の経路との紐付けが複雑化し、内部NW上のフォワーディングの実装が困難になるというデメリットがある。
なお、特許文献1および非特許文献3には、上記の方式2の接続方法とほぼ同様の技術が開示されている。また、非特許文献1〜2には、OpenFlowの技術が開示されている。
特開2014−160922号公報
"OpenFlow Switch Specification 1.3.5"[online]、[平成28年6月4日検索]、インターネット<URL: https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-switch-v1.3.5.pdf> NTT OSRG, "Ryu SDN Framework"[online]、[平成28年6月4日検索]、インターネット<URL: https://osrg.github.io/ryu-book/ja/Ryubook.pdf> Marcelo R. Nascimento et al., "Virtual routers as a service: the routeflow approach leveraging software-defined networks", Proc. CFI '11, June 2011.
しかし、特許文献1および非特許文献1〜3には、上記の方式2のデメリットを解消するための記載も示唆もされていない。
このような事情に鑑みて、本発明は、従来型ルータおよび相互接続するOFSクラスタを拡大させてもネットワークの大規模化を容易に実現させることを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、複数の従来型ルータを介して外部NW(Network)と接続される内部NW上に配置されている複数のOpenFlowスイッチを制御してパケット転送を制御するパケット転送制御装置であって、前記複数のOpenFlowスイッチの各々に対応するルーチングエンジンを備え、前記内部NWについての経路計算を行う内部NW経路制御部と、前記複数のOpenFlowスイッチをクラスタ化したOFSクラスタに対応するルーチングエンジンを備え、前記外部NWに対する経路計算を行う外部NW経路制御部と、前記複数のOpenFlowスイッチの各々に対して生成されるフローエントリにおいて、前記外部NW上の宛先が設定されたパケットの、前記OFSクラスタからの流出先を、前記設定された、外部NW上の宛先へ転送する前記従来型ルータに接続している前記OpenFlowスイッチの出力IF(Interface:インタフェース)に設定するフローエントリ生成部と、を備える、ことを特徴とする。
また、請求項7に記載の発明は、複数の従来型ルータを介して外部NWと接続される内部NW上に配置されている複数のOpenFlowスイッチを制御してパケット転送を制御するパケット転送制御装置におけるパケット転送制御方法であって、前記パケット転送制御装置が、前記複数のOpenFlowスイッチの各々に対応するルーチングエンジンを備え、前記内部NWについての経路計算を行う内部NW経路制御ステップと、前記複数のOpenFlowスイッチをクラスタ化したOFSクラスタに対応するルーチングエンジンを備え、前記外部NWに対する経路計算を行う外部NW経路制御ステップと、前記複数のOpenFlowスイッチの各々に対して生成されるフローエントリにおいて、前記外部NW上の宛先が設定されたパケットの、前記OFSクラスタからの流出先を、前記設定された、外部NW上の宛先へ転送する前記従来型ルータに接続している前記OpenFlowスイッチの出力IFに設定するフローエントリ生成ステップと、を実行する、ことを特徴とする。
また、請求項8に記載の発明は、複数の従来型ルータを介して外部NWと接続される内部NW上に配置されている複数のOpenFlowスイッチを制御してパケット転送を制御するパケット転送制御装置としてのコンピュータを、前記複数のOpenFlowスイッチの各々に対応するルーチングエンジンを備え、前記内部NWについての経路計算を行う内部NW経路制御手段、前記複数のOpenFlowスイッチをクラスタ化したOFSクラスタに対応するルーチングエンジンを備え、前記外部NWに対する経路計算を行う外部NW経路制御手段、前記複数のOpenFlowスイッチの各々に対して生成されるフローエントリにおいて、前記外部NW上の宛先が設定されたパケットの、前記OFSクラスタからの流出先を、前記設定された、外部NW上の宛先へ転送する前記従来型ルータに接続している前記OpenFlowスイッチの出力IFに設定するフローエントリ生成手段、として機能させるためのパケット転送制御プログラムである。
請求項1,7,8の発明によれば、フローエントリ生成部によって、OFSクラスタ内に流入したパケットは、当該パケットの外部NW上の宛先へ転送する従来型ルータに接続しているOpenFlowスイッチの出力IF(ポート)へ一度集約されるようにOFSクラスタ内を経由することができる。つまり、パケットごとに、OFSクラスタからの流出先を1つのOpenFlowスイッチの1つの出力IFに固定するように内部経路と外部経路との紐付けが行われ、紐付けは単純化される。このような集約は、NWの大規模化のために1OFSクラスタ内のOpenFlowスイッチの数を増大して、OFSクラスタを拡大させた場合にもあてはまる。
したがって、従来型ルータおよび相互接続するOFSクラスタを拡大させてもネットワークの大規模化を容易に実現させることができる。
また、請求項2に記載の発明によれば、請求項1に記載のパケット転送制御装置であって、前記フローエントリ生成部は、前記パケットの前記OFSクラスタ内への流入を受け付ける前記OpenFlowスイッチにて、前記設定を実行する、ことを特徴とする。
請求項2の発明によれば、フローエントリ生成部による、外部NW上の宛先が設定されたパケットの、OFSクラスタからの流出先の書換(集約)を、パケットのOFSクラスタ内への流入を受け付けるOpenFlowスイッチにて実行する、つまり、パケットのOFSクラスタ内への流入時に実行することで、OFSクラスタ内では、ソースアドレス(ソースMACアドレスまたはソースMPLSラベル)を参照したフォワーディングを実現することができる。これにより、すべてのOpenFlowスイッチが全経路(外部経路全体および内部経路全体)を保持する必要が無くなり、経路数の観点から、フローエントリ数のスケール性を向上させる際の制限を緩和することができる。
また、請求項3に記載の発明によれば、請求項2に記載のパケット転送制御装置であって、前記設定する出力IFをMACアドレスにより識別し、前記内部NW経路制御部と外部NW経路制御部は該当MACアドレスをソースアドレスに書換え、そのソースアドレスルーチングでパケットを転送することを特徴とする。
請求項3の発明によれば、パケットの、OFSクラスタからの流出先が書き換えられた出力IFを構成するポートのアドレスを、MACアドレスとすることで、OFSクラスタ内でMAC転送を実現することができ、レイヤ2より上のプロトコルに依存しないパケット転送を実現することができる。その結果、従来型ルータとしてIPルータだけでなく、大規模NWで利用される機会の多いIP/MPLSルータとの相互接続が可能となる。
また、請求項4に記載の発明によれば、請求項1から請求項3のいずれか1項に記載のパケット転送制御装置であって、前記外部NWがIPネットワークである場合、前記パケットに設定された、前記外部NW上の宛先がIPアドレスであり、前記外部NWがIP/MPLSネットワークである場合、前記パケットに設定された、前記外部NW上の宛先が宛先ラベルである、ことを特徴とする。
請求項4の発明によれば、パケットに設定された外部NW上の宛先をIPアドレスにすることで、外部NWがIPネットワークであってもネットワークの大規模化を容易に実現することができる。また、パケットに設定された外部NW上の宛先を宛先ラベルにすることで、外部NWがIP/MPLSネットワークであってもネットワークの大規模化を容易に実現することができる。
また、請求項5に記載の発明によれば、請求項1から請求項4のいずれか1項に記載のパケット転送制御装置であって、前記複数のOpenFlowスイッチの各々が備える前記ルーチングエンジンを動作させるアルゴリズムと、前記OFSクラスタが備える前記ルーチングエンジンを動作させるアルゴリズムとが共通化可能である、ことを特徴とする。
請求項5の発明によれば、複数のOpenFlowスイッチの各々が備えるルーチングエンジンを動作させるアルゴリズムと、OFSクラスタが備えるルーチングエンジンを動作させるアルゴリズムの共通化を可能にすることで、内部NW上のフォワーディング(内部フォワーディング)の実装を容易にすることができる。その結果、ネットワークの大規模化をさらに容易に実現させることができる。
また、請求項6に記載の発明によれば、請求項1から請求項5のいずれか1項に記載のパケット転送制御装置であって、前記設定された、外部NW上の宛先に前記パケットが到達できなくなる故障が発生した場合、当該パケットの、前記OFSクラスタからの流出先を、前記設定された、外部NW上の宛先へ転送する他の従来型ルータに接続している前記OpenFlowスイッチの出力IFに設定し、前記設定された宛先へ転送する他の従来型ルータに接続している前記OpenFlowスイッチが無い場合、前記設定された、外部NW上の宛先を削除して、前記外部NWへ経路広告する、ことを特徴とする。
請求項6の発明によれば、パケットが外部NW上の宛先に到達するまでの経路において故障が発生した場合であっても、クラスタ内で故障箇所を迂回するようなパケットの最適な転送経路を導き出すことができる。もし、クラスタ内で迂回先が無い場合にはOFSクラスタから転送経路が削除されたことを外部NWに広告することで、外部NWに対して適切なルーチングを促すことができる。
本発明によれば、従来型ルータおよび相互接続するOFSクラスタを拡大させてもネットワークの大規模化を容易に実現させることができる。
(a)が従来型ルータによるパケット転送の説明図であり、(b)がOpenFlowによるパケット転送の説明図である。 OFSによるIPルーチングの説明図である。 従来型ルータとOFSとの相互接続の(a)方式1および(b)方式2の説明図である。 本実施形態のOFCの管理対象となる、従来型ルータおよびOpenFlowスイッチクラスタの構成の例である。 本実施形態のOFCの機能構成詳細図の例である。 IF状態テーブルのデータ構造図の例である。 外部経路テーブルのデータ構造図の例である。 内部経路テーブルのデータ構造図の例である。 (a)が、パケット書換テーブル(IPの場合)のデータ構造図の例であり、(b)が、パケット書換テーブル(MPLSの場合)のデータ構造図の例である。 内部出力IFテーブルのデータ構造図の例である。 正常系動作の説明図の例である。 故障時切替動作の説明図である。 故障時動作(内外IF連携動作)の説明図の例である。 転送時動作(正常系)の処理を示すフローチャートである。 故障時動作の処理を示すフローチャートである。
本発明の実施形態について、図面を参照しながら詳細に説明する。
≪背景≫
[OpenFlow]
図1(a)に示すように、従来型ルータがレイヤ3によるダイナミックルーチングを行う際、従来型ルータと一体で動作するREが、ルーチングプロトコルとして機能するC-Plane(コントロールプレーン)にてコントロールパケットを処理し経路計算を行っていた。そして、従来型ルータは、経路計算結果に従って、D-Plane(データプレーン)にてパケット転送部がデータパケットを実際に処理することでパケット転送を行っていた。しかし、図1(a)に示す方式では、C-PlaneとD-Planeとが一体化しているため、従来型ルータに新たな経路制御方法を導入することが困難であり、柔軟なNW構築が困難であった。
これに対し、図1(b)に示すように、OpenFlowは、C-PlaneとD-Planeとを分離し、柔軟なNW構築を可能とする(非特許文献1参照)。C-Planeを担うOFCが所定のアルゴリズム(OpenFlowでは特に規定されていない)を用いて経路計算を行う。そして、OFCが、D-Planeを担うOFSに対してフローエントリと呼ばれる転送ルールを書き込むことで、データパケットを処理して、パケット転送を行う。NW構成変更の際は、物理トポロジ(D-Plane)を変更すればよく、C-Planeの大幅な設計変更は不要であるため、柔軟な構成変更が可能となる。
[ダイナミックルーチング]
例えば、従来型NWからOpenFlowベースNWへのマイグレーション時などに、それぞれのNWをレイヤ3(L3)で接続する必要がある場合が想定される。マイグレーション時には、従来型ルータに新たな技術の導入は困難であることが想定される。このため、OFC側の技術を従来型ルータに合わせるようにするために、OFCにREを備え、OFCが従来型ルータとダイナミックルーチング(IP(Internet Protocol)ルーチング)を行わせることが検討されている(非特許文献2,3参照)。なお、REは、例えばBGP(Border Gateway Protocol)やOSPF(Open Shortest Path First)などのプロトコルスタックである。
具体的な接続方法としては、OpenFlowのPacketIN/Outを用いてコントロールパケットを処理する。つまり、図2に示すように、まず、ダイナミックルーチング用のコントロールパケットについては、OpenFlowのPacketIN/OutにてOFCへパケットが流入するようにOFS側へ設定する。つぎに、OFCが備えるREは、コントロールパケットの処理および経路計算を行い、OFSに投入するデータパケット用のフローエントリをOFCが作成し、OFSに書き込む。
[複数OFSの制御方法]
複数のOFSと複数の従来型ルータとを相互接続する場合、以下の方式1および方式2が考えられる。
つまり、図3(a)に示すように、方式1では、OFCが備えるREをOFSごとに複数用意し、OFS群のトポロジとOFC側のRE群のトポロジとを同一にしつつ、OFC側のRE群の各々が、従来型ルータが備えるREの各々に接続している。方式1によれば、OFCは、OFS群が配置される内部NWと従来型ルータが配置される外部NWとを区別なく管理する。
また、図3(b)に示すように、方式2では、OFS群を1つのルータとしてクラスタ化してOFSクラスタとし、OFCが備えるREをOFSクラスタに対して1つ用意し、OFCが備える1つのREが、従来型ルータが備えるREの各々に接続している。このとき、OFCは、従来型ルータに対応する外部ルータと1つのREとの接続関係を表す外部トポロジを、外部NWの管理情報として保持する。また、OFCは、OFSクラスタを構成するOFS同士の接続関係を表す内部トポロジを、内部NWの管理情報として保持する。内部トポロジは、例えば、ルーチングプロトコルで把握されるようにしてもよいが、他のプロトコルによって把握されるようにしてもよい。方式2によれば、OFCは、OFS群が配置される内部NWと従来型ルータが配置される外部NWとを区別して管理する。このとき、内部NW上の経路(内部経路)と外部NW上の経路(外部経路)とが紐付けられて管理される。
方式1の接続方法は、RE群のトポロジをOFS群のトポロジと同じにすることができ、OFCの実装を単純にすることができるというメリットがある。しかし、方式1では、外部NWからは、OFSの数だけ従来型ルータの数が存在しているように見えてしまい、OFSの増加に伴いルーチング負荷が増大してしまうというデメリットがある。方式2は、このようなルーチング負荷の増加は無く、NWのスケール性が高い方式であるといえる。
複数の従来型ルータを用いてNWの大規模化を実現する上で、高スケール性を有する方式2による検討が行われている。特許文献1では、方式2とほぼ同様の技術が検討されている。つまり、特許文献1によれば、まず、OpenFlowコントローラは、外部NWと内部NWとの紐付けを行う。また、OpenFlowコントローラは、自身が生成した経路情報を外部NW上のルータにダイナミックルーチング(例:OSPF)で伝える。また、OpenFlowコントローラは、内部NW上のOFS間のパケット転送については、OFC内部で計算したフローエントリの書き込みを行う。特許文献2の技術について、OFSクラスタ内の接続情報は、予め設定しておく、または、所定の隣接管理プロトコル(例:LLDP(Link Layer Discovery Protocol))で取得することが考えられる。
[課題]
方式2に示すクラスタ化は、一部の課題を解決することができるが、以下の課題a〜cが存在する。
課題a:OFSクラスタを構成するOFSの数が増大した場合、内部経路と外部経路との紐付けが複雑化する。その結果、内部NW上のフォワーディング(内部フォワーディング)の実装が困難になる。
課題b:すべてのOFSがすべてのフローエントリ(またはすべての外部経路の管理情報)を持つ必要があり、フローエントリ数のスケール性の向上が制限される。
課題c:パケットヘッダの書換方式について具体的に検討されていない。例えば、Ethernet(登録商標)におけるMAC(Media Access Control)アドレス書換や、IP/MPLS(Multi Protocol Label Switching)におけるMPLSラベル書換などは、OFSクラスタ内のいずれの箇所(ingress側かegress側かなど)でいかなる方法で実行されるかは何ら規定されていない。
[本実施形態の概要]
本実施形態は、課題a〜cを解決するために以下の特徴を備える。
・内部NWの(OFS間の)経路制御については、方式1に従い、REを各OFSに1つずつ配備する。
・外部NWの(OFS−従来型ルータ間の)経路制御については、方式2に従い、REをOFSクラスタ(またはOFC)に1つ配備する。OFCを複数用いるシステムについては、REを各OFSクラスタ(または各OFC)に1つずつ配備する。
・内部経路と外部経路との紐付けは、各OFSのREとOFSクラスタのREとの紐付けとして実現し、各OFSのREとOFSクラスタのREとの紐付けには専用のテーブルを用いる(詳細は後記)。フローエントリ変換時(書換時)には、ソースMACアドレスフォワーディング(またはソースMPLSラベルフォワーディング)を実行するフローエントリ生成を行う(詳細は後記)。
上記の特徴を詳細に説明するために、従来型ルータおよびOpneFlowスイッチクラスタ(OFSクラスタ)の構成の例を図4に示す。外部NWに配置される従来型ルータとして、従来型ルータ#1(3−1),#2(3−2),#3(3−3),#4(3−4)を用意する。従来型ルータ#1(3−1),#2(3−2),#3(3−3),#4(3−4)ぞれぞれを、R#1,R#2,R#3,R#4と表記する場合がある。OFSクラスタ2を構成し、内部NWに配置されるOFSとしてOFS#1(2−1),#2(2−2),#3(2−3),#4(2−4),#5(2−5),#6(2−6)を用意する。
従来型ルータ#1(3−1)は、1.1.1.0/24宛のパケットおよび4.4.4.0/24宛のパケットを中継できる。従来型ルータ#2(3−2)は、1.1.1.0/24宛のパケットを中継できる。従来型ルータ#3(3−3)は、2.2.2.0/24宛のパケットおよび3.3.3.0/24宛のパケットを中継できる。従来型ルータ#4(3−4)は、2.2.2.0/24宛のパケットを中継できる。
OFS#1(2−1)は、従来型ルータ#1(3−1)、OFS#3(2−3)、OFS#4(2−4)にそれぞれ接続するためのポートp1,p2,p3をそれぞれ備える。
OFS#2(2−2)は、従来型ルータ#2(3−2)、OFS#3(2−3)、OFS#4(2−4)にそれぞれ接続するためのポートp1,p2,p3をそれぞれ備える。
OFS#3(2−3)は、OFS#1(2−1)、OFS#2(2−2)、OFS#5(2−5)、OFS#6(2−6)にそれぞれ接続するためのポートp1,p2,p3,p4をそれぞれ備える。
OFS#4(2−4)は、OFS#1(2−1)、OFS#2(2−2)、OFS#5(2−5)、OFS#6(2−6)にそれぞれ接続するためのポートp1,p2,p3,p4をそれぞれ備える。
OFS#5(2−5)は、OFS#3(2−3)、OFS#4(2−4)、従来型ルータ#3(3−3)にそれぞれ接続するためのポートp1,p2,p3をそれぞれ備える。
OFS#6(2−6)は、OFS#3(2−3)、OFS#4(2−4)、従来型ルータ#4(3−4)にそれぞれ接続するためのポートp1,p2,p3をそれぞれ備える。
OFC1の外部NW経路制御部12(後記)は、OFSクラスタ2に割り当てたRE(4−C)を有する。OFC1の内部NW経路制御部13(後記)は、OFS#1(2−1)〜#6(2−6)に割り当てたRE(4−1〜4−6)を有する。RE(4−C)およびRE(4−1〜4−6)には、経路計算用の共通のアルゴリズムを使用することができる。各OFS#1(2−1)〜#6(2−6)のRE(4−1〜4−6)とOFSクラスタ2のRE(4−C)との紐付けのためのテーブルとして、外部NW経路制御部12(後記)は外部経路テーブルT2(後記)を有し、内部NW経路制御部13(後記)は内部経路テーブルT3(後記)を有する。
[本実施形態の詳細]
≪構成≫
図5に、本実施形態のOFC1の機能構成詳細図の例を示す。OFC1は、統合処理部11と、外部NW経路制御部12と、内部NW経路制御部13とを含む機能部を有する。統合処理部11は、OpenFlow処理部111と、システム管理部112と、フローエントリ生成部113で構成される。システム管理部112は、IF管理部1121と、内外IF連携制御部1122で構成される。なお、「IF」はインタフェース(Interface)の略語であり、本実施形態では、OFSのポートおよび従来型ルータのポートを意味する。
OFC1は、制御部、記憶部、入力部、出力部といったハードウェアを有し、制御部が、記憶部に記憶されているプログラム(パケット転送制御プログラムを含む)を記憶領域に展開し実行することにより、上記の機能部を実現し、さまざまな処理を実行することができる。本実施形態のOFC1は、このようなソフトウェアとハードウェアの協働を実現することができる。
OpenFlow処理部111は、OFSクラスタ2内の各OFSとOFC1との間で情報のやり取りを行うインタフェースとして機能する。例えば、OpenFlow処理部111は、OpenFlowメッセージの生成やパースを行う。
IF管理部1121は、各IFのMACアドレスを定める。また、IF管理部1121は、各IFの状態を監視する。IF管理部1121は、各IFの状態を監視するためのIF状態テーブルT1(後記)を有する。IF状態テーブルT1は、OFS#1〜#6(2−1〜2−6)ごとに生成される。
内外IF連携制御部1122は、OFSクラスタ内で故障が発生し、OFSの1または複数が残りのOFSから孤立した場合、当該OFSのIFを外部NW経路制御部12に通知して、外部NW経路制御部12の制御対象から除外する。
外部NW経路制御部12は、外部NWとの経路交換を行う。外部NW経路制御部12は、OFSクラスタ2に割り当てられたRE(4−C)を有し、外部経路の経路計算を行う。外部NW経路制御部12は、経路計算から出力IFを決定するための外部経路テーブルT2(後記)を有する。なお、外部NW経路制御部12は、各IFのMACアドレスとIPアドレスを対応付けるARPテーブル(図示略)を有する。
内部NW経路制御部13は、内部NW内の各OFS#1〜#6(2−1〜2−6)を表すIPアドレスの経路交換を行う。このIPアドレスは、例えば、各OFSのLoopbackアドレス(図5中「Lo」と表記)とすることができる。内部NW経路制御部13は、各OFS#1〜#6(2−1〜2−6)に割り当てられたRE(4−1〜4−6)を有し、内部経路の経路計算を行う。内部NW経路制御部13は、経路計算から出力IFを決定するための内部経路テーブルT3(後記)を有する。内部経路テーブルT3は、OFS#1〜#6(2−1〜2−6)ごとに生成される。なお、内部NW経路制御部13は、各IFのMACアドレスとIPアドレスを対応付けるARPテーブル(図示略)をOFS#1〜#6(2−1〜2−6)ごとに有する。
フローエントリ生成部113は、OpenFlowのフローエントリを生成する。例えば、フローエントリ生成部113は、IF管理部1121のIF状態テーブルT1と、外部NW経路制御部12の外部経路テーブルT2と、内部NW経路制御部13の内部経路テーブルT3とを適宜組み合わせる(必要に応じて他のテーブルを組み合わせてもよい)ことにより、パケット書換テーブル(IPの場合)T4a(後記)、パケット書換テーブル(MPLSの場合)T4b(後記)、および、内部出力IFテーブルT5(後記)を作成し、フローエントリの生成に必要な情報を集計する。フローエントリの生成の詳細手順は後記する。
(各種テーブル)
図6に示すように、IF管理部1121が有するIF状態テーブルT1は、「IF名」、「種類」、「mac」、「状態」といった項目を有し、OFSのポートごとにエントリが登録されている。IF状態テーブルT1は、OFS#1〜#6(2−1〜2−6)ごとに生成されている。
「IF名」には、対象のOFSが有するポートの名称が格納されている。
「種類」には、該当ポートが外部NWの従来型ルータに接続するポートであることを示す「外部」またはポートが内部NWの他のOFSに接続するポートであることを示す「内部」のいずれかの値が格納されている。
「mac」には、該当ポートのMACアドレスが格納されている。
「状態」には、該当ポートの接続状態が良好であることを示す「Up」または故障であることを示す「Down」のいずれかの値が格納されている。
図7に示すように、外部NW経路制御部12が有する外部経路テーブルT2は、「宛先」、「nexthop」といった項目を有し、外部NWに配置されている機器(図示せず)が到達性を持つ宛先ごとにエントリが登録される。
「宛先」には、外部NWに配置されている機器のIPアドレスが格納されている。
「nexthop」には、宛先の機器から転送されるパケットまたは宛先の機器へのパケットを処理する従来型ルータに隣接して接続しているOFSのうち1つを示す値、および、当該OFSが従来型ルータと接続されているポートを示す値が格納されている。例えば、宛先が「1.1.1.0/24」に対応するnexthopが「OFS#1-p1」の場合、当該経路を持つ従来型ルータ#1(3−1)に接続しているOFSがOFS#1(2−1)であり、OFS#1(2−1)が従来型ルータ#1(3−1)と接続されているポートが「p1」であることを示す。なお、説明の便宜上、「OFS#1-p1」を単に各図において「#1-p1」と表記する場合がある(OFSが異なる場合やポート(IF)が異なる場合も同様)。
図8に示すように、内部NW経路制御部13が有する内部経路テーブルT3は、「宛先」、「nexthop」といった項目を有し、OFS#1〜#6(2−1〜2−6)ごとにエントリが登録される。内部経路テーブルT3は、OFS#1〜#6(2−1〜2−6)ごとに生成されている。
「宛先」には、自身のOFSのIPアドレスまたは自身以外のOFSのIPアドレスが格納されている。
「nexthop」には、クラスタ内の他の全てのOFSと接続されているポートを示す値が格納されている。
OFS#1(2−1)の内部経路テーブルT3を例にとって説明すると、内部NW経路制御部13内のRE2−1が他のOFSとの経路を計算することになる。
例えばOFS#2(2−2)自身を表すIPアドレスである10.0.0.2に対しては、nexthopがp2であることを計算できるため、「nexthop」には「p2」が格納される。「宛先」の項目に自身のOFSを表すIPアドレスが格納されている場合、対応する「nexthop」には自身のLoopbackアドレスを示す「Lo」が格納される。
図9(a)に示すように、フローエントリ生成部113が有するパケット書換テーブル(IPの場合)T4aは、外部NWがIPネットワークである場合に用いるテーブルであって、「宛先」、「src. mac」、「dst. mac」、「クラスタからの出力先」といった項目を有し、外部NWに配置されている機器(図示せず)が到達性を持つ宛先ごとにエントリが登録される。
「宛先」には、外部NWに配置されている機器のIPアドレスが格納されている。
「src. mac」には、ソースMACアドレスフォワーディングのMACアドレスが格納されている。例えば、当該OFSが従来型ルータと接続されているポートのMACアドレスを示す値が格納されている。
「dst. mac」には、内部NWにとっての宛先となるMACアドレスが格納されている。例えば、宛先の機器へのパケットを処理する従来型ルータのMACアドレスを示す値が格納されている。
「クラスタからの出力先」には、OFSクラスタ2からのパケットを「宛先」で識別される機器に出力するときの出力先を示す値が格納されている。例えば、宛先の機器へのパケットを処理する従来型ルータに隣接して接続しているOFSを示す値、および、当該OFSと従来型ルータとの接続を担うポートを示す値が格納されている。
また、図9(b)に示すように、フローエントリ生成部113が有するパケット書換テーブル(MPLSの場合)T4bは、外部NWがIP/MPLSネットワークである場合に用いるテーブルであって、「Local Label」、「Remote Label」、「src. mac」、「dst. mac」、「クラスタからの出力先」といった項目を有し、外部NWに配置されている機器(図示せず)が到達性を持つ宛先ごとにエントリが登録される。
「Local Label」には、OFSクラスタまたはOFCが割り当てた値で、外部NWに配置されている機器に対して広告するラベルの値が格納されている。
「Remote Label」には、外部NWが割り当てた値で、到達性のある経路について、外部NWに配置されている機器より割り当てられたラベルの値が格納されている。
「src. mac」には、ソースMACアドレスフォワーディングのMACアドレスが格納されている。パケット書換テーブルT4bの「src. mac」は、パケット書換テーブルT4aの「src. mac」と同等である。
「dst. mac」には、内部NWにとっての宛先となるMACアドレスが格納されている。パケット書換テーブルT4bの「dst. mac」は、パケット書換テーブルT4aの「dst. mac」と同等である。
「クラスタからの出力先」には、OFSクラスタ2からのパケットを「宛先」で識別される機器に出力するときの出力先を示す値が格納されている。パケット書換テーブルT4bの「クラスタからの出力先」は、パケット書換テーブルT4aの「クラスタからの出力先」と同等である。
図10に示すように、フローエントリ生成部113が有する内部出力IFテーブルT5は、内部NWを構成するOFS#1〜#6(2−1〜2−6)を用いて、内部NW内のパケットの転送の起点となる発OFSと、内部NW内のパケットの転送の終点となる着OFSとの組を設定し、設定された組ごとに、パケットを送出する発OFSのポートを示す値を格納する。発OFSと着OFSが同じである場合は、パケット送出先が自分自身であるため、設定された組に格納される値はブランクになる。
[フローエントリの書換概要]
図5に戻って説明を続ける。OFC1は、フローエントリの生成の事前準備として、図5中の処理A1〜A6を実行する。すなわち、まず、OpenFlow処理部111が、OFS#1〜#6(2−1〜2−6)ごとのポートのIF状態をIF管理部1121に通知する(処理A1)。IF管理部1121は、通知されたIF状態を用いてIF状態テーブルT1を作成する。
IF管理部1121は、IF状態テーブルT1中の各エントリのうち「種類」が「外部」となっているものを外部IF情報として外部NW経路制御部12に送信する(処理A2)。外部NW経路制御部12は、受信したエントリを用いて、外部経路テーブルT2を作成する。
IF管理部1121は、IF状態テーブルT1中の各エントリのうち「種類」が「内部」となっているものを外部IF情報として内部NW経路制御部13に送信する(処理A3)。内部NW経路制御部13は、受信したエントリを用いて、内部経路テーブルT3を、OFS#1〜#6(2−1〜2−6)ごとに作成する。
外部NW経路制御部12は、外部経路テーブルT2の情報を含むパケット書換情報をフローエントリ生成部113に送信する(処理A4)。フローエントリ生成部113は、受信したパケット書換情報、および、IF状態テーブルT1の情報を用いてパケット書換テーブルT4a(またはT4b)を作成する。
内部NW経路制御部13は、内部経路テーブルT3の情報を含む出力IFテーブル情報をフローエントリ生成部113に送信する(処理A5)。フローエントリ生成部113は、受信した出力IFテーブル情報、および、IF状態テーブルT1の情報を用いて内部出力IFテーブルT5を作成する。
フローエントリ生成部113は、パケット書換テーブルT4a(またはT4b)と、内部出力IFテーブルT5と、IF状態テーブルT1の情報を用いて、OFS#1〜#6(2−1〜2−6)に投入するデータパケット用のフローエントリを作成する。また、フローエントリ生成部113は、作成したフローエントリへの書換をOpenFlow処理部111に指示する(処理A6)。OpenFlow処理部111は、フローエントリの書換を行い、OpenFlowメッセージの生成およびパースを行う。
[故障時の動作概要]
OFC1は、OFSクラスタ2に関連する故障時には、図5中の処理B1〜B3を実行することがある。すなわち、まず、故障が発生した場合は必ず、IF管理部1121は、外部IF情報および内部IF情報を内外IF連携制御部1122に送信する(処理B1)。
内部NW経路制御部13は、IF管理部1121から受信した内部IF情報(処理A3)から作成した内部経路テーブルT3に基づいて、他のOFSとの接続が断状態にある孤立したOFSを判定することができる。内部NW経路制御部13は、OFSの孤立が発生した場合に限り、その情報を内外IF連携制御部1122に送信する(処理B2)。
内外IF連携制御部1122は、内部NW経路制御部13からOFSの孤立情報を受信した場合、その情報に基づき、OFSクラスタ内で他のOFSにパケットを迂回して転送するために、孤立したOFSに接続している外部IFを閉塞するように外部NW経路制御部12に指示する(処理B3)。
[フローエントリの書換詳細]
フローエントリの書換の詳細について説明する。
図11に示すように、パケット転送に関する正常系動作(故障が発生していない正常時でのパケットの転送動作)において、以下の手順1〜3を踏むことで、外部NW経路制御部12および内部NW経路制御部13は、OFSクラスタ2へのパケット流入前にて経路計算を行い、フローエントリの書換を行う。宛先1.1.1.0/24の機器から宛先2.2.2.0/24の機器へのトラヒック方向を有するパケット転送を例に採り上げて説明する。
手順1:OFSクラスタ2に対して、フローエントリ生成部113が、パケット書換テーブルT4a(またはT4b)、および、内部出力IFテーブルT5を生成する。図11中の手順1の説明部分には、パケット書換テーブルT4aの一部抜粋となるパケット書換テーブルT4aaと、内部出力IFテーブルT5の一部抜粋となる内部出力IFテーブルT5aと、IF状態テーブルT1の一部抜粋となるIF状態テーブルT1aが図示されている。
パケット書換テーブルT4aaは、外部NW制御用として機能するRE(4−C)が従来型ルータから受信した経路情報をもとに作成される。内部出力IFテーブルT5aは、内部NW制御用として機能するRE(4−1〜4−6)が内部NWで経路計算を行った結果から作成される。IF状態テーブルT1aは、事前に設定されている。
手順2:OFSクラスタ2へのパケット流入時にて、フローエントリ生成部113が、パケット書換テーブルT4a(またはT4b)を参照し、OFSクラスタ2からパケットを流出させるようなフローエントリに書換を実行する。具体的には、フローエントリ内のMACアドレス(またはMPLSラベルの値)の書換は、OFSクラスタ2への流入直後のOFSにて実行する。図11中の手順2の説明部分には、OFSクラスタ2への流入直後のOFSとなるOFS#1(2−1)のフローエントリにて、MACアドレスの書換が行われている様子が図示されている(符号1101)。このため、MACアドレスを含むパケットヘッダ(符号1101で示した箇所)は、OFSクラスタ2から流出する際(図11下部のOFS#5(2−5)から流出する際)のヘッダのまま、OFSクラスタ2の内部を通過する。
手順3:フローエントリ生成部113は、OFSクラスタ2内部の転送に関しては、内部出力IFテーブルT5と、パケットのsrc. mac(つまり、OFSクラスタ2の流出側IF)とを参照して、ソースMACアドレスによるフォワーディングを行う。具体的には、フローエントリ生成部113は、各OFS#1〜#6(2−1〜2−6)の出力先IFに関して、内部出力IFテーブルT5とパケットヘッダ中のsrc. mac(図11下部のOFS#5(2−5))を参照する。そして、フローエントリ生成部113は、「パケットヘッダ中のsrc. macがOFS#xが保持しているIFのMACアドレスの場合、内部出力IFテーブルT5を参照してOFS#x宛の出力IFに出力する」というソースMACアドレスフォワーディングを実行させるフローエントリを生成する。
図11中の手順3の説明部分には、OFS#1(2−1)のフローエントリにて、流出側IFをポートp2とする様子が図示されている(符号1102)。符号1101で示すエントリ部分は、内部NWおよび外部NWの境界にあるすべてのOFSに投入すれば十分である。
また、OFS#3(2−3)のフローエントリにて、流出側IFをポートp3とする様子が図示されている(符号1103)。符号1103で示すエントリ部分は、OFS#5(2−5)を除くすべてのOFSに投入すれば十分である。
ただし、src. macが自身のOFSに該当する場合は、IF状態テーブルT1にて保持されている外部IFを出力先IFとして設定する。図11中の手順3の説明部分には、IF状態テーブルT1aにて事前に設定したMACアドレスに該当するOFS#5-p3が出力先IFとして設定されている様子が図示されている(符号1104)。
[故障時動作の詳細]
IF連携の切断を表す故障が発生した場合、OFC1は、当該故障箇所を迂回するパケット転送経路のルーチングを行う。
図12に示すように、本実施形態の例として採り上げたOFSクラスタ2を構成するOFS群において、例えば、OFS#1(2−1)に関するIF連携の切断を表す故障には、故障パターン1(各OFSは内部NWから孤立しておらず、外部NWとも接続されている故障)、故障パターン2(内部NWから孤立するOFSが存在するが、当該OFSは外部NWとは接続されている)、故障パターン3(外部NWと接続断となるOFSが存在する)がある。また、OFSクラスタ2を介するトラヒックには、1.1.1.0/24宛(左←右)、2.2.2.0/24宛(左→右)、3.3.3.0/24宛(左→右)、4.4.4.0/24宛(左←右)の4種類が存在し、故障が発生したときに宛先の切替パターン(切替先となる宛先)がこれらの4種類であることを意味する。このため、故障時切替動作は、12(=3×4)通り存在するが、図12中の表に示すように、切替動作を内容別に分けると、以下の切替動作1〜6に分類される。
<切替動作1>内部NW経路制御部13の正常系動作の一環として、OFSクラスタ2内部で迂回。
切替動作1は、故障パターン1の故障が発生したときに、1.1.1.0/24宛(左←右)、2.2.2.0/24宛(左→右)、3.3.3.0/24宛(左→右)、4.4.4.0/24宛(左←右)の4種類の切替パターンをとる場合に実行される。切替動作1として、内部NW経路制御部13は、RE2−1〜6が内部経路テーブルT3(図8)のnexthopを適切に変更することで、つまり故障箇所を回避するように変更することで迂回可能となる。
<切替動作2>内部NWから孤立するが、外部NWには接続されており、OFSクラスタ2内部で迂回。
切替動作2は、故障パターン2の故障が発生したときに、1.1.1.0/24宛(左←右)の1種類の切替パターンをとる場合に実行される。内外IF連携制御部1122がOFS#1(2−1)の孤立を判定した上で(孤立判定の詳細は後記する)、外部NW経路制御部12は、外部経路テーブルT2(図7)のnexthopをOFS#2(2−2)に変更することで、OFSクラスタ2内部で迂回可能となる。ただし、クラスタ内での迂回先が無い場合は切替動作4に準ずる。
<切替動作3>内部NWから孤立するが、外部NWには接続されており、OFSクラスタ2外部(つまり、従来型ルータ)が迂回。
切替動作3は、故障パターン2の故障が発生したときに、2.2.2.0/24宛(左→右)、または、3.3.3.0/24宛(左→右)の2種類の切替パターンをとる場合に実行される。内外IF連携制御部1122がOFS#1(2−1)の孤立を判定した上で、外部NW経路制御部12が、各従来型ルータに対して、故障個所となる経路の経路削除を広告することで従来型ルータが迂回可能となる(故障の無い経路を新たに設定しその経路上をパケットが辿るようにすることが可能となる)。ただし、クラスタ内での迂回先が無い場合は切替動作4に準ずる。
<切替動作4>内部NWから孤立するが、外部NWには接続されており、OFSクラスタ2内部で迂回を試みるが迂回できず、OFSクラスタ2外部(つまり、従来型ルータ)が迂回。
切替動作4は、故障パターン2の故障が発生したときに、4.4.4.0/24宛(左←右)の1種類の切替パターンをとる場合に実行される。内外IF連携制御部1122がOFS#1(2−1)の孤立を判定した上で、外部NW経路制御部12は、外部経路テーブルT2(図7)のnexthopをOFS#2(2−2)に変更しようとするが、変更先が無いため、各従来型ルータに対して、故障個所となる経路の経路削除を広告することで従来型ルータが迂回可能となる(故障の無い経路を新たに設定しその経路上をパケットが辿るようにすることが可能となる)。ただし、従来型ルータが迂回先を保持していない場合は通信断となる。
上記のように切替動作2〜4のようにOFSの孤立が発生するときに、内外IF連携制御部1122が必要となる。
<切替動作5>外部NW経路制御部12の正常系動作の一環として、OFSクラスタ2内部で迂回。
切替動作5は、故障パターン3の故障が発生したときに、1.1.1.0/24宛(左←右)の1種類の切替パターンをとる場合に実行される。外部NW経路制御部12は、外部経路テーブルT2(図7)のnexthopをOFS#2(2−2)に変更することで、OFSクラスタ2内部で迂回可能となる。ただし、クラスタ内で迂回先が無い場合は切り替え動作6に準ずる。
<切替動作6>外部NW経路制御部12の正常系動作の一環として、OFSクラスタ2外部(つまり、従来型ルータ)が迂回。
切替動作6は、故障パターン3の故障が発生したときに、2.2.2.0/24宛(左→右)、3.3.3.0/24宛(左→右)、4.4.4.0/24宛(左←右)の3種類の切替パターンをとる場合に実行される。外部NW経路制御部12が、各従来型ルータに対して、故障個所となる経路の経路削除を広告することで従来型ルータが迂回可能となる(故障の無い経路を新たに設定しその経路上をパケットが辿るようにすることが可能となる)。ただし、従来型ルータが迂回先を保持していない場合は通信断となる。
図13を参照して、故障が発生したときの内外IF連携制御部1122の動作(内外IF連携動作)の詳細を説明する。
図12に示す故障パターン2の故障が発生し、外部NWに接続しているOFS#1(2−1)が、外部NWに接続している他のOFSのいずれか1つへの到達性(宛先にパケットを転送させること)が無くなった場合、内部NW経路制御部13は、当該OFS#1(2−1)が孤立したと判定する(OFSの孤立判定)。孤立判定により、内部NW経路制御部13は、外部NW経路制御部12に対し、OFS#1−p1を断と処理するように命令する。そして、内部NW経路制御部13は、RE(4−1〜4−6)の経路計算結果により、孤立したOFSに対して作成された内部経路テーブルT3の内容を空(null)にする。
内外IF連携制御部1122は、孤立したOFSを監視する。孤立したOFSに対して、以下の工程1〜3を実行することで迂回可能となる。
[工程1(OFSクラスタが迂回。図12中、故障パターン2、切替パターン:1.1.1.0/24宛(左←右)に対応)]・・・外部NW経路制御部12は、孤立したOFSの外部向けIFを断として、RE(4−C)に通知する。そして、外部NW経路制御部12は、RE(4−C)の経路計算結果により外部経路テーブルT2を更新する。
図13には、外部NW経路制御部12が、孤立したOFS#1(2−1)の外部向けIF、OFS#1−p1を断として処理し、外部経路テーブルT2にて、nexthopをOFS#2−p1に変更することが図示されている(符号1301−1参照)。また、宛先1.1.1.0/24への経路広告が継続される(図13中の符号1301−2参照)。
[工程2(従来型ルータが迂回。図12中、故障パターン2、切替パターン:4.4.4.0/24宛(左←右)に対応)]・・・工程1により、外部経路テーブルT2中の特定のエントリが空(null)になってしまった場合、外部NW経路制御部12は、従来型ルータへ経路削除の旨を広告する。
図13には、外部NW経路制御部12が、OFS#1−p1を断として処理した結果、宛先が4.4.4.0/24のエントリのnexthopが無くなった(null)ため、各従来型ルータ(3−1〜3−4)に対し、宛先4.4.4.0/24に対する経路削除が広告されたことが図示されている(符号1302−1,1302−2参照)。
[工程3(従来型ルータが迂回。図12中、故障パターン2、切替パターン:2.2.2.0/24宛(左→右)、または、3.3.3.0/24宛(左→右)に対応)]・・・外部NW経路制御部12は、孤立したOFSに接続されている従来型ルータに対し経路削除の旨を広告する。
図13には、外部NW経路制御部12が、OFS#1−p1の断(符号1303−1参照)に伴い、孤立したOFS#1(2−1)に接続していた従来型ルータ#1(3−1)に対し、2.2.2.0/24宛(左→右)、および、3.3.3.0/24宛(左→右)の経路広告が停止したことを広告することが図示されている(符号1303−2参照)。また、他の従来型ルータ(#2(3−2)など)に対し、2.2.2.0/24宛(左→右)、および、3.3.3.0/24宛(左→右)の新たな経路広告をする(符号1303−3参照)。
≪処理≫
本実施形態のOFC1が実行する処理について説明する。
図14に示すように、故障が無い正常系において、OFC1が実行する処理となる転送時動作は、以下のステップS1〜ステップS6に示す通りである。
まず、OFC1は、事前準備処理を行う(ステップS1)。具体的には、OFC1は、システム管理部112によって、コントロールパケットがPacketIn/PacketOutするようにフローエントリを設定する。また、IF管理部1121が管理するIF状態テーブルT1を生成する。つまり、OFSクラスタ2内の各OFSにおける各IFの状態(Up/Down)の取得、各IFの種類の定義(内部NW上にあれば内部IF(「内部」と定義)、外部NW上にあれば外部IF(「外部」)と定義)、各IFのMACアドレスの定義を行う。
次に、OFC1は、内部経路テーブルT3を生成する(ステップS2)。具体的には、OFC1は、内部NW経路制御部13によって、内部NW上のOFS#1(2−1)〜#6(2−6)に割り当てたRE(4−1〜4−6)による内部経路計算を行うことによって、内部経路テーブルT3(図8)の内容を決定する。
次に、OFC1は、内部出力IFテーブルT5を生成する(ステップS3)。具体的には、OFC1は、フローエントリ生成部113によって、内部経路テーブルT3の情報を含む出力IFテーブル情報に基づいて(図5の処理A5参照)、内部出力IFテーブルT5(図10)の内容を決定する。
次に、OFC1は、外部経路テーブルT2を生成する(ステップS4)。具体的には、OFC1は、外部NW経路制御部12によって、OFSクラスタ2に割り当てた、外部NW向けのRE(4−C)による外部経路計算を行うことによって、外部経路テーブルT2(図7)の内容を決定する。
次に、OFC1は、パケット書換テーブルT4a(またはT4b)を生成する(ステップS5)。具体的には、OFC1は、フローエントリ生成部113によって、ステップS2で生成した内部経路テーブルT3、および、ステップS4の外部経路計算の結果を合わせて、パケット書換テーブルT4a(またはT4b)を生成する(図11の手順1参照)。
次に、OFC1は、フローエントリ生成部113によって、フローエントリを生成し(ステップS6。図11の手順2,3参照。)、図14の処理全体を終了する。
また、図15に示すように、故障が発生した場合にOFC1が実行する処理となる故障時動作は、以下のステップS11〜ステップS17に示す通りである。
まず、OFC1は、故障が発生したIFがどのIFであるかを判定する(ステップS11)。具体的には、OFC1は、IF管理部1121が管理するIF状態テーブルT1の状態の項目を参照して判定する。
故障発生IFが内部IFである場合(ステップS11で「内部IF」。図12の故障パターン1または2に相当。)、OFC1は、当該内部IFを、内部NW経路制御部13のRE(4−1〜4−6)に通知する(ステップS12)。次に、故障が発生した内部IFを通知されたRE(4−1〜4−6)が経路計算を行い、OFC1は、経路計算結果を内部経路テーブルT3(図8)に格納し(ステップS13)、内部経路テーブルT3を更新する。
その後、OFC1は、内部NW経路制御部13によって、内部経路テーブルT3を参照して、孤立が発生した外部IF(孤立したOFSが有する外部NW接続用のIF)が存在するか否かを判定する(ステップS14)。つまり、内部IFの故障によって内部IF断となったことで、OFSが孤立したか否かを判定する。存在する場合(ステップS14でYes)、ステップS15(後記)に進む。一方、存在しない場合(ステップS14でNo。図12の故障パターン1に相当。)、ステップS17(後記)に進む。
一方、故障発生IFが内部IFでない場合は故障発生IFが外部IFであり(ステップS11で「外部IF」。図12の故障パターン3に相当)、OFC1は、当該外部IFを、外部NW経路制御部12のRE(4−C)に通知する(ステップS15)。次に、故障が発生した外部IFを通知されたRE(4−C)が経路計算を行い、OFC1は、経路計算結果を外部経路テーブルT2(図7)に格納し(ステップS16)、外部経路テーブルT2を更新する。
ここで、内部IFの故障によって内部IF断となったことで、OFSが孤立し、孤立が発生した外部IFが存在する場合(ステップS14でYes。図12の故障パターン2に相当。)、OFC1は、当該(外部)IFをRE(4−C)に通知する(ステップS15)。RE(4−C)は、通知された外部IFを故障が発生した外部IFとみなし、経路計算を行い、OFC1は、経路計算結果を外部経路テーブルT2(図7)に格納する(ステップS16)。
内部経路テーブルT3の更新(ステップS13)、または、外部経路テーブルT2の更新(ステップS16)に応じて、パケット書換テーブルT4a(またはT4b)(図9)、内部出力IFテーブルT5(図10)、または、IF状態テーブルT1(図6)のいずれかの内容に変更があれば、OFC1は、フローエントリ生成部113によって、新たなフローエントリを投入し(ステップS17)、図15の処理全体を終了する。
≪まとめ≫
本実施形態によれば、フローエントリ生成部113によって、OFSクラスタ2内に流入したパケットは、当該パケットの外部NW上の宛先へ転送する従来型ルータに接続しているOFSの出力IF(ポート)へ一度集約されるようにOFSクラスタ2内を経由することができる(図11の符号1101〜1104参照)。つまり、パケットごとに、OFSクラスタ2からの流出先を1つのOFSの1つの出力IFに固定するように内部経路と外部経路との紐付けが行われ、紐付けは単純化される。このような集約は、NWの大規模化のために1OFSクラスタ内のOFSの数を増大して、OFSクラスタを拡大させた場合にもあてはまる。
したがって、従来型ルータおよび相互接続するOFSクラスタを拡大させてもネットワークの大規模化を容易に実現させることができる。
また、フローエントリ生成部113による、外部NW上の宛先が設定されたパケットの、OFSクラスタ2からの流出先の書換(集約)を、パケットのOFSクラスタ2内への流入を受け付けるOFSにて実行する、つまり、パケットのOFSクラスタ2内への流入時に実行することで、OFSクラスタ2内では、ソースアドレス(ソースMACアドレスまたはソースMPLSラベル)を参照したフォワーディングを実現することができる(図11の符号1101参照)。これにより、すべてのOFSが全経路(外部経路全体および内部経路全体)を保持する必要が無くなり、経路数の観点から、フローエントリ数のスケール性を向上させる際の制限を緩和することができる。
また、パケットの、OFSクラスタ2からの流出先が書き換えられた出力IFを構成するポートのアドレスを、MACアドレスとすることで、OFSクラスタ2内でMAC転送を実現することができ、レイヤ2より上のプロトコルに依存しないパケット転送を実現することができる。その結果、従来型ルータとしてIPルータだけでなく、大規模NWで利用される機会の多いIP/MPLSルータとの相互接続が可能となる。
また、パケットに設定された外部NW上の宛先をIPアドレスにすることで、外部NWがIPネットワークであってもネットワークの大規模化を容易に実現することができる。また、パケットに設定された外部NW上の宛先を宛先ラベルにすることで、外部NWがIP/MPLSネットワークであってもネットワークの大規模化を容易に実現することができる。
また、複数のOFSの各々が備えるルーチングエンジンを動作させるアルゴリズムと、OFSクラスタ2が備えるルーチングエンジンを動作させるアルゴリズムの共通化を可能にすることで、内部NW上のフォワーディング(内部フォワーディング)の実装を容易にすることができる。その結果、ネットワークの大規模化をさらに容易に実現させることができる。
また、パケットが外部NW上の宛先に到達するまでの経路において故障が発生した場合であっても、クラスタ内で故障箇所を迂回するようなパケットの最適な転送経路を導き出すことができる。もし、クラスタ内で迂回先が無い場合にはOFSクラスタから転送経路が削除されたことを外部NWに広告することで、外部NWに対して適切なルーチングを促すことができる。
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能である。
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
また、本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、処理手順などについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
1 OFC(パケット転送制御装置:OpenFlowコントローラ)
2 OFSクラスタ
2−1〜2−6 OFS#1〜#6
3−1〜3−4 従来型ルータ
4−1〜4−6、4−C RE(ルーチングエンジン)
11 統合処理部
12 外部NW経路制御部(外部NW経路制御手段)
13 内部NW経路制御部(内部NW経路制御手段)
113 フローエントリ生成部(フローエントリ生成手段)
112 システム管理部
1121 IF管理部
1122 内外IF連携制御部
T1 IF状態テーブル
T2 外部経路テーブル
T3 内部経路テーブル
T4a,T4b パケット書換テーブル
T5 内部出力IFテーブル

Claims (8)

  1. 複数の従来型ルータを介して外部NW(Network)と接続される内部NW上に配置されている複数のOpenFlowスイッチを制御してパケット転送を制御するパケット転送制御装置であって、
    前記複数のOpenFlowスイッチの各々に対応するルーチングエンジンを備え、前記内部NWについての経路計算を行う内部NW経路制御部と、
    前記複数のOpenFlowスイッチをクラスタ化したOFSクラスタに対応するルーチングエンジンを備え、前記外部NWに対する経路計算を行う外部NW経路制御部と、
    前記複数のOpenFlowスイッチの各々に対して生成されるフローエントリにおいて、前記外部NW上の宛先が設定されたパケットの、前記OFSクラスタからの流出先を、前記設定された、外部NW上の宛先へ転送する前記従来型ルータに接続している前記OpenFlowスイッチの出力IF(Interface)に設定するフローエントリ生成部と、を備える、
    ことを特徴とするパケット転送制御装置。
  2. 前記フローエントリ生成部は、
    前記パケットの前記OFSクラスタ内への流入を受け付ける前記OpenFlowスイッチにて、前記設定を実行する、
    ことを特徴とする請求項1に記載のパケット転送制御装置。
  3. 前記設定する出力IFをMACアドレスにより識別し、前記内部NW経路制御部と外部NW経路制御部は該当MACアドレスをソースアドレスに書換え、そのソースアドレスルーチングでパケットを転送することを特徴とする請求項2に記載のパケット転送装置。
  4. 前記外部NWがIPネットワークである場合、前記パケットに設定された、前記外部NW上の宛先がIPアドレスであり、
    前記外部NWがIP/MPLSネットワークである場合、前記パケットに設定された、前記外部NW上の宛先が宛先ラベルである、
    ことを特徴とする請求項1から請求項3のいずれか1項に記載のパケット転送制御装置。
  5. 前記複数のOpenFlowスイッチの各々が備える前記ルーチングエンジンを動作させるアルゴリズムと、前記OFSクラスタが備える前記ルーチングエンジンを動作させるアルゴリズムとが共通化可能である、
    ことを特徴とする請求項1から請求項4のいずれか1項に記載のパケット転送制御装置。
  6. 前記設定された、外部NW上の宛先に前記パケットが到達できなくなる故障が発生した場合、当該パケットの、前記OFSクラスタからの流出先を、前記設定された、外部NW上の宛先へ転送する他の従来型ルータに接続している前記OpenFlowスイッチの出力IFに設定し、
    前記設定された宛先へ転送する他の従来型ルータに接続している前記OpenFlowスイッチが無い場合、前記設定された、外部NW上の宛先を削除して、前記外部NWへ経路広告する、
    ことを特徴とする請求項1から請求項5のいずれか1項に記載のパケット転送制御装置。
  7. 複数の従来型ルータを介して外部NWと接続される内部NW上に配置されている複数のOpenFlowスイッチを制御してパケット転送を制御するパケット転送制御装置におけるパケット転送制御方法であって、
    前記パケット転送制御装置が、
    前記複数のOpenFlowスイッチの各々に対応するルーチングエンジンを備え、前記内部NWについての経路計算を行う内部NW経路制御ステップと、
    前記複数のOpenFlowスイッチをクラスタ化したOFSクラスタに対応するルーチングエンジンを備え、前記外部NWに対する経路計算を行う外部NW経路制御ステップと、
    前記複数のOpenFlowスイッチの各々に対して生成されるフローエントリにおいて、前記外部NW上の宛先が設定されたパケットの、前記OFSクラスタからの流出先を、前記設定された、外部NW上の宛先へ転送する前記従来型ルータに接続している前記OpenFlowスイッチの出力IFに設定するフローエントリ生成ステップと、を実行する、
    ことを特徴とするパケット転送制御方法。
  8. 複数の従来型ルータを介して外部NWと接続される内部NW上に配置されている複数のOpenFlowスイッチを制御してパケット転送を制御するパケット転送制御装置としてのコンピュータを、
    前記複数のOpenFlowスイッチの各々に対応するルーチングエンジンを備え、前記内部NWについての経路計算を行う内部NW経路制御手段、
    前記複数のOpenFlowスイッチをクラスタ化したOFSクラスタに対応するルーチングエンジンを備え、前記外部NWに対する経路計算を行う外部NW経路制御手段、
    前記複数のOpenFlowスイッチの各々に対して生成されるフローエントリにおいて、前記外部NW上の宛先が設定されたパケットの、前記OFSクラスタからの流出先を、前記設定された、外部NW上の宛先へ転送する前記従来型ルータに接続している前記OpenFlowスイッチの出力IFに設定するフローエントリ生成手段、
    として機能させるためのパケット転送制御プログラム。
JP2016123818A 2016-06-22 2016-06-22 パケット転送制御装置、パケット転送制御方法、およびパケット転送制御プログラム Active JP6527488B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016123818A JP6527488B2 (ja) 2016-06-22 2016-06-22 パケット転送制御装置、パケット転送制御方法、およびパケット転送制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016123818A JP6527488B2 (ja) 2016-06-22 2016-06-22 パケット転送制御装置、パケット転送制御方法、およびパケット転送制御プログラム

Publications (2)

Publication Number Publication Date
JP2017228935A true JP2017228935A (ja) 2017-12-28
JP6527488B2 JP6527488B2 (ja) 2019-06-05

Family

ID=60892143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016123818A Active JP6527488B2 (ja) 2016-06-22 2016-06-22 パケット転送制御装置、パケット転送制御方法、およびパケット転送制御プログラム

Country Status (1)

Country Link
JP (1) JP6527488B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019181051A1 (ja) * 2018-03-19 2019-09-26 日本電気株式会社 マルチレイヤネットワークシステム、コントローラ、制御方法、及び非一時的なコンピュータ可読媒体
WO2020031687A1 (ja) * 2018-08-07 2020-02-13 日本電信電話株式会社 転送装置、転送システム、転送方法及びプログラム
JP2020088769A (ja) * 2018-11-30 2020-06-04 日本電信電話株式会社 転送装置、転送システム、転送方法及びプログラム
KR20200140085A (ko) * 2019-06-05 2020-12-15 주식회사 시큐아이 네트워크 보안 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080239958A1 (en) * 2007-03-28 2008-10-02 Christopher Warren Murray Routing path calculation apparatus and methods
JP2014160922A (ja) * 2013-02-19 2014-09-04 Nippon Telegr & Teleph Corp <Ntt> 通信システム、及び経路制御方法
JP2014533001A (ja) * 2011-10-21 2014-12-08 日本電気株式会社 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080239958A1 (en) * 2007-03-28 2008-10-02 Christopher Warren Murray Routing path calculation apparatus and methods
JP2014533001A (ja) * 2011-10-21 2014-12-08 日本電気株式会社 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム
JP2014160922A (ja) * 2013-02-19 2014-09-04 Nippon Telegr & Teleph Corp <Ntt> 通信システム、及び経路制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
芦田 優太: "OpenFlowネットワークにおけるドメイン縮約を用いた階層型ネットワーク構築手法の提案", 電子情報通信学会技術研究報告, vol. 112, no. 10, JPN6019015457, 12 April 2012 (2012-04-12), JP, ISSN: 0004026652 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019181051A1 (ja) * 2018-03-19 2019-09-26 日本電気株式会社 マルチレイヤネットワークシステム、コントローラ、制御方法、及び非一時的なコンピュータ可読媒体
JPWO2019181051A1 (ja) * 2018-03-19 2021-03-11 日本電気株式会社 マルチレイヤネットワークシステム、コントローラ、制御方法、及びプログラム
WO2020031687A1 (ja) * 2018-08-07 2020-02-13 日本電信電話株式会社 転送装置、転送システム、転送方法及びプログラム
JP2020025201A (ja) * 2018-08-07 2020-02-13 日本電信電話株式会社 転送装置、転送システム、転送方法及びプログラム
JP7091923B2 (ja) 2018-08-07 2022-06-28 日本電信電話株式会社 転送装置、転送方法及びプログラム
US11799801B2 (en) 2018-08-07 2023-10-24 Nippon Telegraph And Telephone Corporation Transfer device, transfer system, transfer method, and program
JP2020088769A (ja) * 2018-11-30 2020-06-04 日本電信電話株式会社 転送装置、転送システム、転送方法及びプログラム
WO2020110810A1 (ja) * 2018-11-30 2020-06-04 日本電信電話株式会社 転送装置、転送システム、転送方法及びプログラム
KR20200140085A (ko) * 2019-06-05 2020-12-15 주식회사 시큐아이 네트워크 보안 장치 및 방법
KR102203828B1 (ko) * 2019-06-05 2021-01-18 주식회사 시큐아이 네트워크 보안 장치 및 방법

Also Published As

Publication number Publication date
JP6527488B2 (ja) 2019-06-05

Similar Documents

Publication Publication Date Title
US11303515B2 (en) IP MPLS PoP virtualization and fault tolerant virtual router
JP5416596B2 (ja) ネットワーク中継装置、ネットワークシステム、それらの制御方法
US8576721B1 (en) Local forwarding bias in a multi-chassis router
CA2922541C (en) Buffer-less virtual routing
JP7091923B2 (ja) 転送装置、転送方法及びプログラム
JP6562466B2 (ja) 冗長コントローラに対するルーティングプロトコルのプロキシ
US20130003745A1 (en) Information system, control device, method of managing virtual network, and program
JP6160446B2 (ja) 情報処理装置、情報処理システム及び情報処理方法
US20140204760A1 (en) Optimizing traffic flows via mac synchronization when using server virtualization with dynamic routing
JP4389221B2 (ja) ネットワーク、ルータ装置、それに用いる切替方法及びそのプログラム並びに記録媒体
US20110228767A1 (en) Virtual link aggregation of network traffic in an aggregation switch
JP5488979B2 (ja) コンピュータシステム、コントローラ、スイッチ、及び通信方法
JP6008801B2 (ja) 伝送システム、送信方法、及び伝送装置
CN106170952A (zh) 用于在数据网络中部署最大冗余树的方法和系统
WO2009018728A1 (fr) Réseau en anneau ip, dispositif de routage de réseau en anneau et procédé pour transmettre un message
US9832121B1 (en) Next hop instruction associations for forwarding unit programming within a network device
JP5429179B2 (ja) ネットワークノードおよびその負荷分散方法
JP2010517351A (ja) ネットワークツリー管理のための方法と装置
KR20150051107A (ko) 신속한 경로 설정 및 장애 복구 방법
JP6527488B2 (ja) パケット転送制御装置、パケット転送制御方法、およびパケット転送制御プログラム
JP2017511069A5 (ja)
JP2020537854A (ja) 通信ルーティングシステム
WO2015079616A1 (ja) 通信システム、通信方法、ネットワーク情報結合装置およびネットワーク情報結合プログラム
WO2011118586A1 (ja) 通信システム、制御装置、転送ノード、処理規則の更新方法およびプログラム
WO2014175423A1 (ja) 通信ノード、通信システム、パケット処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190510

R150 Certificate of patent or registration of utility model

Ref document number: 6527488

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150