JP2011166692A - ネットワークシステム、ネットワーク機器、経路情報更新方法、及びプログラム - Google Patents

ネットワークシステム、ネットワーク機器、経路情報更新方法、及びプログラム Download PDF

Info

Publication number
JP2011166692A
JP2011166692A JP2010030567A JP2010030567A JP2011166692A JP 2011166692 A JP2011166692 A JP 2011166692A JP 2010030567 A JP2010030567 A JP 2010030567A JP 2010030567 A JP2010030567 A JP 2010030567A JP 2011166692 A JP2011166692 A JP 2011166692A
Authority
JP
Japan
Prior art keywords
packet
network
flow table
route information
frame
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
JP2010030567A
Other languages
English (en)
Other versions
JP5521613B2 (ja
Inventor
Ryosuke Kawai
亮佑 河合
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2010030567A priority Critical patent/JP5521613B2/ja
Publication of JP2011166692A publication Critical patent/JP2011166692A/ja
Application granted granted Critical
Publication of JP5521613B2 publication Critical patent/JP5521613B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】パケットに埋め込んだ経路情報を基に、ネットワーク(NW)機器が内部に持つ経路情報テーブルを更新するようにする。
【解決手段】ネットワークを構成する複数のネットワーク機器の各々は、パケットの判定基準及び当該パケットに対する処理を示すフローテーブルのエントリーに従ってパケットを送信する際、パケットを運ぶフレームに、宛先までの経路上に存在する他のネットワーク機器の経路情報を付加して送信する。また、各ネットワーク機器は、受信したパケットを解析し、受信したパケットを運ぶフレームに自分の経路情報が付加されていた場合、フレームから自分の経路情報を取り出し、取り出された経路情報を基に、フローテーブルに新しいエントリーを追加し、フローテーブルを更新する。
【選択図】図5

Description

本発明は、ネットワークシステムに関し、特に外部コントローラがネットワーク機器を制御するネットワークシステムに関する。
従来のネットワーク(NW:Network)機器はブラックボックスであり、外部から負荷分散や片寄せ等の柔軟性に富んだ制御ができない。このため、ネットワークの規模が大きくなると、システムとしての挙動の把握と改善が困難になり、設計や構成変更において、多大な遅延を伴うことが問題となっていた。
こうした問題を解決するための手法として、ネットワーク(NW)機器のパケット(packet)転送と経路制御の機能を分離する手法が考えられている。例えば、ネットワーク(NW)機器がパケット転送を担当し、ネットワーク(NW)機器の外部に置かれたコントローラが経路制御を担当することで、外部からの制御が容易になり、柔軟性に富んだネットワークを構築することが可能になる。
上記手法の具体的な例として、オープンフロー(OpenFlow)について説明する。但し、オープンフローは一例に過ぎない。オープンフローについては、オープンフローコンソーシアム(非特許文献1参照)で検討が進んでいる。
図1に、オープンフロー0.9.0の基本的な構成例を示す。図1では、ネットワーク(NW)機器の例としてスイッチを示す。図2に、パケット転送と経路制御を分離したネットワーク(NW)機器の規格であるオープンフローの場合における従来のパケット処理の流れを示す。図3に、従来のパケット照合処理の流れを示す。
オープンフローは、オープンフロープロトコルをサポートしたネットワーク(NW)機器と、外部に置かれたコントローラで構成される。ネットワーク(NW)機器とコントローラは、セキュアチャンネル(Secure channel:安全な経路)で接続されており、オープンフロープロトコルで通信を行う。オープンフローでは、ネットワーク(NW)機器のパケット転送と経路制御は分離されており、ネットワーク(NW)機器はパケット転送を行い、コントローラはネットワーク(NW)機器の経路制御を行う。
オープンフローをサポートするネットワーク(NW)機器は、内部にフローテーブル(Flow table)と呼ばれる経路情報を持つ。フローテーブルは、フロー(Flow)として定義されたパケットのヘッダ領域情報(Header Field)と、当該パケットが届いたときの処理(Action)との対応関係を管理するテーブルである。ここでは、ヘッダ領域情報(Header Field)と処理(Action)の組をエントリー(entry)と呼称する。ヘッダ領域情報(Header Field)は、その内容により、パケットの判定基準となる所定の規則(Rule)を示す。処理(Action)は、パケットを物理ポートや仮想ポートに転送するフォワード(Forward)処理や、パケットを廃棄するドロップ(Drop)処理等であり、ビットマップ(bitmap)等で表現される。ネットワーク(NW)機器は、受信したパケット内のヘッダ領域情報(Header Field)と、フローテーブル内のヘッダ領域情報(Header Field)を照合し、照合の結果、合致していれば、対応する処理(Action)を実行する。
図1を参照して、ヘッダ領域情報(Header Field)の要素となり得る情報について説明する。
図1では、ヘッダ領域情報(Header Field)の要素となり得る情報として、「Ingress Port」と、「Ether src」と、「Ether dst」と、「Ether type」と、「VLAN ID」と、「VLAN priority」と、「IP src」と、「IP dst」と、「IP proto」と、「TCP/UDP src port」と、「TCP/UDP dst port」を示している。フローテーブルとパケットとの照合の際には、これらの情報のいずれか又は全てが使用される。すなわち、これらの情報のいずれか又は全てを組み合わせて、フローが定義される。
「Ingress Port」は、入力ポートを示す。「Ether src」は、送信元(Source)のMACアドレス(Media Access Control Address)を示す。「Ether dst」は、宛先(Destination)のMACアドレスを示す。「Ether type」は、上位層のプロトコルの種類を示す。「VLAN ID」は、仮想LAN(Virtual Local Area Network)スイッチのポート毎に設定された識別情報を示す。「VLAN priority」は、仮想LANスイッチの該当ポートの優先度を示す。「IP src」は、送信元のIPアドレス(Internet Protocol Address)を示す。「IP dst」は、宛先のIPアドレスを示す。「IP proto」は、IPのプロトコル番号を示す。「TCP/UDP src port」は、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)における送信元のポート番号を示す。「TCP/UDP dst port」は、TCPやUDPにおける宛先のポート番号を示す。
コントローラは、ネットワーク(NW)機器制御手段(図1のスイッチ制御手段)を備え、セキュアチャンネル(Secure channel)を介して、ネットワーク(NW)機器のフローテーブルを更新して、ネットワーク(NW)機器を制御する。
ネットワーク(NW)機器は、パケット転送手段(図1のパケット処理手段)を備え、パケットが到着すると、内部に持つフローテーブルとパケットの照合を行い、該当するエントリーが存在する場合は、関連付けられたパケット送信や廃棄等の処理(Action)を実行する。
ここで、図2を参照して、従来のパケット処理の流れについて説明する。
ネットワーク(NW)機器は、ネットワークからパケットを受信する(図2の「Packet in from network」)。
ネットワーク(NW)機器は、ネットワーク上に複数存在し、個々のネットワーク(NW)機器は、IEEE 802.1D標準のSTP(Spanning Tree Protocol)に従い、ループフリーな論理トポロジーを維持する。個々のネットワーク(NW)機器は、ルートブリッジとなるネットワーク(NW)機器から木のように枝分かれしている。個々のネットワーク(NW)機器は、それぞれパケットを受信し、パケットに対する処理を行う(図2の「802.1d STP Processing」)。
ネットワーク(NW)機器は、内部に持つフローテーブルのエントリーと、受信したパケットの照合を行う(図2の「Flow lookup」)。
ここで、図3を参照して、従来のパケット照合処理について詳述する。
まず、ネットワーク(NW)機器は、フローテーブルのエントリーのヘッダ領域情報(Header Field)と照合する際の照合対象となるパケットのヘッダ領域情報(Header Field)に、「Ingress Port」と、「Ether src」と、「Ether dst」と、「Ether type」を指定する(図3の「Header Field=<Ingress Port, Ether src, Ether dst, Ether type>」)。
ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「Ether type」の値が「0x8100」であるか確認する(図3の「Ether type = 0x8100?」)。
ネットワーク(NW)機器は、「Ether type」の値が「0x8100」である場合、「VLAN ID」を、新たな照合対象として、ヘッダ領域情報(Header Field)に追加する。すなわち、ネットワーク(NW)機器は、「Ether type」についても照合対象とする。このとき、ネットワーク(NW)機器は、カプセル化された「Ether type」の値を、「Ether type」の値として使用する(図3の「Add <VLAN ID> to Header Field, Use encapsulated Ether type as Ether type」)。
ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「Ether type」の値が「0x800」であるか確認する(図3の「Ether type = 0x800?」)。
ネットワーク(NW)機器は、「Ether type」の値が「0x800」である場合、「IP src」と、「IP dst」と、「IP proto」を、新たな照合対象として、ヘッダ領域情報(Header Field)に追加する。すなわち、ネットワーク(NW)機器は、「IP src」と、「IP dst」と、「IP proto」についても照合対象とする(図3の「Add <IP src, IP dst, IP proto> to Header Field」)。
ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「IP proto」の値が「6」又は「17」であるか確認する(図3の「IP proto = 6 or 17?」)。
ネットワーク(NW)機器は、「IP proto」の値が「6」又は「17」である場合、「TCP/UDP src port」と、「TCP/UDP dst port」を、新たな照合対象として、ヘッダ領域情報(Header Field)に追加する。すなわち、ネットワーク(NW)機器は、「TCP/UDP src port」と、「TCP/UDP dst port」についても照合対象とする(図3の「Add <TCP/UDP src port, TCP/UDP dst port> to Header Field」)。
ネットワーク(NW)機器は、フローテーブルのエントリーのヘッダ領域情報(Header Field)と、パケットのヘッダ領域情報(Header Field)を照合する(図3の「Packet Lookup Over Header Field」)。
ネットワーク(NW)機器は、受信したパケットに対し、フローテーブル内に該当するエントリーが存在する場合は、このエントリーに関連付けられたパケット送信や廃棄等の処理(Action)を実行する(図2の「Apply actions」)。
また、ネットワーク(NW)機器は、受信したパケットに対し、フローテーブル内に該当するエントリーが存在しない場合、このパケットを内部に保留し、セキュアチャンネル(Secure channel)を介して、コントローラに未知のパケットが到着したことを通知する(図2の「Send to secure channel」)。ここでは、該当するエントリーが存在しない場合の未知のパケットを1stパケット(First packet)と呼称する。
コントローラは、1stパケット到着の通知を受けると、宛先までの経路を計算し、ネットワーク(NW)機器のフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。宛先までの経路については、どのネットワーク(NW)機器がどのネットワーク(NW)機器につながっているかを表すトポロジ情報(Network Topology)から計算する。
ネットワーク(NW)機器は、フローテーブルが更新されると、滞留していた1stパケットとそれ以降の同種のパケットを、追加された処理(Action)に従って処理する。
従って、通常のオープンフローでは、パケット転送と経路制御を分離したネットワーク(NW)機器に1stパケットが到着すると、ネットワーク(NW)機器からコントローラへの通知と、コントローラからネットワーク(NW)機器へのフローテーブル更新が発生するため、従来のネットワーク(NW)機器に比べて通信コスト(負担)が発生することになる。
更に、データセンタのような大規模ネットワークを考えると、このコストは顕著である。大規模なネットワークでは、性能や信頼性の面から、複数のコントローラが分担してネットワーク内の全てのネットワーク(NW)機器を管理することになる。経路計算のためのトポロジ情報は、全てのコントローラが共有している。
以下、図4を参照して、従来のネットワークシステムにおける処理の流れを具体的に説明する。ここでは、ネットワーク(NW)機器として、ネットワーク(NW)機器A、ネットワーク(NW)機器B、ネットワーク(NW)機器Cの3つを示す。
(1)1stパケット送信
ノードは、自身が接続されたネットワーク(NW)機器Aに対して、1stパケットを送信する。
(2)1stパケット受信通知
ネットワーク(NW)機器Aは、1stパケットを受信すると、1stパケットを受信した旨を、ネットワーク(NW)機器Aを制御するコントローラに通知する。
(3)経路計算
ネットワーク(NW)機器Aを制御するコントローラは、ネットワーク(NW)機器Aから通知を受け取ると、トポロジ情報を基に、経路を計算する。
(4)ネットワーク(NW)機器C更新指示
ネットワーク(NW)機器Aを制御するコントローラは、計算した経路が、異なるコントローラによって制御されるネットワーク(NW)機器Cをまたぐような場合は、ネットワーク(NW)機器Cを制御するコントローラに対して、ネットワーク(NW)機器Cの経路情報を通知し、ネットワーク(NW)機器Cのフローテーブルを更新するように指示する。
(5)ネットワーク(NW)機器C更新
ネットワーク(NW)機器Cを制御するコントローラは、ネットワーク(NW)機器Cのフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。
(6)ネットワーク(NW)機器C更新完了
ネットワーク(NW)機器Aを制御するコントローラは、ネットワーク(NW)機器Cを制御するコントローラから、ネットワーク(NW)機器Cのフローテーブルの更新が完了した旨の通知を受け取る。
(7)ネットワーク(NW)機器A更新、ネットワーク(NW)機器B更新
ネットワーク(NW)機器Aを制御するコントローラは、計算した経路上で、異なるコントローラによって制御される全てのネットワーク(NW)機器のフローテーブルの更新が完了すると、計算した経路を基に、通知元のネットワーク(NW)機器A及び配下の他のネットワーク(NW)機器Bのフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。すなわち、コントローラは、計算した経路上で自分の制御下にないネットワーク(NW)機器を制御する全てのコントローラに更新指示を通知し、応答により同期を取り、計算した経路上のネットワーク(NW)機器のフローテーブルの更新が完了したことを確認した後に、自分の制御下のネットワーク(NW)機器のフローテーブルを更新する。
(8)パケット送信
ネットワーク(NW)機器Aは、追加されたフローテーブルのエントリーに従い、1stパケットを次のネットワーク(NW)機器Bに送信する。
(9)パケット送信
ネットワーク(NW)機器Bは、追加されたフローテーブルのエントリーに従い、1stパケットを次のネットワーク(NW)機器Cに送信する。
(10)パケット送信
ネットワーク(NW)機器Cは、追加されたフローテーブルのエントリーに従い、受信したパケットを、配下のノードに送信する。
図4に示すように、あるパケットの経路が異なるコントローラによって制御されるネットワーク(NW)機器群をまたがるような場合、コントローラ間で経路内のネットワーク(NW)機器のフローテーブル更新指示と同期待ち合わせが発生し、それが完了するまでパケットの転送は遅延する。
逆に、フローテーブル更新を待ち合わせないとした場合も、パケットが経路上のネットワーク(NW)機器に届いた時点でフローテーブルが更新されていなければ、そのパケットが1stパケットとして扱われてしまい、新たなコストが発生してしまう。
以上の理由から、既存のネットワークをパケット転送と経路制御を分離したネットワーク(NW)機器で再構成する場合、システム性能が劣化する可能性が大きく、最悪の場合、従来守れていたシステムの性能指標を守れなくなってしまう可能性がある。
なお、関連する技術として、特許文献1(特開2004−320693号公報)にパケット制御システム、パケット制御装置、パケット中継装置およびパケット制御プログラムが開示されている。この関連技術では、パケット中継装置は、ネットワークインタフェースで受信した経路制御パケットをパケット制御装置に転送する。パケット制御装置は、ネットワークインタフェースに対応付けられたアドレス情報を保持する仮想インタフェースと、パケット中継装置から転送された経路制御パケットを受信し、仮想インタフェースに対応付けて経路制御プロセスに転送し、経路制御プロセスが仮想インタフェースに対応付けて送信した経路制御パケットを受信してパケット中継装置に転送する。このように、ルータの中継機能と制御機能を分離する。
また、特許文献2(特開2007−096912号公報)にネットワーク中継器が開示されている。この関連技術では、他のルータと経路情報交換を行い、自ルータの経路情報を更新し、更新された経路情報に基づいて受信したパケットの中継処理を実施するルータにおいて、パケットの中継処理を停止することなく自ルータの経路情報を圧縮、更新する。これにより、ルータのハードウエアの増設、更新をすることなく増加、拡大するインターネットの経路情報に対応することを目的としている。
また、特許文献3(特許第3517552号明細書)にデータ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体が開示されている。この関連技術では、制御コマンドを非同期パケットを用いて転送する。また、各コマンドはパケットフレームのヘッダのctypeにセットされるコマンドタイプに従った内容で実行される。
特開2004−320693号公報 特開2007−096912号公報 特許第3517552号明細書
The OpenFlow Switch Consortium <http://www.openflowswitch.org/>
本発明の目的は、パケットに埋め込んだ経路情報を基に、ネットワーク(NW)機器が内部に持つ経路情報テーブルを更新するネットワークシステムを提供することである。
本発明のネットワークシステムは、ネットワークを構成する複数のネットワーク機器を含む。複数のネットワーク機器の各々は、パケットの判定基準及び当該パケットに対する処理を示すフローテーブルのエントリーに従ってパケットを送信する際、パケットを運ぶフレームに、宛先までの経路上に存在する他のネットワーク機器の経路情報を付加して送信する手段と、受信したパケットを解析し、受信したパケットを運ぶフレームに自分の経路情報が付加されていた場合、フレームから自分の経路情報を取り出し、取り出された経路情報を基に、フローテーブルに新しいエントリーを追加し、フローテーブルを更新する手段とを具備する。
本発明の経路情報更新方法は、ネットワークを構成する複数のネットワーク機器の各々により実施される。この経路情報更新方法では、パケットの判定基準及び当該パケットに対する処理を示すフローテーブルのエントリーに従ってパケットを送信する際、パケットを運ぶフレームに、宛先までの経路上に存在する他のネットワーク機器の経路情報を付加して送信する。また、受信したパケットを解析し、受信したパケットを運ぶフレームに自分の経路情報が付加されていた場合、フレームから自分の経路情報を取り出し、取り出された経路情報を基に、フローテーブルに新しいエントリーを追加し、フローテーブルを更新する。
本発明のプログラムは、以下の第1及び第2のステップをネットワーク機器に実行させるためのプログラムである。第1のステップは、パケットの判定基準及び当該パケットに対する処理を示すフローテーブルのエントリーに従ってパケットを送信する際、パケットを運ぶフレームに、宛先までの経路上に存在する他のネットワーク機器の経路情報を付加して送信するステップである。第2のステップは、受信したパケットを解析し、受信したパケットを運ぶフレームに自分の経路情報が付加されていた場合、フレームから自分の経路情報を取り出し、取り出された経路情報を基に、フローテーブルに新しいエントリーを追加し、フローテーブルを更新するステップである。なお、本発明のプログラムは、記憶装置や記憶媒体に格納することが可能である。
パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、複数のコントローラをまたぐ通信が発生する場合における1stパケット処理の際、コントローラ間で経路内のネットワーク(NW)機器のフローテーブル更新指示と同期待ち合わせの必要が無くなり、パケット転送の遅延を回避でき、ネットワーク性能が向上する。
オープンフロー0.9.0の基本的な構成例を示す概念図である。 従来のパケット処理の流れを説明するための図である。 従来のパケット照合処理の流れを説明するための図である。 従来のネットワークシステムにおける処理の流れを説明するための図である。 本発明のネットワークシステムにおける処理の流れを説明するための図である。 本発明のネットワークシステムの基本構成を示すブロック図である。 本発明で定義する新規のプロトコルにおけるフレームフォーマットを説明するための図である。 本発明のパケット照合処理の流れを説明するための図である。
以下に、本発明の実施形態について添付図面を参照して説明する。
図5に示す通り、本発明のネットワークシステムは、コントローラと、ネットワーク(NW)機器を備える。
コントローラは、自分が制御するネットワーク(NW)機器から、1stパケット(First packet)受信の通知を受けて、パケット(packet)転送の経路を計算し、計算した経路を基に、通知元のネットワーク(NW)機器のフローテーブルを更新する。このとき、コントローラは、計算した経路に、他のコントローラにより制御される他のネットワーク(NW)機器が含まれている場合、自分が制御するネットワーク(NW)機器に対して、他のネットワーク(NW)機器の経路情報(フローテーブルのエントリー)のリストを通知する。
ネットワーク(NW)機器は、1stパケットを受信するとコントローラに通知し、コントローラにより更新された自分のフローテーブルに従って、1stパケットを転送する。このとき、ネットワーク(NW)機器は、コントローラから、他のネットワーク(NW)機器の経路情報のリストを通知された場合、本発明で定義する新規のプロトコルで、他のネットワーク(NW)機器の経路情報のリストを1stパケットに付加し、次のネットワーク(NW)機器に送信する。本発明で定義する新規のプロトコルは、パケットを運ぶフレーム(Ether frame)について予め定義された新規プロトコルである。本発明で定義する新規のプロトコルの詳細については後述する。
なお、フレームは、OSI参照モデルの第2層(レイヤ2:データリンク層)の通信で使われるPDU(プロトコル・データ・ユニット)の呼び名であり、パケットは、OSI参照モデルの第3層(レイヤ3:ネットワーク層)の通信で使われるPDUの呼び名である。
ここでは、ネットワーク(NW)機器は、最初に1stパケットを受信すると、そのパケットに経路上の全てのネットワーク(NW)機器の経路情報を付加する(埋め込む)。
また、ネットワーク(NW)機器は、経路情報が付加された(埋め込まれた)パケットを受信すると、付加された経路情報に基づいて、自身の経路情報を更新して、次のネットワーク(NW)機器にパケットを送信することを繰り返す。
これにより、コントローラとの通信が最初の1回だけになり、1stパケット到着時のフローテーブル更新処理に伴うコントローラ間の同期待ち合わせを省略することができる。
<実施例>
以下、図5を参照して、本発明のネットワークシステムにおける処理の流れを具体的に説明する。ここでは、ネットワーク(NW)機器として、ネットワーク(NW)機器A、ネットワーク(NW)機器B、ネットワーク(NW)機器Cの3つを示す。
なお、図4と図5を対比すると、従来技術と本発明との相違点が明確となる。
(1)1stパケット送信
ノードは、自身が接続されたネットワーク(NW)機器Aに対して、1stパケットを送信する。
(2)1stパケット受信通知
ネットワーク(NW)機器Aは、1stパケットを受信すると、1stパケットを受信した旨を、ネットワーク(NW)機器Aを制御するコントローラに通知する。
(3)経路計算
ネットワーク(NW)機器Aを制御するコントローラは、ネットワーク(NW)機器Aから通知を受け取ると、トポロジ情報を基に、経路を計算する。
(4)ネットワーク(NW)機器A更新+経路情報送信
ネットワーク(NW)機器Aを制御するコントローラは、計算した経路を基に、通知元のネットワーク(NW)機器Aのフローテーブルに新しいエントリーを追加し、フローテーブルを更新する。このとき、ネットワーク(NW)機器Aを制御するコントローラは、計算した経路が、異なるコントローラによって制御されるネットワーク(NW)機器をまたぐような場合は、全てのネットワーク(NW)機器の経路情報(フローテーブルのエントリー)のリストを、通知元のネットワーク(NW)機器に送信する。
(5)パケット送信
通知元のネットワーク(NW)A機器は、自分以外のネットワーク(NW)機器の経路情報のリストを1stパケットに付加し、追加されたフローテーブルのエントリーに従い、1stパケットを次のネットワーク(NW)機器Bに送信する。
(6)ネットワーク(NW)機器B更新
次のネットワーク(NW)機器Bは、経路情報のリストを付加されたパケットを受信し、リストに自分の経路情報が存在する場合は、その経路情報に基づいて、フローテーブルにエントリーを追加し、処理(Action)を実行する。
(7)パケット送信
その後、次のネットワーク(NW)機器Bは、追加されたフローテーブルのエントリーに従い、受信したパケットを、更に次のネットワーク(NW)機器Cに送信する。
(8)ネットワーク(NW)機器C更新
更に次のネットワーク(NW)機器Cは、経路情報のリストを付加されたパケットを受信し、リストに自分の経路情報が存在する場合は、その経路情報に基づいて、フローテーブルにエントリーを追加し、処理(Action)を実行する。
(9)パケット送信
その後、更に次のネットワーク(NW)機器Cは、追加されたフローテーブルのエントリーに従い、受信したパケットを、配下のノードに送信する。
これを繰り返すことで、コントローラ間でフローテーブル更新の同期待ち合わせをすることなく、経路上の全てのネットワーク(NW)機器のフローテーブルが更新され、1stパケットは宛先に到達する。
パケットに付加された経路情報の尤度(確からしさ)については、予め(事前に)通信相手となるネットワーク(NW)機器をコンフィグレーションしておく等の手法が考えられる。
<本発明のネットワークシステムの基本構成>
図6を参照して、本発明のネットワークシステムの基本構成の詳細について説明する。
先に説明した通り、本発明のネットワークシステムは、コントローラ10と、ネットワーク(NW)機器20を備える。
なお、図5に示したコントローラは、コントローラ10に該当する。また、図5に示したネットワーク(NW)機器は、ネットワーク(NW)機器20に該当する。
コントローラ10は、ネットワーク(NW)機器20と物理的に分離されたサーバマシン、又は当該サーバマシン上で動作する仮想マシン(VM:Virtual Machine)である。コントローラ10は、複数のネットワーク(NW)機器を管理することができ、各ネットワーク(NW)機器と、専用線もしくは通常のネットワークを利用したセキュアチャンネル(Secure channel:安全な経路)で接続されており、オープンフロープロトコルで通信を行う。
コントローラ10は、経路計算部11と、ネットワーク(NW)機器制御部12を持つ。
経路計算部11は、パケットの転送経路を計算する。ネットワーク(NW)機器制御部12は、専用線もしくは通常のネットワークを介して、ネットワーク(NW)機器20を制御する。ここでは、ネットワーク(NW)機器制御部12は、ネットワーク(NW)機器20からパケットを受信し、ネットワーク(NW)機器20に経路情報のリストを送信する。
ネットワーク(NW)機器20は、パケット処理部21と、フローテーブル22と、フローテーブル管理部23を備える。
パケット処理部21は、パケットを処理する。フローテーブル22は、通常のオープンフローの仕組みにおけるフローテーブルと同じく、パケットを転送するための経路情報を管理する。フローテーブル管理部23は、コントローラ10から通知された経路情報を基に、フローテーブル22の経路情報を参照・追加・更新・削除する。
パケット処理部21は、パケット送信部211と、パケット受信部212と、パケット解析部213と、パケット更新部214を備える。
パケット送信部211は、ネットワーク(NW)機器20の物理ポートやコントローラ10等にパケットを送信する。ネットワーク(NW)機器20の物理ポートは、図5に示すようなノードや他のネットワーク(NW)機器に接続されている。パケット受信部212は、ネットワーク(NW)機器20の物理ポートやコントローラ10等からパケットを受信する。パケット解析部213は、受信したパケットを解析し、パケットの内容と、フローテーブルのエントリーの内容を照合する。パケット更新部214は、パケットに経路情報を埋め込む。
<本発明で定義する新規のプロトコル>
次に、本発明で定義する新規のプロトコルについて説明する。
本発明では、フレームフォーマットにおいて経路情報のリストを埋め込む領域を定義した新規のプロトコルを用意する。新規のプロトコルのヘッダ情報は、少なくとも経路情報のリストとヘッダ長を情報に持つ。新規のプロトコルのパケットを運ぶフレームには、上位プロトコル種別を表す領域(field)に新規のプロトコル用に定義した識別情報(ID)を指定する。
図7に示す通り、本発明で定義する新規のプロトコルにおけるフレームフォーマットは、IEEE 802.3準拠のフレームフォーマットをベース(基礎)としており、プリアンブルと、SFD(Start Frame Delimiter)と、dst(宛先アドレス)と、src(送信元アドレス)と、TPID(Tag Protocol Identifier)と、TCI(Tag Control Information)と、Len/type(長さ/タイプ)と、Data/LLC(Data/Logical Link Control)と、FCS(Frame Check Sequence)等の領域を含む。
本発明では、経路情報のリストを埋め込むための領域として、Data/LLCを使用する。Data/LLCは、ヘッダ長と、経路情報リストと、1stパケットを含む。パケット更新部214は、コントローラ10から通知された経路情報のリストを、Data/LLC内の経路情報リストの領域に格納する。また、パケット更新部214は、Data/LLC内のデータ領域における個々のデータ長/タイプや、新規のプロトコル用に定義した識別情報(ID)を、Len/typeに設定する。
<ネットワーク(NW)機器内部の動作>
図6を参照して、ネットワーク(NW)機器20が1stパケットを受信したときの動作を説明する。
ネットワーク(NW)機器20において、パケット受信部212は、パケットを受信する。
パケット解析部213は、パケットを解析し、パケットを運ぶフレームが本発明で定義する新規のプロトコルのフレームかどうかを判定する。ここでは、パケット解析部213は、パケットを解析し、パケットを運ぶフレームに、新規のプロトコル用に定義した識別情報(ID)が付加されている場合、又は、パケットを運ぶフレームから経路情報のリストを検出した場合、パケットを運ぶフレームが本発明で定義する新規のプロトコルのフレームであると判断する。
パケットを運ぶフレームが本発明で定義する新規のプロトコルのフレームではない場合、パケット解析部213は、パケットの内容と、フローテーブル22のエントリーの内容を照合する。
当該パケットに対し、フローテーブル22内に該当するエントリーが存在しない場合、パケット送信部211は、コントローラ10にその旨を通知する。
コントローラ10において、ネットワーク(NW)機器制御部12は、1stパケット到着の通知を受信する。
経路計算部11は、1stパケットについて、宛先までの経路を計算する。
ネットワーク(NW)機器制御部12は、計算された経路上の全てのネットワーク(NW)機器の経路情報を、通知元のネットワーク(NW)機器20に送信する。
通知元のネットワーク(NW)機器20において、パケット受信部212は、コントローラ10から経路上の全てのネットワーク(NW)機器の経路情報のリストを受信する。
フローテーブル管理部23は、全てのネットワーク(NW)機器の経路情報のリストから、自分の経路情報を取り出してフローテーブル22を更新する。
パケット更新部214は、本発明で定義する新規のプロトコルに従って、1stパケットに、自分以外のネットワーク(NW)機器の経路情報のリストを付加する。
その後、パケット送信部211は、フローテーブル22に従い、次のネットワーク(NW)機器20に、経路情報のリストが付加されたパケットを送信する。
次のネットワーク(NW)機器20において、パケット受信部212は、経路情報のリストが付加されたパケットを受信する。
パケット解析部213は、パケットを解析し、パケットを運ぶフレームが本発明で定義する新規のプロトコルのフレームかどうかを判定する。
パケット解析部213は、当該パケットを運ぶフレーム内の経路情報リストから、自分の経路情報を取り出してフローテーブル管理部23に通知する。
フローテーブル管理部23は、通知された経路情報を基に、フローテーブル22を更新する。
その後、パケット送信部211は、フローテーブル22に従い、更に次のネットワーク(NW)機器20に、経路情報のリストが付加されたパケットを送信する。
<本発明のパケット処理>
本発明のパケット到着時の処理の流れは、図2に示した通りである。本発明のパケット照合処理ついては、図8に示す通り、図3のパケット照合処理に、本発明で定義する新規のプロトコルに従ったパケットであることの確認処理(プロトコル確認処理)と、自分の経路情報を取り出す処理(経路情報取得処理)を追加する。自分の経路情報を取り出す処理(経路情報取得処理)の後、フローテーブルの更新とパケット送信処理を行う。
なお、図3と図8を対比すると、従来技術と本発明との相違点が明確となる。
図8を参照して、本発明のパケット照合処理について詳述する。
まず、ネットワーク(NW)機器は、フローテーブルのエントリーのヘッダ領域情報(Header Field)と照合する際の照合対象となるパケットのヘッダ領域情報(Header Field)に、「Ingress Port」と、「Ether src」と、「Ether dst」と、「Ether type」を指定する(図8の「Header Field=<Ingress Port, Ether src, Ether dst, Ether type>」)。
ネットワーク(NW)機器は、パケットが本発明で定義する新規のプロトコルに従ったパケットか確認する(プロトコル確認処理)。ここでは、ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「Ether type」の値が、本発明で定義する新規のプロトコルに従ったパケットであることを示すIDであるか確認する(図8の「Ether type = ID for new protocol?」)。
ネットワーク(NW)機器は、パケットが本発明で定義する新規のプロトコルに従ったパケットであると判断した場合、パケットから自分の経路情報(フローテーブルのエントリー)を取り出す(経路情報取得処理)。ここでは、ネットワーク(NW)機器は、「Ether type」の値が、本発明で定義する新規のプロトコルに従ったパケットであることを示すIDである場合、パケットから自分の経路情報(フローテーブルのエントリー)を取り出し、取り出した経路情報を基に、フローテーブルに新しいエントリーを追加し、フローテーブルを更新する(図8の「Extract own flow table entry」)。
ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「Ether type」の値が「0x8100」であるか確認する(図8の「Ether type = 0x8100?」)。
ネットワーク(NW)機器は、「Ether type」の値が「0x8100」である場合、「VLAN ID」を、新たな照合対象として、ヘッダ領域情報(Header Field)に追加する。すなわち、ネットワーク(NW)機器は、「Ether type」についても照合対象とする。このとき、ネットワーク(NW)機器は、カプセル化された「Ether type」の値を、「Ether type」の値として使用する(図8の「Add <VLAN ID> to Header Field, Use encapsulated Ether type as Ether type」)。
ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「Ether type」の値が「0x800」であるか確認する(図8の「Ether type = 0x800?」)。
ネットワーク(NW)機器は、「Ether type」の値が「0x800」である場合、「IP src」と、「IP dst」と、「IP proto」を、新たな照合対象として、ヘッダ領域情報(Header Field)に追加する。すなわち、ネットワーク(NW)機器は、「IP src」と、「IP dst」と、「IP proto」についても照合対象とする(図8の「Add <IP src, IP dst, IP proto> to Header Field」)。
ネットワーク(NW)機器は、パケットのヘッダ領域情報(Header Field)の「IP proto」の値が「6」又は「17」であるか確認する(図8の「IP proto = 6 or 17?」)。
ネットワーク(NW)機器は、「IP proto」の値が「6」又は「17」である場合、「TCP/UDP src port」と、「TCP/UDP dst port」を、新たな照合対象として、ヘッダ領域情報(Header Field)に追加する。すなわち、ネットワーク(NW)機器は、「TCP/UDP src port」と、「TCP/UDP dst port」についても照合対象とする(図8の「Add <TCP/UDP src port, TCP/UDP dst port> to Header Field」)。
ネットワーク(NW)機器は、フローテーブルのエントリーのヘッダ領域情報(Header Field)と、パケットのヘッダ領域情報(Header Field)を照合する(図8の「Packet Lookup Over Header Field」)。
本発明により、パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、複数のコントローラをまたぐ通信が発生する場合における1stパケット処理の際、コントローラ間で経路内のネットワーク(NW)機器のフローテーブル更新指示と同期待ち合わせの必要が無くなり、パケット転送の遅延を回避でき、ネットワーク性能が向上する。
<他の実施例>
上記の説明において、本発明の実施例では、経路上のネットワーク(NW)機器の経路情報(フローテーブルのエントリー)をリストにし、このリストをパケットに付加して送受信している。
本発明の他の実施例としては、経路情報のリストではなく、ネットワーク(NW)機器の制御コマンドをパケットに付加して送受信することが考えられる。
この場合、パケット更新部214は、経路情報リストの代わりに、又は、経路情報リストと共に、ネットワーク(NW)機器の制御コマンドを、フレームフォーマットのData/LLCに格納することで、ネットワーク(NW)機器の制御コマンドをパケットに付加する。パケット解析部213は、パケットを解析し、パケットに付加された制御コマンドを取り出して実行する。
ネットワーク(NW)機器間でネットワーク(NW)機器の制御コマンドを送受信することで、フローテーブルの更新だけでなく、他の制御もできるようになる。
なお、本発明においては、経路情報のリストも、視点を変えれば、フローテーブルを更新するための制御コマンドと言えるため、ネットワーク(NW)機器の制御コマンドの1つと言える。
<補足>
本発明では、パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、フローテーブルに経路情報が無いパケットに対し、投機的な転送(パケット転送の投機的実行:speculative execution)を行い、外部ネットワークに送信する直前で保留することができる。
また、本発明では、パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、投機的な転送の成否をコントローラからのフローテーブルの設定によって判定を行うことができる。
また、本発明では、パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、投機的な転送に失敗したと判定した場合に投機キャンセルパケットを送ることによって、投機的な転送したパケットを取り消すことができる。
また、本発明では、パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、投機的に転送したパケットを経由した全てのプログラマブルネットワーク(NW)機器で保持しておき、投機的な転送に失敗したと判定した場合に、転送先を間違えたプログラマブルネットワーク(NW)機器からパケットを送り直す(再送する)ことができる。
<まとめ>
以上のように、本発明では、パケットに埋め込んだ経路情報を基に、ネットワーク(NW)機器が内部に持つ経路情報テーブルを更新する。
本発明では、ネットワーク(NW)機器は、パケットを受信した際に、パケットを運ぶフレームが本発明で定義する新規のプロトコルのフレームかどうかを判定する。
ネットワーク(NW)機器は、パケットを運ぶフレームが本発明で定義する新規のプロトコルのフレームであれば、フレーム内の経路情報(フローテーブルのエントリー)を参照し、自分の経路情報があるか確認する。
ネットワーク(NW)機器は、自分の経路情報があれば、自分の経路情報を基に、自分のフローテーブルに新たなエントリーを追加し、この新たなエントリーに従ってパケットを転送する。
ネットワーク(NW)機器は、自分の経路情報がない場合、又は、パケットを運ぶフレームが本発明で定義する新規のプロトコルのフレームでない場合、従来のオープンフローの手順に従って、自分のフローテーブル内の既存のエントリーと、受信したパケットを照合する。
<本発明の特徴>
本発明の特徴の1つは、オープンフローに代表される、制御機能を外部のコントローラとして分離したネットワーク(NW)機器で構成されるネットワークを対象とすることである。
また、本発明の特徴の1つは、コントローラが異なるネットワーク(NW)機器をまたがる経路の場合に、コントローラ間の通信を伴わずに全てのネットワーク(NW)機器に対して経路情報を設定できることである。
また、本発明の特徴の1つは、経路情報が存在しないパケットが到着したときに、経路上にあるネットワーク(NW)機器の経路情報をリストにしてパケットに付加し、次のネットワーク(NW)機器に転送することである。
また、本発明の特徴の1つは、ネットワーク(NW)機器は、経路情報のリストが付加されたパケットを解析し、自身の経路情報を更新することである。
すなわち、本発明では、パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、経路上のネットワーク(NW)機器に設定する経路情報を取得したネットワーク(NW)機器は、この経路情報をパケットに付加して転送する。パケットを受信した経路上のネットワーク(NW)機器は、経路情報が付加されたパケットを解析して自らの経路情報を更新する。これにより、コントローラに直接問い合わせることなくネットワーク(NW)機器の経路情報を更新することができる。
更に、パケット転送と経路制御の機能が分離されたネットワーク(NW)機器で構成されるネットワークにおいて、ネットワーク(NW)機器は、経路上のネットワーク(NW)機器の制御コマンドをパケットに付加して転送する。パケットを受信した経路上のネットワーク(NW)機器は、制御コマンドを付加されたパケットを解析して制御コマンドを実行する。これにより、コントローラと直接通信することなくネットワーク(NW)機器を制御することができる。
(付記1)
本発明のネットワークシステムは、コントローラと、ネットワークを構成し、前記コントローラにより制御されるネットワーク機器とを具備する。
(付記2)
前記コントローラは、前記ネットワーク機器から通知されたパケットについて、宛先までの経路を計算し、前記ネットワーク機器のフローテーブルに新しいエントリーを追加し、前記フローテーブルを更新する手段と、前記計算した経路上に、自分の制御下にない他のネットワーク機器が存在する場合、前記他のネットワーク機器の経路情報を前記ネットワーク機器に通知する手段とを具備する。
(付記3)
前記ネットワーク機器は、フレーム内に前記経路情報を付加する領域を定義した新規プロトコルに従って、パケットを運ぶフレームに前記経路情報を付加して前記ネットワークに送信する手段と、前記ネットワークからパケットを受信する手段と、前記パケットを解析し、前記パケットを運ぶフレームが前記新規プロトコルのフレームかどうかを判定する手段と、前記パケットを運ぶフレームが前記新規プロトコルのフレームではない場合、前記パケットと前記フローテーブルのエントリーとを照合する手段と、前記パケットに対し、前記フローテーブル内に該当するエントリーが存在しない場合、前記パケットを未知のパケットと判断し、前記コントローラに前記パケットを通知する手段と、前記パケットを運ぶフレームが前記新規プロトコルのフレームである場合、前記パケットを運ぶフレームから、自分の経路情報を取り出し、前記取り出された経路情報を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新する手段と、前記フローテーブルに追加されたエントリーに従って、前記パケットを転送する手段とを具備する。
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
10… コントローラ
11… 経路計算部
12… ネットワーク(NW)機器制御部
20… ネットワーク(NW)機器
21… パケット処理部
211… パケット送信部
212… パケット受信部
213… パケット解析部
214… パケット更新部
22… フローテーブル
23… フローテーブル管理部

Claims (10)

  1. ネットワークを構成する複数のネットワーク機器
    を含み、
    前記複数のネットワーク機器の各々は、
    パケットの判定基準及び当該パケットに対する処理を示すフローテーブルのエントリーに従ってパケットを送信する際、パケットを運ぶフレームに、宛先までの経路上に存在する他のネットワーク機器の経路情報を付加して送信する手段と、
    受信したパケットを解析し、前記受信したパケットを運ぶフレームに自分の経路情報が付加されていた場合、前記フレームから自分の経路情報を取り出し、前記取り出された経路情報を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新する手段と
    を具備する
    ネットワークシステム。
  2. 請求項1に記載のネットワークシステムであって、
    前記各ネットワーク機器を制御するコントローラ
    を更に含み、
    前記コントローラは、
    前記各ネットワーク機器から通知されたパケットについて、宛先までの経路を計算し、前記各ネットワーク機器のフローテーブルに新しいエントリーを追加し、前記フローテーブルを更新する手段と、
    前記計算した経路上に、自分の制御下にない他のネットワーク機器が存在する場合、前記他のネットワーク機器の経路情報を前記各ネットワーク機器に通知する手段と
    を具備し、
    前記各ネットワーク機器は、
    フレーム内に前記経路情報を付加する領域を定義した新規プロトコルに従って、パケットを運ぶフレームに前記経路情報を付加して前記ネットワークに送信する手段と、
    前記ネットワークからパケットを受信する手段と、
    前記受信したパケットを解析し、前記受信したパケットを運ぶフレームが前記新規プロトコルのフレームかどうかを判定する手段と、
    前記受信したパケットを運ぶフレームが前記新規プロトコルのフレームではない場合、前記受信したパケットの内容と前記フローテーブルの内容とを照合する手段と、
    前記受信したパケットに対し、前記フローテーブル内に該当するエントリーが存在しない場合、前記受信したパケットを未知のパケットと判断し、前記コントローラに前記受信したパケットを通知する手段と、
    前記受信したパケットを運ぶフレームが前記新規プロトコルのフレームである場合、前記受信したパケットを運ぶフレームから、自分の経路情報を取り出し、前記取り出された経路情報を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新する手段と、
    前記フローテーブルに追加されたエントリーに従って、前記受信したパケットを転送する手段と
    を更に具備する
    ネットワークシステム。
  3. 請求項2に記載のネットワークシステムであって、
    前記各ネットワーク機器は、
    送信予定のパケットを運ぶフレーム内のLen/typeの領域に、前記新規プロトコル用に定義した識別情報を設定する手段と、
    前記新規プロトコルに従って、前記送信予定のパケットを運ぶフレーム内のData/LLCの領域に前記経路情報を埋め込む手段と、
    前記受信したパケットを運ぶフレーム内のLen/typeの領域に、前記新規プロトコル用に定義した識別情報が設定されている場合、前記受信したパケットを運ぶフレームが前記新規プロトコルのフレームであると判断する手段と、
    前記受信したパケットを運ぶフレームが前記新規プロトコルのフレームであると判断した場合、前記受信したパケットを運ぶフレーム内のData/LLCの領域から、自分の経路情報を取り出す手段と
    を更に具備する
    ネットワークシステム。
  4. パケットの判定基準及び当該パケットに対する処理を示すフローテーブルのエントリーに従ってパケットを送信する際、パケットを運ぶフレームに、宛先までの経路上に存在する他のネットワーク機器の経路情報を付加して送信する手段と、
    受信したパケットを解析し、前記受信したパケットを運ぶフレームに自分の経路情報が付加されていた場合、前記フレームから自分の経路情報を取り出し、前記取り出された経路情報を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新する手段と
    を具備する
    ネットワーク機器。
  5. 請求項4に記載のネットワーク機器であって、
    ネットワークからパケットを受信する手段と、
    前記パケットを解析し、前記パケットを運ぶフレームが、フレーム内に他のネットワーク機器の経路情報を付加する領域を定義した新規プロトコルのフレームかどうかを判定する手段と、
    前記パケットを運ぶフレームが前記新規プロトコルのフレームである場合、前記パケットを運ぶフレームから、自分の経路情報を取り出し、前記取り出された経路情報を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新する手段と、
    前記パケットを運ぶフレームが前記新規プロトコルのフレームではない場合、前記パケットと前記フローテーブルのエントリーとを照合する手段と、
    前記パケットに対し、前記フローテーブル内に該当するエントリーが存在しない場合、前記パケットを未知のパケットと判断し、自身を制御するコントローラに前記パケットを通知する手段と、
    前記コントローラにより計算された宛先までの経路を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新する手段と、
    前記計算された経路上に、前記コントローラの制御下にない他のネットワーク機器が存在する場合、前記コントローラから前記他のネットワーク機器の経路情報を取得する手段と、
    前記新規プロトコルに従って、前記パケットを運ぶフレームに前記他のネットワーク機器の経路情報を付加する手段と、
    前記フローテーブルに追加されたエントリーに従って、前記パケットを転送する手段と
    を更に具備する
    ネットワーク機器。
  6. 請求項5に記載のネットワーク機器であって、
    送信予定のパケットを運ぶフレーム内のLen/typeの領域に、前記新規プロトコル用に定義した識別情報を設定する手段と、
    前記新規プロトコルに従って、前記送信予定のパケットを運ぶフレーム内のData/LLCの領域に前記経路情報を埋め込む手段と、
    前記受信したパケットを運ぶフレーム内のLen/typeの領域に、前記新規プロトコル用に定義した識別情報が設定されている場合、前記受信したパケットを運ぶフレームが前記新規プロトコルのフレームであると判断する手段と、
    前記受信したパケットを運ぶフレームが前記新規プロトコルのフレームであると判断した場合、前記受信したパケットを運ぶフレーム内のData/LLCの領域から、自分の経路情報を取り出す手段と
    を更に具備する
    ネットワーク機器。
  7. ネットワークを構成する複数のネットワーク機器の各々により実施される経路情報更新方法であって、
    パケットの判定基準及び当該パケットに対する処理を示すフローテーブルのエントリーに従ってパケットを送信する際、パケットを運ぶフレームに、宛先までの経路上に存在する他のネットワーク機器の経路情報を付加して送信することと、
    受信したパケットを解析し、前記受信したパケットを運ぶフレームに自分の経路情報が付加されていた場合、前記フレームから自分の経路情報を取り出し、前記取り出された経路情報を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新することと
    を含む
    経路情報更新方法。
  8. パケットの判定基準及び当該パケットに対する処理を示すフローテーブルのエントリーに従ってパケットを送信する際、パケットを運ぶフレームに、宛先までの経路上に存在する他のネットワーク機器の経路情報を付加して送信するステップと、
    受信したパケットを解析し、前記受信したパケットを運ぶフレームに自分の経路情報が付加されていた場合、前記フレームから自分の経路情報を取り出し、前記取り出された経路情報を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新するステップと
    をネットワーク機器に実行させるためのプログラム。
  9. 請求項8に記載のプログラムであって、
    ネットワークからパケットを受信するステップと、
    前記パケットを解析し、前記パケットを運ぶフレームが、フレーム内に他のネットワーク機器の経路情報を付加する領域を定義した新規プロトコルのフレームかどうかを判定するステップと、
    前記パケットを運ぶフレームが前記新規プロトコルのフレームである場合、前記パケットを運ぶフレームから、自分の経路情報を取り出し、前記取り出された経路情報を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新するステップと、
    前記パケットを運ぶフレームが前記新規プロトコルのフレームではない場合、前記パケットと前記フローテーブルのエントリーとを照合するステップと、
    前記パケットに対し、前記フローテーブル内に該当するエントリーが存在しない場合、前記パケットを未知のパケットと判断し、自身を制御するコントローラに前記パケットを通知するステップと、
    前記コントローラにより計算された宛先までの経路を基に、前記フローテーブルに新しいエントリーを追加し、前記フローテーブルを更新するステップと、
    前記計算された経路上に、前記コントローラの制御下にない他のネットワーク機器が存在する場合、前記コントローラから前記他のネットワーク機器の経路情報を取得するステップと、
    前記新規プロトコルに従って、前記パケットを運ぶフレームに前記他のネットワーク機器の経路情報を付加するステップと、
    前記フローテーブルに追加されたエントリーに従って、前記パケットを転送するステップと
    を更にネットワーク機器に実行させるためのプログラム。
  10. 請求項9に記載のプログラムであって、
    送信予定のパケットを運ぶフレーム内のLen/typeの領域に、前記新規プロトコル用に定義した識別情報を設定するステップと、
    前記新規プロトコルに従って、前記送信予定のパケットを運ぶフレーム内のData/LLCの領域に前記経路情報を埋め込むステップと、
    前記受信したパケットを運ぶフレーム内のLen/typeの領域に、前記新規プロトコル用に定義した識別情報が設定されている場合、前記受信したパケットを運ぶフレームが前記新規プロトコルのフレームであると判断するステップと、
    前記受信したパケットを運ぶフレームが前記新規プロトコルのフレームであると判断した場合、前記受信したパケットを運ぶフレーム内のData/LLCの領域から、自分の経路情報を取り出すステップと
    を更にネットワーク機器に実行させるためのプログラム。
