KR100934714B1 - 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템 - Google Patents

단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템 Download PDF

Info

Publication number
KR100934714B1
KR100934714B1 KR1020070076471A KR20070076471A KR100934714B1 KR 100934714 B1 KR100934714 B1 KR 100934714B1 KR 1020070076471 A KR1020070076471 A KR 1020070076471A KR 20070076471 A KR20070076471 A KR 20070076471A KR 100934714 B1 KR100934714 B1 KR 100934714B1
Authority
KR
South Korea
Prior art keywords
netflow
flow
flow information
information
network
Prior art date
Application number
KR1020070076471A
Other languages
English (en)
Other versions
KR20090012552A (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 KR1020070076471A priority Critical patent/KR100934714B1/ko
Publication of KR20090012552A publication Critical patent/KR20090012552A/ko
Application granted granted Critical
Publication of KR100934714B1 publication Critical patent/KR100934714B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템에 관한 것으로, 네트워크 프로세서를 이용해 생성된 Flow 정보를 NetFlow 패킷 구조로 외부 모니터링 단말기로 전송하고 트래픽 현황을 살펴볼 수 있으며, 네트워크 프로세서 어플리케이션에 네트워크 트래픽 모니터링 시스템을 위한 모듈을 추가하고, 생성된 플로우 정보를 네트워크 7-Tuple에 기반하여 단계적으로 Class A부터 TCP 정보까지 그래픽 사용자 인터페이스를 통해 제공하는데 그 목적이 있다.
본 발명의 목적은 사용자로부터 TCP 서버의 IP주소 및 포트번호를 입력받고, 플로우 정보 전달 및 플로우 관리를 수행하며, 모니터링 콘솔의 GUI 어플리케이션부의 TCP 접속 후 NetFlow 패킷을 송출할 IP 주소와 포트번호 및 송출주기에 대한 정보를 받아 플로우 정보전달을 수행하는 리눅스(Linux)기반 네트워크 어플리케이션부와, 네트워크 어플리케이션부로부터 전달받은 NetFlow 정보를 수집하고 분석하여 IP 주소와 목적지 IP주소를 각각 일정크기로 분할한 후 단계적으로 그래픽 화면에 표시하는 윈도우(Windows) 기반 모니터링 콘솔(Monitoring consol)의 GUI 어플리케이션부로 구성된 것을 특징으로 한다.
네트워크 프로세서, NetFlow, 네트워크 트래픽 모니터링

Description

단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템{Network traffic monitoring system based on step by step flow information}
네트워크 트래픽 모니터링 시스템에 관한 것으로, 보다 상세하게는 네트워크 프로세서를 이용해 생성된 플로우(Flow) 정보를 넷플로우(NetFlow) 패킷 구조로 외부 모니터링 콘솔로 전송하고 트래픽 현황을 표시하도록 생성된 플로우 정보를 네트워크 7-Tuple에 기반하여 단계적으로 Class A부터 TCP 정보까지 그래픽 사용자 인터페이스(GUI)를 통해 제공하는 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템에 관한 것이다.
트래픽 모니터링은 단순한 상태 파악을 이외에 비정상적인 트래픽을 파악하고 네트워크의 취약점을 발견하여 예방조치를 할 수 있어 네트워크 보안에 중요한 역할을 한다.
네트워크의 고속화로 인해서 플로우 기반의 모니터링 기법이 많이 사용되고 있으며, 대표적으로 시스코사(社)의 Cisco NetFlow는 라우터에서 패킷들의 흐름을 플로우 수준으로 측정한다. IETF IPFIX(IP Flow Information Export) 워킹 그룹에서 차세대 라우터에서의 트래픽 모니터링에 관한 표준화 작업을 진행하고 있는데, 이는 패킷들의 흐름을 플로우로 식별하여 모니터링 하는 방법으로 플로우를 다양하게 정의할 수 있는 템플릿 기능을 추가한 것이 특징이다.
또한, IPFIX 는 IPv6 트래픽 모니터링도 가능하게 한다. 라우터에서의 트래픽 모니터링 방법으로 널리 알려진 Cisco NetFlow를 이용하는 트래픽 모니터링 툴은 FlowScan 이라는 공개 도구뿐만 아니라 많은 상용도구가 개발되어 사용되고 있다. 제안하는 트래픽 모니터링 방법은 라우터에서의 트래픽 모니터링 표준인 IPFIX 를 따르도록 하였다.
네트워크 트래픽 대역폭의 급격한 증가와 함께 고성능 라우터 및 스위치 장비에 의한 트래픽 모니터링 시스템이 요구되고 있다. 네트워크 프로세서는 패킷 처리에 적합하도록 설계된 프로세서로써 프로그래밍이 가능하여 작게는 DSLAM부터 에지 라우터 등 다양한 장치로 활용이 가능하다. 또한 단일 프로세서로 10Gbps급의 트래픽 처리가 가능하고 처리 지연시간이 적어 차세대 네트워크 장비로 각광받고 있다.
네트워크 프로세서의 어플리케이션은 크게 마이크로엔진(Micro Engine)을 이용하여 직접 패킷을 처리하는 마이크로블럭(MB: Micro Block)과 각 마이크로블럭을 구성하고 관리하는 코어 콤퍼넌트(CC: Core Component)으로 구분되며, 패킷의 빠른 응답 처리를 위한 실시간 운영체제(Real Time Operating System)를 사용한다.
본 발명은 상기한 바와 같은 종래의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 네트워크 프로세서를 이용해 생성된 플로우 정보를 NetFlow 패킷 구조로 외부 모니터링 단말기로 전송하고 트래픽 현황을 살펴볼 수 있는 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템을 제공하는 것이다.
본 발명의 다른 목적은 상기한 네트워크 프로세서 어플리케이션에 네트워크 트래픽 모니터링 시스템을 위한 모듈을 추가하고, 생성된 플로우 정보를 네트워크 7-Tuple에 기반하여 단계적으로 Class A부터 TCP 정보까지 그래픽 사용자 인터페이스를 통해 제공하는 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템 을 제공하는 것이다.
상기한 바와 같은 본 발명의 목적을 달성하기 위하여, 본 발명에 따른 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템은 네트워크 프로세서 어플리케이션에 네트워크 트래픽 모니터링 시스템을 위한 모듈을 추가하여 생성된 플로우 정보를 넷플로우(NetFlow) 패킷 구조로 상기 외부 모니터링 콘솔로 전송하고, 상기 모니터링 콘솔에서 트래픽 현황을 GUI를 통해 그래픽 화면으로 표시하는 네트워크 트래픽 모니터링 시스템에 있어서, 프로그램 수행시 사용자로부터 TCP 서버의 IP주소 및 포트번호를 입력받고, 플로우 정보 전달 및 플로우 관리를 수행하며, GUI 어플리케이션의 TCP 접속 후 NetFlow 패킷을 송출할 IP 주소와 포트번호 및 송출주기에 대한 정보를 받아 플로우 정보전달을 수행하는 리눅스(Linux)기반의 네트워크 어플리케이션부; 및 상기 네트워크 어플리케이션부로부터 전달받은 NetFlow 정보를 수집하고 분석하여 IP 주소와 목적지 IP주소를 각각 일정크기로 분할한 후 단계적으로 그래픽 화면에 표시하는 윈도우(Windows) 기반 모니터링 콘솔(Monitoring consol)의 GUI 어플리케이션부;로 구성하되, 상기 네트워크 어플리케이션부는 TCP 서버모드로 동작되며 프로그램 수행시 사용자로부터 TCP 서버의 IP 주소 및 포트번호를 입력받으며, GUI 어플리케이션부로부터 전송되는 플로우 정보전달 및 플로우 관리를 수행하는 플로우관리 유틸리티(Flow Control Utility)와, 플로우 정보를 관리하는 코어 콤포넌트(CC)로부터 현재 생성된 플로우의 수를 넘겨받고, 플로우 수에 맞게 메모리를 할당받아 그 메모리 포인터를 상기 코어 콤포넌트(CC)로 넘겨준 후 상기 플로우관리 유틸리티로 해당 메모리 주소를 전달하는 구성관리 드라이버(Configuration Drives)와, 상기 구성관리 드라이버의 'NetFlowConfigDriver'를 주기적으로 호출하여 플로우 정보를 얻고 이를 정의된 NetFlow 포맷 형태로 GUI 어플리케이션부로 전송하는 NetFlow생성자 쓰레드(Thread: NetFlow Generator)를 포함하여 구성된 것을 특징으로 한다.
여기서, 상기 GUI 어플리케이션부는 NetFlow 패킷을 가공하여 사용자에게 네트워크 트래픽 정보를 제공하는 GUI과, 상기 플로우 정보를 단계적 플로우 정보를 업데이트하는 데이터베이스(DB)와, 상기 NetFlow 패킷을 분석하고 가공하여 상기 데이터베이스에 저장하는 NetFlow 분석자(NetFlow Collector)와, 상기 데이터베이스를 주기적으로 점검하여 최종적으로 업데이트 된 시간이 일정 시간 이상인 플로우 집합에 대해서는 데이터베이스의 기록을 삭제하여 불필요한 메모리 사용을 줄인 데이터베이스 관리자(DB_Manager)와, 상기 플로우 관리 유틸리티로 하여금 플로우 정보 전달 및 플로우 관리를 수행하도록 제어하는 컨트롤 플레인(Control Plane)을 포함하여 구성된 것을 특징으로 한다.
또한, 상기 NetFlow생성자 쓰레드에서 모니터링 콘솔로의 넷플로우 정보 전달은 단계적 트래픽 모니터링을 위해 전체 트래픽을 3개의 플로우 집합체인 네트워크 집합체(Network aggregation), 호스트 집합체(Host aggregation), 프로세스 집합체(Process aggregation)로 형태로 구분하여 전달하되, 상기 네트워크 집합체는 0~6 단계로 소스 및 목적지 IP 정보를 기반으로 하며, 상기 호스트 집합체는 7단계로 완전한 소스 IP와 목적지 IP를 가지는 플로우들의 집합이며, 상기 프로세스 집합체는 마지막 8단계이며, IP정보 이외에 DSCP프로토콜, 소스 및 목적지 포트번호, 인터페이스번호를 포함하여 이루어진 것을 특징으로 한다.
삭제
이상에서 설명한 바와 같은 본 발명에 의하면, 네트워크 프로세서 기반의 라우터 및 기타 패킷 처리 어플리케이션에 제안한 모듈만 추가하여 트래픽 모니터링이 가능하다. 또한 단계적 모니터링으로 인해 관리하고자 하는 네트워크의 전체적인 상황을 한눈에 파악할 수가 있다. NetFlow 패킷을 전송하는데 있어 Kernel Space의 소켓 API를 사용하여 넉넉하지 않은 네트워크 프로세서의 메모리 관리에 효율적으로 동작할 수 있도록 돕는다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 더욱 상세하게 설명한다.
도 1은 본 발명에 따른 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템의 구성도로서, 크게 윈도우(Windows) 기반 모니터링 콘솔의 GUI 어플리케이션부(100)와 리눅스(Linux) 기반의 네트워크 어플리케이션부(110)를 포함하여 구성되어 단계적 플로우 정보기반의 네트워크 트래픽 모니터링을 수행한다.
상기 네트워크 어플리케이션부(110)는 외부 모니터링 콘솔의 GUI 어플리케이션부(100)와 연동하기 위한 TCP 소켓을 이용하고, TCP 서버모드로 동작되며 프로그램 수행시 사용자로부터 TCP 서버의 IP 주소 및 포트번호를 입력받으며, 상기 GUI 어플리케이션부(100)로부터 전송되는 플로우 정보전달 및 플로우 관리를 수행하는 플로우관리 유틸리티(111)와, 플로우 정보를 관리하는 코어 콤포넌트(115)로부터 현재 생성된 플로우의 수를 넘겨받고, 플로우 수에 맞게 메모리를 할당받아 그 메모리 포인터를 상기 코어 콤포넌트(115)로 넘겨준 후 상기 플로우관리 유틸리티(111)로 해당 메모리 주소를 전달하는 구성관리 드라이버(114)와, 상기 구성관리 드라이버(114)의 'NetFlowConfigDriver'를 주기적으로 호출하여 플로우 정보를 얻고 이를 정의된 NetFlow 패킷으로 생성하고, 커널공간(Kernel Space)의 UDP소켓을 통해 NetFlow 패킷을 상기 GUI 어플리케이션부(100)로 전송하는 NetFlow생성자 쓰레드(113)와, 어플리케이션 유틸리티로부터 호출을 받아 플로우 정보를 관리하는 코어 콤포넌트(115)와, 실제 네트워크 프로세서에서 패킷을 처리하는 역할을 수행하는 마이크로블럭(117)으로 구성된다.
여기서, 상기 GUI 어플리케이션부(100)는 NetFlow 패킷을 가공하여 사용자에게 네트워크 트래픽 정보를 제공하는 GUI프로그램(101)과, 상기 플로우 정보를 단계적 플로우 정보를 업데이트하는 데이터베이스(104)와, 상기 NetFlow 패킷을 분석하고 가공하여 상기 데이터베이스에 저장하는 NetFlow 분석자(103)와, 상기 데이터베이스를 주기적으로 점검하여 최종적으로 업데이트된 시간이 일정 시간 이상인 플로우 집합에 대해서는 상기 데이터베이스의 기록을 삭제하여 불필요한 메모리 사용을 줄인 데이터베이스 관리자(102)와, 상기 플로우 관리 유틸리티(111)로 하여금 플로우 정보 전달 및 플로우 관리를 수행하도록 제어하는 컨트롤 플레인(105)으로 구성된다.
이와 같이 구성된 본 발명의 실시예에 대한 작용을 첨부된 도 1 내지 도 10을 참조하여 상세히 설명하면 다음과 같다.
삭제
삭제
먼저, 리눅스 기반의 네트워크 어플리케이션부(110)는 플로우관리 유틸리티(111)로부터 시작된다. 상기 플로우관리 유틸리티(111)는 TCP 서버모드로 동작하게 되며 프로그램 수행시 CLI를 이용하여 사용자로부터 TCP 서버의 IP 주소 및 포트 번호를 입력받는다.
이렇게 시작되는 상기 플로우 관리 유틸리티(111)는 GUI 어플리케이션(100)의 컨트롤 플레인(105)에 의해 플로우 정보 전달 및 플로우 관리를 수행한다. 실제 동작은 상기 GUI 어플리케이션(100)의 접속이 있은 후에 수행된다. 상기 GUI 어플리케이션(100)의 TCP 접속 후 NetFlow 패킷을 송출할 IP 주소와 포트 번호 및 송출 주기에 대한 정보를 받은 후 플로우 정보 전달 기능을 수행한다.
플로우 정보 전달은 상기 NetFlow생성자 쓰레드(113)가 담당한다. 이 쓰레드는 플로우관리 유틸리티(111)로부터 NetFlow 패킷 송출에 대한 정보를 받아 무한루프를 돌며 그 기능을 수행한다. 기능 수행의 첫 번째 단계로써 구성관리 드라이버(114) 중 하나인 'NetFlowConfigDriver'를 이용하여 플로우 정보를 얻어오게 된다.
여기서 NetFlowConfigDriver는 실제 네트워크 프로세서에서 패킷을 처리하는 역할을 맡은 마이크로블럭(MB: Microblock)(117)이 생성한 플로우 정보를 코어 콤포넌트 (CC: Core Component)(114)를 통해 얻을 수 있도록 도와준다.
네트워크 어플리케이션(110)은 이렇게 마이크로블록(117), 코어 콤포넌트(115), 구성관리 드라이버(114), 플로우관리 유틸리티(111)로 구성된다. 상기 설명된 NetFlowConfigDriver, 플로우관리 유틸리티(111)는 일반적인 4Gbps급 IPv4 라우터 어플리케이션을 모체로 하여 모듈을 추가하게 된다.
구성관리 드라이버(114)의 NetFlowConfigDriver의 역할은 어플리케이션 유틸리티로부터 호출을 받아 플로우 정보를 관리하는 코어 콤포넌트(115)에게 현재 생성된 플로우의 수를 넘겨받는다. NetFlowConfigDriver는 플로우 수에 맞게 도 3과 같은 데이터 구조체의 메모리를 할당받아 그 메모리 포인터를 코어 콤포넌트로 넘겨준다.
도 3은 코어 콤포넌트와 구성관리 드라이버 사이의 플로우 정보 데이터 포맷을 나타낸 도면으로, 이에 도시된 바와 같이, 플로우 정보를 위한 데이터 구조체는 플로우의 7-Tuple 정보와 누적 패킷 수, 누적 바이트 수를 포함하고 있다. 상기 코어 콤포넌트(115)는 할당된 메모리에 생성된 플로우 정보를 기록하면, NetFlowConfigDriver는 마침내 플로우관리 유틸리티(111)에게 도 3과 같이 메모리 주소를 넘겨준다.
상기 넷플로우 생성자(113)는 NetFlowConfigDriver를 주기적으로 호출하여 플로우 정보를 얻고 이를 UDP 소켓을 통해 GUI 어플리케이션(100)으로 전달하는 기능을 수행한다. 플로우 정보의 전달은 시스코사(社)에서 제안하고 현재 많은 네트워크 장치들이 지원하는 NetFlow 포맷 형태를 따른다.
특히 본 발명에서 사용된 NetFlow version 9의 포맷은 좀 더 유연하게 정보를 전달할 수 있다. NetFlow 패킷은 헤더 필드, Template FlowSet 필드, 그리고 Data FlowSet 필드로 이루어져 있다. Template FlowSet을 어떻게 정의하느냐에 따라 전달하는 Flow의 정보를 달리 할 수 있다.
본 발명에서는 NetFlow version 9의 상기 설명된 특성을 이용하여 단계적 트래픽 모니터링을 위해 네트워크 집합체(Network aggregation), 호스트 집합체(Host aggregation), 프로세스 집합체(Process aggregation)로 플로우를 3가지 형태로 구분하여 플로우 정보를 전달한다. 네트워크 집합체는 소스 및 목적지 IP 정보를 기반으로 한 것으로, 전체 단계 중 0 ~ 6단계까지를 말한다.
IPv4 기반의 IP 주소는 32 비트로 이루어져 있으며 플로우의 양방향성을 고려해 소스 IP와 목적지 IP만을 이용하여 집합체를 구분한다. 각 집합체는 IP 값을 4 비트씩 나누어 구분된다. 예를 들어 0단계의 경우 소스 IP 및 목적지 IP 는 둘다 0.0.0.0 에서 255.255.255.255 까지 표현이 가능하다. 또한 각 IP 주소의 최상위 4비트를 이용하면 소스 IP 및 목적지 IP는 각각 16 그룹으로 나뉘며, 두 IP를 혼합하게 된다면 총 256개의 그룹으로 나누어진다. 맨 앞의 그룹은 (0.0.0.0 ~ 15.255.255.255)의 소스 IP 주소와 (0.0.0.0 ~ 15.255.255.255)의 목적지 IP 주소를 가진 플로우들의 집합이다. 그 다음 집합은 (16.0.0.0 ~ 31.255.255.255)의 소스 IP 주소와 (0.0.0.0 ~ 15.255.255.255)의 목적지 IP 주소를 가진 플로우 집합이 되는 것이다.
앞에서 설명한 플로우 집합은 2단계에서 또한 256개의 플로우 집합으로 구분이된다. 2단계에서의 가장 앞 집합은 (16.0.0.0 ~ 16.255.255.255)의 소스 IP 주소와 (0.0.0.0 ~ 0.255.255.255)의 목적지 IP 주소를 가지는 플로우 집합이 되는 것이다. 이와 같이 GUI 어플리케이션에서 플로우 정보를 저장하기 위한 데이터베이스의 구조는 도 9에 도시되어 있다.
도 9는 상기 설명된 내용을 그림으로 도시화한 내용이다.
호스트 집합체는 7단계를 말하며 완전한 소스 IP와 목적지 IP를 가지는 플로우들의 집합을 말한다.
프로세스 집합체는 마지막 8단계이며 IP 정보이외에 DSCP, 프로토콜, 소스 및 목적지 포트 번호, 인터페이스 번호를 포함한다. 전체 트래픽을 상기 설명한 바와 같이 구분하게 되면 네트워크의 어떤 부분에서 얼마만큼의 트래픽이 생성되고 있는가를 쉽게 파악할 수 있으며 DDoS 공격과 같은 트래픽을 쉽게 알아차릴 수 있게 한다.
도 4는 상기 설명한 3가지 플로우 집합체를 본 발명의 NetFlow version 9에 적용하기 위한 Template FlowSet 패킷 포맷을 보여준다. Template FlowSet 패킷은 각 FlowSet 고유의 번호와 전체 길이, 그리고 해당 FlowSet이 가지는 필드의 번호 및 필드 값의 길이 정보를 가진다. 세 플로우 집합체는 각기 조금씩 다른 모양을 가지고 있다. 호스트 집합체를 골자로 하여 네트워크 집합체에는 source_mask 및 destination_mask 정보를 추가로 가지며, 호스트 집합체에는 source_port, destination_port, Protocol, DSCP 정보를 추가로 가진다. 그리고 세 플로우 집합체 모두 누적 바이트 수와 패킷수를 64 비트 크기의 정수형 데이터로 정의하여 정확한 정보를 전달할 수 있다.
도 5는 도 4의 Template FlowSet에 의해 정의된 실제 플로우 정보가 담기는 Data FlowSet 패킷 포맷을 보여준다. Data FlowSet은 Template FlowSet ID에 따라 구분되며 하나의 패킷에 여러개의 Data FlowSet 정보를 담을 수 있다.
네트워크 프로세서는 상기 설명된 방법으로 NetFlow version 9 패킷을 UDP 소켓을 이용하여 GUI 어플리케이션(100)으로 전송한다. 이 때 시스템의 부하를 줄이기 위하여 User Space 상의 소켓 API를 사용하지 않고 Kernel Space 상에서 동작하는 소켓을 사용한다. User Space의 소켓 API는 Kernel Space로 다시 패킷 내용을 복사하는 등의 부하가 생기게 되는데, 실시간으로 트래픽을 처리하는 네트워크 프로세서의 부하를 줄이기 위해 Kernel Space의 소켓 API를 곧바로 사용하도록 한다.
모니터링 다이얼로그(600)을 통해 각 플로우 집합의 상태(플로우 수, 트래픽 용량)와 전체 트래픽의 변화를 2차원 그래프로 나타낸다.
도 6은 본 발명에 실시예에 따른 GUI 어플리케이션의 모니터링 다이얼로그의 실행화면은 보여준다. 플로우 상태 리스트 다이얼로그(601)는 각 플로우 집합의 상태를 플로우 수와 트래픽 용량으로 나타내며, 트래픽 용량에 따라 셀의 색이 변화한다. 도면부호 '612'에는 각 트래픽 용량별 셀의 색을 안내한다. 도 6은 4단계의 트래픽 상태를 나타낸 예로서 도면부호 '603, 604, 605'는 각각 단계, 소스 IP 시작 주소, 목적지 IP 시작 주소를 각각 나타내고 있다. 도 6에서 예로 보여주는 것은 소스 IP 주소가 (165.229.0.0 ~ 165.229.255.255) 이고 목적지 IP 주소가 (192.168.0.0 ~ 192.168.255.255)인 플로우 집합들이다. 이들 플로우 집합 전체의 수 및 트래픽 용량은 각각 도면부호 '606'과 '607'에서 종합하여 나타내어 준다. 도면부호 '608' 버튼은 모니터링 GUI 어플리케이션이 네트워크 프로세서 어플리케이션에 접속하기 위한 다이얼로그를 불러오고, 도면부호 '609' 버튼은 접속을 해제해준다. '610' 버튼은 다이얼로그가 항상 최신 상태를 보여주지 않고 주기적으로 업데이트 하는 것을 수동으로 업데이트하기 위함이다. 또한 '611' 버튼은 현재 다이얼로그가 보여주고 있는 단계에서 한 단계 위의 상태로 바꾸기 위한 것이다. 또한 '601'의 한 셀을 클릭하게 되면 해당 플로우 집합의 다음 단계에 대해 같은 방법으로 상태를 나타낸다. 이와 같은 본 발명이 적용되는 GUI 어플리케이션의 단계적 실행 예는 도 7에서 나타내었다.
도 8은 본 발명이 적용되는 GUI 어플리케이션의 플로우 집합 및 프로세스 단계의 플로우 정보 다이얼로그를 나타낸 도면이다.
도 2는 트래픽 모니터링 GUI 어플리케이션(100)의 클래스 다이어그램을 나타내었다. 이 프로그램은 비주얼 C++ 6.0을 이용하여 구현되었다. 트래픽 모니터링 GUI 어플리케이션(100)은 UDP 소켓 API를 이용한 클래스(204)통해 NetFlow version 9 포맷의 패킷을 받게 된다. NetFlow 수집자 클래스(203)는 패킷에 포함된 Template FlowSet의 기초 정보를 바탕으로 Data FlowSet을 상기 설명된 3가지 집합체로 구분한다. 각각 구분된 데이터는 데이터베이스를 업데이트 해준다. 발생 가능한 대부분의 플로우에 대한 정보를 담기 위해서는 대용량의 데이터베이스 시스템이 필요로 하다.
본 발명에서는 모든 플로우에 대한 정보는 배제하며 B 클래스 이하 네트워크를 모델로 하였다. 따라서 제안한 시스템에서는 대용량의 데이터베이스 대신 시스템 메모리를 활용한 고속처리에 중점을 두었다. 플로우 정보는 CAggregation 클래스(205)를 상속받은 CDBProcessAggregation 클래스(206)와 CDBHostAggregation 클래스(207)에 저장된다. 상기 설명한 네트워크 집합체와 호스트 집합체는 'CDBHostAggregation' 클래스로 모두 저장이 가능하며, 프로세서 집합체는 CDBProcessAggregation 클래스로 저장한다. CDBHostAggregation 클래스는 16x16 크기를 가지는 DB_entry(209)의 배열을 가진다. DB_entry에는 해당 플로우 집합의 시작 시간과 최근 업데이트 시간, 플로우 수, 트래픽 용량, 누적 패킷수와 바이트 수를 가진다. 또한 DB_entry는 해당 플로우 집합의 다음 단계 DB_entry에 대한 포인터를 가지게 된다. 단계 8의 CDBHostAggregation 클래스는 DB_process_entry(208)를 벡터 형식으로 가지며, DB_process_entry는 DB_entry를 상속받고 추가적으로 Layer-4 입출력 포트번호와 DSCP, 프로토콜, 인터페이스 정보를 가진다.
삭제
플로우 정보의 업데이트는 도 10에서 나타낸 순서도에 의한 방법으로 진행이 된다. 본 발명에서는 프로세스 집합체의 플로우를 업데이트하기 위하여 해당 플로우가 속하는 0~7단계의 네트워크 집합체 및 호스트 집합체를 모두 업데이트 해준다. 간결하고 빠른 동작을 위해 재귀함수를 통하여 해당 플로우 집합의 업데이트를 위해 필요한 단계의 모든 플로우 집합을 업데이트 해준다.
상기 설명된 방법을 통해 모든 플로우 정보가 기록되며 유지된다. 또한 데이 터베이스 관리 쓰레드(102)는 주기적으로 데이터베이스를 점검하여 최종적으로 업데이트 된 시간이 일정 시간 이상인 플로우 집합에 대해서는 데이터베이스의 기록을 삭제하여 불필요한 메모리 사용을 줄인다.
모니터링 주 다이얼로그(201)는 해당 집합체의 누적 패킷수, 바이트수, 트래픽 용량과 같은 대략적인 정보만을 보여준다. 보다 자세한 정보를 위하여 집합체 다이얼로그(210)과 프로세스 잡합체 다이얼로그(212)가 존재한다. 도면부호 '210'은 모니터링 주 다이얼로그의 각 셀을 우-클릭(right click)하게 되면 해당 플로우 집합의 생성시간, 최종 업데이트 시간, 플로우수, 패킷수, 바이트수, 트래픽 용량을 보여준다. 도면부호 '212'는 마지막 단계(8 단계)의 모든 프로세스 플로우를 위해 위의 정보 이외에 Layer-4 입출력 포트 번호, DSCP, 프로토콜, 인터페이스 정보를 나타낸다.
이상에서 설명한 본 발명에 따른 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템 및 방법은 상기한 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양하게 변경하여 실시할 수 있는 범위까지 그 기술적 정신이 있다.
도 1은 본 발명에 따른 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템의 전체 구조를 도시한 도면.
도 2는 본 발명에 따른 모니터링 GUI 어플리케이션 클래스 다이어그램을 도시한 도면.
도 3은 본 발명에 따른 Core Component와 Linux Driver 사이의 플로우 정보 데이터 포맷을 나타낸 도면.
도 4는 본 발명에 따른 NetFlow 패킷 생성자와 GUI 어플리케이션의 수집자 사이의 NetFlow Template 포맷을 나타낸 도면.
도 5는 본 발명에 따른 NetFlow 패킷 생성자와 GUI 어플리케이션의 수집자 사이의 NetFlow Data FlowSet 포맷을 나타낸 도면.
도 6은 본 발명이 적용되는 GUI 어플리케이션의 실행 모습을 나타낸 도면.
도 7은 본 발명이 적용되는 GUI 어플리케이션의 단계적 실행 모습을 나타낸 도면.
도 8은 본 발명이 적용되는 GUI 어플리케이션의 플로우 집합 및 프로세스 단계의 플로우 정보 다이얼로그를 나타낸 도면.
도 9는 본 발명이 적용되는 GUI 어플리케이션에서 플로우 정보를 저장하기 위한 데이터베이스의 구조를 나타낸 도면.
도 10은 본 발명이 적용되는 GUI 어플리케이션에서 전달받은 NetFlow 패킷을 데이터베이스에 저장하기 위한 방법을 나타낸 다이어그램.

Claims (6)

  1. 네트워크 프로세서 어플리케이션에 네트워크 트래픽 모니터링 시스템을 위한 모듈을 추가하여 생성된 플로우 정보를 넷플로우(NetFlow) 패킷 구조로 상기 외부 모니터링 콘솔로 전송하고, 상기 모니터링 콘솔에서 트래픽 현황을 GUI(Graphic User Interface)를 통해 그래픽 화면으로 표시하는 네트워크 트래픽 모니터링 시스템에 있어서,
    프로그램 수행시 사용자로부터 TCP 서버의 IP주소 및 포트번호를 입력받고, 플로우 정보 전달 및 플로우 관리를 수행하며, 모니터링 콘솔의 GUI 어플리케이션부의 TCP 접속 후 NetFlow 패킷을 송출할 IP 주소와 포트번호 및 송출주기에 대한 정보를 받아 플로우 정보전달을 수행하는 리눅스(Linux)기반 네트워크 어플리케이션부; 및
    상기 네트워크 어플리케이션부로부터 전달받은 NetFlow 정보를 수집하고 분석하여 IP 주소와 목적지 IP주소를 각각 일정크기로 분할한 후 단계적으로 그래픽 화면에 표시하는 윈도우(Windows) 기반 모니터링 콘솔(Monitoring consol)의 GUI 어플리케이션부;로 구성하되,
    상기 네트워크 어플리케이션부는 TCP 서버모드로 동작되며 프로그램 수행시 사용자로부터 TCP 서버의 IP 주소 및 포트번호를 입력받으며, 상기 GUI 어플리케이션부로의 플로우 정보전달 및 플로우 관리를 수행하는 플로우관리 유틸리티(Flow Control Utility)와,
    플로우 정보를 관리하는 코어 콤포넌트(CC)로부터 현재 생성된 플로우의 수를 넘겨받고, 플로우 수에 맞게 메모리를 할당받아 그 메모리 포인터를 상기 코어 콤포넌트(CC)로 넘겨준 후 상기 플로우관리 유틸리티로 해당 메모리 주소를 전달하는 구성관리 드라이버(Configuration Drives)와,
    상기 구성관리 드라이버의 'NetFlowConfigDriver'를 주기적으로 호출하여 플로우 정보를 얻고 이를 정의된 NetFlow 포맷 형태로 GUI 어플리케이션부로 전송하는 NetFlow생성자 쓰레드(Thread: NetFlow Generator)를 포함하여 구성된 것을 특징으로 하는 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 GUI 어플리케이션부는 생성된 플로우 정보를 네트워크 7-튜플(Tuple)에 기반하여 단계적으로 클래스 A부터 TCP 정보까지 GUI를 통해 표시하는 것을 특징으로 하는 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템.
  4. 제 1 항에 있어서,
    상기 GUI 어플리케이션부는 넷플로우 패킷을 가공하여 사용자에게 네트워크 트래픽 정보를 제공하는 GUI;
    상기 플로우 정보를 단계적 플로우 정보를 업데이트 하는 데이터베이스;
    상기 넷플로우 패킷을 분석하고 가공하여 상기 데이터베이스에 저장하는 넷플로우분석자;
    상기 데이터베이스를 주기적으로 점검하여 최종적으로 업데이트 된 시간이 일정 시간 이상인 플로우 집합에 대해서는 데이터베이스의 기록을 삭제하여 불필요한 메모리 사용을 줄인 데이터베이스 관리자; 및
    상기 플로우 관리 유틸리티로 하여금 플로우 정보 전달 및 플로우 관리를 수행하도록 제어하는 컨트롤 플레인;을 포함하여 구성된 것을 특징으로 하는 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템.
  5. 제 1 항에 있어서,
    상기 넷플로우 생성자쓰레드에서 GUI 어플리케이션부로 전달하는 넷플로우 포맷의 정의는 NetFlow version9의 포맷에 따르며, NetFlow 패킷은 헤더필드, Template FlowSet 필드, Data FlowSet 필드로 이루어진 것을 특징으로 하는 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템.
  6. 제 1 항 또는 제 5 항에 있어서,
    상기 넷플로우 생성자쓰레드에서 GUI 어플리케이션부로의 넷플로우 정보 전달은 단계적 트래픽 모니터링을 위해 전체 트래픽을 3개의 플로우 집합체인 네트워크 집합체, 호스트 집합체, 프로세스 집합체의 형태로 구분하여 전달하되,
    상기 네트워크 집합체는 0~6 단계로 소스 및 목적지 IP 정보를 기반으로 하며,
    상기 호스트 집합체는 7단계로 완전한 소스 IP와 목적지 IP를 가지는 플로우들의 집합이며,
    상기 프로세스 집합체는 마지막 8단계이며, IP정보 이외에 DSCP프로토콜, 소스 및 목적지 포트번호, 인터페이스번호를 포함하여 이루어진 것을 특징으로 하는 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템.
KR1020070076471A 2007-07-30 2007-07-30 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템 KR100934714B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070076471A KR100934714B1 (ko) 2007-07-30 2007-07-30 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070076471A KR100934714B1 (ko) 2007-07-30 2007-07-30 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템

Publications (2)

Publication Number Publication Date
KR20090012552A KR20090012552A (ko) 2009-02-04
KR100934714B1 true KR100934714B1 (ko) 2009-12-30

Family

ID=40683299

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070076471A KR100934714B1 (ko) 2007-07-30 2007-07-30 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템

Country Status (1)

Country Link
KR (1) KR100934714B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101042416B1 (ko) * 2009-04-29 2011-06-16 주식회사 케이티 무선 데이터 서비스 모니터링 장치 및 무선 데이터 서비스 모니터링 방법
KR101594112B1 (ko) * 2009-12-10 2016-02-26 한국전자통신연구원 플로우 기반의 네트워크 환경에서의 패킷 스케줄링 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050100470A (ko) * 2004-04-14 2005-10-19 (주)넷맨 이기종 네트워크의 통합 트래픽 정보수집방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050100470A (ko) * 2004-04-14 2005-10-19 (주)넷맨 이기종 네트워크의 통합 트래픽 정보수집방법 및 시스템

Also Published As

Publication number Publication date
KR20090012552A (ko) 2009-02-04

Similar Documents

Publication Publication Date Title
CN109309605B (zh) 带内网络遥测系统及方法
US10893004B2 (en) Configurable detection of network traffic anomalies at scalable virtual traffic hubs
Kohler et al. The Click modular router
US11677719B2 (en) Firewall in a virtualized computing environment using physical network interface controller (PNIC) level firewall rules
US8059532B2 (en) Data and control plane architecture including server-side triggered flow policy mechanism
ES2574788T3 (es) Método para configurar ACL en dispositivo de red basándose en información de flujo
US7610330B1 (en) Multi-dimensional computation distribution in a packet processing device having multiple processing architecture
Wang et al. Autonomic QoS management mechanism in software defined network
US12047477B2 (en) Packet-programmable statelets
US10873566B2 (en) Distributed firewall in a virtualized computing environment
WO2007101117A2 (en) Systems and methods of network monitoring
CN109547288B (zh) 一种协议无关转发网络可编程流测量方法
US10868728B2 (en) Graph-based network management
EP3791543B1 (en) Packet programmable flow telemetry profiling and analytics
Laraba et al. Defeating protocol abuse with P4: Application to explicit congestion notification
CN111181850B (zh) 数据包泛洪抑制方法、装置和设备及计算机存储介质
JP6671112B2 (ja) ネットワークスイッチにおける柔軟かつ効率的な解析の方法およびその装置
CN113242208A (zh) 基于网络流的网络态势分析系统
US20170063660A1 (en) Application-specific integrated circuit data flow entity counting
CN117176802B (zh) 一种业务请求的全链路监控方法、装置、电子设备及介质
KR100934714B1 (ko) 단계적 플로우 정보기반의 네트워크 트래픽 모니터링 시스템
KR101191251B1 (ko) 3단계 동적 분류를 통한 10기가급 대용량 플로우 생성 및 제어방법
Saqib et al. An accurate & efficient approach for traffic classification inside programmable data plane
US11146468B1 (en) Intelligent export of network information
AT&T

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131011

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151109

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161219

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171222

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 11