KR20200080513A - 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템 - Google Patents

네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템 Download PDF

Info

Publication number
KR20200080513A
KR20200080513A KR1020180170025A KR20180170025A KR20200080513A KR 20200080513 A KR20200080513 A KR 20200080513A KR 1020180170025 A KR1020180170025 A KR 1020180170025A KR 20180170025 A KR20180170025 A KR 20180170025A KR 20200080513 A KR20200080513 A KR 20200080513A
Authority
KR
South Korea
Prior art keywords
packet
network
flow
monitoring
flow rule
Prior art date
Application number
KR1020180170025A
Other languages
English (en)
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 KR1020180170025A priority Critical patent/KR20200080513A/ko
Publication of KR20200080513A publication Critical patent/KR20200080513A/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/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

네트워크 장치 및 이를 이용한 네트워크 모니터링 제어 방법 및 시스템이 개시된다. 상기 네트워크 장치 및 이를 이용한 네트워크 모니터링 제어 방법 및 시스템은, 기존의 데이터 패킷에 네트워크 상태 정보를 삽입하여 동시에 전송함으로써 트래픽 증가량을 최소화하고 프로그래머블 스위치를 사용하여 네트워크 모니터링 기능을 제공함으로써, 고성능 및 고효율의 모니터링이 가능한 고신뢰성의 네트워크 장치 및 이를 이용한 네트워크 모니터링 제어 방법 및 시스템을 제공할 수 있다.

Description

네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템{NETWORK DEVICE AND METHOD AND SYSTME FOR CONTROLLING NETWORK MONITORING USING THE SAME}
본 발명은 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템에 관한 것으로, 보다 상세하게는, 프로그래머블 스위치로 구성된 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템에 관한 것이다.
최근 각광받고 있는 소프트웨어 정의 네트워크(SDN, Software Defined Network)는 네트워크 장치의 제어 평면(Control Plane)과 데이터 평면(Data Plane)을 분리하고, 이들 간에 개방형 인터페이스를 정의하는 기술이다. 이에 따라, 소프트웨어 정의 네트워크(SDN)에서는 데이터 평면(Data Plane) 내에서 패킷 전달을 위한 터널 등을 생성함으로써 이기종 장치 간의 상호 연동을 제공하고 있다.
다시 말하면, 소프트웨어 정의 네트워크(SDN, Software Defined Network) 기술은 개방형 인터페이스 및 표준 프로토콜에 따라 별도의 장치에서 이원화된 복수의 네트워크 장치들을 중앙 집중식으로 제어하고 있다. 이에 따라, 소프트웨어 정의 네트워크(SDN, Software Defined Network)은 데이터 센터(Data center), 클라우드(Cloud)를 비롯한 다양한 환경에서 활발히 적용되고 있다.
최근에는, 소프트웨어 정의 네트워크(SDN)에서의 이기종 네트워크 장치들의 원활한 연동을 위해, 네트워크 모니터링 기술(Network Monitoring)에 주목하고 있다.
종래의 네트워크 모니터링 기술(Network Monitoring)은 대부분 네트워크 장치들 간의 전달하고자 하던 데이터 패킷 이외에 네트워크 모니터링(Network Monitoring)을 위한 별도의 패킷을 추가적으로 생성하여 전달하는 방식을 취하고 있다. 그러나, 이러한 종래의 네트워크 모니터링 기술(Network Monitoring)은 트래픽 증가에 의해 네트워크 속도 저하 등의 단점을 유발하고 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 고효율 및 고신뢰성의 네트워크 장치를 제공하는 데 있다.
또한, 상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은 고효율 및 고신뢰성의 네트워크 모니터링 방법을 제공하는 데 있다.
또한, 상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은 고효율 및 고신뢰성의 네트워크 모니터링 시스템을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따라 제어 어플리케이션 장치, 네트워크 컨트롤러 및 네트워크 장치를 포함하는 소프트웨어 정의 네트워크(Software Defined Network) 내 적용되어 상기 제어 어플리케이션 장치에 의해 데이터 평면(Data Plane) 네트워크의 상태 정보를 모니터링(Monitoring)하는 네트워크 모니터링 제공 방법은 메상기 네트워크 컨트롤러가 플로우 룰(Flow-Rule)을 생성하는 단계, 데이터 평면 내 상기 네트워크 장치 내 적어도 하나의 플로우 테이블에 상기 플로우 룰을 개별 송신하는 단계, 상기 네트워크 장치 내 인입부에, 호스트와 연결된 포트로부터 패킷이 유입될 경우, 상기 인입부 내 특정 플로우 테이블에 포함된 상기 플로우 룰과 매칭되는 상기 패킷을 복제하는 단계 및 상기 네트워크 장치 내 인출부는 상기 인출부 내 특정 플로우 테이블의 상기 플로우 룰에 따라, 상기 복제된 패킷 내 INT 헤더에 모니터링 패킷을 생성하는 단계를 포함한다.
이때, 상기 네트워크 컨트롤러가 플로우 룰을 생성하는 단계는 상기 네트워크 컨트롤러에 연결된 적어도 하나의 네트워크 장치를 식별하는 단계, 상기 식별된 네트워크 장치의 개수를 카운팅하는 단계, 상기 식별된 네트워크 장치 내 포트의 개수를 카운팅하는 단계 및 상기 포트가 호스트에 연결될 경우, 상기 플로우 룰을 생성하는 단계를 포함할 수 있다.
또한, 상기 식별된 네트워크 장치의 개수를 카운팅하는 단계 이전에, 상기 네트워크 장치의 개수를 카운팅하는 카운터 및 상기 포트의 개수를 카운팅하는 카운터들을 초기화하는 단계를 더 포함할 수 있다.
그리고, 상기 인입부 내 특정 플로우 테이블에 포함된 상기 플로우 룰과 매칭되는 상기 패킷을 복제하는 단계 이전에, 상기 카운팅된 포트 개수 및 상기 네트워크 장치 내 연결된 전체 상기 포트 개수를 비교하는 단계 및 상기 카운팅된 상기 네트워크 장치의 개수 및 상기 네트워크 컨트롤러에 연결된 전체 상기 네트워크 장치의 개수를 비교하는 단계를 더 포함할 수 있다.
상기 인입부 내 특정 플로우 테이블에 포함된 상기 플로우 룰과 매칭되는 상기 패킷을 복제하는 단계는 상기 패킷이 제1 인입 테이블 내 플로우 룰에 매칭될 경우, 상기 제1 인입 테이블이 상기 플로우 룰에 명세된 제1 동작을 수행하여 상기 패킷에 INT 헤더를 삽입하는 단계, 상기 패킷이 제2 인입 테이블 내 플로우 룰에 매칭될 경우, 상기 제2 인입 테이블이 상기 플로우 룰에 명세된 제2 동작을 수행하여 상기 INT 헤더에 포함된 네트워크 상태 정보를 추출하는 단계 및 상기 패킷을 복제하는 단계를 포함할 수 있다.
이때, 상기 제1 동작은 상기 패킷의 메타데이터 내 제1 비트를 1로 설정하는 동작이고, 상기 제2 동작은 상기 패킷의 메타데이터 내 제2 비트를 1로 설정하고, 상기 메타데이터의 속성을 설정하는 동작일 수 있다.
상기 복제된 패킷 내 헤더에 모니터링 패킷을 생성하는 단계는 상기 패킷이 모니터링 명세에 해당하는 특정 패킷일 경우, 상기 패킷에 제1 비트가 설정되어 있는지 확인하는 단계, 상기 패킷에 상기 제1 비트가 설정되어 있을 경우, 제1 인출 테이블로 상기 패킷을 전송하는 단계, 상기 패킷이 상기 제1 인출 테이블 내 플로우 룰과 매칭되는 경우, 상기 패킷 내 상기 INT 헤더의 유무를 판단하는 단계, 상기 패킷 내 상기 INT 헤더가 존재하지 않을 경우, 상기 패킷 내 상기 INT 헤더를 추가하는 단계, 상기 INT 헤더가 존재할 경우, 상기 제3 인출 테이블 내 플로우 룰에 명세된 제3 동작을 수행하는 단계 및 상기 제4 인출 테이블 내 플로우 룰에 명세된 제4 동작을 수행하여 상기 모니터링 패킷을 생성하는 단계를 포함할 수 있다.
이때, 상기 제3 동작은 상기 패킷 내 INT 헤더에 지정된 네트워크 상태 정보를 전달하는 동작을 수행하는 동작이고, 상기 제4 동작은 상기 패킷이 상기 제4 인출 테이블 내 플로우 룰과 매칭될 경우, 상기 INT 헤더 내 네트워크 상태 정보를 캡슐화하는 동작일 수 있다.
또한, 상기 모니터링 패킷을 생성하는 단계 이후에, 상기 패킷 내 메타데이터에 제2 비트가 설정되어 있을 경우, 상기 패킷에 삽입된 상기 INT 헤더 및 INT 메타데이터를 제거할 수 있다.
또한, 상기 네트워크 모니터링 제공 방법은 상기 플로우 룰을 상기 네트워크 장치의 플로우 테이블로 송신하는 단계 전, 생성된 상기 플로우 룰들의 탐색된 포트 개수의 이상 여부를 검사하는 단계를 더 포함할 수 있다.
그리고, 상기 네트워크 모니터링은 In-bend 방식의 네트워크 텔레메트리(INT, In-band Network Telemetry, 이하 INT) 서비스를 이용하여 모니터링을 수행할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따라 소프트웨어 정의 네트워크(Software Defined Network) 내 적용되어 데이터 평면(Data Plane) 네트워크의 상태 정보를 모니터링(Monitoring)하는 네트워크 모니터링 제공 시스템은, 네트워크 관리자에 의해 정의된 적어도 하나의 모니터링 정책 및 상태 정보 수집 정책을 포함하는 네트워크 정책을 포함하는 제어 어플리케이션 장치, 제어 평면(Control Plane)에 제공되고, 수신된 상기 네트워크 정책을 이용하여 플로우 룰(Flow-Rule)을 생성하는 네트워크 컨트롤러 및 데이터 평면(Data Plane)에 제공되고, 수신된 상기 플로우 룰을 적어도 하나의 플로우 테이블에 개별 적용하여, 특정 플로우 테이블에 유입되는 패킷을 상기 플로우 룰과 매치시켜, 모니터링 패킷을 생성하는 네트워크 장치를 포함한다.
여기서, 상기 네트워크 장치는 상기 플로우 룰이 개별 적용되는 적어도 하나의 제1 플로우 테이블을 포함하며, 상기 제1 플로우 테이블에 적용된 플로우 룰과 매칭되는 상기 패킷의 유입시, 상기 패킷을 복제하는 인입부 및 상기 플로우 룰이 개별 적용된 적어도 하나의 제2 플로우 테이블을 포함하며, 상기 제2 플로우 테이블에 적용된 플로우 룰과 매칭되는 상기 복제된 패킷의 유입시, 모니터링 패킷을 생성하는 인출부를 포함할 수 있다.
또한, 상기 네트워크 컨트롤러는 상기 네트워크 컨트롤러에 연결된 적어도 하나의 상기 네트워크 장치를 식별하고, 상기 네트워크 장치 내 포트가 호스트에 연결될 경우, 상기 플로우 룰을 생성할 수 있다.
상기 모니터링 정책은, 모니터링하고자 하는 특정 패킷의 식별 정보 명세 및 수집하고자 하는 네트워크의 상태 정보의 정책 명세를 포함할 수 있다.
상기 상태 정보 수집 정책은, 네트워크 모니터링 정보를 생성하기 위한 특정 패킷의 식별 명세 및 상기 특정 패킷을 대상으로 상기 네트워크 장치에서 수행될 적어도 하나의 동작에 필요한 수집 명세를 포함할 수 있다.
상기 인입부는 상기 패킷이 제1 인입 테이블 내 플로우 룰에 매칭될 경우, 상기 제1 인입 테이블이 상기 플로우 룰에 명세된 제1 동작을 수행하여 상기 패킷에 INT 헤더를 삽입하고, 상기 패킷이 제2 인입 테이블 내 플로우 룰에 매칭될 경우, 상기 제2 인입 테이블이 상기 플로우 룰에 명세된 제2 동작을 수행하여 상기 INT 헤더에 포함된 네트워크 상태 정보를 추출하여 상기 패킷을 복제할 수 있다.
이때, 상기 제1 동작은 상기 패킷의 메타데이터 내 제1 비트를 1로 설정하는 동작이고, 상기 제2 동작은 상기 패킷의 메타데이터 내 제2 비트를 1로 설정하고, 상기 메타데이터의 속성을 설정하는 동작일 수 있다.
상기 인출부는 상기 복제된 패킷 중 모니터링 명세에 개시되고, 상기 제1 비트가 설정된 패킷이 인입될 경우, 제1 인출 테이블로 상기 패킷을 전송하여, 상기 패킷 내 INT 헤더에 기록된 네트워크 상태 정보를 제4 인출 테이블로 전달하고, 상기 제4 인출 테이블에 의해 상기 전송된 네트워크 상태 정보를 캡슐화하여 모니터링 패킷을 생성할 수 있다.
상기 목적을 달성하기 위한 본 발명의 또다른 실시예에 따라 제어 어플리케이션 장치 및 네트워크 컨트롤러를 포함하는 소프트웨어 정의 네트워크(Software Defined Network) 내 적용되어, 상기 제어 어플리케이션 장치에 의해 데이터 평면(Data Plane) 네트워크의 상태 정보 모니터링(Monitoring)을 수행하는 네트워크 장치는 외부로부터 인입된 패킷으로부터 적어도 하나의 헤더 정보를 추출하고, 상기 패킷 내 INT 헤더의 존재 여부를 판별하는 파싱부, 상기 네트워크 컨트롤러로부터 생성된 플로우 룰이 개별 적용된 적어도 하나의 제1 플로우 테이블을 포함하며, 상기 제1 플로우 테이블에 적용된 플로우 룰과 매칭되는 상기 패킷의 유입시, 상기 패킷을 복제하는 인입부 및 상기 플로우 룰이 개별 적용된 적어도 하나의 제2 플로우 테이블을 포함하며, 상기 제2 플로우 테이블에 적용된 플로우 룰과 매칭되는 상기 복제된 패킷의 유입시, 모니터링 패킷을 생성하는 인출부를 포함한다.
본 발명의 실시예에 따른 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템은 기존의 데이터 패킷에 네트워크 상태 정보를 삽입하여 동시에 전송함으로써, 트래픽 증가량을 최소화하는 고정밀 및 고효율의 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템을 제공할 수 있다.
또한, 상기 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템은 프로그래머블 스위치를 사용하여 네트워크 모니터링 기능을 제공함으로써, 고활용 및 고효율의 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템을 제공할 수 있다.
그리고, 상기 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템은 중앙 집중화 방식의 네트워크 모니터링 제어가 가능함으로써, 고성능 및 고효율의 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템의 블록 구성도이다.
도 2는 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템 내 모니터링 정책의 이미지이다.
도 3은 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템 내 데이터 수집 정책의 이미지이다.
도 4는 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템 내 네트워크 장치의 블록 구성도이다.
도 5는 본 발명의 실시예에 따른 네트워크 장치 내 인입부의 블록 구성도이다.
도 6은 본 발명의 실시예에 따른 네트워크 장치 내 제1 인입 테이블의 플로우 룰을 정리한 표이다.
도 7은 본 발명의 실시예에 따른 네트워크 장치 내 제2 인입 테이블의 플로우 룰을 정리한 표이다.
도 8은 본 발명의 실시예에 따른 네트워크 장치 내 인출부의 블록 구성도이다.
도 9는 본 발명의 실시예에 따른 네트워크 장치 내 제2 인출 테이블의 플로우 룰을 정리한 표이다.
도 10은 본 발명의 실시예에 따른 네트워크 장치 내 제4 인출 테이블의 플로우 룰을 정리한 표이다.
도 11은 본 발명의 실시예에 따른 네트워크 모니터링 제어 방법의 순서도이다.
도 12는 본 발명의 실시예에 따른 네트워크 모니터링 제어 방법 중 플로우 룰을 생성하는 단계를 설명하기 위한 순서도이다.
도 13은 본 발명의 실시예에 따른 네트워크 모니터링 제어 방법 중 네트워크 장치를 이용하여 패킷을 복제하는 단계를 설명하기 위한 순서도이다.
도 14는 본 발명의 실시예에 따른 네트워크 모니터링 제어 방법 중 복제된 패킷의 처리 단계를 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템의 블록 구성도이다.
도 1을 참조하면, 네트워크 모니터링 제어 시스템은 소프트웨어 정의 네트워크(SDN) 환경에 적용되어, 데이터 평면(Data Plane) 네트워크의 상태 정보를 수집하여 모니터링 할 수 있다.
실시예에 따라 보다 구체적으로 설명하면, 네트워크 모니터링 제어 시스템은 IN-BAND 방식의 네트워크 텔레메트리(In-bend Network Telemetry, 이하 INT) 서비스를 제공할 수 있다.
In-bend 방식의 네트워크 텔레메트리(INT, In-band Network Telemetry, 이하 INT) 서비스는 제어 평면(Control Plane)의 개입 없이 데이터 평면(Data Plane)에서 네트워크 상태 정보를 개별 패킷 단위로 수집하여 모니터링 하는 것으로, 프로그래머블 스위치에 의해 지원될 수 있다. 프로그래머블 스위치에 의해 지원되는 INT 서비스는 하기 네트워크 모니터링 제어 시스템의 구성별 설명시 보다 자세히 설명하겠다.
네트워크 모니터링 제어 시스템은 제어 어플리케이션 장치(1000), 네트워크 컨트롤러(3000), 적어도 하나의 네트워크 장치(5000) 및 데이터 저장 장치(7000)를 포함할 수 있다.
제어 어플리케이션 장치(1000)는 네트워크 관리자에 의해 정의된 적어도 하나의 네트워크 정책을 포함할 수 있다. 실시예에 따르면, 네트워크 관리자로부터 정의된 적어도 하나의 네트워크 정책은 적어도 하나의 기준 영역이 명세된 모니터링 정책 및 상태 정보 수집 정책을 포함할 수 있다.
하기에서는 제어 어플리케이션 장치(1000)에 제공되는 모니터링 정책 및 상태 정보 수집 정책을 각각 하기 도 2 및 도 3을 참조하여 보다 구체적으로 설명하겠다.
도 2는 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템 내 모니터링 정책의 이미지이다.
도 2를 참조하면, 모니터링 정책은 제1 모니터링 영역 및 제2 모니터링 영역으로 구분될 수 있다.
제1 모니터링 영역에는 모니터링하고자 하는 대상 패킷의 정보의 식별 명세들이 포함될 수 있다. 예를 들어, 제1 모니터링 영역에는 발신자 IP 주소, 발신자 IP 주소 prefix, 발신자 포트 번호, 수신자 IP 주소, 수신자 IP 주소 prefix, 수신자 포트 번호, 프로토콜 번호 중 적어도 하나의 명세 정보가 포함될 수 있다. 예를 들어, 제1 모니터링 영역은 식별자 명세 영역으로 표현될 수 있다.
이때, 제1 모니터링 영역은 기준 영역별 데이터 값을 숫자 이외에 특정 기호의 형태로도 제공할 수 있다.
실시예에 따르면, 제1 모니터링 영역은 해당 헤더 값을 무시하라는 의미를 대표 와일드카드 기호로 제공할 수 있다. 예를 들어, 와일드카드는 공란 또는 “*” 문자로 표기될 수 있다.
제2 모니터링 영역에는 수집하고자 하는 네트워크의 상태 정보의 정책 명세가 포함될 수 있다. 실시예에 따르면, 제2 모니터링 영역에는 스위치 ID, 인출 타임스템프(timestamp) 등의 정보가 포함될 수 있다. 예를 들어, 제2 모니터링 영역은 네트워크 상태 정보 명세 영역으로도 표현될 수 있다.
도 3은 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템 내 상태 정보 수집 정책의 이미지이다.
도 3을 참조하면, 상태 정보의 수집 정책은 제1 수집 영역 및 제2 수집 영역으로 구분될 수 있다.
제1 수집 영역에는 텔레메트리 리포트 생성을 위한 대상 패킷의 식별 명세들이 포함될 수 있다. 실시예에 따르면, 제1 수집 영역에는 mirror ID가 포함될 수 있다.
제2 수집 영역에는 특정 패킷을 대상으로 수행할 INT 정보 생성 액션에 필요한 적어도 하나의 수집 명세를 포함할 수 있다. 실시예에 따르면, 제2 수집 영역에는 발신자 IP 주소, 발신자 MAC 주소, 발신자 포트 번호, 수신자 IP 주소, 수신자 MAC 주소 및 수신자 포트 번호 중 적어도 하나의 명세 정보가 포함될 수 있다.
다시 도 1을 참조하면, 제어 어플리케이션 장치(1000)는 모니터링 정책 및 정보 수집 정책을 명세 정보를 기준으로 파싱하여 후술될 네트워크 컨트롤러(3000)에 전달할 수 있다.
네트워크 컨트롤러(3000)는 적어도 하나의 API를 포함할 수 있다. 이에 따라, 네트워크 컨트롤러(3000)는 적어도 하나의 API를 이용하여, 상기 제어 어플리케이션 장치(1000)로부터 파싱되어 전달된 모니터링 정책 및 정보 수집 명세들을 각각 플로우 룰(flow-rule)로 변환시킬 수 있다.
네트워크 컨트롤러(3000)는 변환된 플로우 룰(flow-rule)을 후술될 네트워크 장치(5000) 내 플로우 테이블(flow table)로 송신할 수 있다. 네트워크 장치(5000)에 대해서는 하기 도 4를 참조하여 보다 구체적으로 설명하겠다.
도 4는 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템 내 네트워크 장치의 블록 구성도이다.
도 4를 참조하면, 네트워크 장치(5000)는 앞서 설명한 바와 같이, 소프트웨어 정의 네트워크(Software Defined Network, SDN) 내 데이터 평면(data plane)에 제공되어, 데이터 평면(data plane) 네트워크의 상태를 모니터링 할 수 있다.
실시예에 따르면, 네트워크 장치(5000)는 프로그래머블 스위치(Programmable Switch)로 구성될 수 있다. 여기서, 프로그래머블 스위치(Programmable Switch)는 상위 수준 언어(DSL, Domain-Specific Language)를 이용하여 데이터 평면(data plane) 내 각 모듈을 프로그래밍하는 소프트웨어 구성일 수 있다. 예를 들어, 상위 수준의 언어(DSL)는 P4(Programming Protocol-independent Packet Processors)일 수 있다.
다시 말하면, 네트워크 장치(5000)는 프로그래머블 스위치로 동작될 수 있다. 이에 하기에서는 네트워크 장치(5000)를 프로그래머블 스위치 장치로 혼용하여 사용하겠다.
프로그래머블 스위치 장치인 네트워크 장치(5000)는 앞서 도 1에서 설명한 바와 같이, 상기 프로그래머블 스위치에 의해 지원되는 In-bend 방식의 네트워크 텔레메트리(INT) 기능을 수행할 수 있다.
실시예에 따르면, 네트워크 장치(5000)는 역할별 프로그래머블 스위치에 의해 INT 기능을 지원할 수 있다.
보다 구체적으로 설명하면, 역할이 다른 프로그래머블 스위치는 제1 스위치, 제2 스위치 및 제3 스위치로 구성될 수 있다.
제1 스위치는 INT 기능 지원을 위해 전달하고자 하는 특정 패킷에 INT 헤더를 삽입할 수 있다. 이에 따라, INT 헤더에는 수집하고자 하는 네트워크의 상태 정보 종류가 기록될 수 있다. 예를 들어, 제1 스위치는 Source 스위치일 수 있다.
제2 스위치는 특정 패킷 내 INT 헤더의 존재 여부를 확인할 수 있다. 실시예에 따라 특정 패킷 내 INT 헤더가 존재할 경우, 상기 INT 헤더에 지정된 네트워크 상태 정보를 특정 패킷에 삽입하여 전달할 수 있다. 예를 들어, 제2 스위치는 Transit 스위치일 수 있다.
제3 스위치는 INT 헤더 및 특정 패킷에 포함된 네트워크의 상태 정보를 추출할 수 있다. 이후, 제3 스위치는 전달하고자한 본래의 데이터 패킷만을 목적지로 전달할 수 있다.
또한, 제3 스위치는 모니터링 조사 결과를 담은 모니터링 패킷을 후술될 데이터 저장 장치(7000)로 전달할 수 있다. 예를 들어, 제3 스위치는 Sink 스위치일 수 있다.
여기서, 프로그래머블 스위치는 상기 개시된 바에 국한되지 않고, 언급된 제1 내지 제3 스위치의 기능들을 수행하는 하나의 스위치로도 제공될 수 있다.
하기에서는 INT 기능을 수행하는 네트워크 장치(5000)를 구성별로 보다 자세히 설명하겠다.
네트워크 장치(5000)는 프로그래머블 스위치 구조에 따라 파싱부(5100), 인입부(5300), 저장부(5500), 인출부(5700) 및 디파싱부(5900)을 포함할 수 있다.
파싱부(5100)는 인입된 패킷으로부터 적어도 하나의 헤더 정보를 추출할 수 있다. 실시예에 따르면, 상기 적어도 하나의 정보는 Ethernet, IPv4, TCP 및 UDP 헤더 중 하나를 포함할 수 있다.
또한, 파싱부(5100)는 INT 헤더의 존재 여부를 판별할 수 있다. 이에 따라, 파싱부(5100)는 INT SHIM 헤더, INT 헤더 및 INT 메타데이터 중 적어도 하나의 데이터를 추출할 수 있다.
인입부(5300)는 인입된 패킷의 실행 동작을 설정하고 이를 패킷 메타데이터에 기록할 수 있다.
인입부(5300)에 대해서는 하기 도 5를 참조하여 보다 구체적으로 설명하겠다.
도 5는 본 발명의 실시예에 따른 네트워크 장치 내 인입부의 블록 구성도이다.
도 5를 참조하면, 인입부(5300)는 적어도 하나의 플로우 테이블을 포함할 수 있다.
실시예에 따르면, 인입부(5300)는 인입된 패킷을 후술될 적어도 하나의 인입 테이블으로 전송하기 위한 포워딩 테이블(5310), 제1 인입 테이블(5330) 및 제2 인입 테이블(5350)을 포함할 수 있다. 예를 들어, 포워딩 테이블(5310)은 포워딩 테이블이고, 제1 인입 테이블(5330)은 SetSource 테이블이며, 제2 인입 테이블은 SetSink 테이블일 수 있다.
도 6은 본 발명의 실시예에 따른 네트워크 장치 내 제1 인입 테이블의 플로우 룰을 정리한 표이다.
도 6을 참조하면, 제1 인입 테이블(5330)의 플로우 룰은 제어 어플리케이션 장치(1000)에 의해 네트워크 장치(5000)에 호스트가 연결되어 있는 포트마다 각각 설치될 수 있다.
이에 따라, 제1 인입 테이블(5330)은 호스트가 연결된 포트로부터 패킷이 인입될 경우 제1 스위치를 이용하여 INT를 지원할 수 있다. 이때, 호스트가 연결된 포트 정보는 네트워크 컨트롤러(3000)로부터 제공될 수 있다.
보다 구체적으로 설명하면, 제1 인입 테이블(5330)은 호스트가 연결된 패킷의 인입 포트 번호가 지정된 매치 키(Match Key)와 일치할 경우, 상기 매치 키(Match Key)에 대응하는 액션(Action)을 수행할 수 있다. 실시예에 따르면, 제1 인입 테이블(5330)은 패킷이 매치 키와 일치할 경우 패킷 메타데이터에 src 비트를 1로 설정할 수 있다.
따라서, 제1 인입 테이블(5330)은 호스트로부터 전달된 특정 패킷이 제1 스위치를 통과하고 있는지 여부를 판별할 수 있다.
도 7은 본 발명의 실시예에 따른 네트워크 장치 내 제2 인입 테이블의 플로우 룰을 정리한 표이다.
도 7을 참조하면, 제2 인입 테이블(5350)의 플로우 룰은 앞서 설명된 제1 인입 테이블(5330)과 같이, 제어 어플리케이션 장치(1000)에 의해 네트워크 장치(5000)에 호스트가 연결되어 있는 포트마다 각각 설치될 수 있다.
이에 따라, 제2 인입 테이블(5350)은 호스트가 연결된 포트로부터 패킷이 인출될 경우 제3 스위치를 이용하여 INT를 지원할 수 있다. 이때, 호스트가 연결된 포트 정보는 네트워크 컨트롤러(3000)로부터 제공될 수 있다.
보다 구체적으로 설명하면, 제2 인입 테이블(5350)은 호스트와 연결된 패킷의 인출 포트 번호가 사전에 지정된 매치 키(Match Key)와 일치할 경우, 상기 매치 키(Match Key)에 대응하는 액션(Action)을 수행할 수 있다.
실시예에 따르면, 제2 인입 테이블(5350)은 패킷이 매치 키와 일치할 경우 패킷 메타데이터에 sink 비트를 1로 설정하고, mirror ID를 주어진 값으로 설정하여 패킷을 복제할 수 있다. 이때, 복제된 패킷은 후술될 인출부로 전송될 수 있다.
따라서, 제2 인입 테이블(5350)은 호스트로부터 전달된 특정 패킷이 제3 스위치를 통과하고 있는지 여부를 판별할 수 있다.
다시 도 4를 참조하면, 저장부(5500)는 적어도 하나의 패킷 정보를 임시 저장할 수 있다. 실시예에 따르면, 저장부(5500)는 버퍼(Buffer) 또는 큐(Queue)일 수 있다.
인출부(5700)는 앞서 설명된 인입부(5300)와 같이, 적어도 하나의 플로우 테이블을 포함할 수 있다. 인출부(5700)에 대해서는 하기 도 8을 참조하여 보다 구체적으로 설명하겠다.
도 8은 본 발명의 실시예에 따른 네트워크 장치 내 인출부의 블록 구성도이다.
도 8을 참조하면, 인출부(5700)는 제1 인출 테이블(5710), 제2 인출 테이블(5730), 제3 인출 테이블(5750) 및 제4 인출 테이블(5770)을 포함할 수 있다.
예를 들어, 제1 인출 테이블(5710)은 패킷의 인출을 위한 Egress 테이블일 수 있으며, 제2 인출 테이블(5730)은 INT의 제1 스위치 기능을 구현하는 테이블일 수 있다. 또한, 제3 인출 테이블(5750)은 INT의 제2 스위치(Transit) 기능을 구현하는 테이블일 수 있으며, 제4 인출 테이블(5770)은 복제된 패킷의 캡슐화를 수행할 수 있다. 이 중, 제2 인출 테이블(5730) 및 제4 인출 테이블(5770)에 대해서는 각각 하기 도 9 및 도 10에서 보다 구체적으로 설명하겠다.
도 9는 본 발명의 실시예에 따른 네트워크 장치 내 제2 인출 테이블의 플로우 룰을 정리한 표이다.
도 9를 참조하면, 제2 인출 테이블(5730)은 특정 패킷에 대해 모니터링 대상이 되는지의 여부를 판별할 수 있다.
보다 구체적으로 설명하면, 제2 인출 테이블(5730)은 패킷에 지정된 매치 키(Match Key)와 일치할 경우, 상기 매치 키(Match Key)에 대응하는 액션(Action)을 수행할 수 있다. 예를 들어, 제2 인출 테이블(5730)의 매치 키는 발신자 IP 주소 prefix, 수신자 IP 주소 prefix, 발신자 포트 번호, 수신자 포트 번호 및 프로토콜 번호를 포함할 수 있다.
실시예에 따르면, 제2 인출 테이블(5730)은 패킷 정보가 상기 매치 키와 매칭되었을 경우, 패킷에 INT 헤더를 추가하는 액션을 수행할 수 있다.
도 10은 본 발명의 실시예에 따른 네트워크 장치 내 제4 인출 테이블의 플로우 룰을 정리한 표이다.
도 10을 참조하면, 제4 인출 테이블(5770)은 복제된 패킷을 캡슐화하여 모니터링 패킷을 생성할 수 있다.
실시예에 따르면, 제4 인출 테이블(5770)은 mirror ID를 매치 키로 사용하여, 인입부(5300)에서 복제된 패킷임을 확인할 수 있다.
이후, 제4 인출 테이블(5770)은 특정 패킷이 매치 키와 매칭되는 경우 주어진 액션 파라미터들을 사용하여 Ethernet, IPv4, UDP 헤더를 생성하는 캡슐화를 수행할 수 있다. 이때, 액션 파라미터들은 발신자 MAX 주소, 발신자 IP 주소, 발신자 포트 번호, 수신자 MAC 주소, 수신자 IP 주소 및 수신자 포트 번호를 포함할 수 있다.
다시 도 4를 참조하면, 디파싱부(5900)는 패킷 헤더를 재조립하여 인출 포트로 재전송할 수 있다.
다시 도 1을 참조하면, 데이터 저장 장치(7000)는 네트워크 장치 내 제3 스위치의 설명시 언급한 바와 같이, 모니터링 조사 결과를 담은 모니터링 패킷을 저장할 수 있다.
이상 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템에 대해 설명하였다. 본 발명의 실시예에 따른 네트워크 모니터링 제어 시스템은 네트워크의 모니터링 정보가 패킷 단위로 수집됨으로써, 세밀한 네트워크 관리가 가능해지므로 고정밀 및 고신뢰성의 네트워크 모니터링 제어 시스템을 제공할 수 있다.
이하에서는 상기 네트워크 모니터링 제어 시스템 내 제어 어플리케이션 장치를 이용한 네트워크 모니터링 제어 방법을 설명하겠다.
도 11은 본 발명의 실시예에 따른 네트워크 모니터링 제어 방법의 순서도이다.
도 11을 참조하면, 제어 어플리케이션 장치(1000)는 플로우 룰을 생성할 수 있다(S1000). 실시예에 따르면, 플로우 룰은 제어 어플리케이션 장치(1000)에 의해 파싱되어 전달된 모니터링 정책 및 정보 수집 정책을 명세 정보를 변환하여 생성될 수 있다. 제어 어플리케이션 장치(1000)에 의해 플로우 룰을 생성하는 방법은 하기 도 12를 참조하여 보다 구체적으로 설명하겠다.
도 12는 본 발명의 실시예에 따른 네트워크 모니터링 제어 방법 중 플로우 룰을 생성하는 단계를 설명하기 위한 순서도이다.
도 12를 참조하면, 제어 어플리케이션 장치(1000)는 네트워크 컨트롤러(3000)에 연결된 네트워크 장치(5000)를 식별할 수 있다(S1100). 다시 말하면, 제어 어플리케이션 장치(1000)는 네트워크 컨트롤러(3000)에 연결된 복수의 호스트를 탐색하여 INT 기능을 수행할 프로그래머블 스위치를 식별할 수 있다.
제어 어플리케이션 장치(1000)는 네트워크 장치의 카운트 및 포트 카운트를 초기화 시킬 수 있다(S1200).
이후, 제어 어플리케이션 장치(1000)는 네트워크 컨트롤러(3000)에 연결된 스위칭 개수를 탐색할 수 있다. 다시 말하면, 제어 어플리케이션 장치(1000)는 네트워크 컨트롤러(3000)에 연결된 네트워크 장치(5000)를 카운팅(N)할 수 있다(S1300).
또한, 제어 어플리케이션 장치(1000)는 상기 네트워크 장치(5000) 내 포트의 개수(M)를 탐색할 수 있다. 다시 말하면, 제어 어플리케이션 장치(1000)는 상기 네트워크 장치(5000) 내 포트의 개수를 카운팅(M)할 수 있다(S1400).
제어 어플리케이션 장치(1000)는 상기 네트워크 장치(5000)의 포트가 호스트와 연결될 경우, 플로우 룰을 생성할 수 있다(S1500).
일 실시예에 따르면, 제어 어플리케이션 장치(1000)는 제1 인입 테이블(5330)을 위한 플로우 룰을 생성할 수 있다. 예를 들어, 제1 인입 테이블(5330)을 위한 플로우 룰의 매치 키는 M으로 할당될 수 있다.
다른 실시예에 따르면, 제어 어플리케이션 장치(1000)는 제2 인입 테이블(5350)을 위한 플로우 룰을 생성할 수 있다. 예를 들어, 제2 인입 테이블(5350)을 위한 플로우 룰의 매치 키 또한, M으로 할당될 수 있다.
다시 도 11을 참조하면, 플로우 룰들이 생성되면, 제어 어플리케이션 장치(1000)는 플로우 룰(flow rule)이 생성될 경우, 생성된 플로우 룰들을 각각 탐색된 네트워크 장치(5000) 내 매칭되는 플로우 테이블에 개별 송신될 수 있다(S3000). 다시 말하면, 제어 어플리케이션 장치(1000)는 생성된 플로우 룰들은 각각 탐색된 스위치로 개별 송신될 수 있다.
이후, 제어 어플리케이션 장치(1000)는 생성된 플로우 룰들을 송신한 후, 탐색된 포트 개수(M)의 이상 여부를 검사할 수 있다.
일 실시예에 따르면, 검사 결과, 발견된 네트워크 장치(5000)의 개수(N)가 전체 네트워크 장치(5000)의 개수보다 작을 경우, 제어 어플리케이션 장치(1000)는 네트워크 장치를 재 탐색할 수 있다.
다른 실시예에 따르면, 검사 결과, 발견된 네트워크 장치(5000)의 개수(N)가 전체 네트워크 장치(5000)의 개수와 동일하거나 또는 클 경우, 제어 어플리케이션 장치(1000)는 스위치의 탐색을 중단하여 네트워크 장치의 탐색을 종료할 수 있다.
이후, 제어 어플리케이션 장치(1000)는 네트워크 장치 내 유입되는 패킷 중 상기 플로우 룰과 매칭되는 패킷을 복제할 수 있다(S5000). 네트워크 장치를 이용하여 패킷을 복제하는 방법은 하기 도 13를 참조하여 보다 구체적으로 설명하겠다.
도 13은 본 발명의 실시예에 따른 네트워크 모니터링 제어 방법 중 네트워크 장치를 이용하여 패킷을 복제하는 단계를 설명하기 위한 순서도이다.
도 13을 참조하면, 제어 어플리케이션 장치(1000)는 포워딩 테이블(5310)을 통과한 패킷이 매칭되는 플로우 룰을 가질 경우(S5100), 패킷이 통과 중인 스위치를 제1 인입 스위치로 판단할 수 있다. 이때, 패킷 메타데이터에 source 비트를 1로 설정할 수 있다(S5150).
이후, 제1 인입 테이블을 통과한 패킷이 매칭되는 플로우 거치며 매치되는 플로우 룰이 있는 경우, 제어 어플리케이션 장치(1000)는 패킷이 통과 중인 스위치를 제2 인입(INT Sink) 스위치로 판별할 수 있다(S5300). 이때, 패킷 메타데이터에 sink 비트를 1로 설정하고, mirror ID를 플로우 룰에 주어진 값으로 설정할 수 있다(S5350).
제어 어플리케이션 장치(1000)는 해당 패킷을 복제할 수 있다(S5500). 이후, 제어 어플리케이션 장치(1000)는 복제된 상기 패킷을 인출부(5700)로 전송할 수 있다.
인출부(5700)에서의 복제된 패킷의 처리 방법은 하기 도 14를 참조하여 보다 구체적으로 설명하겠다.
도 14는 본 발명의 실시예에 따른 네트워크 모니터링 제어 방법 중 복제된 패킷의 처리 단계를 설명하기 위한 순서도이다.
도 14를 참조하면, 제어 어플리케이션 장치(1000)는 인입부(5300)로부터 전달된 패킷이 특정 패킷인지 여부를 판별할 수 있다(S7100). 실시예에 따르면, 특정 패킷은 모니터링 정책에 포함되는 패킷 헤더를 포함하는 패킷일 수 있다. 예를 들어, 상기 특정 패킷은 TCP 또는 UDP 헤더일 수 있다.
일 실시예에 따르면, 상기 패킷이 특정 패킷이 아닐 경우, 네트워크 모니터링이 종료될 수 있다.
다른 실시예에 따르면, 상기 패킷이 특정 패킷인 경우, 패킷 메타데이터의 제1 비트를 확인할 수 있다(S7200). 예를 들어, 제1 비트는 Source 비트일 수 있다. 이때, 상기 비트가 설정되어 있을 경우 제2 인출 테이블로 패킷을 전달할 수 있다.
이때, 제어 어플리케이션 장치(1000)는 상기 특정 패킷이 모니터링 대상인지의 여부를 확인할 수 있다(S7300). 다시 말하면, 제어 어플리케이션 장치(1000)는 제2 인출 테이블에 설치된 플로우 룰 중에서 상기 패킷이 매칭되는지 확인할 수 있다.
이후, 제어 어플리케이션 장치(1000)는 상기 패킷이 제2 인출 테이블 내 플로우 룰에 매치되는 패키일 경우 경우, INT 헤더를 상기 패킷에 추가할 수 있다(S7400).
한편, 제1 비트가 설정되어 있지 않거나 또는 제2 인출 테이블에서 패킷이 매칭되지 않은 경우, 제어 어플리케이션 장치(1000)는 INT 헤더를 추가하지 않을 수 있다.
제어 어플리케이션 장치(1000)는 상기 패킷에 INT 헤더가 존재하는 지 여부를 확인할 수 있다(S7500). 이때, 상기 패킷 내 INT 헤더가 존재할 경우, 제어 어플리케이션 장치(1000)는 INT 헤더에 지정된 네트워크 상태 정보를 제3 인출 테이블에 전달할 수 있다(S7600).
이후, 제어 어플리케이션 장치(1000)는 제3 인출 테이블을 거치며 해당 패킷이 인입부(5300)에서 복제된 패킷인지 여부를 확인할 수 있다(S7700).
이때, 제어 어플리케이션 장치(1000)는 상기 패킷이 복제된 패킷일 경우 캡슐화하여 모니터링 패킷을 생성할 수 있다(S7800).
이후, 제어 어플리케이션 장치(1000)는 패킷 메타데이터의 제3 비트를 확인할 수 있다(S7900). 이때, 상기 비트가 설정되어 있을 경우, 제어 어플리케이션 장치(1000)는 패킷에 삽입된 INT 헤더 및 INT 메타데이터를 제거하고 원본 패킷 헤더를 복구할 수 있다(S8000).
이상, 본 발명의 실시예에 따른 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템을 설명하였다.
본 발명의 실시예에 따른 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템은, 데이터 전송을 위한 패킷에 네트워크 모니터링을 위한 상태 정보를 삽입하여 동시에 전송함으로써 트래픽 증가량이 최소화된 고효율의 네트워크 장치 및 이를 이용한 네트워크 모니터링 제어 방법 및 시스템을 제공할 수 있다. 또한, 상기 네트워크 장치 및 이를 이용한 네트워크 모니터링 제어 방법 및 시스템은 프로그래머블 스위치의 역할을 수행하는 네트워크 장치를 사용하여 네트워크 모니터링 기능을 제공함으로써, 고성능 및 고신뢰성의 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템을 제공할 수 있다.
본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1000: 제어 네트워크 장치 3000: 네트워크 컨트롤러
5000: 네트워크 장치 5100: 파싱부
5300: 인입부 5310: 포워딩 테이블
5330: 제1 인입 테이블 5350: 제2 인입 테이블
5500: 저장부 5700: 인출부
5710: 제1 인출 테이블 5730: 제2 인출 테이블
5750: 제3 인출 테이블 5770: 제4 인출 테이블
5900: 디파싱부 7000: 데이터 저장 장치

Claims (20)

  1. 제어 어플리케이션 장치, 네트워크 컨트롤러 및 네트워크 장치를 포함하는 소프트웨어 정의 네트워크(Software Defined Network) 내 적용되어 상기 제어 어플리케이션 장치에 의해 데이터 평면(Data Plane) 네트워크의 상태 정보를 모니터링(Monitoring)하는 네트워크 모니터링 제공 방법에 관한 것으로,
    상기 네트워크 컨트롤러가 플로우 룰(Flow-Rule)을 생성하는 단계;
    데이터 평면 내 상기 네트워크 장치 내 적어도 하나의 플로우 테이블에 상기 플로우 룰을 개별 송신하는 단계;
    상기 네트워크 장치 내 인입부에, 호스트와 연결된 포트로부터 패킷이 유입될 경우, 상기 인입부 내 특정 플로우 테이블에 포함된 상기 플로우 룰과 매칭되는 상기 패킷을 복제하는 단계; 및
    상기 네트워크 장치 내 인출부는 상기 인출부 내 특정 플로우 테이블의 상기 플로우 룰에 따라, 상기 복제된 패킷 내 INT 헤더에 모니터링 패킷을 생성하는 단계를 포함하는, 네트워크 모니터링 제공 방법.
  2. 제1 항에 있어서,
    상기 네트워크 컨트롤러가 플로우 룰을 생성하는 단계는
    상기 네트워크 컨트롤러에 연결된 적어도 하나의 네트워크 장치를 식별하는 단계;
    상기 식별된 네트워크 장치의 개수를 카운팅하는 단계;
    상기 식별된 네트워크 장치 내 포트의 개수를 카운팅하는 단계; 및
    상기 포트가 호스트에 연결될 경우, 상기 플로우 룰을 생성하는 단계를 포함하는, 네트워크 모니터링 방법.
  3. 제2 항에 있어서,
    상기 식별된 네트워크 장치의 개수를 카운팅하는 단계 이전에,
    상기 네트워크 장치의 개수를 카운팅하는 카운터 및 상기 포트의 개수를 카운팅하는 카운터들을 초기화하는 단계를 더 포함하는, 네트워크 모니터링 방법.
  4. 제1 항에 있어서,
    상기 인입부 내 특정 플로우 테이블에 포함된 상기 플로우 룰과 매칭되는 상기 패킷을 복제하는 단계 이전에,
    상기 카운팅된 포트 개수 및 상기 네트워크 장치 내 연결된 전체 상기 포트 개수를 비교하는 단계 및
    상기 카운팅된 상기 네트워크 장치의 개수 및 상기 네트워크 컨트롤러에 연결된 전체 상기 네트워크 장치의 개수를 비교하는 단계를 더 포함하는, 네트워크 모니터링 방법.
  5. 제1 항에 있어서,
    상기 인입부 내 특정 플로우 테이블에 포함된 상기 플로우 룰과 매칭되는 상기 패킷을 복제하는 단계는
    상기 패킷이 제1 인입 테이블 내 플로우 룰에 매칭될 경우, 상기 제1 인입 테이블이 상기 플로우 룰에 명세된 제1 동작을 수행하여 상기 패킷에 INT 헤더를 삽입하는 단계;
    상기 패킷이 제2 인입 테이블 내 플로우 룰에 매칭될 경우, 상기 제2 인입 테이블이 상기 플로우 룰에 명세된 제2 동작을 수행하여 상기 INT 헤더에 포함된 네트워크 상태 정보를 추출하는 단계; 및
    상기 패킷을 복제하는 단계를 포함하는, 네트워크 모니터링 방법.
  6. 제5 항에 있어서,
    상기 제1 동작은 상기 패킷의 메타데이터 내 제1 비트를 1로 설정하는 동작이고,
    상기 제2 동작은 상기 패킷의 메타데이터 내 제2 비트를 1로 설정하고, 상기 메타데이터의 속성을 설정하는 동작인, 네트워크 모니터링 방법.
  7. 제1 항에 있어서,
    상기 복제된 패킷 내 헤더에 모니터링 패킷을 생성하는 단계는
    상기 패킷이 모니터링 명세에 해당하는 특정 패킷일 경우, 상기 패킷에 제1 비트가 설정되어 있는지 확인하는 단계;
    상기 패킷에 상기 제1 비트가 설정되어 있을 경우, 제1 인출 테이블로 상기 패킷을 전송하는 단계;
    상기 패킷이 상기 제1 인출 테이블 내 플로우 룰과 매칭되는 경우, 상기 패킷 내 상기 INT 헤더의 유무를 판단하는 단계;
    상기 패킷 내 상기 INT 헤더가 존재하지 않을 경우, 상기 패킷 내 상기 INT 헤더를 추가하는 단계;
    상기 INT 헤더가 존재할 경우, 상기 제3 인출 테이블 내 플로우 룰에 명세된 제3 동작을 수행하는 단계; 및
    상기 제4 인출 테이블 내 플로우 룰에 명세된 제4 동작을 수행하여 상기 모니터링 패킷을 생성하는 단계를 포함하는, 네트워크 모니터링 제공 방법.
  8. 제7 항에 있어서,
    상기 제3 동작은 상기 패킷 내 INT 헤더에 지정된 네트워크 상태 정보를 전달하는 동작을 수행하는 동작이고,
    상기 제4 동작은 상기 패킷이 상기 제4 인출 테이블 내 플로우 룰과 매칭될 경우, 상기 INT 헤더 내 네트워크 상태 정보를 캡슐화하는 동작인, 네트워크 모니터링 방법.
  9. 제7 항에 있어서,
    상기 모니터링 패킷을 생성하는 단계 이후에,
    상기 패킷 내 메타데이터에 제2 비트가 설정되어 있을 경우, 상기 패킷에 삽입된 상기 INT 헤더 및 INT 메타데이터를 제거하는 네트워크 모니터링 제공 방법.
  10. 제1 항에 있어서,
    상기 플로우 룰을 상기 네트워크 장치의 플로우 테이블로 송신하는 단계 전,
    생성된 상기 플로우 룰들의 탐색된 포트 개수의 이상 여부를 검사하는 단계를 더 포함하는 네트워크 모니터링 제공 방법.
  11. 제1 항에 있어서,
    상기 네트워크 모니터링은
    In-bend 방식의 네트워크 텔레메트리(INT, In-band Network Telemetry) 방식을 이용하여 모니터링을 수행하는 네트워크 모니터링 제공 방법.
  12. 소프트웨어 정의 네트워크(Software Defined Network) 내 적용되어 데이터 평면(Data Plane) 네트워크의 상태 정보를 모니터링(Monitoring)하는 네트워크 모니터링 제공 시스템에 관한 것으로,
    네트워크 관리자에 의해 정의된 적어도 하나의 모니터링 정책 및 상태 정보 수집 정책을 포함하는 네트워크 정책을 포함하는 제어 어플리케이션 장치;
    제어 평면(Control Plane)에 제공되고, 수신된 상기 네트워크 정책을 이용하여 플로우 룰(Flow-Rule)을 생성하는 네트워크 컨트롤러; 및
    데이터 평면(Data Plane)에 제공되고, 수신된 상기 플로우 룰을 적어도 하나의 플로우 테이블에 개별 적용하여, 특정 플로우 테이블에 유입되는 패킷을 상기 플로우 룰과 매치시켜, 모니터링 패킷을 생성하는 네트워크 장치를 포함하는 네트워크 모니터링 제공 시스템.
  13. 제12 항에 있어서,
    상기 네트워크 장치는
    상기 플로우 룰이 개별 적용되는 적어도 하나의 제1 플로우 테이블을 포함하며, 상기 제1 플로우 테이블에 적용된 플로우 룰과 매칭되는 상기 패킷의 유입시, 상기 패킷을 복제하는 인입부; 및
    상기 플로우 룰이 개별 적용된 적어도 하나의 제2 플로우 테이블을 포함하며, 상기 제2 플로우 테이블에 적용된 플로우 룰과 매칭되는 상기 복제된 패킷의 유입시, 모니터링 패킷을 생성하는 인출부를 포함하는, 네트워크 모니터링 제공 시스템.
  14. 제12 항에 있어서,
    상기 네트워크 컨트롤러는 상기 네트워크 컨트롤러에 연결된 적어도 하나의 상기 네트워크 장치를 식별하고, 상기 네트워크 장치 내 포트가 호스트에 연결될 경우, 상기 플로우 룰을 생성하는 모니터링 제공 시스템.
  15. 제12 항에 있어서,
    상기 모니터링 정책은,
    모니터링하고자 하는 특정 패킷의 식별 정보 명세 및 수집하고자 하는 네트워크의 상태 정보의 정책 명세를 포함하는, 네트워크 모니터링 제공 시스템.
  16. 제12 항에 있어서,
    상기 상태 정보 수집 정책은,
    네트워크 모니터링 정보를 생성하기 위한 특정 패킷의 식별 명세 및 상기 특정 패킷을 대상으로 상기 네트워크 장치에서 수행될 적어도 하나의 동작에 필요한 수집 명세를 포함하는, 네트워크 모니터링 제공 시스템.
  17. 제13 항에 있어서,
    상기 인입부는
    상기 패킷이 제1 인입 테이블 내 플로우 룰에 매칭될 경우, 상기 제1 인입 테이블이 상기 플로우 룰에 명세된 제1 동작을 수행하여 상기 패킷에 INT 헤더를 삽입하고,
    상기 패킷이 제2 인입 테이블 내 플로우 룰에 매칭될 경우, 상기 제2 인입 테이블이 상기 플로우 룰에 명세된 제2 동작을 수행하여 상기 INT 헤더에 포함된 네트워크 상태 정보를 추출하여 상기 패킷을 복제하는, 네트워크 모니터링 제공 시스템.
  18. 제17 항에 있어서,
    상기 제1 동작은 상기 패킷의 메타데이터 내 제1 비트를 1로 설정하는 동작이고,
    상기 제2 동작은 상기 패킷의 메타데이터 내 제2 비트를 1로 설정하고, 상기 메타데이터의 속성을 설정하는 동작인, 네트워크 모니터링 시스템.
  19. 제17 항에 있어서,
    상기 인출부는
    상기 복제된 패킷 중 모니터링 명세에 개시되고, 상기 제1 비트가 설정된 패킷이 인입될 경우, 제1 인출 테이블로 상기 패킷을 전송하여, 상기 패킷 내 INT 헤더에 기록된 네트워크 상태 정보를 제4 인출 테이블로 전달하고,
    상기 제4 인출 테이블에 의해 상기 전송된 네트워크 상태 정보를 캡슐화하여 모니터링 패킷을 생성하는 네트워크 모니터링 시스템.
  20. 제어 어플리케이션 장치 및 네트워크 컨트롤러를 포함하는 소프트웨어 정의 네트워크(Software Defined Network) 내 적용되어, 상기 제어 어플리케이션 장치에 의해 데이터 평면(Data Plane) 네트워크의 상태 정보 모니터링(Monitoring)을 수행하는 네트워크 장치에 관한 것으로,
    외부로부터 인입된 패킷으로부터 적어도 하나의 헤더 정보를 추출하고, 상기 패킷 내 INT 헤더의 존재 여부를 판별하는 파싱부;
    상기 네트워크 컨트롤러로부터 생성된 플로우 룰이 개별 적용된 적어도 하나의 제1 플로우 테이블을 포함하며, 상기 제1 플로우 테이블에 적용된 플로우 룰과 매칭되는 상기 패킷의 유입시, 상기 패킷을 복제하는 인입부; 및
    상기 플로우 룰이 개별 적용된 적어도 하나의 제2 플로우 테이블을 포함하며, 상기 제2 플로우 테이블에 적용된 플로우 룰과 매칭되는 상기 복제된 패킷의 유입시, 모니터링 패킷을 생성하는 인출부를 포함하는, 네트워크 장치.
KR1020180170025A 2018-12-27 2018-12-27 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템 KR20200080513A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180170025A KR20200080513A (ko) 2018-12-27 2018-12-27 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180170025A KR20200080513A (ko) 2018-12-27 2018-12-27 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20200080513A true KR20200080513A (ko) 2020-07-07

Family

ID=71602864

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180170025A KR20200080513A (ko) 2018-12-27 2018-12-27 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20200080513A (ko)

Similar Documents

Publication Publication Date Title
US11929945B2 (en) Managing network traffic in virtual switches based on logical port identifiers
US10735221B2 (en) Flexible processor of a port extender device
Yu et al. {dShark}: A general, easy to program and scalable framework for analyzing in-network packet traces
US9344366B2 (en) System and method for rule matching in a processor
US7467406B2 (en) Embedded data set processing
US8751787B2 (en) Method and device for integrating multiple threat security services
US9154418B1 (en) Efficient packet classification in a network device
US9680720B1 (en) Operations, administration, and maintenance (OAM) engine
EP3139560A1 (en) Packet processing method, device and computer storage medium
US9356844B2 (en) Efficient application recognition in network traffic
US10958770B2 (en) Realization of a programmable forwarding pipeline through packet header summaries in a data processing unit
Teixeira et al. Packetscope: Monitoring the packet lifecycle inside a switch
CN104778042A (zh) 一种基于事件流处理和插件式开发框架的流数据处理方法
CN109547288B (zh) 一种协议无关转发网络可编程流测量方法
US10965600B2 (en) Metadata extraction
US11347488B2 (en) Compiling domain-specific language code to generate executable code targeting an appropriate type of processor of a network device
US7451216B2 (en) Content intelligent network recognition system and method
US10069797B2 (en) 10Gbps line rate stream to disk with fast retrieval (metadata) and network statistics
KR20110071817A (ko) 트래픽 제어 장치 및 방법
CN104333461A (zh) 互联网应用流量识别方法、系统及识别装置
US11165682B2 (en) Session aware adaptive packet filtering
CN105282134A (zh) 从分组提取数据的方法及其装置
WO2005036834A1 (ja) 統計情報採取方法及び装置
KR20200080513A (ko) 네트워크 장치, 그리고 이를 이용한 네트워크 모니터링 제어 방법 및 시스템
Get’man et al. Data representation model for in-depth analysis of network traffic

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application