JP2010030567A 2010-02-15 2010-02-15 ネットワークシステム、ネットワーク機器、経路情報更新方法、及びプログラム Expired - Fee Related JP5521613B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010030567A JP5521613B2 (ja) 2010-02-15 2010-02-15 ネットワークシステム、ネットワーク機器、経路情報更新方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010030567A JP5521613B2 (ja) 2010-02-15 2010-02-15 ネットワークシステム、ネットワーク機器、経路情報更新方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2011166692A true JP2011166692A (ja) 2011-08-25
JP5521613B2 JP5521613B2 (ja) 2014-06-18

Family

ID=44596797

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010030567A Expired - Fee Related JP5521613B2 (ja) 2010-02-15 2010-02-15 ネットワークシステム、ネットワーク機器、経路情報更新方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5521613B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013114490A1 (ja) 2012-02-02 2013-08-08 日本電気株式会社 コントローラ、負荷分散方法、プログラムを格納した非一時的なコンピュータ可読媒体、コンピュータシステム、制御装置
WO2013118687A1 (ja) 2012-02-10 2013-08-15 日本電気株式会社 コンピュータシステム、及び仮想ネットワークの可視化方法
WO2013118690A1 (ja) 2012-02-10 2013-08-15 日本電気株式会社 コンピュータシステム、及び仮想ネットワークの可視化方法
WO2014140945A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
WO2015001750A1 (ja) * 2013-07-02 2015-01-08 日本電気株式会社 通信システム
WO2016028555A1 (en) * 2014-08-22 2016-02-25 Honeywell International Inc. Hardware assist for redundant ethernet network
US9282035B2 (en) 2013-02-20 2016-03-08 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
JP2016100874A (ja) * 2014-11-26 2016-05-30 Necスペーステクノロジー株式会社 ルーティングテーブル設定装置、及び、ルーティングテーブル設定方法
US9584546B2 (en) 2012-10-01 2017-02-28 International Business Machines Corporation Providing services to virtual overlay network traffic

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251343A (ja) * 2000-03-06 2001-09-14 Fujitsu Ltd ラベルスイッチネットワークシステム
JP2004304547A (ja) * 2003-03-31 2004-10-28 Nippon Telegr & Teleph Corp <Ntt> パケット転送装置およびパケット転送システム
WO2009042919A2 (en) * 2007-09-26 2009-04-02 Nicira Networks Network operating system for managing and securing networks
WO2010103909A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251343A (ja) * 2000-03-06 2001-09-14 Fujitsu Ltd ラベルスイッチネットワークシステム
JP2004304547A (ja) * 2003-03-31 2004-10-28 Nippon Telegr & Teleph Corp <Ntt> パケット転送装置およびパケット転送システム
WO2009042919A2 (en) * 2007-09-26 2009-04-02 Nicira Networks Network operating system for managing and securing networks
WO2010103909A1 (ja) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow通信システムおよびOpenFlow通信方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9577941B2 (en) 2012-02-02 2017-02-21 Nec Corporation Controller, method for distributing load, non-transitory computer-readable medium storing program, computer system, and control device
WO2013114490A1 (ja) 2012-02-02 2013-08-08 日本電気株式会社 コントローラ、負荷分散方法、プログラムを格納した非一時的なコンピュータ可読媒体、コンピュータシステム、制御装置
WO2013118687A1 (ja) 2012-02-10 2013-08-15 日本電気株式会社 コンピュータシステム、及び仮想ネットワークの可視化方法
WO2013118690A1 (ja) 2012-02-10 2013-08-15 日本電気株式会社 コンピュータシステム、及び仮想ネットワークの可視化方法
US9425987B2 (en) 2012-02-10 2016-08-23 Nec Corporation Computer system and visualization method of virtual network
US9584546B2 (en) 2012-10-01 2017-02-28 International Business Machines Corporation Providing services to virtual overlay network traffic
US9282035B2 (en) 2013-02-20 2016-03-08 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
US9282036B2 (en) 2013-02-20 2016-03-08 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
US9282034B2 (en) 2013-02-20 2016-03-08 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
US9369298B2 (en) 2013-03-15 2016-06-14 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
US9276760B2 (en) 2013-03-15 2016-03-01 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
US9252965B2 (en) 2013-03-15 2016-02-02 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
US9237029B2 (en) 2013-03-15 2016-01-12 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
US9215087B2 (en) 2013-03-15 2015-12-15 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
US9397851B2 (en) 2013-03-15 2016-07-19 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
WO2014140945A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Directed route load/store packets for distributed switch initialization
JP2015012554A (ja) * 2013-07-02 2015-01-19 日本電気株式会社 通信システム
WO2015001750A1 (ja) * 2013-07-02 2015-01-08 日本電気株式会社 通信システム
WO2016028555A1 (en) * 2014-08-22 2016-02-25 Honeywell International Inc. Hardware assist for redundant ethernet network
US9450916B2 (en) 2014-08-22 2016-09-20 Honeywell International Inc. Hardware assist for redundant ethernet network
CN106576082A (zh) * 2014-08-22 2017-04-19 霍尼韦尔国际公司 用于冗余以太网网络的硬件协助
JP2016100874A (ja) * 2014-11-26 2016-05-30 Necスペーステクノロジー株式会社 ルーティングテーブル設定装置、及び、ルーティングテーブル設定方法

Also Published As

Publication number Publication date
JP5521613B2 (ja) 2014-06-18

Similar Documents

Publication Publication Date Title
JP5521613B2 (ja) ネットワークシステム、ネットワーク機器、経路情報更新方法、及びプログラム
JP5413737B2 (ja) ネットワークシステム、及び経路情報更新方法
US10728094B2 (en) Control traffic in software defined networks
JP5521614B2 (ja) ネットワークシステム、及びパケット投機転送方法
US10541920B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
JP5994851B2 (ja) 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム
EP2693708B1 (en) Network system and method for acquiring vlan tag information
EP2544409B1 (en) Generic monitoring packet handling mechanism for OpenFlow 1.1
CN102804715B (zh) 通信系统、节点、控制服务器以及通信方法
WO2013115177A1 (ja) ネットワークシステム、及びトポロジー管理方法
EP2814213A1 (en) Control device, communication system, communication method and program
JP5858141B2 (ja) 制御装置、通信装置、通信システム、通信方法及びプログラム
JP5858147B2 (ja) 通信システム、上位レイヤスイッチ、制御装置、スイッチ制御方法及びプログラム
JP2013539246A (ja) 制御装置、通信システム、通信方法、および通信プログラムを記録する記録媒体
US8526437B2 (en) Communication system and communication control device
EP3095216B1 (en) Single hop overlay architecture for line rate performance in campus networks
JPWO2014132967A1 (ja) 通信システム、スイッチ、制御装置、制御用チャネルの構築方法及びプログラム
JPWO2014129624A1 (ja) 制御装置、通信システム、経路切替方法及びプログラム
WO2014126094A1 (ja) 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム
JP5495150B2 (ja) ネットワークシステム、ネットワーク機器、及び経路制御方法
WO2013062070A1 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
WO2014175335A1 (ja) 制御装置、計算機システム、通信制御方法及びプログラム
JP6337551B2 (ja) ネットワークシステム、制御装置、ネットワーク制御方法およびプログラム
WO2015118811A1 (ja) 通信システム、パケット転送装置、パケット転送方法およびパケット転送用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131007

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131206

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: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140324

R150 Certificate of patent or registration of utility model

Ref document number: 5521613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees