KR101712168B1 - Method for controling packet-in message, switch and controller thereof - Google Patents
Method for controling packet-in message, switch and controller thereof Download PDFInfo
- Publication number
- KR101712168B1 KR101712168B1 KR1020150118969A KR20150118969A KR101712168B1 KR 101712168 B1 KR101712168 B1 KR 101712168B1 KR 1020150118969 A KR1020150118969 A KR 1020150118969A KR 20150118969 A KR20150118969 A KR 20150118969A KR 101712168 B1 KR101712168 B1 KR 101712168B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- message
- address
- flow
- switch
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/30—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
- H04L63/306—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications
Abstract
Description
본 발명은 패킷 입력 메시지 제어 방법, 이를 수행하는 스위치 및 컨트롤러에 관한 것으로서, 특히, 소프트웨어 정의 네트워크(Software Defined Network, SDN) 기반 네트워크에서 패킷 입력(PACKET_IN) 메시지 제어를 통한 스위치 및 컨트롤러의 안정성을 확보하는 기술에 관한 것이다.[0001] The present invention relates to a packet input message control method, a switch and a controller for performing the same, and more particularly, to a switch and a controller through packet input (PACKET_IN) message control in a Software Defined Network (SDN) Lt; / RTI >
오픈플로우(OpenFlow) 기술은 스위치의 고비용 문제를 해결하면서 사용자 또는 개발자에게 개방형 표준 인터페이스를 제공하기 위해 출현하였다. OpenFlow technology has emerged to provide an open standard interface to users or developers while addressing the high cost of the switch.
오픈플로우 기술은 네트워크 스위치의 패킷 포워딩 기능과 제어 기능을 분리하고, 두 기능 간의 통신을 위한 프로토콜을 제공함으로써, 외부 제어장치에 의하여 구동되는 소프트웨어가 장비 제조사에 무관하게 스위치 내의 패킷 경로를 결정할 수 있다.The open flow technology separates the packet forwarding and control functions of the network switch and provides a protocol for communication between the two functions so that the software driven by the external control device can determine the packet path in the switch regardless of the equipment manufacturer .
오픈플로우 시스템은 스위치(Switch)와 컨트롤러(Controller)를 포함하며, 스위치와 컨트롤러간에는 표준화된 오픈플로우 프로토콜을 사용하도록 구성하여 현재의 네트워크 기능을 수행하도록 구성한 것이 소프트웨어 정의 네트워크(Software Defined Network, 이하, SDN 이라 약칭함) 망이다.An open flow system includes a switch and a controller. The open flow system is configured to use a standardized open flow protocol between a switch and a controller to perform a current network function. A software defined network SDN) network.
일반적인 SDN에서의 네트워크 통신은 스위치가 새로운 패킷을 수신하면, 플로우 엔트리 테이블에 해당 패킷에 대한 처리가 정의되지 않은 경우 컨트롤러에게 해당 패킷의 일부를 포함한 패킷 입력(PACKET_IN) 메시지(OpenFlow Encapsulation된 Packet)를 컨트롤러로 전달한다. 메시지를 전달받은 컨트롤러는 패킷 입력(PACKET_IN)메시지를 분석하여 이를 처리하는 액션(Action)을 정의 한 후 이를 포함한 플로우 수정(FLOW_MOD) 메시지를 생성하여 스위치에게 전달한다. In normal SDN network communication, when a new packet is received by the switch and processing for the packet is not defined in the flow entry table, a packet input (PACKET_IN) message (OpenFlow Encapsulated Packet) including a part of the packet is sent to the controller To the controller. After receiving the message, the controller parses the packet input (PACKET_IN) message, defines an action to process it, generates a flow modification (FLOW_MOD) message including the action, and transmits the message to the switch.
스위치는 컨트롤러로부터 전달받은 플로우 수정(FLOW_MOD) 메시지에 따라 플로우 테이블(Flow Table)을 생성한다. 이후, 플로우 테이블에 정의된 정보와 동일한 필드 값(예, 인입 포트, MAC 주소, IP 주소 등)이 포함된 패킷이 수신되면 플로우 테이블에 정의된 액션을 따라 패킷을 처리한다.The switch creates a flow table according to the flow modification (FLOW_MOD) message received from the controller. Thereafter, when a packet including the same field value as the information defined in the flow table (for example, an incoming port, a MAC address, an IP address, etc.) is received, the packet is processed according to the action defined in the flow table.
그런데, 스위치에 인입되는 새로운 패킷(즉, 플로우 테이블에 저장된 정보와 상이한 필드 값들을 갖는 패킷)이 대량으로 발생할 경우, 스위치의 CPU 부하는 급격히 증가하여 다른 서비스 플로우들이 영향을 받을 수 있게 되어 서비스 장애로 이어질 수 있는 상황에 직면할 수도 있다. However, when a large number of new packets (that is, packets having different field values from the information stored in the flow table) are input to the switch, the CPU load of the switch is rapidly increased, so that other service flows may be affected, You may face a situation that could lead to
또한, 과도한 패킷 입력(PACKET_IN) 메시지를 컨트롤러가 수신하게 됨으로써 SDN 구조에서 중요한 역할을 하는 컨트롤러의 성능에도 영향을 미치게 된다. In addition, since the controller receives an excessive packet input (PACKET_IN) message, it also affects the performance of a controller that plays an important role in the SDN structure.
또한, 디도스(DDoS)와 같이 다중 클라이언트에서 발생되는 패킷들은 앞서 언급한 이유로 인해 모두 패킷 입력(PACKET_IN) 메시지로 들어오므로, 패킷 입력(PACKET_IN) 메시지들을 효과적으로 제어해야할 필요가 있다.In addition, packets generated from multiple clients such as DDoS are all input into a packet input (PACKET_IN) message for the reason mentioned above, so that it is necessary to effectively control packet input (PACKET_IN) messages.
따라서, 본 발명이 이루고자 하는 기술적 과제는 스위치의 CPU(Central Processing Unit) 사용량 및 트래픽양에 기초하여 스위치의 패킷 입력(PACKET_IN) 메시지의 제한 개수를 제어하는 패킷 입력 메시지 제어 방법, 이를 수행하는 스위치 및 컨트롤러를 제공하는 것이다.SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a packet input message control method for controlling a limited number of packet input (PACKET_IN) messages of a switch based on a CPU (Central Processing Unit) usage amount and a traffic amount of a switch, Controller.
본 발명의 하나의 특징에 따르면, 패킷 입력 메시지 제어 방법은 소프트웨어 정의 네트워크에서 스위치가 패킷 입력 메시지를 제어하는 방법으로서, 상기 스위치가 발신지로부터 수신한 수신 패킷과 매치되는 플로우 엔트리가 존재하는지 판단하는 단계, 상기 매치되는 플로우 엔트리가 존재하지 않으면, CPU(CENTRAL PROCESSING UNIT) 사용량이 임계치 미만인지 판단하는 단계, 그리고 상기 임계치 미만일 경우, 상기 수신 패킷에 대한 패킷 입력 메시지를 생성하여 컨트롤러 전송하는 단계를 포함한다. According to one aspect of the present invention, a method for controlling a packet input message includes the steps of: determining whether a switch has a flow entry matching a received packet received from a source, Determining whether a usage amount of the CPU (CENTRAL PROCESSING UNIT) is less than a threshold value if the matched flow entry does not exist, and generating a packet input message for the received packet if the matched value is less than the threshold, .
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,Prior to determining whether the matched flow entry is present,
디폴트 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 특정 개수로 설정하는 단계를 더 포함하고,Further comprising setting a certain number of packets per second (PPS) per default unit,
상기 전송하는 단계는, Wherein the transmitting comprises:
상기 특정 개수 이내에서 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함할 수 있다.And generating and transmitting a packet input message packet within the specific number.
상기 CPU 사용량이 임계치 미만인지 판단하는 단계 이후,After determining whether the CPU usage is below a threshold,
상기 임계치 이상인 경우, 상기 컨트롤러에게 상기 CPU 사용량을 보고하고 상기 CPU 사용량에 따라 재설정된 단위 초당 일정 패킷 수를 수신하는 단계를 더 포함하고,Reporting the CPU usage to the controller and receiving a predetermined number of packets per second reset in accordance with the CPU usage,
상기 전송하는 단계는,Wherein the transmitting comprises:
상기 재설정된 단위 초당 일정 패킷 수 이내로 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함할수 있다.And generating and transmitting a packet input message packet within a predetermined number of packets per second of the reset unit.
상기 특정 개수로 설정하는 단계 이후,After the setting of the specific number,
상기 CPU 사용량 및 트래픽양을 모니터링하는 단계, 모니터링한 상기 CPU 사용량 및 트래픽양을 상기 컨트롤러에게 보고하는 단계, 그리고 상기 CPU 사용량이 임계치를 초과할 경우 재설정된 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 단계를 더 포함하고,Monitoring the amount of CPU usage and amount of traffic, reporting the monitored CPU usage and amount of traffic to the controller, and receiving a predetermined number of packets per second reset unit when the CPU usage exceeds a threshold value Further comprising:
상기 전송하는 단계는,Wherein the transmitting comprises:
상기 재설정된 단위 초당 일정 패킷 수 이내로 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함할 수 있다.And generating and transmitting a packet input message packet within a predetermined number of packets per second of the reset unit.
상기 보고하는 단계는,Wherein said reporting comprises:
SNMP(Simple Network Management Protocol)를 통해 상기 컨트롤러에게 상기 CPU 사용량 및 상기 트래픽양을 보고할 수 있다.And can report the CPU usage amount and the traffic amount to the controller through SNMP (Simple Network Management Protocol).
상기 재설정된 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 단계는,Wherein the step of receiving from the controller a predetermined number of packets per second,
새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 재설정된 단위 초당 일정 패킷수를 수신할 수 있다.A predetermined number of packets per second can be received by using the newly defined open flow message or a newly defined application programming interface (API).
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,Prior to determining whether the matched flow entry is present,
상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계, 그리고 상기 블랙리스트 IP 주소에 포함되면, 상기 수신 패킷을 폐기하는 단계를 더 포함하고,Determining whether an IP address of the received packet is included in a blacklist IP address, and discarding the received packet if the IP address is included in the blacklist IP address,
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계는,Wherein determining whether the matched flow entry is present comprises:
상기 수신 패킷의 IP 주소가 상기 블랙리스트 IP 주소에 포함되지 않는 경우, 상기 수신 패킷에 매치되는 플로우 엔트리의 존재 여부를 판단할 수 있다.If the IP address of the received packet is not included in the black list IP address, it is possible to determine whether there is a flow entry matching the received packet.
상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계 이전에,Prior to determining whether the IP address of the received packet is included in the blacklisted IP address,
상기 컨트롤러에게 패킷 입력 메시지를 전송하는 단계, 블랙리스트에 포함된 IP 주소를 가지는 패킷을 차단시키는 액션이 정의된 플로우 수정 메시지를 수신하는 단계, 그리고 상기 플로우 수정 메시지에 따른 플로우 엔트리를 설정하는 단계를 더 포함하고,Transmitting a packet input message to the controller, receiving a flow modification message in which an action for blocking a packet having an IP address included in the black list is defined, and setting a flow entry according to the flow modification message Further included,
상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계는,Wherein the step of determining whether the IP address of the received packet is included in the blacklist IP address comprises:
상기 수신 패킷의 IP 주소가 상기 블랙리스트에 따른 플로우 엔트리에 매치되는지 판단할 수 있다.And determine whether the IP address of the received packet matches the flow entry according to the black list.
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에, Prior to determining whether the matched flow entry is present,
상기 컨트롤러에게 수신 패킷에 대한 패킷 입력 메시지를 전송하는 단계, 상기 컨트롤러부터 상기 수신 패킷의 목적지 IP 주소를 가지는 패킷에 대해 정의된 시간 동안 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 수정 메시지를 수신하는 단계, 그리고 상기 플로우 수정 메시지에 따라 상기 액션이 포함된 플로우 엔트리를 등록하는 단계를 더 포함하고,Transmitting a packet input message for a received packet to the controller, receiving a flow modification message defining an action for limiting generation of a packet input message for a time defined for a packet having a destination IP address of the received packet from the controller And registering the flow entry including the action according to the flow modification message,
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이후, After determining whether the matched flow entry exists,
발신지로부터 현재 수신된 패킷이 상기 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 엔트리에 매치되고, 정해진 시간이 만료하기 전이라면 상기 현재 수신된 패킷에 대한 패킷 입력 메시지 생성을 차단하는 단계, 그리고 상기 정해진 시간이 만료한 후에는 상기 플로우 엔트리를 폐기하는 단계를 더 포함할 수 있다.Blocking generation of a packet input message for the currently received packet if the currently received packet from the source matches the flow entry for which the action limiting the generation of the packet input message is defined and before the predetermined time has expired, And discarding the flow entry after the predetermined time has expired.
본 발명의 다른 특징에 따르면, 스위치는 소프트웨어 정의 네트워크의 스위치로서, 발신지로부터 수신한 수신 패킷과 매치되는 플로우 엔트리가 존재하는지 판단하고, 존재하면 해당하는 플로우 엔트리에 따라 상기 수신 패킷을 처리하는 패킷 처리부, 상기 매치되는 플로우 엔트리가 존재하지 않으면, CPU(CENTRAL PROCESSING UNIT) 사용량이 임계치 미만인지 판단하는 패킷 입력 메시지 제어부, 그리고 상기 임계치 미만일 경우, 상기 수신 패킷에 대한 패킷 입력 메시지를 생성하여 컨트롤러 전송하는 메시지 처리부를 포함한다.According to another aspect of the present invention, there is provided a switch of a software defined network, comprising: a packet processor for determining whether there is a flow entry matched with a received packet received from a source and, if so, processing the received packet according to a corresponding flow entry; A packet input message controller for determining whether a usage amount of the CPU (CENTRAL PROCESSING UNIT) is less than a threshold if the matched flow entry does not exist, and a controller for generating a packet input message for controller Processing unit.
상기 패킷 입력 메시지 제어부는,Wherein the packet input message controller comprises:
디폴트 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 특정 개수로 설정하고, 상기 특정 개수 이내로 상기 패킷 입력 메시지 패킷 생성을 제한할 수 있다.The number of packets per second (PPS) per default unit can be set to a specific number, and generation of the packet input message packet can be restricted within the specific number.
상기 스위치는 상기 CPU 사용량이 임계치 이상인 경우, 상기 컨트롤러에게 상기 CPU 사용량을 보고하고 상기 CPU 사용량에 따라 재설정된 단위 초당 일정 패킷 수를 수신하는 임계치 수신부를 더 포함하고,Wherein the switch further comprises a threshold receiver for reporting the CPU usage to the controller and receiving a predetermined number of packets per second reset in accordance with the CPU usage when the CPU usage is greater than or equal to a threshold,
상기 패킷 입력 메시지 제어부는,Wherein the packet input message controller comprises:
상기 재설정된 단위 초당 일정 패킷 수 이내로 상기 패킷 입력 메시지 패킷 생성을 제한할 수 있다.The generation of the packet input message packet may be restricted within a predetermined number of packets per second of the reset unit.
상기 임계치 수신부는, Wherein the threshold value receiver comprises:
새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 재설정된 단위 초당 일정 패킷수를 수신할 수 있다.A predetermined number of packets per second can be received by using the newly defined open flow message or a newly defined application programming interface (API).
상기 임계치 수신부는,Wherein the threshold value receiver comprises:
특정 포트의 트래픽양이 다른 포트의 트래픽양보다 N 배이상 많을 경우, 상기 특정 포트의 단위 초당 일정 패킷수를 1/N으로 재설정된 단위 초당 일정 패킷 수를 수신하여 상기 패킷 입력 메시지 제어부로 전달할 수 있다.When the amount of traffic of a specific port is N times or more than the amount of traffic of another port, a certain number of packets per second, which is reset to 1 / N, is transmitted to the packet input message controller have.
상기 임계치 수신부는,Wherein the threshold value receiver comprises:
포트 별로 서로 다르게 설정된 복수의 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신할 수 있다.It is possible to receive from the controller a predetermined number of packets per unit of a plurality of units set differently for each port.
같은 도메인의 스위치와 연결된 포트에 설정된 단위 초당 일정 패킷수가 외부와 연결된 포트에 설정된 단위 초당 일정 패킷수보다 낮게 설정될 수 있다.The number of packets per second set in a port connected to a switch in the same domain may be set lower than a predetermined number of packets per second set in a port connected to the outside.
상기 스위치는 상기 CPU 사용량 및 트래픽양을 모니터링하는 모니터링부, 그리고 상기 모니터링부로부터 제공받은 상기 CPU 사용량 및 트래픽양을 SNMP(Simple Network Management Protocol)를 통해 상기 컨트롤러에게 보고하는 SNMP 통신부를 더 포함할 수 있다.The switch may further include a monitoring unit for monitoring the CPU usage amount and an amount of traffic, and an SNMP communication unit reporting the CPU usage amount and the traffic amount provided from the monitoring unit to the controller through SNMP (Simple Network Management Protocol) have.
상기 스위치는 블랙리스트 IP 주소가 포함된 플로우 엔트리를 저장하는 플로우 테이블 저장부, 그리고 플로우 수정 메시지에 따라 상기 블랙리스트가 포함된 플로우 엔트리를 플로우 테이블 저장부에 등록하는 플로우 테이블 제어부를 더 포함하고, Wherein the switch further comprises a flow table storing unit for storing a flow entry including a black list IP address and a flow table controller for registering the flow entry including the black list in a flow table storing unit according to the flow modification message,
상기 메시지 처리부는, The message processing unit,
상기 컨트롤러에게 패킷 입력 메시지를 전송하여 블랙리스트에 포함된 IP 주소를 가지는 패킷을 차단시키는 액션이 정의된 플로우 수정 메시지를 수신하여 상기 플로우 테이블 제어부로 전달하고, Receiving a flow modification message defining an action for blocking a packet having an IP address included in the black list by transmitting a packet input message to the controller and delivering the flow modification message to the flow table controller,
상기 패킷 처리부는,The packet processing unit,
상기 플로우 테이블 저장부에 등록된 플로우 엔트리를 조회하여 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하고, 상기 블랙리스트 IP 주소에 포함되면, 상기 수신 패킷을 폐기할 수 있다.It is possible to inquire the flow entry registered in the flow table storage unit to determine whether the IP address of the received packet is included in the blacklist IP address and discard the received packet if the IP address is included in the blacklist IP address.
상기 메시지 처리부는, The message processing unit,
상기 컨트롤러에게 패킷 입력 메시지를 전송하여 정해진 시간 동안 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 수정 메시지를 수신하고, Receiving a flow modification message in which an action is defined for transmitting a packet input message to the controller to restrict generation of a packet input message for a predetermined time,
상기 플로우 테이블 제어부는, Wherein the flow table control unit comprises:
상기 플로우 수정 메시지에 따라 플로우 엔트리를 상기 플로우 테이블 저장부에 등록하며, 상기 정해진 시간이 만료한 후에는 상기 플로우 엔트리를 폐기하고,Registering the flow entry in the flow table storage unit according to the flow modification message, discarding the flow entry after the predetermined time has expired,
상기 패킷 처리부는, The packet processing unit,
발신지로부터 현재 수신된 패킷이 상기 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 엔트리에 매치되고, 정해진 시간이 만료하기 전이라면 상기 현재 수신된 패킷에 대한 패킷 입력 메시지 생성을 차단할 수 있다.It may block generation of a packet input message for the currently received packet if the currently received packet from the source matches the flow entry for which the action of restricting the generation of the packet input message is defined and before the predetermined time has expired.
본 발명의 또 다른 특징에 따르면, 컨트롤러는 소프트웨어 정의 네트워크의 컨트롤러로서, 상기 소프트웨어 정의 네트워크의 스위치의 CPU(CENTRAL PROCESSING UNIT) 사용량을 모니터링하는 모니터링부, 그리고 상기 CPU 사용량이 정해진 임계치를 초과하면, 상기 스위치가 패킷 입력 메시지 생성 패킷을 제한하기 위한 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 재설정하여 상기 스위치로 제공하는 임계치 설정부를 포함한다. According to another aspect of the present invention, a controller is a controller of a software defined network, comprising: a monitoring unit for monitoring a usage amount of a CPU (CENTRAL PROCESSING UNIT) of a switch of the software defined network; and, when the CPU usage exceeds a predetermined threshold, And a threshold setting unit for resetting the number of packets per second (PPS) for limiting the packet input message generating packet and providing the packet to the switch.
상기 임계치 설정부는,The threshold value setting unit may set,
단계 별로 서로 다른 복수의 임계치와 상기 CPU 사용량을 비교하고, 비교 결과에 따라 단계 별로 상기 단위 초당 일정 패킷 수(PPS)를 증감시킬 수 있다.A plurality of threshold values different from each other in steps may be compared with the CPU usage amount, and the predetermined number of packets per second (PPS) may be increased / decreased step by step according to the comparison result.
상기 컨트롤러는 상기 스위치로부터 SNMP(Simple Network Management Protocol)를 통해 상기 스위치의 CPU 사용량 및 트래픽양을 수신하여 상기 모니터링부로 전달하는 SNMP 통신부를 더 포함하고,The controller further includes an SNMP communication unit for receiving the CPU usage amount and the traffic amount of the switch from the switch through a Simple Network Management Protocol (SNMP) and transmitting the received amount to the monitoring unit,
상기 임계치 설정부는, The threshold value setting unit may set,
상기 CPU 사용량 및 트래픽양에 따라 재설정한 상기 단위 초당 일정 패킷 수(PPS)를 새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 스위치로 전달할 수 있다.It is possible to transmit the predetermined number of packets per second (PPS) reset according to the CPU usage amount and the traffic amount to the switch using a newly defined open flow message or a newly defined application programming interface (API).
상기 임계치 설정부는,The threshold value setting unit may set,
특정 포트의 트래픽양이 다른 포트의 트래픽양보다 N배 이상 많으면, 해당 포트의 단위 초당 일정 패킷 수를 1/N으로 설정할 수 있다.If the amount of traffic on a particular port is N times greater than the amount of traffic on another port, the number of packets per second per port can be set to 1 / N.
상기 임계치 설정부는,The threshold value setting unit may set,
같은 도메인의 스위치와 연결된 포트를 외부와 연결된 포트보다 우선순위를 높게 설정하고, 우선순위가 높은 포트의 단위 초당 일정 패킷수를 우선순위가 상대적으로 낮은 포트의 단위 초당 일정 패킷수보다 낮게 설정할 수 있다.It is possible to set the port connected to the switch of the same domain to be higher in priority than the port connected to the outside and set the number of certain packets per second unit of the higher priority port to be lower than the number of certain packets per unit of the port whose priority is relatively low .
상기 컨트롤러는 상기 스위치로부터 패킷 입력 메시지를 수신하고, 상기 스위치에게 플로우 수정 메시지를 전송하는 메시지 처리부, 그리고 보안 센터로부터 악의적인 트래픽을 발생시키는 IP 정보를 수집하여 블랙리스트를 생성하고, 상기 패킷 입력 메시지에 포함된 소스 IP 주소 및 목적지 IP 주소를 상기 블랙리스트와 비교하여 일치하면, 상기 블랙리스트에 포함된 IP 주소를 가진 패킷을 차단시키는 액션을 정의하는 플로우 규칙 생성부를 더 포함하고,The controller receives a packet input message from the switch and transmits a flow modification message to the switch, and generates a black list by collecting IP information generating malicious traffic from the security center, Further comprising a flow rule generator for defining an action for blocking a packet having an IP address included in the black list if the source IP address and the destination IP address included in the black list are compared with the black list,
상기 메시지 처리부는,The message processing unit,
상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송할 수 있다.A flow modification message including the action may be transmitted to the switch.
상기 컨트롤러는 상기 스위치로부터 패킷 입력 메시지를 수신하고, 상기 스위치에게 플로우 수정 메시지를 전송하는 메시지 처리부, 그리고 상기 패킷 입력 메시지로부터 추출한 인입 포트의 트래픽양 또는 CPU 사용량이 임계치를 초과하면, 상기 인입 포트, 상기 패킷 입력 메시지로부터 추출한 IP 주소로 구성된 IP 테이블을 생성하고, 상기 IP 주소를 가진 패킷에 대해 정해진 시간동안 패킷 입력 메시지 생성을 제한하는 액션을 정의하는 플로우 규칙 생성부를 더 포함하고,Wherein the controller comprises: a message processor for receiving a packet input message from the switch and transmitting a flow modification message to the switch; and, if the traffic volume or CPU usage of the incoming port extracted from the packet input message exceeds a threshold, Further comprising a flow rule generator for generating an IP table composed of IP addresses extracted from the packet input message and defining an action for restricting generation of a packet input message for a packet having the IP address for a predetermined time,
상기 메시지 처리부는, 상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송할 수 있다.The message processing unit may transmit the flow modification message including the action to the switch.
본 발명의 실시예에 따르면, SDN 기반 네트워크 장비의 새로운 연결 요청에 따른 과도한 패킷 입력(PACKET_IN) 메시지를 실시간으로 확인하고 제어함으로써, 기가 오피스(GiGA office) 네트워크 장비(컨트롤러 및 스위치)의 CPU 부하로 인한 장애를 사전에 예방할 수 있고 더불어 여러 고객들에게 서비스를 안정적으로 제공할 수 있다.According to the embodiment of the present invention, an excessive packet input (PACKET_IN) message according to a new connection request of the SDN-based network equipment is confirmed and controlled in real time, and thereby the CPU load of the GiGA office network equipment (controller and switch) It is possible to prevent malfunctions in advance and to provide services to various customers in a stable manner.
또한, SDN 기반 네트워크 장치(스위치, 컨트롤러)의 안정성을 제공할 뿐만 아니라 SDN 망에서 디오스(DDoS)와 같은 악의적인 트래픽들을 효과적으로 차단할 수 있다.In addition to providing stability of SDN-based network devices (switches, controllers), it can effectively block malicious traffic such as DDoS in the SDN network.
도 1은 본 발명의 일실시예에 따른 SDN(Software Defined Network) 네트워크 시스템의 구성도이다.
도 2는 도 1의 컨트롤러의 세부 구성을 나타낸 블록도이다.
도 3은 도 1의 스위치의 세부 구성을 나타낸 블록도이다.
도 4는 본 발명의 한 실시예에 따른 패킷 입력 메시지의 구조를 나타낸다.
도 5는 본 발명의 실시예에 따른 패킷 입력 메시지 제어 방법을 나타낸 순서도이다.
도 6은 본 발명의 한 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 7은 본 발명의 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 8은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 9는 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 10은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 11은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다. 1 is a configuration diagram of a SDN (Software Defined Network) network system according to an embodiment of the present invention.
2 is a block diagram showing the detailed configuration of the controller of Fig.
3 is a block diagram showing a detailed configuration of the switch of FIG.
4 illustrates a structure of a packet input message according to an embodiment of the present invention.
5 is a flowchart illustrating a method of controlling a packet input message according to an embodiment of the present invention.
6 is a flowchart illustrating a method of setting a packet input message control condition according to an embodiment of the present invention.
7 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.
8 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.
9 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.
10 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.
11 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when an element is referred to as "comprising ", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise.
또한, 명세서에 기재된 "…부", "…모듈" 의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Also, the terms of " part ", "... module" in the description mean units for processing at least one function or operation, which may be implemented by hardware or software or a combination of hardware and software.
이하, 도면을 참조로 하여 본 발명의 실시예에 따른 패킷 입력 메시지 제어 방법, 이를 수행하는 스위치 및 컨트롤러에 대하여 상세히 설명한다.Hereinafter, a method of controlling a packet input message according to an embodiment of the present invention, a switch and a controller for performing the method will be described in detail with reference to the drawings.
도 1은 본 발명의 일실시예에 따른 SDN(Software Defined Network) 네트워크 시스템의 구성도이다.1 is a configuration diagram of a SDN (Software Defined Network) network system according to an embodiment of the present invention.
도 1을 참조하면, SDN 네트워크는 컨트롤러(Contoller)(100) 및 복수의 스위치(Switch)(200)를 포함한다. Referring to FIG. 1, an SDN network includes a
컨트롤러(100)는 SDN 네트워크에서 복수의 스위치(200)의 경로 제어를 실행하는 서버 장치이지만, 물리적인 구현 형태나 구현 위치 등에 의해 한정되지 않는다. The
컨트롤러(100)는 SDN 네트워크 내의 복수의 스위치(200)를 감시하고, 통신 상황에 따라서 SDN 네트워크 내의 복수의 스위치(200)로의 패킷의 전송 경로를 동적으로 설정한다. 컨트롤러(100)는 오픈 플로우 프로토콜(Openflow Protocol) 메시지를 이용하여 플로우 테이블을 작성함으로써 스위치 상의 흐름을 등록한다. The
컨트롤러(100)는 복수의 스위치(200)의 플로우 테이블에 대한 정보를 추가, 변경, 삭제 하기 위한 요청을 복수의 스위치(200)로 할 수 있다.The
여기서, 플로우는 미리 정해진 규칙에 따르는 패킷에 대하여 행해야 할 미리 정해진 액션을 정의한다. 플로우의 규칙은 패킷 프레임의 헤더 영역에 포함되는 수신처 어드레스, 송신원 어드레스, 수신처 포트, 송신원 포트 중 임의의 것 또는 모두의 다양한 조합들에 의해 정의되고, 규칙은 식별 가능하다. Here, the flow defines a predetermined action to be performed on a packet conforming to a predetermined rule. The rules of the flow are defined by various combinations of any or all of the destination address, the source address, the destination port, and the source port included in the header area of the packet frame, and the rule is identifiable.
복수의 스위치(200)는 SDN 네트워크 내의 스위칭 노드로서, 발신지(300)로부터 수신된 패킷을 자신의 플로우 테이블에 등록된 플로우 엔트리에 따라 목적지(400)로 전송한다. 이때, 발신지(300), 목적지(400)는 네트워크 디바이스 또는 서버일 수 있다.The plurality of
스위치1(200-1)은 발신지(300)로부터 패킷을 수신(①)하면, 수신된 패킷에 해당하는 플로우 엔트리가 플로우 테이블에 등록되어 있는지 확인한다. 만약, 등록되어 있지 않다면, 수신된 패킷에 해당하는 플로우 엔트리를 문의하는 패킷 입력(PACKET_IN) 메시지를 컨트롤러(100)로 전송한다(②). When the switch 1 (200-1) receives a packet from the source 300 (①), it checks whether the flow entry corresponding to the received packet is registered in the flow table. If it is not registered, the
컨트롤러(100)는 수신된 패킷 입력(PACKET_IN) 메시지 해석을 통해 스위치1(200-1)이 수신한 패킷의 소스 IP 주소, 목적지 IP 주소 등을 참조로 하여 스위치1(200-1)이 수신한 패킷에 대한 플로우 제어 정보를 새로이 생성한다. 그리고 스위치1(200-1)이 이후 동일한 필드를 가진 패킷에 대해 수행되어야 하는 액션(Action)을 정의한 플로우 수정(FLOW_MOD) 메시지를 스위치1(200-1)으로 전송한다(③). 여기서, 플로우 수정(FLOW_MOD) 메시지는 스위치1(200-1)의 플로우 테이블에 대하여 플로우 엔트리를 설정(추가, 변경, 삭제)하거나 플로우 테이블을 작성하기 위한 메시지이다.The
스위치1(200-1)은 플로우 수정(FLOW_MOD) 메시지에 의해 설정된 플로우 엔트리에 따라 수신된 패킷을 스위치2(200-3)으로 전송한다(④) The switch 1 (200-1) transmits the received packet to the switch 2 (200-3) according to the flow entry set by the flow modification (FLOW_MOD) message (4)
스위치2(200-3)는 수신된 패킷에 해당하는 플로우 엔트리가 플로우 테이블에 등록되어 있지 않다면, 수신된 패킷에 해당하는 플로우 엔트리를 문의하는 패킷 입력(PACKET_IN) 메시지를 컨트롤러(100)로 전송한다(⑤).If the flow entry corresponding to the received packet is not registered in the flow table, the switch 2 (200-3) transmits to the controller 100 a packet input (PACKET_IN) message inquiring about the flow entry corresponding to the received packet (⑤).
컨트롤러(100)는 수신된 패킷 입력(PACKET_IN) 메시지 해석을 통해 액션(Action)을 정의한 플로우 수정(FLOW_MOD) 메시지를 스위치2(200-3)으로 전송한다(⑥). 그러면, 스위치2(200-3)는 수신된 패킷을 플로우 수정(FLOW_MOD) 메시지에 의해 설정된 플로우 엔트리에 따라 목적지(400)로 전송한다(⑦) The
도 2는 도 1의 컨트롤러의 세부 구성을 나타낸 블록도이다. 2 is a block diagram showing the detailed configuration of the controller of Fig.
도 2를 참조하면, 컨트롤러(100)는 메시지 처리부(101), 플로우 규칙 생성부(103), SNMP(Simple Network Management Protocol) 통신부(105) 및 임계치 설정부(107)를 포함한다. 2, the
메시지 처리부(101)는 스위치(200)로부터 패킷 입력 메시지를 수신하고, 스위치(200)에게 플로우 수정 메시지를 전송한다. 메시지 처리부(101)는 수신된 패킷 입력 메시지를 플로우 규칙 생성부(103)로 전달한다. 메시지 처리부(101)는 플로우 규칙 생성부(103)로부터 전달받은 플로우 규칙(또는 액션)을 포함하는 플로우 수정 메시지를 생성하고 전송한다.The message processing unit 101 receives a packet input message from the
플로우 규칙 생성부(103)는 국가사이버안전센터(Security Center)(미도시)로부터 제공받은 악의적인 트래픽에 관한 IP 주소로 구성된 블랙리스트(Black List)를 관리한다. 그리고 스위치(200)로부터 수신된 패킷 입력(PACKET_IN) 메시지의 소스 IP 주소 및 목적지 IP 주소가 블랙리스트(Black List)에 포함되어 있으면, 동일한 필드를 가진 패킷에 대해 차단(Drop) 시키는 액션(Action)을 정의한다.The flow
또한, 플로우 규칙 생성부(103)는 스위치(200)에 플로우 테이블에 등록되지 않은 패킷이 수신되면, 스위치(200)의 CPU 사용량 및 전체 트래픽의 임계치를 초과하는지 판단하고, 초과하지 않으면, 패킷 입력(PACKET_IN) 메시지를 컨트롤러(100)로 전송하지만, 초과하면, 스위치(200)의 CPU 사용량 및 전체 트래픽이 임계치 미만이 될 때까지 패킷 입력(PACKET_IN) 메시지의 개수를 제한하는 액션을 정의한다.When a packet not registered in the flow table is received in the
또한, 플로우 규칙 생성부(103)는 스위치(200)의 CPU 사용량 및 전체 트래픽이 임계치 미만이 될때될 때까지 인입 트래픽이 많은 특정 포트에 대한 패킷 입력(PACKET_IN) 메시지의 개수 제한을 다른 포트보다 적게 하여 해당하는 특정 포트로 인입되는 새로운 트래픽을 제한하는 액션을 정의한다.In addition, the flow
또한, 플로우 규칙 생성부(103)는 스위치(200)의 CPU 사용량 및 전체 트래픽이 임계치를 초과하면, 특정 목적지 IP 주소에 대해 패킷 입력(PACKET_IN) 메시지를 일정 시간 동안 생성하지 않고 폐기(Drop)하는 액션을 정의한다. The flow
또한, 플로우 규칙 생성부(103)는 스위치(200)의 CPU 사용량 또는 전체 트래픽이 임계치를 넘어서는 경우, IP 테이블의 패킷 입력(PACKET_IN) 메시지 수가 많은 목적지 주소에 대해「SRC_IP=*, DST_IP=목적지 IP, action=meter_id」인 플로우 규칙을 정의한다. 그리고 플로우 수정(FLOW_MOD) 메시지의 hard_timeout을 활용하여 특정 시간 동안 패킷 입력(PACKET_IN) 메시지를 차단한 후, DST_IP=목적지 IP로 향하는 신규 패킷은 목적지로 직접 전달되도록 하는 액션을 정의한다.When the CPU usage amount of the
SNMP 통신부(105)는 스위치(200)로부터 스위치(200)의 CPU 사용량 및 트래픽양을 SNMP 통신을 통해 수신하여 모니터링부(109)로 전달한다. The
임계치 설정부(107)는 모니터링부(109)가 모니터링한 스위치(200)의 CPU 사용량 및 트래픽양이 임계치를 초과하는지 판단하고, 초과하는 경우, 스위치(200)의 PPS를 재설정하여 스위치(200)로 제공한다. The threshold
임계치 설정부(107)는 CPU 사용량이나 트래픽 양이 특정 임계치를 넘어설 때마다 PPS를 조정함으로써, 스위치(200)에서 처리 가능한 패킷 입력(PACKET_IN) 메시지의 개수를 줄여간다. The threshold
임계치 설정부(107)는 PPS=N/M으로 설정할 수 있다. 여기서, PPS의 디폴트 개수는 N이고, M은 사용자 정의 수치이다. 즉, 디폴드 PPS 개수(N)을 사용자 정의 수치(M)으로 나누어 스위치(200)가 컨트롤러(100)에게 전달하는 초당 패킷 입력 메시지 개수를 줄여가는 것이다. The threshold
예를 들어, 최초 패킷 입력(PACKET_IN) 메시지의 제한 개수(PPS)를 N으로 가정하자. CPU 사용량이 50%인 경우 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 N/2로 하고, CPU 사용량이 60%일 경우 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 N/3으로 하고, CPU 사용량이 90% 이상일 경우 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 CPU 사용량이 80% 이하로 내려갈 때까지 0으로 설정한다. 트래픽 양에 대해서도 동일한 방법을 통해 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 조정한다. For example, assume that the limit number PPS of the first packet input (PACKET_IN) message is N. When the CPU usage is 50%, the packet input (PACKET_IN) message limitation number (PPS) is set to N / 2, and when the CPU usage is 60%, the packet input (PACKET_IN) message limitation number (PPS) If the CPU usage is more than 90%, set the packet input (PACKET_IN) message limit (PPS) to 0 until the CPU usage drops below 80%. The PPS (PACKET_IN) message limit number (PPS) is also adjusted for the amount of traffic through the same method.
PPS가 높을수록 스위치(200)의 CPU 부하는 증가하므로, 임계치 설정부(107)는 CPU 부하가 증가할 수록 PPS 임계치를 낮추는 것이다. 스위치(200)가 패킷 입력(PACKET_IN) 메시지를 처리하려면, 스위치(200)의 CPU를 이용한다. 그런데 PPS가 특정 수치 즉 임계치 이상이 되면, 스위치(200)의 CPU가 급속하게 증가하게 되며 패킷 입력(PACKET_IN) 메시지를 정상적으로 생성할 수 없게 된다. 예를 들면, PPS를 5,000개 정도로 할 때에는 CPU 부하가 거의 없지만, 10,000개 정도가 되면, CPU 부하가 상당히 발생하므로, 스위치(200)에서 인입되는 패킷에 대해 정상적인 동작을 하지 못할 수 있다. 따라서, 스위치(200)는 PPS 임계치와 비교하여 패킷 입력(PACKET_IN) 메시지의 생성 여부를 결정함으로써, 결국 스위치(200)의 부하를 경감시킬 수 있다. Since the CPU load of the
또한, 임계치 설정부(107)는 동일한 도메인에 있는 위치와 연결된 스위치 포트는 외부와 연결된 스위치 포트보다 우선 순위를 높게 잡아 우선 순위가 높은 포트의 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 외부와 연결된 포트의 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)보다 크게 설정한다.In addition, the threshold
이러한 구성 요소에 대한 설명은 도 5~ 도 12를 참고하여 더욱 자세히 후술한다.The description of these components will be described later in more detail with reference to Figs. 5 to 12. Fig.
도 3은 도 1의 스위치의 세부 구성을 나타낸 블록도이다.3 is a block diagram showing a detailed configuration of the switch of FIG.
도 3을 참조하면, 복수의 스위치(200)는 패킷 수신부(201), 패킷 처리부(203), 패킷 전송부(205), 플로우 테이블 저장부(207), 플로우 테이블 제어부(209), 메시지 처리부(211), 패킷 입력 메시지 제어부(213), 임계치 수신부(215), SNMP 통신부(217) 및 모니터링부(219)를 포함한다. 3, the plurality of
패킷 수신부(201)는 발신지(300)로부터 패킷을 수신한다. 그리고 수신한 패킷을 패킷 처리부(203)로 전달한다.The
패킷 처리부(203)는 수신 패킷으로부터 플로우 정보를 추출한다. 그리고 플로우 정보에 매치되는 플로우 엔트리가 플로우 테이블 저장부(207)에 등록되어 있는지 판단한다. 등록되어 있다면, 패킷 전송부(205)는 플로우 정보에 매치되는 플로우 엔트리에 따라 수신 패킷을 목적지(400)로 전송한다. The
반면, 등록되어 있지 않다면, 패킷 처리부(203)는 메시지 처리부(211)에게 패킷 입력(PACKET_IN) 메시지 생성을 요청한다.On the other hand, if not registered, the
플로우 테이블 저장부(207)는 복수개의 플로우 엔트리로 구성된 플로우 테이블을 저장한다. 매치 필드(Match Fields), 카운터(Counters), 액션(Actions) 정보로 구성된 것이 플로우 엔트리이며, 컨트롤러(100)로부터 제공받은 플로우 엔트리들은 스위치(200) 내에서 플로우 테이블을 구성할 수 있다.The flow
매치 필드에는 스위치(200)의 포트, 이더넷(ethernet) 및 프로토콜 정보, 소스(즉, 출발지)(source) 및 데스티네이션(즉, 목적지)(destination)의 MAC 주소, IP 주소, 포트 및 우선순위 등의 정보가 저장될 수 있다.The match field includes the MAC address, IP address, port, priority, etc. of the
패킷 처리부(203)는 스위치(200)로 유입되는 수신 패킷으로부터 추출한 플로우 정보와 플로우 테이블의 매치 필드의 정보를 비교하여 수신 패킷에 관한 플로우 제어 정보가 플로우 테이블 내에 존재하는지 여부를 판단한다.The
액션(actions)은 스위치(200)로 유입되는 패킷의 정보와 플로우 테이블의 매치 필드의 정보가 매칭될 때 해당 패킷을 어떻게 처리할지에 관한 정보를 포함하며, 컨트롤러(100)의 플로우 규칙 생성부(103)에 의해 정의된다.Actions include information on how to process the packet when the information of the packet flowing into the
카운터(Counters)는 플로우 엔트리 별로 송수신되는 트래픽의 양을 나타내는 것으로, 컨트롤러(100)가 패킷의 통신 경로를 계산할 때 매개 변수로 이용할 수도 있다.The counters indicate the amount of traffic transmitted and received per flow entry, and may be used as a parameter when the
플로우 테이블 제어부(209)는 메시지 처리부(211)를 통하여 컨트롤러(100)로부터 전달받은 플로우 수정 메시지에서 지정된 처리(즉, 플로우 엔트리의 추가, 삭제 및 변경 중 어느 하나)를 행한다.The flow
패킷 입력 메시지 제어부(213)는 플로우 테이블 저장부(207)에 저장된 액션에 따라 패킷 입력 메시지 생성을 제한한다. The packet input
임계치 수신부(215)는 컨트롤러(100)로부터 임계치 PPS 값을 수신한다. 이때, 기본 값은 PPS는 N으로 설정되어 있다.The threshold
SNMP 통신부(217)는 모니터링부(219)가 모니터링한 스위치(200)의 CPU 사용량 및 트래픽양을 컨트롤러(100)로 보고한다.The
모니터링부(219)는 스위치(200)의 CPU 사용량 및 트래픽양을 모니터링하고, 모니터링 결과를 SNMMP 통신부(217)로 전달한다. The
이러한 구성 요소에 대한 설명은 도 5~ 도 12를 참고하여 더욱 자세히 후술한다.The description of these components will be described later in more detail with reference to Figs. 5 to 12. Fig.
도 4는 본 발명의 한 실시예에 따른 패킷 입력(PACKET_IN) 메시지의 구조를 나타낸다. 4 shows a structure of a packet input (PACKET_IN) message according to an embodiment of the present invention.
도 4를 참조하면, 각각의 필드는 버퍼 ID(buffer_id), 전체 길이(total_len), 사유(reason), 테이블 ID(tbl_id), 쿠키(cookie), 매치 필드(Match Fields), 패드(pad), 데이터(data) 필드로 구성되며, 발신지(3000로부터 수신한 데이터(Data) 패킷의 일부를 포함한다. 패킷 입력(PACKET_IN) 메시지는 오픈 플로우(OpenFlow) 버전별 조금씩 상이하며 도 4의 구조는 버전 1.3의 구조이다.4, each field includes a buffer ID, a total length, a reason, a table ID tbl_id, a cookie, a match field, a pad, Data field and includes a portion of the data packet received from the source 3000. The packet input (PACKET_IN) message is slightly different for each OpenFlow version, and the structure of FIG. .
이때, 매치 필드(Match Fields), 카운터(Counters), 액션(Actions) 정보로 구성된 것이 플로우 엔트리이며, 컨트롤러(100)로부터 제공받은 플로우 엔트리들은 스위치(200) 내에서 플로우 테이블을 구성할 수 있다. At this time, it is a flow entry composed of Match Fields, Counters, and Actions information, and the flow entries provided from the
여기서, 매치 필드에는 스위치(200)의 포트, 이더넷(ethernet) 및 프로토콜 정보, 소스(즉, 출발지)(source) 및 데스티네이션(즉, 목적지)(destination)의 MAC 주소, IP 주소, 포트 및 우선순위 등의 정보가 저장될 수 있다.Here, the match field includes a MAC address, an IP address, a port, and a priority of the
스위치(200)는 유입되는 패킷의 정보와 플로우 테이블의 매치 필드의 정보를 비교하여 해당 패킷에 관한 플로우 제어 정보가 플로우 테이블 내에 존재하는지 여부를 판단할 수 있다. 액션(actions)은 오픈 플로우 스위치(200)로 유입되는 패킷의 정보와 플로우 테이블의 매치 필드의 정보가 매칭될 때 해당 패킷을 어떻게 처리할지에 관한 정보를 포함할 수 있다.The
카운터(Counters)는 플로우 엔트리 별로 송수신되는 트래픽의 양을 나타내는 것으로, 컨트롤러(100)가 패킷의 통신 경로를 계산할 때 매개 변수로 이용할 수도 있다.The counters indicate the amount of traffic transmitted and received per flow entry, and may be used as a parameter when the
도 5는 본 발명의 실시예에 따른 패킷 입력 메시지 제어 방법을 나타낸 순서도로서, 스위치(200)의 동작을 나타낸 것이다. FIG. 5 is a flowchart illustrating a method of controlling a packet input message according to an embodiment of the present invention, illustrating the operation of the
도 5를 참조하면, 패킷 입력 메시지 제어부(213)가 단위 초당 일정 패킷(Packet Per Seconds, 이하, 'PPS'라 통칭함)의 개수를 임계치(N)로 설정한다(S101). 여기서, 'PPS=N'은 스위치(200)에서 컨트롤러(100)에게 전달할 수 있는 패킷 입력(PACKET_IN) 메시지를 초당 패킷의 개수는 N으로 설정된다는 것을 의미한다. 즉, N을 초과할 수 없다는 의미도 된다.Referring to FIG. 5, the packet
패킷 수신부(201)가 발신지(300)로부터 패킷을 수신(S103)하면, 수신 패킷을 패킷 처리부(203)로 전달한다. 패킷 처리부(203)는 수신 패킷의 IP 주소가 블랙리스트에 포함되는지를 판단한다(S105). When the
여기서, 블랙리스트는 악의적인 트래픽을 발생시키는 소스 IP 주소 및 목적지 IP 주소를 포함하며, 플로우 테이블 저장부(207)에 저장된 플로우 테이블에 포함되어 있다.Here, the black list includes a source IP address and a destination IP address for generating malicious traffic, and is included in a flow table stored in the flow
패킷 처리부(203)는 수신 패킷의 IP 주소, 즉, 소스 IP 주소 또는 목적지 IP 주소가 블랙리스트에 포함되어 있으면, 수신 패킷을 폐기 처리한다(S107).If the IP address of the received packet, that is, the source IP address or the destination IP address is included in the black list, the
반면, S109 단계에서 블랙리스트 IP 주소에 포함되지 않는 경우로 판단되면, 패킷 처리부(203)는 수신 패킷으로부터 플로우 정보를 추출한다. 플로우 정보는 스위치(200)의 패킷 유입 포트인 인입 포트(Ingress Port)의 식별 정보, 패킷 헤더 정보(송신원 및 목적지의 IP 주소, MAC 주소, 포트, 및 VLAN 정보 등) 및 메타데이터 등을 포함할 수 있다.On the other hand, if it is determined in step S109 that the IP address is not included in the black list IP address, the
패킷 처리부(203)는 플로우 정보를 토대로 플로우 테이블 저장부(207)를 조회하여 매치되는 수신 패킷에 매치되는 플로우 엔트리가 존재하는지 판단한다(S109).The
이때, 매치되는 플로우 엔트리가 존재하면, 패킷 처리부(203)는 매치되는 플로우 엔트리에 따라 수신 패킷을 처리한다(S111). 패킷 전송부(205)는 플로우 엔트리에 설정된 패킷 경로로 수신 패킷을 전송한다.At this time, if there is a matched flow entry, the
반면, 매치되는 플로우 엔트리가 존재하지 않으면, 패킷 처리부(203)는 메시지 처리부(211)에게 패킷 입력(PACKET_IN) 메시지 전송을 요청한다. On the other hand, if there is no matched flow entry, the
메시지 처리부(211)가 패킷 입력(PACKET_IN) 메시지를 생성하기 전에 패킷 입력 메시지 제어부(213)는 모니터링부(219)가 모니터링(S113)한 CPU 사용량이 임계치 미만인지를 판단한다(S115). Before the
CPU 사용량이 임계치를 초과하면, 패킷 입력 메시지 제어부(213)는 PPS를 재설정한다(S117). 즉, SNMP 통신부(217)는 모니터링한 CPU 사용량 및 트래픽 양을 컨트롤러(100)로 보고하고, 임계치 수신부(215)는 재설정된 PPS를 수신하여 패킷 입력 메시지 제어부(213)로 전달한다. If the CPU usage exceeds the threshold value, the packet
패킷 입력 메시지 제어부(213)는 PPS 이내에서 패킷 입력 메시지에 대한 생성 패킷의 개수를 제어한다. 즉, PPS를 초과하는 패킷 입력 메시지 생성은 하지 않는다. 이런 경우, 수신 패킷은 폐기된다. The packet input
반면, S115 단계에서 임계치 미만이면, 메시지 처리부(211)는 패킷 입력(PACKET_IN) 메시지를 생성(S119)하여 컨트롤러(100)에게 전송한다(S121).On the other hand, if it is less than the threshold value in step S115, the
메시지 처리부(211)는 컨트롤러(100)로부터 수신 패킷에 대한 플로우 엔트리가 포함된 플로우 수정(FLOW_MOD) 메시지를 수신(S123)하여 플로우 테이블 제어부(209)로 전달한다. 그러면, 플로우 테이블 제어부(209)는 플로우 엔트리를 플로우 테이블 저장부(207)에 등록한다(S125). 그리고 패킷 처리부(203)는 등록된 플로우 엔트리에 따라 수신 패킷을 처리한다(S127). 패킷 전송부(205)는 등록된 플로우 엔트리에 설정된 패킷 경로로 수신 패킷을 전송한다.The
도 6은 본 발명의 한 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100) 및 스위치(200)의 연계 동작을 나타낸 것이다. 특히, 도 5의 블랙리스트 조건을 설정하는 과정을 나타낸다.FIG. 6 is a flowchart illustrating a method of setting a packet input message control condition according to an embodiment of the present invention, and shows a linking operation of the
도 6을 참조하면, 컨트롤러(100)의 플로우 규칙 생성부(103)는 보안 센터(미도시)로부터 악의적인 트래픽을 발생시키는 IP 정보, 즉, 소스 IP 주소 및 목적지 IP 주소를 수집한다(S201). 그리고 수집한 IP 정보를 토대로 블랙리스트를 생성(S203)하여 저장한다.6, the flow
여기서, 디도스(DdoS)와 같은 악의적인 트래픽(Traffic)이 발생하면, 국가사이버 안전센터(Security Center)에서는 국내 주요 인터넷 서비스 제공자(Internet Sercice Provider, ISP)(KT, SKT, LG U+)에게 악의적인 트래픽에 관한 IP 등의 정보를 전달한다. 플로우 규칙 생성부(103)는 국가사이버 안전센터로부터 전달받은 정보 중에서 디도스(DdoS)를 발생시키는 좀비 PC에 대한 IP 정보와 중앙에서 좀비 PC를 제어하는 단말에 대한 IP 정보를 확인할 수 있다.Here, when malicious traffic such as DdoS occurs, the National Cyber Security Center sends malicious (or illegal) information to the domestic Internet service provider (ISP) (KT, SKT, LG U + And information about the IP traffic. The flow
컨트롤러(100)는 악성 IP에 대한 정보가 갱신될 때마다 블랙리스트를 업데이트하여 스위치(200)에게 플로우 규칙(Flow Rule)을 미리 설정한다.The
여기서, 플로우 규칙 설정은 컨트롤러(100)에서 스위치(200)로부터 수신한 패킷 입력(PACKET_IN) 메시지를 통해 플로우 수정 메시지를 스위치(200)로 전송함으로써, 구현된다.Here, the flow rule setting is implemented by transmitting the flow modification message to the
즉, 메시지 처리부(101)가 스위치(200)로부터 패킷 입력(PACKET_IN) 메시지를 수신한다(S205). 플로우 규칙 생성부(103)는 패킷 입력(PACKET_IN) 메시지에 포함된 소스 IP 주소 및 목적지 IP 주소를 S203 단계에서 생성한 블랙리스트와 비교(S207)하여 일치 여부를 판단한다(S209).That is, the message processing unit 101 receives a packet input (PACKET_IN) message from the switch 200 (S205). The flow
이때, 일치하면, 플로우 규칙 생성부(103)는 블랙리스트에 포함된 IP 주소를 가진 패킷을 차단시키는 액션을 정의한다(S211). 그리고 메시지 처리부(101)는 정의된 액션이 포함된 플로우 수정 메시지를 스위치(200)로 전송한다(S213).At this time, if there is a match, the flow
스위치(200)의 플로우 테이블 제어부(209)는 S213 단계에서 수신한 플로우 수정 메시지에 따라 설정된 플로우 엔트리를 플로우 테이블 저장부(207)에 등록한다(S215). 이처럼, 등록된 플로우 엔트리에 따라 도 5의 S105 단계 및 S107 단계를 수행한다. 등록된 플로우 엔트리에는 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되면, 수신 패킷을 폐기하는 액션이 정의되어 있다.The flow
반면, S209 단계에서 일치하지 않으면, 플로우 규칙 생성부(103)는 패킷 입력(PACKET_IN) 메시지에 포함된 수신 패킷의 정보를 토대로 액션을 정의한다(S217). 그리고 메시지 처리부(101)는 정의된 액션이 포함된 플로우 수정 메시지를 스위치(200)로 전송한다(S219).On the other hand, if they do not match in step S209, the flow
스위치(200)의 플로우 테이블 제어부(209)는 S219 단계에서 수신한 플로우 수정 메시지에 따라 설정된 플로우 엔트리를 플로우 테이블 저장부(207)에 등록한다(S221).The flow
도 6의 각 단계(S201 ~ S3221)는 도 5의 각 단계(S101 ~ S125)와 병렬로 수행될 수 있다.Steps S201 to S3221 of FIG. 6 may be performed in parallel with steps S101 to S125 of FIG.
도 7은 본 발명의 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100) 및 스위치(200)의 연계 동작을 나타낸 것이다. 특히, 스위치(200)의 CPU 사용량을 모니터링한 결과를 토대로 도 5의 PPS 임계치를 재설정하는 과정을 나타낸다.FIG. 7 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows a linking operation of the
도 7을 참조하면, 스위치(200)의 모니터링부(219)는 CPU 사용량 및 트래픽양을 실시간 모니터링한다(S301). 그리고 SNMP 통신부(217)는 SNMP를 이용하여 모니터링부(219)가 모니터링한 CPU 사용량 및 트래픽양을 컨트롤러(100)에게 보고한다(S303). Referring to FIG. 7, the
컨트롤러(100)의 SNMP 통신부(105)는 S303 단계에서 수신된 CPU 사용량이 임계치를 초과하는지 판단한다(S305). The
이때, 초과하면, 임계치 설정부(107)는 PPS 임계치를 재설정(S307)하고, 재설정한 PPS 임계치를 스위치(200)로 전송한다(S309). At this time, if exceeded, the
여기서, 임계치 설정부(107)는 오픈플로우(OpenFlow) 규격에 정의된 메시지 또는 새로 정의된 오픈플로우 메시지를 이용하여 스위치(200)로 재설정한 PPS 임계치를 전달할 수 있다. 또는 별도의 API(Application Programming Interface)를 통해서 스위치(200)로 재설정한 PPS 임계치를 전달할 수 있다.Here, the
스위치(200)는 S309 단계에서 수신한 PPS 임계치로 디폴트 PPS 임계치를 변경한다(S311). 그러면, 도 5의 S113은 S311 단계에서 변경된 디폴트 PPS 임계치를 기준으로 수행된다.The
도 7의 각 단계(S301 ~ S311)는 도 5의 각 단계(S101 ~ S125)와 병렬로 수행될 수 있다.The steps S301 to S311 in FIG. 7 can be performed in parallel with the steps S101 to S125 in FIG.
도 8은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100)의 동작을 나타낸 것이다. 특히, 스위치(200)의 CPU 사용량을 서로 다른 복수개의 임계치 별로 모니터링한 결과를 토대로 도 5의 PPS 임계치를 재설정하는 과정을 나타낸다.FIG. 8 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows the operation of the
도 8을 참조하면, 디폴트 PPS=N으로 설정(S401)된 상태에서 임계치 설정부(107)는 스위치(200)로부터 보고받은 CPU 사용량이 제1 임계치(Th1)를 초과하는지 판단한다(S403). 8, the default PPS = N by setting (S401) the state
제1 임계치(Th1)를 초과하면, 임계치 설정부(107)는 PPS 임계치를 N으로 설정한다(S405). 즉, 디폴트 PPS 임계치를 유지한다.First exceeds the threshold value (Th 1), and a
반면, 제1 임계치(Th1)를 초과하지 않으면, 임계치 설정부(107)는 CPU 사용량이 제2 임계치(Th2)를 초과하는지 판단한다(S407).On the other hand, first it is determined that the first threshold value does not exceed the (Th 1),
제2 임계치(Th2)를 초과하면, 임계치 설정부(107)는 PPS 임계치를 N/2으로 설정한다(S409).When the two exceeds a threshold value (Th 2), the
반면, 제2 임계치(Th2)를 초과하지 않으면, 임계치 설정부(107)는 CPU 사용량이 제3 임계치(Th3)를 초과하는지 판단한다(S411).On the other hand, first it is determined that the second threshold is not exceeded the (Th 2), the
제3 임계치(Th3)를 초과하면, 임계치 설정부(107)는 PPS 임계치를 N/3으로 설정한다(S413).When the three exceeds the threshold (Th 3), the
제4 임계치(Th4) ~ N-1개의 임계치(ThN - 1)에 대해서 S403 ~ S413 단계와 같이 CPU 사용량을 각 임계치를 초과하는지 판단하여 초과하면, N/K(K=4, ... N-1)로 PPS 임계치를 설정한다. N / K (K = 4, ..., N) is determined for the fourth threshold value (Th 4 ) to the N-1th threshold value (Th N - 1 ) if the CPU usage exceeds the threshold value as in steps S403 to S413. N-1) to set the PPS threshold.
임계치 설정부(107)는 CPU 사용량이 제N 임계치(ThN)를 초과하는지 판단한다(S415). 그리고 제N 임계치(ThN)를 초과하면, PPS 임계치를 0으로 설정한다(S417). The
다음, 임계치 설정부(107)는 PPS 임계치를 설정한 이후, 다시 CPU 사용량을 모니터링(S419)하여 S403 단계부터 다시 수행한다. Next, the
이와 같이 설정된 PPS 임계치는 도 7의 S309 단계를 통해 스위치(200)로 전달된다. The PPS threshold value thus set is transmitted to the
도 9는 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100)의 동작을 나타낸 것이다. 특히, 스위치(200)의 인입 포트 별로 패킷 입력(PACKET_IN) 메시지의 생성 개수를 제한하는 과정을 나타낸다. FIG. 9 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows the operation of the
도 9를 참조하면, PPS=N으로 설정된 상태(S501)에서 임계치 설정부(107)는 모니터링부(219)가 모니터링한 CPU 사용량 및 트래픽양을 스위치(200)로부터 수신한다(S503). Referring to FIG. 9, in a state in which PPS = N is set (S501), the
임계치 설정부(107)는 CPU 사용량이 임계치를 초과하는지 판단한다(S505). 이때, 초과하지 않으면, S503 단계를 다시 수행한다.The
반면, 초과하면, 특정 포트의 트래픽양이 다른 포트의 트래픽양 보다 N배 이상인지를 판단한다(S507).On the other hand, if it is determined that the amount of traffic of the specific port is greater than N times the amount of traffic of the other port (S507).
이때, N배 이상이면, 특정 포트의 PPS 임계치는 1/N으로 설정한다(S509). 이와 같이 설정된 PPS 임계치는 도 87의 S309 단계를 통해 스위치(200)로 전달된다.At this time, if it is N times or more, the PPS threshold value of the specific port is set to 1 / N (S509). The PPS threshold value thus set is transmitted to the
도 10은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100) 및 스위치(200)의 연계 동작을 나타낸 것이다. 특히, 목적지 별로 패킷 입력(PACKET_IN) 메시지의 생성 개수를 제한하는 과정을 나타낸다. FIG. 10 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows a linking operation of the
도 10을 참조하면, 컨트롤러(100)의 메시지 처리부(101)가 스위치(200)의 메시지 처리부(211)가 전송한 패킷 입력(PACKET_IN) 메시지를 수신한다(S601). 10, the message processing unit 101 of the
플로우 규칙 생성부(103)는 메시지 처리부(211)로부터 전달받은 패킷 입력(PACKET_IN) 메시지로부터 목적지 IP 주소 및 패킷이 인입된 포트를 추출한다(S603). The flow
플로우 규칙 생성부(103)는 모니터링부(109)가 스위치(200)로부터 확인한 인입 포트의 트래픽양 또는 CPU 사용량이 임계치를 초과하는지 판단한다(S605).The flow
이때, 임계치를 초과하면, 플로우 규칙 생성부(103)는 스위치(200)로 패킷이 인입된 포트, 목적지 IP, 패킷 입력(PACKET_IN) 메시지 개수를 가지는 IP 테이블을 생성한다(S607).At this time, if the threshold value is exceeded, the flow
플로우 규칙 생성부(103)는 IP 테이블에 기초하여 특정 목적지 IP를 가지는 패킷에 대하여 일정 시간(hard_timeout) 동안 패킷 입력(PACKET_IN) 메시지를 생성하지 않고, 패킷을 폐기(Drop)하는 액션을 정의한다(S609). 그리고 메시지 처리부(101)는 정의된 액션이 포함된 플로우 수정 메시지를 스위치(200)로 전송한다(S611).The flow
플로우 테이블 제어부(209)는 S611 단계에서 수신된 플로우 수정 메시지에 따른 플로우 엔트리를 설정(S613)하여 플로우 테이블 저장부(207)에 등록한다.The flow
이후, 도 5의 S111 단계에 해당하는 상세 동작으로서, S613 단계에서 등록된 플로우 엔트리에 따르면, 패킷 처리부(203)는 일정 시간(hard_timeout) 동안에는 특정 목적지 IP 주소를 가지는 수신 패킷에 대해서는 패킷 입력(PACKET_IN) 메시지를 생성하지 않고, 모두 폐기한다. 여기서, 플로우 테이블 제어부(209)가 플로우를 반영하는 방식은 크게 hard_timeout과 idle_timeout으로 두가지가 있다. hard_timeout인 경우에는 특정 시간을 설정하고 설정된 특정 시간이 경과하면 해당 플로우 규칙을 제거하는 방식으로서, 해당 플로우 규칙에 매치되는 패킷이 들어오는지 여부에 관게없이 일정시간 이후에는 해당 플로우 규칙은 삭제된다. 반면, idle_timeout은 특정 시간동안 해당 플로우 규칙에 매치되는 패킷이 인입되지 않으면, 해당 플로우 규칙은 삭제된다. 본 발명의 실시에에서는 hard_timeout 방식을 채택한다. As a detailed operation corresponding to step S111 of FIG. 5, according to the flow entry registered in step S613, the
한편, S605 단계에서 임계치를 초과하지 않으면, 플로우 규칙 생성부(103)는 수신 패킷의 IP 주소에 대한 패킷 경로 등의 액션을 정의한다(S615). 그리고 메시지 처리부(101)는 정의된 액션이 포함된 플로우 수정 메시지를 스위치(200)로 전송한다(S617). 플로우 테이블 제어부(209)는 S617 단계에서 수신된 플로우 수정 메시지에 따른 플로우 엔트리를 설정(S619)하여 플로우 테이블 저장부(207)에 등록한다. 그러면, 패킷 처리부(203)는 플로우 엔트리에 따라 수신 패킷을 처리한다(도 5의 S111). On the other hand, if the threshold is not exceeded in step S605, the flow
도 11은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100)의 동작을 나타낸 것이다. 특히, 우선순위에 따라 패킷 입력(PACKET_IN) 메시지의 생성 개수를 제한하는 과정을 나타낸다.FIG. 11 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows the operation of the
이때, 포트는 같은 도메인의 스위치(200)와 연결된 제1 포트와 외부(인터넷 등)와 연결된 제2 포트로 구분된다. In this case, the port is divided into a first port connected to the
도 11을 참조하면, 임계치 설정부(107)는 제1 포트를 제2 포트보다 우선순위를 높게 설정한다(S701). 그리고 우선순위가 높은 제1 포트의 PPS를 우선순위가 상대적으로 낮은 제2 포트의 PPS보다 낮게 설정한다(S703). Referring to FIG. 11, the
여기서, 각각의 포트 별 PPS 설정은 도 7 및 도 8에 기재한 방식을 통해 이루어진다. Here, the PPS setting for each port is performed through the method shown in FIG. 7 and FIG.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다. The embodiments of the present invention described above are not implemented only by the apparatus and method, but may be implemented through a program for realizing the function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.
Claims (26)
상기 스위치가 발신지로부터 수신한 수신 패킷과 매치되는 플로우 엔트리가 존재하는지 판단하는 단계,
상기 매치되는 플로우 엔트리가 존재하지 않으면, CPU(CENTRAL PROCESSING UNIT) 사용량이 임계치 미만인지 판단하는 단계,
상기 임계치 미만일 경우, 상기 수신 패킷에 대한 패킷 입력 메시지를 생성하여 컨트롤러 전송하는 단계, 그리고
상기 임계치 이상일 경우, 사전에 정의된 시간 동안 기 정해진 특정 목적지 IP 주소를 가지는 수신 패킷에 대한 패킷 입력 메시지 생성을 차단하고, 상기 특정 목적지 IP 주소를 가지는 수신 패킷을 폐기하는 단계를 포함하고,
상기 특정 목적지 IP 주소는,
상기 패킷 입력 메시지를 정해진 기준치 이상 발생시키는 수신 패킷들의 목적지 IP 주소로 설정되는 패킷 입력 메시지 제어 방법.CLAIMS What is claimed is: 1. A method for controlling a packet entry message in a software defined network,
Determining whether a flow entry matching the received packet received from the source exists in the switch,
Determining whether a usage amount of the CPU (CENTRAL PROCESSING UNIT) is less than a threshold value if the matched flow entry does not exist;
Generating a packet input message for the received packet and transmitting the packet to the controller if the received packet is smaller than the threshold value;
Blocking generation of a packet input message for a received packet having a predetermined destination IP address predetermined for a predetermined time and discarding a received packet having the specific destination IP address when the threshold value is greater than the predetermined value;
The specific destination IP address may include,
Wherein the packet input message is set to a destination IP address of received packets that generate the packet input message over a predetermined reference value.
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,
디폴트 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 특정 개수로 설정하는 단계를 더 포함하고,
상기 전송하는 단계는,
상기 특정 개수 이내에서 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함하는 패킷 입력 메시지 제어 방법.The method according to claim 1,
Prior to determining whether the matched flow entry is present,
Further comprising setting a certain number of packets per second (PPS) per default unit,
Wherein the transmitting comprises:
And generating and transmitting a packet input message packet within the specific number.
상기 CPU 사용량이 임계치 미만인지 판단하는 단계 이후,
상기 임계치 이상인 경우, 상기 컨트롤러에게 상기 CPU 사용량을 보고하고 상기 CPU 사용량에 따라 재설정된 단위 초당 일정 패킷 수를 수신하는 단계를 더 포함하고,
상기 전송하는 단계는,
상기 재설정된 단위 초당 일정 패킷 수 이내로 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함하는 패킷 입력 메시지 제어 방법.3. The method of claim 2,
After determining whether the CPU usage is below a threshold,
Reporting the CPU usage to the controller and receiving a predetermined number of packets per second reset in accordance with the CPU usage,
Wherein the transmitting comprises:
And generating and transmitting a packet input message packet within a predetermined number of packets per second of the reset unit.
상기 특정 개수로 설정하는 단계 이후,
상기 CPU 사용량 및 트래픽양을 모니터링하는 단계,
모니터링한 상기 CPU 사용량 및 트래픽양을 상기 컨트롤러에게 보고하는 단계, 그리고
상기 CPU 사용량이 임계치를 초과할 경우 재설정된 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 단계를 더 포함하고,
상기 전송하는 단계는,
상기 재설정된 단위 초당 일정 패킷 수 이내로 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함하는 패킷 입력 메시지 제어 방법.3. The method of claim 2,
After the setting of the specific number,
Monitoring the CPU usage and amount of traffic,
Reporting the monitored CPU usage and traffic volume to the controller, and
Further comprising receiving from the controller a predetermined number of packets per second reset unit when the CPU usage exceeds a threshold,
Wherein the transmitting comprises:
And generating and transmitting a packet input message packet within a predetermined number of packets per second of the reset unit.
상기 보고하는 단계는,
SNMP(Simple Network Management Protocol)를 통해 상기 컨트롤러에게 상기 CPU 사용량 및 상기 트래픽양을 보고하는 패킷 입력 메시지 제어 방법.5. The method of claim 4,
Wherein said reporting comprises:
And reporting the CPU usage amount and the traffic amount to the controller through SNMP (Simple Network Management Protocol).
상기 재설정된 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 단계는,
새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 재설정된 단위 초당 일정 패킷수를 수신하는 패킷 입력 메시지 제어 방법.6. The method of claim 5,
Wherein the step of receiving from the controller a predetermined number of packets per second,
A method of controlling a packet input message, the method comprising: receiving a predetermined number of packets per second, which is reset using a newly defined open flow message or a newly defined application programming interface (API).
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,
상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계, 그리고
상기 블랙리스트 IP 주소에 포함되면, 상기 수신 패킷을 폐기하는 단계를 더 포함하고,
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계는,
상기 수신 패킷의 IP 주소가 상기 블랙리스트 IP 주소에 포함되지 않는 경우, 상기 수신 패킷에 매치되는 플로우 엔트리의 존재 여부를 판단하는 패킷 입력 메시지 제어 방법.3. The method of claim 2,
Prior to determining whether the matched flow entry is present,
Determining whether an IP address of the received packet is included in a blacklisted IP address, and
Further comprising discarding the received packet if the IP address is included in the blacklist IP address,
Wherein determining whether the matched flow entry is present comprises:
And determining whether a flow entry matching the received packet exists if the IP address of the received packet is not included in the black list IP address.
상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계 이전에,
상기 컨트롤러에게 패킷 입력 메시지를 전송하는 단계,
블랙리스트에 포함된 IP 주소를 가지는 패킷을 차단시키는 액션이 정의된 플로우 수정 메시지를 수신하는 단계, 그리고
상기 플로우 수정 메시지에 따른 플로우 엔트리를 설정하는 단계를 더 포함하고,
상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계는,
상기 수신 패킷의 IP 주소가 상기 블랙리스트에 따른 플로우 엔트리에 매치되는지 판단하는 패킷 입력 메시지 제어 방법.8. The method of claim 7,
Prior to determining whether the IP address of the received packet is included in the blacklisted IP address,
Transmitting a packet input message to the controller,
Receiving a flow modification message in which an action for blocking a packet having an IP address included in the black list is defined, and
Further comprising setting a flow entry according to the flow modification message,
Wherein the step of determining whether the IP address of the received packet is included in the blacklist IP address comprises:
And determining whether an IP address of the received packet matches a flow entry according to the black list.
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,
상기 컨트롤러에게 수신 패킷에 대한 패킷 입력 메시지를 전송하는 단계,
상기 컨트롤러부터 상기 수신 패킷의 목적지 IP 주소를 가지는 패킷에 대해 정의된 시간 동안 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 수정 메시지를 수신하는 단계, 그리고
상기 플로우 수정 메시지에 따라 상기 액션이 포함된 플로우 엔트리를 등록하는 단계를 더 포함하고,
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이후,
발신지로부터 현재 수신된 패킷이 상기 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 엔트리에 매치되고, 정해진 시간이 만료하기 전이라면 상기 현재 수신된 패킷에 대한 패킷 입력 메시지 생성을 차단하는 단계, 그리고
상기 정해진 시간이 만료한 후에는 상기 플로우 엔트리를 폐기하는 단계
를 더 포함하는 패킷 입력 메시지 제어 방법.3. The method of claim 2,
Prior to determining whether the matched flow entry is present,
Transmitting a packet input message for a received packet to the controller,
Receiving, from the controller, a flow modification message defining an action for limiting a packet input message generation for a defined time for a packet having a destination IP address of the received packet; and
Further comprising registering a flow entry including the action according to the flow modification message,
After determining whether the matched flow entry exists,
Blocking generation of a packet input message for the currently received packet if the currently received packet from the source matches the flow entry for which the action limiting the generation of the packet input message is defined and before the predetermined time has expired,
Discarding the flow entry after the predetermined time has expired
Further comprising the step of:
발신지로부터 수신한 수신 패킷과 매치되는 플로우 엔트리가 존재하는지 판단하고, 존재하면 해당하는 플로우 엔트리에 따라 상기 수신 패킷을 처리하는 패킷 처리부,
상기 매치되는 플로우 엔트리가 존재하지 않으면, CPU(CENTRAL PROCESSING UNIT) 사용량이 임계치 미만인지 판단하는 패킷 입력 메시지 제어부, 그리고
상기 임계치 미만일 경우, 상기 수신 패킷에 대한 패킷 입력 메시지를 생성하여 컨트롤러 전송하는 메시지 처리부를 포함하고,
상기 제어부는,
상기 임계치 이상일 경우, 사전에 정의된 시간 동안 기 정해진 특정 목적지 IP 주소를 가지는 수신 패킷에 대한 패킷 입력 메시지 생성을 차단하고, 상기 특정 목적지 IP 주소를 가지는 수신 패킷을 폐기하며,
상기 특정 목적지 IP 주소는,
상기 패킷 입력 메시지를 정해진 기준치 이상 발생시키는 수신 패킷들의 목적지 IP 주소로 설정되는 스위치.As a switch in a software defined network,
A packet processor for determining whether there is a flow entry matched with a received packet received from a source and processing the received packet according to a flow entry corresponding to the received flow entry,
A packet input message control unit for determining whether a usage amount of the CPU (CENTRAL PROCESSING UNIT) is less than a threshold value if the matched flow entry does not exist, and
And a message processor for generating and transmitting a packet input message for the received packet if the received packet is smaller than the threshold,
Wherein,
Blocking the generation of a packet input message for a received packet having a predetermined destination IP address predetermined for a predefined time, discarding a received packet having the specific destination IP address,
The specific destination IP address may include,
And a destination IP address of the packets received by the packet input message.
상기 패킷 입력 메시지 제어부는,
디폴트 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 특정 개수로 설정하고, 상기 특정 개수 이내로 상기 패킷 입력 메시지 패킷 생성을 제한하는 스위치.11. The method of claim 10,
Wherein the packet input message controller comprises:
A switch for setting a predetermined number of packets per second (PPS) per default unit, and restricting generation of the packet input message packet within the specific number.
상기 CPU 사용량이 임계치 이상인 경우, 상기 컨트롤러에게 상기 CPU 사용량을 보고하고 상기 CPU 사용량에 따라 재설정된 단위 초당 일정 패킷 수를 수신하는 임계치 수신부를 더 포함하고,
상기 패킷 입력 메시지 제어부는,
상기 재설정된 단위 초당 일정 패킷 수 이내로 상기 패킷 입력 메시지 패킷 생성을 제한하는 스위치.12. The method of claim 11,
And a threshold receiving unit reporting the CPU usage amount to the controller and receiving a predetermined number of packets per second reset in accordance with the CPU usage amount when the CPU usage amount is equal to or greater than a threshold value,
Wherein the packet input message controller comprises:
And restricting generation of the packet input message packet within a predetermined number of packets per second of the reset unit.
상기 임계치 수신부는,
새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 재설정된 단위 초당 일정 패킷수를 수신하는 스위치.13. The method of claim 12,
Wherein the threshold value receiver comprises:
A switch that receives the reset packet number per second using a newly defined open flow message or a newly defined application programming interface (API).
상기 임계치 수신부는,
특정 포트의 트래픽양이 다른 포트의 트래픽양보다 N 배이상 많을 경우, 상기 특정 포트의 단위 초당 일정 패킷수를 1/N으로 재설정된 단위 초당 일정 패킷 수를 수신하여 상기 패킷 입력 메시지 제어부로 전달하는 스위치.13. The method of claim 12,
Wherein the threshold value receiver comprises:
When the amount of traffic of a specific port is more than N times the amount of traffic of another port, the control unit receives a certain number of packets per second unit reset to a certain number of packets per second of the specific port, and transmits the packet to the packet input message control unit switch.
상기 임계치 수신부는,
포트 별로 서로 다르게 설정된 복수의 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 스위치.13. The method of claim 12,
Wherein the threshold value receiver comprises:
And receives from the controller a predetermined number of packets per unit of a plurality of units set differently for each port.
같은 도메인의 스위치와 연결된 포트에 설정된 단위 초당 일정 패킷수가 외부와 연결된 포트에 설정된 단위 초당 일정 패킷수보다 낮게 설정되는 스위치.16. The method of claim 15,
A switch that is set to a port connected to a switch in the same domain and a certain number of packets per second is set lower than a predetermined number of packets per second set in a port connected to the outside.
상기 CPU 사용량 및 트래픽양을 모니터링하는 모니터링부, 그리고
상기 모니터링부로부터 제공받은 상기 CPU 사용량 및 트래픽양을 SNMP(Simple Network Management Protocol)를 통해 상기 컨트롤러에게 보고하는 SNMP 통신부
를 더 포함하는 스위치.13. The method of claim 12,
A monitoring unit for monitoring the CPU usage amount and the traffic amount, and
An SNMP communication unit reporting the amount of CPU usage and the amount of traffic provided from the monitoring unit to the controller through Simple Network Management Protocol (SNMP)
Lt; / RTI >
블랙리스트 IP 주소가 포함된 플로우 엔트리를 저장하는 플로우 테이블 저장부, 그리고
플로우 수정 메시지에 따라 상기 블랙리스트가 포함된 플로우 엔트리를 플로우 테이블 저장부에 등록하는 플로우 테이블 제어부를 더 포함하고,
상기 메시지 처리부는,
상기 컨트롤러에게 패킷 입력 메시지를 전송하여 블랙리스트에 포함된 IP 주소를 가지는 패킷을 차단시키는 액션이 정의된 플로우 수정 메시지를 수신하여 상기 플로우 테이블 제어부로 전달하고,
상기 패킷 처리부는,
상기 플로우 테이블 저장부에 등록된 플로우 엔트리를 조회하여 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하고, 상기 블랙리스트 IP 주소에 포함되면, 상기 수신 패킷을 폐기하는 스위치.13. The method of claim 12,
A flow table storage unit for storing a flow entry including a blacklisted IP address, and
And a flow table control unit for registering the flow entry including the black list in the flow table storage unit according to the flow modification message,
The message processing unit,
Receiving a flow modification message defining an action for blocking a packet having an IP address included in the black list by transmitting a packet input message to the controller and delivering the flow modification message to the flow table controller,
The packet processing unit,
Inquiring a flow entry registered in the flow table storage unit to determine whether an IP address of a received packet is included in a blacklist IP address, and discarding the received packet if the IP address is included in the blacklist IP address.
상기 메시지 처리부는,
상기 컨트롤러에게 패킷 입력 메시지를 전송하여 정해진 시간 동안 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 수정 메시지를 수신하고,
상기 플로우 테이블 제어부는,
상기 플로우 수정 메시지에 따라 플로우 엔트리를 상기 플로우 테이블 저장부에 등록하며, 상기 정해진 시간이 만료한 후에는 상기 플로우 엔트리를 폐기하고,
상기 패킷 처리부는,
발신지로부터 현재 수신된 패킷이 상기 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 엔트리에 매치되고, 정해진 시간이 만료하기 전이라면 상기 현재 수신된 패킷에 대한 패킷 입력 메시지 생성을 차단하는 스위치.19. The method of claim 18,
The message processing unit,
Receiving a flow modification message in which an action is defined for transmitting a packet input message to the controller to restrict generation of a packet input message for a predetermined time,
Wherein the flow table control unit comprises:
Registering the flow entry in the flow table storage unit according to the flow modification message, discarding the flow entry after the predetermined time has expired,
The packet processing unit,
Blocking the generation of a packet input message for the currently received packet if the currently received packet from the source matches the flow entry for which the action limiting the creation of the packet input message is defined and before the predetermined time has expired.
상기 소프트웨어 정의 네트워크의 스위치의 CPU(CENTRAL PROCESSING UNIT) 사용량을 모니터링하는 모니터링부,
상기 CPU 사용량이 정해진 임계치를 초과하면, 상기 스위치가 패킷 입력 메시지 생성 패킷을 제한하기 위한 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 재설정하여 상기 스위치로 제공하는 임계치 설정부,
상기 CPU 사용량이 상기 임계치 이상일 경우, 사전에 정의된 시간 동안 기 정해진 특정 목적지 IP 주소를 가지는 수신 패킷에 대한 패킷 입력 메시지 생성을 차단하고, 상기 특정 목적지 IP 주소를 가지는 수신 패킷을 폐기하는 액션을 정의하는 플로우 규칙 생성부, 그리고
상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송하는 메시지 처리부를 포함하고,
상기 특정 목적지 IP 주소는,
상기 패킷 입력 메시지를 정해진 기준치 이상 발생시키는 수신 패킷들의 목적지 IP 주소로 설정되는 컨트롤러.As a controller in a software defined network,
A monitoring unit for monitoring a usage amount of a CPU (CENTRAL PROCESSING UNIT) of a switch of the software defined network,
A threshold setting unit for resetting a predetermined number of packets per second (PPS) for limiting a packet input message generating packet and providing the switch to the switch when the CPU usage exceeds a predetermined threshold,
If the CPU usage is equal to or greater than the threshold value, generation of a packet input message for a received packet having a predetermined destination IP address predetermined for a predetermined time is blocked, and an action for discarding a received packet having the specific destination IP address is defined A flow rule generation unit for
And a message processing unit for transmitting a flow modification message including the action to the switch,
The specific destination IP address may include,
And setting the destination IP address of the received packets that causes the packet input message to generate a predetermined reference value or more.
상기 임계치 설정부는,
단계 별로 서로 다른 복수의 임계치와 상기 CPU 사용량을 비교하고, 비교 결과에 따라 단계 별로 상기 단위 초당 일정 패킷 수(PPS)를 증감시키는 컨트롤러.21. The method of claim 20,
The threshold value setting unit may set,
A controller for comparing the plurality of different threshold values with the CPU usage amount and incrementing or decrementing a predetermined number of packets per unit of time (PPS) per step in accordance with a comparison result.
상기 스위치로부터 SNMP(Simple Network Management Protocol)를 통해 상기 스위치의 CPU 사용량 및 트래픽양을 수신하여 상기 모니터링부로 전달하는 SNMP 통신부를 더 포함하고,
상기 임계치 설정부는,
상기 CPU 사용량 및 트래픽양에 따라 재설정한 상기 단위 초당 일정 패킷 수(PPS)를 새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 스위치로 전달하는 컨트롤러.21. The method of claim 20,
And an SNMP communication unit for receiving the CPU usage amount and the traffic amount of the switch from the switch through SNMP (Simple Network Management Protocol) and transmitting the received amount to the monitoring unit,
The threshold value setting unit may set,
(PPS) per unit time, which is reset according to the amount of CPU usage and traffic, to the switch using a newly defined open flow message or a newly defined application programming interface (API).
상기 임계치 설정부는,
특정 포트의 트래픽양이 다른 포트의 트래픽양보다 N배 이상 많으면, 해당 포트의 단위 초당 일정 패킷 수를 1/N으로 설정하는 컨트롤러.23. The method of claim 22,
The threshold value setting unit may set,
If the amount of traffic on a particular port is more than N times the amount of traffic on another port, the controller sets a certain number of packets per second per port as 1 / N.
상기 임계치 설정부는,
같은 도메인의 스위치와 연결된 포트를 외부와 연결된 포트보다 우선순위를 높게 설정하고, 우선순위가 높은 포트의 단위 초당 일정 패킷수를 우선순위가 상대적으로 낮은 포트의 단위 초당 일정 패킷수보다 낮게 설정하는 컨트롤러.23. The method of claim 22,
The threshold value setting unit may set,
A port connected to a switch in the same domain is set to have a higher priority than a port connected to the outside and a certain number of packets per second unit of a port having a higher priority is set to be lower than a predetermined number of packets per unit of a port having a lower priority, .
상기 플로우 규칙 생성부는,
보안 센터로부터 악의적인 트래픽을 발생시키는 IP 정보를 수집하여 블랙리스트를 생성하고, 상기 패킷 입력 메시지에 포함된 소스 IP 주소 및 목적지 IP 주소를 상기 블랙리스트와 비교하여 일치하면, 상기 블랙리스트에 포함된 IP 주소를 가진 패킷을 차단시키는 액션을 정의하고,
상기 메시지 처리부는,
상기 스위치로부터 패킷 입력 메시지를 수신하고, 상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송하는 컨트롤러.21. The method of claim 20,
Wherein the flow rule generation unit comprises:
A black list is generated by collecting IP information generating malicious traffic from the security center, and if a source IP address and a destination IP address included in the packet input message are compared with the black list, Define an action that blocks packets with IP addresses,
The message processing unit,
Receiving a packet input message from the switch, and transmitting a flow modification message including the action to the switch.
상기 플로우 규칙 생성부는,
상기 패킷 입력 메시지로부터 추출한 인입 포트의 트래픽양 또는 CPU 사용량이 임계치를 초과하면, 상기 인입 포트, 상기 패킷 입력 메시지로부터 추출한 IP 주소로 구성된 IP 테이블을 생성하고, 상기 IP 주소를 가진 패킷에 대해 정해진 시간동안 패킷 입력 메시지 생성을 제한하는 액션을 정의하고,
상기 메시지 처리부는,
상기 스위치로부터 패킷 입력 메시지를 수신하고, 상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송하는 컨트롤러.21. The method of claim 20,
Wherein the flow rule generation unit comprises:
Generating an IP table composed of the incoming port and the IP address extracted from the packet input message when the amount of traffic or CPU usage of the incoming port extracted from the packet input message exceeds a threshold value, Defines an action that restricts the generation of packet input messages during a session,
The message processing unit,
Receiving a packet input message from the switch, and transmitting a flow modification message including the action to the switch.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150118969A KR101712168B1 (en) | 2015-08-24 | 2015-08-24 | Method for controling packet-in message, switch and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150118969A KR101712168B1 (en) | 2015-08-24 | 2015-08-24 | Method for controling packet-in message, switch and controller thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101712168B1 true KR101712168B1 (en) | 2017-03-03 |
Family
ID=58410535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150118969A KR101712168B1 (en) | 2015-08-24 | 2015-08-24 | Method for controling packet-in message, switch and controller thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101712168B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101931543B1 (en) * | 2017-10-26 | 2019-03-13 | 아토리서치(주) | Method and computer program for handling trouble using flow-mod message in software defined networking environment |
KR20190049323A (en) * | 2017-11-01 | 2019-05-09 | 숭실대학교산학협력단 | SDN for preventing malware attack and controller including the same |
KR102333553B1 (en) * | 2021-05-07 | 2021-12-01 | 프라이빗테크놀로지 주식회사 | System for controlling network access based on controller and method of the same |
KR102358595B1 (en) * | 2021-05-07 | 2022-02-08 | 프라이빗테크놀로지 주식회사 | System for controlling network access based on controller and method of the same |
WO2023068553A1 (en) * | 2021-10-20 | 2023-04-27 | 프라이빗테크놀로지 주식회사 | System for controlling network connection based on controller, and method therefor |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050076158A (en) * | 2004-01-19 | 2005-07-26 | 삼성전자주식회사 | Method for controlling traffic congestion and apparatus for implementing the same |
KR20140052847A (en) * | 2012-10-22 | 2014-05-07 | 한국전자통신연구원 | Method and apparatus for providing quality of service in software defiend neworking network |
KR101414753B1 (en) * | 2010-11-22 | 2014-07-04 | 닛본 덴끼 가부시끼가이샤 | Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow |
-
2015
- 2015-08-24 KR KR1020150118969A patent/KR101712168B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050076158A (en) * | 2004-01-19 | 2005-07-26 | 삼성전자주식회사 | Method for controlling traffic congestion and apparatus for implementing the same |
KR101414753B1 (en) * | 2010-11-22 | 2014-07-04 | 닛본 덴끼 가부시끼가이샤 | Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow |
KR20140052847A (en) * | 2012-10-22 | 2014-05-07 | 한국전자통신연구원 | Method and apparatus for providing quality of service in software defiend neworking network |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101931543B1 (en) * | 2017-10-26 | 2019-03-13 | 아토리서치(주) | Method and computer program for handling trouble using flow-mod message in software defined networking environment |
KR20190049323A (en) * | 2017-11-01 | 2019-05-09 | 숭실대학교산학협력단 | SDN for preventing malware attack and controller including the same |
KR102013044B1 (en) * | 2017-11-01 | 2019-08-21 | 숭실대학교산학협력단 | SDN for preventing malware attack and controller including the same |
KR102333553B1 (en) * | 2021-05-07 | 2021-12-01 | 프라이빗테크놀로지 주식회사 | System for controlling network access based on controller and method of the same |
KR102358595B1 (en) * | 2021-05-07 | 2022-02-08 | 프라이빗테크놀로지 주식회사 | System for controlling network access based on controller and method of the same |
WO2022235006A1 (en) * | 2021-05-07 | 2022-11-10 | 프라이빗테크놀로지 주식회사 | System for controlling network connection based on controller, and method for same |
WO2023068553A1 (en) * | 2021-10-20 | 2023-04-27 | 프라이빗테크놀로지 주식회사 | System for controlling network connection based on controller, and method therefor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9276852B2 (en) | Communication system, forwarding node, received packet process method, and program | |
KR101712168B1 (en) | Method for controling packet-in message, switch and controller thereof | |
US9935974B2 (en) | Hardware-logic based flow collector for distributed denial of service (DDoS) attack mitigation | |
EP3073700B1 (en) | Malicious attack detection method and apparatus | |
US11032205B2 (en) | Flow control method and switching device | |
US10193890B2 (en) | Communication apparatus to manage whitelist information | |
KR102536676B1 (en) | Packet processing method and apparatus, and related devices | |
WO2012056816A1 (en) | Network system and method for controlling communication traffic | |
KR101618985B1 (en) | Method and apparatus for dynamic control of traffic in software defined network enviroment | |
US8693335B2 (en) | Method and apparatus for control plane CPU overload protection | |
EP1348285A2 (en) | Progressive and distributed regulation of selected network traffic destined for a network node | |
US20150043574A1 (en) | Communication apparatus, control apparatus, communication system, communication control method, communication terminal and program | |
WO2017035717A1 (en) | Distributed denial of service attack detection method and associated device | |
US20130275620A1 (en) | Communication system, control apparatus, communication method, and program | |
US20220286409A1 (en) | Method and apparatus for configuring quality of service policy for service, and computing device | |
JP7103883B2 (en) | Communication systems, communication control methods, and communication devices | |
JP2018195969A (en) | Attack detection method, attack detection program, and relay device | |
US20140376394A1 (en) | Communication apparatus, control apparatus, communication system, communication control method, and computer program | |
CN107147585B (en) | Flow control method and device | |
KR20080002332A (en) | Packet switch device and bandwidth control method thereof | |
WO2018177003A1 (en) | Charging method, and related device and system | |
KR20100048105A (en) | Network management apparatus and method thereof, user terminal for managing network and recoding medium thereof | |
US20140226486A1 (en) | Communication Apparatus, Communication System, Communication Control Method, and Computer Program | |
US20140233381A1 (en) | Communication apparatus, control apparatus, communication system, communication control method, and program | |
US20140233392A1 (en) | Communication apparatus, communication system, communication control method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |