KR20180015916A - Sdn 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법 - Google Patents
Sdn 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법 Download PDFInfo
- Publication number
- KR20180015916A KR20180015916A KR1020160099520A KR20160099520A KR20180015916A KR 20180015916 A KR20180015916 A KR 20180015916A KR 1020160099520 A KR1020160099520 A KR 1020160099520A KR 20160099520 A KR20160099520 A KR 20160099520A KR 20180015916 A KR20180015916 A KR 20180015916A
- Authority
- KR
- South Korea
- Prior art keywords
- flow
- message
- switch
- monitoring
- traffic
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 SDN (Software-defined Networking )과 같이 네트워크에 대한 제어가 플로우 기반으로 중앙집중식 컨트롤러에 의해 제어가 이뤄지는 네트워크에서 플로우 별 트래픽 양을 효과적으로 측정하기 위한 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법에 대한 것으로, 메시지 수신부, 플로우 모니터링 테이블 관리부, 트래픽 모니터링부를 포함하며, SDN 컨트롤러와 SDN 스위치 간의 플로우 제어를 위해 Flow-Mod 메시지와 Flow-Removed 메시지를 플로우 모니터링에 사용함으로써, Flow-Mod 메시지를 통해 각 스위치의 액티브 플로우를 파악하고 Flow-Removed 메시지를 통한 파악한 플로우의 트래픽 양을 저장하여 사용함으로써 플로우 모니터링을 위한 부가적인 오버헤드 없이 플로우 트래픽 모니터링 기능을 제공하는데 그 목적이 있다.
Description
본 발명은 네트워크의 플로우 트래픽을 모니터링 하는 장치 및 그 방법에 관한 것으로, 구체적으로는 SDN (Software-defined Networking )과 같이 네트워크에 대한 제어가 플로우 기반으로 중앙집중식 컨트롤러에 의해 제어가 이뤄지는 네트워크에서 플로우 별 트래픽 양을 효과적으로 측정하기 위한 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법에 대한 것이다.
소프트웨어 정의 네트워킹 (SDN, Software Defined Networking)이란 네트워크 장비의 제어 평면 (Control Plane)을 데이터 평면 (Data Plane)에서 분리하여 소프트웨어 기반의 컨트롤러가 개방형 API를 통해 개별 네트워크 장치들을 중앙집중식으로 제어하는 기술을 의미한다.
최근 SDN 기술이 네트워크에 적용됨으로써 네트워크 운용자는 네트워크 인프라를 소프트웨어 기반으로 손쉽게 제어하고 관리할 수 있게 되어 네트워크의 유연성이 증가됨 동시에 새로운 비즈니스 요구에 보다 능동적으로 대응하여 새로운 서비스를 보다 신속하게 적용할 수 있게 되었다.
SDN 환경에서 중앙 컨트롤러는 네트워크의 효율적 제어를 위해서 네트워크 상태 정보를 빠르고 정확하기 파악할 필요성이 존재한다.
특히 현재 네트워크에 흐르고 있는 플로우의 종류를 파악하고 플로우 별 트래픽 양에 대한 상태 정보를 획득하는 네트워크 모니터링은 네트워크의 효율적 운용에 점차 중요한 부분으로 부각되고 있다.
종래의 네트워크 모니터링 방법으로는 SNMP(Simple Network Management Protocol)이 존재하며, SNMP는 특정 구간이나 특정 스위치의 트래픽 양에 대한 실시간 데이터를 제공함과 동시에 네트워크 장비의 CPU 및 메모리 사용량 등을 제공할 수 있다.
그러나 SNMP은 특정 소스에서 발생되는 트래픽의 총량이나, 특정 소스 노드와 데스티네이션 노드 간 트래픽의 양, 혹은 애플리케이션 별 트래픽 사용량 등과 같이 트래픽을 플로우 별로 구분하여 데이터를 얻는 데는 한계가 있으므로, 네트워크 관리를 위해 트래픽을 플로우 단위로 구분하여 모니터링 하는 것이 요구되어 진다.
특히 트래픽을 플로우 단위로 구분하여 모니터링을 함으로써 플로우 분석을 통해 네트워크의 위치 별 장비의 필요 용량을 보다 정확하게 산정할 수 있으며, 사용자 별로 적용하는 QoS (Quality of Service) 레벨을 달리한다거나 네트워크의 유휴 자원을 활용하여 트래픽을 분산시킴으로써 네트워크 자원 활용도를 높일 수 있다.
일반적인 플로우 모니터링 기법 중 에는 패킷 샘플링에 기반한 sFlow 기술과 플로우 카운팅에 기반한 NetFlow 기술이 대표적이다.
sFlow 기술은 네트워크 장비의 각 인터페이스를 통과하는 패킷들 중 매 N개 마다 캡쳐하여 별도의 분석을 위한 서버로 전송함으로써 sFlow를 통해 분석서버로 전달되는 정보에는 샘플링된 패킷 외에도 해당 장비의 인터페이스 상태 정보 등 분석서버가 필요로 하는 각종 메타데이터도 포함될 수 있다.
중앙 서버는 일정 기간 동안 수집된 sFlow 메시지를 모아 통계적으로 분석하여 원하는 정보를 유추한다. 이 방법은 특별한 하드웨어의 지원 없이 쉽게 구현될 수 있고, 해당 장비의 CPU 부하도 크지 않다는 장점이 있어 대부분의 사용 스위치에서 지원되고 있다.
그러나 sFlow는 패킷 샘플링에 기반하고 있어 정확한 분석을 위해서는 통계학적으로 의미가 있는 충분한 수의 샘플이 필요로 하기 때문에 지나가는 패킷의 수가 충분하지 않은 플로우에 대해서는 인지하지 못하거나 혹은 인지하더라도 에러율이 높아지는 문제점이 존재한다.
NetFlow 기술은 사전에 정의된 플로우 규칙에 따라 패킷을 플로우로 구별하여 카운팅하는 방식으로, 플로우 구별을 위해 사용되는 패킷 헤더 필드의 종류와 개수는 버전에 따라 다르나 일반적으로 출발지 IP주소, 목적지 IP 주소, 출발지 포트번호, 목적지 포트번호, IP 프로토콜, ToS(Type of Service), 스위치 인터페이스 등을 포함할 수 있다.
표준 NetFlow가 모든 패킷을 처리하는 데 반해 인터넷 백본과 같이 대규모의 트래픽이 흐르는 환경에서는 sFlow와 유사하게 패킷을 샘플링하여 이를 다시 플로우 기반으로 분류하여 카운팅하는 Sampled Netflow 방식도 존재한다.
NetFlow를 지원하는 스위치에는 고속으로 패킷의 플로우를 인식하고 카운팅 하기 위해서는 전용 하드웨어가 장착되어야 한다는 한계가 있다.
한편, 소프트웨어 정의 네트워킹 기술 중 가장 널리 쓰이고 있는 오픈 플로우 프로토콜에서는 플로우 모니터링을 위해 두 가지 방법이 사용된다.
그 중 첫 번째는 새로운 플로우에 속한 패킷이 수신되었을 때, 해당 패킷을 처리하기 위한 플로우 엔트리를 요청하기 위해 스위치로부터 컨트롤러로 전달되는 패킷인(Packet-in) 메시지를 사용하는 방법이 존재한다.
이 때 컨트롤러는 수신한 스위치에 플로우 엔트리를 전달하기 위해 패킷인 메시지에 포함된 헤더 정보를 활용하여 스위치에게 플로우 엔트리를 전달함으로써 이 과정에서 자연스럽게 네트워크에 어떤 플로우가 존재하고 있는 지 파악할 수 있다.
두 번째 방식으로는 스위치에서 관리하는 통계 정보를 가져와 활용하는 방법이 존재한다.
여기서 오픈 플로우 프로토콜을 지원하는 스위치는 내부에 플로우와 인터페이스 단위의 카운터 정보를 유지할 수 있으며, 컨트롤러는 이 카운터 정보를 주기적으로 요청함으로써 트래픽을 플로우 단위로 모니터링 할 수 있다.
그러나 이 방법은 카운터 정보에 대한 주기적 폴링(polling)을 수행해야 하기 때문에 스위치와 컨트롤러 간 많은 컨트롤 메시지를 유발할 뿐만 아니라 이를 처리하기 위해 높은 CPU 부하를 야기할 수 있다.
본 발명은 SDN 컨트롤러와 SDN 스위치 간의 플로우 제어를 위해 Flow-Mod 메시지와 Flow-Removed 메시지를 플로우 모니터링에 사용함으로써, Flow-Mod 메시지를 통해 각 스위치의 액티브 플로우를 파악하고 Flow-Removed 메시지를 통한 파악한 플로우의 트래픽 양을 저장하여 사용함으로써 플로우 모니터링을 위한 부가적인 오버헤드 없이 플로우 트래픽 모니터링 기능을 제공하는데 그 목적이 있다.
본 발명의 실시 예에 따르면 Flow-Mod 메시지, Flow-Removed 메시지, Flow-stats 메시지 중 하나의 유형을 가지는 패킷인 메시지를 수신하는 메시지 수신부; 상기 수신한 패킷인 메시지의 유형에 따라 상기 패킷인 메시지를 송신한 스위치의 액티브 플로우 정보를 획득하여 액티브 플로우 테이블에 저장하거나, 해당 플로우의 통계 정보 값을 해당 카운터 값으로 갱신하거나, 플로우 히스토리 테이블에 저장함과 동시에 상기 액티브 플로우 테이블 중 해당 플로우에 대응되는 엔트리를 삭제하는 플로우 모니터링 테이블 관리부; 수신한 플로우 트래픽 모니터링 데이터 요청 메시지로부터 스위치 아이디와 플로우 매치를 추출하고, 상기 액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출하여 상기 총합을 리턴하는 트래픽 모니터링부를 포함할 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우 모니터링 테이블 관리부는, 상기 수신한 패킷인 메시지가 Flow-Mod 메시지 유형인 경우, 상기 패킷인 메시지를 송신한 스위치의 액티브 플로우 정보를 획득하여 액티브 플로우 테이블에 저장할 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우 모니터링 테이블 관리부는, 상기 패킷인 메시지에 대응하는 플로우 엔트리를 상기 패킷인 메시지를 송신한 스위치로 송신하는 경우, Flow-Mod 메시지를 액티브 플로우 테이블에 저장할 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우 모니터링 테이블 관리부는, 상기 액티브 플로우 테이블에 저장되는 카운터 값은 0이 되며, 개별 스위치로 전송된 Flow-Stats-Request 메시지에 대응하는 Flow-Stats 메시지가 수신되면 해당 플로우의 통계 정보 값이 해당 카운터 값으로 갱신될 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우 모니터링 테이블 관리부는, 상기 수신한 패킷인 메시지가 Flow-Removed 메시지 유형인 경우, 상기 Flow-Removed 메시지는 플로우 히스토리 테이블에 저장됨과 동시에 액티브 플로우 테이블 중 해당 플로우에 대응되는 엔트리를 삭제할 수 있다.
본 발명의 일 실시 예에 따르면 상기 Flow-Removed 메시지는 해당 플로우 엔트리의 삭제 이유, 지속시간, idle-timeout, hard-timeout, 카운터 값들을 포함할 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우 모니터링 테이블 관리부는, 상기 Flow-Removed 메시지를 분석하여 해당 플로우 엔트리의 PPS(Packets/Second), BPS(Bytes/Second)를 계산하여 카운터 필드에 저장할 수 있다.
본 발명의 일 실시 예에 따르면 상기 트래픽 모니터링부는, 상기 액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출하고, 상기 검색된 엔트리 중 카운터 값이 0인 엔트리에 대해서는 플로우 히스토리 테이블에서 해당 엔트리의 매치 필드와 매칭되는 엔트리를 검색하여 검색된 엔트리의 카운터 값을 대신 사용할 수 있다.
본 발명의 일 실시 예에 따르면 상기 트래픽 모니터링부는, 상기 플로우 히스토리 테이블에 매칭되는 엔트리가 없는 경우에는 사전에 지정된 값을 사용하거나, 해당 스위치의 평균 플로우 트래픽 양을 사용할 수 있다.
본 발명의 실시 예에 따르면 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 방법은 Flow-Mod 메시지, Flow-Removed 메시지, Flow-stats 메시지 중 하나의 유형을 가지는 패킷인 메시지를 수신하는 단계; 상기 수신한 패킷인 메시지의 유형에 따라 상기 패킷인 메시지를 송신한 스위치의 액티브 플로우 정보를 획득하여 액티브 플로우 테이블에 저장하거나, 해당 플로우의 통계 정보 값을 해당 카운터 값으로 갱신하거나, 플로우 히스토리 테이블에 저장함과 동시에 상기 액티브 플로우 테이블 중 해당 플로우에 대응되는 엔트리를 삭제하는 단계; 수신한 플로우 트래픽 모니터링 데이터 요청 메시지로부터 스위치 아이디와 플로우 매치를 추출하고, 상기 액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출하여 상기 총합을 리턴하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우에 대응되는 엔트리를 삭제하는 단계는, 상기 수신한 패킷인 메시지가 Flow-Mod 메시지 유형인 경우, 상기 패킷인 메시지를 송신한 스위치의 액티브 플로우 정보를 획득하여 액티브 플로우 테이블에 저장 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 방법 할 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우에 대응되는 엔트리를 삭제하는 단계는, 상기 패킷인 메시지에 대응하는 플로우 엔트리를 상기 패킷인 메시지를 송신한 스위치로 송신하는 경우, Flow-Mod 메시지를 액티브 플로우 테이블에 저장할 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우에 대응되는 엔트리를 삭제하는 단계는, 상기 액티브 플로우 테이블에 저장되는 카운터 값은 0이 되며, 개별 스위치로 전송된 Flow-Stats-Request 메시지에 대응하는 Flow-Stats 메시지가 수신되면 해당 플로우의 통계 정보 값이 해당 카운터 값으로 갱신될 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우에 대응되는 엔트리를 삭제하는 단계는, 상기 수신한 패킷인 메시지가 Flow-Removed 메시지 유형인 경우, 상기 Flow-Removed 메시지는 플로우 히스토리 테이블에 저장됨과 동시에 액티브 플로우 테이블 중 해당 플로우에 대응되는 엔트리를 삭제할 수 있다.
본 발명의 일 실시 예에 따르면 상기 Flow-Removed 메시지는 해당 플로우 엔트리의 삭제 이유, 지속시간, idle-timeout, hard-timeout, 카운터 값들을 포함할 수 있다.
본 발명의 일 실시 예에 따르면 상기 플로우에 대응되는 엔트리를 삭제하는 단계는, 상기 Flow-Removed 메시지를 분석하여 해당 플로우 엔트리의 PPS(Packets /Second), BPS(Bytes/Second)를 계산하여 카운터 필드에 저장할 수 있다.
본 발명의 일 실시 예에 따르면 상기 총합을 리턴하는 단계는, 상기 액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출하고, 상기 검색된 엔트리 중 카운터 값이 0인 엔트리에 대해서는 플로우 히스토리 테이블에서 해당 엔트리의 매치 필드와 매칭되는 엔트리를 검색하여 검색된 엔트리의 카운터 값을 대신 사용할 수 있다.
본 발명의 일 실시 예에 따르면 상기 총합을 리턴하는 단계는, 상기 플로우 히스토리 테이블에 매칭되는 엔트리가 없는 경우에는 사전에 지정된 값을 사용하거나, 해당 스위치의 평균 플로우 트래픽 양을 사용할 수 있다.
본 발명에서는 SDN 컨트롤러와 SDN 스위치 간의 플로우 제어를 위해 Flow-Mod 메시지와 Flow-Removed 메시지를 플로우 모니터링에 사용함으로써, Flow-Mod 메시지를 통해 각 스위치의 액티브 플로우를 파악하고 Flow-Removed 메시지를 통한 파악한 플로우의 트래픽 양을 저장하여 사용함으로써 플로우 모니터링을 위한 부가적인 오버헤드 없이 플로우 트래픽 모니터링이 가능한 효과를 제공한다.
도 1은 본 발명의 일 실시 예에 따른 플로우 모니터링 기능이 내장된 SDN 컨트롤러를 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 장치의 구성도이다.
도 3은 본 발명의 일 실시 예에 따른 플로우 모니터링 테이블을 나타낸 도면이다.
도 4는 실시 예에 따른 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 방법의 흐름도이다.
도 2는 본 발명의 실시 예에 따른 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 장치의 구성도이다.
도 3은 본 발명의 일 실시 예에 따른 플로우 모니터링 테이블을 나타낸 도면이다.
도 4는 실시 예에 따른 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 방법의 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조하여 본 발명의 실시 예에 따른 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법에 대하여 설명한다.
도 1은 본 발명의 일 실시 예에 따른 플로우 모니터링 기능이 내장된 SDN 컨트롤러를 나타낸 도면이다.
도 1을 참조하면 본 실시 예에서 플로우 모니터링 기능이 내장된 SDN 컨트롤러는 노스바운드 인터페이스, 사우스바운드 인터페이스, 플로우 제어장치, 플로우 트래픽 모니터링 장치를 포함할 수 있다.
노스바운드 인터페이스는 SDN 응용 지원을 위한 인터페이스이다.
사우스바운드 인터페이스는 SDN 스위치와 보안 채널을 통한 통신을 지원하는 인터페이스이다.
플로우 제어장치는 SDN 스위치에서의 플로우 처리를 제어하는 장치로, SDN 네트워크의 토폴로지 관리, 스위치와 연결된 디바이스 관리, SDN 스위치에 대한 플로우 엔트리 관리의 기능을 수행할 수 있다.
본 발명의 일 실시 예에 따르면 플로우 제어장치는 네트워크 토폴로지를 파악하기 위한 토폴로지 검색기, 스위치와 스위치 간의 연결 정보를 관리하는 링크 테이블, 스위치 및 스위치와 연결된 호스트 정보를 관리하는 디바이스 테이블, 그리고 패킷 포워딩 패스 계산을 위한 패스 계산기, 필요한 플로우 엔트리를 생성하여 스위치로 전달하는 플로우 핸들러를 포함할 수 있다.
본 발명의 일 실시 예에 따르면 SDN 컨트롤러와 연결된 SDN 스위치가 패킷을 수신하면, SDN 스위치에 포함된 패킷 처리 엔진은 수신된 패킷에 매칭되는 플로우 엔트리가 있는지 검색하는 플로우 매칭 작업을 수행할 수 있다.
이때 매칭이 성공하면, 검색된 플로우 엔트리의 인스트럭션에 따라 수신된 패킷을 처리하고 카운터 필드 값을 갱신하고, 타임아웃 값을 재설정할 수 있으며, 플로우 매칭이 실패한 경우, 즉 플로우 테이블에 수신된 패킷에 매칭되는 플로우 엔트리가 없는 경우에는 수신된 패킷을 캡슐화하여 해당 패킷을 처리하기 위한 플로우 엔트리를 요청하는 패킷인(Packet-in) 메시지를 보안 채널을 통해 SDN 컨트롤러로 전달하여 컨트롤러로부터 해당 패킷을 처리할 수 있는 플로우 엔트리를 전달받아 패킷을 처리할 수 있다.
여기서 패킷인(Packet-in) 메시지는 수신된 패킷을 캡슐화한 메시지를 의미한다.
본 발명의 일 실시 예에 따르면 플로우 테이블은 주기적으로 플로우 엔트리를 체크하여 타임 아웃된 플로우 엔트리를 플로우 테이블에서 제거할 수 있고, 제거된 플로우 엔트리를 Flow-Removed 메시지에 담아 SDN 컨트롤러에게 전송함으로써 플로우 테이블에서 해당 엔트리가 제거되었음을 SDN 컨트롤러에게 알릴 수 있다.
플로우 트래픽 모니터링 장치는 패킷인 메시지를 수신하여 플로우 모니터링 테이블을 관리하고, 플로우 모니터링 테이블에 포함된 액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출하여 총합을 리턴 할 수 있다.
본 발명의 일 실시예에 따르면 SDN 컨트롤러에 플로우 트래픽 모니터링을 수행하는 플로우 모니터링부가 컨트롤러 내부에 별도의 모듈로 추가된 형태를 가질 수 있으나, 이에 한정되지 아니하며 또 다른 일 실시 예에 따르면 SDN 컨트롤러와 연결되어 SDN 컨트롤러의 외부에 별도로 존재할 수 있다.
도 2는 본 발명의 실시 예에 따른 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 장치(1000)의 구성도이다.
도 2를 참조하면 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 장치(1000)는 메시지 수신부(100), 플로우 모니터링 테이블 관리부(200), 트래픽 모니터링부(300)를 포함할 수 있다.
메시지 수신부(100)는 Flow-Mod 메시지, Flow-Removed 메시지, Flow-stats 메시지 중 하나의 유형을 가지는 패킷인 메시지를 수신할 수 있다.
플로우 모니터링 테이블 관리부(200)는 수신한 패킷인 메시지의 유형에 따라 상기 패킷인 메시지를 송신한 스위치의 액티브 플로우 정보를 획득하여 액티브 플로우 테이블에 저장하거나, 해당 플로우의 통계 정보 값을 해당 카운터 값으로 갱신하거나, 플로우 히스토리 테이블에 저장함과 동시에 상기 액티브 플로우 테이블 중 해당 플로우에 대응되는 엔트리를 삭제할 수 있다.
본 발명의 일 실시 예에 따르면 플로우 모니터링 테이블은 액티브 플로우 테이블, 플로우 히스토리 테이블을 포함할 수 있다.
여기서 액티브 플로우 테이블은 각 스위치의 플로우 테이블에 현재 어떤 플로우 엔트리들이 존재하고 있는지에 대한 정보를 포함하고 이를 관리할 수 있는 플로우 테이블의 집합을 의미할 수 있다.
또한 플로우 히스토리 테이블은 각 스위치의 플로우 테이블에 과거 어떤 플로우 엔트리가 존재했는지에 대한 정보를 포함하고 이를 관리할 수 있는 플로우 테이블의 집합을 의미할 수 있다.
본 발명의 일 실시 예에 따르면 SDN 스위치에 새로운 플로우 엔트리를 추가하기 위해 보내는 Flow-Mod 메시지를 통해 스위치의 액티브 플로우 정보를 획득할 수 있으며, 개별 스위치에서 플로우 엔트리가 삭제되었음을 알리는 Flow-Removed 메시지 및 SDN 컨트롤러에서 통계 정보를 요청하는 Flow-stats-request 메시지의 응답으로 SDN 스위치에서 보내지는 Flow-stats 메시지를 통해 플로우 트래픽 정보를 획득할 수 있다.
본 발명의 일 실시 예에 따르면 수신한 패킷인 메시지가 Flow-Mod 메시지 유형인 경우, 패킷인 메시지를 송신한 스위치의 액티브 플로우 정보를 획득하여 액티브 플로우 테이블에 저장할 수 있다.
본 발명의 일 실시 예에 따르면 패킷인 메시지에 대응하는 플로우 엔트리를 상기 패킷인 메시지를 송신한 스위치로 송신하는 경우, Flow-Mod 메시지를 액티브 플로우 테이블에 저장할 수 있다.
본 발명의 일 실시 예에 따르면 액티브 플로우 테이블에 저장되는 카운터 값은 0이 되며, 개별 스위치로 전송된 Flow-Stats-Request 메시지에 대응하는 Flow-Stats 메시지가 수신되면 해당 플로우의 통계 정보 값이 해당 카운터 값으로 갱신할 수 있다.
본 발명의 일 실시 예에 따르면 수신한 패킷인 메시지가 Flow-Removed 메시지 유형인 경우, 상기 Flow-Removed 메시지는 플로우 히스토리 테이블에 저장됨과 동시에 액티브 플로우 테이블 중 해당 플로우에 대응되는 엔트리를 삭제할 수 있다.
본 발명의 일 실시 예에 따르면 Flow-Removed 메시지는 해당 플로우 엔트리의 삭제 이유, 지속시간, idle-timeout, hard-timeout, 카운터 값들이 포함할 수 있다.
본 발명의 일 실시 예에 따르면 Flow-Removed 메시지를 분석하여 해당 플로우 엔트리의 PPS(Packets/Second), BPS(Bytes/Second)를 계산하여 카운터 필드에 저장할 수 있다.
트래픽 모니터링부(300)는 수신한 플로우 트래픽 모니터링 데이터 요청 메시지로부터 스위치 아이디와 플로우 매치를 추출하고, 액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출하여 총합을 리턴할 수 있다.
본 발명의 일 실시 예에 따르면 트래픽 모니터링부(300)는 개별 플로우에 대한 트래픽 모니터링 데이터 요청을 처리할 수 있으며 개별 플로우에 대한 트래피 모니터링 데이터 요청은 노스바운드 인터페이스를 통해 SDN 스위치 외부의 SDN 응용에서 수신될 수도 있고, SDN 컨트롤러 내부 모듈에서 수신될 수도 있다.
본 발명의 일 실시 예에 따르면 수신한 플로우 트래픽 모니터링 데이터 요청 메시지로부터 스위치 아이디와 플로우 매치를 추출할 수 있다.
본 발명의 일 실시 예에 따르면 액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출하고, 검색된 엔트리 중 카운터 값이 0인 엔트리에 대해서는 플로우 히스토리 테이블에서 해당 엔트리의 매치 필드와 매칭되는 엔트리를 검색하여 검색된 엔트리의 카운터 값을 대신 사용할 수 있다.
본 발명의 일 실시 예에 따르면 플로우 히스토리 테이블에 매칭되는 엔트리가 없는 경우에는 사전에 지정된 값을 사용하거나, 해당 스위치의 평균 플로우 트래픽 양을 사용할 수 있다.
본 발명의 일 실시 예에 따르면 액티브 플로우 테이블의 모든 엔트리에 대한 검색이 끝나면 누적된 카운터 값의 총합을 리턴할 수 있다.
본 발명의 일 실시 예에 따르면 누적된 카운터 값의 총합을 리턴하는 과정에서 카운터 값을 PPS, BPS 등의 종류별로 관리될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 플로우 모니터링 테이블을 나타낸 도면이다.
본 발명의 일 실시 예에 따르면 플로우 모니터링 테이블은 개별 플로우 엔트리가 설정된 스위치 아이디, 플로우 구분을 위한 매칭 필드, 해당 플로우에 매칭되는 트래픽의 양을 나타내는 카운터 값, 해당 플로우 엔트리가 설정된 시간을 기록하는 타임스탬프 등의 필드를 포함할 수 있다.
도 4는 실시 예에 따른 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 방법의 흐름도이다.
패킷인 메시지를 수신한다(410).
본 발명의 일 실시 예에 따르면 Flow-Mod 메시지, Flow-Removed 메시지, Flow-stats 메시지 중 하나의 유형을 가지는 패킷인 메시지를 수신할 수 있다.
패킷인 메시지 유형에 따라 플로우 모니터링 테이블을 관리한다(420).
본 발명의 일 실시 예에 따르면 수신한 패킷인 메시지의 유형에 따라 상기 패킷인 메시지를 송신한 스위치의 액티브 플로우 정보를 획득하여 액티브 플로우 테이블에 저장하거나, 해당 플로우의 통계 정보 값을 해당 카운터 값으로 갱신하거나, 플로우 히스토리 테이블에 저장함과 동시에 상기 액티브 플로우 테이블 중 해당 플로우에 대응되는 엔트리를 삭제할 수 있다.
본 발명의 일 실시 예에 따르면 플로우 모니터링 테이블은 액티브 플로우 테이블, 플로우 히스토리 테이블을 포함할 수 있다.
본 발명의 일 실시 예에 따르면 SDN 스위치에 새로운 플로우 엔트리를 추가하기 위해 보내는 Flow-Mod 메시지를 통해 스위치의 액티브 플로우 정보를 획득할 수 있으며, 개별 스위치에서 플로우 엔트리가 삭제되었음을 알리는 Flow-Removed 메시지 및 SDN 컨트롤러에서 통계 정보를 요청하는 Flow-stats-request 메시지의 응답으로 SDN 스위치에서 보내지는 Flow-stats 메시지를 통해 플로우 트래픽 정보를 획득할 수 있다.
본 발명의 일 실시 예에 따르면 수신한 패킷인 메시지가 Flow-Mod 메시지 유형인 경우, 패킷인 메시지를 송신한 스위치의 액티브 플로우 정보를 획득하여 액티브 플로우 테이블에 저장할 수 있다.
본 발명의 일 실시 예에 따르면 패킷인 메시지에 대응하는 플로우 엔트리를 상기 패킷인 메시지를 송신한 스위치로 송신하는 경우, Flow-Mod 메시지를 액티브 플로우 테이블에 저장할 수 있다.
본 발명의 일 실시 예에 따르면 액티브 플로우 테이블에 저장되는 카운터 값은 0이 되며, 개별 스위치로 전송된 Flow-Stats-Request 메시지에 대응하는 Flow-Stats 메시지가 수신되면 해당 플로우의 통계 정보 값이 해당 카운터 값으로 갱신할 수 있다.
본 발명의 일 실시 예에 따르면 수신한 패킷인 메시지가 Flow-Removed 메시지 유형인 경우, 상기 Flow-Removed 메시지는 플로우 히스토리 테이블에 저장됨과 동시에 액티브 플로우 테이블 중 해당 플로우에 대응되는 엔트리를 삭제할 수 있다.
본 발명의 일 실시 예에 따르면 Flow-Removed 메시지는 해당 플로우 엔트리의 삭제 이유, 지속시간, idle-timeout, hard-timeout, 카운터 값들이 포함할 수 있다.
본 발명의 일 실시 예에 따르면 Flow-Removed 메시지를 분석하여 해당 플로우 엔트리의 PPS(Packets/Second), BPS(Bytes/Second)를 계산하여 카운터 필드에 저장할 수 있다.
플로우 트래픽 모니터링 데이터 요청 메시지로부터 스위치 아이디와 플로우 매치를 추출한다(430).
본 발명의 일 실시 예에 따르면 개별 플로우에 대한 트래픽 모니터링 데이터 요청을 처리할 수 있으며 개별 플로우에 대한 트래피 모니터링 데이터 요청은 노스바운드 인터페이스를 통해 SDN 스위치 외부의 SDN 응용에서 수신될 수도 있고, SDN 컨트롤러 내부 모듈에서 수신될 수도 있다.
액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출한다(440).
액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출하고, 검색된 엔트리 중 카운터 값이 0인 엔트리에 대해서는 플로우 히스토리 테이블에서 해당 엔트리의 매치 필드와 매칭되는 엔트리를 검색하여 검색된 엔트리의 카운터 값을 대신 사용할 수 있다.
본 발명의 일 실시 예에 따르면 플로우 히스토리 테이블에 매칭되는 엔트리가 없는 경우에는 사전에 지정된 값을 사용하거나, 해당 스위치의 평균 플로우 트래픽 양을 사용할 수 있다.
산출된 카운터 갑의 총합을 리턴한다(450).
본 발명의 일 실시 예에 따르면 액티브 플로우 테이블의 모든 엔트리에 대한 검색이 끝나면 누적된 카운터 값의 총합을 리턴할 수 있다.
본 발명의 일 실시 예에 따르면 누적된 카운터 값의 총합을 리턴하는 과정에서 카운터 값을 PPS, BPS 등의 종류별로 관리될 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100 : 메시지 수신부 200 : 플로우 모니터링 테이블 관리부
300 : 트래픽 모니터링부 1000 : 플로우 트래픽 모니터링 장치
300 : 트래픽 모니터링부 1000 : 플로우 트래픽 모니터링 장치
Claims (1)
- Flow-Mod 메시지, Flow-Removed 메시지, Flow-stats 메시지 중 하나의 유형을 가지는 패킷인 메시지를 수신하는 메시지 수신부;
상기 수신한 패킷인 메시지의 유형에 따라 상기 패킷인 메시지를 송신한 스위치의 액티브 플로우 정보를 획득하여 액티브 플로우 테이블에 저장하거나, 해당 플로우의 통계 정보 값을 해당 카운터 값으로 갱신하거나, 플로우 히스토리 테이블에 저장함과 동시에 상기 액티브 플로우 테이블 중 해당 플로우에 대응되는 엔트리를 삭제하는 플로우 모니터링 테이블 관리부;
수신한 플로우 트래픽 모니터링 데이터 요청 메시지로부터 스위치 아이디와 플로우 매치를 추출하고, 상기 액티브 플로우 테이블에서 지정된 스위치 아이디와 플로우 매치에 매칭되는 엔트리를 순차적으로 검색하여 카운터 값의 총합을 산출하여 상기 총합을 리턴하는 트래픽 모니터링부를 포함하는 것을 특징으로 하는 SDN 기반 네트워크에서의 플로우 트래픽 모니터링 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160099520A KR20180015916A (ko) | 2016-08-04 | 2016-08-04 | Sdn 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160099520A KR20180015916A (ko) | 2016-08-04 | 2016-08-04 | Sdn 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180015916A true KR20180015916A (ko) | 2018-02-14 |
Family
ID=61229654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160099520A KR20180015916A (ko) | 2016-08-04 | 2016-08-04 | Sdn 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180015916A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102387102B1 (ko) * | 2020-11-13 | 2022-04-14 | 숭실대학교 산학협력단 | Sdn을 위한 플로우 테이블 오버플로우 공격 방어 시스템 및 방법 |
-
2016
- 2016-08-04 KR KR1020160099520A patent/KR20180015916A/ko unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102387102B1 (ko) * | 2020-11-13 | 2022-04-14 | 숭실대학교 산학협력단 | Sdn을 위한 플로우 테이블 오버플로우 공격 방어 시스템 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4774357B2 (ja) | 統計情報収集システム及び統計情報収集装置 | |
JP5623585B2 (ja) | フロー統計に用いる方法、装置及びシステム | |
US8054744B1 (en) | Methods and apparatus for flow classification and flow measurement | |
KR20080031177A (ko) | 분산 트래픽 분석 | |
JP2013150134A (ja) | 計算機システム、仮想サーバ配置方法及び配置制御装置 | |
JP2010041471A (ja) | 通信データ統計装置、通信データ統計方法およびプログラム | |
Hyun et al. | Real‐time and fine‐grained network monitoring using in‐band network telemetry | |
CN111953552B (zh) | 数据流的分类方法和报文转发设备 | |
CN101626323A (zh) | 一种网络数据流量监测方法和装置 | |
US20150043574A1 (en) | Communication apparatus, control apparatus, communication system, communication control method, communication terminal and program | |
JP2019047254A (ja) | 情報処理システム、情報処理装置及び情報処理プログラム | |
KR20220029142A (ko) | Sdn 컨트롤러 서버 및 이의 sdn 기반 네트워크 트래픽 사용량 분석 방법 | |
US20210336960A1 (en) | A System and a Method for Monitoring Traffic Flows in a Communications Network | |
Henni et al. | Probe-SDN: A smart monitoring framework for SDN-based networks | |
Zhanikeev | A holistic community-based architecture for measuring end-to-end QoS at data centres | |
KR20180015916A (ko) | Sdn 기반 네트워크에서의 플로우 트래픽 모니터링 장치 및 그 방법 | |
Rowshanrad et al. | A queue monitoring system in openflow software defined networks | |
WO2022152230A1 (zh) | 信息流识别方法、网络芯片及网络设备 | |
JP6662812B2 (ja) | 計算装置及び計算方法 | |
US7701863B2 (en) | Decentralized SLS monitoring for throughput in a differentiated service environment | |
Wang et al. | TeleScope: Flow-level video telemetry using SDN | |
US20140233381A1 (en) | Communication apparatus, control apparatus, communication system, communication control method, and program | |
JP4871775B2 (ja) | 統計情報収集装置 | |
JP4938042B2 (ja) | フロー情報送信装置、中間装置、フロー情報送信方法およびプログラム | |
KR100819543B1 (ko) | 플로우 기반의 트래픽 측정 방법 및 그 장치 |