KR20150082060A - A method and apparatus for managing flow table - Google Patents
A method and apparatus for managing flow table Download PDFInfo
- Publication number
- KR20150082060A KR20150082060A KR1020140092606A KR20140092606A KR20150082060A KR 20150082060 A KR20150082060 A KR 20150082060A KR 1020140092606 A KR1020140092606 A KR 1020140092606A KR 20140092606 A KR20140092606 A KR 20140092606A KR 20150082060 A KR20150082060 A KR 20150082060A
- Authority
- KR
- South Korea
- Prior art keywords
- flow table
- flow
- entry
- flow entry
- state
- Prior art date
Links
Images
Classifications
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- 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/28—Flow control; Congestion control in relation to timing considerations
-
- 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/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 소프트웨어 정의 네트워크에 관한 것으로, 보다 상세하게는 소프트웨어 정의 네트워크에서의 플로우 처리 및 테이블 관리기술에 관한 것이다.BACKGROUND OF THE
소프트웨어 정의 네트워크(Software Defined Network: 이하 SDN이라 칭함)는 네트워크의 전송 평면(transport plane)과 제어 평면(control plane)이 분리된다. 전송 평면은 패킷 전송에 필요한 모든 결정을 제어 평면에 질의하고, 제어 평면이 전송 평면에 설치된 소프트웨어를 통해 네트워크 구성과 패킷 흐름을 중앙 집중식으로 제어한다. SDN에서 전송 평면은 SDN 기반 SDN 스위치라 부르고, 제어 평면은 통상 SDN 컨트롤러(controller)라고 부른다.A Software Defined Network (hereinafter referred to as SDN) separates a transport plane and a control plane of a network. The transmission plane queries the control plane for all decisions needed for packet transmission, and the control plane centrally controls network configuration and packet flow through software installed in the transmission plane. In SDN, the transmission plane is called SDN-based SDN switch, and the control plane is usually called SDN controller.
SDN 기술은 네트워크의 제어 평면을 SDN 컨트롤러에 집중시킴으로써 소프트웨어를 통해 패킷 전송 과정을 제어할 수 있도록 한다. 현재의 SDN 스위치의 플로우 테이블의 구조 상 플로우 엔트리 수에 상당한 제한이 있으므로 원활할 통신을 위해서는 플로우 테이블의 수위(Occupancy level or vacancy level)에 따라 다양한 플로우 테이블 관리 기법을 적용하여야 한다. 그러나, 현재의 SDN 스위치의 플로우 테이블은 초기 단계이므로 단 하나의 기법만 적용 가능하므로 네트워크에서 발생할 수 있는 다양한 상황에 효과적으로 테이블 관리 기법을 수위에 따라 변화시키면 대응할 수 없어 네트워크 서비스가 중단되거나 심각한 장애를 일으킬 수 있다. SDN technology allows the software to control the packet transmission process by concentrating the control plane of the network on the SDN controller. Since there is a considerable limitation on the number of flow entries in the current SDN switch flow table structure, various flow table management methods should be applied according to the level of Occupancy level or vacancy level for smooth communication. However, since the flow table of the current SDN switch is in the initial stage, only one technique can be applied. Therefore, if the table management technique is changed according to the water level in various situations that may occur in the network, Can cause.
일 실시 예에 따라, SDN 전송 평면에 해당하는 SDN 스위치의 플로우 테이블을 효율적으로 관리할 수 있는 플로우 테이블 관리 방법 및 그 장치를 제안한다.According to an embodiment, a flow table management method and apparatus for efficiently managing a flow table of an SDN switch corresponding to an SDN transmission plane are proposed.
일 실시 예에 따른 플로우 테이블 관리방법은, 네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계와, 네트워크 장치로부터 플로우 테이블의 상태 변경을 통보 받는 단계와, 변경된 플로우 테이블의 상태를 반영하여 플로우 테이블을 관리하는 단계를 포함한다.According to an embodiment of the present invention, there is provided a flow table management method comprising the steps of: dividing a flow table into a plurality of states according to a usage rate of a flow table in a network device; receiving a change of state of a flow table from a network device; And managing the flow table by reflecting the state.
다수의 상태로 구분하는 단계에서, 플로우 테이블을 다수의 구역으로 구분하고, 각 구역에 대한 임계값을 설정할 수 있는데, 특히 플로우 테이블의 각 구역에 대해 상한 임계값과 하한 임계값이 쌍으로 가지도록 구성할 수 있다.In the step of dividing into a plurality of states, the flow table can be divided into a plurality of zones and a threshold value for each zone can be set. In particular, for each zone of the flow table, the upper threshold value and the lower threshold value are paired Can be configured.
플로우 테이블의 상태 변경을 통보 받는 단계에서, 플로우 테이블 사용률이 미리 설정된 상한 임계값에 도달하는 경우에 네트워크 장치로부터 상한 임계값 도달을 통보하는 메시지를 수신할 수 있다. 또는 플로우 테이블 사용률이 미리 설정된 하한 임계값에 도달하는 경우에 네트워크 장치로부터 하한 임계값 도달을 통보하는 메시지를 수신할 수 있다.In the step of notifying the state change of the flow table, a message informing the arrival of the upper limit threshold value from the network device when the flow table utilization rate reaches a preset upper limit threshold value may be received. Or a message informing the network device of the arrival of the lower threshold value when the flow table utilization reaches a preset lower threshold value.
플로우 테이블을 관리하는 단계에서, 플로우 테이블의 상태가 변경되면 변경된 상태에 따라 플로우 테이블을 구성하는 플로우 엔트리에 대한 관리방식을 결정하고, 결정된 관리방식을 포함하는 지시를 네트워크 장치에 전송할 수 있다.In the step of managing the flow table, when the state of the flow table is changed, the management method for the flow entry constituting the flow table is determined according to the changed state, and an instruction including the determined management method can be transmitted to the network device.
플로우 테이블을 관리하는 단계에서, 플로우 테이블의 사용률에 따라 플로우 엔트리의 잔여시간을 조절하거나 해당 플로우 엔트리를 제거할 수 있다. 또는 플로우 테이블의 사용률에 따라 플로우 엔트리의 사용 빈도 수를 기준으로 플로우 엔트리를 관리할 수 있다. 또는 플로우 테이블의 사용률에 따라 플로우 엔트리의 지속시간을 기준으로 플로우 엔트리를 관리할 수 있다.In managing the flow table, it is possible to adjust the remaining time of the flow entry or remove the corresponding flow entry according to the usage rate of the flow table. Alternatively, the flow entry can be managed based on the frequency of use of the flow entry according to the usage rate of the flow table. Alternatively, the flow entry can be managed based on the duration of the flow entry according to the usage rate of the flow table.
플로우 테이블 관리방법은, 새로운 플로우 엔트리를 플로우 테이블의 미리 설정된 삽입 지점에 삽입하는 단계를 더 포함할 수 있다. 이때, 사용 빈도 수에 따라 분류된 대체 가능 플로우 엔트리와 활성 플로우 엔트리의 사이에 새로운 플로우 엔트리를 삽입할 수 있다.The flow table management method may further include inserting a new flow entry into a predetermined insertion point of the flow table. At this time, a new flow entry can be inserted between the replaceable flow entry and the active flow entry classified according to the frequency of use.
다른 실시 예에 따른 플로우 테이블 관리방법은, 네트워크 장치 내 플로우 테이블을 구성하는 플로우 엔트리의 속성을 설정하는 단계와, 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계와, 구분된 플로우 테이블의 상태를 반영하여 설정된 플로우 엔트리의 속성을 결정하는 단계를 포함한다.According to another embodiment of the present invention, there is provided a flow table management method comprising: setting an attribute of a flow entry constituting a flow table in a network device; dividing the flow table into a plurality of states according to a usage rate of the flow table; And determining an attribute of the flow entry set reflecting the state of the table.
플로우 엔트리의 속성을 설정하는 단계에서, 사용되는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 절대 잔여시간을 설정하고, 사용되지 않는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 유휴 잔여시간을 설정할 수 있다.In the step of setting the attribute of the flow entry, it is possible to set the remaining absolute remaining time in the flow table with respect to the used flow entry, and to set the remaining idle remaining time in the flow table with respect to the unused flow entry.
플로우 엔트리의 속성을 설정하는 단계에서, 플로우 테이블 내에서 수신 패킷과 매칭되는 플로우 엔트리가 존재하면 해당 플로우 엔트리의 사용 빈도 수를 증가시키고, 미리 설정된 시간이 경과되면 해당 플로우 엔트리의 사용 빈도 수를 초기화하거나 감소시킬 수 있다. 이때, 플로우 엔트리의 사용 빈도 수 증감에 따라 사용 빈도 수가 미리 설정된 활성화 값을 넘으면 해당 플로우 엔트리를 활성화 엔트리로 설정하고, 사용 빈도 수가 미리 설정된 활성화 값을 넘지 못하면 교체 가능 엔트리로 설정할 수 있다.In the step of setting the attribute of the flow entry, if there is a flow entry matched with the received packet in the flow table, the use frequency of the flow entry is increased, and when the preset time elapses, the use frequency number of the flow entry is initialized . At this time, if the frequency of use exceeds the preset activation value, the flow entry is set as the activation entry according to the increase or decrease in the frequency of use of the flow entry. If the use frequency does not exceed the preset activation value, the entry can be set as the replaceable entry.
플로우 엔트리의 속성을 설정하는 단계에서, 플로우 테이블 내에 플로우 엔트리가 잔류한 지속시간을 설정할 수 있다.In the step of setting the attribute of the flow entry, the duration time in which the flow entry remains in the flow table can be set.
설정된 플로우 엔트리의 속성을 결정하는 단계에서, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 감소시킬 수 있다. 이때, 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하고, 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거할 수 있다.In the step of determining the attribute of the set flow entry, when the use rate of the flow table increases and the state of the flow table changes, the remaining time of the newly added flow entry can be reduced. At this time, if the usage rate of the flow table increases and the state of the flow table changes from the first state to the second state, the remaining time of the newly added flow entry is subtracted by a predetermined time, and the usage rate of the flow table increases, If the state changes from the second state to the third state, the remaining time of the newly added flow entry can be deducted in proportion to the usage rate increase rate of the flow table or the corresponding flow entry can be removed.
또 다른 실시 예에 따른 플로우 테이블 관리방법은, 네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계와, 구분된 플로우 테이블의 상태에 따라 플로우 엔트리의 속성을 이용하여 플로우 엔트리의 처리방식을 결정하는 단계를 포함한다.According to another embodiment of the present invention, there is provided a flow table management method comprising the steps of: dividing a flow table into a plurality of states according to a usage rate of a flow table in a network device; The method comprising:
플로우 엔트리의 처리방식을 결정하는 단계는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 사용 빈도 수를 확인하는 단계와, 확인된 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하는 단계와, 확인된 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓰는 단계를 포함할 수 있다.The step of determining the processing type of the flow entry includes the steps of: confirming the use frequency of each flow entry constituting the flow table when the usage rate of the flow table is increased and the state of the flow table is changed; Activation entries that are greater than or equal to the activation value may be protected and may include removing or replacing a replaceable entry that is less than or equal to the preset activation value with a new flow entry.
플로우 엔트리의 처리방식을 결정하는 단계는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 지속시간을 확인하는 단계와, 확인된 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하는 단계와, 확인된 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거하는 단계를 포함할 수 있다.The step of determining the processing method of the flow entry includes the steps of: confirming the duration of each flow entry constituting the flow table when the usage rate of the flow table increases and the state of the flow table changes; Protecting the larger flow entry, and removing the flow entry whose confirmed duration is less than a predetermined time.
또 다른 실시 예에 따른 네트워크 장치는, 플로우 테이블의 상태 변경을 컨트롤러에 통보하고 플로우 테이블의 상태가 반영된 플로우 테이블 관리방식을 지시 받는 통신부와, 통신부를 통해 지시 받은 플로우 테이블 관리방식에 따라 플로우 테이블을 관리하는 테이블 관리부와, 플로우 테이블을 이용하여 수신 패킷을 처리하는 패킷 처리부를 포함한다. 이때, 네트워크 장치는 소프트웨어 정의 네트워크 스위치이고, 컨트롤러는 소프트웨어 정의 네트워크 컨트롤러일 수 있다.According to another embodiment of the present invention, there is provided a network device including: a communication unit for notifying a status change of a flow table to a controller and instructing a flow table management method reflecting the status of the flow table; and a flow table And a packet processing unit for processing the received packet using the flow table. At this time, the network device may be a software defined network switch, and the controller may be a software defined network controller.
테이블 관리부는, 플로우 테이블의 사용률에 따라 플로우 테이블을 상한 임계값과 하한 임계값이 쌍으로 구성된 다수의 구역으로 구분할 수 있다.The table management unit may divide the flow table into a plurality of zones constituted by pairs of the upper threshold value and the lower threshold value according to the usage rate of the flow table.
플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 감소시킬 수 있다. 이때, 플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하고, 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거할 수 있다.The flow table management unit can reduce the remaining time of the flow entry newly added according to the flow table management method instructed by the controller when the usage rate of the flow table increases and the state of the flow table changes. At this time, if the usage rate of the flow table increases and the flow table state changes from the first state to the second state, the flow table management unit sets the remaining time of the flow entry newly added according to the flow table management method instructed by the controller to a predetermined time And if the flow table state changes from the second state to the third state, the remaining time of the newly added flow entry can be deducted in proportion to the use rate increase rate of the flow table or the corresponding flow entry can be removed.
플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하고, 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓸 수 있다.The flow table management unit protects an activation entry whose number of use frequencies is equal to or greater than a preset activation value according to the flow table management method instructed by the controller when the usage rate of the flow table increases and the state of the flow table changes, Replaceable entries can be removed or overwritten with new flow entries.
플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하며, 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거할 수 있다.The flow table management unit protects a flow entry whose duration is longer than a predetermined time according to the flow table management method instructed by the controller when the usage rate of the flow table increases and the state of the flow table changes, Small flow entries can be removed.
일 실시 예에 따르면, SDN 스위치 내 플로우 테이블의 상태를 반영하여 적응적으로 플로우 테이블 관리가 가능하고, 네트워크에 변화가 심하거나, 짧은 시간 동안 지속되는 플로우가 많은 경우, 또는 악의적인 사용자나 사용자의 실수로 인해 플러딩 공격(Flooding attack) 등이 발생한 상태에서도 효율적인 플로우 테이블 관리가 가능하다.According to an embodiment, it is possible to adaptively manage the flow table by reflecting the state of the flow table in the SDN switch. In the case where there are many flows that vary greatly in the network or continue for a short time, It is possible to manage the flow table efficiently even when a flooding attack occurs due to a mistake.
특히, 플로우 테이블의 사용률에 따라 다양한 플로우 테이블 관리 메커니즘을 적용하여 최적의 플로우 테이블 관리를 제공할 수 있다. 예를 들어, 플로우 테이블의 사용률에 대한 상한 임계값과 하한 임계값을 지정하고, 지정된 상한 임계값 또는 하한 임계값에 도달할 때마다 그에 맞는 플로우 테이블 관리방식을 적용하여 유효한 플로우 엔트리에 영향을 미치지 않으면서 플로우 테이블을 효율적이고 안정적으로 운용할 수 있다. 나아가, SDN의 안정성을 높이고 SDN 스위치와 SDN 컨트롤러 간의 전송 메시지를 줄일 수 있다.In particular, it is possible to provide optimal flow table management by applying various flow table management mechanisms according to the utilization rate of the flow table. For example, an upper threshold value and a lower threshold value for a usage rate of a flow table are specified, and each time a specified upper threshold value or lower threshold value is reached, a corresponding flow table management method is applied to affect a valid flow entry The flow table can be efficiently and stably operated. Furthermore, it can increase the stability of the SDN and reduce the transmission messages between the SDN switch and the SDN controller.
도 1은 본 발명의 일 실시 예에 따른 네트워크 구성도,
도 2는 본 발명의 일 실시 예에 따른 SDN의 구성도,
도 3은 본 발명의 일 실시 예에 따른 플로우 테이블의 사용률에 따라 차등화된 플로우 테이블 관리 메커니즘을 보여주는 그래프,
도 4는 본 발명의 일 실시 예에 따른 플로우 테이블 관리방법을 도시한 흐름도,
도 5는 본 발명의 일 실시 예에 따른 잔여시간이 적용된 플로우 엔트리의 구조도,
도 6은 본 발명의 일 실시 예에 따른 플로우 엔트리 유휴 잔여시간(idle timeout)을 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프,
도 7은 본 발명의 일 실시 예에 따른 사용 빈도 수가 적용된 플로우 엔트리의 구조도,
도 8은 본 발명의 일 실시 예에 따른 플로우 엔트리 사용 빈도 수를 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프,
도 9는 본 발명의 일 실시 예에 따른 지속시간이 적용된 플로우 엔트리의 구조도,
도 10은 본 발명의 일 실시 예에 따른 네트워크 장치의 구성도이다.1 is a network configuration diagram according to an embodiment of the present invention;
2 is a block diagram of an SDN according to an embodiment of the present invention.
3 is a graph showing a flow table management mechanism differentiated according to the utilization rate of a flow table according to an embodiment of the present invention;
4 is a flowchart illustrating a flow table management method according to an embodiment of the present invention;
FIG. 5 is a structure diagram of a flow entry to which a residual time is applied according to an embodiment of the present invention;
6 is a graph showing a flow table management mechanism using a flow entry idle timeout according to an embodiment of the present invention;
FIG. 7 is a structure diagram of a flow entry to which frequency of use according to an embodiment of the present invention is applied;
8 is a graph illustrating a flow table management mechanism using a flow entry frequency of use according to an embodiment of the present invention;
FIG. 9 is a structure diagram of a flow entry to which a duration is applied according to an embodiment of the present invention; FIG.
10 is a configuration diagram of a network device according to an embodiment of the present invention.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. In addition, the terms described below are defined in consideration of the functions of the present invention, which may vary depending on the intention of the user, the operator, or the custom. Therefore, the definition should be based on the contents throughout this specification.
도 1은 본 발명의 일 실시 예에 따른 네트워크 구성도이다.1 is a network configuration diagram according to an embodiment of the present invention.
도 1을 참조하면, 네트워크는 네트워크 장치(10)와 컨트롤러(12)를 포함한다. 네트워크에서는 플로우(flow)를 이용하여 통신 가능하다. 플로우는 패킷의 수신부터 송신까지 패킷에 대한 일련의 흐름을 의미한다. 네트워크 장치(10)는 패킷 처리에 필요한 모든 결정을 컨트롤러(12)에 질의하고, 컨트롤러(12)는 네트워크 구성 및 네트워크 장치(10)를 통한 패킷 처리를 제어한다. 전술한 특징을 가진 네트워크를 소프트웨어 정의 네트워크(Software Defined Network: 이하 SDN이라 칭함)라 한다. 이하, 후술되는 상세한 설명에서는 SDN을 중심으로 설명한다.Referring to FIG. 1, the network includes a
SDN에서 네트워크 장치는 SDN 스위치이고 컨트롤러는 SDN 컨트롤러일 수 있다. SDN 컨트롤러는 SDN 스위치를 중앙집중 방식으로 관리한다. SDN 스위치는 SDN 컨트롤러의 제어를 받는 에지 스위치(edge switch) 또는 코어 스위치(core switch)일 수 있다. SDN에서 입력 측 에지 스위치에 의한 패킷 수신으로부터 출력 측 에지 스위치에 의한 패킷 송신까지 패킷에 대한 일련의 흐름이 플로우가 된다. 플로우는 오픈플로우(OpenFlow) 아키텍처의 특정 애플리케이션에 의해 정의될 수 있다. 이런 점에서 오픈플로우는 SDN의 한 종류가 된다.In SDN, the network device may be an SDN switch and the controller may be an SDN controller. The SDN controller centrally manages the SDN switch. The SDN switch may be an edge switch or a core switch under the control of an SDN controller. In SDN, a series of flows for packets from the reception of a packet by the input side edge switch to the transmission of the packet by the output side edge switch is a flow. Flows can be defined by specific applications in the OpenFlow architecture. In this regard, open flows become a kind of SDN.
도 2는 본 발명의 일 실시 예에 따른 SDN의 구성도이다.2 is a block diagram of an SDN according to an embodiment of the present invention.
도 2를 참조하면, 호스트들(24,26)은 SDN 스위치(20)에 연결되며, SDN 스위치(20)는 SDN 컨트롤러(22)에 연결된다. 도 2에서는 한 개의 SDN 스위치(20)와 SDN 컨트롤러(22)만을 도시하였으나, 이는 설명을 용이하게 위한 것으로 이 구조는 확장 가능하다.2, the
SDN 스위치(20)는 플로우 테이블(flow table)(200)을 가진다. 플로우 테이블(200)은 룰(매치 조건)에 따라 패킷이 처리되어야 할 액션(처리 내용)을 정의한 플로우 엔트리(flow entry)를 가진 테이블이다. 플로우 엔트리에는 오픈플로우 아키텍처에서 정의한 룰과 액션이 정의된다.The
플로우 엔트리의 룰은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address), 송신원 어드레스(Source Address), 수신처 포트(Destination Port), 송신원 포트(Source Port) 등에 기초하여 정의되고 식별 가능하다.The rule of the flow entry includes a destination address, a source address, a destination port, a source port (source address) included in the header area of each protocol layer of the packet as defined in the open flow, Port) and the like.
플로우 엔트리의 액션은 오픈플로우에서 정의한 바와 같이 "특정한 포트에 출력한다(OUT)", "폐기한다(DROP)" 등과 같은 동작을 나타낸다. 예를 들어, SDN 스위치(20)는 플로우 엔트리의 액션에 출력 포트의 식별 데이터가 나타나 있으면 이 식별 데이터에 대응하는 포트에 패킷을 출력하고, 출력 포트의 식별 데이터가 나타나 있지 않으면 패킷을 폐기한다. SDN 스위치(20)는 플로우 테이블(200)에 등록된 플로우 엔트리의 룰에 따른 패킷 군에 플로우 엔트리의 액션을 수행한다.The action of a flow entry indicates an operation such as " output to a specific port (OUT) ", "DROP ", and the like as defined in the open flow. For example, the
SDN 컨트롤러(22)는 플로우 엔트리를 생성하여 이를 SDN 스위치(20)에 전송하고, SDN 스위치(20)는 전송받은 플로우 엔트리를 이용하여 플로우 테이블(200)을 구성한다. SDN 스위치(20)의 플로우 테이블(200)은 TCAM(Ternary Content Addressable Memory) 등과 같은 메모리의 크기 제약 또는 버퍼 오버플로우를 방지하기 위하여 최대 크기가 정해져 있다고 가정한다.The
일 실시 예에 따른 SDN 컨트롤러(22)는 플로우 테이블(200)을 다수의 구역(Zone)으로 구분하고 각 구역의 임계값을 설정한다. 이때, SDN 컨트롤러(22)는 각 구역에 대해 상한 임계값과 하한 임계값을 쌍을 지어 구성할 수 있다. 예를 들어, 플로우 테이블의 사용률(Occupancy Level)에 따라, 제1 구역은 제1 상한 임계값과 제1 하한 임계값으로 구성되고, 제2 구역은 제2 상한 임계값과 제2 하한 임계값으로 구성되고, 제3 구역은 제3 상한 임계값과 제3 하한 임계값으로 구성된다. 각 구역은 구역 간에 서로 구역이 겹치지 않을 수도 있고 겹칠 수도 있다. 플로우 테이블의 사용률은 (%) 단위로 표시될 수 있고, 플로우 테이블의 남은 공간 또는 사용한 공간으로 정의될 수 있다. 각 구역 설정 및 각 구역 내 임계값 설정은 전술한 예에 한정되지 않고 네트워크 환경에 따라 변경 가능하다.The
SDN 컨트롤러(22)는 플로우 테이블(200)의 각 구역의 상태에 변경이 발생하면, 예를 들어 소정의 구역 내에서 사용률이 미리 설정된 상한 임계값에 도달하면 플로우 테이블(200)을 구성하는 플로우 엔트리에 대한 관리방식을 변경한다. 이를 위해, SDN 스위치(20)는 각 구역의 임계값에 도달할 때마다 이를 통보하는 메시지를 SDN 컨트롤러(22)에 전송하고, SDN 컨트롤러(22)는 SDN 스위치(20)로부터 구역의 변경을 통보 받게 된다. 예를 들어, 소정의 구역 내에서 상한 임계값에 도달하는 경우 상한 임계값 도달을 알리는 메시지를 SDN 스위치(20)로부터 통보 받을 수 있다. 다른 예로 하한 임계값에 도달하는 경우 하한 임계값 도달을 알리는 메시지를 SDN 스위치(20)로부터 통보 받을 수 있다. 또 다른 예로 소정의 구역 내 상한 임계값 도달을 알리는 메시지를 한 번 통보 받으면, 해당 구역 내 하한 임계값에 도달하기 이전까지는 SDN 스위치(20)가 상한 임계값 도달을 알리는 메시지의 추가 발생을 차단함에 따라 메시지 전송이 중복되는 현상을 차단한다.When a change occurs in the state of each zone of the flow table 200, for example, when the utilization rate reaches a preset upper limit threshold value in the predetermined area, the
구역 변경을 알리는 메시지를 통보 받은 SDN 컨트롤러(22)는 변경된 상황에 적합한 플로우 테이블 관리 메커니즘을 SDN 스위치(20)에 적용하여 플로우 테이블(200)을 차등 관리한다. 예를 들면, 도 2에 도시된 바와 같이 플로우 테이블(200)의 구역 변경에 따라 플로우 테이블 관리 메커니즘 1,2,3을 각각 적용한다. 플로우 테이블(200)을 구성하는 플로우 엔트리는 다양한 플로우 테이블 관리 메커니즘을 지원하기 위해, 플로우 엔트리 잔여시간(lifetime), 플로우 엔트리 사용 빈도 수(frequency), 플로우 엔트리 지속시간(age) 등의 속성을 가진다. SDN 스위치(20)는 전술한 각 속성 또는 속성들의 조합을 이용하여 다양한 플로우 테이블 관리 메커니즘을 플로우 테이블(200)에 적용한다.The
플로우 테이블(200)에 대한 차등적 관리 메커니즘 적용에 의해 다양한 보안문제를 해결할 수 있다. 예를 들어, 제1 호스트(24)가 악의적인 사용자인 경우, 플러딩 공격(Flooding attack)의 한 방법으로 단순히 Source IP 주소를 변경해 가면서 패킷을 SDN 스위치(20)로 흘리면, 일반적으로 그 모든 패킷들은 SDN 컨트롤러(22)로 전송되고 다시 SDN 컨트롤러(22)에서 SDN 스위치(20)의 플로우 테이블에 전송정보가 기록되게 된다. 이때, SDN 스위치(20)의 플로우 테이블에 기록된 정보가 너무 많을 경우, 정해진 메모리의 한계를 넘게 되어 더 이상의 플로우가 기록되지 않게 된다. 그러나, 본 발명에 의하면, 플로우 테이블의 사용률이 미리 설정된 임계값을 넘게 되면, 새로 추가되는 플로우 엔트리의 잔여시간을 감소시키거나, 교체 가능 엔트리는 제거하는 방식 등의 관리 메커니즘을 적용할 수 있다. 이에 따라, SDN 스위치(20)의 플로우 테이블의 상태, 특히 악의적인 사용자나 사용자의 실수로 인해 플러딩 공격(Flooding attack) 등이 발생한 상태에서 효율적인 플로우 테이블 관리가 가능하다.Various security problems can be solved by applying a differential management mechanism to the flow table 200. For example, if the
도 3은 본 발명의 일 실시 예에 따른 플로우 테이블의 사용률에 따라 차등화된 플로우 테이블 관리 메커니즘을 보여주는 그래프이다.FIG. 3 is a graph showing a flow table management mechanism differentiated according to the usage rate of a flow table according to an embodiment of the present invention.
도 3을 참조하면, 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 구역으로 구분할 수 있다. 그리고, 각 구역은 상한 임계값과 하한 임계값이 쌍으로 구성될 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 플로우 테이블의 사용률에 따라, 제1 구역은 제1 상한 임계값(1st up_threshold)과 제1 하한 임계값(1st down_threshold)을 쌍으로 가지고, 제2 구역은 제2 상한 임계값(2nd up_threshold)과 제2 하한 임계값(2nd down_threshold)을 쌍으로 가지며, 제N 구역은 제n 상한 임계값(nth up_threshold)과 제n 하한 임계값(nth down_threshold)을 쌍으로 가진다. 각 구역은 서로 일부 구역이 겹치지 않을 수도 있고 겹칠 수도 있다.Referring to FIG. 3, the flow table can be divided into a plurality of zones according to a usage rate of the flow table. And, each zone can be composed of a pair of an upper threshold value and a lower threshold value. For example, as shown in FIG. 3, according to the usage rate of the flow table, the first zone has a first upper threshold value (1 st up_threshold) and a first lower threshold value (1 st down_threshold) 2 zone has a pair of a second upper threshold value (2 nd up_threshold) and a second lower threshold value (2 nd down_threshold), and an N th zone has an nth upper threshold value (n th up_threshold) n th down_threshold). Each zone may or may not overlap some of the zones.
각 구역 별로 차등화된 플로우 테이블 관리 메커니즘을 예를 들면, 제1 구역의 제1 상한 임계값(1st up_threshold)에 도달하지 이전까지는, SDN 컨트롤러는 SDN 스위치에 플로우 테이블 관리 메커니즘 1을 적용한다. 그러다, 플로우 테이블의 사용률이 제1 상한 임계값(1st up_threshold)을 넘으면 제2 상한 임계값(2nd up_threshold)에 도달하기 이전까지 SDN 컨트롤러는 SDN 스위치에 플로우 테이블 관리 메커니즘 2를 적용한다. 그러다, 플로우 테이블의 사용률이 제2 상한 임계값(2nd up_threshold)를 넘어서면 SDN 컨트롤러는 SDN 스위치에 플로우 테이블 관리 메커니즘 N을 적용한다. 그러나, 도 3을 참조로 하여 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐 플로우 테이블의 사용률에 따른 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.Prior to reaching the first upper bound threshold (1 st up_threshold) of the first zone, the SDN controller applies the flow
도 4는 본 발명의 일 실시 예에 따른 플로우 테이블 관리방법을 도시한 흐름도이다.4 is a flowchart illustrating a flow table management method according to an embodiment of the present invention.
도 4를 참조하면, SDN 스위치(20)가 새로운 패킷을 수신(400)하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다(410). 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 존재하지 않으면 SDN 스위치(20)는 수신 패킷을 SDN 컨트롤러(22)에 전송한다(420). SDN 컨트롤러(22)가 수신 패킷을 SDN 스위치(20)로부터 전송 받는 것을 오픈플로우에서는 패킷 인(Packet_IN)이라 한다.Referring to FIG. 4, when the
SDN 스위치(20)로부터 패킷 인 메시지를 수신한 SDN 컨트롤러(22)는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성(430)하고 생성된 플로우 엔트리 추가를 SDN 스위치(20)에 지시한다. 구체적으로, SDN 컨트롤러(22)는 SDN 컨트롤러(22)에서 지정한 플로우 테이블 관리 메커니즘에 의해 플로우 테이블(200)의 삽입 지점(Insertion Point)에 새로운 플로우 엔트리를 삽입한다(440). 삽입 지점은 플로우 테이블 관리 메커니즘의 종류에 따라 플로우 테이블의 헤드(head)나 테일(tail)일 수 있다. 또는 다른 위치일 수도 있다. 그러면, SDN 스위치(20)는 새로운 플로우 엔트리가 추가된 플로우 테이블을 구성한다.The
플로우 엔트리 추가 또는 제거 등의 이벤트가 발생하면, SDN 스위치(20)는 이에 관련된 이벤트 메시지를 SDN 컨트롤러(22)에 통보한다(450). 또는 SDN 스위치(20)는 플로우 테이블의 상태를 주기적으로 확인하다가 플로우 테이블의 상태가 변경되는 경우, 예를 들어 플로우 테이블의 사용률이 미리 지정한 임계값을 넘어서는 경우, 이에 관련된 이벤트 메시지를 SDN 컨트롤러(22)에 통보한다. 미리 지정한 임계값은 구역 내 상한 임계값 또는 하한 임계값일 수 있다. SDN 컨트롤러(22)는 통보 메시지에 대한 응답으로 SDN 스위치(20)에 현재의 플로우 테이블 상황에 적합한 플로우 테이블 관리 메커니즘을 적용한다(460).When an event such as adding or removing a flow entry occurs, the
도 5는 본 발명의 일 실시 예에 따른 잔여시간이 적용된 플로우 엔트리의 구조도이다.5 is a structural diagram of a flow entry to which a residual time is applied according to an embodiment of the present invention.
도 5를 참조하면, 플로우 엔트리는 룰(500), 액션(510) 및 잔여시간(Lifetime)(520) 필드를 포함한다.Referring to FIG. 5, a flow entry includes a
룰(500)은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address: DA), 송신원 어드레스(Source Address: SA), 수신처 포트(Destination Port: Dst Port), 송신원 포트(Source Port: Src Port) 등과 같은 플로우 식별자(flow identifier)로 구성된다. 액션(510)은 패킷을 어떻게 처리해야 할지를 알려주는 것으로서, 예를 들어 도 5에 도시된 바와 같이 포트 X로의 패킷 전송을 지시한다.The
잔여시간(520)은 해당 플로우 엔트리가 플로우 테이블에서 제거되기 이전까지 잔류할 수 있는 시간(remaining time)을 의미한다. 잔여시간(520)은 SDN 컨트롤러에 의하여 설정되는데, SDN 컨트롤러는 잔여시간(520)의 길이뿐만 아니라 종류까지 설정할 수 있다. 예를 들어, 절대 잔여시간(Hard timeout) 또는 유휴 잔여시간(idle timeout)을 설정할 수 있다. 절대 잔여시간(Hard timeout)은 플로우 엔트리가 플로우 테이블에 잔류할 수 있는 절대적인 시간을 의미하고, 유휴 잔여시간(idle timeout) 더 이상 플로우 엔트리가 사용이 되지 않았을 때 플로우 엔트리가 플로우 테이블에 잔류할 수 있는 시간을 의미한다.The remaining
도 6은 본 발명의 일 실시 예에 따른 플로우 엔트리 유휴 잔여시간(idle timeout)을 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프이다.6 is a graph illustrating a flow table management mechanism using a flow entry idle timeout according to an embodiment of the present invention.
도 6을 참조하면, SDN 스위치는 처음 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 있지 않으면 SDN 스위치는 수신 패킷을 SDN 컨트롤러에 전송한다. 그러면, SDN 컨트롤러는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 생성된 플로우 엔트리 추가를 SDN 스위치에 지시한다. 이때, 새로운 플로우 엔트리는 플로우 테이블의 미리 설정된 삽입 지점에 삽입된다.Referring to FIG. 6, upon receiving a packet for the first time, the SDN switch refers to a flow table to search for a flow entry matching a match condition with a received packet. At this time, if the flow entry whose matching condition matches the received packet is not in the flow table, the SDN switch transmits the received packet to the SDN controller. The SDN controller then creates a new flow entry for processing the incoming packet and instructs the SDN switch to add the created flow entry. At this time, a new flow entry is inserted at a predetermined insertion point of the flow table.
이어서, SDN 스위치는 플로우 테이블의 사용률을 감시하고 있다가, 사용률의 변경이 발생하면 이를 SDN 컨트롤러에 통보한다. 예를 들어, 도 6에 도시된 바와 같이, 플로우 테이블은 사용률에 따라 제1 구역은 하한 임계값이 0%이고 상한 임계값은 30%이며, 제2 구역은 하한 임계값이 30%이고 상한 임계값은 65%이며, 제3 구역은 하한 임계값이 65%이고 상한 임계값은 100%이다. 이때, SDN 스위치는 도 6에 도시된 바와 같이 사용률 0%에서 30%까지의 제1 구역에서는 SDN 컨트롤러가 새로 생성되는 플로우 엔트리에 대해 유휴 잔여시간을 5초로 설정한다. 그러다, 사용률이 30%를 넘어서서 65%까지의 제2 구역에서는 SDN 컨트롤러가 새로 생성되는 플로우 엔트리에 대해 미리 설정된 유휴 잔여시간, 예를 들어 1.5초의 유휴 잔여시간을 차감한다. 그러다, 사용률이 65%를 넘어서서 100%까지의 제3 구역에서는 SDN 컨트롤러가 새로 생성되는 플로우 엔트리에 대해 사용률 증가율에 비례하여 유휴 잔여시간을 차감하거나 해당 플로우 엔트리를 제거한다. 즉, 서서히 잔여시간을 차감하여 잔여시간을 0으로 만들 수도 있고, 바로 제거할 수도 있다. 한편, 도 6을 참조로 하여 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 각 구역의 임계값 설정과 구역 변경에 따른 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.Then, the SDN switch monitors the usage rate of the flow table, and notifies the SDN controller when a change in utilization rate occurs. For example, as shown in FIG. 6, the flow table has a lower limit threshold value of 0% and an upper limit threshold value of 30% in the first zone and a lower limit threshold value of 30% in the second zone, Value is 65%, the third zone has a lower threshold value of 65% and the upper threshold value is 100%. At this time, as shown in FIG. 6, the SDN switch sets the idle remaining time to 5 seconds for the flow entry newly created by the SDN controller in the first zone from 0% to 30% of usage rate. Then, in a second zone with utilization above 30% and up to 65%, the SDN controller subtracts the preset idle time remaining for the newly created flow entry, for example 1.5 seconds idle time remaining. Then, in the third zone with a usage rate exceeding 65% and up to 100%, the SDN controller subtracts the idle remaining time or removes the corresponding flow entry in proportion to the usage rate increase rate for the newly created flow entry. That is, the remaining time may be gradually reduced to zero or may be immediately removed. Meanwhile, the above-described example with reference to FIG. 6 is only one embodiment for facilitating understanding of the present invention, and the flow table management mechanism according to the threshold setting and zone change of each zone can be variously modified.
도 7은 본 발명의 일 실시 예에 따른 사용 빈도 수가 적용된 플로우 엔트리의 구조도이다.7 is a structural diagram of a flow entry to which a frequency of use according to an embodiment of the present invention is applied.
도 7을 참조하면, 플로우 엔트리는 룰(700), 액션(710) 및 빈도 수(720) 필드를 포함한다.Referring to FIG. 7, a flow entry includes a
룰(700)은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address: DA), 송신원 어드레스(Source Address: SA), 수신처 포트(Destination Port: Dst Port), 송신원 포트(Source Port: Src Port) 등과 같은 플로우 식별자(flow identifier)로 구성된다. 액션(710)은 패킷을 어떻게 처리해야 할지를 알려주는 것으로서, 예를 들어 도 7에 도시된 바와 같이 포트 X로의 패킷 전송을 지시한다.The
빈도 수(720)는 플로우 엔트리의 사용 빈도를 의미한다. 플로우 엔트리 매치가 발생할 때마다 빈도 수(720)는 증가할 수 있다. 유휴 잔여시간이 경과되면, 빈도 수(720)는 줄어들거나 또는 초기화될 수 있다. 빈도 수(720)를 기준으로 플로우 엔트리는 활성 플로우 엔트리(Active entries)와 교체 가능한 플로우 엔트리(Replaceable entries)로 분류될 수 있다. 예를 들어, 미리 설정된 활성 값을 넘으면 플로우 엔트리는 활성화 플로우 엔트리로 분류되고, 미리 설정된 활성 값을 넘지 못하면 플로우 엔트리는 교체 가능한 플로우 엔트리로 분류된다. SDN 컨트롤러는 분류된 플로우 엔트리의 종류를 기준으로 플로우 엔트리를 차등 관리한다. 예를 들어, 활성화 엔트리는 보호하고 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓴다(overwrite).The
도 8은 본 발명의 일 실시 예에 따른 플로우 엔트리 사용 빈도 수를 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프이다.8 is a graph illustrating a flow table management mechanism using a flow entry frequency of use according to an embodiment of the present invention.
도 8을 참조하면, SDN 스위치는 처음 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 있지 않으면 SDN 스위치는 수신 패킷을 SDN 컨트롤러에 전송한다. 그러면, SDN 컨트롤러는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 생성된 플로우 엔트리 추가를 SDN 스위치에 지시한다. 이때, SDN 컨트롤러의 지시에 따라 새로운 플로우 엔트리는 플로우 테이블의 미리 설정된 삽입 지점에 삽입된다.Referring to FIG. 8, when the SDN switch receives a packet for the first time, it refers to the flow table and searches for a flow entry matching a match condition with the received packet. At this time, if the flow entry whose matching condition matches the received packet is not in the flow table, the SDN switch transmits the received packet to the SDN controller. The SDN controller then creates a new flow entry for processing the incoming packet and instructs the SDN switch to add the created flow entry. At this time, a new flow entry is inserted into the preset insertion point of the flow table according to the instruction of the SDN controller.
일 실시 예에 따르면, 새로운 플로우 엔트리를 대체 가능한 플로우 엔트리(Replaceable Entries)(810)의 최 하단인 테일에 삽입하는 것이 아니라, 도 8에 도시된 바와 같이 대체 가능한 플로우 엔트리(810)와 활성 플로우 엔트리(Active Entries)(800) 사이의 삽입 지점(Insertion Point)(820)에 삽입한다. 대체 가능한 플로우 엔트리(810)의 테일 부분으로 새로운 플로우 엔트리가 삽입되면 새로운 플로우가 계속 들어오는 상황에서는 활성 플로우 엔트리(800)라도 바로 제거될(flush out) 가능성이 크다. 따라서, 이를 방지하기 위해서 대체 가능한 플로우 엔트리(810)의 최 하단이 아닌 위치(820)에 새로운 플로우 엔트리를 삽입한다.According to one embodiment, instead of inserting a new flow entry into the tail at the lowermost end of a replaceable flowable entry (Replaceable Entries) 810, a
일 실시 예에 따르면, 소정의 플로우 엔트리가 사용될 때마다 빈도 수를 증가시킨다. 또한, 특정 시간(interval), 예를 들어 5초가 지나면 빈도 수를 초기화하거나 감소시킨다. 소정의 플로우 엔트리의 빈도 수가 증가하거나 감소함에 따라 해당 플로우 엔트리는 활성 플로우 엔트리(800)로 분류되거나 대체 가능한 플로우 엔트리(810)로 분류될 수 있다.According to one embodiment, the number of frequencies is increased whenever a given flow entry is used. Also, the frequency number is initialized or decreased after a specific time interval (for example, 5 seconds). As the frequency of a given flow entry increases or decreases, the flow entry may be classified as an
일 실시 예에 따른 SDN 컨트롤러는 플로우 테이블의 사용률이 증가하여 미리 설정된 임계값에 도달하면, 활성화 엔트리는 보호하고 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓴다.The SDN controller according to one embodiment protects the activation entry and overwrites the replaceable entry with a new flow entry if the usage rate of the flow table increases to reach a predetermined threshold value.
도 9는 본 발명의 일 실시 예에 따른 지속시간이 적용된 플로우 엔트리의 구조도이다.9 is a structural diagram of a flow entry to which a duration is applied according to an embodiment of the present invention.
도 9를 참조하면, 플로우 엔트리는 룰(900), 액션(910) 및 지속시간(920) 필드를 포함한다.Referring to FIG. 9, a flow entry includes a
룰(900)은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address: DA), 송신원 어드레스(Source Address: SA), 수신처 포트(Destination Port: Dst Port), 송신원 포트(Source Port: Src Port) 등과 같은 플로우 식별자(flow identifier)로 구성된다. 액션(910)은 패킷을 어떻게 처리해야 할지를 알려주는 것으로서, 예를 들어 도 9에 도시된 바와 같이 포트 X로의 패킷 전송을 지시한다.The
지속시간(920)은 플로우 엔트리가 플로우 테이블에 잔류한 시간을 의미한다. 예를 들어, 잔여시간이 5초인 상황에서 지속시간(920)이 50초라는 것은 최소한 5초에 한 번씩 패킷을 수신했다는 것을 의미이고, 오랜 기간 플로우 테이블에 잔류했다는 것은 특정 상황에서는 유효한 플로우인지 여부를 판단하는 중요한 요소(factor)가 된다.The
이하, 플로우 엔트리 지속시간(920)에 따른 플로우 테이블 관리 메커니즘을 설명한다.Hereinafter, the flow table management mechanism according to the
우선, SDN 스위치는 처음 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 있지 않으면 SDN 스위치는 수신 패킷을 SDN 컨트롤러에 전송한다. 그러면, SDN 컨트롤러는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 생성된 플로우 엔트리 추가를 SDN 스위치에 지시한다. First, when receiving the packet for the first time, the SDN switch refers to the flow table to search for a flow entry matching the received packet with the match condition. At this time, if the flow entry whose matching condition matches the received packet is not in the flow table, the SDN switch transmits the received packet to the SDN controller. The SDN controller then creates a new flow entry for processing the incoming packet and instructs the SDN switch to add the created flow entry.
이어서, SDN 스위치는 플로우 테이블의 사용률을 감시하고 있다가, 사용률의 변경이 발생하면 이를 SDN 컨트롤러에 통보한다. 예를 들어, SDN 스위치는 사용률 30%, 65% 및 100%에서 각각 사용률 변경을 통보한다. 사용률 30%에서 발생하는 통보에는 SDN 컨트롤러는 특별한 메커니즘을 적용하지 않는다. 또한, 사용률 65%에서 발생하는 통보에도 SDN 컨트롤러는 특별한 메커니즘을 적용하지 않는다. 그러다, 사용률 100%에서 발생하는 통보에는 SDN 컨트롤러의 지시에 따라 SDN 스위치가 각 플로우 엔트리의 지속시간(920)을 확인한다. 이때, SDN 스위치는 지속시간이 미리 설정된 시간, 예를 들어 10초 미만인 플로우 엔트리를 전부 제거하고, 미리 설정된 시간 이상인 플로우 엔트리는 보호한다. 이 경우, 플러딩 공격(Flooding attack) 등과 같은 비정상적 상황에서 오래 머물고 있는 유효한 플로우 엔트리를 보호하면서 동시에 플로우 테이블의 저장공간을 확보할 수 있다. 한편, 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.Then, the SDN switch monitors the usage rate of the flow table, and notifies the SDN controller when a change in utilization rate occurs. For example, an SDN switch reports usage changes at 30%, 65%, and 100% utilization, respectively. The SDN controller does not apply any special mechanism for notifications that occur at 30% utilization. In addition, the SDN controller does not apply any special mechanism for notifications that occur at 65% utilization. The SDN switch confirms the duration (920) of each flow entry according to the instructions of the SDN controller. At this time, the SDN switch removes all the flow entries whose duration is less than the predetermined time, for example, 10 seconds, and protects the flow entries that are longer than the predetermined time. In this case, it is possible to secure a storage space of the flow table at the same time while protecting a valid flow entry staying in an abnormal situation such as a flooding attack. Meanwhile, the above-described example is only one embodiment for facilitating understanding of the present invention, and the flow table management mechanism may be variously modified.
한편, 도 5 내지 도 9를 참조로 하여 전술한 플로우 테이블 관리 메커니즘을 조합하여 플로우 테이블을 관리할 수 있다. 예를 들어, 사용률이 30%를 넘어서서 발생하는 SDN 스위치의 통보에는 SDN 컨트롤러가 SDN 스위치에 해당 플로우 엔트리의 잔여시간을 2초 차감하는 메커니즘을 적용한다. 그러다, 사용률 65%를 넘어서서 발생하는 SDN 스위치의 통보에는 SDN 컨트롤러가 SDN 스위치에 잔여시간 차감 메커니즘과 함께 플로우 엔트리의 빈도 수가 설정 값 이하인 대체 가능한 플로우 엔트리를 제거하는 메커니즘을 적용한다. 그러다, 사용률 100%에서 발생하는 SDN 스위치의 통보에는 SDN 컨트롤러가 SDN 스위치에 잔여시간 차감 메커니즘 및 빈도 수를 이용한 대체 가능 플로우 엔트리 제거 메커니즘과 함께 지속시간이 10초 미만인 플로우 엔트리를 제거하는 메커니즘까지 적용한다. 한편, 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.On the other hand, the flow tables can be managed by combining the above-described flow table management mechanisms with reference to FIGS. 5 to 9. FIG. For example, in an SDN switch notification that occurs when utilization exceeds 30%, the SDN controller applies a mechanism to the SDN switch to subtract the remaining time of the flow entry by two seconds. However, the notification of an SDN switch that occurs beyond 65% of utilization applies a mechanism in which the SDN controller removes an alternate flow entry whose frequency number of flow entries is less than or equal to the set value, along with the remaining time subtraction mechanism on the SDN switch. However, SDN switch notification at 100% Utilization includes a mechanism to remove flow entries with a duration of less than 10 seconds, along with a replaceable flow entry removal mechanism using an SDN controller with SDN switch remaining time subtraction mechanism and frequency do. Meanwhile, the above-described example is only one embodiment for facilitating understanding of the present invention, and the flow table management mechanism may be variously modified.
도 10은 본 발명의 일 실시 예에 따른 네트워크 장치(10)의 구성도이다.10 is a configuration diagram of a
네트워크 장치(10)는 SDN 스위치이고, SDN 스위치를 제어하는 컨트롤러는 SDN 컨트롤러일 수 있다. 도 10을 참조하면, 네트워크 장치(10)는 통신부(100), 테이블 관리부(110) 및 패킷 처리부(120)를 포함한다.The
통신부(100)는 플로우 테이블의 상태 변경을 컨트롤러에 통보하고 플로우 테이블의 상태가 반영된 플로우 테이블 관리방식을 컨트롤러로부터 지시 받는다. 테이블 관리부(110)는 통신부(100)를 통해 지시 받은 플로우 테이블 관리방식에 따라 플로우 테이블을 관리한다.The
패킷 처리부(120)는 플로우 테이블을 이용하여 수신 패킷을 처리한다. 예를 들어, 패킷 처리부(120)는 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 존재하지 않으면 통신부(100)를 통해 수신 패킷을 컨트롤러에 전송한다. 이에 비해, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 존재하면 해당 플로우 엔트리를 참조하여 수신 패킷을 처리한다.The
일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분한다. 예를 들어, 플로우 테이블의 사용률에 따라 여러 구역으로 구분하고, 구분된 각 구역은 상한 임계값과 하한 임계값을 쌍으로 가진다. 구역 구분 및 각 구역의 임계값 설정은 이에 한정되지 않고 네트워크 환경에 따라 변경 가능하다.The
일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 엔트리의 잔여시간을 조절한다. 예를 들어, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 감소시킨다.The
구체적으로, 플로우 테이블 관리부(110)는 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면, 예를 들어 사용률이 65%가 되면, 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감한다. 또한, 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면, 예를 들어 사용률이 90%가 되면, 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거한다.Specifically, when the usage rate of the flow table increases and the flow table status changes from the first status to the second status, for example, when the usage rate reaches 65%, the flow
일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 엔트리의 사용 빈도 수를 기준으로 플로우 엔트리를 관리한다. 예를 들어, 테이블 관리부(110)는 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하고, 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓴다.The
일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 엔트리의 지속시간을 기준으로 플로우 엔트리를 관리한다. 예를 들어, 테이블 관리부(110)는 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하며, 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거한다.The
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The embodiments of the present invention have been described above. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.
10: 네트워크 장치 12: 컨트롤러
20: SDN 스위치 22: SDN 컨트롤러
24, 26: 호스트 100: 통신부
110: 테이블 관리부 120: 패킷 처리부
200: 플로우 테이블10: Network device 12: Controller
20: SDN switch 22: SDN controller
24, 26: host 100: communication unit
110: table management unit 120: packet processing unit
200: Flow table
Claims (28)
상기 네트워크 장치로부터 플로우 테이블의 상태 변경을 통보 받는 단계; 및
변경된 플로우 테이블의 상태를 반영하여 플로우 테이블을 관리하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.Dividing the flow table into a plurality of states according to a usage rate of the flow table in the network device;
Receiving a change of state of a flow table from the network device; And
Managing the flow table by reflecting the state of the changed flow table;
The method comprising the steps of:
플로우 테이블을 다수의 구역으로 구분하고, 각 구역에 대한 임계값을 설정하는 것을 특징으로 하는 플로우 테이블 관리방법.2. The method of claim 1,
Wherein the flow table is divided into a plurality of zones, and a threshold value for each zone is set.
플로우 테이블의 각 구역에 대해 상한 임계값과 하한 임계값이 쌍으로 가지도록 구성하는 것을 특징으로 하는 플로우 테이블 관리방법.3. The method of claim 2, wherein the dividing into the plurality of states comprises:
Wherein the upper limit threshold value and the lower threshold value are paired with respect to each section of the flow table.
플로우 테이블 사용률이 미리 설정된 상한 임계값에 도달하는 경우에 상기 네트워크 장치로부터 상한 임계값 도달을 통보하는 메시지를 수신하는 것을 특징으로 하는 플로우 테이블 관리방법.The method of claim 1, wherein the step of notifying the state change of the flow table
When the flow table usage rate reaches a predetermined upper limit threshold value, receives a message notifying the upper limit threshold value from the network device.
플로우 테이블 사용률이 미리 설정된 하한 임계값에 도달하는 경우에 상기 네트워크 장치로부터 하한 임계값 도달을 통보하는 메시지를 수신하는 것을 특징으로 하는 플로우 테이블 관리방법.The method of claim 1, wherein the step of notifying the state change of the flow table
When the flow table usage rate reaches a preset lower threshold value, receives a message notifying the network device of the arrival of the lower threshold value.
플로우 테이블의 상태가 변경되면 변경된 상태에 따라 플로우 테이블을 구성하는 플로우 엔트리에 대한 관리방식을 결정하는 단계; 및
상기 결정된 관리방식을 포함한 지시를 상기 네트워크 장치에 전송하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.The method of claim 1, wherein managing the flow table comprises:
Determining a management method for a flow entry constituting a flow table according to a changed state when the state of the flow table is changed; And
Transmitting an instruction including the determined management method to the network device;
The method comprising the steps of:
플로우 테이블의 사용률에 따라 플로우 엔트리의 잔여시간을 조절하거나 해당 플로우 엔트리를 제거하는 것을 특징으로 하는 플로우 테이블 관리방법.The method of claim 1, wherein managing the flow table comprises:
Wherein the remaining time of the flow entry is adjusted or the corresponding flow entry is removed according to the usage rate of the flow table.
플로우 테이블의 사용률에 따라 플로우 엔트리의 사용 빈도 수를 기준으로 플로우 엔트리를 관리하는 것을 특징으로 하는 플로우 테이블 관리방법.The method of claim 1, wherein managing the flow table comprises:
And managing the flow entry based on the frequency of use of the flow entry according to the utilization rate of the flow table.
플로우 테이블의 사용률에 따라 플로우 엔트리의 지속시간을 기준으로 플로우 엔트리를 관리하는 것을 특징으로 하는 플로우 테이블 관리방법.The method of claim 1, wherein managing the flow table comprises:
And managing the flow entry based on the duration of the flow entry according to the usage rate of the flow table.
새로운 플로우 엔트리를 플로우 테이블의 미리 설정된 삽입 지점에 삽입하는 단계;
를 더 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.The method of claim 1, wherein the flow table management method comprises:
Inserting a new flow entry into a predetermined insertion point of the flow table;
Further comprising the steps of:
사용 빈도 수에 따라 분류된 대체 가능 플로우 엔트리와 활성 플로우 엔트리의 사이에 새로운 플로우 엔트리를 삽입하는 것을 특징으로 하는 플로우 테이블 관리방법.11. The method of claim 10, wherein inserting into the insertion point
Wherein a new flow entry is inserted between the replaceable flow entry and the active flow entry classified according to the frequency of use.
플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계; 및
상기 구분된 플로우 테이블의 상태를 반영하여 상기 설정된 플로우 엔트리의 속성을 결정하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.Setting an attribute of a flow entry constituting a flow table in the network device;
Dividing the flow table into a plurality of states according to a usage rate of the flow table; And
Determining an attribute of the set flow entry by reflecting the state of the distinguished flow table;
The method comprising the steps of:
사용되는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 절대 잔여시간을 설정하는 단계; 및
사용되지 않는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 유휴 잔여시간을 설정하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.13. The method of claim 12, wherein setting the attributes of the flow entry comprises:
Setting a remaining absolute time remaining in the flow table for the used flow entry; And
Setting a remaining idle remaining time in the flow table for an unused flow entry;
The method comprising the steps of:
플로우 테이블 내에서 수신 패킷과 매칭되는 플로우 엔트리가 존재하면 해당 플로우 엔트리의 사용 빈도 수를 증가시키는 단계; 및
미리 설정된 시간이 경과되면 해당 플로우 엔트리의 사용 빈도 수를 초기화하거나 감소시키는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.13. The method of claim 12, wherein setting the attributes of the flow entry comprises:
Increasing the frequency of use of the flow entry if there is a flow entry matching the received packet in the flow table; And
Initializing or decreasing a frequency of use of the flow entry when a predetermined time elapses;
The method comprising the steps of:
플로우 엔트리의 사용 빈도 수 증감에 따라 사용 빈도 수가 미리 설정된 활성화 값을 넘으면 해당 플로우 엔트리를 활성화 엔트리로 설정하는 단계; 및
사용 빈도 수가 미리 설정된 활성화 값을 넘지 못하면 교체 가능 엔트리로 설정하는 단계;
를 더 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.15. The method of claim 14, wherein setting the attribute of the flow entry comprises:
Setting a corresponding flow entry as an activation entry if the number of used frequencies exceeds a preset activation value according to an increase or decrease in the frequency of use of the flow entry; And
Setting a replaceable entry if the number of used frequencies does not exceed a preset activation value;
Further comprising the steps of:
플로우 테이블 내에 플로우 엔트리가 잔류한 지속시간을 설정하는 것을 특징으로 하는 플로우 테이블 관리방법.13. The method of claim 12, wherein setting the attributes of the flow entry comprises:
And sets the duration of the flow entry remaining in the flow table.
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 감소시키거나 해당 플로우 엔트리를 제거하는 것을 특징으로 하는 플로우 테이블 관리방법.13. The method of claim 12, wherein determining the attribute of the set flow entry comprises:
And decreasing the remaining time of the newly added flow entry or removing the corresponding flow entry when the usage rate of the flow table is increased and the state of the flow table is changed.
플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하는 단계; 및
플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.18. The method of claim 17, wherein determining the attribute of the set flow entry comprises:
Subtracting the remaining time of the newly added flow entry by a preset time when the flow table state is changed from the first state to the second state due to an increase in the usage rate of the flow table; And
Subtracting the remaining time of the newly added flow entry in proportion to the use rate increase rate of the flow table or removing the corresponding flow entry when the use rate of the flow table increases and the flow table state changes from the second state to the third state;
The method comprising the steps of:
상기 구분된 플로우 테이블의 상태에 따라 플로우 엔트리의 속성을 이용하여 플로우 엔트리의 처리방식을 결정하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.Dividing the flow table into a plurality of states according to a usage rate of the flow table in the network device; And
Determining a processing method of a flow entry by using an attribute of the flow entry according to the state of the separated flow table;
The method comprising the steps of:
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 사용 빈도 수를 확인하는 단계;
확인된 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하는 단계; 및
확인된 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓰는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.20. The method of claim 19, wherein determining the processing type of the flow entry comprises:
Confirming the frequency of use of each flow entry constituting the flow table when the usage rate of the flow table is increased and the state of the flow table is changed;
Protecting an activation entry having an identified frequency of use frequency equal to or greater than a predetermined activation value; And
Removing or replacing a replaceable entry whose confirmed frequency of use is less than or equal to a preset active value with a new flow entry;
The method comprising the steps of:
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 지속시간을 확인하는 단계;
확인된 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하는 단계; 및
확인된 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.20. The method of claim 19, wherein determining the processing type of the flow entry comprises:
Confirming the duration of each flow entry constituting the flow table when the usage rate of the flow table increases and the state of the flow table changes;
Protecting a flow entry whose confirmed duration is greater than a preset time; And
Removing a flow entry whose confirmed duration is less than a predetermined time;
The method comprising the steps of:
상기 통신부를 통해 지시 받은 플로우 테이블 관리방식에 따라 플로우 테이블을 관리하는 테이블 관리부; 및
플로우 테이블을 이용하여 수신 패킷을 처리하는 패킷 처리부;
를 포함하는 것을 특징으로 하는 네트워크 장치.A communication unit for notifying the controller of the state change of the flow table and for instructing a flow table management method in which the state of the flow table is reflected;
A table management unit for managing a flow table according to a flow table management method instructed through the communication unit; And
A packet processing unit for processing a received packet using a flow table;
Lt; RTI ID = 0.0 > 1, < / RTI >
상기 네트워크 장치는 소프트웨어 정의 네트워크 스위치이고, 상기 컨트롤러는 소프트웨어 정의 네트워크 컨트롤러인 것을 특징으로 하는 네트워크 장치.23. The method of claim 22,
Wherein the network device is a software defined network switch and the controller is a software defined network controller.
플로우 테이블의 사용률에 따라 플로우 테이블을 상한 임계값과 하한 임계값이 쌍으로 구성된 다수의 구역으로 구분하는 것을 특징으로 하는 네트워크 장치.23. The apparatus of claim 22, wherein the table management unit
Wherein the flow table is divided into a plurality of zones constituted by pairs of an upper threshold value and a lower threshold value according to a usage rate of the flow table.
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 감소시키거나 해당 플로우 엔트리를 제거하는 것을 특징으로 하는 네트워크 장치.The apparatus of claim 22, wherein the flow table management unit
Wherein the controller reduces the remaining time of the newly added flow entry or removes the corresponding flow entry according to the flow table management method instructed by the controller when the usage rate of the flow table increases and the state of the flow table changes.
플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하고, 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거하는 것을 특징으로 하는 네트워크 장치.The method of claim 25, wherein the flow table management unit
If the flow table state is changed from the first state to the second state due to an increase in the usage rate of the flow table, the remaining time of the newly added flow entry is subtracted by a preset time according to the flow table management method instructed from the controller, When the state changes from the second state to the third state, deducts the remaining time of the newly added flow entry in proportion to the use rate increase rate of the flow table, or removes the corresponding flow entry.
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하고, 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓰는 것을 특징으로 하는 네트워크 장치.The apparatus of claim 22, wherein the flow table management unit
If the usage rate of the flow table is increased and the state of the flow table is changed, an activation entry having a frequency of use more than a preset activation value is protected according to a flow table management system instructed by the controller. Is removed or overwritten with a new flow entry.
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하며, 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거하는 것을 특징으로 하는 네트워크 장치.The apparatus of claim 22, wherein the flow table management unit
If the usage rate of the flow table increases and the state of the flow table changes, a flow entry whose duration is longer than a preset time is protected according to the flow table management method instructed from the controller, and the flow entry whose duration is shorter than a preset time Said network device comprising:
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/589,077 US20150195183A1 (en) | 2014-01-06 | 2015-01-05 | Method and apparatus for managing flow table |
CN201510003772.5A CN104767634A (en) | 2014-01-06 | 2015-01-05 | Method and apparatus for managing flow table |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20140001470 | 2014-01-06 | ||
KR1020140001470 | 2014-01-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150082060A true KR20150082060A (en) | 2015-07-15 |
KR101818082B1 KR101818082B1 (en) | 2018-02-21 |
Family
ID=53793728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140092606A KR101818082B1 (en) | 2014-01-06 | 2014-07-22 | A method and apparatus for managing flow table |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101818082B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101674169B1 (en) * | 2015-08-17 | 2016-11-08 | 성균관대학교산학협력단 | Openflow switch and management methid of flow table |
KR102387102B1 (en) * | 2020-11-13 | 2022-04-14 | 숭실대학교 산학협력단 | System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE525800C2 (en) * | 2002-10-30 | 2005-04-26 | Packetfront Sweden Ab | Device and router in a broadband network that works by transmitting packet flows, with a software flow switched by a central processor unit and a hardware switched accelerated flow |
US8503307B2 (en) * | 2010-05-10 | 2013-08-06 | Hewlett-Packard Development Company, L.P. | Distributing decision making in a centralized flow routing system |
-
2014
- 2014-07-22 KR KR1020140092606A patent/KR101818082B1/en active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101674169B1 (en) * | 2015-08-17 | 2016-11-08 | 성균관대학교산학협력단 | Openflow switch and management methid of flow table |
KR102387102B1 (en) * | 2020-11-13 | 2022-04-14 | 숭실대학교 산학협력단 | System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network |
Also Published As
Publication number | Publication date |
---|---|
KR101818082B1 (en) | 2018-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150195183A1 (en) | Method and apparatus for managing flow table | |
US8085755B2 (en) | Data driven route advertisement | |
EP2676410B1 (en) | Flow communication system | |
US9276852B2 (en) | Communication system, forwarding node, received packet process method, and program | |
US20130135999A1 (en) | Destination-based congestion control | |
WO2011083682A1 (en) | Switch network system, controller, and control method | |
US10193890B2 (en) | Communication apparatus to manage whitelist information | |
US20140241349A1 (en) | Openflow switch and packet processing method thereof | |
US10630590B2 (en) | Credit loop deadlock detection and recovery in arbitrary topology networks | |
US10104000B2 (en) | Reducing control plane overload of a network device | |
US9712332B2 (en) | Node directed multicast traffic management systems and methods for mesh networks | |
CN111669336A (en) | Low cost congestion isolation for lossless ethernet | |
US20170359310A1 (en) | Bypassing a firewall for authorized flows using software defined networking | |
US20130250763A1 (en) | Method and Apparatus for Control Plane CPU Overload Protection | |
WO2013114489A1 (en) | Control method, control apparatus, communication system, and program | |
US9769064B2 (en) | Communication node, packet processing method and program | |
US20160285682A1 (en) | Switch apparatus, vlan setting management method and program | |
CN109391550B (en) | Network element with congestion aware matching table | |
JP6571591B2 (en) | Terminal isolation notification system | |
KR101818082B1 (en) | A method and apparatus for managing flow table | |
US10462064B2 (en) | Maximum transmission unit installation for network traffic along a datapath in a software defined network | |
CN102546587B (en) | Prevent gateway system Session Resources by the method that maliciously exhausts and device | |
US9537764B2 (en) | Communication apparatus, control apparatus, communication system, communication method, method for controlling communication apparatus, and program | |
JP6466279B2 (en) | Communication device | |
US20170105137A1 (en) | Method for reducing load by filtering out broadcast messages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |