KR20230136078A - Device and method for checking policy conflict on sdn - Google Patents

Device and method for checking policy conflict on sdn Download PDF

Info

Publication number
KR20230136078A
KR20230136078A KR1020230035277A KR20230035277A KR20230136078A KR 20230136078 A KR20230136078 A KR 20230136078A KR 1020230035277 A KR1020230035277 A KR 1020230035277A KR 20230035277 A KR20230035277 A KR 20230035277A KR 20230136078 A KR20230136078 A KR 20230136078A
Authority
KR
South Korea
Prior art keywords
flow rule
flow
rule
generated
policy
Prior art date
Application number
KR1020230035277A
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 고려대학교 산학협력단
Publication of KR20230136078A publication Critical patent/KR20230136078A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

SDN의 정책 충돌 체크 장치 및 방법이 개시된다. 상기 SDN의 정책 충돌 체크 방법은 SDN(Software-Defined Networking) 컨트롤러에 의해 수행되는 SDN의 정책 충돌 체크 방법으로서, 정책을 수신하는 단계, 상기 정책으로부터 플로우룰(FlowRule)을 생성하는 단계, 및 생성된 플로우룰과, 플로우 테이블에 포함된 복수의 플로우룰들의 충돌 여부를 판단하는 단계를 포함한다.An SDN policy conflict checking device and method are disclosed. The SDN policy conflict check method is a SDN policy conflict check method performed by an SDN (Software-Defined Networking) controller, comprising the steps of receiving a policy, generating a flow rule from the policy, and creating a flow rule from the policy. It includes determining whether there is a conflict between the flow rule and a plurality of flow rules included in the flow table.

Description

SDN의 정책 충돌 체크 장치 및 방법{DEVICE AND METHOD FOR CHECKING POLICY CONFLICT ON SDN}SDN policy conflict checking device and method {DEVICE AND METHOD FOR CHECKING POLICY CONFLICT ON SDN}

본 발명은 소프트웨어 정의 네트워크(Software-Defined Networking, SDN)에 관한 것으로, 보다 상세하게는 SDN의 NB(North-Bound)의 정책 충돌을 체크하기 위한 알고리즘과 구현 시스템에 관한 것이다.The present invention relates to software-defined networking (SDN), and more specifically, to an algorithm and implementation system for checking policy conflicts in the NB (North-Bound) of SDN.

5G 네트워크에서는 SDN/NFV 기반으로 내려지는 보안 규칙(Security Policy), QoS 규칙, 그리고 방화벽 규칙(Firewall Policy) 등 다양한 VNFs에서 규칙들을 SDN 컨드롤러에 내릴 수 있다. 각각 독립적인 VNFs 프로그램 상에서 오류가 발생되지 않더라도 SDN 컨트롤러에서 다양한 응용 프로그램이 실행되면, SDN 스위치들에서 불일치하는 규칙으로 인한 충돌이 발생할 수 있다.In a 5G network, rules can be issued to the SDN controller from various VNFs, including security policies, QoS rules, and firewall policies issued based on SDN/NFV. Even if an error does not occur in each independent VNFs program, if various applications are executed on the SDN controller, conflicts may occur due to inconsistent rules in the SDN switches.

SDN/NFV를 코어 기술로 사용하는 5G 네트워크에서 불일치하는 규칙으로 인해 충돌이 발생할 경우, 네트워크 전체에 오류를 발생시킬 수 있기 때문에 검증이 필요하다. SDN은 프로그래머블(Programmable)한 환경을 제공하여 동적으로 네트워크를 구성하거나 관리할 수 있다. 그리고 데이터 평면과 제어 평면을 분리하여 제어 평면에서 데이터 평면을 관리할 수 있다. SDN에서 관리자가 원하는 정책(Policy)을 제어 평면을 통해 데이터 평면으로 내려지게 되는데 이때 컨트롤러(Controller)에서 내부규정에 의해 정책이 보이지 않거나 원하지 않은 결과가 네트워크상에서 나타날 수 있다. ONOS 컨트롤러를 사용하여 NB(NorthBound) API(Application Programming Interface)를 통해 관리자는 정책을 내릴 수 있다. 내려지는 정책들은 컨트롤러에서 우선적으로 필터링 되어 충돌을 막아준다. 하지만 상호 연관성이 존재하는 정책들은 순서가 뒤바뀜에 따라 정책충돌이 발생할 수 있다. 이러한 충돌은 컨트롤러에서 제어할 수 없다. 따라서 컨트롤러에서 제어할 수 없는 정책들은 잠재적인 충돌 위험이 존재하므로 이러한 충돌을 정책이 내려지기 전에 해결하는 것은 매우 중요하다. 본 발명에서는 SDN 컨트롤러인 ONOS(Open Networking Operating System) 컨트롤러를 사용하여 위와 같은 문제점을 보이고 문제점 중에서 정책을 내렸을 때 연관성 충돌(Correlation Conflict)이 발생하는 문제를 해결하고자 한다.If a conflict occurs due to inconsistent rules in a 5G network using SDN/NFV as the core technology, verification is necessary because errors may occur throughout the network. SDN provides a programmable environment to dynamically configure or manage the network. And by separating the data plane and control plane, you can manage the data plane from the control plane. In SDN, the policy desired by the administrator is sent to the data plane through the control plane. At this time, the policy may not be visible or unwanted results may appear on the network due to internal regulations in the controller. Using the ONOS controller, administrators can issue policies through the NB (NorthBound) API (Application Programming Interface). The issued policies are preferentially filtered by the controller to prevent conflicts. However, policy conflicts may occur if the order of policies that are interrelated is reversed. These collisions cannot be controlled by the controller. Therefore, policies that cannot be controlled by the controller have a potential risk of conflict, so it is very important to resolve these conflicts before the policy is issued. In the present invention, the SDN controller, ONOS (Open Networking Operating System) controller, is used to show the above problems and solve the problem of correlation conflict occurring when a policy is issued.

대한민국 공개특허 제2016-0121087호 (2016.10.19. 공개)Republic of Korea Patent Publication No. 2016-0121087 (published on October 19, 2016)

본 발명이 이루고자 하는 기술적인 과제는 SDN의 정책 충돌 여부를 체크할 수 있는 장치 및 방법을 제공하는 것이다.The technical problem to be achieved by the present invention is to provide a device and method that can check whether there is a policy conflict in SDN.

본 발명의 일 실시예에 따른 SDN의 정책 충돌 체크 방법은 SDN(Software-Defined Networking) 컨트롤러에 의해 수행되는 SDN의 정책 충돌 체크 방법으로서, 정책을 수신하는 단계, 상기 정책으로부터 플로우룰(FlowRule)을 생성하는 단계, 및 생성된 플로우룰과, 플로우 테이블에 포함된 복수의 플로우룰들의 충돌 여부를 판단하는 단계를 포함한다.The SDN policy conflict check method according to an embodiment of the present invention is a SDN policy conflict check method performed by an SDN (Software-Defined Networking) controller, comprising the steps of receiving a policy and receiving a flow rule from the policy. It includes a step of generating, and a step of determining whether there is a conflict between the generated flow rule and a plurality of flow rules included in the flow table.

본 발명의 실시예에 따른 SDN의 정책 충돌 체크 장치 및 방법에 의할 경우, 새롭게 수신된 정책과 기존의 정책 간의 충돌 여부를 사전에 체크하여, 네트워크 오류 발생을 사전에 예방할 수 있다.In the case of the SDN policy conflict checking device and method according to an embodiment of the present invention, it is possible to prevent network errors in advance by checking in advance whether there is a conflict between a newly received policy and an existing policy.

또한, SDN의 NB(NorthBound) API(Application Programming Interface)를 통해 관리자는 정책을 내릴 수 있다. 내려지는 정책들은 컨트롤러에서 우선적으로 필터링 되어 충돌을 막아준다. 하지만 상호 연관성이 존재하는 정책들은 순서가 뒤바뀜에 따라 정책충돌이 발생할 수 있다. 이러한 충돌은 컨트롤러에서 제어할 수 없다. 따라서 컨트롤러에서 제어할 수 없는 정책들은 잠재적인 충돌 위험이 존재하므로 이러한 충돌을 정책이 내려지기 전에 해결하는 것은 매우 중요하다.Additionally, administrators can make policies through SDN's NB (NorthBound) API (Application Programming Interface). The issued policies are preferentially filtered by the controller to prevent conflicts. However, policy conflicts may occur if the order of policies that are interrelated is reversed. These collisions cannot be controlled by the controller. Therefore, policies that cannot be controlled by the controller have a potential risk of conflict, so it is very important to resolve these conflicts before the policy is issued.

본 발명에서는 SDN 컨트롤러인 ONOS(Open Networking Operating System) 컨트롤러를 사용하여 위와 같은 문제점을 보이고 문제점 중에서 정책을 내렸을 때 연관성 충돌(Correlation Conflict)가 발생하는 문제를 해결하였다.In the present invention, the SDN controller, ONOS (Open Networking Operating System) controller, was used to solve the above problems and, among other problems, the problem of correlation conflict occurring when a policy is issued.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 SDN 아키텍쳐를 도시한다.
도 2는 ONOS 컨트롤러의 구조를 도시한다.
도 3은 본 발명의 일 실시예에 따른 정책 충돌 체크 장치의 기능 블럭도이다.
도 4는 도 3에 도시된 정책 충돌 체크 장치에 의해 수행되는 정책 충돌 체크 방법을 설명하기 위한 흐름도이다.
In order to more fully understand the drawings cited in the detailed description of the present invention, a detailed description of each drawing is provided.
Figure 1 shows the SDN architecture.
Figure 2 shows the structure of the ONOS controller.
Figure 3 is a functional block diagram of a policy conflict check device according to an embodiment of the present invention.
FIG. 4 is a flowchart illustrating a policy conflict check method performed by the policy conflict check device shown in FIG. 3.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in this specification are merely illustrative for the purpose of explaining the embodiments according to the concept of the present invention. They may be implemented in various forms and are not limited to the embodiments described herein.

본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Since the embodiments according to the concept of the present invention can make various changes and have various forms, the embodiments will be illustrated in the drawings and described in detail in this specification. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, and includes all changes, equivalents, or substitutes included in the spirit and technical scope of the present invention.

제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another component, for example, without departing from the scope of rights according to the concept of the present invention, a first component may be named a second component and similarly a second component The component may also be named a first component.

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is said to be “connected” or “connected” to another component, it is understood that it may be directly connected to or connected to that other component, but that other components may also exist in between. It should be. On the other hand, when it is mentioned that a component is “directly connected” or “directly connected” to another component, it should be understood that there are no other components in between. Other expressions that describe the relationship between components, such as "between" and "immediately between" or "neighboring" and "directly adjacent to" should be interpreted similarly.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this specification are only used to describe specific embodiments and are not intended to limit the invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as “comprise” or “have” are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in this specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the technical field to which the present invention pertains. Terms as defined in commonly used dictionaries should be interpreted as having meanings consistent with the meanings they have in the context of the related technology, and unless clearly defined in this specification, should not be interpreted in an idealized or overly formal sense. No.

이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached to this specification. However, the scope of the patent application is not limited or limited by these examples. The same reference numerals in each drawing indicate the same members.

SDN(Software Defined Networking)은 개방형 API를 통해 네트워크 트래픽의 전달 동작을 소프트웨어 기반의 컨트롤러에서 제어 및 관리하는 접근 방식이다. 도 1과 같이 SDN은 기존의 네트워크 아키텍처와 달리 각 노드 간의 트래픽 전송을 수행하는 Infrastructure Layer(Data Plane, 데이터 평면), 트래픽의 경로를 지정하는 Control Layer(Control Plane, 제어 평면), Application Layer로 구성 되어 있다. 제어 평면(Control Plane)은 NB(Northbound) Core API를 사용하여 Application Layer와 통신하고, SB(Southbound) Core API를 사용하여 Infrastructure Layer와 통신한다. SDN은 Layer가 분리되어 있기 때문에 중앙 집중적 제어 및 관리가 용이하고 소프트웨어로 프로그램이 가능한 구조로 설계 되어있다. 따라서 사용자의 요구사항에 맞게 네트워크를 신속하고 쉽게 반영할 수 있는 제어 가능한 핵심 기술 중 하나이다. 이러한 SDN 컨트롤러(SDN Controller)에는 ONOS, Pox, Ryu, Open Day Light 등이 있다. 본 발명에서는 NB, SB API 기능 구성이 가능한 ONOS Controller를 사용한다. 그러나, 본 발명의 권리범위가 이에 제한되는 것은 아니다.SDN (Software Defined Networking) is an approach that controls and manages the delivery of network traffic through an open API in a software-based controller. As shown in Figure 1, SDN, unlike existing network architecture, consists of an Infrastructure Layer (Data Plane) that transmits traffic between each node, a Control Layer (Control Plane) that specifies the path of traffic, and an Application Layer. It is done. The Control Plane communicates with the Application Layer using the NB (Northbound) Core API and with the Infrastructure Layer using the SB (Southbound) Core API. Because SDN has separate layers, it is designed to be easy to centralize control and management, and to be programmable through software. Therefore, it is one of the key controllable technologies that can quickly and easily adapt the network to suit user requirements. These SDN controllers include ONOS, Pox, Ryu, and Open Day Light. The present invention uses an ONOS Controller capable of configuring NB and SB API functions. However, the scope of the present invention is not limited thereto.

ONOS Controller는 SDN의 제어 평면에서 OpenFlow 프로토콜을 제어하고 스위치 및 링크, 그리고 소프트웨어 프로그램 및 모듈을 관리하는 오픈소스 기반의 SDN Controller이다. ONOS는 높은 가용성과 안전성 그리고 신뢰성 및 확장성을 향상시키기 위해 제어 평면을 도 2와 같이 Distributed Core를 기준으로 Northbound와 Southbound로 분리한 계층적 구조이다. Application Layer에서는 Northbound에서 제공하는 NB(Northbound) Core API를 사용하여 통신하고, 인터페이스를 통해 네트워크를 프로그래밍하여 정책을 내릴 수 있다. Infrastructure Layer에서는 Southbound에서 제공하는 SB(Southbound) Core API를 사용하여 Provider들과 통신하고, Application Layer에서 내린 정책이 재해석 된 FlowRule을 스위치(Device)의 FlowTable에 설치한다. ONOS Controller의 인스턴스들은 동일한 서비스와 각각의 독립적인 데이터 저장소를 갖기 때문에 네트워크의 상태정보를 빠르게 교환 및 접근 가능하다. 또한 데이터 저장소들은 동기화를 수행함으로써 동일한 데이터를 저장소끼리 유지하여 어떤 인스턴스에 에러가 발생한다 하더라도 빠르게 데이터를 복구할 수 있다.ONOS Controller is an open source-based SDN Controller that controls the OpenFlow protocol in the SDN control plane and manages switches, links, and software programs and modules. ONOS is a hierarchical structure in which the control plane is divided into Northbound and Southbound based on the Distributed Core as shown in Figure 2 in order to improve high availability, safety, reliability, and scalability. The Application Layer communicates using the NB (Northbound) Core API provided by Northbound, and policies can be made by programming the network through the interface. The Infrastructure Layer communicates with providers using the SB (Southbound) Core API provided by Southbound, and FlowRule, which is a reinterpretation of the policy issued by the Application Layer, is installed in the FlowTable of the switch (device). Because ONOS Controller instances have the same service and independent data storage, network status information can be quickly exchanged and accessed. Additionally, data stores maintain the same data between stores by performing synchronization, allowing data to be quickly recovered even if an error occurs in any instance.

정책(policy)은 SDN의 응용부(application layer)에서 사용자가 내리는 추상적인 정책이다. 따라서, 정책은 스위치(device)에 바로 내릴 수가 없다. 따라서, SDN 컨트롤러(예컨대, ONOS 컨트롤러)에서 정책은 응용부에서 데이터 평면(data plane)으로 전달되면서 컨트롤러의 흐름규칙 생성기(FlowRule Generator, 플로우룰 생성기)에 의해 흐름규칙(FlowRule, 플로우룰)으로 재해석 된다.A policy is an abstract policy made by the user at the application layer of SDN. Therefore, policies cannot be sent directly to the switch (device). Therefore, in an SDN controller (e.g., ONOS controller), the policy is transferred from the application part to the data plane and is rewritten as a flow rule by the controller's flow rule generator. It is interpreted.

IETF(Internet Engineering Task Force) 정책 모델은 아래와 같이 특정 조건(condition)이 충족 될 때 취할 행위(actions)를 지정하는 규칙들(rules)로 네트워크 정책을 명세한다.The Internet Engineering Task Force (IETF) policy model specifies network policy with rules that specify actions to be taken when certain conditions are met, as shown below.

네트워크 정책(Network Policy) Network Policy

IF<condition(s)> Then <action(s)>IF<condition(s)> Then <action(s)>

도 3은 본 발명의 일 실시예에 따른 정책 충돌 체크 장치의 기능 블럭도이다.Figure 3 is a functional block diagram of a policy conflict check device according to an embodiment of the present invention.

도 3을 참조하면, 정책 충돌 체크 장치(100)는 적어도 프로세서(processor) 및/또는 메모리(memory)를 포함하는 컴퓨팅 장치로써, SDN 컨트롤러, 예컨대 ONOS(Open Networking Operating System) 컨트롤러를 의미할 수 있다. 정책 충돌 체크 장치(100)는 정책 수신부(110), 플로우룰 생성부(120), 충돌 체크부(130), 및 저장부(140) 중 적어도 하나 이상을 포함할 수 있다.Referring to FIG. 3, the policy conflict check device 100 is a computing device including at least a processor and/or memory, and may mean an SDN controller, for example, an Open Networking Operating System (ONOS) controller. . The policy conflict check device 100 may include at least one of a policy receiver 110, a flow rule generator 120, a conflict checker 130, and a storage unit 140.

정책 수신부(110)는 소정의 정책(police)을 수신할 수 있다. 정책은 소정의 입출력 인터페이스를 통하여 관리자로부터 수신되거나, 적어도 하나의 호스트로부터, 적어도 하나의 스위치를 경유하여, 수신될 수 있다. 수신된 정책은 저장부(140)에 저장될 수 있다.The policy receiving unit 110 may receive a predetermined policy (police). The policy may be received from an administrator through a predetermined input/output interface, or may be received from at least one host via at least one switch. The received policy may be stored in the storage unit 140.

플로우룰 생성부(120)는 수신된 정책에 대응하는 플로우룰(FlowRule, 흐름규칙)을 생성할 수 있다. 플로우룰은 SDN 컨트롤러의 응용부(Application Layer)에서 사용자가 내린 추상적인 정책이 흐름 규칙 생성기(FlowRule Generator, 플로우룰 생성기)에 의해 데이터 평면으로 전달되는 규칙(Rule)으로 재해석된 것을 의미할 수 있다. 따라서, 플로우룰 생성부(120)는 플로우를 생성기로 명명될 수도 있다. 플로우룰을 수학식 1과 같이 구성될 수 있다.The flow rule generator 120 may generate a flow rule (FlowRule) corresponding to the received policy. A flow rule can mean that the abstract policy issued by the user in the application layer of the SDN controller is reinterpreted as a rule that is transmitted to the data plane by the flow rule generator. there is. Accordingly, the flow rule generator 120 may also be called a flow generator. The flow rule can be configured as shown in Equation 1.

[수학식 1][Equation 1]

FlowRule r = (P,I,A,C,D)FlowRule r = (P,I,A,C,D)

즉, 플로우룰의 튜플은 플로우룰(FlowRule r)의 P(Priority, 우선 순위), I(Device ID, 디바이스 아이디), A(Action, 액션), C(Condition, 조건), 및 D(Duration, 지속 시간)로 구성될 수 있다. ONOS Controller에서 플로우룰(FlowRule)은 Subsystem의 FlowRuleService API에 의해 관리된다. 이러한 관리 단계로는 Pendding_Add, Added, Pending_Removed, Removed, Failed가 존재한다. Pendding_Add 단계는 Subsystem이 Application으로부터 FlowRule을 설치하라는 요청을 받았지만 스위치에 FlowRule이 추가가 되지 않은 상태이다. Added 단계에서 Flow Rule Provider에 의해 스위치(Device)의 FlowTable에 FlowRule이 추가가 된다. Pending_Remove 단계는 Application으로부터 FlowRule을 제거하라는 요청을 받았지만 스위치에 FlowRule이 아직 제거가 되지 않은 상태이다. Removed 단계는 스위치의 FlowRule이 제거되었고 Subsystem이 제거사실을 확인 후 저장소에서 FlowRule을 제거한 상태이다. Failed 단계는 스위치가 FlowRule 설치에 실패했음을 나타내는 단계이다.In other words, the tuple of the flow rule is P(Priority), I(Device ID), A(Action), C(Condition), and D(Duration) of FlowRule r. duration). In ONOS Controller, FlowRule is managed by Subsystem's FlowRuleService API. These management steps include Pending_Add, Added, Pending_Removed, Removed, and Failed. The Pending_Add stage is a state in which the subsystem has received a request from the application to install a FlowRule, but the FlowRule has not been added to the switch. In the Added stage, a FlowRule is added to the FlowTable of the switch (Device) by the Flow Rule Provider. In the Pending_Remove stage, a request to remove a FlowRule has been received from the application, but the FlowRule has not yet been removed from the switch. In the Removed stage, the Switch's FlowRule has been removed and the Subsystem has confirmed the removal and removed the FlowRule from the storage. The Failed stage indicates that the switch failed to install FlowRule.

충돌 체크부(130)는 생성된 플로우룰과 플로우 테이블에 저장되어 있는 적어도 하나의 플로우룰의 충돌 여부를 체크(감지, 결정)할 수 있다. 충돌 체크부(130)의 구체적인 동작은 후술하기로 한다.The conflict check unit 130 can check (detect, determine) whether there is a conflict between the generated flow rule and at least one flow rule stored in the flow table. The specific operation of the collision check unit 130 will be described later.

저장부(140)에는 정책 충돌 체크 장치(100)의 동작에 필용한 OS(Operating System), 프로그램, 소스코드, 앱(또는 어플리케이션), 알고리즘 등이 저장되어 있을 수 있다. 또한, 저장부(140)에는 정책 수신부(110)에 의해 수신된 정책, 플로우룰 생성부(120)에 의해 생성된 플로우룰, 충돌 체크부(130)에 의해 의한 충돌 체크 결과, 플로우 테이블 등이 저장될 수 있다.The storage unit 140 may store an operating system (OS), program, source code, app (or application), algorithm, etc. necessary for the operation of the policy conflict check device 100. In addition, the storage unit 140 contains the policy received by the policy receiving unit 110, the flow rule created by the flow rule generating unit 120, the collision check result by the collision checking unit 130, the flow table, etc. It can be saved.

도 4는 도 3에 도시된 정책 충돌 체크 장치에 의해 수행되는 정책 충돌 체크 방법을 설명하기 위한 흐름도이다.FIG. 4 is a flowchart illustrating a policy conflict check method performed by the policy conflict check device shown in FIG. 3.

도 3과 도 4를 참조하면, 정책 충돌 체크 장치(100)의 정책 수신부(110)가 정책을 수신한다(S110). 정책 수신부(110)에 의해 수신된 정책은 저장부(140)에 저장될 수 있다.Referring to Figures 3 and 4, the policy receiving unit 110 of the policy conflict check device 100 receives the policy (S110). The policy received by the policy receiving unit 110 may be stored in the storage unit 140.

이후, 정책 충돌 체크 장치(100)의 플로우룰 생성부(120)는 수신된 정책에 대응하는 플로우룰을 생성할 수 있다(S120). 이와 같이, 정책에 대한 플로우룰이 생성됨에 따라, 플로우 테이블에 저장되어 있는 적어도 하나의 플로우룰과 생성된 플로우룰의 충돌 여부가 체크될 수 있다. Afterwards, the flow rule generator 120 of the policy conflict check device 100 may generate a flow rule corresponding to the received policy (S120). In this way, as a flow rule for a policy is created, it can be checked whether there is a conflict between at least one flow rule stored in the flow table and the created flow rule.

풀로우룰이 생성됨에 따라, 정책 충돌 체크 장치(100)의 충돌 체크부(130)는 생성된 플로우룰과 플로우 테이플 내의 플로우룰이 충돌 여부를 체크할 수 있다(S130 내지 S60).As the flow rule is created, the conflict check unit 130 of the policy conflict check device 100 may check whether the generated flow rule collides with the flow rule in the flow table (S130 to S60).

우선, 충돌 체크부(130)는 생성된 플로우룰과 타겟 플로우룰의 디바이스 아이디를 비교한다(S130). 여기서 타겟 플로우룰은 플로우 테이블에 저장되어 있는 어느 하나의 플로우룰을 의미할 수 있다. 이때, 두 개의 플로우룰의 디바이스 아이디가 동일하지 않으면, 타겟 플로우룰을 교체한 후에 S130 단계를 재차 수행한다. 즉, 플로우 테이블에 포함된 다른 플로우룰과의 비교 과정을 수행한다. 이와 같은 반복 과정은 플로우 테이블에 포함되어 있는 모든 플로우룰에 대한 비교가 완료될 때까지 반복적으로 수행되고, 동일한 디바이스 아이디가를 가진 플로우룰이 존재하지 않으면, 생성된 플로우룰은 플로우 테이블에 삽입될 수 있다. 즉, 생성된 플로우룰은 기존의 플로우룰과 충돌이 발생하지 않는 플로우롤로 판단될 수 있다.First, the collision check unit 130 compares the device IDs of the generated flow rule and the target flow rule (S130). Here, the target flow rule may mean any one flow rule stored in the flow table. At this time, if the device IDs of the two flow rules are not the same, step S130 is performed again after replacing the target flow rule. In other words, a comparison process with other flow rules included in the flow table is performed. This iterative process is performed repeatedly until comparison of all flow rules included in the flow table is completed, and if a flow rule with the same device ID does not exist, the created flow rule is inserted into the flow table. You can. In other words, the generated flow rule can be judged as a flow rule that does not conflict with the existing flow rule.

S130 단계에서, 두 개의 플로우룰의 디바이스 아이디가 동일한 경우, 생성된 플로우룰과 타겟 플로우룰의 조건(condition)을 비교한다(S140). 이때, 두 개의 플로우룰의 조건이 동일하지 않으면, 타겟 플로우룰을 교체한 후에 S130 단계를 재차 수행한다. 즉, 플로우 테이블에 포함된 다른 플로우룰과의 비교 과정을 수행한다. 이와 같은 반복 과정은 플로우 테이블에 포함되어 있는 모든 플로우룰에 대한 비교가 완료될 때까지 반복적으로 수행되고, 동일한 조건을 가진 플로우룰이 존재하지 않으면, 생성된 플로우룰은 플로우 테이블에 삽입될 수 있다. 즉, 생성된 플로우룰은 기존의 플로우룰과 충돌이 발생하지 않는 플로우룰로 판단될 수 있다.In step S130, if the device IDs of the two flow rules are the same, the conditions of the generated flow rule and the target flow rule are compared (S140). At this time, if the conditions of the two flow rules are not the same, step S130 is performed again after replacing the target flow rule. In other words, a comparison process with other flow rules included in the flow table is performed. This iterative process is performed repeatedly until comparison of all flow rules included in the flow table is completed, and if a flow rule with the same conditions does not exist, the generated flow rule can be inserted into the flow table. . In other words, the generated flow rule can be determined to be a flow rule that does not conflict with the existing flow rule.

S140 단계에서, 두 개의 플로우룰의 조건이 동일한 경우, 생성된 플로우룰과 타겟 플로우룰의 우선 순위를 비교한다(S150). 이때, 두 개의 플로우룰의 우선 순위가 동일하지 않으면, 타겟 플로우룰을 교체한 후에 S130 단계를 재차 수행한다. 즉, 플로우 테이블에 포함된 다른 플로우룰과의 비교 과정을 수행한다. 이와 같은 반복 과정은 플로우 테이블에 포함되어 있는 모든 플로우룰에 대한 비교가 완료될 때까지 반복적으로 수행되고, 동일한 우선 순위를 가진 플로우룰이 존재하지 않으면, 생성된 플로우룰은 플로우 테이블에 삽입될 수 있다. 즉, 생성된 플로우룰은 기존의 플로우룰과 충돌이 발생하지 않는 플로우룰로 판단될 수 있다.In step S140, if the conditions of the two flow rules are the same, the priorities of the generated flow rule and the target flow rule are compared (S150). At this time, if the priorities of the two flow rules are not the same, step S130 is performed again after replacing the target flow rule. In other words, a comparison process with other flow rules included in the flow table is performed. This iterative process is performed repeatedly until comparison of all flow rules included in the flow table is completed, and if a flow rule with the same priority does not exist, the created flow rule can be inserted into the flow table. there is. In other words, the generated flow rule can be determined to be a flow rule that does not conflict with the existing flow rule.

S150 단계에서, 두 개의 플로우룰의 우선 순위가 동일한 경우, 액선을 비교한다(S160). 이때, 두 개의 플로우룰의 액션이 서로 같은 경우, 두 개의 플로우룰은 동일한 규칙(equal rule)으로 판단된다. 이 경우, 두 개의 플로우룰 중에서 지속 시간이 큰 플로우룰을 플로우 테이블에 삽입한다. 즉, 생성된 플로우룰의 지속 시간이 타겟 플로우룰의 지속 시간 보다 크다면, 플로우 테이블에서 타겟 플로우룰을 삭제하고 생성된 플로우룰을 삽입할 수 있다. 반대로, 생성된 플로우룰의 지속 시간이 타겟 플로우룰의 지속 시간 보다 작다면, 타겟 플로우룰은 삭제하지 않고 유지하며, 생성된 플로우룰은 플로우 테이블에 삽입하지 않는다. 서로 동일한 플로우룰이기 때문에, 지속 시간을 비교하여, 어느 하나의 플루우룰만을 플로우 테이블에 유지하기 위함이다.In step S150, if the priorities of the two flow rules are the same, the liquid lines are compared (S160). At this time, if the actions of the two flow rules are the same, the two flow rules are determined to be equal rules. In this case, among the two flow rules, the flow rule with the longer duration is inserted into the flow table. That is, if the duration of the generated flow rule is greater than the duration of the target flow rule, the target flow rule can be deleted from the flow table and the generated flow rule can be inserted. Conversely, if the duration of the created flow rule is less than the duration of the target flow rule, the target flow rule is maintained without being deleted, and the created flow rule is not inserted into the flow table. Since the flow rules are the same, the duration time is compared and only one flow rule is maintained in the flow table.

S160 단계에서, 두 플로우룰의 액션이 서로 다를 경우, 두 플로우룰은 서로 충돌하는, 연관성 충돌(Correlation Conflict)이 발생하는 것으로 판단된다. 이 경우, 지속 시간이 큰 플로우룰을 플로우 테이블에 유지할 수 있다. 구체적으로, 생성된 플로우룰의 지속 시간이 타겟 플로우룰의 지속 시간 보다 크다면, 플로우 테이블에서 타겟 플로우룰을 삭제하고 생성된 플로우룰을 삽입할 수 있다. 반대로, 생성된 플로우룰의 지속 시간이 타겟 플로우룰의 지속 시간 보다 작다면, 타겟 플로우룰은 삭제하지 않고 유지하며, 생성된 플로우룰은 플로우 테이블에 삽입하지 않는다. 서로 충돌하는 플로우룰이기 때문에, 지속 시간을 비교하여, 어느 하나의 플루우룰만을 플로우 테이블에 유지하기 위함이다. In step S160, if the actions of the two flow rules are different from each other, it is determined that a correlation conflict occurs, in which the two flow rules conflict with each other. In this case, flow rules with a large duration can be maintained in the flow table. Specifically, if the duration of the generated flow rule is greater than the duration of the target flow rule, the target flow rule can be deleted from the flow table and the generated flow rule can be inserted. Conversely, if the duration of the created flow rule is less than the duration of the target flow rule, the target flow rule is maintained without being deleted, and the created flow rule is not inserted into the flow table. Since the flow rules conflict with each other, the duration time is compared and only one flow rule is maintained in the flow table.

이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 집합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(Digital Signal Processor), 마이크로컴퓨터, FPA(Field Programmable array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(Operation System, OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(Processing Element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(Parallel Processor)와 같은, 다른 처리 구성(Processing Configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a set of hardware components and software components. For example, devices and components described in the embodiments include, for example, a processor, a controller, an Arithmetic Logic Unit (ALU), a Digital Signal Processor, a microcomputer, a Field Programmable Array (FPA), It may be implemented using one or more general-purpose or special-purpose computers, such as a Programmable Logic Unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device may include multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are also possible.

소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(Code), 명령(Instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(Collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(Component), 물리적 장치, 가상 장치(Virtual Equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(Signal Wave)에 영구적으로, 또는 일시적으로 구체화(Embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, and may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. Software and/or data may be used on any type of machine, component, physical device, virtual equipment, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-optical Media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Includes specially configured hardware devices to store and execute program instructions, such as magneto-optical media, ROM, RAM, flash memory, etc. Examples of program instructions include machine language code, such as that produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter, etc. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성 요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.The present invention has been described with reference to the embodiments shown in the drawings, but these are merely illustrative, and those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent. Therefore, the true scope of technical protection of the present invention should be determined by the technical spirit of the attached registration claims.

100 : 정책 충돌 체크 장치
110 : 정책 수신부
120 : 플로우룰 생성부
130 : 충돌 체크부
140 : 저장부
100: Policy conflict check device
110: Policy receiver
120: Flow rule generation unit
130: collision check unit
140: storage unit

Claims (12)

SDN(Software-Defined Networking) 컨트롤러에 의해 수행되는 SDN의 정책 충돌 체크 방법에 있어서,
정책을 수신하는 단계;
상기 정책으로부터 플로우룰(FlowRule)을 생성하는 단계; 및
생성된 플로우룰과, 플로우 테이블에 포함된 복수의 플로우룰들의 충돌 여부를 판단하는 단계를 포함하는,
정책 충돌 체크 방법.
In the SDN policy conflict check method performed by the SDN (Software-Defined Networking) controller,
receiving a policy;
Creating a flow rule from the policy; and
Including determining whether there is a conflict between the generated flow rule and a plurality of flow rules included in the flow table,
How to check policy conflict.
제1항에 있어서,
상기 충돌 여부를 판단하는 단계는,
상기 생성된 플로우룰의 디바이스 아이디와 상기 복수의 플로우룰들 중 타겟 플로우룰의 디바이스 아이디를 비교하는 단계를 포함하는,
정책 충돌 체크 방법.
According to paragraph 1,
The step of determining whether there is a conflict is,
Comprising the step of comparing the device ID of the generated flow rule with the device ID of the target flow rule among the plurality of flow rules,
How to check policy conflict.
제2항에 있어서,
상기 생성된 플로우룰의 디바이스 아이디와 상기 타겟 플로우룰이 디바이스 아이디가 동일한 경우, 상기 생성된 플로우룰의 조건(condition)과 상기 타겟 플로우룰의 조건을 비교하는 단계를 더 포함하는,
정책 충돌 체크 방법.
According to paragraph 2,
When the device ID of the generated flow rule and the device ID of the target flow rule are the same, comparing the condition of the generated flow rule with the condition of the target flow rule,
How to check policy conflict.
제3항에 있어서,
상기 생성된 플로우룰의 조건과 상기 타겟 플로우룰의 조건이 동일한 경우, 상기 생성된 플로우룰의 우선 순위와 상기 타겟 플로우룰의 우선 순위를 비교하는 단계를 더 포함하는,
정책 충돌 체크 방법.
According to paragraph 3,
When the conditions of the generated flow rule and the conditions of the target flow rule are the same, comparing the priority of the generated flow rule and the priority of the target flow rule,
How to check policy conflict.
제4항에 있어서,
상기 생성된 플로우룰의 우선 순위와 상기 타겟 플로우룰의 우선 순위가 동일한 경우, 상기 생성된 플로우룰의 액션과 상기 타겟 플로우룰의 액션을 비교하는 단계를 더 포함하는,
정책 충돌 체크 방법.
According to paragraph 4,
When the priority of the generated flow rule is the same as the priority of the target flow rule, comparing the action of the generated flow rule and the action of the target flow rule,
How to check policy conflict.
제5항에 있어서,
상기 생성된 플로우룰의 액션과 상기 타겟 플로우룰의 액션이 동일하고 상기 생성된 플로우룰의 지속 시간이 상기 타겟 플로우룰의 지속 시간 보다 큰 경우, 상기 타겟 플로우룰을 상기 플로우 테이블에서 삭제하고 상기 생성된 플로우룰을 상기 플로우 테이블에 삽입하는 단계를 더 포함하는,
정책 충돌 체크 방법.
According to clause 5,
If the action of the generated flow rule and the action of the target flow rule are the same and the duration of the generated flow rule is greater than the duration of the target flow rule, the target flow rule is deleted from the flow table and the generated Further comprising inserting the flow rule into the flow table,
How to check policy conflict.
제5항에 있어서,
상기 생성된 플로우룰의 액션과 상기 타겟 플로우룰의 액션이 동일하고 상기 생성된 플로우룰의 지속 시간이 상기 타겟 플로우룰의 지속 시간 보다 작은 경우, 상기 타겟 플로우룰을 상기 플로우 테이블에 유지하고 상기 생성된 플로우룰을 상기 플로우 테이블에 삽입하는 않는 단계를 더 포함하는,
정책 충돌 체크 방법.
According to clause 5,
If the action of the generated flow rule and the action of the target flow rule are the same and the duration of the generated flow rule is less than the duration of the target flow rule, the target flow rule is maintained in the flow table and the generated Further comprising the step of not inserting the flow rule into the flow table,
How to check policy conflict.
제5항에 있어서,
상기 생성된 플로우룰의 액션과 상기 타겟 플로우룰의 액션이 동일하지 않고 상기 생성된 플로우룰의 지속 시간이 상기 타겟 플로우룰의 지속 시간 보다 큰 경우, 상기 타겟 플로우룰을 상기 플로우 테이블에서 삭제하고 상기 생성된 플로우룰을 상기 플로우 테이블에 삽입하는 단계를 더 포함하는,
정책 충돌 체크 방법.
According to clause 5,
If the action of the generated flow rule and the action of the target flow rule are not the same and the duration of the generated flow rule is greater than the duration of the target flow rule, the target flow rule is deleted from the flow table and the Further comprising inserting the generated flow rule into the flow table,
How to check policy conflict.
제5항에 있어서,
상기 생성된 플로우룰의 액션과 상기 타겟 플로우룰의 액션이 동일하지 않고 상기 생성된 플로우룰의 지속 시간이 상기 타겟 플로우룰의 지속 시간 보다 작은 경우, 상기 타겟 플로우룰을 상기 플로우 테이블에 유지하고 상기 생성된 플로우룰을 상기 플로우 테이블에 삽입하지 않는 단계를 더 포함하는,
정책 충돌 체크 방법.
According to clause 5,
If the action of the generated flow rule and the action of the target flow rule are not the same and the duration of the generated flow rule is less than the duration of the target flow rule, the target flow rule is maintained in the flow table and the Further comprising the step of not inserting the generated flow rule into the flow table,
How to check policy conflict.
제2항에 있어서,
상기 디바이스 아이디를 비교하는 단계에서, 상기 생성된 플로우룰의 디바이스 아이디와 상기 타겟 플로우룰의 디바이스 아이디가 동일하지 않는 경우, 상기 타겟 플로우룰을 변경하여 상기 디바이스 아이디를 비교하는 단계를 다시 수행하는,
정책 충돌 체크 방법.
According to paragraph 2,
In the step of comparing the device IDs, if the device ID of the generated flow rule and the device ID of the target flow rule are not the same, the step of changing the target flow rule and comparing the device IDs is performed again.
How to check policy conflict.
제3항에 있어서,
상기 조건을 비교하는 단계에서, 상기 생성된 플로우룰의 조건과 상기 타겟 플로우룰의 조건이 동일하지 않은 경우, 상기 타겟 플로우룰을 변경하여 상기 디바이스 아이디를 비교하는 단계를 다시 수행하는,
정책 충돌 체크 방법.
According to paragraph 3,
In the step of comparing the conditions, if the conditions of the generated flow rule and the conditions of the target flow rule are not the same, changing the target flow rule and performing the step of comparing the device ID again.
How to check policy conflict.
제4항에 있어서,
상기 우선 순위를 비교하는 단계에서, 상기 생성된 플로우룰의 우선 순위와 상기 타겟 플로우룰의 우선 순위가 다른 경우, 상기 생성된 플로우룰과 상기 타겟 플로우룰 중에서 높은 우선 순위를 갖는 플로우룰만을 상기 플로우 테이블에 유지하는,
정책 충돌 체크 방법.
According to paragraph 4,
In the step of comparing the priorities, if the priorities of the generated flow rule and the target flow rule are different, only the flow rule with a higher priority among the generated flow rule and the target flow rule is used in the flow. kept on the table,
How to check policy conflict.
KR1020230035277A 2022-03-17 2023-03-17 Device and method for checking policy conflict on sdn KR20230136078A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220033459 2022-03-17
KR1020220033459 2022-03-17

Publications (1)

Publication Number Publication Date
KR20230136078A true KR20230136078A (en) 2023-09-26

Family

ID=88191267

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230035277A KR20230136078A (en) 2022-03-17 2023-03-17 Device and method for checking policy conflict on sdn

Country Status (1)

Country Link
KR (1) KR20230136078A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160121087A (en) 2015-04-10 2016-10-19 쿨클라우드(주) Aggregated routing method based on sdn and system thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160121087A (en) 2015-04-10 2016-10-19 쿨클라우드(주) Aggregated routing method based on sdn and system thereof

Similar Documents

Publication Publication Date Title
KR102424841B1 (en) Method for generating block chain and verifying integrity in smart contract system
Liu et al. Crystalnet: Faithfully emulating large production networks
US9893940B1 (en) Topologically aware network device configuration
CN114787781B (en) System and method for enabling high availability managed failover services
Ujcich et al. Cross-app poisoning in software-defined networking
KR102132539B1 (en) System for secure software defined networking(sdn) based on block-chain and the method thereof
KR20190111037A (en) Smart Contract Upgrade Method and System by Consortium Blockchain
CN109388630B (en) Database switching method, system, electronic device and computer readable medium
US20120005243A1 (en) Operating a Network Using Relational Database Methodology
KR20170022028A (en) Method and apparatus for security checking of image for container
US9658934B2 (en) Dynamic mechanism for fault injection for testing distributed systems
US10212034B1 (en) Automated network change management
US11068616B2 (en) Secure message handling
CN110199283B (en) System and method for authenticating platform trust in a network functions virtualization environment
US20240104213A1 (en) Securing node groups
US10771321B2 (en) Testing and delivering verification of network configurations
CN111258880A (en) System and method for configuration verification on live devices
US9774600B1 (en) Methods, systems, and computer readable mediums for managing infrastructure elements in a network system
Venâncio et al. VNF‐Consensus: A virtual network function for maintaining a consistent distributed software‐defined network control plane
KR20230136078A (en) Device and method for checking policy conflict on sdn
US9521134B2 (en) Control apparatus in software defined network and method for operating the same
Kriaa et al. Better safe than sorry: modeling reliability and security in replicated SDN controllers
US10063567B2 (en) System for cross-host, multi-thread session alignment
US11379434B2 (en) Efficient and automatic database patching using elevated privileges
US20230275931A1 (en) Dynamic management of role-based access control systems