JP5495150B2 - Network system, network device, and path control method - Google Patents

Network system, network device, and path control method Download PDF

Info

Publication number
JP5495150B2
JP5495150B2 JP2013503488A JP2013503488A JP5495150B2 JP 5495150 B2 JP5495150 B2 JP 5495150B2 JP 2013503488 A JP2013503488 A JP 2013503488A JP 2013503488 A JP2013503488 A JP 2013503488A JP 5495150 B2 JP5495150 B2 JP 5495150B2
Authority
JP
Japan
Prior art keywords
route
packet
flow entry
flow
switch
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.)
Expired - Fee Related
Application number
JP2013503488A
Other languages
Japanese (ja)
Other versions
JPWO2012121114A1 (en
Inventor
辰之助 勝倉
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 JP2013503488A priority Critical patent/JP5495150B2/en
Application granted granted Critical
Publication of JP5495150B2 publication Critical patent/JP5495150B2/en
Publication of JPWO2012121114A1 publication Critical patent/JPWO2012121114A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing

Description

本発明は、ネットワークシステムに関し、特にネットワーク通信の経路制御を行うコントローラに関する。   The present invention relates to a network system, and more particularly to a controller that performs network communication path control.

ネットワークシステムの制御方式の1つとして、外部の制御装置(コントロールプレーン)からノード装置(ユーザプレーン)を制御するCU(C:コントロールプレーン/U:ユーザプレーン)分離型ネットワークシステムが提案されている。   As one of the network system control methods, a CU (C: control plane / U: user plane) separated network system that controls a node device (user plane) from an external control device (control plane) has been proposed.

CU分離型ネットワークシステムの一例として、コントローラからスイッチを制御してネットワークの経路制御を行うオープンフロー(OpenFlow)技術を利用したオープンフローネットワークシステムが挙げられる。オープンフロー技術の詳細については、非特許文献1に記載されている。なお、オープンフローネットワークシステムは一例に過ぎない。   As an example of the CU separation type network system, there is an open flow network system using an open flow technology that controls a switch from a controller to control a network path. The details of the open flow technique are described in Non-Patent Document 1. The OpenFlow network system is only an example.

[オープンフローネットワークシステムの説明]
オープンフローネットワークシステムでは、OFC(OpenFlow Controller)等のコントローラが、OFS(OpenFlow Switch)等のスイッチ内のフローテーブル(Flow table)を操作することによりスイッチの挙動を制御する。
[Explanation of OpenFlow network system]
In the OpenFlow network system, a controller such as OFC (OpenFlow Controller) controls the behavior of a switch by operating a flow table (Flow table) in the switch such as OFS (OpenFlow Switch).

オープンフローネットワークシステムにおけるスイッチとは、オープンフローネットワークを形成し、コントローラの制御下にあるエッジスイッチ及びコアスイッチのことである。オープンフローネットワークにおける入力側エッジスイッチでのパケット(packet)の受信から出力側エッジスイッチでの送信までのパケットの一連の流れをフロー(Flow)と呼ぶ。   The switches in the OpenFlow network system are edge switches and core switches that form an OpenFlow network and are under the control of the controller. A series of packet flows from reception of a packet at the input side edge switch to transmission at the output side edge switch in the OpenFlow network is called a flow.

パケットは、フレーム(frame)と読み替えても良い。パケットとフレームの違いは、プロトコルが扱うデータの単位(PDU:Protocol Data Unit)の違いに過ぎない。パケットは、「TCP/IP」(Transmission Control Protocol/Internet Protocol)のPDUである。一方、フレームは、「Ethernet」(登録商標)のPDUである。   The packet may be read as a frame. The difference between a packet and a frame is only a difference in data units (PDU: Protocol Data Unit) handled by the protocol. The packet is a PDU of “TCP / IP” (Transmission Control Protocol / Internet Protocol). On the other hand, the frame is a PDU of “Ethernet” (registered trademark).

フローテーブルとは、所定のマッチ条件(ルール)に適合するパケット(packet)に対して行うべき動作(アクション)を定義したフローエントリ(Flow entry)が登録されたテーブルである。   The flow table is a table in which a flow entry (Flow entry) that defines an operation (action) to be performed on a packet that meets a predetermined matching condition (rule) is registered.

フローエントリのルールは、パケットの各プロトコル階層のヘッダ領域に含まれる宛先アドレス(Destination Address)、送信元アドレス(Source Address)、宛先ポート(Destination Port)、送信元ポート(Source Port)のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。なお、上記のアドレスには、MACアドレス(Media Access Control Address)やIPアドレス(Internet Protocol Address)を含むものとする。また、上記に加えて、入口ポート(Ingress Port)の情報も、フローエントリのルールとして使用可能である。また、フローエントリのルールとして、フローを示すパケットのヘッダ領域の値の一部(又は全部)を、正規表現やワイルドカード「*」等で表現したものを設定することもできる。   The rule of the flow entry is any one of a destination address (Destination Address), a source address (Source Address), a destination port (Destination Port), a source port (Source Port) included in the header area of each protocol layer of the packet, or Defined and distinguishable by various combinations using all. Note that the above addresses include a MAC address (Media Access Control Address) and an IP address (Internet Protocol Address). In addition to the above, information on an ingress port (Ingress Port) can also be used as a rule for a flow entry. In addition, as a rule of the flow entry, a part (or all) of the header area value of the packet indicating the flow can be set by a regular expression, a wild card “*”, or the like.

フローエントリのアクションは、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を示す。例えば、スイッチは、フローエントリのアクションに出力ポートの識別情報(出力ポート番号等)が示されていれば、これに該当するポートにパケットを出力し、出力ポートの識別情報が示されていなければ、パケットを破棄する。或いは、スイッチは、フローエントリのアクションにヘッダ情報が示されていれば、当該ヘッダ情報に基づいてパケットのヘッダを書き換える。   The action of the flow entry indicates operations such as “output to a specific port”, “discard”, and “rewrite header”. For example, if the identification information (output port number, etc.) of the output port is indicated in the action of the flow entry, the switch outputs a packet to the corresponding port, and if the identification information of the output port is not indicated , Discard the packet. Alternatively, if the header information is indicated in the action of the flow entry, the switch rewrites the header of the packet based on the header information.

オープンフローネットワークシステムにおけるスイッチは、フローエントリのルールに適合するパケット群(パケット系列)に対して、フローエントリのアクションを実行する。   The switch in the OpenFlow network system executes a flow entry action on a packet group (packet sequence) that conforms to the rules of the flow entry.

オープンフローネットワークシステムのような、「パケット転送の機能」と「経路制御の機能」をネットワーク機器とコントローラとに分離したネットワークにおいて、パケットの経路を計算し設定を行うコントローラに障害が発生した場合、パケットの転送処理を行うネットワーク機器は、パケットを転送することができなくなる。或いは、他のコントローラに再度、経路計算を依頼しなければならなくなるため、処理速度が非常に遅くなる。   In a network that separates the "packet transfer function" and the "route control function" into a network device and a controller, such as the OpenFlow network system, if a failure occurs in the controller that calculates and sets the packet path, A network device that performs packet transfer processing cannot transfer packets. Alternatively, the processing speed becomes very slow because it is necessary to request another controller for route calculation again.

このため、制御機能を担当するコントローラの耐障害性を考慮すると、コントローラの多重化が考えられる。   For this reason, considering the fault tolerance of the controller in charge of the control function, it is possible to multiplex the controllers.

また、耐障害性や処理速度の観点から、複数のコントローラが同期を取ることなく独立してパケットの経路計算とネットワーク機器への設定を行うことが考えられる。   Also, from the viewpoint of fault tolerance and processing speed, it is conceivable that a plurality of controllers independently perform packet route calculation and setting to network devices without synchronization.

しかし、可用性と処理速度の観点から、複数のコントローラが同期を取ることなく独立して経路を計算し、ネットワーク機器に設定を行う場合、同期を取らないためにネットワーク機器への設定指示が競合することによって、ネットワーク機器の設定情報に不整合が生じる可能性がある。その結果、ネットワーク上に閉路(ループ)が形成され、送信先にパケットが届かなくなる可能性がある。   However, from the viewpoints of availability and processing speed, when multiple controllers calculate routes independently without synchronization and set the network device, the setting instructions to the network device conflict because they do not synchronize. As a result, inconsistency may occur in the setting information of the network device. As a result, a closed circuit (loop) is formed on the network, and the packet may not reach the transmission destination.

関連する技術として、特許文献1(特開2006−020054号公報)にネットワーク接続装置、経路情報配布プログラム及び経路情報配布方法が開示されている。この関連技術では、子ルータに割り当てられたプレフィックスと割り当て先の子ルータの情報と割り当て管理表とに基づいて経路情報更新通知メッセージを生成する。このメッセージは経路情報の更新(追加、削除)可能性を伝えるものである。既にプレフィックスを割り当て済のルータに対して、経路情報更新通知を送信する。   As a related technique, Japanese Patent Application Laid-Open No. 2006-020054 discloses a network connection device, a route information distribution program, and a route information distribution method. In this related technique, a route information update notification message is generated based on a prefix assigned to a child router, information on an assignment destination child router, and an assignment management table. This message conveys the possibility of updating (adding or deleting) route information. A route information update notification is transmitted to a router to which a prefix has already been assigned.

また、特許文献2(特開2007−096912号公報)にネットワーク中継器が開示されている。この関連技術では、ネットワークプロセッサ(NP)より経路情報変更パケットを受け取り、そのイベントを解釈する。イベントの解釈は該経路情報変更パケットのヘッダ情報等により行う。イベント情報が追加であった場合には、経路情報追加処理を実施し、変更であった場合には、経路情報変更処理を、削除であった場合には、経路情報削除処理をそれぞれ実施する。ネットワークプロセッサ(NP)からの経路情報変更パケット全てについて処理が終わったら、ネットワークプロセッサ(NP)へのリクエスト送出処理を起動するためのタイマーをセットする。   Patent Document 2 (Japanese Patent Laid-Open No. 2007-096912) discloses a network repeater. In this related technology, a route information change packet is received from a network processor (NP) and the event is interpreted. The interpretation of the event is performed based on the header information of the route information change packet. When the event information is added, a route information addition process is executed. When the event information is changed, a route information change process is executed. When the event information is deleted, a route information deletion process is executed. When the processing is completed for all the route information change packets from the network processor (NP), a timer for starting the request transmission processing to the network processor (NP) is set.

特開2006−020054号公報Japanese Patent Laid-Open No. 2006-020054 特開2007−096912号公報JP 2007-096912 A

“OpenFlow Switch Specification, Version 1.0.0”,[online],December 31,2009,インターネット(URL:http://www.openflowswitch.org/documents/openflow−spec−v1.0.0.pdf)"OpenFlow Switch Specification, Version 1.0.0", [online], December 31, 2009, Internet (URL: http://www.openflowswitch.org/documents/openflow-spec.1).

上記の問題を解決するために、複数のコントローラ間で同期を取ることなく独立して経路を計算し、ネットワーク機器に設定を行う場合において、パケットが送信元から送信先へ転送されることを保証する手法が求められている。   In order to solve the above problem, it is guaranteed that packets are transferred from the source to the destination when the route is calculated independently without synchronization between multiple controllers and set in the network device. There is a need for a technique to do this.

このような手法の1つとして、ネットワーク機器がパケットに情報を付加し、経路上のネットワーク機器がその情報を読み取ることで、正しい経路にパケットを転送する手法が考えられる。   As one of such methods, a method is conceivable in which a network device adds information to a packet, and a network device on the route reads the information to forward the packet to the correct route.

しかし、ネットワーク機器がパケットの情報を変更する場合、パケットへの処理のオーバヘッドや、情報付加による転送処理のオーバヘッドの問題が発生する可能性もある。   However, when the network device changes the information of the packet, there may be a problem of processing overhead on the packet or transfer processing overhead due to information addition.

そこで、本発明では、パケットが送信元から送信先へ転送されることを保証しつつ、ネットワーク機器がパケット自体に対する変更を行わない手法を提案する。   Therefore, the present invention proposes a technique in which the network device does not change the packet itself while ensuring that the packet is transferred from the transmission source to the transmission destination.

本発明に係るネットワークシステムは、複数のネットワーク機器と、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリを、経路上のネットワーク機器のフローテーブルに設定する複数のコントローラとを含む。該経路上のネットワーク機器は、該複数のコントローラの中で最も早く該経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、該採用された経路のフローエントリに従って、パケットを転送する。   The network system according to the present invention includes a plurality of network devices, a plurality of controllers that set a flow entry in which rules and operations for uniformly controlling packets as flows are defined in a flow table of network devices on a route, including. The network device on the route adopts the route set by the controller that has completed the setting of the flow entry of all the network devices on the route earliest among the plurality of controllers, and sets the route set by the other controller. The packet is not adopted and the packet is transferred according to the flow entry of the adopted route.

本発明に係るネットワーク機器は、複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定する装置と、該複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、該採用された経路のフローエントリに従って、パケットを転送する装置とを具備する。   A network device according to the present invention includes a device that sets a flow entry in a flow table in which rules and operations for uniformly controlling a packet as a flow are defined in a flow table based on control from each of a plurality of controllers, Adopt the route set by the controller that completed the setting of the flow entry of all the network devices on the route the earliest among the controllers of the other, and reject the route set by the other controller, and the flow of the adopted route And a device for transferring a packet according to the entry.

本発明に係る経路制御方法は、ネットワーク機器により実施される経路制御方法であって、複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定することと、該複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、該採用された経路のフローエントリに従って、パケットを転送することとを含む。   The route control method according to the present invention is a route control method implemented by a network device, and rules and operations for uniformly controlling packets as a flow are defined based on control from each of a plurality of controllers. Set the flow entry in the flow table, adopt the route set by the controller that completed the flow entry setting of all the network devices on the route earliest among the multiple controllers, and set other controllers Including transferring the packet in accordance with the flow entry of the adopted route.

本発明に係るプログラムは、複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定するステップと、該複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、該採用された経路のフローエントリに従って、パケットを転送するステップとをネットワーク機器に実行させるためのプログラムである。   The program according to the present invention includes a step of setting, in the flow table, a flow entry in which rules and operations for uniformly controlling a packet as a flow are defined based on control from each of a plurality of controllers. Adopts the route set by the controller that has completed the setting of the flow entry of all the network devices on the route earliest among the controllers, disallows the route set by the other controller, and the flow entry of the adopted route The program for causing the network device to execute the step of transferring packets according to the above.

すなわち、本発明に係るプログラムは、上記の経路制御方法における処理を、ネットワーク機器に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。   That is, the program according to the present invention is a program for causing a network device to execute the processing in the above path control method. The program according to the present invention can be stored in a storage device or a storage medium.

コントローラを多重化/冗長化した際の不採用経路の削除が可能になる。   It is possible to delete a non-adopted route when the controller is multiplexed / redundant.

本発明に係るネットワークシステムの構成例を示す図である。It is a figure which shows the structural example of the network system which concerns on this invention. 該ネットワークシステムにおけるコントローラの構成例を示す図である。It is a figure which shows the structural example of the controller in this network system. 該ネットワークシステムにおけるスイッチの構成例を示す図である。It is a figure which shows the structural example of the switch in this network system. 該ネットワークシステムにおけるフローエントリの構成例を示す図である。It is a figure which shows the structural example of the flow entry in this network system. 該ネットワークシステムにおける経路削除パケットの構成例を示す図である。It is a figure which shows the structural example of the path | route deletion packet in this network system. 1stパケット受信時の動作を説明するための図である。It is a figure for demonstrating the operation | movement at the time of 1st packet reception. 複数のコントローラが設定した経路について説明するための図である。It is a figure for demonstrating the path | route which the some controller set. 採用された経路の順について説明するための図である。It is a figure for demonstrating the order of the employ | adopted path | route. 不採用経路に経路削除パケットが流れる状況について説明するための図である。It is a figure for demonstrating the condition where a path | route deletion packet flows into a non-adopted path | route. 不採用経路の削除処理全体の手順を説明するための図である。It is a figure for demonstrating the procedure of the whole deletion process of a non-adopting path | route. 不採用経路の設定前に、不採用経路の削除処理が開始された場合について説明するための図である。It is a figure for demonstrating the case where the deletion process of a non-adopting route is started before the setting of a non-adopting route. 本発明の実施例を説明するための図である。It is a figure for demonstrating the Example of this invention.

本発明は、CU分離型ネットワークシステムを対象としている。ここでは、CU分離型ネットワークシステムの1つであるオープンフローネットワークシステムを例に説明する。但し、実際には、オープンフローネットワークシステムに限定されない。   The present invention is directed to a CU separation type network system. Here, an OpenFlow network system, which is one of CU separation type network systems, will be described as an example. However, actually, it is not limited to the open flow network system.

<第1実施形態>
以下に、本発明の第1実施形態について添付図面を参照して説明する。
<First Embodiment>
Hereinafter, a first embodiment of the present invention will be described with reference to the accompanying drawings.

[システム構成]
図1を参照して、本発明に係るネットワークシステムの構成例について説明する。
[System configuration]
A configuration example of a network system according to the present invention will be described with reference to FIG.

本発明に係るネットワークシステムは、コントローラ10(10−i、i=1〜x:xは台数)と、スイッチ20(20−j、j=1〜y:yは台数)と、ホスト30(30−k、k=1〜z:zは台数)を含む。   The network system according to the present invention includes a controller 10 (10-i, i = 1 to x: x is the number), a switch 20 (20-j, j = 1 to y: y is the number), and a host 30 (30 -K, k = 1 to z: z is the number of units).

コントローラ10(10−i、i=1〜x)の各々は、ネットワーク機器におけるパケットの転送経路等を制御する制御装置である。   Each of the controllers 10 (10-i, i = 1 to x) is a control device that controls a packet transfer path and the like in the network device.

スイッチ20(20−j、j=1〜y)の各々は、パケットを転送するネットワーク機器である。   Each of the switches 20 (20-j, j = 1 to y) is a network device that transfers a packet.

ホスト30(30−k、k=1〜z)の各々は、パケットを送受信する端末である。   Each of the hosts 30 (30-k, k = 1 to z) is a terminal that transmits and receives packets.

[ハードウェアの例示]
以下に、本発明に係るネットワークシステムを実現するための具体的なハードウェアの例について説明する。
[Hardware example]
Hereinafter, specific examples of hardware for realizing the network system according to the present invention will be described.

コントローラ10(10−i、i=1〜x)の例として、PC(パソコン)、アプライアンス(appliance)、シンクライアントサーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。   As an example of the controller 10 (10-i, i = 1 to x), a computer such as a PC (personal computer), an appliance, a thin client server, a workstation, a mainframe, and a supercomputer is assumed.

スイッチ20(20−j、j=1〜y)の例として、ネットワークスイッチ(network switch)を想定している。他にも、ルータ(router)、プロキシ(proxy)、ゲートウェイ(gateway)、ファイアウォール、ロードバランサ、帯域制御装置、セキュリティ監視制御装置、基地局、アクセスポイント、或いは、複数の通信ポートを有する計算機等が考えられる。   As an example of the switch 20 (20-j, j = 1 to y), a network switch is assumed. In addition, a router, a proxy, a gateway, a firewall, a load balancer, a bandwidth control device, a security monitoring control device, a base station, an access point, or a computer having a plurality of communication ports Conceivable.

ホスト30(30−k、k=1〜z)の例として、上記の計算機を想定している。他にも、携帯電話機、カーナビ(カーナビゲーションシステム)、携帯型ゲーム機、家庭用ゲーム機、携帯型音楽プレーヤー、ハンディターミナル、ガジェット(電子機器)、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電(information home appliance)、OA(Office Automation)機器等が考えられる。ホスト30(30−k、k=1〜z)は、車両や船舶、航空機等の移動体に搭載されていても良い。   The above computer is assumed as an example of the host 30 (30-k, k = 1 to z). In addition, mobile phones, car navigation systems (car navigation systems), portable game consoles, home game consoles, portable music players, handy terminals, gadgets (electronic devices), interactive TVs, digital tuners, digital recorders, information appliances (Information home application), OA (Office Automation) equipment, etc. can be considered. The host 30 (30-k, k = 1 to z) may be mounted on a moving body such as a vehicle, a ship, or an aircraft.

なお、ホスト30(30−k、k=1〜z)は、オープンフロー非対応のネットワークにおけるスイッチ等の中継装置でも良い。すなわち、スイッチ20(20−j、j=1〜y)により形成されるネットワークが、オープンフロー対応のネットワーク(オープンフローネットワークシステム)であれば良い。ホスト30(30−k、k=1〜z)のいずれかに接続されるスイッチ20(20−j、j=1〜y)は、オープンフローネットワークシステムにおけるエッジスイッチに相当するため、配下の装置が端末でも外部ネットワークの中継装置でも同様に処理できる。   The host 30 (30-k, k = 1 to z) may be a relay device such as a switch in a network that does not support OpenFlow. That is, the network formed by the switches 20 (20-j, j = 1 to y) may be any network that supports OpenFlow (OpenFlow network system). Since the switch 20 (20-j, j = 1 to y) connected to any one of the hosts 30 (30-k, k = 1 to z) corresponds to an edge switch in the OpenFlow network system, the subordinate apparatus Can be processed in the same way by a terminal or an external network relay device.

また、コントローラ10(10−i、i=1〜x)、スイッチ20(20−j、j=1〜y)、及びホスト30(30−k、k=1〜z)は、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン(Virtual Machine(VM))でも良い。   The controller 10 (10-i, i = 1 to x), the switch 20 (20-j, j = 1 to y), and the host 30 (30-k, k = 1 to z) are mounted on a computer or the like. It may be an expansion board or a virtual machine (Virtual Machine (VM)) built on a physical machine.

図示しないが、コントローラ10(10−i、i=1〜x)、スイッチ20(20−j、j=1〜y)、及びホスト30(30−k、k=1〜z)は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、該プログラムや各種データを記憶するメモリと、ネットワークとの通信に用いられるインタフェースによって実現される。   Although not shown, the controller 10 (10-i, i = 1 to x), the switch 20 (20-j, j = 1 to y), and the host 30 (30-k, k = 1 to z) are programmed. This is realized by a processor that drives based on this and executes predetermined processing, a memory that stores the program and various data, and an interface used for communication with the network.

上記のプロセッサの例として、CPU(Central Processing Unit)、ネットワークプロセッサ(NP:Network Processor)、マイクロプロセッサ(microprocessor)、マイクロコントローラ(microcontroller)、或いは、専用の機能を有する半導体集積回路(LSI:Large Scale Integration)等が考えられる。   Examples of the processor include a CPU (Central Processing Unit), a network processor (NP), a microprocessor, a microcontroller (microcontroller), or a semiconductor integrated circuit (LSI: Large Scale) having a dedicated function. Integration) or the like.

上記のメモリの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、又は、DVD(Digital Versatile Disk)等のリムーバブルディスクや、SDメモリカード(Secure Digital memory card)等の記憶媒体(メディア)等が考えられる。また、レジスタ(register)でも良い。   Examples of the memory include semiconductor storage devices such as a RAM (Random Access Memory), a ROM (Read Only Memory), an EEPROM (Electrically Erasable and Programmable Read Only Memory), a flash memory, and an HDD (Hold SMD). An auxiliary storage device such as State Drive), a removable disk such as a DVD (Digital Versatile Disk), a storage medium such as an SD memory card (Secure Digital memory card), or the like is conceivable. A register may also be used.

なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の1チップ化が進んでいる。従って、上記の計算機等に搭載される1チップマイコンが、プロセッサ及びメモリを備えている事例が考えられる。   Note that the processor and the memory may be integrated. For example, in recent years, a single chip such as a microcomputer has been developed. Therefore, a case where a one-chip microcomputer mounted on the above-described computer or the like includes a processor and a memory can be considered.

上記のインタフェースの例として、ネットワーク通信に対応した基板(マザーボード、I/Oボード)やチップ等の半導体集積回路、NIC(Network Interface Card)等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口(コネクタ)等の通信ポート等が考えられる。   Examples of the interface include semiconductor integrated circuits such as substrates (motherboards and I / O boards) and chips that support network communication, network adapters such as NIC (Network Interface Card), and similar expansion cards and communication devices such as antennas. A communication port such as a connection port (connector) is conceivable.

また、ネットワークの例として、インターネット、LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)、バックボーン(Backbone)、ケーブルテレビ(CATV)回線、固定電話網、携帯電話網、WiMAX(IEEE 802.16a)、3G(3rd Generation)、専用線(lease line)、IrDA(Infrared Data Association)、Bluetooth(登録商標)、シリアル通信回線、データバス等が考えられる。   Examples of the network include the Internet, a LAN (Local Area Network), a wireless LAN (Wireless LAN), a WAN (Wide Area Network), a backbone (Backbone), a cable television (CATV) line, a fixed telephone network, a mobile phone network, WiMAX (IEEE 802.16a), 3G (3rd Generation), dedicated line (lease line), IrDA (Infrared Data Association), Bluetooth (registered trademark), serial communication line, data bus, and the like can be considered.

但し、実際には、これらの例に限定されない。   However, actually, it is not limited to these examples.

[コントローラの詳細]
図2を参照して、コントローラ10(10−i、i=1〜x)の構成例について説明する。
[Controller details]
A configuration example of the controller 10 (10-i, i = 1 to x) will be described with reference to FIG.

コントローラ10(10−i、i=1〜x)の各々は、経路計算部11と、ネットワーク管理部12と、パケット処理部13を備える。   Each of the controllers 10 (10-i, i = 1 to x) includes a route calculation unit 11, a network management unit 12, and a packet processing unit 13.

経路計算部11は、ネットワーク管理部12からスイッチ20(20−j、j=1〜y)のトポロジー情報を受け取り、パケットの経路を計算し、スイッチ20(20−j、j=1〜y)に設定を行う。   The route calculation unit 11 receives the topology information of the switch 20 (20-j, j = 1 to y) from the network management unit 12, calculates the route of the packet, and switches 20 (20-j, j = 1 to y). Set to.

ネットワーク管理部12は、スイッチ20(20−j、j=1〜y)のトポロジー情報や、経路計算部11で計算した経路の管理を行う。ここでは、ネットワーク管理部12は、トポロジー情報や計算した経路を基に、オープンフロープロトコルに準拠した制御メッセージにより、スイッチ20(20−j、j=1〜y)の挙動を制御する。   The network management unit 12 manages the topology information of the switch 20 (20-j, j = 1 to y) and the route calculated by the route calculation unit 11. Here, the network management unit 12 controls the behavior of the switch 20 (20-j, j = 1 to y) by a control message based on the OpenFlow protocol based on the topology information and the calculated route.

パケット処理部13は、スイッチ20(20−j、j=1〜y)から転送されたパケットの受信、パケットの情報解析、経路計算部11へ解析結果の送信を行う。   The packet processing unit 13 receives a packet transferred from the switch 20 (20-j, j = 1 to y), analyzes the packet information, and transmits the analysis result to the route calculation unit 11.

なお、経路計算部11、ネットワーク管理部12、及びパケット処理部13は、モジュール(module)又はコンポーネント(component)でも良い。   Note that the route calculation unit 11, the network management unit 12, and the packet processing unit 13 may be modules or components.

コントローラ10(10−i、i=1〜x)は、複数のスイッチ20(20−j、j=1〜y)をネットワーク管理部12によって管理することができ、スイッチ20(20−j、j=1〜y)と専用線、若しくは通常のネットワークのセキュアチャネル(Secure Channel)で接続されている。   The controller 10 (10-i, i = 1 to x) can manage the plurality of switches 20 (20-j, j = 1 to y) by the network management unit 12, and the switch 20 (20-j, j = 1 to y) and a dedicated line or a secure channel (Secure Channel) of a normal network.

[スイッチの詳細]
図3を参照して、スイッチ20(20−j、j=1〜y)の構成例について説明する。
[Switch details]
A configuration example of the switch 20 (20-j, j = 1 to y) will be described with reference to FIG.

スイッチ20(20−j、j=1〜y)の各々は、フローテーブル21と、フローテーブル管理部22と、パケット処理部23を備える。   Each of the switches 20 (20-j, j = 1 to y) includes a flow table 21, a flow table management unit 22, and a packet processing unit 23.

フローテーブル21は、経路情報となるフローエントリを管理する。フローテーブル21は、記憶装置や記憶媒体に格納することができる。   The flow table 21 manages a flow entry serving as route information. The flow table 21 can be stored in a storage device or a storage medium.

フローテーブル管理部22は、コントローラ10(10−i、i=1〜x)からの制御メッセージに応じて、フローテーブル21のフローエントリを追加・更新・削除する。フローテーブル管理部22は、フローテーブル21のフローエントリの内容を確認することもできる。   The flow table management unit 22 adds / updates / deletes the flow entry of the flow table 21 according to the control message from the controller 10 (10-i, i = 1 to x). The flow table management unit 22 can also check the contents of the flow entry in the flow table 21.

パケット処理部23は、パケットを処理する。すなわち、パケット処理部23は、スイッチ20(20−j、j=1〜y)内部において、パケットに関する処理全般を行う。   The packet processing unit 23 processes a packet. That is, the packet processing unit 23 performs overall processing related to packets in the switch 20 (20-j, j = 1 to y).

パケット処理部23は、パケット受信部231と、パケット転送部232と、パケット破棄部233と、経路削除パケット生成部234と、経路削除パケット解析部235を備える。   The packet processing unit 23 includes a packet reception unit 231, a packet transfer unit 232, a packet discard unit 233, a route deletion packet generation unit 234, and a route deletion packet analysis unit 235.

パケット受信部231は、パケットを受信し解析する。パケット受信部231は、パケット解析として、パケットのヘッダ情報を参照し、フローテーブル21に該パケットのヘッダ情報と適合するフローエントリがあるか否かを確認する。適合するフローエントリがある場合、該フローエントリの内容が経路上の次段のノードに転送する旨であれば、パケット受信部231は、パケット転送部232にパケットを渡し、経路上の次段のノードに転送する。また、該フローエントリの内容がパケットを破棄(廃棄)する旨であれば、パケット受信部231は、パケット破棄部233にパケットを渡し、パケットを破棄する。更に、適合するフローエントリがない場合、パケット受信部231は、パケット転送部232にパケットを渡し、コントローラ10(10−i、i=1〜x)に該パケットの経路を問い合わせる。   The packet receiving unit 231 receives and analyzes the packet. For packet analysis, the packet receiving unit 231 refers to the header information of the packet and checks whether there is a flow entry in the flow table 21 that matches the header information of the packet. If there is a matching flow entry, if the content of the flow entry is to be transferred to the next node on the route, the packet receiving unit 231 passes the packet to the packet transfer unit 232, and the next step on the route. Transfer to node. If the content of the flow entry is to discard (discard) the packet, the packet receiving unit 231 passes the packet to the packet discarding unit 233 and discards the packet. Further, if there is no matching flow entry, the packet receiving unit 231 passes the packet to the packet transfer unit 232 and inquires about the route of the packet to the controller 10 (10-i, i = 1 to x).

パケット転送部232は、該スイッチに隣接する他のスイッチ20(20−j、j=1〜y)、コントローラ10(10−i、i=1〜x)、ホスト30(30−k、k=1〜z)等にパケットを転送する。パケット転送部232は、出力ポート毎に設けられ、受け取ったパケットを該出力ポートから出力する。   The packet transfer unit 232 includes another switch 20 (20-j, j = 1 to y) adjacent to the switch, the controller 10 (10-i, i = 1 to x), and the host 30 (30-k, k = 1 to z) and the like are transferred. The packet transfer unit 232 is provided for each output port, and outputs the received packet from the output port.

パケット破棄部233は、受け取ったパケットを破棄する。なお、パケット破棄部233は、通常パケットのみならず、後述する経路削除パケットも破棄することができる。   The packet discard unit 233 discards the received packet. Note that the packet discard unit 233 can discard not only the normal packet but also a route deletion packet described later.

経路削除パケット生成部234は、不採用経路を削除するための経路削除パケットを生成する。   The route deletion packet generation unit 234 generates a route deletion packet for deleting the unaccepted route.

経路削除パケット解析部235は、受信した経路削除パケットを解析する。経路削除パケット解析部235は、パケット解析として、経路削除パケットのヘッダ情報を参照し、フローテーブル21に経路削除パケットのヘッダ情報と適合する不採用経路のフローエントリがあるか否かを確認する。適合するフローエントリがある場合、該フローエントリの内容が経路上の次段のノードに転送する旨であれば、パケット受信部231は、パケット転送部232に経路削除パケットを渡し、経路上の次段のノードに転送する。また、該フローエントリの内容が経路削除パケットを破棄する旨であれば、パケット受信部231は、パケット破棄部233に経路削除パケットを渡し、経路削除パケットを破棄する。更に、適合するフローエントリがない場合、経路削除パケット解析部235は、経路削除パケットを一時的に保持し、所定の時間の経過後に、パケット破棄部233に経路削除パケットを渡し、経路削除パケットを破棄する。経路削除パケット解析部235は、パケット受信部231と一体化していても良い。   The route deletion packet analysis unit 235 analyzes the received route deletion packet. As a packet analysis, the route deletion packet analysis unit 235 refers to the header information of the route deletion packet, and checks whether there is a flow entry of a rejected route that matches the header information of the route deletion packet in the flow table 21. If there is a matching flow entry, and if the content of the flow entry is to be transferred to the next node on the route, the packet receiving unit 231 passes the route deletion packet to the packet transfer unit 232, and the next on the route. Transfer to the node of the stage. If the content of the flow entry is to discard the route deletion packet, the packet reception unit 231 passes the route deletion packet to the packet discard unit 233 and discards the route deletion packet. Further, when there is no matching flow entry, the route deletion packet analysis unit 235 temporarily holds the route deletion packet, passes the route deletion packet to the packet discard unit 233 after a predetermined time elapses, and receives the route deletion packet. Discard. The route deletion packet analysis unit 235 may be integrated with the packet reception unit 231.

なお、フローテーブル管理部22や、パケット処理部23(パケット受信部231、パケット転送部232、パケット破棄部233、経路削除パケット生成部234、及び経路削除パケット解析部235)は、モジュール(module)又はコンポーネント(component)でも良い。   The flow table management unit 22 and the packet processing unit 23 (the packet reception unit 231, the packet transfer unit 232, the packet discard unit 233, the route deletion packet generation unit 234, and the route deletion packet analysis unit 235) are modules. Alternatively, it may be a component.

[フローテーブルの詳細]
フローテーブル21は、フローエントリ211を保持する。すなわち、フローテーブル21は、フローエントリ211の集合である。フローエントリ211は、各フローに対応する経路情報である。
[Flow table details]
The flow table 21 holds a flow entry 211. That is, the flow table 21 is a set of flow entries 211. The flow entry 211 is route information corresponding to each flow.

[フローエントリの詳細]
図4を参照して、フローエントリ211の構成例について説明する。
[Flow entry details]
A configuration example of the flow entry 211 will be described with reference to FIG.

フローエントリ211は、フローヘッダ(Flow header)2111と、アクション(Action)2112と、経路ID2113と、コントローラID2114を含む。   The flow entry 211 includes a flow header 2111, an action 2112, a route ID 2113, and a controller ID 2114.

フローヘッダ2111は、送信元IPアドレスや送信先IPアドレス等のフローの基本情報を記述するための領域(フィールド)である。すなわち、フローヘッダ2111は、フローエントリ211のルールを記述するための領域である。   The flow header 2111 is an area (field) for describing basic flow information such as a transmission source IP address and a transmission destination IP address. That is, the flow header 2111 is an area for describing the rule of the flow entry 211.

アクション2112は、フローの処理方法を記述するための領域である。すなわち、アクション2112は、フローエントリ211のアクションを記述するための領域である。   The action 2112 is an area for describing a flow processing method. That is, the action 2112 is an area for describing the action of the flow entry 211.

経路ID2113は、経路毎に一意な値(経路の識別子)を記述するための領域である。   The route ID 2113 is an area for describing a unique value (route identifier) for each route.

コントローラID2114は、フローエントリ211を設定したコントローラ10(10−i、i=1〜x)の識別子を記述するための領域である。   The controller ID 2114 is an area for describing an identifier of the controller 10 (10-i, i = 1 to x) in which the flow entry 211 is set.

[経路削除パケットの詳細]
図5を参照して、本発明で定義する経路削除パケットについて説明する。
[Details of route deletion packet]
With reference to FIG. 5, the route deletion packet defined in the present invention will be described.

経路削除パケット50は、スイッチ20(20−j、j=1〜y)のフローテーブル21を構成するフロー毎のフローエントリ211を削除するための制御メッセージのパケットである。   The route deletion packet 50 is a control message packet for deleting the flow entry 211 for each flow constituting the flow table 21 of the switch 20 (20-j, j = 1 to y).

経路削除パケット50は、フローヘッダ51と、経路ID52と、コントローラID53を含む。   The route deletion packet 50 includes a flow header 51, a route ID 52, and a controller ID 53.

フローヘッダ51は、図4に示したフローヘッダ2111と同様、送信元IPアドレスや送信先IPアドレス等のフローの基本情報を記述するための領域である。   The flow header 51 is an area for describing basic information of a flow such as a transmission source IP address and a transmission destination IP address, like the flow header 2111 shown in FIG.

経路ID52は、図4に示した経路ID2113と同様、経路毎に一意な値(経路の識別子)を記述するための領域である。   The route ID 52 is an area for describing a unique value (route identifier) for each route, like the route ID 2113 shown in FIG.

コントローラID53は、図4に示したコントローラID2114と同様、フローエントリ211を設定したコントローラ10(10−i、i=1〜x)の識別子を記述するための領域である。   The controller ID 53 is an area for describing an identifier of the controller 10 (10-i, i = 1 to x) in which the flow entry 211 is set, similarly to the controller ID 2114 shown in FIG.

[本発明における経路制御処理]
図6を参照して、図1のような構成で、以下の(1)から(6)の順に、1stパケット(First Packet)受信時の動作について説明する。
[Route Control Processing in the Present Invention]
With reference to FIG. 6, the operation at the time of receiving the first packet (First Packet) will be described in the following order (1) to (6) with the configuration shown in FIG.

(1)ステップS1
スイッチ20(20−j、j=1〜y)は、フローテーブル21に情報のないパケット(1stパケット)が届いた場合、複数のコントローラ10(10−i、i=1〜x)に1stパケットを転送する。すなわち、スイッチ20(20−j、j=1〜y)は、受信パケットのヘッダ情報と適合するフローテーブル21のフローエントリ211がない場合、該パケットを1stパケットと判断して、複数のコントローラ10(10−i、i=1〜x)に該1stパケットを転送する。
(1) Step S1
When the switch 20 (20-j, j = 1 to y) receives a packet (1st packet) without information in the flow table 21, the first packet is sent to the plurality of controllers 10 (10-i, i = 1 to x). Forward. That is, when there is no flow entry 211 of the flow table 21 that matches the header information of the received packet, the switch 20 (20-j, j = 1 to y) determines that the packet is the 1st packet, and the plurality of controllers 10 The 1st packet is transferred to (10-i, i = 1 to x).

(2)ステップS2
コントローラ10(10−i、i=1〜x)は、1stパケットを受け取った場合、経路を計算し、経路上のスイッチ20(20−j、j=1〜y)に設定する。
(2) Step S2
When receiving the 1st packet, the controller 10 (10-i, i = 1 to x) calculates a route and sets the switch 20 (20-j, j = 1 to y) on the route.

(3)ステップS3
コントローラ10(10−i、i=1〜x)は、スイッチ20(20−j、j=1〜y)の設定を終えた場合、1stパケットの送信元であるスイッチ20(20−j、j=1〜y)に応答する。
(3) Step S3
When the controller 10 (10-i, i = 1 to x) finishes setting of the switch 20 (20-j, j = 1 to y), the switch 20 (20-j, j) that is the transmission source of the 1st packet. = 1 to y).

(4)ステップS4
スイッチ20(20−j、j=1〜y)は、最も早く応答したコントローラ10(10−i、i=1〜x)ではないコントローラ10(10−i、i=1〜x)に不採用通知を出す。
(4) Step S4
The switch 20 (20-j, j = 1 to y) is not adopted for the controller 10 (10-i, i = 1 to x) which is not the controller 10 (10-i, i = 1 to x) which responded earliest. Send notifications.

(5)ステップS5
スイッチ20(20−j、j=1〜y)は、不採用となったコントローラ10(10−i、i=1〜x)の設定したフローエントリ211の削除処理を行う。
(5) Step S5
The switch 20 (20-j, j = 1 to y) performs the deletion process of the flow entry 211 set by the controller 10 (10-i, i = 1 to x) which has been rejected.

(6)ステップS6
スイッチ20(20−j、j=1〜y)は、採用された経路のフローエントリ211に従って、パケットを処理する。
(6) Step S6
The switch 20 (20-j, j = 1 to y) processes the packet according to the flow entry 211 of the adopted route.

[ステップS1の詳細]
スイッチ20(20−j、j=1〜y)は、フローテーブル21に情報のないパケット(1stパケット)が届いた場合、複数のコントローラ10(10−i、i=1〜x)に1stパケットを転送する。
[Details of Step S1]
When the switch 20 (20-j, j = 1 to y) receives a packet (1st packet) without information in the flow table 21, the first packet is sent to the plurality of controllers 10 (10-i, i = 1 to x). Forward.

例えば、スイッチ20−1がホスト30−1からパケットを受け取るとき、パケット処理部23は、通常パケットか経路削除パケット50かの判定を行う。   For example, when the switch 20-1 receives a packet from the host 30-1, the packet processing unit 23 determines whether the packet is a normal packet or a route deletion packet 50.

パケットが通常パケットであるとき、パケット処理部23は、そのパケットのヘッダ情報が、フローテーブル21に設定されているフローエントリ211のフローヘッダ2111と適合するか確認する。   When the packet is a normal packet, the packet processing unit 23 checks whether the header information of the packet matches the flow header 2111 of the flow entry 211 set in the flow table 21.

適合する場合、パケット処理部23は、該当フローエントリ211のアクション2112に従ってパケットの処理を行う。   If they match, the packet processing unit 23 processes the packet according to the action 2112 of the corresponding flow entry 211.

適合しなかった場合、パケット処理部23は、そのパケット(1stパケット)をスイッチ20−1の管理を行うコントローラ10−1とコントローラ10−2に転送する。   If not matched, the packet processing unit 23 transfers the packet (1st packet) to the controller 10-1 and the controller 10-2 that manage the switch 20-1.

[ステップS2の詳細]
コントローラ10(10−i、i=1〜x)は、1stパケットを受け取った場合、経路を計算し、経路上のスイッチ20(20−j、j=1〜y)に設定する。
[Details of Step S2]
When receiving the 1st packet, the controller 10 (10-i, i = 1 to x) calculates a route and sets the switch 20 (20-j, j = 1 to y) on the route.

コントローラ10−1とコントローラ10−2のそれぞれにおいて、パケット処理部13が1stパケットを受け取った際、経路計算部11は、ネットワーク管理部12のトポロジー情報と、パケット処理部13の解析結果を基に、そのパケット(1stパケット)が通るべき経路を計算する。   In each of the controller 10-1 and the controller 10-2, when the packet processing unit 13 receives the 1st packet, the route calculation unit 11 is based on the topology information of the network management unit 12 and the analysis result of the packet processing unit 13. The route that the packet (1st packet) should take is calculated.

ここで、図7のように、コントローラ10−1が計算した経路を経路100−1、コントローラ10−2が計算した経路を経路100−2とする。   Here, as shown in FIG. 7, a route calculated by the controller 10-1 is a route 100-1, and a route calculated by the controller 10-2 is a route 100-2.

経路100−1は、「スイッチ20−1」→「スイッチ20−4」→「スイッチ20−5」→「スイッチ20−6」→「スイッチ20−7」→「スイッチ20−8」の順となる。   The path 100-1 is in the order of “switch 20-1” → “switch 20-4” → “switch 20-5” → “switch 20-6” → “switch 20-7” → “switch 20-8”. Become.

経路100−2は、「スイッチ20−1」→「スイッチ20−2」→「スイッチ20−4」→「スイッチ20−5」→「スイッチ20−7」→「スイッチ20−6」→「スイッチ20−8」の順となる。   The path 100-2 is “switch 20-1” → “switch 20-2” → “switch 20-4” → “switch 20-5” → “switch 20-7” → “switch 20-6” → “switch” 20-8 ".

経路の計算終了後、コントローラ10−1とコントローラ10−2のそれぞれにおいて、ネットワーク管理部12は、計算して得られた経路に基づくフローエントリ211を、経路上の各スイッチ20(20−j、j=1〜y)に設定する。   After completing the calculation of the route, in each of the controllers 10-1 and 10-2, the network management unit 12 assigns the flow entry 211 based on the calculated route to each switch 20 (20-j, j = 1 to y).

スイッチ20(20−j、j=1〜y)へのフローエントリ211の設定については、経路上の送信元ホスト30−1に最も近いスイッチ20−1から順に行う。   The setting of the flow entry 211 to the switch 20 (20-j, j = 1 to y) is performed in order from the switch 20-1 closest to the transmission source host 30-1 on the route.

例えば、経路100−1の場合、コントローラ10−1は、図8の(1)から(6)の順に、スイッチ20(20−j、j=1〜y)の設定を行う。この順序は、通常のオープンフローの設定順序とは異なる。   For example, in the case of the path 100-1, the controller 10-1 sets the switch 20 (20-j, j = 1 to y) in the order of (1) to (6) in FIG. This order is different from the usual OpenFlow setting order.

経路上の送信元ホスト30−1に近いスイッチ20−1から順に設定を行う場合、スイッチ20−1は、設定された瞬間にフローエントリ211が有効となり、そのフローエントリ211のアクション2112に従って受信パケットを処理してしまうことになる。そのため、例えば、経路上の転送先であるスイッチ20−4の設定が終了する前に、スイッチ20−4がスイッチ20−1からパケットを受信した場合、スイッチ20−4は、該パケットを1stパケットとして、再度コントローラ10(10−i、i=1〜x)に転送してしまう可能性がある。   When setting is performed in order from the switch 20-1 close to the transmission source host 30-1 on the route, the switch 20-1 makes the flow entry 211 valid at the moment of setting, and receives the received packet according to the action 2112 of the flow entry 211. Will be processed. Therefore, for example, when the switch 20-4 receives a packet from the switch 20-1 before the setting of the switch 20-4 as the transfer destination on the path is completed, the switch 20-4 transmits the packet to the 1st packet. As a result, the data may be transferred to the controller 10 (10-i, i = 1 to x) again.

従って、オープンフローにおいては経路上の送信先ホスト30−2に近いスイッチ20(20−j、j=1〜y)から順に設定を行う。   Therefore, in the open flow, setting is performed in order from the switch 20 (20-j, j = 1 to y) close to the transmission destination host 30-2 on the route.

本発明では、経路上の送信元ホスト30−1に最も近いスイッチ20−1の設定のみ仮設定(仮登録)とすることで、全てのスイッチ20(20−j、j=1〜y)の設定が終了する前にパケットがフローエントリ211に従ってされることを防ぐ。   In the present invention, by setting only the setting of the switch 20-1 closest to the transmission source host 30-1 on the route as the temporary setting (temporary registration), all the switches 20 (20-j, j = 1 to y) are set. The packet is prevented from being followed according to the flow entry 211 before the setting is completed.

すなわち、経路上の全てのスイッチ20(20−j、j=1〜y)の設定が完了しない限り、パケットが送信元ホスト30−1から送信先ホスト30−2に転送されることはない。   That is, unless the setting of all the switches 20 (20-j, j = 1 to y) on the route is completed, the packet is not transferred from the transmission source host 30-1 to the transmission destination host 30-2.

経路100−1の場合、コントローラ10−1は、経路100−1上の送信元ホスト30−1に最も近いスイッチ20−1にフローエントリ211を仮設定した後、以降のスイッチ20(20−j、j=1〜y)は仮設定することなくフローテーブル21にフローエントリ211を設定する。   In the case of the path 100-1, the controller 10-1 temporarily sets the flow entry 211 in the switch 20-1 closest to the transmission source host 30-1 on the path 100-1, and then the subsequent switch 20 (20-j , J = 1 to y) sets the flow entry 211 in the flow table 21 without temporarily setting.

例えば、スイッチ20(20−j、j=1〜y)が保持するフローテーブル21とは別に、仮のフローエントリ211を保持することのできる記憶領域を持つことで、そこに仮設定するフローエントリ211を保持しても良い。別の方法では、フローエントリ211に仮設定なのか、本登録なのかを判断できる領域を持つことでも実現可能である。   For example, in addition to the flow table 21 held by the switch 20 (20-j, j = 1 to y), by having a storage area that can hold the temporary flow entry 211, the flow entry temporarily set there. 211 may be held. Another method can be realized by having an area in which it is possible to determine whether the flow entry 211 is temporarily set or permanently registered.

[ステップS3の詳細]
コントローラ10(10−i、i=1〜x)は、スイッチ20(20−j、j=1〜y)の設定を終えた場合、1stパケットの送信元であるスイッチ20(20−j、j=1〜y)に応答する。
[Details of Step S3]
When the controller 10 (10-i, i = 1 to x) finishes setting of the switch 20 (20-j, j = 1 to y), the switch 20 (20-j, j) that is the transmission source of the 1st packet. = 1 to y).

コントローラ10(10−i、i=1〜x)は、経路上の全てのスイッチ20(20−j、j=1〜y)の設定が完了すると、スイッチ20−1に応答として設定完了通知を送信する。   When the setting of all the switches 20 (20-j, j = 1 to y) on the path is completed, the controller 10 (10-i, i = 1 to x) sends a setting completion notification to the switch 20-1 as a response. Send.

このとき、コントローラ10(10−i、i=1〜x)は、スイッチ20−1に仮設定したフローエントリ211をフローテーブル21に登録する。   At this time, the controller 10 (10-i, i = 1 to x) registers the flow entry 211 temporarily set in the switch 20-1 in the flow table 21.

スイッチ20−1は、最も早く応答したコントローラ10(10−i、i=1〜x)が設定した経路を、パケットが通る経路として採用する。   The switch 20-1 employs the route set by the controller 10 (10-i, i = 1 to x) that responded earliest as the route through which the packet passes.

仮に、コントローラ10−1、コントローラ10−2が同時に応答した場合、スイッチ20−1は、採用された経路が1つとなるようにどちらかを選択する。   If the controller 10-1 and the controller 10-2 respond at the same time, the switch 20-1 selects either one so that the adopted route becomes one.

[ステップS4の詳細]
スイッチ20(20−j、j=1〜y)は、最も早く応答したコントローラ10(10−i、i=1〜x)ではないコントローラ10(10−i、i=1〜x)に不採用通知を出す。
[Details of Step S4]
The switch 20 (20-j, j = 1 to y) is not adopted for the controller 10 (10-i, i = 1 to x) which is not the controller 10 (10-i, i = 1 to x) which responded earliest. Send notifications.

採用された経路は、コントローラ10−1が設定した経路100−1であると仮定する。   It is assumed that the route adopted is the route 100-1 set by the controller 10-1.

コントローラ10−1が最も早く応答したため、スイッチ20−1は、不採用となったコントローラ10−2に経路不採用を通知する。   Since the controller 10-1 responded the earliest, the switch 20-1 notifies the controller 10-2 that has not been adopted that the route has not been adopted.

これは、不採用が決まった時点で設定途中のコントローラ10−2に経路の設定を中止させるために行う。   This is performed in order to cause the controller 10-2 in the middle of setting to cancel the path setting when the non-adoption is determined.

そのため、コントローラ10−2は、スイッチ20−1から不採用通知を受け取ると、コントローラ10−2による経路上の全てのスイッチ20(20−j、j=1〜y)の設定が完了していなくとも、残りの設定を行わない。   Therefore, when the controller 10-2 receives the non-adoption notification from the switch 20-1, the setting of all the switches 20 (20-j, j = 1 to y) on the route by the controller 10-2 is not completed. In both cases, the remaining settings are not performed.

[ステップS5の詳細]
スイッチ20(20−j、j=1〜y)は、不採用となったコントローラ10(10−i、i=1〜x)の設定したフローエントリ211の削除処理を行う。
[Details of Step S5]
The switch 20 (20-j, j = 1 to y) performs the deletion process of the flow entry 211 set by the controller 10 (10-i, i = 1 to x) which has been rejected.

ここでは、スイッチ20−1は、コントローラ10−2の設定した不採用経路100−2のフローエントリ211の削除を行う。   Here, the switch 20-1 deletes the flow entry 211 of the non-adopted route 100-2 set by the controller 10-2.

不採用経路100−2の削除には、経路削除パケット50を用いて行う。スイッチ20−1は、不採用経路100−2上のスイッチに向けて、経路削除パケット50を送信する。   The deletion route 100-2 is deleted by using the route deletion packet 50. The switch 20-1 transmits a route deletion packet 50 toward the switch on the non-accepted route 100-2.

図9に示すように、不採用経路100−2に、経路削除パケット50が流れる。   As shown in FIG. 9, the route deletion packet 50 flows through the non-adopted route 100-2.

[不採用経路の削除処理]
図10を参照して、不採用経路の削除処理全体の手順について説明する。
[Rejected route deletion process]
With reference to FIG. 10, the overall procedure for deleting a non-employed route will be described.

(1)ステップS501
スイッチ20−1において、パケット処理部23は、経路削除パケット50に、コントローラ10−2の設定した不採用経路100−2の情報を設定する。ここでは、パケット処理部23は、不採用経路100−2のフローエントリ211のフローヘッダ2111、経路ID2113、及びコントローラ10−2を示すコントローラID2114を基に、経路削除パケット50を作成する。すなわち、経路削除パケット50のフローヘッダ51、経路ID52、及びコントローラID53は、それぞれ上記の不採用経路100−2のフローヘッダ2111、経路ID2113、及びコントローラID2114と等しい。
(1) Step S501
In the switch 20-1, the packet processing unit 23 sets information on the rejected route 100-2 set by the controller 10-2 in the route deletion packet 50. Here, the packet processing unit 23 creates the route deletion packet 50 based on the flow header 2111 of the flow entry 211 of the non-adopted route 100-2, the route ID 2113, and the controller ID 2114 indicating the controller 10-2. That is, the flow header 51, the route ID 52, and the controller ID 53 of the route deletion packet 50 are equal to the flow header 2111, the route ID 2113, and the controller ID 2114 of the non-adopted route 100-2, respectively.

(2)ステップS502
スイッチ20−1において、パケット処理部23は、不採用経路100−2のフローエントリ211のアクション2112の内容が送信先ホスト30−2に転送する内容か確認する。すなわち、経路の末端のスイッチであるか確認する。
(2) Step S502
In the switch 20-1, the packet processing unit 23 checks whether the content of the action 2112 of the flow entry 211 of the non-accepted route 100-2 is the content to be transferred to the transmission destination host 30-2. That is, it is confirmed whether it is a switch at the end of the path.

(3)ステップS503
スイッチ20−1において、パケット処理部23は、フローエントリ211のアクション2112の内容が送信先ホスト30−2に転送する内容ではない場合、フローエントリ211のアクション2112に従って経路削除パケット50を処理する。ここでは、スイッチ20−1において、パケット処理部23は、フローエントリ211のアクション2112に従って、経路削除パケット50を、次段のスイッチ20−2に転送する。
(3) Step S503
In the switch 20-1, when the content of the action 2112 of the flow entry 211 is not the content to be transferred to the transmission destination host 30-2, the packet processing unit 23 processes the route deletion packet 50 according to the action 2112 of the flow entry 211. Here, in the switch 20-1, the packet processing unit 23 transfers the route deletion packet 50 to the next-stage switch 20-2 in accordance with the action 2112 of the flow entry 211.

(4)ステップS504
不採用経路上にある各スイッチ20(20−j、j=2〜y)において、フローテーブル管理部22は、経路削除パケット50を次段のスイッチ20(20−j、j=2〜y)に転送した後、仮設定又は正式に設定されている不採用経路100−2のフローエントリ211を削除する。
(4) Step S504
In each switch 20 (20-j, j = 2 to y) on the rejected route, the flow table management unit 22 sends the route deletion packet 50 to the next switch 20 (20-j, j = 2 to y). , The flow entry 211 of the rejected route 100-2 that has been temporarily set or formally set is deleted.

(5)ステップS505
不採用経路上にある各スイッチ20(20−j、j=2〜y)において、パケット処理部23は、経路削除パケット50を受信した際、経路削除パケット50のフローヘッダ51、経路ID52、及びコントローラID53を基に、フローテーブル21に登録されているフローエントリ211の中に、経路削除パケット50のフローヘッダ51、経路ID52、コントローラID53と適合するフローエントリ211があるか確認する。
(5) Step S505
In each switch 20 (20-j, j = 2 to y) on the rejected route, when the packet processing unit 23 receives the route deletion packet 50, the flow header 51, route ID 52, and Based on the controller ID 53, it is confirmed whether the flow entry 211 registered in the flow table 21 includes a flow entry 211 that matches the flow header 51, the route ID 52, and the controller ID 53 of the route deletion packet 50.

(6)ステップS506
不採用経路上にある各スイッチ20(20−j、j=2〜y)において、パケット処理部23は、経路削除パケット50のフローヘッダ51、経路ID52、コントローラID53と適合するフローエントリ211がある場合、該フローエントリ211のアクション2112の内容が送信先ホスト30−2に転送する内容か確認する。すなわち、経路の末端のスイッチであるか確認する。
(6) Step S506
In each switch 20 (20-j, j = 2 to y) on the rejected route, the packet processing unit 23 has a flow entry 211 that matches the flow header 51, route ID 52, and controller ID 53 of the route deletion packet 50. In this case, it is confirmed whether the content of the action 2112 of the flow entry 211 is the content to be transferred to the transmission destination host 30-2. That is, it is confirmed whether it is a switch at the end of the path.

(7)ステップS507
不採用経路上にある各スイッチ20(20−j、j=2〜y)において、パケット処理部23は、フローエントリ211のアクション2112の内容が送信先ホスト30−2に転送する内容ではない場合、フローエントリ211のアクション2112に従って経路削除パケット50を処理する。ここでは、各スイッチ20(20−j、j=2〜y)において、パケット処理部23は、フローエントリ211のアクション2112に従って、経路削除パケット50を、次段のスイッチ20(20−j、j=2〜y)に転送する。
(7) Step S507
In each switch 20 (20-j, j = 2 to y) on the non-adopted route, the packet processing unit 23 does not transfer the content of the action 2112 of the flow entry 211 to the transmission destination host 30-2. The route deletion packet 50 is processed according to the action 2112 of the flow entry 211. Here, in each switch 20 (20-j, j = 2 to y), the packet processing unit 23 sends the route deletion packet 50 to the next-stage switch 20 (20-j, j) according to the action 2112 of the flow entry 211. = 2 to y).

(8)ステップS508
不採用経路上にある各スイッチ20(20−j、j=2〜y)において、フローテーブル管理部22は、経路削除パケット50を次段のスイッチ20(20−j、j=2〜y)に転送した後、仮設定又は正式に設定されている不採用経路100−2のフローエントリ211を削除する。
(8) Step S508
In each switch 20 (20-j, j = 2 to y) on the rejected route, the flow table management unit 22 sends the route deletion packet 50 to the next switch 20 (20-j, j = 2 to y). , The flow entry 211 of the rejected route 100-2 that has been temporarily set or formally set is deleted.

(9)ステップS509
不採用経路上にある各スイッチ20(20−j、j=1〜y)において、パケット処理部23は、フローエントリ211のアクション2112の内容が送信先ホスト30−2に転送する内容である場合、すなわち、スイッチ20(20−j、j=1〜y)が経路の最後のスイッチ20−8の場合、転送処理を行わず、経路削除パケット50のフローヘッダ51、経路ID52、コントローラID53と適合するフローエントリ211を削除し、経路削除パケット50を破棄する。なお、1stパケットを受信したスイッチ20−1が経路の最後のスイッチである場合、スイッチ20−1は、経路削除パケット50を生成せずに、不採用経路のフローエントリ211を削除しても良い。例えば、不採用経路がスイッチ20−1の配下のホスト間の通信経路である場合や、スイッチ20−1の配下のホスト30(30−k、k=1〜z)の各々が、オープンフロー非対応のネットワークにおけるルータ等の中継装置である場合が考えられる。
(9) Step S509
In each switch 20 (20-j, j = 1 to y) on the non-adopted route, the packet processing unit 23, when the content of the action 2112 of the flow entry 211 is the content to be transferred to the destination host 30-2 That is, when the switch 20 (20-j, j = 1 to y) is the last switch 20-8 in the route, the transfer process is not performed and the flow header 51, the route ID 52, and the controller ID 53 of the route deletion packet 50 are matched. The flow entry 211 to be deleted is deleted, and the route deletion packet 50 is discarded. When the switch 20-1 that has received the 1st packet is the last switch in the route, the switch 20-1 may delete the flow entry 211 of the non-adopted route without generating the route deletion packet 50. . For example, when the non-adopted route is a communication route between hosts under the switch 20-1, or each of the hosts 30 (30-k, k = 1 to z) under the switch 20-1, A case where it is a relay device such as a router in a compatible network is conceivable.

(10)ステップS510
また、不採用経路上にあるスイッチ20(20−j、j=2〜y)は、フローテーブル21に登録されているフローエントリ211の中に、経路削除パケット50のフローヘッダ51、経路ID52、コントローラID53と適合するフローエントリ211がない場合、受信した経路削除パケット50を一時的に保持する。
(10) Step S510
Further, the switch 20 (20-j, j = 2 to y) on the rejected route includes the flow header 51, the route ID 52, the route deletion packet 50 in the flow entry 211 registered in the flow table 21. If there is no flow entry 211 that matches the controller ID 53, the received route deletion packet 50 is temporarily held.

(11)ステップS511
スイッチ20(20−j、j=2〜y)は、コントローラ10(10−i、i=1〜x)からフローエントリ211の追加設定があるか確認する。
(11) Step S511
The switch 20 (20-j, j = 2 to y) checks whether there is an additional setting of the flow entry 211 from the controller 10 (10-i, i = 1 to x).

(12)ステップS512
スイッチ20(20−j、j=2〜y)は、コントローラ10(10−i、i=1〜x)からフローエントリ211の追加設定がある場合、追加設定されたフローエントリ211のフローヘッダ2111、経路ID2113、及びコントローラID2114が、一時的に保持されている経路削除パケット50のフローヘッダ51、経路ID52、及びコントローラID53と適合するか確認する。
(12) Step S512
When there is an additional setting of the flow entry 211 from the controller 10 (10-i, i = 1 to x), the switch 20 (20-j, j = 2 to y) has the flow header 2111 of the additionally set flow entry 211. Then, it is confirmed whether the route ID 2113 and the controller ID 2114 are compatible with the flow header 51, the route ID 52, and the controller ID 53 of the route deletion packet 50 temporarily held.

(13)ステップS513
フローエントリ211と経路削除パケット50が適合する場合、スイッチ20(20−j、j=2〜y)は、そのフローエントリ211の登録を破棄する。
(13) Step S513
If the flow entry 211 matches the route deletion packet 50, the switch 20 (20-j, j = 2 to y) discards the registration of the flow entry 211.

(14)ステップS514
スイッチ20(20−j、j=2〜y)は、経路削除パケット50を一時的に保持してから所定の時間が経過したか確認する。
(14) Step S514
The switch 20 (20-j, j = 2 to y) confirms whether a predetermined time has elapsed since the route deletion packet 50 is temporarily held.

(15)ステップS515
スイッチ20(20−j、j=2〜y)は、経路削除パケット50を一時的に保持してから所定の時間が経過した場合、保持している経路削除パケット50を破棄する。
(15) Step S515
The switch 20 (20-j, j = 2 to y) discards the stored route deletion packet 50 when a predetermined time has elapsed since the route deletion packet 50 has been temporarily stored.

[ステップS510以降の詳細]
例えば、図11のように、経路100−2が不採用となったコントローラ10(10−i、i=1〜x)がスイッチ20−5までしか設定を完了させることができなかった状態で、経路の削除処理が始まってしまった場合等が考えられる。
[Details after Step S510]
For example, as shown in FIG. 11, in a state where the controller 10 (10-i, i = 1 to x) in which the path 100-2 is not adopted can only complete the setting up to the switch 20-5, A case where the route deletion process has started may be considered.

この場合、スイッチ20−7は、不採用となった経路100−2のフローエントリ211が設定されていないため、経路削除パケット50を処理できない。   In this case, the switch 20-7 cannot process the route deletion packet 50 because the flow entry 211 of the route 100-2 that has not been adopted is not set.

このとき、スイッチ20−7は、受信した経路削除パケット50を一時的に保持する。   At this time, the switch 20-7 temporarily holds the received route deletion packet 50.

経路削除パケット50を一時的に保持する理由は、フローエントリ211の登録処理が遅れて行われる可能性があるからである。   The reason why the route deletion packet 50 is temporarily held is that there is a possibility that the registration process of the flow entry 211 may be delayed.

不採用経路の削除処理が始まった時点で、経路が不採用となったコントローラ10−2は、不採用通知を受け取っているため、スイッチ20−5より先にある不採用経路の残りのスイッチ(「スイッチ20−7」→「スイッチ20−6」→「スイッチ20−8」)に対してはフローエントリ211の設定を行わない。   At the time when the deletion process of the rejected route starts, the controller 10-2 whose route has been rejected has received the rejected notification, so the remaining switches ( The flow entry 211 is not set for “switch 20-7” → “switch 20-6” → “switch 20-8”).

しかし、ネットワークの遅延等の理由から、不採用経路の削除処理後にフローエントリ211が設定される可能性もあるので、スイッチ20−7は、経路が不採用となったコントローラ10−2が遅れてフローエントリ211を設定してきた場合のために、スイッチ20−5から受信した経路削除パケット50を保持しておく。   However, since there is a possibility that the flow entry 211 is set after the deletion processing of the rejected route due to a network delay or the like, the switch 20-7 is delayed by the controller 10-2 whose route is not adopted. For the case where the flow entry 211 has been set, the route deletion packet 50 received from the switch 20-5 is held.

コントローラ10−2からフローエントリ211が遅れて設定された場合、スイッチ20−7は、そのフローエントリ211の登録を破棄する。   When the flow entry 211 is set with a delay from the controller 10-2, the switch 20-7 discards the registration of the flow entry 211.

なお、コントローラ10−2からフローエントリ211が遅れて設定された場合、スイッチ20−7は、念のために、そのフローエントリ211に従って、次段のスイッチ20−6に経路削除パケット50を送信するようにしても良い。スイッチ20−6も、経路削除パケット50を受信した場合、上記のスイッチ20−7と同様の処理を行うものとする。   When the flow entry 211 is set with a delay from the controller 10-2, the switch 20-7 transmits the route deletion packet 50 to the next-stage switch 20-6 according to the flow entry 211 just in case. You may do it. When the switch 20-6 receives the route deletion packet 50, the switch 20-6 performs the same processing as the switch 20-7.

一定時間、保持する経路削除パケット50の情報と適合するフローエントリ211が登録されない場合、スイッチ20−7は、登録を破棄すべき不採用経路のフローエントリはないと判断し、経路削除パケット50を破棄する。   When the flow entry 211 that matches the information of the route deletion packet 50 to be held is not registered for a certain period of time, the switch 20-7 determines that there is no flow entry of an unaccepted route whose registration should be discarded, and the route deletion packet 50 is determined. Discard.

[ステップS6の詳細]
スイッチ20(20−j、j=1〜y)は、採用された経路のフローエントリ211に従って、パケットを処理する。
[Details of Step S6]
The switch 20 (20-j, j = 1 to y) processes the packet according to the flow entry 211 of the adopted route.

ここでは、スイッチ20−1は、最も早く応答したコントローラ10−1が仮設定したフローエントリ211をフローテーブル21に設定する。   Here, the switch 20-1 sets the flow entry 211 temporarily set by the controller 10-1 that responded earliest in the flow table 21.

この時点で、スイッチ20−1は、1stパケットの情報と一致するフローエントリ211が設定されるため、1stパケットを該当フローエントリ211のアクション2112に従って処理する。   At this point, since the flow entry 211 that matches the information of the 1st packet is set, the switch 20-1 processes the 1st packet according to the action 2112 of the corresponding flow entry 211.

仮設定のフローエントリ211をフローテーブル21に設定するタイミングは、ステップS5における「不採用経路の削除処理」とほぼ同時である。   The timing of setting the temporarily set flow entry 211 in the flow table 21 is almost the same as the “rejected route deletion process” in step S5.

スイッチ20−1は、経路削除パケット50をスイッチ20−4に転送した後に、仮設定のフローエントリ211をフローテーブル21に設定する。   The switch 20-1 transfers the route deletion packet 50 to the switch 20-4 and then sets the temporarily set flow entry 211 in the flow table 21.

仮設定のフローエントリ211がフローテーブル21に設定された後、スイッチ20−1は、受信したパケットを、フローエントリ211に従って、採用された経路上のスイッチ20−4に転送する。   After the temporarily set flow entry 211 is set in the flow table 21, the switch 20-1 transfers the received packet to the switch 20-4 on the adopted route according to the flow entry 211.

以降、採用された経路上のスイッチ20(20−j、j=1〜y)の各々は、受信したパケットを、フローエントリ211に従って、採用された経路上の次段のノードに転送し、パケットをホスト30−2まで転送する。   Thereafter, each of the switches 20 (20-j, j = 1 to y) on the adopted route transfers the received packet to the next node on the adopted route according to the flow entry 211, and the packet Is transferred to the host 30-2.

ここで、不採用経路の削除処理が終了していないスイッチ20(20−j、j=1〜y)がパケットを受け取る可能性がある。   Here, there is a possibility that the switch 20 (20-j, j = 1 to y) that has not completed the process of deleting the unaccepted route receives the packet.

その場合、該スイッチ20(20−j、j=1〜y)は、どのフローエントリ211が経路100−1か判断できないため、不採用経路の削除処理の終了を待つ。   In this case, since the switch 20 (20-j, j = 1 to y) cannot determine which flow entry 211 is the route 100-1, the switch 20 (20-j, j = 1 to y) waits for the completion of the deletion processing of the rejected route.

ここで、スイッチ20(20−j、j=1〜y)は、次の2つの場合から、不採用経路の削除処理が終了したことを判断する。   Here, the switch 20 (20-j, j = 1 to y) determines that the deletion processing of the non-employed route is completed from the following two cases.

(1)パケットのフローヘッダの情報に適合するフローヘッダ2111を持つフローエントリ211が1つしかない場合、スイッチ20(20−j、j=1〜y)は、採用されたコントローラ10(10−i、i=1〜x)から設定されたフローエントリ211のみが登録されている状態であると判断し、不採用経路の削除処理が終了したことを判断する。   (1) When there is only one flow entry 211 having a flow header 2111 that matches the flow header information of the packet, the switch 20 (20-j, j = 1 to y) indicates that the adopted controller 10 (10− It is determined that only the flow entry 211 set from i, i = 1 to x) is registered, and it is determined that the deletion process of the non-employed route has been completed.

(2)パケットのフローヘッダの情報に適合するフローエントリ211は複数存在するが、これらのフローエントリ211のコントローラID2113及び経路ID2113が全て同一のものである場合、スイッチ20(20−j、j=1〜y)は、これらのフローエントリ211全てが、採用されたコントローラ10(10−i、i=1〜x)から登録されている状態であると判断し、不採用経路の削除処理が終了したことを判断する。   (2) If there are a plurality of flow entries 211 that match the information of the packet flow header, but the controller ID 2113 and route ID 2113 of these flow entries 211 are all the same, the switch 20 (20-j, j = 1 to y) determines that all of these flow entries 211 are registered from the adopted controller 10 (10-i, i = 1 to x), and the deletion processing of the non-adopted route is completed. Judge that you did.

スイッチ20(20−j、j=1〜y)は、不採用経路の削除処理の終了を一定時間判断できない場合、すなわち、ネットワークの遅延等の原因によって、一定時間待っても経路削除パケット50が届かず、不採用経路が削除されない場合、その時点で1stパケットをコントローラ10(10−i、i=1〜x)に転送し、経路の再設定を行う。   When the switch 20 (20-j, j = 1 to y) cannot determine the end of the deletion process of the unaccepted route for a certain period of time, that is, due to a cause such as a network delay, If it does not arrive and the non-accepted route is not deleted, the 1st packet is transferred to the controller 10 (10-i, i = 1 to x) at that time, and the route is reset.

[実施例]
図12を参照して、本発明の実施例について説明する。
[Example]
An embodiment of the present invention will be described with reference to FIG.

ここでは、コントローラ10(10−i、i=1〜x)の例として、コントローラ1及びコントローラ2を示す。また、スイッチ20(20−j、j=1〜y)の例として、スイッチ1〜スイッチ4を示す。また、ホスト30(30−k、k=1〜z)の例として、ホスト1及びホスト2を示す。ホスト1は、送信元ホストであり、ホスト2は送信先ホストである。   Here, the controller 1 and the controller 2 are shown as examples of the controller 10 (10-i, i = 1 to x). Further, switches 1 to 4 are shown as examples of the switch 20 (20-j, j = 1 to y). Moreover, the host 1 and the host 2 are shown as an example of the host 30 (30-k, k = 1 to z). Host 1 is a transmission source host, and host 2 is a transmission destination host.

(1)スイッチ1は、ホスト1からパケットを受信する。   (1) The switch 1 receives a packet from the host 1.

(2)スイッチ1は、自身が保持するフローエントリに一致しないパケットである場合、該パケットを1stパケットとして、自身を制御する複数のコントローラに転送する。ここでは、スイッチ1は、1stパケットを、コントローラ1及びコントローラ2に転送する。   (2) When the switch 1 is a packet that does not match the flow entry held by itself, the switch 1 transfers the packet as a 1st packet to a plurality of controllers that control the packet. Here, the switch 1 transfers the 1st packet to the controller 1 and the controller 2.

(3)コントローラ1及びコントローラ2は、スイッチから1stパケットを転送された場合、経路を計算し、経路上のスイッチの各々に対してフローエントリの設定を行う。このとき、コントローラ1及びコントローラ2は、1stパケットを受信したスイッチ1から順に、経路上のスイッチの各々に対してフローエントリの設定を行う。但し、1stパケットを受信したスイッチ1に設定したフローエントリには、仮設定であることを示す情報(フラグ等)を付与しておく。すなわち、この時点では、1stパケットを受信したスイッチ1に設定したフローエントリは、正式に設定したフローエントリではなく、仮設定のフローエントリである。仮設定であることを示す情報とは、該フローエントリが未だ無効である旨を示す情報である。1stパケットを受信したスイッチ1は、仮設定のフローエントリに従って、パケットを転送することはしない。なお、仮設定であることを示す情報を格納する領域は、フローエントリ内に新たに設けても良いし、フローエントリ内の既存の領域の一部を利用しても良い。   (3) When the 1st packet is transferred from the switch, the controller 1 and the controller 2 calculate a route and set a flow entry for each of the switches on the route. At this time, the controller 1 and the controller 2 perform flow entry setting for each of the switches on the path in order from the switch 1 that has received the 1st packet. However, information (flag or the like) indicating provisional setting is assigned to the flow entry set in the switch 1 that has received the 1st packet. In other words, at this time, the flow entry set in the switch 1 that has received the 1st packet is not a formally set flow entry but a provisionally set flow entry. The information indicating the temporary setting is information indicating that the flow entry is still invalid. The switch 1 that has received the 1st packet does not transfer the packet in accordance with the temporarily set flow entry. Note that an area for storing information indicating temporary setting may be newly provided in the flow entry, or a part of an existing area in the flow entry may be used.

(4)コントローラ1及びコントローラ2は、経路上のスイッチの設定が全て完了した場合、設定が完了した旨の通知(設定完了通知)を送信し、1stパケットを受信したスイッチ1に設定したフローエントリから仮設定を示す情報を取り除く。   (4) When all the settings of the switches on the path are completed, the controller 1 and the controller 2 transmit a notification that the setting is completed (setting completion notification), and the flow entry set in the switch 1 that has received the 1st packet The information indicating the temporary setting is removed from.

(5)1stパケットを受信したスイッチ1は、最も早く(最先に)全てのスイッチの設定が完了したコントローラ1の設定した経路をパケットの通信路に採用し、経路を採用したコントローラ1以外のコントローラ2に不採用通知を送る。コントローラ2は、不採用通知を受け取った際に、経路上のスイッチの設定が途中の場合、以降の設定を中止する。ここでは、コントローラ2は、経路上のスイッチ4の設定前に、不採用通知を受け取り、経路上のスイッチ4の設定を中止する。   (5) The switch 1 that has received the 1st packet adopts the route set by the controller 1 that has completed the setting of all the switches earliest (first) as the packet communication route, and other than the controller 1 that adopted the route. A notice of rejection is sent to the controller 2. When the controller 2 receives the non-employment notification, if the setting of the switch on the route is in the middle, the subsequent setting is stopped. Here, before setting the switch 4 on the route, the controller 2 receives a non-adoption notice and stops setting the switch 4 on the route.

(6)1stパケットを受信したスイッチ1は、採用されなかった経路を削除するために、経路削除パケットを生成し、経路削除パケットを、採用されなかった経路のフローエントリに従って、隣接するスイッチ3に転送し、採用されなかった経路のフローエントリを削除する。スイッチ3を始め、採用されなかった経路上のスイッチは、経路削除パケットを受信した際、経路削除パケットのヘッダ情報と適合するフローエントリに従って、隣接するスイッチ4に転送した後、該フローエントリを削除する。スイッチ4は、経路削除パケットのヘッダ情報と適合するフローエントリが設定されていないため、経路削除パケットを一時的に保持し、所定の時間が経過した後に、経路削除パケットを破棄する。なお、スイッチ4は、経路削除パケットのヘッダ情報と適合するフローエントリが設定されていた場合、該フローエントリの内容から、採用されなかった経路上の最後のスイッチであると判明するため、隣接するホスト2には経路削除パケットを送信せず、経路削除パケットのヘッダ情報と適合するフローエントリを削除し、経路削除パケットを破棄する。これらの処理の詳細については、図10に示した不採用経路の削除処理と同様である。   (6) The switch 1 that has received the 1st packet generates a route deletion packet in order to delete the route that has not been adopted, and sends the route deletion packet to the adjacent switch 3 in accordance with the flow entry of the route that has not been adopted. Transfer and delete the flow entry of the route that was not adopted. When a switch on the route that has not been adopted, including the switch 3, receives a route deletion packet, the switch is transferred to the adjacent switch 4 according to the flow entry that matches the header information of the route deletion packet, and then the flow entry is deleted. To do. Since the flow entry that matches the header information of the route deletion packet is not set, the switch 4 temporarily holds the route deletion packet and discards the route deletion packet after a predetermined time has elapsed. Note that when a flow entry that matches the header information of the route deletion packet is set, the switch 4 is identified as the last switch on the route that has not been adopted from the contents of the flow entry. The route deletion packet is not transmitted to the host 2, the flow entry that matches the header information of the route deletion packet is deleted, and the route deletion packet is discarded. Details of these processes are the same as the non-accepted route deletion process shown in FIG.

(7)1stパケットを受信したスイッチ1は、1stパケット以降のパケットを、採用された経路のフローエントリに従って、隣接するスイッチ2に転送する。   (7) The switch 1 that has received the 1st packet transfers the packet after the 1st packet to the adjacent switch 2 in accordance with the flow entry of the adopted route.

(8)スイッチ2は、1stパケット以降のパケットを、フローエントリに従って、隣接するスイッチ4に転送する。   (8) The switch 2 transfers the first and subsequent packets to the adjacent switch 4 according to the flow entry.

(9)採用された経路上の最後のスイッチ4は、1stパケット以降のパケットを、採用された経路のフローエントリに従って、ホスト2に転送する。   (9) The last switch 4 on the adopted route transfers the first and subsequent packets to the host 2 in accordance with the flow entry of the adopted route.

[補足]
本発明の実施例では、1stパケットを受信したスイッチが2台のコントローラによって制御されているが、3台以上のコントローラによる制御も実現可能である。すなわち、図示された2台のコントローラは、「経路を採用したコントローラ」と、「経路を採用されなかったコントローラ」を示すものであり、個々のコントローラの台数は任意である。
[Supplement]
In the embodiment of the present invention, the switch that receives the 1st packet is controlled by two controllers, but control by three or more controllers can also be realized. That is, the two controllers shown in the figure indicate “a controller adopting a route” and “a controller not adopting a route”, and the number of individual controllers is arbitrary.

<第2実施形態>
以下に、本発明の第2実施形態について説明する。
Second Embodiment
The second embodiment of the present invention will be described below.

オープンフローにおいて、スイッチのフローテーブルにフローエントリを登録する方式は、大きく「Proactive型」と、「Reactive型」の2つの方式に分けられる。   In OpenFlow, the method of registering a flow entry in the flow table of a switch is roughly divided into two methods of “Proactive type” and “Reactive type”.

「Proactive型」では、コントローラが「事前に(データ通信が始まる前に)」所定のパケット群(フロー)の経路(パス)を計算し、スイッチのフローテーブルにフローエントリを登録する。すなわち、ここでいう「Proactive型」とは、コントローラが自発的に行う「事前のフローエントリ登録」を指す。   In “Proactive type”, the controller calculates a route (path) of a predetermined packet group (flow) “in advance (before data communication starts)” and registers the flow entry in the flow table of the switch. In other words, the “Proactive type” here refers to “advanced flow entry registration” performed voluntarily by the controller.

「Reactive型」では、コントローラが「スイッチから1stパケット(該当フローエントリがない新規のパケット)についての問い合わせを受けた際に」該パケット群(フロー)の経路を計算し、スイッチのフローテーブルにフローエントリを登録する。すなわち、ここでいう「Reactive型」とは、実際のデータ通信時に、コントローラがスイッチからの問い合わせに応じて行う「リアルタイムのフローエントリ登録」を指す。   In the “Reactive type”, the controller calculates the route of the packet group (flow) when the switch receives an inquiry about the 1st packet (a new packet with no corresponding flow entry) from the switch, and flows to the flow table of the switch. Create an entry. That is, the “Reactive type” here refers to “real-time flow entry registration” performed by the controller in response to an inquiry from the switch during actual data communication.

オープンフローネットワークシステムでは、基本的に、コントローラがスイッチから1stパケットについての問い合わせを受けた際に該受信パケットに関するフローエントリを登録する「Reactive型」が中心となっている。   In the OpenFlow network system, basically, a “Reactive type” that registers a flow entry related to a received packet when the controller receives an inquiry about the 1st packet from the switch is the center.

しかし、実際のハードウェア(HW)では、フローテーブルの処理頻度を軽減し性能の問題を解決するためには、「Proactive型」が好適であると考えられる。例えば、大量の1stパケットがコントローラに到着しても処理し切れるようにするためには、「Proactive型」の方が好適であると考えられる。但し、実際には、完全な「Proactive型」にするとフローエントリ数が膨大になると考えられるため、一部を「Reactive型」にすることにより、フローエントリ数の制約から逃れるといったことも考えられる。   However, in actual hardware (HW), in order to reduce the processing frequency of the flow table and solve the performance problem, the “Proactive type” is considered suitable. For example, it is considered that the “Proactive type” is more suitable for processing even when a large number of first packets arrive at the controller. However, in reality, since it is considered that the number of flow entries becomes enormous if the complete “Proactive type” is used, it may be possible to escape from the restriction on the number of flow entries by making a part of the “Reactive type”.

また、「Proactive型」を用いれば、通信開始前にフローを定義できるため、Nimda等のウィルスによる大量フロー発生問題や、不明なパケットによる不正アクセス等が回避可能になると考えられる。   Further, if the “Proactive type” is used, a flow can be defined before the start of communication. Therefore, it is considered possible to avoid a problem of a large amount of flow due to a virus such as Nimda or an unauthorized access due to an unknown packet.

上記の第1実施形態における説明では、「Reactive型」を前提に説明してきたが、実際には、「Proactive型」のオープンフローネットワークシステムにおいて、本発明を実施することも可能である。   In the above description of the first embodiment, “Reactive type” has been described. However, in practice, the present invention can also be implemented in a “Proactive type” OpenFlow network system.

すなわち、複数のコントローラの各々が、スイッチからのパケットの問い合わせを受けることなく、事前に(データ通信が始まる前に)、到着が予想される所定のパケット群の経路を計算し、経路上のスイッチのフローテーブルにフローエントリを登録するようにしても良い。スイッチにおける不採用経路の削除処理等については、上記の第1実施形態と同様である。   That is, each of a plurality of controllers calculates a route of a predetermined packet group that is expected to arrive without receiving a packet inquiry from the switch (before data communication starts), and switches on the route The flow entry may be registered in the flow table. The deletion process of the non-employed route in the switch is the same as that in the first embodiment.

<まとめ>
以上のように、本発明は、オープンフローに代表される制御機能を外部のコントローラに分離したネットワーク機器で構成されるネットワークにおいて、コントローラを多重化/冗長化した際の不採用経路の削除を実現する。
<Summary>
As described above, according to the present invention, in a network composed of network devices in which a control function represented by OpenFlow is separated from an external controller, it is possible to delete unused paths when the controllers are multiplexed / redundant. To do.

本発明では、パケット転送と経路制御の機能が分離されたネットワーク機器で構成されるネットワークを対象とする。   The present invention targets a network composed of network devices in which the functions of packet transfer and path control are separated.

本発明では、複数のコントローラが独立して動作し、コントローラ間の通信を伴わずに全てのネットワーク機器に対してフローエントリを設定できる。   In the present invention, a plurality of controllers operate independently, and flow entries can be set for all network devices without communication between the controllers.

本発明では、経路は、複数のコントローラの中で最も早く設定を完了させたコントローラの設定した経路である。   In the present invention, the route is a route set by a controller that has completed setting earliest among a plurality of controllers.

本発明では、ネットワーク機器が、通信に使用されない経路のフローエントリを削除する経路削除パケットを生成する。   In the present invention, the network device generates a route deletion packet for deleting a flow entry of a route that is not used for communication.

本発明では、ネットワーク機器が、経路削除パケットを、通信に使用されない経路上の隣接するネットワーク機器に転送する。   In the present invention, a network device transfers a route deletion packet to an adjacent network device on a route that is not used for communication.

本発明では、ネットワーク機器は、経路削除パケットを受信した際、経路削除パケットを解析し、解析結果を基に、自身に設定されたフローエントリのうち、経路削除パケットのヘッダ情報と適合するフローエントリを削除する。   In the present invention, when the network device receives the route deletion packet, the network device analyzes the route deletion packet and, based on the analysis result, out of the flow entries set in itself, the flow entry that matches the header information of the route deletion packet Is deleted.

本発明では、ネットワーク機器が、経路削除パケットに適合するフローエントリがない場合、経路削除パケットを一時的に保持する。   In the present invention, when there is no flow entry that matches the route deletion packet, the network device temporarily holds the route deletion packet.

本発明では、ネットワーク機器が、コントローラによって登録されるフローエントリと、一時的に保持している経路削除パケットのヘッダ情報とが適合する場合、その登録を破棄する。   In the present invention, when the flow entry registered by the controller matches the header information of the route deletion packet that is temporarily held, the network device discards the registration.

本発明により、複数のコントローラ間で同期を取ることなく、通信路を設定可能となる。また、不採用経路を削除することで、ネットワーク上に閉路が作成されることがなく、送信先へ正しく転送されないという障害が発生しない。また、ネットワーク機器がパケットに対して情報の付加や削除といった処理を行わない。   According to the present invention, a communication path can be set without synchronization between a plurality of controllers. Further, by deleting the non-accepted route, a closed circuit is not created on the network, and a failure that the transfer is not correctly performed to the transmission destination does not occur. In addition, the network device does not perform processing such as addition or deletion of information on the packet.

<付記>
上記の実施形態の一部又は全部は、以下の付記のように記載することも可能である。但し、実際には、以下の記載例に限定されない。
<Appendix>
Part or all of the above-described embodiments can be described as in the following supplementary notes. However, actually, it is not limited to the following description examples.

(付記1)
複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定する装置と、
複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、採用された経路のフローエントリに従って、パケットを転送する装置と
を具備する
ネットワーク機器。
(Appendix 1)
An apparatus for setting a flow entry in a flow table in which rules and operations for uniformly controlling a packet as a flow are defined based on control from each of a plurality of controllers;
Adopt the route set by the controller that completed the setting of the flow entry of all the network devices on the route the earliest among multiple controllers, and reject the route set by other controllers, and the flow of the adopted route A network device comprising a device for transferring a packet according to an entry.

(付記2)
付記1に記載のネットワーク機器であって、
複数のコントローラの各々から、経路上のネットワーク機器全ての設定を完了させた旨の設定完了通知を受信する装置と、
設定完了通知に応じて、不採用とした経路のフローエントリと適合する経路削除パケットを作成する装置と、
外部から経路削除パケットを受信した場合、経路削除パケットと適合するフローエントリの有無を確認する装置と、
不採用とした経路のフローエントリに従って、経路削除パケットを、不採用とした経路上の隣接するネットワーク機器に転送する装置と、
不採用とした経路のフローエントリを削除する装置と
を更に具備する
ネットワーク機器。
(Appendix 2)
The network device according to attachment 1, wherein
An apparatus for receiving a setting completion notification indicating that the setting of all network devices on the route has been completed from each of the plurality of controllers;
In response to the setting completion notification, a device that creates a route deletion packet that matches the flow entry of the rejected route,
When a route deletion packet is received from the outside, a device that checks whether there is a flow entry that matches the route deletion packet,
A device that transfers a route deletion packet to an adjacent network device on the rejected route according to the flow entry of the rejected route;
A network device further comprising a device for deleting a flow entry of a rejected route.

(付記3)
付記2に記載のネットワーク機器であって、
経路削除パケットと適合するフローエントリの内容を確認する装置と、
確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、経路削除パケットを破棄する装置と
を更に具備する
ネットワーク機器。
(Appendix 3)
The network device according to attachment 2, wherein
A device that checks the contents of the flow entry that matches the route deletion packet;
A network device further comprising: a device that deletes the flow entry and discards the route deletion packet if the content is transferred to an adjacent destination host as a result of confirmation.

(付記4)
付記3に記載のネットワーク機器であって、
経路削除パケットと適合するフローエントリがない場合、経路削除パケットを一時的に保持する装置と
複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが経路削除パケットと適合すれば、該フローエントリの設定を破棄する装置と、
保持してから所定の時間の経過後に、経路削除パケットを破棄する装置と
を更に具備する
ネットワーク機器。
(Appendix 4)
The network device according to attachment 3, wherein
If there is no flow entry that matches the route deletion packet, when the flow entry is set from either a device that temporarily holds the route deletion packet or one of multiple controllers, the flow entry matches the route deletion packet. For example, a device that discards the setting of the flow entry;
A network device further comprising a device that discards a route deletion packet after a predetermined time has elapsed since the retention.

(付記5)
ネットワーク機器により実施される経路制御方法であって、
複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定することと、
複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、採用された経路のフローエントリに従って、パケットを転送することと
を含む
経路制御方法。
(Appendix 5)
A path control method implemented by a network device,
Based on control from each of a plurality of controllers, setting a flow entry in which rules and operations for uniformly controlling a packet as a flow are defined in the flow table;
Adopt the route set by the controller that completed the setting of the flow entry of all the network devices on the route the earliest among multiple controllers, and reject the route set by other controllers, and the flow of the adopted route A routing method comprising forwarding a packet according to an entry.

(付記6)
付記5に記載の経路制御方法であって、
複数のコントローラの各々から、経路上のネットワーク機器全ての設定を完了させた旨の設定完了通知を受信することと、
設定完了通知に応じて、不採用とした経路のフローエントリと適合する経路削除パケットを作成することと、
外部から経路削除パケットを受信した場合、経路削除パケットと適合するフローエントリの有無を確認することと、
不採用とした経路のフローエントリに従って、経路削除パケットを、不採用とした経路上の隣接する経路制御方法に転送することと、
不採用とした経路のフローエントリを削除することと
を更に含む
経路制御方法。
(Appendix 6)
The route control method according to attachment 5, wherein
Receiving a setting completion notification from each of the plurality of controllers indicating that the setting of all network devices on the route has been completed;
In response to the setting completion notification, creating a route deletion packet that matches the flow entry of the rejected route,
If a route deletion packet is received from outside, check whether there is a flow entry that matches the route deletion packet,
Forwarding the route deletion packet to the adjacent route control method on the rejected route according to the flow entry of the rejected route;
A route control method further comprising: deleting a flow entry of the rejected route.

(付記7)
付記6に記載の経路制御方法であって、
経路削除パケットと適合するフローエントリの内容を確認することと、
確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、経路削除パケットを破棄することと
を更に含む
経路制御方法。
(Appendix 7)
The route control method according to attachment 6, wherein
Check the contents of the flow entry that matches the route deletion packet,
As a result of confirmation, if the content is to be transferred to an adjacent destination host, the flow entry is deleted and the route deletion packet is discarded.

(付記8)
付記7に記載の経路制御方法であって、
経路削除パケットと適合するフローエントリがない場合、経路削除パケットを一時的に保持することと
複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが経路削除パケットと適合すれば、該フローエントリの設定を破棄することと、
保持してから所定の時間の経過後に、経路削除パケットを破棄することと
を更に含む
経路制御方法。
(Appendix 8)
The route control method according to appendix 7,
If there is no flow entry that matches the route deletion packet, the flow entry will be matched with the route deletion packet when temporarily holding the route deletion packet and setting the flow entry from one of multiple controllers. For example, discarding the setting of the flow entry,
A route control method further comprising: discarding a route deletion packet after a predetermined time has elapsed since holding.

(付記9)
複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定するステップと、
複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、採用された経路のフローエントリに従って、パケットを転送するステップと
をネットワーク機器に実行させるための
プログラム。
(Appendix 9)
Based on control from each of the plurality of controllers, setting a flow entry in which a rule and operation for uniformly controlling a packet as a flow are defined in a flow table;
Adopt the route set by the controller that completed the setting of the flow entry of all the network devices on the route the earliest among multiple controllers, and reject the route set by other controllers, and the flow of the adopted route A program for causing a network device to execute a packet forwarding step according to an entry.

(付記10)
付記9に記載のプログラムであって、
複数のコントローラの各々から、経路上のネットワーク機器全ての設定を完了させた旨の設定完了通知を受信するステップと、
設定完了通知に応じて、不採用とした経路のフローエントリと適合する経路削除パケットを作成するステップと、
外部から経路削除パケットを受信した場合、経路削除パケットと適合するフローエントリの有無を確認するステップと、
不採用とした経路のフローエントリに従って、経路削除パケットを、不採用とした経路上の隣接するプログラムに転送するステップと、
不採用とした経路のフローエントリを削除するステップと
を更にネットワーク機器に実行させるための
プログラム。
(Appendix 10)
The program according to appendix 9, wherein
Receiving a setting completion notification from each of the plurality of controllers indicating that the setting of all network devices on the route has been completed;
In response to the setting completion notification, creating a route deletion packet that matches the flow entry of the rejected route;
When a route deletion packet is received from the outside, a step of confirming whether there is a flow entry that matches the route deletion packet;
Transferring a route deletion packet to an adjacent program on the rejected route according to the flow entry of the rejected route;
A program for causing a network device to further execute a step of deleting a flow entry of a rejected route.

(付記11)
付記10に記載のプログラムであって、
経路削除パケットと適合するフローエントリの内容を確認するステップと、
確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、経路削除パケットを破棄するステップと
を更にネットワーク機器に実行させるための
プログラム。
(Appendix 11)
The program according to attachment 10, wherein
Checking the contents of the flow entry that matches the route deletion packet;
A program for causing the network device to further execute a step of deleting the flow entry and discarding the route deletion packet if the content is transferred to an adjacent destination host as a result of the confirmation.

(付記12)
付記11に記載のプログラムであって、
経路削除パケットと適合するフローエントリがない場合、経路削除パケットを一時的に保持するステップと
複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが経路削除パケットと適合すれば、該フローエントリの設定を破棄するステップと、
保持してから所定の時間の経過後に、経路削除パケットを破棄するステップと
を更にネットワーク機器に実行させるための
プログラム。
(Appendix 12)
The program according to attachment 11, wherein
If there is no flow entry that matches the route deletion packet, the flow entry is matched with the route deletion packet when the flow entry is set from one of multiple controllers and the step of temporarily holding the route deletion packet. For example, a step of discarding the setting of the flow entry;
A program for causing a network device to further execute a step of discarding a route deletion packet after a predetermined time has elapsed since the retention.

<備考>
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
<Remarks>
As mentioned above, although embodiment of this invention was explained in full detail, actually, it is not restricted to said embodiment, Even if there is a change of the range which does not deviate from the summary of this invention, it is included in this invention.

なお、本出願は、日本出願番号2011−048143に基づく優先権を主張するものであり、日本出願番号2011−048143における開示内容は引用により本出願に組み込まれる。   In addition, this application claims the priority based on the Japanese application number 2011-048143, and the content disclosed in the Japanese application number 2011-048143 is incorporated into the present application by reference.

Claims (10)

複数のネットワーク機器と、
パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリを、前記経路上のネットワーク機器のフローテーブルに設定する複数のコントローラと
を含み、
前記経路上のネットワーク機器は、前記複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、前記採用された経路のフローエントリに従って、パケットを転送する
ネットワークシステム。
Multiple network devices,
A plurality of controllers for setting a flow entry in which rules and operations for uniformly controlling a packet as a flow are defined in a flow table of a network device on the route;
The network device on the route adopts the route set by the controller that has completed the setting of the flow entry of all the network devices on the route earliest among the plurality of controllers, and the route set by other controllers is not used. A network system that adopts and forwards packets according to the flow entry of the adopted route.
請求項1に記載のネットワークシステムであって、
前記複数のコントローラの各々は、前記経路上のネットワーク機器全ての設定を完了させた際に、前記パケットの問い合わせを行ったネットワーク機器に対して、設定完了通知を送信し、
前記パケットの問い合わせを行ったネットワーク機器は、前記設定完了通知に応じて、前記不採用とした経路のフローエントリと適合する経路削除パケットを作成し、前記不採用とした経路のフローエントリに従って、前記経路削除パケットを、前記不採用とした経路上の隣接するネットワーク機器に転送し、前記不採用とした経路のフローエントリを削除し、
前記経路上のネットワーク機器は、前記経路削除パケットを受信すると、前記経路削除パケットと適合するフローエントリの有無を確認し、適合するフローエントリがある場合、該フローエントリに従って、前記経路削除パケットを、前記不採用とした経路上の隣接するネットワーク機器に転送し、該フローエントリを削除する
ネットワークシステム。
The network system according to claim 1,
Each of the plurality of controllers, when completing the setting of all the network devices on the route, transmits a setting completion notification to the network device that inquired the packet,
In response to the setting completion notification, the network device that has inquired the packet creates a route deletion packet that matches the flow entry of the rejected route, and according to the flow entry of the rejected route, Transfer the route deletion packet to the adjacent network device on the rejected route, delete the flow entry of the rejected route,
When the network device on the route receives the route deletion packet, it checks whether there is a flow entry that matches the route deletion packet, and if there is a matching flow entry, the route deletion packet is sent according to the flow entry. A network system for transferring to an adjacent network device on the rejected route and deleting the flow entry.
請求項2に記載のネットワークシステムであって、
前記経路上のネットワーク機器は、前記経路削除パケットと適合するフローエントリの内容を確認し、確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、前記経路削除パケットを破棄する
ネットワークシステム。
The network system according to claim 2,
The network device on the route confirms the content of the flow entry that matches the route deletion packet, and if the result of the confirmation is the content to be transferred to an adjacent destination host, deletes the flow entry and deletes the route. A network system that discards packets.
請求項3に記載のネットワークシステムであって、
前記経路上のネットワーク機器は、前記経路削除パケットと適合するフローエントリがない場合、前記経路削除パケットを一時的に保持し、前記複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが前記経路削除パケットと適合すれば、該フローエントリの設定を破棄し、保持してから所定の時間の経過後に、前記経路削除パケットを破棄する
ネットワークシステム。
The network system according to claim 3,
When there is no flow entry that matches the route deletion packet, the network device on the route temporarily holds the route deletion packet, and when the flow entry is set from any of the plurality of controllers, A network system in which if the flow entry matches the route deletion packet, the setting of the flow entry is discarded, and the route deletion packet is discarded after a predetermined time elapses after holding.
複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定する手段と、
前記複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、前記採用された経路のフローエントリに従って、パケットを転送する手段と
を具備する
ネットワーク機器。
Based on control from each of a plurality of controllers, means for setting a flow entry in which rules and operations for uniformly controlling packets as a flow are defined in a flow table;
Adopting the route set by the controller that has completed the setting of the flow entry of all network devices on the route earliest among the plurality of controllers, disabling the route set by the other controller, and adopting the route Means for transferring packets in accordance with the flow entry.
請求項5に記載のネットワーク機器であって、
前記複数のコントローラの各々から、前記経路上のネットワーク機器全ての設定を完了させた旨の設定完了通知を受信する手段と、
前記設定完了通知に応じて、前記不採用とした経路のフローエントリと適合する経路削除パケットを作成する手段と、
外部から前記経路削除パケットを受信した場合、前記経路削除パケットと適合するフローエントリの有無を確認する手段と、
前記不採用とした経路のフローエントリに従って、前記経路削除パケットを、前記不採用とした経路上の隣接するネットワーク機器に転送する手段と、
前記不採用とした経路のフローエントリを削除する手段と
を更に具備する
ネットワーク機器。
The network device according to claim 5,
Means for receiving, from each of the plurality of controllers, a setting completion notification indicating that the setting of all network devices on the path has been completed;
Means for creating a route deletion packet that matches the flow entry of the rejected route in response to the setting completion notification;
Means for confirming the presence or absence of a flow entry that matches the route deletion packet when the route deletion packet is received from the outside;
Means for transferring the route deletion packet to an adjacent network device on the rejected route according to the flow entry of the rejected route;
Network equipment further comprising means for deleting the flow entry of the route that has not been adopted.
請求項6に記載のネットワーク機器であって、
前記経路削除パケットと適合するフローエントリの内容を確認する手段と、
確認の結果、隣接する送信先ホストに転送する内容であれば、該フローエントリを削除し、前記経路削除パケットを破棄する手段と
を更に具備する
ネットワーク機器。
The network device according to claim 6, wherein
Means for confirming the contents of a flow entry that matches the route deletion packet;
A network device further comprising means for deleting the flow entry and discarding the route deletion packet if the content is transferred to an adjacent destination host as a result of confirmation.
請求項7に記載のネットワーク機器であって、
前記経路削除パケットと適合するフローエントリがない場合、前記経路削除パケットを一時的に保持する手段と
前記複数のコントローラのいずれかからフローエントリに設定が行われた際、該フローエントリが前記経路削除パケットと適合すれば、該フローエントリの設定を破棄する手段と、
保持してから所定の時間の経過後に、前記経路削除パケットを破棄する手段と
を更に具備する
ネットワーク機器。
The network device according to claim 7,
If there is no flow entry that matches the route deletion packet, the flow entry is deleted when the route entry is set by any one of the means for temporarily holding the route deletion packet and the plurality of controllers. A means for discarding the setting of the flow entry if it matches the packet;
Network equipment further comprising means for discarding the route deletion packet after elapse of a predetermined time from holding.
ネットワーク機器により実施される経路制御方法であって、
複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定することと、
前記複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、前記採用された経路のフローエントリに従って、パケットを転送することと
を含む
経路制御方法。
A path control method implemented by a network device,
Based on control from each of a plurality of controllers, setting a flow entry in which rules and operations for uniformly controlling a packet as a flow are defined in the flow table;
Adopting the route set by the controller that has completed the setting of the flow entry of all network devices on the route earliest among the plurality of controllers, disabling the route set by the other controller, and adopting the route Routing method comprising: forwarding the packet according to a flow entry of:
複数のコントローラの各々からの制御に基づいて、パケットをフローとして一律に制御するためのルールと動作が定義されたフローエントリをフローテーブルに設定するステップと、
前記複数のコントローラの中で最も早く経路上のネットワーク機器全てのフローエントリの設定を完了させたコントローラの設定した経路を採用し、他のコントローラの設定した経路を不採用とし、前記採用された経路のフローエントリに従って、パケットを転送するステップと
をネットワーク機器に実行させるためのプログラムを格納した
記憶媒体。
Based on control from each of the plurality of controllers, setting a flow entry in which a rule and operation for uniformly controlling a packet as a flow are defined in a flow table;
Adopting the route set by the controller that has completed the setting of the flow entry of all network devices on the route earliest among the plurality of controllers, disabling the route set by the other controller, and adopting the route A storage medium storing a program for causing a network device to execute a step of transferring a packet in accordance with the flow entry.
JP2013503488A 2011-03-04 2012-03-01 Network system, network device, and path control method Expired - Fee Related JP5495150B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013503488A JP5495150B2 (en) 2011-03-04 2012-03-01 Network system, network device, and path control method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011048143 2011-03-04
JP2011048143 2011-03-04
JP2013503488A JP5495150B2 (en) 2011-03-04 2012-03-01 Network system, network device, and path control method
PCT/JP2012/055272 WO2012121114A1 (en) 2011-03-04 2012-03-01 Network system, network device, and path control method

Publications (2)

Publication Number Publication Date
JP5495150B2 true JP5495150B2 (en) 2014-05-21
JPWO2012121114A1 JPWO2012121114A1 (en) 2014-07-17

Family

ID=46798080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013503488A Expired - Fee Related JP5495150B2 (en) 2011-03-04 2012-03-01 Network system, network device, and path control method

Country Status (2)

Country Link
JP (1) JP5495150B2 (en)
WO (1) WO2012121114A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013133227A1 (en) * 2012-03-05 2015-07-30 日本電気株式会社 Network system, switch, and network construction method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015021594A1 (en) 2013-08-13 2015-02-19 华为技术有限公司 Wireless access method, apparatus and system
CN103874078B (en) * 2014-02-14 2017-05-31 北京邮电大学 A kind of mobile communication access network framework
KR102251407B1 (en) * 2014-09-03 2021-05-12 주식회사 케이티 Duplex control system and method for control in software defined network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103909A1 (en) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow COMMUNICATION SYSTEM AND OpenFlow COMMUNICATION METHOD
JP2011166384A (en) * 2010-02-08 2011-08-25 Nec Corp Computer system and communication method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010103909A1 (en) * 2009-03-09 2010-09-16 日本電気株式会社 OpenFlow COMMUNICATION SYSTEM AND OpenFlow COMMUNICATION METHOD
JP2011166384A (en) * 2010-02-08 2011-08-25 Nec Corp Computer system and communication method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013133227A1 (en) * 2012-03-05 2015-07-30 日本電気株式会社 Network system, switch, and network construction method
US9548933B2 (en) 2012-03-05 2017-01-17 Nec Corporation Network system, switch, and methods of network configuration

Also Published As

Publication number Publication date
JPWO2012121114A1 (en) 2014-07-17
WO2012121114A1 (en) 2012-09-13

Similar Documents

Publication Publication Date Title
JP5842933B2 (en) Network system and route information synchronization method
JP5610247B2 (en) Network system and policy route setting method
JP5935873B2 (en) Network system, switch, and network construction method
JP5594552B2 (en) Network system and route control method
JP5846221B2 (en) Network system and topology management method
JP5660211B2 (en) Communication path control system and communication path control method
KR101501397B1 (en) Network system, switch, and connection terminal detection method
JP5747993B2 (en) Load reduction system and load reduction method
JP5532276B2 (en) Switch system and data transfer method
JP2011160363A (en) Computer system, controller, switch, and communication method
JP5495150B2 (en) Network system, network device, and path control method
JP5682846B2 (en) Network system, packet processing method, and storage medium
JP2011166692A (en) Network system, network device, route information updating method, and program
JP5966488B2 (en) Network system, switch, and communication delay reduction method
JP5821641B2 (en) Network system, switch, and inter-switch setting notification method
JP2013115733A (en) Network system and network control method
JP2015511097A (en) COMMUNICATION SYSTEM, CONTROL DEVICE, COMMUNICATION METHOD, AND PROGRAM

Legal Events

Date Code Title Description
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: 20140207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140220

R150 Certificate of patent or registration of utility model

Ref document number: 5495150

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees