JP2013201478A - Network system, switch and communication delay reduction method - Google Patents

Network system, switch and communication delay reduction method Download PDF

Info

Publication number
JP2013201478A
JP2013201478A JP2012066958A JP2012066958A JP2013201478A JP 2013201478 A JP2013201478 A JP 2013201478A JP 2012066958 A JP2012066958 A JP 2012066958A JP 2012066958 A JP2012066958 A JP 2012066958A JP 2013201478 A JP2013201478 A JP 2013201478A
Authority
JP
Japan
Prior art keywords
switch
packet
host
tcp connection
ofs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012066958A
Other languages
Japanese (ja)
Other versions
JP5966488B2 (en
Inventor
Tatsunosuke Katsukura
辰之助 勝倉
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 JP2012066958A priority Critical patent/JP5966488B2/en
Publication of JP2013201478A publication Critical patent/JP2013201478A/en
Application granted granted Critical
Publication of JP5966488B2 publication Critical patent/JP5966488B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce a communication delay at proxy TCP connection which is performed by a switch in a network of a CD separation type, such as an open flow network.SOLUTION: A controller sets a flow entry, in which a rule and an action to control uniformly packets as a flow are defined, to each of a plurality of switches. On receipt of a SYN packet from a transmission source host, each switch requests the controller to calculate a route. Each switch, if it is a head switch on a communication route obtained as a result of the route calculation, performs proxy TCP connection to a transmission destination host. If the switch is not a head switch on the communication route, the switch transfers the SYN packet to perform proxy TCP connection between the head switch and the transmission destination host.

Description

本発明は、ネットワークシステムに関し、特にネットワークシステムにおける通信遅延短縮方法に関する。   The present invention relates to a network system, and more particularly to a communication delay reduction method in a network system.

従来のネットワーク機器はブラックボックスであり、外部から負荷分散や片寄等柔軟性に富んだ制御ができない。このため、ネットワークの規模が大きくなると、システムとしての挙動の把握と改善が困難になり、設計や構成変更には多大なコストを伴うことが問題であった。   A conventional network device is a black box, and cannot perform flexible control such as load distribution and offset from the outside. For this reason, when the scale of the network becomes large, it becomes difficult to understand and improve the behavior of the system, and there has been a problem that design and configuration changes are accompanied by a great cost.

こうした課題を解決するための技術として、ネットワーク機器のパケット転送機能と経路制御機能を分離する手法が考えられている。例えば、パケット転送機能をネットワーク機器が担当し、経路制御機能をネットワーク機器の外部に分離した制御装置が担当することで、制御が容易になり柔軟性に富んだネットワークを構築することが可能になる。   As a technique for solving such a problem, a technique for separating the packet transfer function and the path control function of a network device is considered. For example, the network device is in charge of the packet transfer function, and the control device in charge of the path control function outside the network device is in charge, thereby making it easy to control and building a flexible network. .

[CD分離型ネットワークの説明]
機能を分離したネットワークの1つとして、コントロールプレーン側の制御装置からデータプレーン側のノード装置を制御するCD(C:コントロールプレーン/D:データプレーン)分離型ネットワークが提案されている。
[Description of CD-separated network]
A CD (C: control plane / D: data plane) separation type network that controls a data plane side node device from a control plane side control device has been proposed as one of the networks having separated functions.

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

[オープンフローネットワークの説明]
オープンフローネットワークでは、制御装置に相当するオープンフローコントローラ(OFC:OpenFlow Controller)が、ノード装置に相当するオープンフロースイッチ(OFS:OpenFlow Switch)の経路制御に関するフローテーブルを操作することにより、オープンフロースイッチ(OFS)の挙動を制御する。
[Explanation of OpenFlow network]
In the OpenFlow network, an OpenFlow controller (OFC: OpenFlow Controller) corresponding to a control device operates a flow table related to path control of an OpenFlow switch (OFS: OpenFlow Switch) corresponding to a node device, thereby opening the OpenFlow switch. Control the behavior of (OFS).

以下、記載の簡略化のため、オープンフローコントローラ(OFC)を「コントローラ(OFC)」と表記し、オープンフロースイッチ(OFS)を「スイッチ(OFS)」と表記する。   Hereinafter, for simplification of description, the OpenFlow controller (OFC) is referred to as “controller (OFC)”, and the OpenFlow switch (OFS) is referred to as “switch (OFS)”.

コントローラ(OFC)とスイッチ(OFS)の間は、専用線やSSL(Secure Socket Layer)等により保護された通信路である「セキュアチャンネル」セキュアチャンネル(Secure Channel)により接続されている。コントローラ(OFC)とスイッチ(OFS)とは、セキュアチャンネルを介して、オープンフロー規約(OpenFlow Protocol)に準拠したオープンフローメッセージ(OpenFlow Message)を送受信する。   The controller (OFC) and the switch (OFS) are connected by a “secure channel” (Secure Channel) that is a communication path protected by a dedicated line, SSL (Secure Socket Layer), or the like. The controller (OFC) and the switch (OFS) transmit and receive an OpenFlow message (OpenFlow Message) that conforms to the OpenFlow Protocol via the secure channel.

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

フローテーブルとは、フローとして扱うパケットを特定するための判別条件(ルール)と、パケットがルールに適合(マッチ)した回数を示す統計情報と、パケットに対して行うべき処理内容(アクション)の組を定義したフローエントリ(Flow entry)の集合である。   A flow table is a set of determination conditions (rules) for identifying packets handled as a flow, statistical information indicating the number of times a packet matches (matches) a rule, and processing contents (actions) to be performed on the packet. Is a set of flow entries.

フローエントリのルールは、パケットのヘッダ領域(フィールド)に含まれる各プロトコル階層の情報のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。各プロトコル階層の情報の例として、送信先アドレス(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 defined by various combinations using any or all of the information of each protocol layer included in the header area (field) of the packet and can be distinguished. As an example of information of each protocol layer, a transmission destination address (Destination Address), a transmission source address (Source Address), a transmission destination port (Destination Port), a transmission source port (Source Port), and the like can be considered. 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 the ingress port (Ingress Port) can also be used as a rule for the flow entry. In addition, as a rule of the flow entry, a part (or all) of a header area value of a packet handled as a flow can be set by a regular expression, a wild card “*”, or the like.

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

スイッチ(OFS)は、フローエントリのルールに適合するパケット群(パケット系列)に対して、フローエントリのアクションを実行する。具体的には、スイッチ(OFS)は、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルールを持つフローエントリを検索する。検索の結果、受信パケットのヘッダ情報に適合するルールを持つフローエントリが見つかった場合、当該フローエントリの統計情報を更新すると共に、受信パケットに対して、当該フローエントリのアクションとして指定された動作を実施する。一方、検索の結果、受信パケットのヘッダ情報に適合するルールを持つフローエントリが見つからなかった場合、当該受信パケットを最初のパケット(first packet)と判断し、制御チャネルを介して、オープンフローネットワークにおけるコントローラ(OFC)に対して、受信パケット(又はそのコピー)を転送し、受信パケットの送信元・送信先(宛先)等に基づいたパケットの経路計算を要求し、応答としてフローエントリの設定用メッセージを受信し、フローテーブルを更新する。   The switch (OFS) executes a flow entry action on a packet group (packet series) that conforms to the rules of the flow entry. Specifically, when receiving the packet, the switch (OFS) searches the flow table for a flow entry having a rule that matches the header information of the received packet. As a result of the search, when a flow entry having a rule that matches the header information of the received packet is found, the flow entry statistical information is updated, and the operation specified as the action of the flow entry is performed on the received packet. carry out. On the other hand, if a flow entry having a rule that matches the header information of the received packet is not found as a result of the search, the received packet is determined to be the first packet (first packet), and in the OpenFlow network via the control channel. Transfers the received packet (or a copy thereof) to the controller (OFC), requests packet route calculation based on the source / destination (destination) of the received packet, etc., and sets a flow entry message as a response Is received and the flow table is updated.

なお、フローテーブルには、低い優先度で、全てのパケットのヘッダ情報に適合するルールを持つデフォルトエントリが登録されている。受信パケットに適合するフローエントリが他に見つからなかった場合、受信パケットは、このデフォルトエントリに適合する。デフォルトエントリのアクションは、「コントローラ(OFC)への当該受信パケットの問い合わせ情報の送信」である。   In the flow table, a default entry having a rule matching the header information of all packets with a low priority is registered. If no other flow entry that matches the received packet is found, the received packet matches this default entry. The action of the default entry is “transmission of inquiry information of the received packet to the controller (OFC)”.

[オープンフローネットワークのセキュリティ対応]
近年、ネットワーク機器の増加に伴うネットワーク管理コストの増加やネットワーク構成変更の柔軟性が低いことが問題視されており、この問題を解決する技術としてオープンフロー技術が生み出された。
[Security support for OpenFlow networks]
In recent years, the increase in network management costs accompanying the increase in network devices and the low flexibility of network configuration changes have been regarded as problems, and OpenFlow technology has been created as a technology to solve this problem.

オープンフロー技術により、パケットの経路を計算・設定する処理をコントローラ(OFC)に集中させることで、既存のネットワークよりも管理や構成変更のコストを削減したオープンフローネットワークを構成することができる。   By concentrating the process of calculating and setting the packet route on the controller (OFC) by the OpenFlow technology, it is possible to configure an OpenFlow network that reduces management and configuration change costs compared to the existing network.

しかし、このオープンフローネットワークにおいては、現状では「SYN Flood」攻撃と呼ばれるDoS攻撃(Denial of Service attack)への対応が考慮されていない。   However, in this open flow network, currently, a response to a DoS attack (Denial of Service attack) called a “SYN Flood” attack is not considered.

Dos攻撃の一般的な攻撃の1つである「SYN Flood」攻撃は、攻撃者がTCP接続の手順を中途半端な状態で中止することでサーバのリソースを枯渇させる攻撃である。クライアントとサーバとの間でTCP接続を確立するには、クライアントがサーバに「SYNパケット」を送信し、サーバがクライアントに「ACKパケット」を返信し、最後にクライアントがACKパケットを送り返すという手順を踏む。最後のACKパケットが届くまでサーバ側は「応答待ち」状態のまま待機することになり、その接続のために用意されたメモリ領域等のリソースを開放できなくなる。悪意のある攻撃者が大量のSYNパケットを送信し、故意にACKパケットを送らずに放置すると、そのうちサーバ側の「応答待ち」の接続数が限界を超え、新たに接続を受け付けられない状態になる。   The “SYN Flood” attack, which is one of the general attacks of the Dos attack, is an attack that exhausts server resources by stopping the TCP connection procedure in a halfway state. To establish a TCP connection between a client and a server, the client sends a “SYN packet” to the server, the server sends an “ACK packet” back to the client, and finally the client sends back an ACK packet. Step on. Until the last ACK packet arrives, the server side waits in a “waiting for response” state, and resources such as a memory area prepared for the connection cannot be released. If a malicious attacker sends a large number of SYN packets and intentionally leaves them without sending an ACK packet, the number of “response waiting” connections on the server side will exceed the limit and new connections will not be accepted. Become.

既存のネットワークをオープンフローネットワークに置換する場合、「SYN Flood」攻撃への対応を行う必要があるが、既存のネットワークにおける既存の防御手法をそのままオープンフローネットワークに適用するのは困難である。その理由について、以下に詳細に説明する。   When replacing an existing network with an OpenFlow network, it is necessary to cope with the “SYN Flood” attack, but it is difficult to apply an existing defense technique in the existing network as it is to the OpenFlow network. The reason will be described in detail below.

[既存の防御手法]
まず、「SYN Flood」攻撃に対する既存の防御手法について説明する。
[Existing defense methods]
First, an existing defense technique against the “SYN Flood” attack will be described.

防御手法としては、大きく分けて2種類の手法がある。1つは攻撃対象とされるサーバ側の防御手法である。もう1つは攻撃パケットを転送するネットワーク機器側の防御手法である。   There are roughly two types of defense methods. One is a defense method on the server side that is targeted for attack. The other is a defense technique on the network device side that forwards attack packets.

(1)サーバ側の防御手法
サーバ側の防御手法には、「SYN cookies」や「SYN cache」等が従来技術として存在する。
(1) Server-side defense methods As server-side defense methods, “SYN cookies”, “SYN cache”, and the like exist as conventional technologies.

(2)ネットワーク機器側の防御手法
ネットワーク機器側の防御手法には、パケットの内容によって、受信したパケットの転送先を決定するルータ(Router)やロードバランサ(Load Balancer)等のネットワーク機器が、攻撃対象のサーバの代わりに、パケットの送信元ホストとのTCP接続(代理TCP接続)を行い、不正な接続やパケットを検知して防御するという手法が従来技術として存在する。
(2) Network device side defense method Network device side defense method is based on the contents of the packet, such as a router (Router) or a load balancer (Load Balancer) that determines the forwarding destination of the received packet. As a conventional technique, a TCP connection (proxy TCP connection) with a packet transmission source host is performed instead of the target server, and an illegal connection or packet is detected and protected.

但し、これらの防御手法をオープンフローネットワークに適用しようとした場合、サーバ側の防御手法及びネットワーク機器側の防御手法のいずれにおいても、以下のように新たな課題が発生する。   However, when these defense techniques are applied to the OpenFlow network, new problems arise as follows in both the defense technique on the server side and the defense technique on the network device side.

(1)サーバ側の防御手法を用いた場合
オープンフローネットワークにおいては、ネットワーク機器に相当するスイッチ(OFS)自身が管理しているパケットの転送先を決めるための経路情報であるフローエントリに合致しないパケットを受信すると、コントローラ(OFC)に経路計算と設定を要求するために、パケットをコントローラ(OFC)へ転送する。そのため、パケットの転送処理を行うスイッチ(OFS)が大量の攻撃パケットを受信した場合、コントローラ(OFC)に大量の攻撃パケットを転送するため、コントローラ(OFC)の負荷が高くなり、適切にパケットを処理できなくなる可能性がある。
(1) When using server-side defense methods In an OpenFlow network, the switch (OFS) corresponding to the network device itself does not match the flow entry that is the route information for deciding the packet forwarding destination. When the packet is received, the packet is transferred to the controller (OFC) in order to request the controller (OFC) for route calculation and setting. Therefore, when a switch (OFS) that performs packet forwarding processing receives a large amount of attack packets, a large amount of attack packets are forwarded to the controller (OFC), so the load on the controller (OFC) increases and packets are appropriately sent. It may become impossible to process.

(2)ネットワーク機器側の防御手法を用いた場合
オープンフローネットワークにおいても、既存の防御手法と同様に、パケットの送信先ホスト(サーバ)の代理として、ネットワーク機器に相当するスイッチ(OFS)がパケットの送信元ホストとの代理TCP接続を行い、更に、送信先ホストとも代理TCP接続を行う必要がある。しかし、通信経路上に複数のスイッチ(OFS)がある場合、各スイッチ(OFS)は、受信したパケットが、送信元ホスト及び送信先ホストの各々と既に代理TCP接続が行われた上で転送されたパケットであるかどうかを判断できない。従って、各スイッチ(OFS)は、個別に送信元ホスト及び送信先ホストの各々と代理TCP接続を行わなければならない。そのため、「各スイッチ(OFS)の代理TCP接続が全て確立するまでの待機時間によって通信遅延が増大する」という課題が発生してしまう。
(2) When the defense method on the network device side is used In the OpenFlow network, the switch (OFS) corresponding to the network device acts as a proxy for the packet destination host (server) as well as the existing defense method. It is necessary to perform proxy TCP connection with the transmission source host and also perform proxy TCP connection with the transmission destination host. However, when there are a plurality of switches (OFS) on the communication path, each switch (OFS) transfers the received packet after the proxy TCP connection is already established with each of the transmission source host and the transmission destination host. Cannot determine whether the packet is a bad packet. Accordingly, each switch (OFS) must individually make a proxy TCP connection with each of the transmission source host and the transmission destination host. Therefore, the problem that “the communication delay increases due to the standby time until all the proxy TCP connections of each switch (OFS) are established” occurs.

但し、ネットワーク機器側の防御手法を使用する場合、スイッチ(OFS)自体が不正な接続やパケットを検知して防御することが可能であるため、サーバ側の防御手法の課題である「コントローラ(OFC)に攻撃パケットが転送される」という課題は発生しない。   However, when using a defense method on the network device side, the switch (OFS) itself can detect and protect against unauthorized connections and packets, so the “controller (OFC) The attack packet is forwarded to “) does not occur.

“OpenFlow Switch Specification, Version 1.1.0 Implemented”,[online],February 28, 2011,インターネット(URL:http://www.openflowswitch.org/documents/openflow−spec−v1.1.0.pdf)“OpenFlow Switch Specification, Version 1.1.0 Implemented”, [online], February 28, 2011, Internet (URL: http://www.openflowswitch.org/documents-openpf.1-1.0. )

オープンフローネットワークのように、パケット転送の機能と、経路制御の機能と、を分離したネットワーク機器によって構成されるネットワークにおいて、制御機能を担当するコントローラ(OFC)のセキュリティを考慮した際、特に「SYN Flood」攻撃対策を考慮すると、パケット転送機能を担当するスイッチ(OFS)における代理TCP接続による防御手法を採用することが考えられる。   When considering the security of the controller (OFC) in charge of the control function in a network composed of network devices in which the packet transfer function and the path control function are separated as in the OpenFlow network, the “SYN” Considering the “Flood” attack countermeasure, it is conceivable to adopt a defense method by proxy TCP connection in the switch (OFS) in charge of the packet transfer function.

しかし、サーバの代わりに、スイッチが送信元ホストとの代理TCP接続を行うという既存のネットワークにおける防御手法を、そのままオープンフローネットワークに適用するのは困難である。例えば、パケットの通信経路上に複数のスイッチ(OFS)が存在する場合、スイッチ(OFS)は、受信したSYNパケットが、送信元ホストや送信先ホストと既に代理TCP接続が行われた上で転送されたパケットかどうかを判断できない。そのため、各スイッチ(OFS)は、それぞれ個別に送信元ホストや送信先ホストと代理TCP接続しなければならず、全てのスイッチ(OFS)の代理TCP接続の確立が完了するまで待機すると、通信遅延が増大するという課題があった。   However, it is difficult to apply the existing network defense method in which the switch performs proxy TCP connection with the source host instead of the server to the OpenFlow network as it is. For example, if there are multiple switches (OFS) on the packet communication path, the switch (OFS) transfers the received SYN packet after the proxy TCP connection has already been established with the source host or destination host. It is not possible to determine whether it is a received packet. Therefore, each switch (OFS) must individually make a proxy TCP connection with the transmission source host and the transmission destination host, and when waiting until the establishment of the proxy TCP connection of all the switches (OFS) is completed, a communication delay occurs. There has been a problem of increasing.

本発明に係るネットワークシステムは、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリを、複数のスイッチと、複数のスイッチの各々に設定するコントローラとを含む。該各スイッチは、送信元ホストからSYNパケットを受信した場合、該コントローラに経路計算を要求し、該経路計算の結果として得られた通信経路上の先頭スイッチである場合、送信先ホストとの代理TCP接続を行い、該通信経路上の先頭スイッチではない場合、先頭スイッチと該送信先ホストとの代理TCP接続のためのSYNパケットを転送する。   The network system according to the present invention includes a plurality of switches and a controller that sets each of the plurality of switches with a flow entry in which rules and actions for uniformly controlling packets as flows are defined. When each switch receives a SYN packet from the source host, it requests the controller to calculate the route. When it is the first switch on the communication route obtained as a result of the route calculation, each switch acts as a proxy with the destination host. If the TCP connection is made and it is not the head switch on the communication path, a SYN packet for proxy TCP connection between the head switch and the destination host is transferred.

本発明に係るスイッチは、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行う機能部と、送信元ホストからSYNパケットを受信した場合、フローエントリの設定を行うコントローラに経路計算を要求する機能部と、該経路計算の結果として得られた通信経路上の先頭スイッチである場合、送信先ホストとの代理TCP接続を行う機能部と、該通信経路上の先頭スイッチではない場合、先頭スイッチと該送信先ホストとの代理TCP接続のためのSYNパケットを転送する機能部とを備える。   When the switch according to the present invention receives a SYN packet from a transmission source host and a functional unit that processes a received packet according to a flow entry in which rules and actions for uniformly controlling the packet as a flow are defined A function unit that requests the path calculation to the controller that sets the flow entry, and a function unit that performs proxy TCP connection with the destination host in the case of the top switch on the communication path obtained as a result of the path calculation; If it is not the head switch on the communication path, a function unit is provided that transfers a SYN packet for proxy TCP connection between the head switch and the destination host.

本発明に係る通信遅延短縮方法は、ネットワークシステムにおいて実施される通信遅延短縮方法である。この通信遅延短縮方法では、複数のスイッチの各々が、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行う。また、該複数のスイッチのうち、送信元ホストからSYNパケットを受信したスイッチが、フローエントリの設定を行うコントローラに経路計算を要求する。また、該複数のスイッチのうち、該経路計算の結果として得られた通信経路上の先頭スイッチが、送信先ホストとの代理TCP接続を行う。また、該複数のスイッチのうち、該通信経路上の先頭スイッチ以外のスイッチが、先頭スイッチと該送信先ホストとの代理TCP接続のためのSYNパケットを転送する。   The communication delay reduction method according to the present invention is a communication delay reduction method implemented in a network system. In this communication delay shortening method, each of a plurality of switches processes received packets according to a flow entry in which rules and actions for uniformly controlling packets as flows are defined. Of the plurality of switches, the switch that receives the SYN packet from the transmission source host requests a route calculation to the controller that sets the flow entry. Of the plurality of switches, the head switch on the communication path obtained as a result of the path calculation makes a proxy TCP connection with the destination host. Of the plurality of switches, a switch other than the head switch on the communication path transfers a SYN packet for proxy TCP connection between the head switch and the destination host.

本発明に係るプログラムは、(1)パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うステップと、(2)送信元ホストからSYNパケットを受信した場合、フローエントリの設定を行うコントローラに経路計算を要求するステップと、(3)該経路計算の結果として得られた通信経路上の先頭スイッチである場合、送信先ホストとの代理TCP接続を行うステップと、(4)該通信経路上の先頭スイッチではない場合、先頭スイッチと該送信先ホストとの代理TCP接続のためのSYNパケットを転送するステップとを、スイッチとして使用される計算機に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。   The program according to the present invention includes (1) a step of processing a received packet in accordance with a flow entry in which rules and actions for uniformly controlling a packet as a flow are defined, and (2) a SYN from the transmission source host. When a packet is received, a step of requesting a route calculation to the controller that sets the flow entry, and (3) if it is the first switch on the communication route obtained as a result of the route calculation, a proxy with the destination host A step of performing TCP connection and (4) a step of transferring a SYN packet for proxy TCP connection between the head switch and the destination host when not the head switch on the communication path are used as switches. This is a program for causing a computer to execute. The program according to the present invention can be stored in a storage device or a storage medium.

オープンフローネットワーク等のCD分離型ネットワークにおいて、スイッチによる代理TCP接続時の通信遅延を短縮する。   In a CD separation type network such as an OpenFlow network, the communication delay at the time of proxy TCP connection by a switch is reduced.

本発明に係るオープンフローネットワークシステムの構成例を示す図である。It is a figure which shows the structural example of the open flow network system which concerns on this invention. 本発明に係るフローエントリの仕様について説明するための図である。It is a figure for demonstrating the specification of the flow entry which concerns on this invention. コントローラ(OFC)の構成例を示す図である。It is a figure which shows the structural example of a controller (OFC). スイッチ(OFS)の構成例を示す図である。It is a figure which shows the structural example of a switch (OFS). 「SYN Flood」攻撃を受けた場合における処理の概要について説明するための図である。It is a figure for demonstrating the outline | summary of the process in the case of receiving a "SYN Flood" attack. 正常なTCP通信を行う場合における処理の概要について説明するための図である。It is a figure for demonstrating the outline | summary of the process in the case of performing normal TCP communication. パケットのTCPヘッダのフィールドを示す図である。It is a figure which shows the field of the TCP header of a packet. パケット受信時の処理の流れを示すフローチャートの前半である。It is the first half of the flowchart which shows the flow of the process at the time of packet reception. パケット受信時の処理の流れを示すフローチャートの後半である。It is the latter half of the flowchart which shows the flow of the process at the time of packet reception. スイッチ(OFS)のSYNパケット以外のパケット受信時の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process at the time of packet reception other than a SYN packet of a switch (OFS). SYNパケットの受信の直後に、コントローラ(OFC)にSYNパケットを転送する場合における処理の概要について説明するための図である。It is a figure for demonstrating the outline | summary of the process in the case of transferring a SYN packet to a controller (OFC) immediately after reception of a SYN packet.

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

本発明では、既存のネットワーク機器側の防御手法をオープンフローネットワークに適用する場合に、各スイッチ(OFS)の代理TCP接続が全て確立するまでの待機時間によって通信遅延が増大するという課題を、代理TCP接続数を削減することで解決する。   In the present invention, when the existing defense method on the network device side is applied to the OpenFlow network, the problem that the communication delay increases due to the waiting time until all the proxy TCP connections of each switch (OFS) are established is The problem is solved by reducing the number of TCP connections.

オープンフローネットワークにおいて、スイッチ(OFS)がホストとの代理TCP接続を行う場合、(1)「パケットの送信元ホスト」と「最も送信元ホストに近いスイッチ(OFS)」との間、及び、(2)「最も送信元ホストに近いスイッチ(OFS)」と「送信先サーバ」との間、の2箇所で行えば良い。   In the OpenFlow network, when the switch (OFS) performs proxy TCP connection with the host, (1) between the “packet source host” and the “switch closest to the source host (OFS)”, and ( 2) It may be performed at two locations between the “switch closest to the transmission source host (OFS)” and the “transmission destination server”.

しかし、各スイッチ(OFS)は、受信したパケットが、送信元ホストと既に代理TCP接続が行われた上で転送されたパケットなのかどうかを判断できないため、スイッチ(OFS)毎に、隣接するスイッチ(OFS)との代理TCP接続を行う必要があった。   However, each switch (OFS) cannot determine whether or not the received packet is a packet that has been transferred after a proxy TCP connection has already been made to the transmission source host. It was necessary to perform proxy TCP connection with (OFS).

本発明では、パケットの送信元ホストからパケットの送信先サーバへの通信経路上において、以下のような処理を行う。   In the present invention, the following processing is performed on the communication path from the packet transmission source host to the packet transmission destination server.

スイッチ(OFS)は、通信経路上のスイッチ(OFS)のうち、最も送信元ホストに近いスイッチ(OFS)である場合、最も送信元ホストに近いスイッチ(OFS)であるかどうかを示す情報である「通信経路先頭識別子」をコントローラ(OFC)から受け取る。ここでは、通信経路先頭識別子の値は、先頭スイッチ(OFS)である旨を示す値であるものとする。先頭スイッチ(OFS)は、通信経路上で、最も送信元ホストに近いスイッチ(OFS)である。   The switch (OFS) is information indicating whether or not it is the switch (OFS) closest to the transmission source host when the switch (OFS) is closest to the transmission source host among the switches (OFS) on the communication path. “Communication path head identifier” is received from the controller (OFC). Here, it is assumed that the value of the communication path head identifier is a value indicating that it is a head switch (OFS). The head switch (OFS) is a switch (OFS) closest to the transmission source host on the communication path.

スイッチ(OFS)は、通信経路先頭識別子を受け取った場合、当該通信経路先頭識別子を、当該スイッチ(OFS)で管理している経路情報に追加する。ここでは、スイッチ(OFS)は、通信経路先頭識別子を受け取った場合、当該通信経路先頭識別子に基づいて、経路情報における通信経路先頭識別子の値を、先頭スイッチ(OFS)である旨を示す値に更新する。   When the switch (OFS) receives the communication path head identifier, the switch (OFS) adds the communication path head identifier to the path information managed by the switch (OFS). Here, when the switch (OFS) receives the communication path head identifier, the value of the communication path head identifier in the path information is changed to a value indicating the head switch (OFS) based on the communication path head identifier. Update.

スイッチ(OFS)は、通信経路先頭識別子の値が先頭のスイッチ(OFS)を示す値である場合にのみ、ホストとの代理TCP接続を行う。すなわち、先頭スイッチ(OFS)はホストとの代理TCP接続を行うが、先頭スイッチ(OFS)以外のスイッチ(OFS)はホストとの代理TCP接続を行わない。   The switch (OFS) performs proxy TCP connection with the host only when the value of the communication path head identifier is a value indicating the head switch (OFS). That is, the head switch (OFS) performs proxy TCP connection with the host, but switches (OFS) other than the head switch (OFS) do not perform proxy TCP connection with the host.

これにより、これまで行われていた不要な代理TCP接続を排除し、通信遅延の要因となっていた代理TCP接続が確立するまでの時間を削減することができる。   As a result, unnecessary proxy TCP connections that have been made so far can be eliminated, and the time required for establishing a proxy TCP connection that has caused a communication delay can be reduced.

オープンフローネットワークにおいて、「SYN Flood」攻撃を防ぐためにネットワーク機器側の防御手法を用いた場合に発生する通信遅延という課題を、代理TCP接続数を削減することで解決する手法について、以下に詳細に説明する。   In the OpenFlow network, a method for solving the problem of communication delay that occurs when the defense method on the network device side is used to prevent a “SYN Flood” attack by reducing the number of proxy TCP connections is described in detail below. explain.

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

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

本発明に係るオープンフローネットワークシステムは、コントローラ(OFC)10と、スイッチ(OFS)20と、ホスト30を含む。   The OpenFlow network system according to the present invention includes a controller (OFC) 10, a switch (OFS) 20, and a host 30.

コントローラ(OFC)10、スイッチ(OFS)20、及びホスト30は、それぞれ複数でも良い。例えば、複数のスイッチ(OFS)20の各々は、スイッチ(OFS)20−1、スイッチ(OFS)20−2、・・・、のように表記する。図1では、コントローラ(OFC)10、スイッチ(OFS)20−1、スイッチ(OFS)20−2、ホスト30−1、及びホスト30−2を例示している。   A plurality of controllers (OFC) 10, switches (OFS) 20, and hosts 30 may be provided. For example, each of the plurality of switches (OFS) 20 is represented as a switch (OFS) 20-1, a switch (OFS) 20-2,. FIG. 1 illustrates the controller (OFC) 10, the switch (OFS) 20-1, the switch (OFS) 20-2, the host 30-1, and the host 30-2.

コントローラ(OFC)10は、スイッチ(OFS)20を管理する。   The controller (OFC) 10 manages the switch (OFS) 20.

スイッチ(OFS)20は、ネットワークを構成する。   The switch (OFS) 20 constitutes a network.

ホスト30は、スイッチ(OFS)20に接続され、スイッチ(OFS)20を介してネットワーク通信を行う。なお、ホスト30は、クライアントやサーバに限らず、オープンフローに未対応のネットワーク機器等でも良い。   The host 30 is connected to the switch (OFS) 20 and performs network communication via the switch (OFS) 20. The host 30 is not limited to a client or a server, and may be a network device that does not support OpenFlow.

コントローラ(OFC)10とスイッチ(OFS)20の間は、専用線やSSL(SecureSocketLayer)等により保護された通信路である「セキュアチャンネル」で接続されている。コントローラ(OFC)10とスイッチ(OFS)20は、セキュアチャンネルを経由し、オープンフロープロトコルに則った通信を行う。   The controller (OFC) 10 and the switch (OFS) 20 are connected by a “secure channel” that is a communication path protected by a dedicated line, SSL (Secure Socket Layer), or the like. The controller (OFC) 10 and the switch (OFS) 20 perform communication according to the OpenFlow protocol via the secure channel.

コントローラ(OFC)10は、スイッチ(OFS)20に到着するパケットをスイッチ(OFS)20がどのように処理するかについて、各パケットに対応する経路情報であるフローエントリを操作することにより制御する。   The controller (OFC) 10 controls how the switch (OFS) 20 processes a packet arriving at the switch (OFS) 20 by manipulating a flow entry that is route information corresponding to each packet.

コントローラ(OFC)10は、スイッチ(OFS)20に、多数のフローエントリを登録することになる。フローエントリの集合は、「フローテーブル」と呼ばれる表形式で管理されている。   The controller (OFC) 10 registers a large number of flow entries in the switch (OFS) 20. A set of flow entries is managed in a table format called “flow table”.

各スイッチ(OFS)20は、フローテーブルを少なくとも1つ保持している。コントローラ(OFC)10は、配下の各スイッチ(OFS)20のフローテーブルと同じ内容のフローテーブルを全て保持している。すなわち、コントローラ(OFC)10は、各スイッチ(OFS)20のフローテーブルのマスターテーブルを保持している。   Each switch (OFS) 20 holds at least one flow table. The controller (OFC) 10 holds all the flow tables having the same contents as the flow tables of the subordinate switches (OFS) 20. That is, the controller (OFC) 10 holds a master table of the flow table of each switch (OFS) 20.

なお、「フローテーブルを保持している」とは、そのフローテーブルを管理していることを意味する。そのフローテーブルをネットワーク経由等で管理可能であれば、実際には、そのフローテーブルが自身の内部に存在していなくても良い。すなわち、フローテーブルの保管場所は、そのフローテーブルを管理する装置の内部に限らず、外部でも良い。例えば、コントローラ(OFC)10とスイッチ(OFS)20が、ネットワーク上にある同一のフローテーブルを共有することも考えられる。   Note that “holding a flow table” means that the flow table is managed. As long as the flow table can be managed via a network or the like, the flow table may not actually exist within itself. That is, the storage location of the flow table is not limited to the inside of the device that manages the flow table, but may be the outside. For example, the controller (OFC) 10 and the switch (OFS) 20 may share the same flow table on the network.

[フローエントリの仕様]
図2を参照して、本発明に係るフローエントリの仕様について説明する。
[Flow entry specifications]
With reference to FIG. 2, the specification of the flow entry according to the present invention will be described.

スイッチ(OFS)20は、各パケットに対応する経路情報として、図2に示すように、フローエントリ200を保持している。   The switch (OFS) 20 holds a flow entry 200 as route information corresponding to each packet, as shown in FIG.

フローエントリ200は、フローヘッダ201と、アクション202と、フローカウンタ203と、通信経路先頭識別子204を含む。   The flow entry 200 includes a flow header 201, an action 202, a flow counter 203, and a communication path head identifier 204.

フローヘッダ201は、フローエントリのルールを指定するための領域(フィールド)である。フローヘッダ201には、フローエントリのルールとして、OSI参照モデルのL1(レイヤ1:物理層)からL4(レイヤ4:トランスポート層)までの情報(属性値)を任意に組み合わせて指定することができる。なお、フローヘッダ201には、ブロードキャストアドレスやマルチキャストアドレスを指定することができる。また、「*」や「?」といったワイルドカードを使用することもできる。   The flow header 201 is an area (field) for designating a rule of the flow entry. In the flow header 201, information (attribute values) from L1 (layer 1: physical layer) to L4 (layer 4: transport layer) of the OSI reference model may be specified as a flow entry rule in any combination. it can. In the flow header 201, a broadcast address or a multicast address can be designated. In addition, wild cards such as “*” and “?” Can be used.

アクション202は、フローエントリのアクションを指定するための領域である。アクション202には、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を指定することができる。   The action 202 is an area for designating the action of the flow entry. In the action 202, operations such as “output to a specific port”, “discard”, and “rewrite header” can be designated.

フローカウンタ203は、受信したパケットの情報が当該フローエントリのルールにマッチした回数を記録するための領域である。ここでは、フローカウンタ203には、受信したパケットの情報がフローエントリ200のフローヘッダ201に合致した回数を記録する。   The flow counter 203 is an area for recording the number of times the received packet information matches the rule of the flow entry. Here, the flow counter 203 records the number of times the received packet information matches the flow header 201 of the flow entry 200.

通信経路先頭識別子204は、最も送信元ホストに近いスイッチ(OFS)であるかどうかを示す情報を指定するための領域である。すなわち、先頭スイッチ(OFS)である旨を示す値を記録するための領域である。スイッチ(OFS)20は、通信経路先頭識別子204に指定された値を参照して、自身が、受信したパケットの通信経路上の先頭スイッチ(OFS)であるかどうかを確認する。なお、通信経路先頭識別子204は、本発明においてフローエントリに新たに追加された領域である。   The communication path head identifier 204 is an area for designating information indicating whether the switch (OFS) is closest to the transmission source host. That is, it is an area for recording a value indicating that it is the head switch (OFS). The switch (OFS) 20 refers to the value specified in the communication path head identifier 204 and confirms whether it is the head switch (OFS) on the communication path of the received packet. The communication path head identifier 204 is an area newly added to the flow entry in the present invention.

[コントローラ(OFC)の構成]
図3を参照して、コントローラ(OFC)10の構成例について説明する。
[Configuration of controller (OFC)]
A configuration example of the controller (OFC) 10 will be described with reference to FIG.

コントローラ(OFC)10は、ネットワーク管理部11と、経路計算部12と、パケット送受信部13を備える。   The controller (OFC) 10 includes a network management unit 11, a route calculation unit 12, and a packet transmission / reception unit 13.

ネットワーク管理部11は、スイッチ(OFS)20により構成されるネットワークのトポロジー情報(Network topology)を収集・管理する。また、ネットワーク管理部11は、スイッチ(OFS)20に設定されたフローエントリ200の集合を保持・管理する。   The network management unit 11 collects and manages topology information (network topology) of a network configured by the switch (OFS) 20. The network management unit 11 holds and manages a set of flow entries 200 set in the switch (OFS) 20.

経路計算部12は、トポロジー情報を基に、スイッチ(OFS)20から受信したパケットの通信経路を計算する。   The route calculation unit 12 calculates the communication route of the packet received from the switch (OFS) 20 based on the topology information.

パケット送受信部13は、パケットの送受信を行う。また、パケット送受信部13は、計算の結果として得られた通信経路を基に、フローエントリ200を作成し、フローエントリ200をスイッチ(OFS)20に設定するためのオープンフローメッセージを作成する。或いは、スイッチ(OFS)20から、フローエントリ200の変更等に関するオープンフローメッセージを受信し、ネットワーク管理部11に、保持・管理されているフローエントリ200の変更等を要求する。なお、パケット送受信部13は、セキュアチャンネルを介して、スイッチ(OFS)20とオープンフローメッセージの送受信を行う。   The packet transmitting / receiving unit 13 transmits and receives packets. Further, the packet transmitting / receiving unit 13 creates the flow entry 200 based on the communication path obtained as a result of the calculation, and creates an open flow message for setting the flow entry 200 in the switch (OFS) 20. Alternatively, an open flow message related to the change of the flow entry 200 is received from the switch (OFS) 20, and the network management unit 11 is requested to change the flow entry 200 held and managed. The packet transmission / reception unit 13 transmits / receives an OpenFlow message to / from the switch (OFS) 20 via a secure channel.

[スイッチ(OFS)の構成]
図4を参照して、スイッチ(OFS)20の構成例について説明する。
[Configuration of switch (OFS)]
A configuration example of the switch (OFS) 20 will be described with reference to FIG.

スイッチ(OFS)20は、フローテーブル21と、フローテーブル管理部22と、パケット受信部23と、パケット送信部24と、パケット廃棄部25と、通信経路先頭解析部26と、代理TCP接続部27を備える。   The switch (OFS) 20 includes a flow table 21, a flow table management unit 22, a packet reception unit 23, a packet transmission unit 24, a packet discard unit 25, a communication path head analysis unit 26, and a proxy TCP connection unit 27. Is provided.

フローテーブル21は、フローエントリ200の集合である。例えば、フローテーブル21は、経路情報を蓄積するためのデータベースである。   The flow table 21 is a set of flow entries 200. For example, the flow table 21 is a database for storing route information.

フローテーブル管理部22は、フローテーブル21に含まれるフローエントリ200を管理(追加/更新/削除)する。   The flow table management unit 22 manages (adds / updates / deletes) the flow entry 200 included in the flow table 21.

パケット受信部23は、コントローラ(OFC)10、隣接するスイッチ(OFS)20、ホスト30等からパケットを受信する。なお、パケット受信部23は、セキュアチャンネルを介して、コントローラ(OFC)10から、オープンフローメッセージを受信する。オープンフローメッセージを受信した際、当該オープンフローメッセージを解析し、当該オープンフローメッセージの種類・内容に応じた処理を行う。例えば、フローテーブル21にフローエントリ200を設定するためのオープンフローメッセージであれば、フローテーブル管理部22に、フローテーブル21へのフローエントリ200の設定を要求する。また、パケット受信部23は、LAN等のネットワークを介して、隣接するスイッチ(OFS)20やホスト30等からパケットを受信する。パケットを受信した際、受信したパケットにマッチするフローエントリ200が設定されているか確認し、受信したパケットにマッチするフローエントリ200が設定されている場合、当該フローエントリ200のアクション202に従って、当該パケットを処理する。例えば、受信したパケットにマッチしたフローエントリ200のアクション202に指定された動作が「パケットの送信/転送」である場合、又は、受信したパケットにマッチするフローエントリ200が設定されていない場合、パケット送信部24に、当該パケットの送信/転送を要求する。また、フローエントリ200のアクション202に指定された動作が「パケットの廃棄」である場合、パケット廃棄部25に、当該パケットの廃棄を要求する。   The packet receiving unit 23 receives packets from the controller (OFC) 10, the adjacent switch (OFS) 20, the host 30, and the like. Note that the packet receiver 23 receives an OpenFlow message from the controller (OFC) 10 via a secure channel. When the OpenFlow message is received, the OpenFlow message is analyzed, and processing corresponding to the type and content of the OpenFlow message is performed. For example, if it is an open flow message for setting the flow entry 200 in the flow table 21, the flow table management unit 22 is requested to set the flow entry 200 in the flow table 21. The packet receiver 23 receives a packet from an adjacent switch (OFS) 20 or host 30 via a network such as a LAN. When a packet is received, it is confirmed whether or not the flow entry 200 that matches the received packet is set. When the flow entry 200 that matches the received packet is set, the packet is processed according to the action 202 of the flow entry 200. Process. For example, when the operation specified in the action 202 of the flow entry 200 that matches the received packet is “packet transmission / transfer”, or when the flow entry 200 that matches the received packet is not set, the packet The transmission unit 24 is requested to transmit / transfer the packet. If the operation specified in the action 202 of the flow entry 200 is “discard packet”, the packet discard unit 25 is requested to discard the packet.

パケット送信部24は、コントローラ(OFC)10、隣接するスイッチ(OFS)20、ホスト30等にパケットを送信/転送する。なお、パケット送信部24は、受信したパケットにマッチするフローエントリ200が設定されていない場合、セキュアチャンネルを介して、コントローラ(OFC)10に、パケットを転送し、当該パケットの経路計算と設定を要求する。例えば、パケット送信部24は、当該パケットの経路計算と設定を要求するためのオープンフローメッセージを作成し、当該オープンフローメッセージのデータ領域に当該パケットを格納し、当該オープンフローメッセージをコントローラ(OFC)10に送信する。また、パケット送信部24は、受信したパケットにマッチしたフローエントリ200のアクション202に指定された動作が「パケットの送信/転送」である場合、LAN等のネットワークを介して、隣接するスイッチ(OFS)20やホスト30等にパケットを送信/転送する。このとき、パケット送信部24は、送信先/転送先に応じた出力ポートにパケットを転送し、当該出力ポートからパケットを送出する。また、受信したパケットにマッチしたフローエントリ200のアクション202に指定された動作が「コントローラ(OFC)へのパケットの送信/転送」である場合、セキュアチャンネルを介して、コントローラ(OFC)10にパケットを送信/転送しても良い。実際には、パケット送信部24は、パケット受信部23と連携/一体化していても良い。   The packet transmission unit 24 transmits / transfers a packet to the controller (OFC) 10, the adjacent switch (OFS) 20, the host 30, and the like. If the flow entry 200 that matches the received packet is not set, the packet transmission unit 24 transfers the packet to the controller (OFC) 10 via the secure channel, and calculates and sets the route of the packet. Request. For example, the packet transmitter 24 creates an OpenFlow message for requesting route calculation and setting of the packet, stores the packet in the data area of the OpenFlow message, and sends the OpenFlow message to the controller (OFC). 10 to send. In addition, when the operation designated in the action 202 of the flow entry 200 that matches the received packet is “packet transmission / transfer”, the packet transmission unit 24 uses the adjacent switch (OFS) via a network such as a LAN. ) Transmit / transfer the packet to 20 or the host 30 or the like. At this time, the packet transmission unit 24 transfers the packet to the output port corresponding to the transmission destination / transfer destination, and sends the packet from the output port. Further, when the operation designated in the action 202 of the flow entry 200 that matches the received packet is “transmission / transfer of packet to the controller (OFC)”, the packet is sent to the controller (OFC) 10 via the secure channel. May be transmitted / transferred. Actually, the packet transmitter 24 may be linked / integrated with the packet receiver 23.

パケット廃棄部25は、パケットを廃棄する。なお、パケット廃棄部25は、パケット受信部23からのパケットの廃棄の要求を受けた場合、或いは、何らかの事情でパケットが不要となった場合に、当該パケットを廃棄する。また、パケット廃棄部25は、パケットを廃棄する際、即座/即時に廃棄するのではなく、パケット受信時/廃棄要求時から一定時間が経過した場合や、所定の条件を満たした場合に、パケットを廃棄するようにすることもできる。実際には、パケット廃棄部25は、パケット受信部23と連携/一体化していても良い。   The packet discard unit 25 discards the packet. The packet discard unit 25 discards the packet when a packet discard request is received from the packet receiver 23 or when the packet becomes unnecessary for some reason. In addition, when discarding a packet, the packet discard unit 25 does not discard the packet immediately / immediately, but when a certain time has elapsed from the time of packet reception / discard request or when a predetermined condition is satisfied, Can also be discarded. Actually, the packet discarding unit 25 may be linked / integrated with the packet receiving unit 23.

通信経路先頭解析部26は、スイッチ(OFS)20がパケットの通信経路上の先頭スイッチ(OFS)かどうかを解析する。具体的には、通信経路先頭解析部26は、フローエントリ200の通信経路先頭識別子204の値を解析し、フローエントリ200の通信経路先頭識別子204の値が、先頭スイッチ(OFS)である旨を示す値であるか確認する。なお、通信経路先頭解析部26は、本発明においてスイッチ(OFS)20に新たに追加された構成要素である。実際には、通信経路先頭解析部26は、パケット受信部23と連携/一体化していても良い。   The communication path head analysis unit 26 analyzes whether the switch (OFS) 20 is a head switch (OFS) on the packet communication path. Specifically, the communication path head analysis unit 26 analyzes the value of the communication path head identifier 204 of the flow entry 200, and indicates that the value of the communication path head identifier 204 of the flow entry 200 is the head switch (OFS). Check if it is the indicated value. The communication path head analysis unit 26 is a component newly added to the switch (OFS) 20 in the present invention. Actually, the communication path head analysis unit 26 may be linked / integrated with the packet reception unit 23.

代理TCP接続部27は、フローエントリ200の通信経路先頭識別子204の値が、先頭スイッチ(OFS)である旨を示す値である場合、ホスト30との代理TCP接続を行う。すなわち、スイッチ(OFS)20は、パケットの通信経路上の先頭スイッチ(OFS)である場合、通信経路上にある複数のスイッチ(OFS)の代表として、ホスト30との代理TCP接続を行う。このとき、代理TCP接続部27は、ホスト30との代理TCP接続を行うためのSYNパケットやACKパケットを作成し、ホスト30に送信/転送する。また、パケットの送信元ホストとの代理TCP接続に失敗した場合、パケット廃棄部25に、送信元ホストからのパケットの廃棄を要求する。なお、代理TCP接続部27は、本発明においてスイッチ(OFS)20に新たに追加された構成要素である。実際には、代理TCP接続部27は、パケット受信部23、パケット送信部24、及びパケット廃棄部25と連携/一体化していても良い。   The proxy TCP connection unit 27 performs proxy TCP connection with the host 30 when the value of the communication path head identifier 204 of the flow entry 200 is a value indicating that it is a head switch (OFS). That is, when the switch (OFS) 20 is the head switch (OFS) on the packet communication path, the switch (OFS) 20 performs proxy TCP connection with the host 30 as a representative of a plurality of switches (OFS) on the communication path. At this time, the proxy TCP connection unit 27 creates a SYN packet or an ACK packet for performing a proxy TCP connection with the host 30, and transmits / transfers the packet to / from the host 30. If the proxy TCP connection with the packet source host fails, the packet discard unit 25 is requested to discard the packet from the source host. The proxy TCP connection unit 27 is a component newly added to the switch (OFS) 20 in the present invention. Actually, the proxy TCP connection unit 27 may be linked / integrated with the packet reception unit 23, the packet transmission unit 24, and the packet discard unit 25.

なお、パケット送信部24、パケット廃棄部25、通信経路先頭解析部26、及び代理TCP接続部27を一体化(統合)したものを、「パケット処理部」と呼ぶ。   The packet transmission unit 24, the packet discard unit 25, the communication path head analysis unit 26, and the proxy TCP connection unit 27 are integrated (integrated) is referred to as a “packet processing unit”.

[処理の概要]
本発明を適用した場合の処理の概要を、以下の場合に分けて説明する。
[Process overview]
An outline of processing when the present invention is applied will be described separately in the following cases.

オープンフローネットワークにおいて、「SYN Flood」攻撃を受ける場合を「不正接続」とする。   In the OpenFlow network, a case where a “SYN Flood” attack is received is referred to as “illegal connection”.

オープンフローネットワークにおいて、正常なTCP通信を行う場合を「正常接続」とする。   A case where normal TCP communication is performed in the OpenFlow network is referred to as “normal connection”.

[不正接続]
図5を参照して、オープンフローネットワークにおいて、「SYN Flood」攻撃を受けた場合における処理の概要について順に説明する。
[Unauthorized connection]
With reference to FIG. 5, an outline of processing in the case of receiving a “SYN Flood” attack in the OpenFlow network will be described in order.

(1)SYNパケットの受信
スイッチ(OFS)20−1は、ホスト30−1からSYNパケットを受信する。
(1) Reception of SYN packet The switch (OFS) 20-1 receives a SYN packet from the host 30-1.

(2)代理TCP接続の試行
スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続を試みる。例えば、スイッチ(OFS)20−1は、ホスト30−1にACKパケットを送信し、ホスト30−1がACKパケットを送り返してくるのを待つ。ホスト30−1からの「SYN Flood」攻撃である場合、ホスト30−1がACKパケットを送り返してこないため、ホスト30−1との代理TCP接続は必ず失敗する。
(2) Trial of Proxy TCP Connection The switch (OFS) 20-1 attempts a proxy TCP connection with the host 30-1. For example, the switch (OFS) 20-1 transmits an ACK packet to the host 30-1, and waits for the host 30-1 to send back the ACK packet. In the case of a “SYN Flood” attack from the host 30-1, since the host 30-1 does not send back an ACK packet, the proxy TCP connection with the host 30-1 always fails.

(3)「SYN Flood」攻撃の判定
スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続が失敗した場合、ホスト30−1から受け取ったパケットが「SYN Flood」攻撃としてのSYNパケットである可能性が高いと判断し、コントローラ(OFC)10にパケットを転送することなく、受信したSYNパケットを廃棄し、処理を終了する。
(3) Determination of “SYN Flood” Attack When the proxy TCP connection with the host 30-1 fails, the switch (OFS) 20-1 determines that the packet received from the host 30-1 is SYN as a “SYN Flood” attack. It is determined that there is a high possibility of being a packet, and the received SYN packet is discarded without transferring the packet to the controller (OFC) 10, and the process is terminated.

これにより、スイッチ(OFS)20−1は、「SYN Flood」攻撃を防御することができる。   As a result, the switch (OFS) 20-1 can defend against the “SYN Flood” attack.

[正常接続]
図6を参照して、オープンフローネットワークにおいて、正常なTCP通信を行う場合における処理の概要について順に説明する。
[Normal connection]
With reference to FIG. 6, an outline of processing in the case of performing normal TCP communication in the OpenFlow network will be described in order.

(1)SYNパケットの受信
スイッチ(OFS)20−1は、ホスト30−1からSYNパケットを受信する。
(1) Reception of SYN packet The switch (OFS) 20-1 receives a SYN packet from the host 30-1.

(2)送信元との代理TCP接続の試行
スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続を試みる。正常なTCP通信の場合、ホスト30−1との代理TCP接続は成功する。これにより、スイッチ(OFS)20−1とホスト30−1との間の通信経路が確立する。
(2) Trial of proxy TCP connection with transmission source Switch (OFS) 20-1 tries proxy TCP connection with host 30-1. In the case of normal TCP communication, the proxy TCP connection with the host 30-1 is successful. Thereby, a communication path between the switch (OFS) 20-1 and the host 30-1 is established.

(3)経路計算と設定の要求
スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続が成功した場合、コントローラ(OFC)10に、パケットを転送し、ホスト30−1から受信したパケットの経路計算と設定を要求する。ここでは、パケットの送信元はホスト30−1であり、パケットの送信先はホスト30−2であるものとする。例えば、ホスト30−1は、クライアントであり、ホスト30−2は、サーバであるものとする。
(3) Route calculation and setting request When the proxy TCP connection with the host 30-1 is successful, the switch (OFS) 20-1 transfers the packet to the controller (OFC) 10 and receives it from the host 30-1. Requests route calculation and setting of the received packet. Here, the transmission source of the packet is the host 30-1, and the transmission destination of the packet is the host 30-2. For example, it is assumed that the host 30-1 is a client and the host 30-2 is a server.

(4)経路計算
コントローラ(OFC)10は、スイッチ(OFS)20−1からの要求に応じて、経路計算を行い、計算の結果として得られた通信経路を基にフローエントリ200を作成する。ここでは、通信経路上で最も送信元のホスト30−1に近いスイッチ(OFS)は、要求元のスイッチ(OFS)20−1である。
(4) Route Calculation The controller (OFC) 10 performs route calculation in response to a request from the switch (OFS) 20-1, and creates a flow entry 200 based on the communication route obtained as a result of the calculation. Here, the switch (OFS) closest to the transmission source host 30-1 on the communication path is the request source switch (OFS) 20-1.

なお、コントローラ(OFC)10は、通信経路上で最も送信先のホスト30−2に近いスイッチ(OFS)から順にフローエントリを設定する。その理由は、通信経路上で最も送信元のホスト30−1に近いスイッチ(OFS)から順にフローエントリを設定すると、通信経路上の全てのスイッチ(OFS)へのフローエントリの設定が完了する前に、パケットの転送等が開始されてしまうからである。   The controller (OFC) 10 sets flow entries in order from the switch (OFS) closest to the destination host 30-2 on the communication path. The reason is that when the flow entries are set in order from the switch (OFS) closest to the transmission source host 30-1 on the communication path, the setting of the flow entries to all the switches (OFS) on the communication path is completed. This is because packet transfer or the like is started.

(5)先頭スイッチ以外の設定
コントローラ(OFC)10は、スイッチ(OFS)20−2に設定されるフローエントリ200の通信経路先頭識別子204に、先頭スイッチ(OFS)ではない旨を示す値を指定し、スイッチ(OFS)20−2にフローエントリ200を設定する。
(5) Setting other than the head switch The controller (OFC) 10 designates a value indicating that it is not the head switch (OFS) in the communication path head identifier 204 of the flow entry 200 set in the switch (OFS) 20-2. The flow entry 200 is set in the switch (OFS) 20-2.

(6)先頭スイッチの設定
コントローラ(OFC)10は、スイッチ(OFS)20−1に設定されるフローエントリ200の通信経路先頭識別子204に、先頭スイッチ(OFS)である旨を示す値を指定し、スイッチ(OFS)20−1にフローエントリ200を設定する。
(6) Setting of head switch The controller (OFC) 10 designates a value indicating that it is the head switch (OFS) in the communication path head identifier 204 of the flow entry 200 set in the switch (OFS) 20-1. The flow entry 200 is set in the switch (OFS) 20-1.

(7)送信先との代理TCP接続の試行
スイッチ(OFS)20−1は、設定されたフローエントリ200の通信経路先頭識別子204を解析し、フローエントリ200の通信経路先頭識別子204の値が、先頭スイッチ(OFS)である旨を示す値であるため、ホスト30−2との代理TCP接続を行う。
(7) Proxy TCP connection trial with transmission destination The switch (OFS) 20-1 analyzes the communication path head identifier 204 of the set flow entry 200, and the value of the communication path head identifier 204 of the flow entry 200 is Since it is a value indicating that it is the head switch (OFS), proxy TCP connection with the host 30-2 is performed.

ここでは、スイッチ(OFS)20−1は、自身のフローエントリ200のアクション202に従って、この代理TCP接続のSYNパケットをスイッチ(OFS)20−2に送信する。   Here, the switch (OFS) 20-1 transmits the proxy TCP connection SYN packet to the switch (OFS) 20-2 in accordance with the action 202 of its own flow entry 200.

また、スイッチ(OFS)20−2は、この代理TCP接続のSYNパケットを受信した際、設定されたフローエントリ200の通信経路先頭識別子204の値を解析し、通信経路先頭識別子204の値が、先頭スイッチ(OFS)である旨を示す値ではないため、代理TCP接続を行わず、自身のフローエントリ200のアクション202に従って、受信したSYNパケットをホスト30−2に転送する。   When the switch (OFS) 20-2 receives the proxy TCP connection SYN packet, the switch (OFS) 20-2 analyzes the value of the communication path head identifier 204 of the set flow entry 200, and the value of the communication path head identifier 204 is Since it is not a value indicating that it is the head switch (OFS), proxy TCP connection is not performed, and the received SYN packet is transferred to the host 30-2 according to the action 202 of its own flow entry 200.

通常、スイッチ(OFS)20−1は正常なTCP通信を行うため、スイッチ(OFS)20−1とホスト30−2との代理TCP接続は成功する。例えば、ホスト30−2は、この代理TCP接続のSYNパケットを受信した際、スイッチ(OFS)20−1にACKパケットを送信し、スイッチ(OFS)20−1がACKパケットを送り返してくるのを待つ。スイッチ(OFS)20−1は、ホスト30−2にACKパケットを送り返す。これにより、スイッチ(OFS)20−1とホスト30−2との間の通信経路が確立する。   Normally, since the switch (OFS) 20-1 performs normal TCP communication, the proxy TCP connection between the switch (OFS) 20-1 and the host 30-2 is successful. For example, when the host 30-2 receives the proxy TCP connection SYN packet, the host 30-2 transmits an ACK packet to the switch (OFS) 20-1, and the switch (OFS) 20-1 returns the ACK packet. wait. The switch (OFS) 20-1 sends an ACK packet back to the host 30-2. Thereby, a communication path between the switch (OFS) 20-1 and the host 30-2 is established.

スイッチ(OFS)20−1とホスト30−2との間の通信経路が確立した時点では、スイッチ(OFS)20−1は、ホスト30−1及びホスト30−2とそれぞれ個別にTCP接続をしているに過ぎない。このとき、スイッチ(OFS)20−1とホスト30−1との間での代理TCP接続におけるパケットのフィールド値は、スイッチ(OFS)20−1とホスト30−2との間での代理TCP接続におけるパケットのフィールド値と異なっている。異なっているフィールド値は、図7に示すTCPヘッダの「確認応答番号」と「シーケンス番号」である。   When the communication path between the switch (OFS) 20-1 and the host 30-2 is established, the switch (OFS) 20-1 makes a TCP connection with the host 30-1 and the host 30-2 individually. It ’s just that. At this time, the field value of the packet in the proxy TCP connection between the switch (OFS) 20-1 and the host 30-1 is the proxy TCP connection between the switch (OFS) 20-1 and the host 30-2. Is different from the packet field value in. The different field values are “acknowledgment number” and “sequence number” of the TCP header shown in FIG.

スイッチ(OFS)20−1は、ホスト30−1とホスト30−2が直接TCP接続しているように見せる(擬装する)ために、ホスト30−1とホスト30−2との間の通信パケットの受信時に、通信パケットのフィールド値を変更(変換)する必要がある。この変更(変換)処理は、代理TCP接続において必要な処理である。   The switch (OFS) 20-1 is a communication packet between the host 30-1 and the host 30-2 in order to make the host 30-1 and the host 30-2 appear to be directly TCP-connected (impersonated). When receiving this, it is necessary to change (convert) the field value of the communication packet. This change (conversion) process is a process necessary for proxy TCP connection.

(8)変換用フローエントリの設定
スイッチ(OFS)20−1は、ホスト30−1とホスト30−2との間の通信パケットのフィールド値を変更(変換)するためのフローエントリ200の設定を行う。例えば、スイッチ(OFS)20−1は、コントローラ(OFC)10により設定されたフローエントリ200を変更し、このフローエントリ200のアクション202に、ホスト30−1とホスト30−2との間の通信パケットのフィールド値を変更(変換)する動作を追加指定し、フローエントリ200の変更をコントローラ(OFC)10に通知する。或いは、スイッチ(OFS)20−1は、通信パケットのフィールド値を変更(変換)する動作を指定した新規のフローエントリ200を自身に設定し、この新規のフローエントリ200をコントローラ(OFC)10に通知する。この新規のフローエントリ200については、既存のフローエントリ200よりも優先度を高く設定すると好適である。
(8) Setting of Conversion Flow Entry The switch (OFS) 20-1 sets the flow entry 200 for changing (converting) the field value of the communication packet between the host 30-1 and the host 30-2. Do. For example, the switch (OFS) 20-1 changes the flow entry 200 set by the controller (OFC) 10, and communication between the host 30-1 and the host 30-2 is performed in the action 202 of the flow entry 200. An operation for changing (converting) the field value of the packet is additionally specified, and the change of the flow entry 200 is notified to the controller (OFC) 10. Alternatively, the switch (OFS) 20-1 sets a new flow entry 200 that specifies an operation for changing (converting) the field value of the communication packet, and sets the new flow entry 200 to the controller (OFC) 10. Notice. For this new flow entry 200, it is preferable to set a higher priority than the existing flow entry 200.

(9)通信パケットの受信
スイッチ(OFS)20−1は、ホスト30−1から通信パケットを受信する。
(9) Reception of communication packet The switch (OFS) 20-1 receives a communication packet from the host 30-1.

(10)通信パケットのフィールド値の変換
スイッチ(OFS)20−1は、ホスト30−1とホスト30−2との間の通信パケットの受信時に、自身のフローエントリ200のアクション202に従って、通信パケットのフィールド値を変更(変換)する。ここでは、スイッチ(OFS)20−1は、通信パケットのフィールド値のうち、TCPヘッダの「確認応答番号」と「シーケンス番号」を変更(変換)する。これにより、ホスト30−1とホスト30−2との間の通信経路が確立する。ホスト30−1とホスト30−2は、スイッチ(OFS)20−1が代理でTCP接続していることを意識することなく、相互に通信することができる。
(10) Conversion of field value of communication packet When receiving a communication packet between the host 30-1 and the host 30-2, the switch (OFS) 20-1 performs communication packet according to the action 202 of its own flow entry 200. Change (convert) the field value of. Here, the switch (OFS) 20-1 changes (converts) the “acknowledgment number” and “sequence number” of the TCP header among the field values of the communication packet. As a result, a communication path between the host 30-1 and the host 30-2 is established. The host 30-1 and the host 30-2 can communicate with each other without being aware that the switch (OFS) 20-1 is TCP-connected on behalf of the host.

(11)通信パケットの受信
スイッチ(OFS)20−1は、ホスト30−2に通信パケットを転送する。
(11) Reception of communication packet The switch (OFS) 20-1 transfers the communication packet to the host 30-2.

ここでは、ホスト30−1からホスト30−2に通信パケットを送信する場合について説明しているが、ホスト30−2からホスト30−1に通信パケットを送信する場合についても同様の変換処理を行う。この場合、(9)通信パケットの受信から(11)通信パケットの受信までの各処理において、「ホスト30−1」と「ホスト30−2」とを相互に読み替える。   Here, a case where a communication packet is transmitted from the host 30-1 to the host 30-2 has been described, but a similar conversion process is also performed when a communication packet is transmitted from the host 30-2 to the host 30-1. . In this case, in each process from (9) communication packet reception to (11) communication packet reception, “host 30-1” and “host 30-2” are interchanged.

上記のように、本発明では、正常なTCP通信を行う場合、経路上の先頭スイッチ(OFS)が代表して代理TCP接続をすることで、不要な代理TCP接続数を削減することができる。   As described above, in the present invention, when normal TCP communication is performed, the number of unnecessary proxy TCP connections can be reduced by performing proxy TCP connection on behalf of the head switch (OFS) on the path.

また、本発明では、オープンフローネットワークにおいて、パケットの通信経路上に複数のスイッチ(OFS)20が存在する場合においても、「SYN Flood」攻撃を防御しながら通信遅延を短縮することが可能となる。   Further, in the present invention, even when there are a plurality of switches (OFS) 20 on the packet communication path in the OpenFlow network, it is possible to reduce the communication delay while preventing the “SYN Flood” attack. .

[正常接続終了時]
更に、正常なTCP通信が終了した場合における処理について説明する。
[When normal connection ends]
Furthermore, processing when normal TCP communication is completed will be described.

スイッチ(OFS)20−1は、ホスト30−1又はホスト30−2の少なくとも一方との代理TCP接続が終了(切断)した場合、代理TCP接続に関するフローエントリ200をフローテーブル21から削除する。   When the proxy TCP connection with at least one of the host 30-1 or the host 30-2 is terminated (disconnected), the switch (OFS) 20-1 deletes the flow entry 200 related to the proxy TCP connection from the flow table 21.

このとき、スイッチ(OFS)20−1は、当該フローエントリ200を削除するための削除用オープンフローメッセージを作成する。   At this time, the switch (OFS) 20-1 creates a deletion open flow message for deleting the flow entry 200.

例えば、スイッチ(OFS)20−1は、削除用オープンフローメッセージをコントローラ(OFC)10に通知する。コントローラ(OFC)10は、削除用オープンフローメッセージに応じて、通信経路上の各スイッチ(OFS)20から当該フローエントリ200を削除する。なお、コントローラ(OFC)10は、通信経路上の各スイッチ(OFS)20に、削除用オープンフローメッセージを転送しても良い。   For example, the switch (OFS) 20-1 notifies the controller (OFC) 10 of a deletion open flow message. The controller (OFC) 10 deletes the flow entry 200 from each switch (OFS) 20 on the communication path in response to the deletion open flow message. The controller (OFC) 10 may transfer the deletion open flow message to each switch (OFS) 20 on the communication path.

或いは、スイッチ(OFS)20−1は、当該フローエントリ200のアクション202に従って、通信経路上の各スイッチ(OFS)20に削除用オープンフローメッセージを送信する。送信と同時に/送信後、当該フローエントリ200を削除し、当該フローエントリ200の削除をコントローラ(OFC)10に通知する。   Alternatively, the switch (OFS) 20-1 transmits a deletion open flow message to each switch (OFS) 20 on the communication path according to the action 202 of the flow entry 200. Simultaneously with / after transmission, the flow entry 200 is deleted, and the controller (OFC) 10 is notified of the deletion of the flow entry 200.

通信経路上の各スイッチ(OFS)20は、削除用オープンフローメッセージを受信した際に、自身のフローエントリ200のアクション202に従って、隣接するスイッチ(OFS)20に削除用オープンフローメッセージを転送するようにしても良い。転送と同時に/転送後、自身のフローエントリ200を削除し、自身のフローエントリ200の削除をコントローラ(OFC)10に通知する。隣接するスイッチ(OFS)20が存在しない場合、削除用オープンフローメッセージを廃棄する。   Each switch (OFS) 20 on the communication path, when receiving the deletion OpenFlow message, transfers the deletion OpenFlow message to the adjacent switch (OFS) 20 according to the action 202 of its own flow entry 200. Anyway. Simultaneously with / after the transfer, the own flow entry 200 is deleted, and the deletion of the own flow entry 200 is notified to the controller (OFC) 10. If there is no adjacent switch (OFS) 20, the deletion open flow message is discarded.

[パケット受信時の処理]
図8A、図8Bを参照して、スイッチ(OFS)20−1がSYNパケットを受信した場合における処理の流れについて説明する。
[Process when receiving packets]
With reference to FIGS. 8A and 8B, the flow of processing when the switch (OFS) 20-1 receives a SYN packet will be described.

ここでは、ホスト30−1からホスト30−2にパケットを送信する事例について説明する。例えば、ホスト30−1は、ホスト30−2との代理TCP接続を行う場合、ホスト30−2宛にSYNパケットを送信する。また、ホスト30−1は、ホスト30−2との間で通信経路が確立した場合、ホスト30−2宛に通常パケットを送信する。   Here, a case where a packet is transmitted from the host 30-1 to the host 30-2 will be described. For example, when making a proxy TCP connection with the host 30-2, the host 30-1 transmits a SYN packet to the host 30-2. In addition, when a communication path is established with the host 30-2, the host 30-1 transmits a normal packet to the host 30-2.

(1)ステップS101
スイッチ(OFS)20−1は、ホスト30−1からパケットを受信する。
(1) Step S101
The switch (OFS) 20-1 receives a packet from the host 30-1.

(2)ステップS102
スイッチ(OFS)20−1は、自身が管理するフローテーブル21中に、受信したパケットと合致するフローエントリ200が存在するか確認する。例えば、スイッチ(OFS)20−1は、受信したパケットのヘッダの情報が、自身が管理するフローテーブル21中のフローエントリ200のフローヘッダ201の情報に合致するか確認する。
(2) Step S102
The switch (OFS) 20-1 checks whether or not the flow entry 200 that matches the received packet exists in the flow table 21 managed by the switch (OFS) 20-1. For example, the switch (OFS) 20-1 confirms whether the header information of the received packet matches the information of the flow header 201 of the flow entry 200 in the flow table 21 managed by the switch (OFS) 20-1.

(3)ステップS103
スイッチ(OFS)20−1は、自身が管理するフローテーブル21中に、受信したパケットと合致するフローエントリ200が存在しない場合(ステップS102でNo)、受信したパケットがSYNパケットであるか確認する。
(3) Step S103
When there is no flow entry 200 that matches the received packet in the flow table 21 managed by the switch (OFS) 20-1 (No in step S102), the switch (OFS) 20-1 checks whether the received packet is a SYN packet. .

(4)ステップS104
スイッチ(OFS)20−1は、受信したパケットがSYNパケットである場合(ステップS103でYes)、このSYNパケットの送信元であるホスト30−1との代理TCP接続を試みる。
(4) Step S104
When the received packet is a SYN packet (Yes in step S103), the switch (OFS) 20-1 attempts a proxy TCP connection with the host 30-1 that is the transmission source of the SYN packet.

(5)ステップS105
スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続が成功したか確認する。ホスト30−1からの「SYN Flood」攻撃である場合(ステップS105でNo)、スイッチ(OFS)20−1とホスト30−1との代理TCP接続は必ず失敗する。スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続が失敗した場合、ホスト30−1から受け取ったパケットが「SYN Flood」攻撃としてのSYNパケットである可能性が高いと判断し、自身を管理するコントローラ(OFC)10にパケットを転送することなく、受信したパケットを廃棄し、処理を終了する。
(5) Step S105
The switch (OFS) 20-1 checks whether the proxy TCP connection with the host 30-1 is successful. In the case of a “SYN Flood” attack from the host 30-1 (No in step S105), the proxy TCP connection between the switch (OFS) 20-1 and the host 30-1 always fails. When the proxy TCP connection with the host 30-1 fails, the switch (OFS) 20-1 determines that the packet received from the host 30-1 is highly likely to be a SYN packet as a “SYN Flood” attack. The received packet is discarded without transferring the packet to the controller (OFC) 10 that manages itself, and the process ends.

(6)ステップS106
スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続が成功した場合(ステップS105でYes)、コントローラ(OFC)10に、受信したパケットを転送し、受信したパケットの経路計算と設定を要求する。
(7)ステップS107
コントローラ(OFC)10は、スイッチ(OFS)20−1からの要求に応じて、経路計算を行い、計算の結果として得られた通信経路を基に、通信経路上の各スイッチ(OFS)20にフローエントリ200を設定する。各スイッチ(OFS)20は、コントローラ(OFC)10から設定されたフローエントリ200をフローテーブル21に登録する。
(6) Step S106
When the proxy TCP connection with the host 30-1 is successful (Yes in step S105), the switch (OFS) 20-1 transfers the received packet to the controller (OFC) 10, and calculates the path of the received packet. Request settings.
(7) Step S107
The controller (OFC) 10 performs path calculation in response to a request from the switch (OFS) 20-1, and based on the communication path obtained as a result of the calculation, each controller (OFS) 20 on the communication path A flow entry 200 is set. Each switch (OFS) 20 registers the flow entry 200 set from the controller (OFC) 10 in the flow table 21.

(8)ステップS108
スイッチ(OFS)20−1は、自身が先頭スイッチ(OFS)であるか確認する。ここでは、スイッチ(OFS)20−1は、コントローラ(OFC)10から設定されたフローエントリ200の通信経路先頭識別子204を解析し、フローエントリ200の通信経路先頭識別子204の値が、先頭スイッチ(OFS)である旨を示す値であるか確認する。
(8) Step S108
The switch (OFS) 20-1 confirms whether it is the head switch (OFS). Here, the switch (OFS) 20-1 analyzes the communication path head identifier 204 of the flow entry 200 set from the controller (OFC) 10, and the value of the communication path head identifier 204 of the flow entry 200 is changed to the head switch ( It is confirmed whether the value indicates that it is OFS).

(9)ステップS109
スイッチ(OFS)20−1は、自身が先頭スイッチ(OFS)である場合(ステップS108でYes)、ホスト30−2との代理TCP接続を試みる。例えば、スイッチ(OFS)20−1は、自身のフローエントリ200のアクション202に従って、ホスト30−2との代理TCP接続のためのSYNパケットを、ホスト30−2に送信する。
(9) Step S109
When the switch (OFS) 20-1 is the first switch (OFS) (Yes in step S108), the switch (OFS) 20-1 attempts a proxy TCP connection with the host 30-2. For example, the switch (OFS) 20-1 transmits a SYN packet for proxy TCP connection with the host 30-2 to the host 30-2 in accordance with the action 202 of its own flow entry 200.

(10)ステップS110
スイッチ(OFS)20−1は、ホスト30−2との代理TCP接続が成功したか確認する。通常、スイッチ(OFS)20−1は正常なTCP通信を行うため、スイッチ(OFS)20−1とホスト30−2との代理TCP接続は成功する。仮に、何らかの事情で、スイッチ(OFS)20−1とホスト30−2との代理TCP接続が失敗した場合(ステップS110でNo)、処理を終了する。或いは、一定時間経過後/定期的に、ホスト30−2との代理TCP接続を再試行し、一定回数の代理TCP接続の再試行が失敗した場合、処理を終了するようにしても良い。このとき、スイッチ(OFS)20−1は、ホスト30−2との代理TCP接続が失敗した旨を、コントローラ(OFC)10及びホスト30−1に通知するようにしても良い。
(10) Step S110
The switch (OFS) 20-1 checks whether the proxy TCP connection with the host 30-2 is successful. Normally, since the switch (OFS) 20-1 performs normal TCP communication, the proxy TCP connection between the switch (OFS) 20-1 and the host 30-2 is successful. If the proxy TCP connection between the switch (OFS) 20-1 and the host 30-2 fails for some reason (No in step S110), the process ends. Alternatively, the proxy TCP connection with the host 30-2 may be retried after a certain period of time / periodically, and the processing may be terminated if a certain number of proxy TCP connection retries have failed. At this time, the switch (OFS) 20-1 may notify the controller (OFC) 10 and the host 30-1 that the proxy TCP connection with the host 30-2 has failed.

(11)ステップS111
スイッチ(OFS)20−1は、ホスト30−2との代理TCP接続が成功した場合(ステップS110でYes)、ホスト30−1とホスト30−2との間の通信パケットのフィールド値を変更(変換)するため、フローエントリ200を更新し、フローエントリ200のアクション202に、ホスト30−1とホスト30−2との間の通信パケットのフィールド値を変更(変換)する動作を指定する。実際には、新規のフローエントリ200を設定しても良い。その後、処理を終了する。例えば、ホスト30−1からの通信パケット等の到着を待つ(ステップS101に戻る)。
(11) Step S111
When the proxy TCP connection with the host 30-2 is successful (Yes in step S110), the switch (OFS) 20-1 changes the field value of the communication packet between the host 30-1 and the host 30-2 ( In order to perform conversion, the flow entry 200 is updated, and the action 202 of the flow entry 200 is designated with an operation for changing (converting) the field value of the communication packet between the host 30-1 and the host 30-2. In practice, a new flow entry 200 may be set. Thereafter, the process ends. For example, it waits for the arrival of a communication packet or the like from the host 30-1 (returns to step S101).

(12)ステップS112
なお、スイッチ(OFS)20−1は、受信したパケットと合致するフローエントリ200が存在せず、受信したパケットがSYNパケットではない場合(ステップS103でNo)、当該パケットを「ファーストパケット」(First packet)と判断し、通常のオープンフローネットワークと同様に処理する。すなわち、スイッチ(OFS)20−1は、コントローラ(OFC)10に、受信したパケットを転送し、受信したパケットの経路計算と設定を要求する。
(12) Step S112
If the flow entry 200 that matches the received packet does not exist and the received packet is not a SYN packet (No in step S103), the switch (OFS) 20-1 determines that the packet is a “first packet” (First packet), and processing is performed in the same manner as a normal OpenFlow network. That is, the switch (OFS) 20-1 forwards the received packet to the controller (OFC) 10 and requests route calculation and setting of the received packet.

(13)ステップS113
コントローラ(OFC)10は、スイッチ(OFS)20−1からの要求に応じて、経路計算を行い、計算の結果として得られた通信経路を基に、通信経路上の各スイッチ(OFS)20に、ファーストパケット用のフローエントリ200を設定する。このフローエントリ200の仕様は、通信経路先頭識別子204を含まない通常のフローエントリの仕様でも十分である。各スイッチ(OFS)20は、コントローラ(OFC)10から設定されたフローエントリ200をフローテーブル21に登録する。
(13) Step S113
The controller (OFC) 10 performs path calculation in response to a request from the switch (OFS) 20-1, and based on the communication path obtained as a result of the calculation, each controller (OFS) 20 on the communication path The flow entry 200 for the first packet is set. As the specification of the flow entry 200, the specification of a normal flow entry that does not include the communication path head identifier 204 is sufficient. Each switch (OFS) 20 registers the flow entry 200 set from the controller (OFC) 10 in the flow table 21.

(14)ステップS114
スイッチ(OFS)20−1は、受信したパケットと合致するフローエントリ200が存在する場合(ステップS102でYes)、或いは、自身が先頭スイッチ(OFS)ではない場合(ステップS108でNo)、又は、コントローラ(OFC)10からファーストパケット用のフローエントリ200を設定された場合(ステップS113の後)、自身のフローエントリ200のアクション202に従って、受信したパケットを処理する。なお、スイッチ(OFS)20−1以外のスイッチ(OFS)20も、スイッチ(OFS)20−1と同様に、自身のフローエントリ200のアクション202に従って、受信したパケットを処理する。
(14) Step S114
The switch (OFS) 20-1 has a flow entry 200 that matches the received packet (Yes in step S102), or is not the first switch (OFS) (No in step S108), or When the flow entry 200 for the first packet is set by the controller (OFC) 10 (after step S113), the received packet is processed according to the action 202 of its own flow entry 200. Note that the switch (OFS) 20 other than the switch (OFS) 20-1 also processes the received packet in accordance with the action 202 of its own flow entry 200, like the switch (OFS) 20-1.

これにより、オープンフローネットワークにおいて、「SYN Flood」攻撃が行われた場合、攻撃を回避しながら代理TCP接続による通信時間の遅延を小さくすることができる。   Thereby, when the “SYN Flood” attack is performed in the OpenFlow network, the delay of the communication time due to the proxy TCP connection can be reduced while avoiding the attack.

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

本発明は、図9に示すように、コントローラ(OFC)10やスイッチ(OFS)20がネットワーク上に複数ある場合でも成立する。更に、本発明は、ネットワーク上にある複数のスイッチ(OFS)間がどのように接続されていても成立する。   As shown in FIG. 9, the present invention is established even when there are a plurality of controllers (OFC) 10 and switches (OFS) 20 on the network. Furthermore, the present invention is established regardless of how the plurality of switches (OFS) on the network are connected.

[システム構成]
図9を参照して、本実施形態に係るオープンフローネットワークシステムの構成例について説明する。
[System configuration]
With reference to FIG. 9, a configuration example of the OpenFlow network system according to the present embodiment will be described.

本実施形態に係るオープンフローネットワークシステムは、コントローラ(OFC)10(10−i、i=1〜X:Xは任意)と、スイッチ(OFS)20(20−j、j=1〜Y:Yは任意)と、ホスト30(30−k、k=1〜Z:Zは任意)を含む。   The OpenFlow network system according to the present embodiment includes a controller (OFC) 10 (10-i, i = 1 to X: X is arbitrary) and a switch (OFS) 20 (20-j, j = 1 to Y: Y). And host 30 (30-k, k = 1 to Z: Z is optional).

コントローラ(OFC)10(10−i、i=1〜X)、スイッチ(OFS)20(20−j、j=1〜Y)、及びホスト30(30−k、k=1〜Z)は、それぞれ第1実施形態において説明したコントローラ(OFC)10、スイッチ(OFS)20、及びホスト30に相当する。   The controller (OFC) 10 (10-i, i = 1 to X), the switch (OFS) 20 (20-j, j = 1 to Y), and the host 30 (30-k, k = 1 to Z) Each corresponds to the controller (OFC) 10, the switch (OFS) 20, and the host 30 described in the first embodiment.

例えば、図9に示すようなオープンフローネットワークシステムにおいて、ホスト30−1からホスト30−Zに通信パケットを送信する場合、スイッチ(OFS)20−1、スイッチ(OFS)20−4、スイッチ(OFS)20−8、・・・、スイッチ(OFS)20−Y、及びスイッチ(OFS)20−(Y−1)が通信経路上のスイッチ(OFS)となる。   For example, in the OpenFlow network system as shown in FIG. 9, when a communication packet is transmitted from the host 30-1 to the host 30-Z, the switch (OFS) 20-1, the switch (OFS) 20-4, the switch (OFS) ) 20-8,..., Switch (OFS) 20-Y, and switch (OFS) 20- (Y-1) are switches (OFS) on the communication path.

このとき、スイッチ(OFS)20−1は、先頭スイッチ(OFS)となる。また、スイッチ(OFS)20−4、スイッチ(OFS)20−8、・・・、スイッチ(OFS)20−Y、及びスイッチ(OFS)20−(Y−1)の各々は、先頭スイッチ(OFS)以外のスイッチ(OFS)となる。   At this time, the switch (OFS) 20-1 becomes the leading switch (OFS). In addition, each of the switch (OFS) 20-4, the switch (OFS) 20-8,..., The switch (OFS) 20-Y, and the switch (OFS) 20- (Y-1) is a leading switch (OFS). ) Other than the switch (OFS).

なお、スイッチ(OFS)20−1がパケットを転送するコントローラ(OFC)10は、コントローラ(OFC)10−1、コントローラ(OFC)10−2、・・・、コントローラ(OFC)10−Xのいずれかである。   The controller (OFC) 10 to which the switch (OFS) 20-1 transfers a packet is any one of the controller (OFC) 10-1, the controller (OFC) 10-2,..., And the controller (OFC) 10-X. It is.

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

本発明は、図5に示す「不正接続」や図6に示す「正常接続」の「(1)SYNパケットの受信」の直後に、コントローラ(OFC)にSYNパケットを転送する場合でも成立する。   The present invention is established even when a SYN packet is transferred to the controller (OFC) immediately after “(1) SYN packet reception” of “illegal connection” shown in FIG. 5 or “normal connection” shown in FIG.

[システム構成]
本実施形態に係るオープンフローネットワークシステムの構成例については、図1に示す構成例(第1実施形態)と同様であるものとする。
[System configuration]
The configuration example of the OpenFlow network system according to the present embodiment is the same as the configuration example (first embodiment) shown in FIG.

[処理の概要]
図10を参照して、本実施形態における処理の概要を、以下に説明する。
[Process overview]
With reference to FIG. 10, an outline of processing in the present embodiment will be described below.

(1)SYNパケットの受信
スイッチ(OFS)20−1は、ホスト30−1からSYNパケットを受信する。
(1) Reception of SYN packet The switch (OFS) 20-1 receives a SYN packet from the host 30-1.

(2)SYNパケットの転送
スイッチ(OFS)20−1は、受信したSYNパケットをコントローラ(OFC)10に転送する。コントローラ(OFC)10は、スイッチ(OFS)20−1からSYNパケットを受信した場合、経路計算をせずにスイッチ(OFS)20−1からの要求を待つ。
(2) Transfer of SYN packet The switch (OFS) 20-1 transfers the received SYN packet to the controller (OFC) 10. When receiving the SYN packet from the switch (OFS) 20-1, the controller (OFC) 10 waits for a request from the switch (OFS) 20-1 without performing route calculation.

(3)代理TCP接続の試行
スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続を試みる。
(3) Proxy TCP connection attempt The switch (OFS) 20-1 attempts a proxy TCP connection with the host 30-1.

(4)失敗時の廃棄要求
スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続が失敗する場合、コントローラ(OFC)10に、先に転送したパケット(SYNパケット)の廃棄を要求し、処理を終了する。コントローラ(OFC)10は、スイッチ(OFS)20−1からの当該要求に応じて、SYNパケットを廃棄し、処理を終了する。
(4) Discard request upon failure When the proxy TCP connection with the host 30-1 fails, the switch (OFS) 20-1 discards the packet (SYN packet) transferred earlier to the controller (OFC) 10. Request and end processing. In response to the request from the switch (OFS) 20-1, the controller (OFC) 10 discards the SYN packet and ends the process.

(5)成功時の計算要求
スイッチ(OFS)20−1は、ホスト30−1との代理TCP接続が成功する場合、コントローラ(OFC)10に、先に転送したパケット(SYNパケット)の経路計算と設定を要求する。
(5) Calculation request at the time of success When the proxy TCP connection with the host 30-1 is successful, the switch (OFS) 20-1 calculates the path of the packet (SYN packet) transferred to the controller (OFC) 10 earlier. And request settings.

以降は、図6に示す「正常接続」の「(4)経路計算」から「(11)通信パケットの受信」までの処理と同様である。   The subsequent processing is the same as the processing from “(4) route calculation” to “(11) reception of communication packet” of “normal connection” shown in FIG.

(6)経路計算
コントローラ(OFC)10は、スイッチ(OFS)20−1からの要求に応じて、経路計算を行い、計算の結果として得られた通信経路を基にフローエントリ200を作成する。ここでは、通信経路上で最も送信元のホスト30−1に近いスイッチ(OFS)は、要求元のスイッチ(OFS)20−1である。
(6) Route Calculation The controller (OFC) 10 performs route calculation in response to a request from the switch (OFS) 20-1, and creates a flow entry 200 based on the communication route obtained as a result of the calculation. Here, the switch (OFS) closest to the transmission source host 30-1 on the communication path is the request source switch (OFS) 20-1.

(7)先頭スイッチ以外の設定
コントローラ(OFC)10は、スイッチ(OFS)20−2に設定されるフローエントリ200の通信経路先頭識別子204に、先頭スイッチ(OFS)ではない旨を示す値を指定し、スイッチ(OFS)20−2にフローエントリ200を設定する。
(7) Setting other than head switch The controller (OFC) 10 designates a value indicating that it is not the head switch (OFS) in the communication path head identifier 204 of the flow entry 200 set in the switch (OFS) 20-2. The flow entry 200 is set in the switch (OFS) 20-2.

(8)先頭スイッチの設定
コントローラ(OFC)10は、スイッチ(OFS)20−1に設定されるフローエントリ200の通信経路先頭識別子204に、先頭スイッチ(OFS)である旨を示す値を指定し、スイッチ(OFS)20−1にフローエントリ200を設定する。
(8) Setting of head switch The controller (OFC) 10 designates a value indicating that it is the head switch (OFS) in the communication path head identifier 204 of the flow entry 200 set in the switch (OFS) 20-1. The flow entry 200 is set in the switch (OFS) 20-1.

(9)送信先との代理TCP接続の試行
スイッチ(OFS)20−1は、設定されたフローエントリ200の通信経路先頭識別子204を解析し、フローエントリ200の通信経路先頭識別子204の値が、先頭スイッチ(OFS)である旨を示す値であるため、ホスト30−2との代理TCP接続を行う。
(9) Proxy TCP connection trial with transmission destination The switch (OFS) 20-1 analyzes the communication path head identifier 204 of the set flow entry 200, and the value of the communication path head identifier 204 of the flow entry 200 is Since it is a value indicating that it is the head switch (OFS), proxy TCP connection with the host 30-2 is performed.

(10)変換用フローエントリの設定
スイッチ(OFS)20−1は、スイッチ(OFS)20−1とホスト30−2との間の通信経路が確立した場合、ホスト30−1とホスト30−2との間の通信パケットのフィールド値を変更(変換)するためのフローエントリ200の設定を行う。
(10) Setting of Conversion Flow Entry When the communication path between the switch (OFS) 20-1 and the host 30-2 is established, the switch (OFS) 20-1 establishes the host 30-1 and the host 30-2. The flow entry 200 is set to change (convert) the field value of the communication packet between and.

(11)通信パケットの受信
スイッチ(OFS)20−1は、ホスト30−1から通信パケットを受信する。
(11) Reception of communication packet The switch (OFS) 20-1 receives a communication packet from the host 30-1.

(12)通信パケットのフィールド値の変換
スイッチ(OFS)20−1は、ホスト30−1とホスト30−2との間の通信パケットの受信時に、自身のフローエントリ200のアクション202に従って、通信パケットのフィールド値を変更(変換)する。
(12) Conversion of field value of communication packet When receiving a communication packet between the host 30-1 and the host 30-2, the switch (OFS) 20-1 communicates with the communication packet according to the action 202 of its own flow entry 200. Change (convert) the field value of.

(13)通信パケットの受信
スイッチ(OFS)20−1は、ホスト30−2に通信パケットを転送する。
(13) Reception of communication packet The switch (OFS) 20-1 transfers the communication packet to the host 30-2.

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

本発明において、先頭スイッチ(OFS)が、パケットの送信元ホストとの代理TCP接続に失敗した場合に、送信元ホストからのパケットの受信回数をカウントしておくようにする。受信回数が予め設定した閾値に達すると、送信元ホストからのパケットが「SYN Flood」攻撃としてのSYNパケットである可能性が高いと判断し、パケットの送信元ホストとの代理TCP接続を一定時間拒否するようにする。   In the present invention, when the leading switch (OFS) fails in proxy TCP connection with the packet transmission source host, the number of reception of the packet from the transmission source host is counted. When the number of receptions reaches a preset threshold value, it is determined that the packet from the transmission source host is likely to be a SYN packet as a “SYN Flood” attack, and the proxy TCP connection with the transmission source host of the packet is performed for a certain period of time. Try to refuse.

代理TCP接続を一定時間拒否することで、先頭スイッチ(OFS)が、パケットの送信元ホストとの代理TCP接続に失敗した場合、再度SYNパケットを受信した際に、無条件に代理TCP接続を試みてしまうことを防ぐことができる。   By rejecting the proxy TCP connection for a certain period of time, if the leading switch (OFS) fails to connect to the packet source host, it will try to connect to the proxy unconditionally when it receives the SYN packet again. Can be prevented.

また、パケットの受信回数を判断材料とすることで、「SYN Flood」攻撃ではないが、何らかの事情で、先頭スイッチ(OFS)が、パケットの送信元ホストとの代理TCP接続に失敗した場合に、直ちに「SYN Flood」攻撃と判断してしまうことを防ぐことができる。   Also, by using the packet reception count as a criterion, it is not a “SYN Flood” attack, but if for some reason the head switch (OFS) fails to proxy TCP connection with the packet source host, It can be prevented that the “SYN Flood” attack is immediately determined.

例えば、図4に示すスイッチ(OFS)20のパケット受信部23が、ホスト30からのパケットの受信回数をカウントし、受信回数が予め設定した閾値に達すると、ホスト30からのパケットが「SYN Flood」攻撃としてのSYNパケットである可能性が高いと判断する。   For example, the packet reception unit 23 of the switch (OFS) 20 shown in FIG. 4 counts the number of receptions of packets from the host 30, and when the number of receptions reaches a preset threshold, the packet from the host 30 is “SYN Flood”. It is determined that there is a high possibility that the packet is a SYN packet as an attack.

この場合、図4に示すスイッチ(OFS)20のパケット受信部23が、一定時間、ホスト30からのパケットの受信を拒否するようにする。或いは、図4に示すスイッチ(OFS)20のパケット送信部24が、一定時間、ホスト30との代理TCP接続の試行(ACKパケットの送信)を拒否するようにする。或いは、図4に示すスイッチ(OFS)20のパケット廃棄部25が、一定時間、ホスト30からのパケットを廃棄するようにする。   In this case, the packet receiving unit 23 of the switch (OFS) 20 shown in FIG. 4 rejects reception of the packet from the host 30 for a certain period of time. Alternatively, the packet transmission unit 24 of the switch (OFS) 20 illustrated in FIG. 4 rejects a proxy TCP connection attempt (transmission of an ACK packet) with the host 30 for a certain period of time. Alternatively, the packet discard unit 25 of the switch (OFS) 20 shown in FIG. 4 discards the packet from the host 30 for a certain time.

<各実施形態の関係>
なお、上記の各実施形態は、組み合わせて実施することも可能である。
<Relationship between each embodiment>
Note that the above embodiments can be implemented in combination.

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

コントローラ(OFC)及びホストの例として、PC(パソコン)、アプライアンス(appliance)、シンクライアントサーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、ホストの他の例として、IP電話機、携帯電話機、スマートフォン、スマートブック、カーナビ(カーナビゲーションシステム)、携帯型ゲーム機、家庭用ゲーム機、携帯型音楽プレーヤー、ハンディターミナル、ガジェット(電子機器)、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電(information home appliance)、OA(Office Automation)機器、店頭端末・高機能コピー機、デジタルサイネージ(Digital Signage:電子看板)等も考えられる。なお、コントローラ(OFC)及びホストは、端末やサーバに限らず、中継機器や周辺機器でも良い。また、コントローラ(OFC)及びホストは、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン(VM:Virtual Machine)でも良い。   As examples of the controller (OFC) and the host, a computer such as a PC (personal computer), an appliance, a thin client server, a workstation, a mainframe, and a supercomputer is assumed. Other examples of hosts include IP phones, mobile phones, smart phones, smart books, car navigation systems (car navigation systems), portable game consoles, home game consoles, portable music players, handy terminals, gadgets (electronic devices). An interactive television, a digital tuner, a digital recorder, an information home appliance, an office automation (OA) device, an over-the-counter terminal / high-function copy machine, a digital signage (digital signage), and the like are also conceivable. The controller (OFC) and host are not limited to terminals and servers, but may be relay devices or peripheral devices. Further, the controller (OFC) and the host may be an expansion board mounted on a computer or the like, or a virtual machine (VM: Virtual Machine) constructed on a physical machine.

スイッチ(OFS)の例として、ネットワークスイッチ(network switch)、ルータ(router)、プロキシ(proxy)、ゲートウェイ(gateway)、ファイアウォール(firewall)、ロードバランサ(load balancer:負荷分散装置)、帯域制御装置(packet shaper)、セキュリティ監視制御装置(SCADA:Supervisory Control And Data Acquisition)、ゲートキーパー(gatekeeper)、基地局(base station)、アクセスポイント(AP:Access Point)、通信衛星(CS:Communication Satellite)、或いは、複数の通信ポートを有する計算機等が考えられる。また、物理マシン上に構築された仮想マシン(VM)により実現される仮想スイッチでも良い。   Examples of the switch (OFS) include a network switch, a router, a proxy, a gateway, a firewall, a load balancer, a bandwidth control device (load balancer) packet shaper, security supervisory control and data acquisition (SCADA), gatekeeper, base station, access point (AP), communication satellite (CS), uncommunication satellite (CS) A computer with multiple communication ports is considered. . Further, a virtual switch realized by a virtual machine (VM) constructed on a physical machine may be used.

コントローラ(OFC)、スイッチ(OFS)、及びホストは、車両や船舶、航空機等の移動体に搭載されていても良い。   The controller (OFC), the switch (OFS), and the host may be mounted on a moving body such as a vehicle, a ship, or an aircraft.

図示しないが、コントローラ(OFC)、スイッチ(OFS)、及びホストの各々は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、ネットワークとの通信に用いられるインターフェースによって実現される。   Although not shown, each of the controller (OFC), the switch (OFS), and the host communicates with a processor that drives based on a program and executes predetermined processing, a memory that stores the program and various data, and a network It is realized by the interface used for

上記のプロセッサの例として、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)等の記憶媒体(メディア)等が考えられる。また、バッファ(buffer)やレジスタ(register)等でも良い。或いは、DAS(Direct Attached Storage)、FC−SAN(Fibre Channel − Storage Area Network)、NAS(Network Attached Storage)、IP−SAN(IP − Storage Area Network)等を用いたストレージ装置でも良い。   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. Further, a buffer, a register, or the like may be used. Alternatively, DAS (Direct Attached Storage), FC-SAN (Fibre Channel-Storage Area Network), NAS (Network Attached Storage), IP-SAN (IP-Storage Area), etc. may 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 an electronic device or the like includes the processor and the memory can be considered.

上記のインターフェースの例として、ネットワーク通信に対応した基板(マザーボード、I/Oボード)やチップ等の半導体集積回路、NIC(Network Interface Card)等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口(コネクタ)等の通信ポート等が考えられる。   Examples of the interfaces 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.

なお、コントローラ(OFC)、スイッチ(OFS)、及びホストの各々の内部の構成要素は、モジュール(module)、コンポーネント(component)、或いは専用デバイス、又はこれらの起動(呼出)プログラムでも良い。   The internal components of the controller (OFC), switch (OFS), and host may be modules, components, dedicated devices, or their activation (calling) programs.

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

<本発明の特徴>
以上のように、本発明では、オープンフローネットワーク等のCD分離型ネットワークにおいて、通信経路先頭識別子を導入し、スイッチによる代理TCP接続時の通信遅延を短縮する。
<Features of the present invention>
As described above, in the present invention, in a CD separation type network such as an OpenFlow network, a communication path head identifier is introduced to reduce a communication delay at the time of proxy TCP connection by a switch.

Dos攻撃の一般的な攻撃の1つである「SYN Flood」攻撃の防御手法の1つに、パケットの内容によって、受信したパケットの転送先を決定するルータ(Router)やロードバランサ(Load Balancer)等のネットワーク機器が攻撃対象のサーバの代理でTCP接続(代理TCP接続)を行うことで、攻撃を検知し防御する手法がある。   One of the defense methods of the “SYN Flood” attack, which is one of the general attacks of the Dos attack, is a router (Router) or a load balancer (Load Balancer) that determines a forwarding destination of a received packet according to the content of the packet. For example, there is a technique for detecting and defending against an attack by making a TCP connection (proxy TCP connection) on behalf of an attack target server.

しかし、この防御手法を、オープンフローネットワークにおいて、パケットの転送を行うスイッチ(OFS)にそのまま適用すると、パケットの通信経路上に複数のスイッチ(OFS)がある場合、スイッチ(OFS)毎に個別に代理TCP接続が必要となり、各々の接続が確立するまでの待機時間により、通信遅延が発生する可能性があった。   However, if this protection technique is applied as it is to a switch (OFS) that transfers packets in an OpenFlow network, if there are multiple switches (OFS) on the packet communication path, each switch (OFS) individually A proxy TCP connection is required, and communication delay may occur due to a waiting time until each connection is established.

本発明では、スイッチ(OFS)が保持する経路情報にパケットの送信元ホストからサーバへの通信経路上の先頭のスイッチ(OFS)であることを示す情報を付加することで、通信経路上にスイッチ(OFS)の台数に比例して必要であった代理TCP接続の回数を通信経路上のスイッチ(OFS)の台数に関係なく2回に限定し、「SYN Flood」攻撃に対する防御と通信遅延時間削減の両立を可能とする。   In the present invention, by adding information indicating the first switch (OFS) on the communication path from the packet transmission source host to the server to the path information held by the switch (OFS), the switch is set on the communication path. The number of proxy TCP connections required in proportion to the number of (OFS) is limited to two, regardless of the number of switches (OFS) on the communication path, and protection against “SYN Flood” attacks and communication delay time reduction Is possible.

本発明は、オープンフローに代表されるような、経路制御の機能を外部の制御装置(コントローラ)に分離したネットワーク機器(スイッチ)で構成されるネットワークシステムに適用することができる。   The present invention can be applied to a network system composed of network devices (switches) in which a path control function is separated into an external control device (controller), as represented by OpenFlow.

経路制御の機能を外部の制御装置(コントローラ)に分離したネットワーク機器(スイッチ)で構成されるネットワークシステムに本発明を適用した場合、パケット転送を行うネットワーク機器(スイッチ)のうち、パケットの通信経路における先頭のネットワーク機器(スイッチ)が、パケットの通信経路上のネットワーク機器(スイッチ)の中で、パケットの送信先に最も近いネットワーク機器(スイッチ)である旨を示す情報(通信経路先頭識別子)を保持する。   When the present invention is applied to a network system composed of network devices (switches) in which the path control function is separated into an external control device (controller), the packet communication route among the network devices (switches) that perform packet transfer Information (communication path head identifier) indicating that the head network device (switch) in is the network device (switch) closest to the packet transmission destination among the network devices (switches) on the packet communication path Hold.

また、経路制御の機能を外部の制御装置(コントローラ)に分離したネットワーク機器(スイッチ)で構成されるネットワークシステムに本発明を適用した場合、経路制御を行う制御装置(コントローラ)が、パケット転送を行うネットワーク機器(スイッチ)のうち、パケットの通信経路における先頭のネットワーク機器(スイッチ)に対して、上記情報(通信経路先頭識別子)を設定する。   In addition, when the present invention is applied to a network system composed of network devices (switches) in which the path control function is separated from an external control device (controller), the control device (controller) that performs route control performs packet transfer. Among the network devices (switches) to be performed, the above information (communication route head identifier) is set for the head network device (switch) in the packet communication route.

また、経路制御の機能を外部の制御装置(コントローラ)に分離したネットワーク機器(スイッチ)で構成されるネットワークシステムに本発明を適用した場合、上記情報(通信経路先頭識別子)によって、パケットの送信先に最も近いネットワーク機器(スイッチ)のみが送信元・送信先と代理TCP接続を行うため、パケット転送を行うネットワーク機器(スイッチ)間でTCP接続を行う必要がない。   In addition, when the present invention is applied to a network system composed of network devices (switches) in which the path control function is separated from an external control device (controller), the packet transmission destination is determined by the above information (communication path head identifier). Since only the network device (switch) closest to the device performs proxy TCP connection with the transmission source / destination, there is no need to perform TCP connection between network devices (switches) that perform packet transfer.

<付記>
上記の実施形態の一部又は全部は、以下の付記のように記載することも可能である。但し、実際には、以下の記載例に限定されない。
<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]
複数のスイッチと、
該複数のスイッチの各々に対して、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリを設定するコントローラと
を含み、
該各スイッチは、
送信元ホストからSYNパケットを受信する機能部と、
該送信元ホストとの代理TCP接続に成功した場合、該コントローラに対して、経路計算及びフローエントリの設定を要求する機能部と、
該経路計算の結果として得られた通信経路上の先頭スイッチである場合、送信先ホストとの代理TCP接続を行う機能部と、
該通信経路上の先頭スイッチではない場合、先頭スイッチと該送信先ホストとの代理TCP接続のためのSYNパケットを転送する機能部と
を備える
ネットワークシステム。
[Appendix 1]
Multiple switches,
A controller for setting a flow entry in which rules and actions for uniformly controlling a packet as a flow are defined for each of the plurality of switches,
Each switch is
A functional unit for receiving a SYN packet from a transmission source host;
When the proxy TCP connection with the transmission source host is successful, a function unit that requests the controller to calculate a route and set a flow entry;
If the head switch on the communication path obtained as a result of the path calculation, a functional unit that performs proxy TCP connection with the destination host;
A network system comprising: a function unit that transfers a SYN packet for proxy TCP connection between the head switch and the transmission destination host if the head switch is not the head switch on the communication path.

[付記2]
付記2に記載のネットワークシステムであって、
該各スイッチは、
該通信経路上の先頭スイッチである場合、該送信先ホストとの代理TCP接続が確立した時点で、該送信元ホストと該送信先ホストとの間の通信パケットのTCPヘッダの確認応答番号とシーケンス番号とを変更するための変換用フローエントリを設定し、該変換用フローエントリを該コントローラに通知する機能部と、
該送信元ホストと該送信先ホストとの間の通信パケットの受信時に、該変換用フローエントリに従って、該通信パケットのTCPヘッダの確認応答番号とシーケンス番号とを変更し、該送信元ホストと該送信先ホストとが直接代理TCP接続しているように擬装する機能部と
を更に備える
ネットワークシステム。
[Appendix 2]
The network system according to attachment 2, wherein
Each switch is
If it is the leading switch on the communication path, the confirmation response number and sequence of the TCP header of the communication packet between the transmission source host and the transmission destination host when the proxy TCP connection with the transmission destination host is established A function part for setting a conversion flow entry for changing the number and notifying the controller of the conversion flow entry;
When a communication packet is received between the transmission source host and the transmission destination host, the acknowledgment number and sequence number of the TCP header of the communication packet are changed according to the conversion flow entry, and the transmission source host A network system further comprising: a functional unit that disguises itself as a direct proxy TCP connection with a destination host.

<備考>
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
<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.

10… コントローラ(OFC)
11… ネットワーク管理部
12… 経路計算部
13… パケット処理部
20… スイッチ(OFS)
21… フローテーブル
22… フローテーブル管理部
23… パケット受信部
24… パケット送信部
25… パケット廃棄部
26… 通信経路先頭解析部
27… 代理TCP接続部
30… ホスト
200… フローエントリ
201… フローヘッダ
202… アクション
203… フローカウンタ
204… 通信経路先頭識別子
10 ... Controller (OFC)
DESCRIPTION OF SYMBOLS 11 ... Network management part 12 ... Path | route calculation part 13 ... Packet processing part 20 ... Switch (OFS)
DESCRIPTION OF SYMBOLS 21 ... Flow table 22 ... Flow table management part 23 ... Packet reception part 24 ... Packet transmission part 25 ... Packet discard part 26 ... Communication path head analysis part 27 ... Proxy TCP connection part 30 ... Host 200 ... Flow entry 201 ... Flow header 202 ... Action 203 ... Flow counter 204 ... Communication path head identifier

Claims (14)

パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行う複数のスイッチと、
前記複数のスイッチの各々に対して、前記フローエントリの設定を行うコントローラと
を含み、
前記各スイッチは、送信元ホストからSYNパケットを受信した場合、前記コントローラに経路計算を要求し、前記経路計算の結果として得られた通信経路上の先頭スイッチである場合、送信先ホストとの代理TCP接続を行い、前記通信経路上の先頭スイッチではない場合、先頭スイッチと前記送信先ホストとの代理TCP接続のためのSYNパケットを転送する
ネットワークシステム。
A plurality of switches that process received packets in accordance with a flow entry in which rules and actions for uniformly controlling packets as flows are defined;
A controller for setting the flow entry for each of the plurality of switches,
When each switch receives a SYN packet from a transmission source host, the switch requests a path calculation from the controller. When the switch is a head switch on a communication path obtained as a result of the path calculation, the switch acts as a proxy with the transmission destination host. A network system that performs TCP connection and transfers a SYN packet for proxy TCP connection between the head switch and the destination host when the head switch is not the head switch on the communication path.
請求項1に記載のネットワークシステムであって、
前記コントローラは、前記通信経路上の先頭スイッチに対して、先頭スイッチである旨を示す値が指定されたフローエントリを設定し、
前記各スイッチは、前記フローエントリを参照し、前記フローエントリに、前記通信経路上の先頭スイッチである旨を示す値が指定されている場合、自身が前記通信経路上の先頭スイッチであると判断する
ネットワークシステム。
The network system according to claim 1,
The controller sets a flow entry in which a value indicating the head switch is designated for the head switch on the communication path,
Each of the switches refers to the flow entry, and determines that the switch is the first switch on the communication path when a value indicating that it is the first switch on the communication path is specified in the flow entry. Network system.
請求項1又は2に記載のネットワークシステムであって、
前記各スイッチは、前記送信元ホストからSYNパケットを受信した場合、前記送信先ホストとの代理TCP接続を試行し、前記送信先ホストとの代理TCP接続に成功した場合、前記コントローラに該SYNパケットを転送し、該SYNパケットの経路計算を要求し、前記送信先ホストとの代理TCP接続に失敗した場合、該SYNパケットを廃棄する
ネットワークシステム。
The network system according to claim 1 or 2,
When each switch receives a SYN packet from the transmission source host, the switch tries a proxy TCP connection with the transmission destination host, and when the proxy TCP connection with the transmission destination host is successful, the switch sends the SYN packet to the controller. The network system discards the SYN packet when requesting the route calculation of the SYN packet and when the proxy TCP connection with the destination host fails.
請求項1又は2に記載のネットワークシステムであって、
前記各スイッチは、前記送信元ホストからSYNパケットを受信した場合、前記コントローラに該SYNパケットを転送し、前記送信先ホストとの代理TCP接続を試行し、前記送信先ホストとの代理TCP接続に成功した場合、前記コントローラに該SYNパケットの経路計算を要求し、前記送信先ホストとの代理TCP接続に失敗した場合、前記コントローラに該SYNパケットの廃棄を要求する
ネットワークシステム。
The network system according to claim 1 or 2,
When each switch receives a SYN packet from the transmission source host, the switch forwards the SYN packet to the controller, attempts a proxy TCP connection with the transmission destination host, and establishes a proxy TCP connection with the transmission destination host. A network system that requests the controller to calculate the route of the SYN packet when it succeeds, and requests the controller to discard the SYN packet when the proxy TCP connection with the destination host fails.
請求項1乃至4のいずれか一項に記載のネットワークシステムであって、
前記各スイッチは、前記送信元ホストと前記送信先ホストとの間の通信パケットの受信時に、該通信パケットのTCPヘッダの確認応答番号とシーケンス番号とを変更し、前記送信元ホストと前記送信先ホストとが直接代理TCP接続しているように擬装する
ネットワークシステム。
The network system according to any one of claims 1 to 4, wherein
Each switch, when receiving a communication packet between the transmission source host and the transmission destination host, changes an acknowledgment number and a sequence number of a TCP header of the communication packet, and the transmission source host and the transmission destination A network system that disguises itself as a direct proxy TCP connection with a host.
請求項1乃至5のいずれか一項に記載のネットワークシステムであって、
前記各スイッチは、前記送信元ホストとの代理TCP接続に失敗した場合、前記送信元ホストからのパケットの受信回数をカウントし、前記受信回数が予め設定した閾値に達した場合、前記送信元ホストとの代理TCP接続を一定時間拒否する
ネットワークシステム。
A network system according to any one of claims 1 to 5,
Each of the switches counts the number of reception of a packet from the source host when proxy TCP connection with the source host fails, and when the number of reception reaches a preset threshold, A network system that rejects proxy TCP connections for a certain period of time.
パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行う手段と、
送信元ホストからSYNパケットを受信した場合、前記フローエントリの設定を行うコントローラに経路計算を要求する手段と、
前記経路計算の結果として得られた通信経路上の先頭スイッチである場合、送信先ホストとの代理TCP接続を行う手段と、
前記通信経路上の先頭スイッチではない場合、先頭スイッチと前記送信先ホストとの代理TCP接続のためのSYNパケットを転送する手段と
を具備する
スイッチ。
Means for processing a received packet according to a flow entry in which rules and actions for uniformly controlling the packet as a flow are defined;
Means for requesting a route calculation to the controller for setting the flow entry when a SYN packet is received from a transmission source host;
Means for performing a proxy TCP connection with the destination host if the head switch on the communication path obtained as a result of the path calculation;
A switch comprising means for transferring a SYN packet for proxy TCP connection between the head switch and the destination host if it is not the head switch on the communication path.
請求項7に記載のスイッチであって、
前記フローエントリを参照し、前記フローエントリに、前記通信経路上の先頭スイッチである旨を示す値が指定されている場合、自身が前記通信経路上の先頭スイッチであると判断する手段
を更に具備する
スイッチ。
The switch according to claim 7, wherein
Means for referring to the flow entry and determining that the flow entry is the first switch on the communication path when a value indicating the first switch on the communication path is specified in the flow entry; Switch.
請求項7又は8に記載のスイッチであって、
前記送信元ホストからSYNパケットを受信した場合、前記送信先ホストとの代理TCP接続を試行する手段と、
前記送信先ホストとの代理TCP接続に成功した場合、前記コントローラに該SYNパケットを転送し、該SYNパケットの経路計算を要求する手段と、
前記送信先ホストとの代理TCP接続に失敗した場合、該SYNパケットを廃棄する手段と
を更に具備する
スイッチ。
The switch according to claim 7 or 8, wherein
Means for attempting a proxy TCP connection with the destination host when receiving a SYN packet from the source host;
Means for transferring the SYN packet to the controller and requesting route calculation of the SYN packet when the proxy TCP connection with the destination host is successful;
The switch further comprising means for discarding the SYN packet when the proxy TCP connection with the destination host fails.
請求項7又は8に記載のスイッチであって、
前記送信元ホストからSYNパケットを受信した場合、前記コントローラに該SYNパケットを転送する手段と、
前記送信先ホストとの代理TCP接続を試行する手段と、
前記送信先ホストとの代理TCP接続に成功した場合、前記コントローラに該SYNパケットの経路計算を要求する手段と、
前記送信先ホストとの代理TCP接続に失敗した場合、前記コントローラに該SYNパケットの廃棄を要求する手段と
を更に具備する
スイッチ。
The switch according to claim 7 or 8, wherein
Means for transferring the SYN packet to the controller when a SYN packet is received from the source host;
Means for attempting a proxy TCP connection with the destination host;
Means for requesting the controller to calculate the route of the SYN packet when the proxy TCP connection with the destination host is successful;
The switch further comprising means for requesting the controller to discard the SYN packet when the proxy TCP connection with the destination host fails.
請求項7乃至10のいずれか一項に記載のスイッチであって、
前記送信元ホストと前記送信先ホストとの間の通信パケットの受信時に、該通信パケットのTCPヘッダの確認応答番号とシーケンス番号とを変更し、前記送信元ホストと前記送信先ホストとが直接代理TCP接続しているように擬装する手段
を更に具備する
スイッチ。
The switch according to any one of claims 7 to 10,
When a communication packet is received between the transmission source host and the transmission destination host, the acknowledgment number and sequence number of the TCP header of the communication packet are changed, and the transmission source host and the transmission destination host directly act as a proxy. A switch further comprising means for impersonating the TCP connection.
請求項7乃至11のいずれか一項に記載のスイッチであって、
前記送信元ホストとの代理TCP接続に失敗した場合、前記送信元ホストからのパケットの受信回数をカウントする手段と、
前記受信回数が予め設定した閾値に達した場合、前記送信元ホストとの代理TCP接続を一定時間拒否する手段と
を更に具備する
スイッチ。
The switch according to any one of claims 7 to 11,
Means for counting the number of packet receptions from the source host when proxy TCP connection with the source host fails;
The switch further comprising means for rejecting a proxy TCP connection with the transmission source host for a predetermined time when the number of receptions reaches a preset threshold value.
ネットワークシステムにおいて実施される通信遅延短縮方法であって、
複数のスイッチの各々が、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うことと、
前記複数のスイッチのうち、送信元ホストからSYNパケットを受信したスイッチが、前記フローエントリの設定を行うコントローラに経路計算を要求することと、
前記複数のスイッチのうち、前記経路計算の結果として得られた通信経路上の先頭スイッチが、送信先ホストとの代理TCP接続を行うことと、
前記複数のスイッチのうち、前記通信経路上の先頭スイッチ以外のスイッチが、先頭スイッチと前記送信先ホストとの代理TCP接続のためのSYNパケットを転送することと
を含む
通信遅延短縮方法。
A communication delay reduction method implemented in a network system,
Each of the plurality of switches performs processing of the received packet according to a flow entry in which rules and actions for uniformly controlling the packet as a flow are defined;
Of the plurality of switches, a switch that has received a SYN packet from a transmission source host requests a route calculation from a controller that sets the flow entry;
A leading switch on a communication path obtained as a result of the path calculation among the plurality of switches performs a proxy TCP connection with a destination host;
A communication delay shortening method comprising: a switch other than the head switch on the communication path among the plurality of switches transferring a SYN packet for proxy TCP connection between the head switch and the destination host.
パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うステップと、
送信元ホストからSYNパケットを受信した場合、前記フローエントリの設定を行うコントローラに経路計算を要求するステップと、
前記経路計算の結果として得られた通信経路上の先頭スイッチである場合、送信先ホストとの代理TCP接続を行うステップと、
前記通信経路上の先頭スイッチではない場合、先頭スイッチと前記送信先ホストとの代理TCP接続のためのSYNパケットを転送するステップと
を、スイッチとして使用される計算機に実行させるための
プログラム。
Processing received packets according to a flow entry in which rules and actions for uniformly controlling packets as flows are defined;
When a SYN packet is received from a transmission source host, requesting a route calculation to the controller for setting the flow entry;
If the head switch on the communication path obtained as a result of the path calculation, performing a proxy TCP connection with the destination host;
A program for causing a computer used as a switch to execute a step of transferring a SYN packet for proxy TCP connection between the head switch and the destination host when the head switch is not the head switch on the communication path.
JP2012066958A 2012-03-23 2012-03-23 Network system, switch, and communication delay reduction method Expired - Fee Related JP5966488B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012066958A JP5966488B2 (en) 2012-03-23 2012-03-23 Network system, switch, and communication delay reduction method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012066958A JP5966488B2 (en) 2012-03-23 2012-03-23 Network system, switch, and communication delay reduction method

Publications (2)

Publication Number Publication Date
JP2013201478A true JP2013201478A (en) 2013-10-03
JP5966488B2 JP5966488B2 (en) 2016-08-10

Family

ID=49521390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012066958A Expired - Fee Related JP5966488B2 (en) 2012-03-23 2012-03-23 Network system, switch, and communication delay reduction method

Country Status (1)

Country Link
JP (1) JP5966488B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016537898A (en) * 2013-11-22 2016-12-01 華為技術有限公司Huawei Technologies Co.,Ltd. Malicious attack detection method and apparatus
JP6052692B1 (en) * 2015-11-06 2016-12-27 アライドテレシスホールディングス株式会社 Security management method, program, and security management system
JP2017537404A (en) * 2014-11-28 2017-12-14 華為技術有限公司Huawei Technologies Co.,Ltd. Memory access method, switch, and multiprocessor system
KR20200061997A (en) * 2018-11-26 2020-06-03 숭실대학교산학협력단 Method of establishing tcp session for sdn-based network and sdn network thereof
WO2020111456A1 (en) * 2018-11-26 2020-06-04 숭실대학교산학협력단 Method for generating tcp session by sdn network and sdn network to which same method is applied

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006060599A (en) * 2004-08-20 2006-03-02 Nippon Telegr & Teleph Corp <Ntt> Application service refusal attack defense method, system and its program
WO2011040511A1 (en) * 2009-09-30 2011-04-07 日本電気株式会社 Billing processing system, network switch, network management server, billing processing method, and billing processing program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006060599A (en) * 2004-08-20 2006-03-02 Nippon Telegr & Teleph Corp <Ntt> Application service refusal attack defense method, system and its program
WO2011040511A1 (en) * 2009-09-30 2011-04-07 日本電気株式会社 Billing processing system, network switch, network management server, billing processing method, and billing processing program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6015050716; 伊藤 大輔 他: 'TCPセッション管理によるDoS耐性の考察' 情報処理学会研究報告 第2001巻,第111号, 20011121, p.183〜190 *
JPN6015050718; 大下 裕一 他: '分散SYN Flood攻撃防御のための構築可能なオーバーレイネットワーク' 電子情報通信学会技術研究報告 第104巻,第513号, 20041209, p.13〜18 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016537898A (en) * 2013-11-22 2016-12-01 華為技術有限公司Huawei Technologies Co.,Ltd. Malicious attack detection method and apparatus
US10313375B2 (en) 2013-11-22 2019-06-04 Huawei Technologies Co., Ltd Method and apparatus for malicious attack detection in an SDN network
US11637845B2 (en) 2013-11-22 2023-04-25 Huawei Technologies Co., Ltd. Method and apparatus for malicious attack detection in a software defined network (SDN)
JP2017537404A (en) * 2014-11-28 2017-12-14 華為技術有限公司Huawei Technologies Co.,Ltd. Memory access method, switch, and multiprocessor system
US10282293B2 (en) 2014-11-28 2019-05-07 Huawei Technologies Co., Ltd. Method, switch, and multiprocessor system using computations and local memory operations
JP6052692B1 (en) * 2015-11-06 2016-12-27 アライドテレシスホールディングス株式会社 Security management method, program, and security management system
KR20200061997A (en) * 2018-11-26 2020-06-03 숭실대학교산학협력단 Method of establishing tcp session for sdn-based network and sdn network thereof
WO2020111456A1 (en) * 2018-11-26 2020-06-04 숭실대학교산학협력단 Method for generating tcp session by sdn network and sdn network to which same method is applied
KR102185588B1 (en) * 2018-11-26 2020-12-02 숭실대학교산학협력단 Method of establishing tcp session for sdn-based network and sdn network thereof

Also Published As

Publication number Publication date
JP5966488B2 (en) 2016-08-10

Similar Documents

Publication Publication Date Title
JP5987902B2 (en) Network system, controller, and packet authentication method
JP5660211B2 (en) Communication path control system and communication path control method
JP5846221B2 (en) Network system and topology management method
JP5935873B2 (en) Network system, switch, and network construction method
JP5652630B2 (en) Network system, switch, and connected terminal detection method
CN105262683B (en) Network system and route control method
JP5557066B2 (en) Switch system, centralized monitoring management method
US8863269B2 (en) Frontend system and frontend processing method
US20130346585A1 (en) Network system, and policy route setting method
JP5747993B2 (en) Load reduction system and load reduction method
JP5966488B2 (en) Network system, switch, and communication delay reduction method
US20120263038A1 (en) Network system and frame communication method
JP5821641B2 (en) Network system, switch, and inter-switch setting notification method
JP2013115733A (en) Network system and network control method
WO2012098779A1 (en) Network system, controller, and qos control method
US9203742B2 (en) Network system and frame communication method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160620

R150 Certificate of patent or registration of utility model

Ref document number: 5966488

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees