KR101658824B1 - Method, apparatus and computer program for updating flow rules of software defined network - Google Patents

Method, apparatus and computer program for updating flow rules of software defined network Download PDF

Info

Publication number
KR101658824B1
KR101658824B1 KR1020150052920A KR20150052920A KR101658824B1 KR 101658824 B1 KR101658824 B1 KR 101658824B1 KR 1020150052920 A KR1020150052920 A KR 1020150052920A KR 20150052920 A KR20150052920 A KR 20150052920A KR 101658824 B1 KR101658824 B1 KR 101658824B1
Authority
KR
South Korea
Prior art keywords
flow rule
consistency
flow
packet
network
Prior art date
Application number
KR1020150052920A
Other languages
Korean (ko)
Inventor
황인욱
송용주
Original Assignee
아토리서치(주)
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 아토리서치(주) filed Critical 아토리서치(주)
Priority to KR1020150052920A priority Critical patent/KR101658824B1/en
Application granted granted Critical
Publication of KR101658824B1 publication Critical patent/KR101658824B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing

Abstract

The present invention relates to a method in which a controller server changes a flow rule in a software-defined network. The method comprises the steps of: adding a flow rule for consistency so that a packet, introduced into a network at a time at which a first flow rule is applied, is processed based on the first rule before change even after the first flow rule is changed; and changing the first flow rule after the flow rule for consistency has been added. According to the present invention, a packet can be processed by using a consistent flow rule based on a time at which the packet is introduced into a network, and thus provided are effects of improving reliability of an overall network and facilitating programming of an application.

Description

소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 방법, 장치 및 컴퓨터 프로그램 {METHOD, APPARATUS AND COMPUTER PROGRAM FOR UPDATING FLOW RULES OF SOFTWARE DEFINED NETWORK}METHOD, APPARATUS AND COMPUTER PROGRAM FOR UPDATING FLOW RULES OF SOFTWARE DEFINED NETWORK,

본 발명은 소프트웨어 정의 네트워크를 제어하는 방법, 장치 및 컴퓨터 프로그램에 대한 것이다. 보다 구체적으로 본 발명은 소프트웨어 정의 네트워크에서 플로우 룰이 변경되어도 일관된 플로우 룰을 패킷에 적용할 수 있는 방법에 대한 것이다.The present invention relates to a method, apparatus and computer program for controlling a software defined network. More particularly, the present invention relates to a method for applying a consistent flow rule to a packet even though the flow rule is changed in a software defined network.

소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다.Software Defined Networking (SDN) is a technology that manages all the network devices in the network by an intelligent central management system. In the SDN technology, a controller provided in a form of software can perform processing instead of a control operation related to the packet processing performed by itself in a conventional hardware type network device, so that various functions can be developed and given over the existing network structure.

SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다. The SDN system generally comprises a controller server for controlling the entire network, a plurality of open flow switches controlled by the controller server for processing packets, and a host corresponding to a lower layer of the open flow switch. Here, the open flow switch is only responsible for transmitting and receiving packets, and routing, management, and control of the packets are all performed in the controller server. In other words, separating the data planes and control planes that form the network equipment is the basic structure of the SDN system.

그런데 특정한 경우에는 상기에서 설명한 기본 SDN 시스템이 비효율적으로 동작하는 경우가 있다. 컨트롤러 서버는 오픈플로우 스위치에 플로우 룰을 전달하여 패킷의 경로를 설정하고 제어하는데, 플로우 룰이 변경되는 과정에서 변경 전후의 플로우 룰이 혼합되면서 패킷의 경로가 불확실해지는 경우가 하나의 예이다. In some cases, however, the basic SDN system described above may operate inefficiently. The controller server sets and controls the path of the packet by forwarding the flow rule to the open flow switch. One example is when the route of the packet becomes uncertain due to mixing of the flow rules before and after the change in the flow rule.

변경된 플로우 룰에 대한 복수의 스위치의 상태 변경이 동일한 시점에서 완료되는 것이 아니고, 패킷이 하나의 스위치에서 다른 스위치로 전송되고 있는 도중에 플로우 룰이 변경될 수도 있어서 변경 절차가 진행되고 있는 도중에는 특정 패킷이 스위치 각각에서 종래의 플로우 룰에 따라 처리되는지 변경된 플로우 룰에 따라 처리되는지가 명확하지 않기 때문이다. The flow rules may be changed while a packet is being transferred from one switch to another, rather than a state change of a plurality of switches to a changed flow rule being completed at the same time, It is not clear whether each switch is processed according to a conventional flow rule or according to a changed flow rule.

이와 같은 예외 상황까지 모두 컨트롤러 서버나 어플리케이션에서 고려하도록 하는 것은 네트워크의 리소스를 불필요하게 사용하고, 안정성을 저하시키는 요인이 될 수 있다.Taking all of these exceptions into consideration by the controller server or application may unnecessarily use the resources of the network, which may cause the stability to deteriorate.

본 발명은 SDN 환경에서 패킷이 네트워크에 유입되고 처리가 완료될 때까지 일관된 플로우 룰에 따라 처리되는 방법 및 장치를 제공하는 것을 목적으로 한다.It is an object of the present invention to provide a method and apparatus in a SDN environment in which a packet is processed according to a consistent flow rule until the packet enters the network and the processing is completed.

본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 컨트롤러 서버가 플로우 룰을 변경하는 방법은, 제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하는 단계; 및 상기 일관성을 위한 플로우 룰을 추가한 후, 상기 제 1 플로우 룰을 변경하는 단계를 포함하는 것을 특징으로 한다. A method for changing a flow rule in a software defined network according to an embodiment of the present invention is a method for changing a flow rule at a time point when a first flow rule is applied, Adding a flow rule for consistency so as to be processed according to the flow rule; And changing the first flow rule after adding the flow rule for the consistency.

나아가 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 스위치가 패킷을 처리하는 방법은, 제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하는 단계; 상기 일관성을 위한 플로우 룰을 추가한 후, 상기 제 1 플로우 룰을 변경하는 단계; 및 상기 일관성을 위한 플로우 룰 및 변경된 제 1 플로우 룰에 따라 패킷을 처리하는 단계를 포함하는 것을 특징으로 한다. Further, a method for a switch to process a packet in a software defined network according to an embodiment of the present invention is characterized in that, after the first flow rule is changed, Adding a flow rule for consistency to be processed according to a rule; Modifying the first flow rule after adding the flow rule for the consistency; And processing the packet in accordance with the flow rule for consistency and the changed first flow rule.

한편 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 컨트롤러 서버는, 적어도 하나 이상의 스위치와 통신하는 통신부; 및 제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하고, 상기 일관성을 위한 플로우 룰이 추가된 후, 상기 제 1 플로우 룰을 변경하는 제어부를 포함하는 것을 특징으로 한다. Meanwhile, a controller server for changing a flow rule in a software defined network according to an embodiment of the present invention includes: a communication unit for communicating with at least one switch; And adding a flow rule for consistency so that a packet flowing into the network at the time of applying the first flow rule is processed according to a first flow rule before the change even after the first flow rule is changed, And a control unit for changing the first flow rule after the flow rule is added.

나아가 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 패킷을 처리하는 스위치는, 컨트롤러 서버와 통신하는 통신부; 및 제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하고, 그 후 상기 제 1 플로우 룰을 변경하며, 상기 일관성을 위한 플로우 룰 및 변경된 제 1 플로우 룰에 따라 패킷을 처리하는 제어부를 포함하는 것을 특징으로 한다. Further, a switch for processing packets in a software defined network according to an embodiment of the present invention includes: a communication unit for communicating with a controller server; And adding a flow rule for consistency so that the packet flowing into the network at the time of applying the first flow rule is processed according to the first flow rule before the change even after the first flow rule is changed, And a control unit for changing one flow rule and processing the packet according to the flow rule for consistency and the changed first flow rule.

한편 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 처리를 컨트롤러 서버에서 실행하기 위하여 매체에 저장된 컴퓨터 프로그램은, 제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하는 기능; 및 상기 일관성을 위한 플로우 룰이 추가된 후, 상기 제 1 플로우 룰을 변경하는 기능을 수행하는 것을 특징으로 한다.On the other hand, a computer program stored in a medium for executing a process of changing a flow rule in a software defined network according to an embodiment of the present invention in a controller server may be configured such that, at a point of time when the first flow rule is applied, A function of adding a flow rule for consistency so as to be processed according to the first flow rule before the change even after the one flow rule is changed; And a function of changing the first flow rule after the flow rule for consistency is added.

나아가, 본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서 패킷의 처리를 스위치에서 실행하기 위하여 매체에 저장된 컴퓨터 프로그램은, 제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하는 기능; 상기 일관성을 위한 플로우 룰을 추가한 후, 상기 제 1 플로우 룰을 변경하는 기능; 및 상기 일관성을 위한 플로우 룰 및 변경된 제 1 플로우 룰에 따라 패킷을 처리하는 기능을 포함하는 것을 특징으로 한다.Further, a computer program stored in a medium for executing a processing of a packet in a software defined network according to an embodiment of the present invention includes a first flow rule, a second flow rule, A function for adding a flow rule for consistency so as to be processed according to the first flow rule before the change even after the change; A function to change the first flow rule after adding the flow rule for the consistency; And a function of processing the packet according to the flow rule for consistency and the changed first flow rule.

본 발명에 따르면, 패킷의 네트워크의 유입 시점을 기준으로 일관된 플로우 룰에 따라 패킷을 처리할 수 있어 전체 네트워크의 신뢰성이 높아지고 어플리케이션의 작성이 용이해지는 효과가 있다. According to the present invention, a packet can be processed according to a coherent flow rule based on a time point of entry of a network of packets, thereby improving the reliability of the entire network and facilitating the creation of an application.

도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면
도 2는 종래 기술의 문제점을 설명하기 위한 도면
도 3은 본원발명의 실시예를 따라 플로우 룰을 변경하는 구체적인 방법을 설명하기 위한 순서도
1 is a diagram for explaining the configuration of a software defined network;
2 is a view for explaining a problem of the prior art;
3 is a flowchart for explaining a specific method of changing a flow rule according to an embodiment of the present invention

본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. It is to be understood that the present invention is not limited to the description of the embodiments described below, and that various modifications may be made without departing from the technical scope of the present invention. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail.

한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. In the drawings, the same components are denoted by the same reference numerals. And in the accompanying drawings, some of the elements may be exaggerated, omitted or schematically illustrated. It is intended to clearly illustrate the gist of the present invention by omitting unnecessary explanations not related to the gist of the present invention. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 명세서에서 “플로우 룰”의 용어는 해당 업계의 통상의 기술자 입장에서 소프트트웨어 정의 네트워크에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다. 나아가 “플로우 룰”의 용어는 오픈플로우 스위치에 대해서는 상기 네트워크 정책에 따른 플로우 엔트리를 의미하는 것으로 해석될 수 있다. The term " flow rule " in the context of the present invention should be understood to mean a network policy applied by a controller server in a software defined network in the context of an ordinary technician in the field. Further, the term " flow rule " can be interpreted to mean a flow entry according to the network policy for an open flow switch.

나아가 본 명세서에서 플로우 룰의 변경(updating)은 신 플로우 룰의 추가(add), 구 플로우 룰의 삭제(delete) 또는 수정(modify)을 포함하는 개념으로 이해되어야 한다. Further, updating of a flow rule in this specification should be understood as a concept involving addition of a new flow rule, deletion of a previous flow rule, or modification.

도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 소프트웨어 정의 네트워크(Software Defined Network)는 컨트롤러 서버(100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다. 1 is a diagram for explaining a configuration of a software defined network. Referring to FIG. 1, a software defined network may include a controller server 100, network equipment 200, and a host 300. The network device 200 and the host 300 may be referred to as a node, and a link may denote a connection between two nodes.

컨트롤러 서버(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러 서버(100)는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 소프트웨어가 탑재된 형태로 구현될 수 있다. The controller server 100 manages the network equipment 200 and centrally manages and controls the plurality of network equipment 200. Specifically, the controller server 100 is equipped with software that performs functions such as topology management, path management related to packet processing, link discovery, and packet flow flow management. As shown in FIG.

네트워크 장비(200)는 컨트롤러 서버(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 네트워크 장비(200)의 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크의 스위치, 라우터 등이 있다. 다만 설명의 편의를 위해 이하에서는 네트워크 장비(200)가 오픈플로우 스위치인 경우를 중심으로 설명하도록 한다. The network device 200 functions to process packets under the control of the controller server 100. Examples of the network equipment 200 include a mobile communication base station, a base station controller, a gateway equipment, a wired network switch, and a router. Hereinafter, for convenience of explanation, the case where the network equipment 200 is an open flow switch will be mainly described.

특히 본 명세서에서 오픈플로우 스위치(200)는 오픈플로우 프로토콜만을 지원하는 스위치, 오픈플로우 프로토콜을 지원하는 가상 스위치, 오픈플로우 프로토콜을 지원하는 일반적인 L2 스위치를 포함하는 개념으로 이해되어야 한다. In particular, in the present specification, the open flow switch 200 should be understood as a concept including a switch supporting only an open flow protocol, a virtual switch supporting an open flow protocol, and a general L2 switch supporting an open flow protocol.

소프트웨어 정의 네트워크에서 컨트롤러 서버(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고 받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다. In the software defined network, the controller server 100 and the open flow switch 200 exchange information with each other. The open flow protocol is widely used as a protocol for this. That is, the open flow protocol is a standard that allows the controller server 100 and the open flow switch 200 to communicate with each other.

보다 구체적으로 설명하면, 오픈플로우 스위치(200)는 보안 채널(Secure Channel)을 통해 컨트롤러 서버(100)와 정보를 교환한다. 상기 보안 채널은 오픈플로우 스위치(200)와 원거리에 위치한 컨트롤러 서버(100) 간 통신 채널이며, 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 교환되는 정보는 암호화될 수 있다. More specifically, the open flow switch 200 exchanges information with the controller server 100 through a secure channel. The secure channel is a communication channel between the open flow switch 200 and the controller server 100 located at a remote location. Information exchanged between the controller server 100 and the open flow switch 200 can be encrypted.

그리고 오픈플로우 스위치 (200)에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 하나 이상의 플로우 테이블(Flow table)이 존재한다. 상기 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow Rule)로 구성되며, 상기 플로우 룰은 컨트롤러 서버(100)가 생성하여 오픈플로우 스위치(200)에 전송하는 플로우 모드 메세지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 오픈플로우 스위치(200)는 상기 플로우 테이블을 참조하여 패킷을 처리한다. The open flow switch 200 has one or more flow tables for defining and processing packets and including statistical information related to the packets. The flow table includes a flow rule for defining packet processing. The flow rule is a flow mode message (Flow-Mode Message) generated by the controller server 100 and transmitted to the open flow switch 200 And may be added, modified or deleted by the user. The open flow switch 200 processes the packet with reference to the flow table.

상기 플로우 테이블은 플로우를 정의하는 패킷에 대한 매치 정보(Match Field), 패킷의 처리를 정의하는 동작 정보(Instruction) 및 플로우별 통계 정보(Stats)를 포함할 수 있다. 그리고 플로우 테이블을 이루는 각 행을 플로우 엔트리(Flow Entry)라고 칭하며 각 플로우 엔트리에는 우선 순위(Priority)가 지정될 수 있다. 오픈플로우 스위치는 패킷의 정보와 부합하는 매치 정보를 가진 플로우 엔트리 중에서 가장 높은 우선 순위를 가지는 플로우 엔트리의 동작 정보에 따라 패킷을 처리할 수 있다. The flow table may include a match field for a packet defining a flow, operation information for defining processing of the packet, and statistical information for each flow (Stats). Each row constituting the flow table is called a flow entry, and a priority can be assigned to each flow entry. The open flow switch can process the packet according to the operation information of the flow entry having the highest priority among the flow entries having match information matching the information of the packet.

호스트(300)는 오픈플로우 스위치(200)의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트 및 서버를 통칭하는 의미로 사용될 수 있다. 호스트(300)는 소프트웨어 정의 네트워크를 통해 다른 호스트에 보내기 위한 패킷을 생성하고, 상기 패킷을 네트워크 인터페이스의 포트를 통해 오픈플로우 스위치(200)로 전송할 수 있다. The host 300 means a terminal or the like corresponding to a lower layer of the open flow switch 200, and can be used to mean a client and a server. The host 300 can generate a packet for sending to another host via a software defined network and transmit the packet to the open flow switch 200 through a port of the network interface.

예컨대 제 1 호스트(300a)가 제2 호스트(300b)로 패킷을 보내고자 할 때, 우선 제 1 호스트(300a)는 보내고자 하는 패킷을 생성하고 상기 패킷을 제 1 호스트(300a)와 연결된 오픈플로우 스위치(200a)로 전송한다. 패킷을 수신한 오픈플로우 스위치에 상기 패킷과 매치되는 플로우 엔트리가 존재하는 경우에는, 플로우 엔트리의 규정대로 패킷을 처리한다. 그러나 오픈플로우 스위치(200a)에 패킷과 매치되는 플로우 엔트리가 없는 경우에는, 오픈플로우 스위치(200a)는 컨트롤러 서버(100)에 패킷 유입을 알리는 패킷-인 메세지(Packet-in Message)를 전송한다. 컨트롤러 서버(100)는 상기 패킷의 처리를 규정하는 플로우 룰 변경 사항을 생성하여 오픈플로우 스위치(200a)로 전송하고, 오픈플로우 스위치(200a)는 이에 기반하여 상태를 변경하고 상기 패킷을 처리한다. For example, when the first host 300a wants to send a packet to the second host 300b, the first host 300a first generates a packet to be sent and transmits the packet to the first host 300a via an open flow To the switch 200a. When there is a flow entry matching the packet in the open flow switch that received the packet, the packet is processed as specified in the flow entry. However, when there is no flow entry matched with the packet in the open flow switch 200a, the open flow switch 200a transmits a packet-in message informing the controller server 100 of the packet flow. The controller server 100 generates a flow rule change that specifies the processing of the packet and transmits the flow rule change to the open flow switch 200a. The open flow switch 200a changes the state based on the change and processes the packet.

한편 제 1 호스트(300a)가 제 2 호스트(300b)로 패킷을 보낼 수 있는 경로는 다양할 수 있다. 전체 네트워크에는 복수의 오픈플로우 스위치(200) 및 호스트(300)가 존재하므로 각 노드마다 복수의 링크를 가지기 때문이다. 이때, 컨트롤러 서버(100)는 전체 네트워크 토폴로지 맵에 기반하여 상기 패킷을 보낼 수 있는 복수개의 경로 중에서 최적 경로를 연산할 수 있다. 그리고 컨트롤러 서버(100)는 연산된 경로에 대한 정보를 플로우 룰의 형태로 오픈플로우 스위치(200)에 전송하고, 오픈플로우 스위치(200)는 상기 플로우 룰에 따라 패킷을 처리하는 것이 일반적이다. Meanwhile, a path through which the first host 300a can send a packet to the second host 300b may vary. This is because a plurality of open flow switches 200 and the host 300 exist in the whole network, and therefore, each node has a plurality of links. At this time, the controller server 100 can calculate an optimal path among a plurality of paths that can transmit the packet based on the entire network topology map. The controller server 100 transmits information on the calculated route to the open flow switch 200 in the form of a flow rule, and the open flow switch 200 processes the packet in accordance with the flow rule.

도 2는 임의의 패킷에 적용되는 플로우 룰이 변경되면서 발생할 수 있는 문제점을 설명하기 위한 도면이다. 2 is a diagram for explaining a problem that may occur when a flow rule applied to an arbitrary packet is changed.

예를 들어, 어떤 시점에서 컨트롤러 서버는 임의의 패킷이 오픈플로우 스위치 210에서 220을 통해 호스트 250으로 전달되도록 경로를 설정할 수 있다. (도 2의 예에서 얇은 실선, 제 1 플로우 룰) 이 경우 오픈플로우 스위치 210 및 220는 상기 패킷의 제 1 플로우 룰에 대한 메시지를 컨트롤러 서버로부터 수신하여 이에 따라 패킷을 처리할 것이다. For example, at some point the controller server can route a packet such that any packet is forwarded to the host 250 via the open flow switches 210-220. In this case the open flow switches 210 and 220 will receive a message for the first flow rule of the packet from the controller server and process the packet accordingly.

이와 같은 상황에서 플로우 룰이 변경되는 경우, 예를 들어 스위치 210이 전송하는 HTTP 패킷은 IPS (Intrusion Prevention System, 침입방지 시스템, 230)을 통과한 후에 특정 호스트 240에 도착하도록 경로를 설정하는 경우를 상정할 수 있다. When the flow rule is changed in such a situation, for example, when the HTTP packet transmitted by the switch 210 is set to arrive at the specific host 240 after passing through the IPS (Intrusion Prevention System, intrusion prevention system, 230) It can be assumed.

이 경우 컨트롤러 서버는 제 1 플로우 룰보다 더 높은 우선 순위로 HTTP 패킷에 대해 오픈플로우 스위치 210에서 IPS 230 및 오픈플로우 스위치 220를 통해 호스트 240으로 도착하도록 지시하는 플로우 룰을 추가할 수 있다. (도 2의 예에서 굵은 실선, 제 2 플로우 룰) 이 경우 오픈플로우 스위치 210 및 220은 HTTP 패킷의 제 2 플로우 룰에 대한 메시지를 컨트롤러 서버로부터 수신하여 플로우 테이블을 변경하고 이에 따라 패킷을 처리할 것이다.In this case, the controller server may add a flow rule that directs the HTTP packet to arrive at the host 240 via the IPS 230 and the open flow switch 220 from the open flow switch 210 at a higher priority than the first flow rule. In this case, the open flow switches 210 and 220 receive a message for the second flow rule of the HTTP packet from the controller server, change the flow table, and process the packet accordingly (step < RTI ID = 0.0 > will be.

그런데 오픈플로우 표준은 오픈플로우 스위치의 변경 시점의 동기화에 대해서는 별도로 고려하고 있지 않다. 따라서 변경 절차 진행 중에는 210에서 제 1 플로우 룰과 제 2 플로우 룰이 적용되고 있으나, 220에는 변경이 완료되지 않아 제 1 플로우 룰만 적용하고 있는 경우가 발생할 수 있다. 마찬가지로 210에게는 제 1 플로우 룰만 적용되고, 220에는 제 1 플로우 룰과 제 2 플로우 룰이 적용되는 경우도 발생할 수 있다. However, the open flow standard does not consider the synchronization of the change point of the open flow switch at the time of change. Therefore, while the first flow rule and the second flow rule are applied at 210 while the change procedure is in progress, the change may not be completed at 220 and the first flow rule may be applied only. Similarly, only the first flow rule is applied to 210, and a case where the first flow rule and the second flow rule are applied to 220 may occur.

위와 같은 상황에서 첫번째 경우에는 HTTP 패킷이 IPS(230)을 거쳐 호스트 240이 아니라 호스트 250으로 도착할 수 있으며, 두번째 경우에는 IPS(230)을 거치지 않은 HTTP 패킷이 호스트 240으로 도착하는 경우가 발생할 수 있다. 이는 모든 패킷이 IPS를 거치지 않고 250으로 전송된다는 변경 전의 네트워크 정책과, 모든 HTTP 패킷은 IPS를 거쳐 240으로 전송한다는 변경 후의 네트워크 정책 둘 중 어느 것과도 부합하지 않는 결과이다.In this case, in the first case, the HTTP packet may arrive at the host 250 via the IPS 230, not the host 240, and in the second case, an HTTP packet not passing through the IPS 230 may arrive at the host 240 . This is a result of the network policy before the change that all packets are sent through the IPS without going through the IPS, and the network policy after the change that all HTTP packets are sent to the network via the IPS at 240.

한편, 오픈플로우 스위치 210과 220의 상태 변경이 동시에 완료된다 하더라도 패킷의 경로는 여전히 확실하다고 할 수 없다. 예를 들어 변경 시점 이전에 오픈플로우 스위치 210으로부터 제 1 플로우 룰에 따라 220으로 전송된 HTTP 패킷은, 오픈플로우 스위치 210과 220의 제 2 플로우 룰에 대한 변경이 완료되면서 호스트 240으로 전송될 수 있다. 즉, 복수의 오픈플로우 스위치가 상태 변경을 동시에 완료한다 하더라도 HTTP 패킷이 IPS 230을 통과하지 않고 호스트 240으로 전송되는 결과는 여전히 발생할 수 있다. On the other hand, even if the status change of the open flow switches 210 and 220 is completed at the same time, the path of the packet is still not certain. For example, an HTTP packet transmitted 220 from the open flow switch 210 according to the first flow rule before the change time can be transmitted to the host 240 with the change of the second flow rule of the open flow switches 210 and 220 being completed . That is, even though a plurality of open flow switches concurrently complete the status change, the result that an HTTP packet is transmitted to the host 240 without passing through the IPS 230 may still occur.

이와 같이 현재의 SDN 구조에서는 하나의 패킷이 여러 스위치에서 서로 다른 시점의 네트워크 정책을 혼합하여 적용받게 되어 일관성 없이 처리되는 경우가 발생한다. 현재의 SDN 표준에서는 임의의 패킷에 대해 일관된 플로우 룰의 적용을 보장할 수 없기 때문에 경로 계산의 신뢰성이 낮아지고, 특히 고도의 보안이 요구되는 네트워크 환경에서는 큰 문제가 될 수 있다. In this way, in the current SDN structure, one packet may be applied inconsistently because a plurality of switches are mixed with network policies at different points in time. Since the current SDN standard can not guarantee consistent application of flow rules to arbitrary packets, the reliability of path computation is lowered and can be a serious problem especially in a network environment requiring high security.

따라서 본 발명은 상기와 같은 문제점을 해결하는 것을 목적으로 한다. 본 발명의 실시예를 따르면, 네트워크의 유입시점을 기준으로 패킷에 버전 정보가 부여되고, 해당 버전의 패킷이 네트워크에 잔존해 있는 경우라면 플로우 룰이 중간에 변경된다고 하더라도, 해당 버전의 패킷은 결과적으로 종전의 플로우 룰에 따르는 것처럼 처리될 수 있다. SUMMARY OF THE INVENTION Accordingly, the present invention has been made to solve the above problems. According to the embodiment of the present invention, if version information is given to a packet based on a time point of entry of a network and the version of the packet remains in the network, even if the flow rule changes in the middle, Lt; / RTI > can be treated as if it conforms to the previous flow rule.

즉, 네트워크의 유입시점을 기준으로 패킷에 일관된 플로우 룰이 적용된다. 이를 통해 오픈플로우 스위치가 변경된 플로우 룰을 적용하는 시점과는 무관하게, 패킷은 네트워크를 들어오는 순간부터 빠져나가거나 드랍(drop)되는 순간까지 일관성 있는 플로우 룰에 따라 처리될 수 있다. That is, a consistent flow rule is applied to the packet based on the point of time when the network is introduced. This allows the packet to be processed according to a consistent flow rule from the moment it enters the network to the moment it is dropped or dropped, regardless of when the open flow switch applies the modified flow rule.

도 2에 대한 앞의 예에서 본 발명의 실시예를 따르면, 플로우 룰 변경이 시작되기 전에 네트워크에 유입되어 제 1 플로우 룰에 따라 220으로 전송된 패킷은 플로우 룰의 변경이 완료되었더라도, 제 2 플로우 룰의 적용을 받지 않고 일관성을 위한 플로우 룰이 적용되어 250으로 전송될 것이다. 또한 변경이 완료된 후에 유입된 모든 HTTP 패킷은 제 2 플로우 룰에 따라 IPS (230)을 거쳐 240으로 전송될 것이다. According to the embodiment of the present invention in the previous example of FIG. 2, a packet that has flowed into the network before the flow rule change starts and is transmitted at 220 according to the first flow rule, The flow rules for consistency will be applied without being subject to the rules and will be transmitted to 250. Also, all the HTTP packets that have been received after the change is completed will be transmitted to the IPS 240 through the IPS 230 according to the second flow rule.

보다 구체적인 방법은 첨부된 도 3에 대한 설명과 함께 후술된다. A more specific method will be described later with reference to FIG. 3 attached hereto.

도 3는 본원발명의 실시예를 따라, 패킷에 버전을 부여하여 일관된 플로우 룰을 적용하는 구체적인 방법을 설명하기 위한 순서도이다. 3 is a flowchart illustrating a concrete method of applying a consistent flow rule by assigning a version to a packet according to an embodiment of the present invention.

단계 305에서 오플플로우 스위치는 네트워크에 유입되는 패킷에 버전 정보를 부여하고 삭제할 수 있다. 이와 같은 버저닝(Versioning)은 패킷이 네트워크로 유입 및/또는 유출되는 시점에서 처리되기 위하여 호스트와 직접 연결된 오픈플로우 스위치에서 처리하는 것이 적절하다. 버전 정보는 임의의 시점에 변경될 수 있으며, 버전 관리는 컨트롤러가 담당한다. 예를 들어 컨트롤러는 플로우 룰 변경과 함께, 이후에 유입되는 패킷의 버전을 변경할 수 있다. In step 305, the op-flow switch can add and delete version information to packets entering the network. Such versioning is preferably handled by an open flow switch directly connected to the host to be processed at the point in time when the packet enters and / or leaves the network. The version information can be changed at any time, and the controller is responsible for version management. For example, the controller can change the version of the incoming packet, along with the flow rule change.

특히 도 3의 예에서 단계 305는 다른 단계들보다 앞서 진행되는 것으로 도시되고 있지만, 이는 설명의 편의를 위한 것에 불과하다. 따라서 본 발명의 실시예에 따르면 버저닝은 패킷의 네트워크에 유입 및/또는 유출 시점에 진행되는 것임에 유의해야 한다. In particular, in the example of FIG. 3, step 305 is shown as proceeding prior to other steps, but this is for illustrative convenience only. Therefore, it should be noted that according to the embodiment of the present invention, the versioning proceeds at the time of entry into and / or exit from the network of packets.

나아가 버저닝은 오픈플로우 스위치에서 상시적으로 처리될 수도 있고, 미리 설정된 조건을 충족하는 경우에만 처리될 수도 있다. 예를 들어 변경된 플로우 룰 적용 대상에서 임의의 시간에 유입된 패킷을 제외하고자 하는 경우, 해당 시간에만 버저닝이 처리되도록 설정할 수도 있다. Furthermore, the versioning may be processed at any time in the open flow switch, or may be processed only when a predetermined condition is met. For example, in the case where it is desired to exclude a packet that has flowed at a certain time from the application of a changed flow rule, versioning may be set to be processed only at that time.

본 발명의 실시예에 따르면 버전 정보는 패킷의 네트워크 유입 시점을 기준으로 VLAN 태그(tag), MPLS 태그(tag), TTL (time-to-live)를 이용하여 부여할 수 있다. 또는 패킷의 MAC 주소나 IP의 주소의 일부 바이트를 임시적으로 이용하여 부여될 수도 있다. 이후 오픈플로우 스위치는 패킷이 네트워크를 빠져나가면서 버전 정보로 사용된 기재를 삭제할 수 있다. According to the embodiment of the present invention, the version information can be given using a VLAN tag, an MPLS tag, and a time-to-live (TTL) based on the network entry point of the packet. Or may be given using the MAC address of the packet or some byte of the IP address temporarily. The open flow switch may then delete the entry used as version information as the packet leaves the network.

단계 310는 오픈플로우 스위치에게 임의의 플로우 룰이 적용되고 있는 일반적인 경우이다. 설명의 편의를 위해 상기 플로우 룰을 제 1 플로우 룰로 명칭하며, 제 1 플로우 룰은 패킷의 조건에 대한 매치 필드(Match Field), 우선순위(Priority), 인스트럭션 (Instruction)에 대한 구성을 포함한다. 단계 310에서 오픈플로우 스위치는 상기 제 1 플로우 룰에 따라 패킷을 처리한다. Step 310 is a general case in which an arbitrary flow rule is applied to the open flow switch. For convenience of explanation, the flow rule is referred to as a first flow rule, and the first flow rule includes a configuration for a match field, a priority, and an instruction for a condition of a packet. In step 310, the open flow switch processes the packet according to the first flow rule.

본 발명의 실시예에 따르면 상기 제 1 플로우 룰이 특정 버전의 패킷에만 적용되는지 여부는 이후의 절차에 문제되지 않는다. 나아가 상기 제 1 플로우 룰이 적용되고 있는 시점에 패킷에 부여되는 버전 정보를 편의를 위해 제 1 버전 정보라고 설명한다. According to the embodiment of the present invention, whether or not the first flow rule is applied only to a specific version of the packet does not matter to the subsequent procedure. Furthermore, the version information given to the packet at the time when the first flow rule is applied will be referred to as first version information for the sake of convenience.

이러한 상황에서 플로우 룰의 추가, 삭제, 수정 등의 변경이 필요한 경우를 고려할 수 있다. (단계 320). In such a situation, it may be considered that a change such as adding, deleting, or modifying a flow rule is required. (Step 320).

플로우 룰 추가의 경우를 예를 들어 설명하면, 설명의 편의를 위하여 추가할 플로우 룰을 제 2 플로우 룰이라고 하고, 변경을 기준으로 상기 제 1 플로우 룰을 구(old) 플로우 룰, 상기 제 2 플로우 룰을 신(new) 플로우 룰이라고 설명한다. For convenience of explanation, a flow rule to be added is referred to as a second flow rule, and the first flow rule is referred to as an old flow rule based on the change, A rule is called a new flow rule.

본 발명의 실시예를 따르면 컨트롤러 서버는 구 버전 정보(구 플로우 룰이 적용되는 시점에 부여된 버전 정보)를 가지는 패킷은 계속하여 구 플로우 룰에 따르는 것과 동일하게 처리될 될 수 있도록 플로우 룰 변경 전에 별도의 플로우 룰을 추가하는 특징이 있다. (단계 330)According to the embodiment of the present invention, the controller server updates the old version information (version information given at the time when the old flow rule is applied) to the old version information before the flow rule change so that it can be processed in the same way as following the old flow rule There is a feature to add a separate flow rule. (Step 330)

예를 들어 도 3에서, 제 1 플로우 룰 적용 시점에 부여된 제 1 버전 정보를 가지는 패킷은, 제 1 플로우 룰이 변경된다 하더라도, 단계 330에 의해 계속해서 제 1 플로우 룰에 따르는 것과 동일하게 처리될 수 있다.For example, in FIG. 3, even if the first flow rule is changed, the packet having the first version information added at the time of application of the first flow rule continues to be processed in the same manner as in the first flow rule .

본 발명의 명세서에서는 이를 일관성을 위한 플로우 룰로 명칭한다. 상기 일관성을 위한 플로우 룰은 패킷의 네트워크 유입 시점을 기준으로 일관된 플로우 룰을 적용하여 처리하기 위한 것이다. In the specification of the present invention, this is referred to as a flow rule for consistency. The flow rule for consistency is intended to apply a consistent flow rule based on the network entry point of the packet.

상기 일관성을 위한 플로우 룰은 특정 버전의 패킷, 즉 구 버전 정보를 가지는 패킷에만 적용되고, 상기 패킷은 신 플로우 룰의 조건을 만족한다고 하더라도, 구 플로우 룰을 적용하는 것과 동일하게 처리되도록 설정하는 특징이 있다. 이를 위하여, 상기 일관성을 위한 플로우 룰은 구 버전 정보를 가지는 패킷에 신 플로우 룰보다 우선적으로 적용되며, 신 플로우 룰의 조건 및 구 플로우 룰의 인스트럭션에 따라 처리되도록 설정된다. The flow rule for consistency is applied only to a packet having a specific version of packet, that is, old version information, and even if the packet satisfies the condition of the new flow rule, . To this end, the flow rule for consistency is applied to the packet having the old version information in preference to the new flow rule, and is set to be processed according to the condition of the new flow rule and the instruction of the old flow rule.

보다 구체적으로, 상기 일관성을 위한 플로우 룰은 i) 구 버전 정보를 가지는 패킷에만 적용되고 ii) 매치 필드는 신플로우 룰, 인스트럭션은 구 플로우 룰을 따르며, iii) 우선 순위는 신, 구 플로우 룰보다 높은 값을 가지는 특징이 있다. 이때 일관성을 위한 플로우 룰이 적용되는 패킷의 버전 정보와 관련된 내용은 매치 필드를 이용하여 기재될 수 있다. More specifically, the flow rules for consistency are applied only to packets having i) old version information, ii) match fields are new flow rules, instructions are old flow rules, and iii) priority is newer than old flow rules There is a characteristic of high value. At this time, the content related to the version information of the packet to which the flow rule for consistency is applied may be described using a match field.

이와 같은 설정으로 인하여 구 버전의 패킷은 플로우 룰 변경 이후에도 구 플로우 룰을 따르는 것과 동일하게 처리될 수 있다.With this configuration, older packets can be processed the same as following old rules even after changing the flow rules.

이후 컨트롤러 서버는 단계 340에서 제 2 플로우 룰을 추가하거나, 제 1 플로우 룰을 삭제하거나 수정할 것을 지시하는 메시지를 전송하여 오픈플로우 스위치를 변경할 수 있다. Thereafter, the controller server may change the open flow switch by adding a second flow rule at step 340 or by sending a message instructing to delete or modify the first flow rule.

상기 제 2 플로우 룰은 제 1 플로우 룰 보다 높은 우선 순위를 가지며, 특정 버전의 패킷에만 적용되는지 여부는 문제되지 않는다. 이와 함께 컨트롤러 서버는 향후 네트워크에 유입되는 패킷에는 제 2 버전 정보를 부여하도록 버전을 변경할 수 있다. (단계 345) The second flow rule has a higher priority than the first flow rule, and it does not matter whether it applies only to a specific version of the packet. At the same time, the controller server can change the version so as to give the second version information to packets that are to be transmitted to the network in the future. (Step 345)

단계 340에서 제 1 플로우 룰을 제 2 플로우 룰로 변경하고, 그전에 일관성을 위한 플로우 룰을 플로우 테이블에 적용한 오픈플로우 스위치는 패킷이 들어오면 플로우 테이블과 함께 패킷의 버전 정보를 확인하여 패킷을 처리할 수 있다. In step 340, when the first flow rule is changed to the second flow rule, and the flow rule for consistency is applied to the flow table, the open flow switch can check the version information of the packet together with the flow table have.

예를 들어 패킷의 버전 정보가 VLAN 태그를 이용하여 부여된 경우, 오픈플로우 스위치는 패킷의 VLAN 태그를 확인하여, 구 버전 패킷인지 또는 신 버전 패킷인지를 확인할 것이다. 또 다른 예로 버전 정보가 패킷의 MAC 주소나 IP의 주소의 일부를 이용하여 부여된 경우, 오픈플로우 스위치는 패킷의 해당 위치를 확인하여 버전을 확인할 수 있다. For example, when version information of a packet is given using a VLAN tag, the open flow switch checks the VLAN tag of the packet to check whether it is an old version packet or a new version packet. As another example, if the version information is given using the MAC address of the packet or a part of the IP address, the open flow switch can confirm the version by checking the corresponding position of the packet.

이때 패킷이 구 버전 정보, 즉 제 1 버전 정보를 갖는다면, 오픈플로우 스위치는 우선 순위가 높은 일관성을 위한 플로우 룰을 적용하여 결과적으로 제 1 플로우 룰이 적용된 것과 동일하게 처리할 것이다. 만약 패킷이 제 2 버전 정보를 갖는다면 일관성을 위한 플로우 룰이 적용되지 않으므로, 다음으로 높은 우선 순위를 가지는 제 2 플로우 룰에 따라 처리할 것이다. At this time, if the packet has the old version information, i.e., the first version information, the open flow switch will apply the flow rule for high priority consistency so that the same processing as the first flow rule will be applied. If the packet has the second version information, the flow rule for consistency is not applied, so the second flow rule having the next highest priority will be processed.

한편, 본 발명의 실시예를 따르면, 일관성을 위한 플로우 룰이 일반적인 플로우 룰(도 3의 예에서 제 1 플로우 룰 및 제 2 플로우 룰)과 충돌되지 않도록 하기 위한 몇가지 고려를 할 수 있다. On the other hand, according to the embodiment of the present invention, some consideration can be made so that the flow rule for consistency does not collide with a general flow rule (the first flow rule and the second flow rule in the example of Fig. 3).

예를 들어, 플로우 룰의 우선 순위의 범위를 미리 설정할 수 있다. For example, the priority range of the flow rule can be set in advance.

다시 말하면, 어느 경우에도 일관성을 위한 플로우 룰의 우선 순위를 신 플로우 룰보다 큰 값이면서, 해당 변경과 무관한 다른 플로우 룰과 동일하지 않은 값으로 선택할 수 있기 위해, 일반적인 플로우 룰의 우선 순위는 미리 설정된 범위에서 선택하도록 설정할 수 있다. 예를 들어, 일반적인 플로우 룰의 우선 순위는 짝수에서만 부여하도록 설정한다면 일관성을 위한 플로우 룰의 우선 순위는 홀수 값에서 언제나 선택할 수 있으므로 플로우 룰의 충돌은 발생되지 않는다.In other words, in any case, since the priority of the flow rule for consistency is larger than the new flow rule and can be selected as a value not equal to other flow rules irrelevant to the change, It can be set to select from the set range. For example, if the priority of a general flow rule is set to be assigned to an even number, the priority of a flow rule for consistency can always be selected from an odd value, so that a flow rule conflict does not occur.

또 다른 예로 플로우 테이블의 충돌이 없음을 보장하기 위하여, 일관성을 위한 플로우 룰이 다른 플로우 룰과 충돌하는 경우에는 플로우 룰 변경을 허용하지 않을 수도 있다. 예를 들어, 도 3의 예에서 일관성을 위한 플로우 룰의 우선 순위가 제 2 플로우 룰과 동일하면, 오픈플로우 스위치는 제 2 플로우 룰을 플로우 테이블에 반영하지 않을 수도 있다.  As another example, to ensure that there is no conflict in the flow table, the flow rules for consistency may not allow flow rule changes if they conflict with other flow rules. For example, in the example of FIG. 3, if the priority of the flow rule for consistency is the same as the second flow rule, the open flow switch may not reflect the second flow rule in the flow table.

한편, 상기 일관성을 위한 플로우 룰은 구 플로우 룰이 변경되는 과정에서 구 버전 정보를 가지는 패킷이 일관되게 구 플로우 룰을 적용받기 위한 것이기 때문에, 구 버전의 패킷이 모두 네트워크에서 사라진 이후에는 삭제될 수 있다. Meanwhile, the flow rule for consistency is intended to apply the old flow rule consistently to packets having old version information in the process of changing the old flow rules, so that they can be deleted after all of old packets disappear from the network have.

이를 위하여 단계 350에서 컨트롤러 서버는 구 버전 정보를 가지는 패킷이 더 이상 네트워크에 존재하지 않는지를 확인하여, 모두 사라진 경우라면 단계 360에서 일관성을 위한 플로우 룰을 삭제할 수 있다. In step 350, the controller server checks whether a packet having old version information is no longer present in the network. If all packets are missing, the controller server can delete the flow rule for consistency in step 360.

이를 위해, 컨트롤러 서버는 단계 350에서 구 버전 패킷이 네트워크에 존재하는 시간을 추정할 수 있다. 예를 들어 컨트롤러 서버는 패킷이 스위치 사이를 이동하는데 소요되는 시간을 충분하게 추정하고, 패킷의 time-to-live (TTL)를 이용하여 네트워크에 구버전 패킷이 존재할 수 있는 최대 시간을 추정할 수 있다. 또 다른 예로 컨트롤러 서버는 엄밀한 계산 없이, 종래의 통계 등을 고려하여 구버전 패킷이 네트워크 상에서 사라지는데 필요한 시간을 추정할 수도 있다. To this end, the controller server may estimate the time at which the old version packet is present in the network at step 350. For example, the controller server can estimate the amount of time it takes a packet to travel between switches and estimate the maximum time that an old packet may exist in the network using the packet's time-to-live (TTL) . As another example, the controller server may estimate the time required for old packets to disappear from the network, taking into account conventional statistics, etc., without rigorous calculations.

상기 추정 시간은 구버전 패킷이 사라지기에 충분한 정도이면 족하며, 엄밀한 추정이 요구되지는 않는다. 추정 시간을 과대 평가하여 일관성을 위한 플로우 룰이 필요 이상 잔존해도 네트워크에 특별한 부하는 발생되지 않기 때문이다. The estimated time may be sufficient if the old packets disappear, and exact estimation is not required. This is because the estimated time is overestimated and no special load is generated in the network even if the flow rule for consistency remains more than necessary.

추정 시간이 경과되면, 컨트롤러 서버는 단계 360에서 일관성을 위한 플로우 룰을 삭제할 수 있다. Once the estimated time has elapsed, the controller server may delete the flow rules for consistency at step 360.

본 발명의 다른 실시예를 따르면 단계 350 내지 단계 360을 별도의 절차로 수행하지 않을 수 있다. 예를 들어 컨트롤러 서버는 일관성을 위한 플로우 룰을 삭제하도록 지시하는 메시지를 단계 360에서 따로 전송하지 않고, 단계 330에서 구 버전 패킷의 존재 시간을 추정하여, 일관성을 위한 플로우 룰의 idle_timeout 필드에 미리 유휴 시간(idle time)을 기재할 수도 있다. 유휴 시간이 기재된 플로우 룰은 추정 시간이 경과하면 폐기( discarding)될 것이다. According to another embodiment of the present invention, steps 350 to 360 may not be performed in a separate procedure. For example, the controller server does not separately transmit a message instructing deletion of a flow rule for consistency in step 360, estimates the existence time of the old version packet in step 330, and sets the idle_timeout field of the consistency rule The time (idle time) may be described. The flow rule describing the idle time will be discarded after the estimated time has elapsed.

한편, 앞의 설명에서 플로우 룰 변경을 제 1 플로우 룰에서 제 2 플로우 룰이 추가되는 것으로 예시하여 설명하였지만 본 발명은 이에 한정되지 않는다. 즉, 본 발명의 실시예를 따르면 플로우 룰 변경은 신 플로우 룰의 추가 이외에도, 구 플로우 룰의 삭제 및 구 플로우 룰의 수정을 포함하는 개념으로 이해해야 한다. In the above description, the flow rule change is exemplified as the addition of the second flow rule in the first flow rule, but the present invention is not limited to this. That is, according to the embodiment of the present invention, the flow rule change should be understood as a concept including the addition of the new flow rule, the deletion of the old flow rule and the modification of the old flow rule.

본 발명의 실시예를 따르면, 구 플로우 룰을 삭제 또는 수정하는 경우에도 도 3에 따라 진행할 수 있다. According to the embodiment of the present invention, even when the old flow rule is deleted or modified, the flow can proceed according to FIG.

예를 들어 컨트롤러 서버가 플로우 룰을 삭제하고자 하는 경우(단계 320) 먼저 일관성을 위한 플로우 룰을 추가할 것이다. (단계 330) 이는 플로우 룰이 삭제된 후에도 구버전 패킷은 삭제 전의 플로우 룰에 따르는 것과 동일하게 처리하기 위한 것이다. 따라서 상기 일관성을 위한 플로우 룰은 구 버전 정보를 가지는 패킷, 즉 삭제 전 플로우 룰이 적용되는 시점에 네트워크에 유입된 패킷에만 적용되며, 매치 필드와 인스트럭션은 삭제 전 플로우 룰에 따라 설정될 수 있다. For example, if the controller server wishes to delete a flow rule (step 320), it will first add a flow rule for consistency. (Step 330) This is for processing old packets even after the flow rule is deleted, in the same way as following the flow rule before deletion. Therefore, the flow rule for consistency is applied only to a packet having old version information, that is, a packet flowing into the network at the time of applying the pre-deletion flow rule, and the match field and the instruction may be set according to the pre-deletion flow rule.

다음으로 컨트롤러 서버는 플로우 룰을 삭제하면서 네트워크의 패킷에 부여되는 버전을 변경할 수 있다. (단계 340) 이후 구버전 패킷이 더 이상 네트워크에 존재하지 않으면 일관성을 위한 플로우 룰을 삭제할 수 있다. (단계 350, 360)Next, the controller server can change the version assigned to the packet in the network while deleting the flow rule. (Step 340), if the old packet is no longer present in the network, the flow rule for consistency can be deleted. (Steps 350 and 360)

또 다른 예로, 컨트롤러 서버가 플로우 룰을 수정하고자 하는 경우, (단계 320) 역시 일관성을 위한 플로우 룰을 추가할 것이다. (단계 330) 이는 플로우 룰이 수정된 후에도 구버전 패킷을 수정 전의 플로우 룰에 따르는 것과 동일하게 처리하기 위한 것으로, 구버전 정보를 가지는 패킷에만 적용된다. 다음으로 컨트롤러 서버는 구 플로우 룰을 수정하면서 네트워크의 버전을 신버전으로 변경하고 (단계 340) 이후 구버전 패킷이 더 이상 네트워크에 존재하지 않으면 일관성을 위한 플로우 룰을 삭제할 수 있다. (단계 350, 360)As another example, if the controller server wishes to modify a flow rule (step 320), it will also add a flow rule for consistency. (Step 330) This is for processing the old packet even after the flow rule is modified, in the same way as following the flow rule before the modification, and is applied only to the packet having the old version information. Next, the controller server changes the version of the network to the new version while modifying the old flow rule (step 340), and then can delete the flow rule for consistency if the old version packet is no longer present in the network. (Steps 350 and 360)

한편, 이해를 돕기 위하여 간단한 예시를 들어 본 발명의 특징을 이하에서 설명하도록 한다. 예시에서는 VLAN 태그를 이용하여 패킷에 버전 정보를 부여하는 것으로 가정한다. For the sake of understanding, the features of the present invention will be described below with a simple example. In the example, it is assumed that version information is given to a packet using a VLAN tag.

예를 들어, 패킷이 네트워크에 유입된 시점에 “모든 패킷에 대해 우선 순위 10으로 포트 1로 전달할 것”을 지시하는 플로우 룰이 적용되고 있는 경우를 고려할 수 있다. (표 1) 나아가 본 발명의 실시예를 따르면 패킷은 네트워크 유입 시점을 기준으로 버전 정보가 부여되는데, 해당 시점에 네트워크로 유입된 패킷은 100의 버전 정보를 부여받은 것으로 예시한다. For example, a case may be considered in which a flow rule indicating " forward to port 1 with priority 10 for all packets " is applied at the time when a packet enters the network. According to the embodiment of the present invention, the packet is provided with version information based on the network inflow time point, and packets entered into the network at the corresponding time point are given as version information of 100 packets.

PriorityPriority Match FieldMatch Field InstructionInstruction 1010 모든 패킷All packets Output port 1Output port 1

이러한 상황에서 컨트롤러 서버가 “HTTP 패킷에 대해 우선순위 20으로 드랍할 것”을 지시하는 플로우 룰을 추가하고자 하는 경우를 고려할 수 있다. (표 2)In such a situation, it may be considered to add a flow rule indicating that the controller server should drop "priority 20 to the HTTP packet". (Table 2)

PriorityPriority Match FieldMatch Field InstructionInstruction 2020 HTTP 패킷 HTTP packet DropDrop 1010 모든 패킷All packets Output port 1Output port 1

이 경우 본 발명의 실시예를 따르면 컨트롤러 서버는 플로우 룰의 변경 전에 일관성을 위한 플로우 룰을 추가하는 특징이 있다. (표 3)In this case, according to the embodiment of the present invention, the controller server has a feature of adding a flow rule for consistency before changing the flow rule. (Table 3)

PriorityPriority Match FieldMatch Field InstructionInstruction 2121 VLAN 태그가 100이고 HTTP 패킷If the VLAN tag is 100 and the HTTP packet Output port 1Output port 1

앞서 설명한 바와 같이, 일관성을 위한 플로우 룰은 패킷에 네트워크 유입 시점을 기준으로 하나의 플로우 룰이 적용되는 것처럼 처리하기 위한 것이다. 즉, 일관성을 위한 플로우 룰이 적용되면, 패킷의 네트워크 유입 시점에 적용된 플로우 룰이 변경되더라도 해당 패킷은 변경 전의 플로우 룰에 따라 처리되는 것과 동일한 결과가 도출된다. As described above, the flow rule for consistency is intended to treat a packet as if one flow rule is applied based on the network inflow point. That is, when the flow rule for consistency is applied, even if the flow rule applied at the network inflow time of the packet is changed, the same result as that the packet is processed according to the flow rule before the change is derived.

이를 위해 일관성을 위한 플로우 룰은 특정 버전 정보를 가지는 패킷에만 적용되는 특징이 있다. 위의 예에서 일관성을 위한 플로우 룰은 버전 정보(VLAN 태그) 100을 가지는 패킷에만 적용된다. For this purpose, the flow rule for consistency is applied only to packets having specific version information. In the above example, the flow rule for consistency is applied only to packets having version information (VLAN tag) 100.

위의 예에서 일관성을 위한 플로우 룰의 우선 순위는 추가할 플로우 룰보다 높고, 매치 필드는 추가할 플로우 룰의 매치 필드에 패킷의 버전 정보에 대한 조건이 붙여진 형태이며, 인스트럭션은 종래의 플로우 룰에서, 추가할 플로우 룰의 매치 필드에 해당하는 인스트럭션과 동일한 형태를 가질 수 있다. In the above example, the priority of the flow rule for consistency is higher than that of the flow rule to be added. The match field is a form in which a match field of the flow rule to be added is attached to the version information of the packet. , It can have the same form as the instruction corresponding to the match field of the flow rule to be added.

본 발명의 실시예를 따르면, 컨트롤러 서버는 일관성을 위한 플로우 룰을 먼저 적용하고 플로우 룰을 변경한다. 그리고 플로우 룰 변경과 동시에 네트워크에 유입되는 패킷에 부여하는 버전을 증가할 수 있다. 앞의 예에서 네트워크의 버전이 101로 변경될 수 있다. According to an embodiment of the present invention, the controller server first applies the flow rules for consistency and changes the flow rules. At the same time as changing the flow rule, it is possible to increase the version given to the packets entering the network. In the previous example, the version of the network could be changed to 101.

PriorityPriority Match FieldMatch Field InstructionInstruction 2121 VLAN 태그가 100이고 HTTP 패킷If the VLAN tag is 100 and the HTTP packet Output port 1Output port 1 2020 HTTP 패킷 HTTP packet DropDrop 1010 모든 패킷All packets Output port 1Output port 1

표 4는 위의 예에서 종래의 플로우 룰, 일관성을 위한 플로우 룰, 추가된 플로우 룰이 모두 반영된 플로우 테이블을 의미한다. 표 4의 플로우 테이블이 적용되는 시점에 네트워크로 유입되는 패킷은 버전 정보 101이 부여될 것이다.Table 4 shows the flow table in which the conventional flow rule, the consistency flow rule, and the added flow rule are all reflected in the above example. The version information 101 will be given to the packet flowing into the network at the time when the flow table of Table 4 is applied.

표 4의 플로우 테이블에 따르면, 버전이 100인 패킷은 결과적으로 네트워크 유입 시점에 적용된 종래의 플로우 룰에 따르는 것과 동일하게 처리된다. 즉, 버전 100인 패킷은 HTTP 패킷이라면 우선순위가 가장 높은 일관성을 위한 플로우 룰에 따라 포트 1로 전송되고, HTTP 패킷이 아니라면 종래의 플로우 룰에 따라 포트 1로 전송되기 때문에, 결과적으로 버전 100인 모든 패킷은 표 1과 같은 종래의 플로우 룰을 적용받는 것처럼 처리된다. According to the flow table in Table 4, a packet with a version number of 100 is processed in the same manner as the conventional flow rule applied at the time of network inflow. That is, if the packet having the version 100 is an HTTP packet, the packet is transmitted to the port 1 according to the flow rule for the highest priority for consistency. If the packet is not the HTTP packet, the packet is transmitted to the port 1 according to the conventional flow rule. All packets are processed as if they were applied to the conventional flow rules as shown in Table 1.

한편 버전 101인 패킷은 일관성을 위한 플로우 룰을 적용받지 않기 때문에 표 2와 같이 HTTP 패킷이라면 드랍되고, HTTP 패킷이 아니라면 포트 1로 전송될 것이다. 이후 일관성을 위한 플로우 룰은 버전 100인 패킷의 잔존 추정 시간이 경과하면 삭제될 것이다. On the other hand, packets of version 101 will be dropped if they are HTTP packets as shown in Table 2, and will be sent to port 1 if they are not HTTP packets because they are not subject to the flow rules for consistency. Then the flow rule for consistency will be deleted when the remaining estimated time of packet of version 100 passes.

본 명세서와 도면에 게시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식 가진 자에게 자명한 것이다.The embodiments of the present invention disclosed in the present specification and drawings are intended to be illustrative only and not intended to limit the scope of the present invention. It is to be understood by those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.

100 : 컨트롤러 서버
200, 200a, 210, 220 : 오픈플로우 스위치
300, 300a, 300b, 240, 250 : 호스트
230 : IPS
100: Controller server
200, 200a, 210, 220: open flow switch
300, 300a, 300b, 240, 250:
230: IPS

Claims (15)

소프트웨어 정의 네트워크에서 컨트롤러 서버가 플로우 룰을 변경하는 방법에 있어서,
제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하는 단계;
상기 일관성을 위한 플로우 룰을 추가한 후, 상기 제 1 플로우 룰을 변경하는 단계;
상기 제 1 플로우 룰이 적용되는 시점에 부여된 버전 정보를 가지는 패킷이 상기 네트워크에 존재할 수 있는 최대 시간을 추정하는 단계; 및
추정된 최대 시간이 경과하면 상기 일관성을 위한 플로우 룰을 삭제하는 단계를 포함하는 것을 특징으로 하는 플로우 룰 변경 방법.
In a method for changing a flow rule by a controller server in a software defined network,
Adding a flow rule for consistency so that a packet flowing into the network at a time when the first flow rule is applied is processed according to a first flow rule before the change even after the first flow rule is changed;
Modifying the first flow rule after adding the flow rule for the consistency;
Estimating a maximum time at which a packet having version information added at a time point when the first flow rule is applied may exist in the network; And
And deleting the flow rule for the consistency when the estimated maximum time has elapsed.
제 1항에 있어서, 상기 일관성을 위한 플로우 룰은,
상기 제 1 플로우 룰이 적용되는 시점에 부여된 버전 정보를 가지는 패킷에만 적용되는 것을 특징으로 하는 플로우 룰 변경 방법.
2. The method of claim 1, wherein the flow rule for consistency comprises:
Is applied only to a packet having version information given at a time when the first flow rule is applied.
제 2항에 있어서,
상기 제 1 플로우 룰을 변경하는 단계는, 제 2 플로우 룰을 추가하는 단계이며,
상기 일관성을 위한 플로우 룰은, 상기 제 2 플로우 룰보다 높은 우선 순위(Priority), 상기 제 2 플로우 룰을 따르는 매치 필드(Match field), 및 변경 전의 제 1 플로우 룰을 따르는 인스트럭션(Instruction)을 포함하는 것을 특징으로 하는 플로우 룰 변경 방법.
3. The method of claim 2,
Wherein the step of modifying the first flow rule is a step of adding a second flow rule,
The consistency flow rule includes a higher priority than the second flow rule, a match field following the second flow rule, and an instruction following the first flow rule before the change. The flow rule changing method comprising the steps of:
제 2항에 있어서,
상기 제 1 플로우 룰을 변경하는 단계는, 상기 제 1 플로우 룰을 삭제 또는 수정하는 단계이며,
상기 일관성을 위한 플로우 룰은, 변경 전의 제 1 플로우 룰보다 높은 우선 순위, 상기 변경 전의 제 1 플로우 룰을 따르는 매치 필드 및 상기 변경 전의 제 1 플로우 룰을 따르는 인스트럭션을 포함하는 것을 특징으로 하는 플로우 룰 변경 방법.
3. The method of claim 2,
Wherein changing the first flow rule is a step of deleting or modifying the first flow rule,
The flow rule for consistency includes a higher priority than the first flow rule before the change, a match field following the first flow rule before the change, and an instruction following the first flow rule before the change. How to change.
제 3항 또는 제 4항에 있어서,
상기 일관성을 위한 플로우 룰의 매치 필드는, 상기 일관성을 위한 플로우 룰을 적용받는 패킷의 버전 정보를 포함하는 것을 특징으로 하는 플로우 룰 변경 방법.
The method according to claim 3 or 4,
Wherein the match field of the flow rule for consistency includes version information of a packet to which the flow rule for consistency is applied.
제 1항에 있어서, 상기 제 1 플로우 룰을 변경하는 단계는,
상기 네트워크로 유입되는 패킷에 부여하는 버전 정보를 변경하는 단계를 포함하는 것을 특징으로 하는 플로우 룰 변경 방법.
2. The method of claim 1, wherein changing the first flow rule comprises:
And changing the version information to be given to a packet flowing into the network.
제 2항에 있어서,
상기 제 1 플로우 룰이 적용되는 시점에 부여된 버전 정보를 가지는 패킷이 상기 네트워크에 존재하지 않을 것으로 추정되면 상기 일관성을 위한 플로우 룰이 삭제되는 단계를 더 포함하는 것을 특징으로 하는 플로우 룰 변경 방법.
3. The method of claim 2,
Further comprising the step of deleting the flow rule for consistency if it is estimated that a packet having version information added at the time of applying the first flow rule is not present in the network.
삭제delete 제 1항에 있어서, 상기 일관성을 위한 플로우 룰을 삭제하는 단계는,
상기 추정된 최대 시간을 상기 일관성을 위한 플로우 룰의 idle_timeout 필드에 기재하는 단계인 것을 특징으로 하는 플로우 룰 변경 방법.
2. The method of claim 1, wherein deleting the flow rules for consistency comprises:
And writing the estimated maximum time in the idle_timeout field of the flow rule for consistency.
제 1항에 있어서,
상기 제 1 플로우 룰 및 제 2 플로우 룰의 우선 순위는, 상기 일관성을 위한 플로우 룰의 우선 순위와 충돌되지 않도록 미리 설정된 범위의 값을 가지는 것을 특징으로 하는 플로우 룰 변경 방법.
The method according to claim 1,
Wherein the priority order of the first flow rule and the second flow rule has a value in a preset range so as not to conflict with the priority of the flow rule for consistency.
소프트웨어 정의 네트워크에서 스위치가 패킷을 처리하는 방법에 있어서,
제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하는 단계;
상기 일관성을 위한 플로우 룰을 추가한 후, 상기 제 1 플로우 룰을 변경하는 단계;
상기 일관성을 위한 플로우 룰 및 변경된 제 1 플로우 룰에 따라 패킷을 처리하는 단계; 및
상기 제 1 플로우 룰이 적용되는 시점에 부여된 버전 정보를 가지는 패킷이 상기 네트워크에 존재할 수 있을 것으로 추정된 최대 시간이 시간이 경과하면 상기 일관성을 위한 플로우 룰을 삭제하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
A method for a switch to process packets in a software defined network,
Adding a flow rule for consistency so that a packet flowing into the network at a time when the first flow rule is applied is processed according to a first flow rule before the change even after the first flow rule is changed;
Modifying the first flow rule after adding the flow rule for the consistency;
Processing the packet according to the flow rule for consistency and the changed first flow rule; And
And deleting the flow rule for consistency when a maximum time that a packet having version information given at the time of application of the first flow rule is estimated to exist in the network has elapsed, Lt; / RTI >
소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 컨트롤러 서버에 있어서,
적어도 하나 이상의 스위치와 통신하는 통신부; 및
제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하고, 상기 일관성을 위한 플로우 룰이 추가된 후, 상기 제 1 플로우 룰을 변경하는 제어부를 포함하며,
상기 제어부는, 상기 제 1 플로우 룰이 적용되는 시점에 부여된 버전 정보를 가지는 패킷이 상기 네트워크에 존재할 수 있는 최대 시간을 추정하고, 추정된 최대 시간이 경과하면 상기 일관성을 위한 플로우 룰을 삭제하는 것을 특징으로 하는 컨트롤러 서버.
1. A controller server for changing a flow rule in a software defined network,
A communication unit for communicating with at least one switch; And
Adding a flow rule for consistency so that a packet flowing into the network at a time when the first flow rule is applied is processed according to a first flow rule before the change even after the first flow rule is changed, And a control unit for changing the first flow rule after the rule is added,
The control unit estimates a maximum time that a packet having version information given at a time point when the first flow rule is applied may exist in the network, and deletes the flow rule for consistency when the estimated maximum time has elapsed Wherein the controller server comprises:
소프트웨어 정의 네트워크에서 패킷을 처리하는 스위치에 있어서,
컨트롤러 서버와 통신하는 통신부; 및
제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하고, 그 후 상기 제 1 플로우 룰을 변경하며, 상기 일관성을 위한 플로우 룰 및 변경된 제 1 플로우 룰에 따라 패킷을 처리하는 제어부를 포함하며,
상기 제어부는, 상기 제 1 플로우 룰이 적용되는 시점에 부여된 버전 정보를 가지는 패킷이 상기 네트워크에 존재할 수 있을 것으로 추정된 최대 시간이 경과하면 상기 일관성을 위한 플로우 룰을 삭제하는 것을 특징으로 하는 스위치.
1. A switch for processing packets in a software defined network,
A communication unit for communicating with the controller server; And
Adding a flow rule for consistency so that a packet flowing into the network at the time of applying the first flow rule is processed according to a first flow rule before the change even after the first flow rule is changed, And a control unit for changing the flow rule and processing the packet according to the flow rule for consistency and the changed first flow rule,
Wherein the control unit deletes the flow rule for consistency when a maximum time estimated that a packet having version information given at a time point when the first flow rule is applied may exist in the network has elapsed .
소프트웨어 정의 네트워크에서 플로우 룰을 변경하는 처리를 컨트롤러 서버에서 실행하기 위하여 컴퓨터 판독 가능한 매체에 저장된 컴퓨터 프로그램에 있어서,
제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하는 기능;
상기 일관성을 위한 플로우 룰이 추가된 후, 상기 제 1 플로우 룰을 변경하는 기능;
상기 제 1 플로우 룰이 적용되는 시점에 부여된 버전 정보를 가지는 패킷이 상기 네트워크에 존재할 수 있는 최대 시간을 추정하는 기능; 및
추정된 최대 시간이 경과하면 상기 일관성을 위한 플로우 룰을 삭제하는 기능을 수행하는 것을 특징으로 하는 컴퓨터 프로그램.
A computer program stored on a computer readable medium for executing in a controller server processing of changing a flow rule in a software defined network,
Adding a flow rule for consistency so that a packet flowing into the network at a time when the first flow rule is applied is processed according to a first flow rule before the change even after the first flow rule is changed;
A function to change the first flow rule after the flow rule for consistency is added;
A function of estimating a maximum time that a packet having version information given at a time when the first flow rule is applied may exist in the network; And
And deletes the flow rule for the consistency when the estimated maximum time has elapsed.
소프트웨어 정의 네트워크에서 패킷의 처리를 스위치에서 실행하기 위하여 매체에 저장된 컴퓨터 프로그램에 있어서,
제 1 플로우 룰이 적용되는 시점에 상기 네트워크로 유입된 패킷은 상기 제 1 플로우 룰이 변경된 후에도 변경 전의 제 1 플로우 룰에 따라 처리되도록 하기 위한 일관성을 위한 플로우 룰을 추가하는 기능;
상기 일관성을 위한 플로우 룰을 추가한 후, 상기 제 1 플로우 룰을 변경하는 기능;
상기 일관성을 위한 플로우 룰 및 변경된 제 1 플로우 룰에 따라 패킷을 처리하는 기능; 및
상기 제 1 플로우 룰이 적용되는 시점에 부여된 버전 정보를 가지는 패킷이 상기 네트워크에 존재할 수 있을 것으로 추정된 최대 시간이 경과하면 상기 일관성을 위한 플로우 룰을 삭제하는 기능을 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
CLAIMS 1. A computer program stored on a medium for performing processing of packets in a software defined network at a switch,
Adding a flow rule for consistency so that a packet flowing into the network at a time when the first flow rule is applied is processed according to a first flow rule before the change even after the first flow rule is changed;
A function to change the first flow rule after adding the flow rule for the consistency;
A function of processing a packet according to the flow rule for consistency and the first flow rule changed; And
And a function for deleting the flow rule for consistency when a maximum time estimated that a packet having version information given at a time point when the first flow rule is applied may exist in the network has elapsed program.
KR1020150052920A 2015-04-15 2015-04-15 Method, apparatus and computer program for updating flow rules of software defined network KR101658824B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150052920A KR101658824B1 (en) 2015-04-15 2015-04-15 Method, apparatus and computer program for updating flow rules of software defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150052920A KR101658824B1 (en) 2015-04-15 2015-04-15 Method, apparatus and computer program for updating flow rules of software defined network

Publications (1)

Publication Number Publication Date
KR101658824B1 true KR101658824B1 (en) 2016-09-22

Family

ID=57102372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150052920A KR101658824B1 (en) 2015-04-15 2015-04-15 Method, apparatus and computer program for updating flow rules of software defined network

Country Status (1)

Country Link
KR (1) KR101658824B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101855742B1 (en) * 2016-10-12 2018-05-10 아토리서치(주) Method and apparatus for destination based packet forwarding control in software defined networking
CN109818864A (en) * 2018-12-12 2019-05-28 中国人民解放军战略支援部队信息工程大学 Data flow path update method and device in software defined network
KR101982230B1 (en) 2018-07-06 2019-08-28 고려대학교 산학협력단 Flow Rule Virtualization Apparatus and Method thereof in Programmable Network Virtualization
KR102357215B1 (en) 2021-07-20 2022-02-09 (주) 이든티앤에스 Workflow construction service system based on web for robotic process automation
KR20230033166A (en) 2021-08-30 2023-03-08 (주) 이든티앤에스 Script activity creating method for robotic process automation, program storing recording medium and computer readable recording medium storing a program in order for the method to do
KR20230033167A (en) 2021-08-30 2023-03-08 (주) 이든티앤에스 Workflow creating apparatus for robotic process automation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130060817A1 (en) * 2010-07-06 2013-03-07 Teemu Koponen Method and apparatus for interacting with a network information base in a distributed network control system with multiple controller instances
KR20140051776A (en) * 2012-10-23 2014-05-02 한국전자통신연구원 Apparatus for network monitoring based on flow and network monitoring system
KR20140051802A (en) * 2012-10-23 2014-05-02 한국전자통신연구원 Method for setting packet forwarding rule and control apparatus using the method
KR101477012B1 (en) * 2014-05-23 2014-12-29 주식회사 파이오링크 Method, apparatus, system and computer-readable recording medium for sdn switching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130060817A1 (en) * 2010-07-06 2013-03-07 Teemu Koponen Method and apparatus for interacting with a network information base in a distributed network control system with multiple controller instances
KR20140051776A (en) * 2012-10-23 2014-05-02 한국전자통신연구원 Apparatus for network monitoring based on flow and network monitoring system
KR20140051802A (en) * 2012-10-23 2014-05-02 한국전자통신연구원 Method for setting packet forwarding rule and control apparatus using the method
KR101477012B1 (en) * 2014-05-23 2014-12-29 주식회사 파이오링크 Method, apparatus, system and computer-readable recording medium for sdn switching

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101855742B1 (en) * 2016-10-12 2018-05-10 아토리서치(주) Method and apparatus for destination based packet forwarding control in software defined networking
KR101982230B1 (en) 2018-07-06 2019-08-28 고려대학교 산학협력단 Flow Rule Virtualization Apparatus and Method thereof in Programmable Network Virtualization
US10686700B2 (en) 2018-07-06 2020-06-16 Korea University Research And Business Foundation Flow rule virtualization apparatus and method thereof in programmable network virtualization
CN109818864A (en) * 2018-12-12 2019-05-28 中国人民解放军战略支援部队信息工程大学 Data flow path update method and device in software defined network
CN109818864B (en) * 2018-12-12 2021-02-23 中国人民解放军战略支援部队信息工程大学 Data flow path updating method and device in software defined network
KR102357215B1 (en) 2021-07-20 2022-02-09 (주) 이든티앤에스 Workflow construction service system based on web for robotic process automation
KR20230033166A (en) 2021-08-30 2023-03-08 (주) 이든티앤에스 Script activity creating method for robotic process automation, program storing recording medium and computer readable recording medium storing a program in order for the method to do
KR20230033167A (en) 2021-08-30 2023-03-08 (주) 이든티앤에스 Workflow creating apparatus for robotic process automation

Similar Documents

Publication Publication Date Title
US11134012B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
US10728094B2 (en) Control traffic in software defined networks
KR101658824B1 (en) Method, apparatus and computer program for updating flow rules of software defined network
Jasmine et al. DSQLR-A distributed scheduling and QoS localized routing scheme for wireless sensor network
US20200396162A1 (en) Service function chain sfc-based communication method, and apparatus
US10972357B2 (en) SDN network system, controller, and controlling method
EP3122004A1 (en) Traffic switching method, device, and system
US10148595B2 (en) Handling dynamic port/LAG changes without breaking communication in an extended bridge
JP5488979B2 (en) Computer system, controller, switch, and communication method
CN111263373B (en) Data processing method, controller and forwarding equipment
TWI639325B (en) Automatically configured switch,method of automatically configuring a switch, and software defined network system with auto-deployment switches and auto-deploying method thereof
JP2011166384A (en) Computer system and communication method
KR101855742B1 (en) Method and apparatus for destination based packet forwarding control in software defined networking
US10171352B2 (en) Communication system, node, control device, communication method, and program
JP2019057905A (en) Role-based automatic configuration system and method for ethernet(r) switches
CN109039916B (en) Message forwarding method, device and storage medium
US10104018B2 (en) Method, apparatus, and system for controlling forwarding of service data in virtual network
KR101610031B1 (en) Method for controlling openflow switch embedded controller in software defined network and apparatus thereof
US10623301B2 (en) Method, routing bridge and non-transitory computer-readable storage medium for network routing
KR20160072718A (en) System and method for neighbor discovery based on ethernet in the software defined networks
WO2015032260A1 (en) Route updating method and routing device
US11095514B2 (en) System and method for propagating anima network objective changes
KR102092091B1 (en) Methods, apparatus and computer programs for providing high availability and reliability in software defined network
KR101969304B1 (en) Method and computer program for handling trouble using packet-out message in software defined networking environment
KR101767439B1 (en) Method, apparatus and computer program for managing paths for packets of software defined network

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190916

Year of fee payment: 4