KR101818082B1 - 플로우 테이블 관리 방법 및 그 장치 - Google Patents

플로우 테이블 관리 방법 및 그 장치 Download PDF

Info

Publication number
KR101818082B1
KR101818082B1 KR1020140092606A KR20140092606A KR101818082B1 KR 101818082 B1 KR101818082 B1 KR 101818082B1 KR 1020140092606 A KR1020140092606 A KR 1020140092606A KR 20140092606 A KR20140092606 A KR 20140092606A KR 101818082 B1 KR101818082 B1 KR 101818082B1
Authority
KR
South Korea
Prior art keywords
flow table
flow
entry
state
flow entry
Prior art date
Application number
KR1020140092606A
Other languages
English (en)
Other versions
KR20150082060A (ko
Inventor
박세형
강세훈
이병준
신지수
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US14/589,077 priority Critical patent/US20150195183A1/en
Priority to CN201510003772.5A priority patent/CN104767634A/zh
Publication of KR20150082060A publication Critical patent/KR20150082060A/ko
Application granted granted Critical
Publication of KR101818082B1 publication Critical patent/KR101818082B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow 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

플로우 테이블 관리 방법 및 그 장치 {A method and apparatus for managing flow table}
본 발명은 소프트웨어 정의 네트워크에 관한 것으로, 보다 상세하게는 소프트웨어 정의 네트워크에서의 플로우 처리 및 테이블 관리기술에 관한 것이다.
소프트웨어 정의 네트워크(Software Defined Network: 이하 SDN이라 칭함)는 네트워크의 전송 평면(transport plane)과 제어 평면(control plane)이 분리된다. 전송 평면은 패킷 전송에 필요한 모든 결정을 제어 평면에 질의하고, 제어 평면이 전송 평면에 설치된 소프트웨어를 통해 네트워크 구성과 패킷 흐름을 중앙 집중식으로 제어한다. SDN에서 전송 평면은 SDN 기반 SDN 스위치라 부르고, 제어 평면은 통상 SDN 컨트롤러(controller)라고 부른다.
SDN 기술은 네트워크의 제어 평면을 SDN 컨트롤러에 집중시킴으로써 소프트웨어를 통해 패킷 전송 과정을 제어할 수 있도록 한다. 현재의 SDN 스위치의 플로우 테이블의 구조 상 플로우 엔트리 수에 상당한 제한이 있으므로 원활할 통신을 위해서는 플로우 테이블의 수위(Occupancy level or vacancy level)에 따라 다양한 플로우 테이블 관리 기법을 적용하여야 한다. 그러나, 현재의 SDN 스위치의 플로우 테이블은 초기 단계이므로 단 하나의 기법만 적용 가능하므로 네트워크에서 발생할 수 있는 다양한 상황에 효과적으로 테이블 관리 기법을 수위에 따라 변화시키면 대응할 수 없어 네트워크 서비스가 중단되거나 심각한 장애를 일으킬 수 있다.
일 실시 예에 따라, SDN 전송 평면에 해당하는 SDN 스위치의 플로우 테이블을 효율적으로 관리할 수 있는 플로우 테이블 관리 방법 및 그 장치를 제안한다.
일 실시 예에 따른 플로우 테이블 관리방법은, 네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계와, 네트워크 장치로부터 플로우 테이블의 상태 변경을 통보 받는 단계와, 변경된 플로우 테이블의 상태를 반영하여 플로우 테이블을 관리하는 단계를 포함한다.
다수의 상태로 구분하는 단계에서, 플로우 테이블을 다수의 구역으로 구분하고, 각 구역에 대한 임계값을 설정할 수 있는데, 특히 플로우 테이블의 각 구역에 대해 상한 임계값과 하한 임계값이 쌍으로 가지도록 구성할 수 있다.
플로우 테이블의 상태 변경을 통보 받는 단계에서, 플로우 테이블 사용률이 미리 설정된 상한 임계값에 도달하는 경우에 네트워크 장치로부터 상한 임계값 도달을 통보하는 메시지를 수신할 수 있다. 또는 플로우 테이블 사용률이 미리 설정된 하한 임계값에 도달하는 경우에 네트워크 장치로부터 하한 임계값 도달을 통보하는 메시지를 수신할 수 있다.
플로우 테이블을 관리하는 단계에서, 플로우 테이블의 상태가 변경되면 변경된 상태에 따라 플로우 테이블을 구성하는 플로우 엔트리에 대한 관리방식을 결정하고, 결정된 관리방식을 포함하는 지시를 네트워크 장치에 전송할 수 있다.
플로우 테이블을 관리하는 단계에서, 플로우 테이블의 사용률에 따라 플로우 엔트리의 잔여시간을 조절하거나 해당 플로우 엔트리를 제거할 수 있다. 또는 플로우 테이블의 사용률에 따라 플로우 엔트리의 사용 빈도 수를 기준으로 플로우 엔트리를 관리할 수 있다. 또는 플로우 테이블의 사용률에 따라 플로우 엔트리의 지속시간을 기준으로 플로우 엔트리를 관리할 수 있다.
플로우 테이블 관리방법은, 새로운 플로우 엔트리를 플로우 테이블의 미리 설정된 삽입 지점에 삽입하는 단계를 더 포함할 수 있다. 이때, 사용 빈도 수에 따라 분류된 대체 가능 플로우 엔트리와 활성 플로우 엔트리의 사이에 새로운 플로우 엔트리를 삽입할 수 있다.
다른 실시 예에 따른 플로우 테이블 관리방법은, 네트워크 장치 내 플로우 테이블을 구성하는 플로우 엔트리의 속성을 설정하는 단계와, 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계와, 구분된 플로우 테이블의 상태를 반영하여 설정된 플로우 엔트리의 속성을 결정하는 단계를 포함한다.
플로우 엔트리의 속성을 설정하는 단계에서, 사용되는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 절대 잔여시간을 설정하고, 사용되지 않는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 유휴 잔여시간을 설정할 수 있다.
플로우 엔트리의 속성을 설정하는 단계에서, 플로우 테이블 내에서 수신 패킷과 매칭되는 플로우 엔트리가 존재하면 해당 플로우 엔트리의 사용 빈도 수를 증가시키고, 미리 설정된 시간이 경과되면 해당 플로우 엔트리의 사용 빈도 수를 초기화하거나 감소시킬 수 있다. 이때, 플로우 엔트리의 사용 빈도 수 증감에 따라 사용 빈도 수가 미리 설정된 활성화 값을 넘으면 해당 플로우 엔트리를 활성화 엔트리로 설정하고, 사용 빈도 수가 미리 설정된 활성화 값을 넘지 못하면 교체 가능 엔트리로 설정할 수 있다.
플로우 엔트리의 속성을 설정하는 단계에서, 플로우 테이블 내에 플로우 엔트리가 잔류한 지속시간을 설정할 수 있다.
설정된 플로우 엔트리의 속성을 결정하는 단계에서, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 감소시킬 수 있다. 이때, 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하고, 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거할 수 있다.
또 다른 실시 예에 따른 플로우 테이블 관리방법은, 네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계와, 구분된 플로우 테이블의 상태에 따라 플로우 엔트리의 속성을 이용하여 플로우 엔트리의 처리방식을 결정하는 단계를 포함한다.
플로우 엔트리의 처리방식을 결정하는 단계는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 사용 빈도 수를 확인하는 단계와, 확인된 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하는 단계와, 확인된 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓰는 단계를 포함할 수 있다.
플로우 엔트리의 처리방식을 결정하는 단계는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 지속시간을 확인하는 단계와, 확인된 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하는 단계와, 확인된 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거하는 단계를 포함할 수 있다.
또 다른 실시 예에 따른 네트워크 장치는, 플로우 테이블의 상태 변경을 컨트롤러에 통보하고 플로우 테이블의 상태가 반영된 플로우 테이블 관리방식을 지시 받는 통신부와, 통신부를 통해 지시 받은 플로우 테이블 관리방식에 따라 플로우 테이블을 관리하는 테이블 관리부와, 플로우 테이블을 이용하여 수신 패킷을 처리하는 패킷 처리부를 포함한다. 이때, 네트워크 장치는 소프트웨어 정의 네트워크 스위치이고, 컨트롤러는 소프트웨어 정의 네트워크 컨트롤러일 수 있다.
테이블 관리부는, 플로우 테이블의 사용률에 따라 플로우 테이블을 상한 임계값과 하한 임계값이 쌍으로 구성된 다수의 구역으로 구분할 수 있다.
플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 감소시킬 수 있다. 이때, 플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하고, 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거할 수 있다.
플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하고, 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓸 수 있다.
플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하며, 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거할 수 있다.
일 실시 예에 따르면, SDN 스위치 내 플로우 테이블의 상태를 반영하여 적응적으로 플로우 테이블 관리가 가능하고, 네트워크에 변화가 심하거나, 짧은 시간 동안 지속되는 플로우가 많은 경우, 또는 악의적인 사용자나 사용자의 실수로 인해 플러딩 공격(Flooding attack) 등이 발생한 상태에서도 효율적인 플로우 테이블 관리가 가능하다.
특히, 플로우 테이블의 사용률에 따라 다양한 플로우 테이블 관리 메커니즘을 적용하여 최적의 플로우 테이블 관리를 제공할 수 있다. 예를 들어, 플로우 테이블의 사용률에 대한 상한 임계값과 하한 임계값을 지정하고, 지정된 상한 임계값 또는 하한 임계값에 도달할 때마다 그에 맞는 플로우 테이블 관리방식을 적용하여 유효한 플로우 엔트리에 영향을 미치지 않으면서 플로우 테이블을 효율적이고 안정적으로 운용할 수 있다. 나아가, SDN의 안정성을 높이고 SDN 스위치와 SDN 컨트롤러 간의 전송 메시지를 줄일 수 있다.
도 1은 본 발명의 일 실시 예에 따른 네트워크 구성도,
도 2는 본 발명의 일 실시 예에 따른 SDN의 구성도,
도 3은 본 발명의 일 실시 예에 따른 플로우 테이블의 사용률에 따라 차등화된 플로우 테이블 관리 메커니즘을 보여주는 그래프,
도 4는 본 발명의 일 실시 예에 따른 플로우 테이블 관리방법을 도시한 흐름도,
도 5는 본 발명의 일 실시 예에 따른 잔여시간이 적용된 플로우 엔트리의 구조도,
도 6은 본 발명의 일 실시 예에 따른 플로우 엔트리 유휴 잔여시간(idle timeout)을 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프,
도 7은 본 발명의 일 실시 예에 따른 사용 빈도 수가 적용된 플로우 엔트리의 구조도,
도 8은 본 발명의 일 실시 예에 따른 플로우 엔트리 사용 빈도 수를 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프,
도 9는 본 발명의 일 실시 예에 따른 지속시간이 적용된 플로우 엔트리의 구조도,
도 10은 본 발명의 일 실시 예에 따른 네트워크 장치의 구성도이다.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시 예에 따른 네트워크 구성도이다.
도 1을 참조하면, 네트워크는 네트워크 장치(10)와 컨트롤러(12)를 포함한다. 네트워크에서는 플로우(flow)를 이용하여 통신 가능하다. 플로우는 패킷의 수신부터 송신까지 패킷에 대한 일련의 흐름을 의미한다. 네트워크 장치(10)는 패킷 처리에 필요한 모든 결정을 컨트롤러(12)에 질의하고, 컨트롤러(12)는 네트워크 구성 및 네트워크 장치(10)를 통한 패킷 처리를 제어한다. 전술한 특징을 가진 네트워크를 소프트웨어 정의 네트워크(Software Defined Network: 이하 SDN이라 칭함)라 한다. 이하, 후술되는 상세한 설명에서는 SDN을 중심으로 설명한다.
SDN에서 네트워크 장치는 SDN 스위치이고 컨트롤러는 SDN 컨트롤러일 수 있다. SDN 컨트롤러는 SDN 스위치를 중앙집중 방식으로 관리한다. SDN 스위치는 SDN 컨트롤러의 제어를 받는 에지 스위치(edge switch) 또는 코어 스위치(core switch)일 수 있다. SDN에서 입력 측 에지 스위치에 의한 패킷 수신으로부터 출력 측 에지 스위치에 의한 패킷 송신까지 패킷에 대한 일련의 흐름이 플로우가 된다. 플로우는 오픈플로우(OpenFlow) 아키텍처의 특정 애플리케이션에 의해 정의될 수 있다. 이런 점에서 오픈플로우는 SDN의 한 종류가 된다.
도 2는 본 발명의 일 실시 예에 따른 SDN의 구성도이다.
도 2를 참조하면, 호스트들(24,26)은 SDN 스위치(20)에 연결되며, SDN 스위치(20)는 SDN 컨트롤러(22)에 연결된다. 도 2에서는 한 개의 SDN 스위치(20)와 SDN 컨트롤러(22)만을 도시하였으나, 이는 설명을 용이하게 위한 것으로 이 구조는 확장 가능하다.
SDN 스위치(20)는 플로우 테이블(flow table)(200)을 가진다. 플로우 테이블(200)은 룰(매치 조건)에 따라 패킷이 처리되어야 할 액션(처리 내용)을 정의한 플로우 엔트리(flow entry)를 가진 테이블이다. 플로우 엔트리에는 오픈플로우 아키텍처에서 정의한 룰과 액션이 정의된다.
플로우 엔트리의 룰은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address), 송신원 어드레스(Source Address), 수신처 포트(Destination Port), 송신원 포트(Source Port) 등에 기초하여 정의되고 식별 가능하다.
플로우 엔트리의 액션은 오픈플로우에서 정의한 바와 같이 "특정한 포트에 출력한다(OUT)", "폐기한다(DROP)" 등과 같은 동작을 나타낸다. 예를 들어, SDN 스위치(20)는 플로우 엔트리의 액션에 출력 포트의 식별 데이터가 나타나 있으면 이 식별 데이터에 대응하는 포트에 패킷을 출력하고, 출력 포트의 식별 데이터가 나타나 있지 않으면 패킷을 폐기한다. SDN 스위치(20)는 플로우 테이블(200)에 등록된 플로우 엔트리의 룰에 따른 패킷 군에 플로우 엔트리의 액션을 수행한다.
SDN 컨트롤러(22)는 플로우 엔트리를 생성하여 이를 SDN 스위치(20)에 전송하고, SDN 스위치(20)는 전송받은 플로우 엔트리를 이용하여 플로우 테이블(200)을 구성한다. SDN 스위치(20)의 플로우 테이블(200)은 TCAM(Ternary Content Addressable Memory) 등과 같은 메모리의 크기 제약 또는 버퍼 오버플로우를 방지하기 위하여 최대 크기가 정해져 있다고 가정한다.
일 실시 예에 따른 SDN 컨트롤러(22)는 플로우 테이블(200)을 다수의 구역(Zone)으로 구분하고 각 구역의 임계값을 설정한다. 이때, SDN 컨트롤러(22)는 각 구역에 대해 상한 임계값과 하한 임계값을 쌍을 지어 구성할 수 있다. 예를 들어, 플로우 테이블의 사용률(Occupancy Level)에 따라, 제1 구역은 제1 상한 임계값과 제1 하한 임계값으로 구성되고, 제2 구역은 제2 상한 임계값과 제2 하한 임계값으로 구성되고, 제3 구역은 제3 상한 임계값과 제3 하한 임계값으로 구성된다. 각 구역은 구역 간에 서로 구역이 겹치지 않을 수도 있고 겹칠 수도 있다. 플로우 테이블의 사용률은 (%) 단위로 표시될 수 있고, 플로우 테이블의 남은 공간 또는 사용한 공간으로 정의될 수 있다. 각 구역 설정 및 각 구역 내 임계값 설정은 전술한 예에 한정되지 않고 네트워크 환경에 따라 변경 가능하다.
SDN 컨트롤러(22)는 플로우 테이블(200)의 각 구역의 상태에 변경이 발생하면, 예를 들어 소정의 구역 내에서 사용률이 미리 설정된 상한 임계값에 도달하면 플로우 테이블(200)을 구성하는 플로우 엔트리에 대한 관리방식을 변경한다. 이를 위해, SDN 스위치(20)는 각 구역의 임계값에 도달할 때마다 이를 통보하는 메시지를 SDN 컨트롤러(22)에 전송하고, SDN 컨트롤러(22)는 SDN 스위치(20)로부터 구역의 변경을 통보 받게 된다. 예를 들어, 소정의 구역 내에서 상한 임계값에 도달하는 경우 상한 임계값 도달을 알리는 메시지를 SDN 스위치(20)로부터 통보 받을 수 있다. 다른 예로 하한 임계값에 도달하는 경우 하한 임계값 도달을 알리는 메시지를 SDN 스위치(20)로부터 통보 받을 수 있다. 또 다른 예로 소정의 구역 내 상한 임계값 도달을 알리는 메시지를 한 번 통보 받으면, 해당 구역 내 하한 임계값에 도달하기 이전까지는 SDN 스위치(20)가 상한 임계값 도달을 알리는 메시지의 추가 발생을 차단함에 따라 메시지 전송이 중복되는 현상을 차단한다.
구역 변경을 알리는 메시지를 통보 받은 SDN 컨트롤러(22)는 변경된 상황에 적합한 플로우 테이블 관리 메커니즘을 SDN 스위치(20)에 적용하여 플로우 테이블(200)을 차등 관리한다. 예를 들면, 도 2에 도시된 바와 같이 플로우 테이블(200)의 구역 변경에 따라 플로우 테이블 관리 메커니즘 1,2,3을 각각 적용한다. 플로우 테이블(200)을 구성하는 플로우 엔트리는 다양한 플로우 테이블 관리 메커니즘을 지원하기 위해, 플로우 엔트리 잔여시간(lifetime), 플로우 엔트리 사용 빈도 수(frequency), 플로우 엔트리 지속시간(age) 등의 속성을 가진다. SDN 스위치(20)는 전술한 각 속성 또는 속성들의 조합을 이용하여 다양한 플로우 테이블 관리 메커니즘을 플로우 테이블(200)에 적용한다.
플로우 테이블(200)에 대한 차등적 관리 메커니즘 적용에 의해 다양한 보안문제를 해결할 수 있다. 예를 들어, 제1 호스트(24)가 악의적인 사용자인 경우, 플러딩 공격(Flooding attack)의 한 방법으로 단순히 Source IP 주소를 변경해 가면서 패킷을 SDN 스위치(20)로 흘리면, 일반적으로 그 모든 패킷들은 SDN 컨트롤러(22)로 전송되고 다시 SDN 컨트롤러(22)에서 SDN 스위치(20)의 플로우 테이블에 전송정보가 기록되게 된다. 이때, SDN 스위치(20)의 플로우 테이블에 기록된 정보가 너무 많을 경우, 정해진 메모리의 한계를 넘게 되어 더 이상의 플로우가 기록되지 않게 된다. 그러나, 본 발명에 의하면, 플로우 테이블의 사용률이 미리 설정된 임계값을 넘게 되면, 새로 추가되는 플로우 엔트리의 잔여시간을 감소시키거나, 교체 가능 엔트리는 제거하는 방식 등의 관리 메커니즘을 적용할 수 있다. 이에 따라, SDN 스위치(20)의 플로우 테이블의 상태, 특히 악의적인 사용자나 사용자의 실수로 인해 플러딩 공격(Flooding attack) 등이 발생한 상태에서 효율적인 플로우 테이블 관리가 가능하다.
도 3은 본 발명의 일 실시 예에 따른 플로우 테이블의 사용률에 따라 차등화된 플로우 테이블 관리 메커니즘을 보여주는 그래프이다.
도 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)을 쌍으로 가진다. 각 구역은 서로 일부 구역이 겹치지 않을 수도 있고 겹칠 수도 있다.
각 구역 별로 차등화된 플로우 테이블 관리 메커니즘을 예를 들면, 제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을 참조로 하여 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐 플로우 테이블의 사용률에 따른 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.
도 4는 본 발명의 일 실시 예에 따른 플로우 테이블 관리방법을 도시한 흐름도이다.
도 4를 참조하면, SDN 스위치(20)가 새로운 패킷을 수신(400)하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다(410). 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 존재하지 않으면 SDN 스위치(20)는 수신 패킷을 SDN 컨트롤러(22)에 전송한다(420). SDN 컨트롤러(22)가 수신 패킷을 SDN 스위치(20)로부터 전송 받는 것을 오픈플로우에서는 패킷 인(Packet_IN)이라 한다.
SDN 스위치(20)로부터 패킷 인 메시지를 수신한 SDN 컨트롤러(22)는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성(430)하고 생성된 플로우 엔트리 추가를 SDN 스위치(20)에 지시한다. 구체적으로, SDN 컨트롤러(22)는 SDN 컨트롤러(22)에서 지정한 플로우 테이블 관리 메커니즘에 의해 플로우 테이블(200)의 삽입 지점(Insertion Point)에 새로운 플로우 엔트리를 삽입한다(440). 삽입 지점은 플로우 테이블 관리 메커니즘의 종류에 따라 플로우 테이블의 헤드(head)나 테일(tail)일 수 있다. 또는 다른 위치일 수도 있다. 그러면, SDN 스위치(20)는 새로운 플로우 엔트리가 추가된 플로우 테이블을 구성한다.
플로우 엔트리 추가 또는 제거 등의 이벤트가 발생하면, SDN 스위치(20)는 이에 관련된 이벤트 메시지를 SDN 컨트롤러(22)에 통보한다(450). 또는 SDN 스위치(20)는 플로우 테이블의 상태를 주기적으로 확인하다가 플로우 테이블의 상태가 변경되는 경우, 예를 들어 플로우 테이블의 사용률이 미리 지정한 임계값을 넘어서는 경우, 이에 관련된 이벤트 메시지를 SDN 컨트롤러(22)에 통보한다. 미리 지정한 임계값은 구역 내 상한 임계값 또는 하한 임계값일 수 있다. SDN 컨트롤러(22)는 통보 메시지에 대한 응답으로 SDN 스위치(20)에 현재의 플로우 테이블 상황에 적합한 플로우 테이블 관리 메커니즘을 적용한다(460).
도 5는 본 발명의 일 실시 예에 따른 잔여시간이 적용된 플로우 엔트리의 구조도이다.
도 5를 참조하면, 플로우 엔트리는 룰(500), 액션(510) 및 잔여시간(Lifetime)(520) 필드를 포함한다.
룰(500)은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address: DA), 송신원 어드레스(Source Address: SA), 수신처 포트(Destination Port: Dst Port), 송신원 포트(Source Port: Src Port) 등과 같은 플로우 식별자(flow identifier)로 구성된다. 액션(510)은 패킷을 어떻게 처리해야 할지를 알려주는 것으로서, 예를 들어 도 5에 도시된 바와 같이 포트 X로의 패킷 전송을 지시한다.
잔여시간(520)은 해당 플로우 엔트리가 플로우 테이블에서 제거되기 이전까지 잔류할 수 있는 시간(remaining time)을 의미한다. 잔여시간(520)은 SDN 컨트롤러에 의하여 설정되는데, SDN 컨트롤러는 잔여시간(520)의 길이뿐만 아니라 종류까지 설정할 수 있다. 예를 들어, 절대 잔여시간(Hard timeout) 또는 유휴 잔여시간(idle timeout)을 설정할 수 있다. 절대 잔여시간(Hard timeout)은 플로우 엔트리가 플로우 테이블에 잔류할 수 있는 절대적인 시간을 의미하고, 유휴 잔여시간(idle timeout) 더 이상 플로우 엔트리가 사용이 되지 않았을 때 플로우 엔트리가 플로우 테이블에 잔류할 수 있는 시간을 의미한다.
도 6은 본 발명의 일 실시 예에 따른 플로우 엔트리 유휴 잔여시간(idle timeout)을 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프이다.
도 6을 참조하면, SDN 스위치는 처음 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 있지 않으면 SDN 스위치는 수신 패킷을 SDN 컨트롤러에 전송한다. 그러면, SDN 컨트롤러는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 생성된 플로우 엔트리 추가를 SDN 스위치에 지시한다. 이때, 새로운 플로우 엔트리는 플로우 테이블의 미리 설정된 삽입 지점에 삽입된다.
이어서, 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을 참조로 하여 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 각 구역의 임계값 설정과 구역 변경에 따른 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.
도 7은 본 발명의 일 실시 예에 따른 사용 빈도 수가 적용된 플로우 엔트리의 구조도이다.
도 7을 참조하면, 플로우 엔트리는 룰(700), 액션(710) 및 빈도 수(720) 필드를 포함한다.
룰(700)은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address: DA), 송신원 어드레스(Source Address: SA), 수신처 포트(Destination Port: Dst Port), 송신원 포트(Source Port: Src Port) 등과 같은 플로우 식별자(flow identifier)로 구성된다. 액션(710)은 패킷을 어떻게 처리해야 할지를 알려주는 것으로서, 예를 들어 도 7에 도시된 바와 같이 포트 X로의 패킷 전송을 지시한다.
빈도 수(720)는 플로우 엔트리의 사용 빈도를 의미한다. 플로우 엔트리 매치가 발생할 때마다 빈도 수(720)는 증가할 수 있다. 유휴 잔여시간이 경과되면, 빈도 수(720)는 줄어들거나 또는 초기화될 수 있다. 빈도 수(720)를 기준으로 플로우 엔트리는 활성 플로우 엔트리(Active entries)와 교체 가능한 플로우 엔트리(Replaceable entries)로 분류될 수 있다. 예를 들어, 미리 설정된 활성 값을 넘으면 플로우 엔트리는 활성화 플로우 엔트리로 분류되고, 미리 설정된 활성 값을 넘지 못하면 플로우 엔트리는 교체 가능한 플로우 엔트리로 분류된다. SDN 컨트롤러는 분류된 플로우 엔트리의 종류를 기준으로 플로우 엔트리를 차등 관리한다. 예를 들어, 활성화 엔트리는 보호하고 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓴다(overwrite).
도 8은 본 발명의 일 실시 예에 따른 플로우 엔트리 사용 빈도 수를 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프이다.
도 8을 참조하면, SDN 스위치는 처음 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 있지 않으면 SDN 스위치는 수신 패킷을 SDN 컨트롤러에 전송한다. 그러면, SDN 컨트롤러는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 생성된 플로우 엔트리 추가를 SDN 스위치에 지시한다. 이때, SDN 컨트롤러의 지시에 따라 새로운 플로우 엔트리는 플로우 테이블의 미리 설정된 삽입 지점에 삽입된다.
일 실시 예에 따르면, 새로운 플로우 엔트리를 대체 가능한 플로우 엔트리(Replaceable Entries)(810)의 최 하단인 테일에 삽입하는 것이 아니라, 도 8에 도시된 바와 같이 대체 가능한 플로우 엔트리(810)와 활성 플로우 엔트리(Active Entries)(800) 사이의 삽입 지점(Insertion Point)(820)에 삽입한다. 대체 가능한 플로우 엔트리(810)의 테일 부분으로 새로운 플로우 엔트리가 삽입되면 새로운 플로우가 계속 들어오는 상황에서는 활성 플로우 엔트리(800)라도 바로 제거될(flush out) 가능성이 크다. 따라서, 이를 방지하기 위해서 대체 가능한 플로우 엔트리(810)의 최 하단이 아닌 위치(820)에 새로운 플로우 엔트리를 삽입한다.
일 실시 예에 따르면, 소정의 플로우 엔트리가 사용될 때마다 빈도 수를 증가시킨다. 또한, 특정 시간(interval), 예를 들어 5초가 지나면 빈도 수를 초기화하거나 감소시킨다. 소정의 플로우 엔트리의 빈도 수가 증가하거나 감소함에 따라 해당 플로우 엔트리는 활성 플로우 엔트리(800)로 분류되거나 대체 가능한 플로우 엔트리(810)로 분류될 수 있다.
일 실시 예에 따른 SDN 컨트롤러는 플로우 테이블의 사용률이 증가하여 미리 설정된 임계값에 도달하면, 활성화 엔트리는 보호하고 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓴다.
도 9는 본 발명의 일 실시 예에 따른 지속시간이 적용된 플로우 엔트리의 구조도이다.
도 9를 참조하면, 플로우 엔트리는 룰(900), 액션(910) 및 지속시간(920) 필드를 포함한다.
룰(900)은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address: DA), 송신원 어드레스(Source Address: SA), 수신처 포트(Destination Port: Dst Port), 송신원 포트(Source Port: Src Port) 등과 같은 플로우 식별자(flow identifier)로 구성된다. 액션(910)은 패킷을 어떻게 처리해야 할지를 알려주는 것으로서, 예를 들어 도 9에 도시된 바와 같이 포트 X로의 패킷 전송을 지시한다.
지속시간(920)은 플로우 엔트리가 플로우 테이블에 잔류한 시간을 의미한다. 예를 들어, 잔여시간이 5초인 상황에서 지속시간(920)이 50초라는 것은 최소한 5초에 한 번씩 패킷을 수신했다는 것을 의미이고, 오랜 기간 플로우 테이블에 잔류했다는 것은 특정 상황에서는 유효한 플로우인지 여부를 판단하는 중요한 요소(factor)가 된다.
이하, 플로우 엔트리 지속시간(920)에 따른 플로우 테이블 관리 메커니즘을 설명한다.
우선, SDN 스위치는 처음 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 있지 않으면 SDN 스위치는 수신 패킷을 SDN 컨트롤러에 전송한다. 그러면, SDN 컨트롤러는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 생성된 플로우 엔트리 추가를 SDN 스위치에 지시한다.
이어서, SDN 스위치는 플로우 테이블의 사용률을 감시하고 있다가, 사용률의 변경이 발생하면 이를 SDN 컨트롤러에 통보한다. 예를 들어, SDN 스위치는 사용률 30%, 65% 및 100%에서 각각 사용률 변경을 통보한다. 사용률 30%에서 발생하는 통보에는 SDN 컨트롤러는 특별한 메커니즘을 적용하지 않는다. 또한, 사용률 65%에서 발생하는 통보에도 SDN 컨트롤러는 특별한 메커니즘을 적용하지 않는다. 그러다, 사용률 100%에서 발생하는 통보에는 SDN 컨트롤러의 지시에 따라 SDN 스위치가 각 플로우 엔트리의 지속시간(920)을 확인한다. 이때, SDN 스위치는 지속시간이 미리 설정된 시간, 예를 들어 10초 미만인 플로우 엔트리를 전부 제거하고, 미리 설정된 시간 이상인 플로우 엔트리는 보호한다. 이 경우, 플러딩 공격(Flooding attack) 등과 같은 비정상적 상황에서 오래 머물고 있는 유효한 플로우 엔트리를 보호하면서 동시에 플로우 테이블의 저장공간을 확보할 수 있다. 한편, 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.
한편, 도 5 내지 도 9를 참조로 하여 전술한 플로우 테이블 관리 메커니즘을 조합하여 플로우 테이블을 관리할 수 있다. 예를 들어, 사용률이 30%를 넘어서서 발생하는 SDN 스위치의 통보에는 SDN 컨트롤러가 SDN 스위치에 해당 플로우 엔트리의 잔여시간을 2초 차감하는 메커니즘을 적용한다. 그러다, 사용률 65%를 넘어서서 발생하는 SDN 스위치의 통보에는 SDN 컨트롤러가 SDN 스위치에 잔여시간 차감 메커니즘과 함께 플로우 엔트리의 빈도 수가 설정 값 이하인 대체 가능한 플로우 엔트리를 제거하는 메커니즘을 적용한다. 그러다, 사용률 100%에서 발생하는 SDN 스위치의 통보에는 SDN 컨트롤러가 SDN 스위치에 잔여시간 차감 메커니즘 및 빈도 수를 이용한 대체 가능 플로우 엔트리 제거 메커니즘과 함께 지속시간이 10초 미만인 플로우 엔트리를 제거하는 메커니즘까지 적용한다. 한편, 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.
도 10은 본 발명의 일 실시 예에 따른 네트워크 장치(10)의 구성도이다.
네트워크 장치(10)는 SDN 스위치이고, SDN 스위치를 제어하는 컨트롤러는 SDN 컨트롤러일 수 있다. 도 10을 참조하면, 네트워크 장치(10)는 통신부(100), 테이블 관리부(110) 및 패킷 처리부(120)를 포함한다.
통신부(100)는 플로우 테이블의 상태 변경을 컨트롤러에 통보하고 플로우 테이블의 상태가 반영된 플로우 테이블 관리방식을 컨트롤러로부터 지시 받는다. 테이블 관리부(110)는 통신부(100)를 통해 지시 받은 플로우 테이블 관리방식에 따라 플로우 테이블을 관리한다.
패킷 처리부(120)는 플로우 테이블을 이용하여 수신 패킷을 처리한다. 예를 들어, 패킷 처리부(120)는 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 존재하지 않으면 통신부(100)를 통해 수신 패킷을 컨트롤러에 전송한다. 이에 비해, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 존재하면 해당 플로우 엔트리를 참조하여 수신 패킷을 처리한다.
일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분한다. 예를 들어, 플로우 테이블의 사용률에 따라 여러 구역으로 구분하고, 구분된 각 구역은 상한 임계값과 하한 임계값을 쌍으로 가진다. 구역 구분 및 각 구역의 임계값 설정은 이에 한정되지 않고 네트워크 환경에 따라 변경 가능하다.
일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 엔트리의 잔여시간을 조절한다. 예를 들어, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 감소시킨다.
구체적으로, 플로우 테이블 관리부(110)는 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면, 예를 들어 사용률이 65%가 되면, 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감한다. 또한, 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면, 예를 들어 사용률이 90%가 되면, 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거한다.
일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 엔트리의 사용 빈도 수를 기준으로 플로우 엔트리를 관리한다. 예를 들어, 테이블 관리부(110)는 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하고, 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓴다.
일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 엔트리의 지속시간을 기준으로 플로우 엔트리를 관리한다. 예를 들어, 테이블 관리부(110)는 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하며, 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거한다.
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10: 네트워크 장치 12: 컨트롤러
20: SDN 스위치 22: SDN 컨트롤러
24, 26: 호스트 100: 통신부
110: 테이블 관리부 120: 패킷 처리부
200: 플로우 테이블

Claims (28)

  1. 네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계;
    상기 네트워크 장치로부터 플로우 테이블의 상태 변경을 통보 받는 단계; 및
    변경된 플로우 테이블의 상태를 반영하여 플로우 테이블을 관리하는 단계를 포함하되,
    상기 플로우 테이블을 관리하는 단계는
    플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 제1 상태에서 제2 상태로 변경되면, 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하는 단계; 및
    플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블 사용률의 증가율에 비례하여 차감하거나 또는 제2 상태에서의 플로우 테이블을 구성하는 플로우 엔트리를 제거하는 단계를 포함하는 플로우 테이블 관리방법.
  2. 제 1 항에 있어서, 상기 다수의 상태로 구분하는 단계는
    플로우 테이블을 다수의 구역으로 구분하고, 각 구역에 대한 임계값을 설정하는 것을 특징으로 하는 플로우 테이블 관리방법.
  3. 제 2 항에 있어서, 상기 다수의 상태로 구분하는 단계는
    플로우 테이블의 각 구역에 대해 상한 임계값과 하한 임계값이 쌍으로 가지도록 구성하는 것을 특징으로 하는 플로우 테이블 관리방법.
  4. 제 1 항에 있어서, 상기 플로우 테이블의 상태 변경을 통보 받는 단계는
    플로우 테이블 사용률이 미리 설정된 상한 임계값에 도달하는 경우에 상기 네트워크 장치로부터 상한 임계값 도달을 통보하는 메시지를 수신하는 것을 특징으로 하는 플로우 테이블 관리방법.
  5. 제 1 항에 있어서, 상기 플로우 테이블의 상태 변경을 통보 받는 단계는
    플로우 테이블 사용률이 미리 설정된 하한 임계값에 도달하는 경우에 상기 네트워크 장치로부터 하한 임계값 도달을 통보하는 메시지를 수신하는 것을 특징으로 하는 플로우 테이블 관리방법.
  6. 제 1 항에 있어서, 상기 플로우 테이블을 관리하는 단계는
    플로우 테이블의 상태가 변경되면 변경된 상태에 따라 플로우 테이블을 구성하는 플로우 엔트리에 대한 관리방식을 결정하는 단계; 및
    상기 결정된 관리방식을 포함한 지시를 상기 네트워크 장치에 전송하는 단계;
    를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 제 1 항에 있어서, 상기 플로우 테이블을 관리하는 단계는
    상기 새로 추가된 플로우 엔트리를 플로우 테이블의 미리 설정된 삽입 지점에 삽입하는 단계를 더 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
  11. 제 10 항에 있어서, 상기 삽입 지점에 삽입하는 단계는
    사용 빈도 수에 따라 분류된 대체 가능 플로우 엔트리와 활성 플로우 엔트리의 사이에 새로운 플로우 엔트리를 삽입하는 것을 특징으로 하는 플로우 테이블 관리방법.
  12. 네트워크 장치 내 플로우 테이블을 구성하는 플로우 엔트리의 속성을 설정하는 단계;
    플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계; 및
    상기 구분된 플로우 테이블의 상태를 반영하여 상기 설정된 플로우 엔트리의 속성을 결정하는 단계를 포함하되,
    상기 설정된 플로우 엔트리의 속성을 결정하는 단계는
    플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하는 단계; 및
    플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블 사용률의 증가율에 비례하여 차감하거나 또는 제2 상태에서의 플로우 테이블을 구성하는 플로우 엔트리를 제거하는 단계를 포함하는 플로우 테이블 관리방법.
  13. 제 12 항에 있어서, 상기 플로우 엔트리의 속성을 설정하는 단계는
    사용되는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 절대 잔여시간을 설정하는 단계; 및
    사용되지 않는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 유휴 잔여시간을 설정하는 단계;
    를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
  14. 제 12 항에 있어서, 상기 플로우 엔트리의 속성을 설정하는 단계는
    플로우 테이블 내에서 수신 패킷과 매칭되는 플로우 엔트리가 존재하면 해당 플로우 엔트리의 사용 빈도 수를 증가시키는 단계; 및
    미리 설정된 시간이 경과되면 해당 플로우 엔트리의 사용 빈도 수를 초기화하거나 감소시키는 단계;
    를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
  15. 제 14 항에 있어서, 상기 플로우 엔트리의 속성을 설정하는 단계는
    플로우 엔트리의 사용 빈도 수 증감에 따라 사용 빈도 수가 미리 설정된 활성화 값을 넘으면 해당 플로우 엔트리를 활성화 엔트리로 설정하는 단계; 및
    사용 빈도 수가 미리 설정된 활성화 값을 넘지 못하면 교체 가능 엔트리로 설정하는 단계;
    를 더 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
  16. 제 12 항에 있어서, 상기 플로우 엔트리의 속성을 설정하는 단계는
    플로우 테이블 내에 플로우 엔트리가 잔류한 지속시간을 설정하는 것을 특징으로 하는 플로우 테이블 관리방법.
  17. 삭제
  18. 삭제
  19. 네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계; 및
    상기 구분된 플로우 테이블의 상태에 따라 플로우 엔트리의 속성을 이용하여 플로우 엔트리의 처리방식을 결정하는 단계를 포함하되,
    상기 플로우 엔트리의 속성을 이용하여 플로우 엔트리의 처리 방식을 결정하는 단계는
    플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하는 단계; 및
    플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률의 증가율에 비례하여 차감하거나 또는 제2 상태에서의 플로우 테이블을 구성하는 플로우 엔트리를 제거하는 단계를 포함하는 플로우 테이블 관리방법.
  20. 제 19 항에 있어서, 상기 플로우 엔트리의 처리방식을 결정하는 단계는
    플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 사용 빈도 수를 확인하는 단계;
    확인된 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하는 단계; 및
    확인된 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓰는 단계;
    를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
  21. 제 19 항에 있어서, 상기 플로우 엔트리의 처리방식을 결정하는 단계는
    플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 지속시간을 확인하는 단계;
    확인된 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하는 단계; 및
    확인된 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거하는 단계;
    를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
  22. 플로우 테이블의 상태 변경을 컨트롤러에 통보하고 플로우 테이블의 상태가 반영된 플로우 테이블 관리방식을 지시 받는 통신부;
    상기 통신부를 통해 지시 받은 플로우 테이블 관리방식에 따라 플로우 테이블을 관리하는 테이블 관리부; 및
    플로우 테이블을 이용하여 수신 패킷을 처리하는 패킷 처리부를 포함하되,
    상기 테이블 관리부는
    플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하고, 플로우 테이블의 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블 사용률의 증가율에 비례하여 차감하거나 또는 제2 상태에서의 플로우 테이블을 구성하는 플로우 엔트리를 제거하는 네트워크 장치.
  23. 제 22 항에 있어서,
    상기 네트워크 장치는 소프트웨어 정의 네트워크 스위치이고, 상기 컨트롤러는 소프트웨어 정의 네트워크 컨트롤러인 것을 특징으로 하는 네트워크 장치.
  24. 제 22 항에 있어서, 상기 테이블 관리부는
    플로우 테이블의 사용률에 따라 플로우 테이블을 상한 임계값과 하한 임계값이 쌍으로 구성된 다수의 구역으로 구분하는 것을 특징으로 하는 네트워크 장치.
  25. 삭제
  26. 삭제
  27. 제 22 항에 있어서, 상기 테이블 관리부는
    플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하고, 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓰는 것을 특징으로 하는 네트워크 장치.
  28. 제 22 항에 있어서, 상기 테이블 관리부는
    플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하며, 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거하는 것을 특징으로 하는 네트워크 장치.
KR1020140092606A 2014-01-06 2014-07-22 플로우 테이블 관리 방법 및 그 장치 KR101818082B1 (ko)

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 (zh) 2014-01-06 2015-01-05 用于管理流表格的方法和设备

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 KR20150082060A (ko) 2015-07-15
KR101818082B1 true KR101818082B1 (ko) 2018-02-21

Family

ID=53793728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140092606A KR101818082B1 (ko) 2014-01-06 2014-07-22 플로우 테이블 관리 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR101818082B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674169B1 (ko) * 2015-08-17 2016-11-08 성균관대학교산학협력단 오픈플로우 스위치 및 플로우 테이블 관리 방법
KR102387102B1 (ko) * 2020-11-13 2022-04-14 숭실대학교 산학협력단 Sdn을 위한 플로우 테이블 오버플로우 공격 방어 시스템 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040085958A1 (en) * 2002-10-30 2004-05-06 Packetfront Sweden Ab Packet flow forwarding
US20110273988A1 (en) * 2010-05-10 2011-11-10 Jean Tourrilhes Distributing decision making in a centralized flow routing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040085958A1 (en) * 2002-10-30 2004-05-06 Packetfront Sweden Ab Packet flow forwarding
US20110273988A1 (en) * 2010-05-10 2011-11-10 Jean Tourrilhes Distributing decision making in a centralized flow routing system

Also Published As

Publication number Publication date
KR20150082060A (ko) 2015-07-15

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
CN108141416B (zh) 一种报文处理方法、计算设备以及报文处理装置
US9769074B2 (en) Network per-flow rate limiting
CN111669336B (zh) 用于无损以太网的低成本拥塞隔离
WO2012090355A1 (en) Communication system, forwarding node, received packet process method, and program
RU2612599C1 (ru) Устройство управления, система связи, способ управления коммутаторами и программа
WO2011083682A1 (ja) スイッチネットワークシステム、コントローラ、及び制御方法
US20130135999A1 (en) Destination-based congestion control
JPWO2011162215A1 (ja) 通信システム、制御装置、ノードの制御方法およびプログラム
US20140241349A1 (en) Openflow switch and packet processing method thereof
US10104000B2 (en) Reducing control plane overload of a network device
US8693335B2 (en) Method and apparatus for control plane CPU overload protection
US9712332B2 (en) Node directed multicast traffic management systems and methods for mesh networks
EP3122012B1 (en) Data processing method and apparatus for openflow network
US20170359310A1 (en) Bypassing a firewall for authorized flows using software defined networking
US9769064B2 (en) Communication node, packet processing method and program
WO2013114489A1 (en) Control method, control apparatus, communication system, and program
US20160285682A1 (en) Switch apparatus, vlan setting management method and program
CN109391550B (zh) 具有拥塞感知匹配表的网元
KR101818082B1 (ko) 플로우 테이블 관리 방법 및 그 장치
US10462064B2 (en) Maximum transmission unit installation for network traffic along a datapath in a software defined network
CN102546587B (zh) 防止网关***会话资源被恶意耗尽的方法及装置
JP6466279B2 (ja) 通信装置

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