KR20170049509A - 선택된 네트워크 트래픽을 수집하고 분석하는 기법 - Google Patents

선택된 네트워크 트래픽을 수집하고 분석하는 기법 Download PDF

Info

Publication number
KR20170049509A
KR20170049509A KR1020177005926A KR20177005926A KR20170049509A KR 20170049509 A KR20170049509 A KR 20170049509A KR 1020177005926 A KR1020177005926 A KR 1020177005926A KR 20177005926 A KR20177005926 A KR 20177005926A KR 20170049509 A KR20170049509 A KR 20170049509A
Authority
KR
South Korea
Prior art keywords
packet
mirrored
original
original packet
multiplexer
Prior art date
Application number
KR1020177005926A
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20170049509A publication Critical patent/KR20170049509A/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
    • 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
    • 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/028Capturing of monitoring data by filtering
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

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

Abstract

본원에서는 네트워크의 동작을 조사하기 위한 추적 시스템이 설명된다. 동작 시에, 네트워크의 각각의 스위치(또는 스위치들의 일부 서브 세트네트의 각각의 스위치)는 자신이 처리하는 각각의 원래 패킷이 하나 이상의 패킷-검출 규칙들을 만족시키는지를 결정할 수 있다. 만족시킨다면, 스위치는 미러링된 패킷을 생성하여 그 패킷을 로드 밸런서 멀티플렉서로 전달하고, 다시, 멀티플렉서는 추가 분석을 위해 미러링된 패킷을 처리 모듈로 전달한다. 스위치들에 의해 호스팅되는 패킷-검출 규칙들은 임의의 환경-특유의 목적들을 고려하여, 최대로 관심이 있는 패킷들의 서브 세트를 선택하도록 설계될 수 있다. 이러한 동작의 결과로, 추적 시스템은 지나치게 많은 정보로 압도되지 않고도 네트워크의 바람직하지 않은 (그리고 잠재적으로 바람직한) 동작을 효과적으로 신속하게 찾아낼 수 있다.

Description

선택된 네트워크 트래픽을 수집하고 분석하는 기법{COLLECTING AND ANALYZING SELECTED NETWORK TRAFFIC}
네트워크에서 발생하는 장애 및 기타 비정상적인 이벤트의 원인을 판별하는 것은 종종 어렵다. 이러한 어려움은 최신 네트워크의 복잡성과, 주어진 시간에 이런 네트워크가 처리하는 방대한 양의 정보가 결부됨으로써 생긴다. 숙련된 분석가는 예를 들어, 그 구성 요소들에 의해 로깅된 제어 정보를 검사함으로써, 잘못되었을 가능성이 가장 높다고 가정된 네트워크의 그 구성 요소들의 동작을 조사하여 이런 문제를 해결할 수 있다. 그러나 분석가는 검사된 정보가 문제의 원인을 밝혀낼 것이라고 확신할 수 없다. 분석가는 이런 문제를 해결하기 위해 분석 범위를 넓힐 수는 있지만, 그러한 전략은 너무 많은 정보로 분석가를 압도할 수 있다.
본원에서는 네트워크의 동작을 조사하기 위한 추적 시스템이 설명된다. 동작 시에, 네트워크의 각각의 스위치(또는 네트워크의 적어도 일부 스위치들 각각)는 자신이 처리하는 각각의 원래 패킷(original packet)이 하나 이상의 패킷-검출 규칙들을 만족시키는지를 결정할 수 있다. 만족시킨다면, 스위치는 미러링된 패킷(mirrored packet)을 생성할 수 있다. 미러링된 패킷은 적어도 원래 패킷의 정보의 서브 세트를 포함한다. 스위치는 미러링된 패킷을 로드 밸런싱 멀티플렉서(load balancing multiplexer)로 전달할 수 있다. 또한, 스위치는 변경되지 않은 형태의 원래 패킷을 원래 패킷이 지정하는 타겟 목적지(target destination)로 전송한다.
미러링된 패킷을 수신하면, 멀티플렉서는 적어도 하나의 로드 밸런싱 고려 사항에 기초하여, 후보 처리 모듈들의 세트로부터 처리 모듈을 선택할 수 있다. 다음으로 멀티플렉서는 미러링된 패킷을 선택한 처리 모듈로 보내고, 여기에서 미러링된 패킷은 하나 이상의 처리 엔진을 사용하여 분석된다.
스위치들에 의해 호스팅되는 패킷-검출 규칙들은 임의의 애플리케이션-특유의 목적(들)을 고려하여, 최대 관심 대상 값으로 여겨지는 패킷들의 서브 세트를 선택하도록 설계될 수 있다. 이러한 동작의 결과로, 추적 시스템은 지나치게 많은 정보로 분석가를 압도하지 않고도 네트워크의 바람직하지 않은 (그리고 잠재적으로 바람직한) 동작을 효과적으로 신속하게 찾아낼 수 있다.
이상의 접근법은 다양한 유형의 시스템들, 장치들, 구성 요소들, 방법들, 컴퓨터 판독가능 저장 매체들, 데이터 구조들, 그래픽 사용자 인터페이스 프레젠테이션들, 제조 물품들 등에 나타날 수 있다.
본 요약은 선택된 개념들을 간략화된 형태로 소개하기 위해 제공되며, 이 개념들은 이하에서 상세한 설명에서 추가로 기술된다. 본 요약은 청구된 발명의 핵심적인 특징 또는 필수적인 특징을 식별하려는 것이 아니고, 청구된 발명의 범위를 한정하기 위해 사용되는 것도 아니다.
도 1은 추적 시스템의 일례의 개관을 도시한다. 추적 시스템은 분석을 위해 네트워크로부터 선택된 정보를 추출한다.
도 2는 도 1의 추적 시스템의 비제한적인 하나의 구현을 도시한다.
도 3은 미러링(mirroring) 기능을 수행하도록 구성된 네트워크의 스위치의 일 구현을 도시한다. 그 구성된 스위치는 도 1의 추적 시스템에서 사용된 미러링 기능부의 하나의 구성 요소이다.
도 4는 도 1의 추적 시스템의 다른 구성 요소에 대응하는, 멀티플렉서의 일 구현을 도시한다.
도 5는 도 3의 스위치의 멀티플렉싱 동작을 도시한다.
도 6은 도 4의 멀티플렉서의 멀티플렉싱 동작을 도시한다.
도 7은 일 구현에 따른, 도 4의 멀티플렉서가 그 멀티플렉싱 기능을 수행하기 위해 이용할 수 있는 예시적인 테이블 데이터 구조를 도시한다.
도 8은 도 3의 스위치에 의해 출력되는 정보의 일례를 도시한다.
도 9는 도 4의 멀티플렉서에 의해 출력되는 정보의 일례를 도시한다.
도 10은 도 1의 추적 시스템의 다른 구성 요소인, 처리 모듈의 일 구현을 도시한다.
도 11은 도 1의 추적 시스템과 상호 작용하는 구성 요소인, 소비 개체(consuming entity)의 일 구현을 도시한다.
도 12는 도 1의 추적 시스템의 다른 구성 요소인, 관리 모듈의 일 구현을 도시한다.
도 13은 도 3의 스위치의 하나의 동작 방법을 설명하는 프로세스를 도시한다.
도 14는 도 3의 스위치의 구성 요소인, 매칭 모듈의 하나의 동작 방법을 설명하는 프로세스를 도시한다.
도 15는 도 4의 멀티플렉서의 하나의 동작 방법을 설명하는 프로세스를 도시한다.
도 16는 도 10의 처리 모듈의 하나의 동작 방법을 설명하는 프로세스를 도시한다.
도 17은 도 11의 소비 개체의 하나의 동작 방법을 설명하는 프로세스를 도시한다.
도 18은 도 12의 관리 모듈의 하나의 동작 방법을 설명하는 프로세스를 도시한다.
도 19는 상기의 도면에 나타난 특징들 중 임의의 양태를 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 기능을 도시한다.
동일한 도면 부호는 개시 내용 및 도면 전체에서 걸쳐 동일한 구성 요소 및 특징을 나타내기 위해 사용된다. 시리즈 100 번호는 도 1에서 최초 발견된 특징부를 지칭하며, 시리즈 200 번호는 도 2에서 최초 발견된 특징부를 지칭하고, 시리즈 300 번호는 도 3에서 최초 발견된 특징부를 지칭한다.
본 명세서는 다음과 같이 구성된다. 섹션 A는 예를 들어, 네트워크를 통해 흐르는 특정 유형의 패킷을 선택적으로 추출함으로써, 네트워크 트래픽을 선택적으로 수집 및 분석하기 위한 예시적인 추적 시스템을 설명한다. 섹션 B는 섹션 A의 추적 시스템의 동작을 설명하는 예시적인 방법을 설명한다. 섹션 C는 섹션 A 및 B에서 설명된 특징의 임의의 양태를 구현하기 위해 사용될 수 있는 예시적 컴퓨팅 기능부를 설명한다.
예비적인 사항으로서, 도면들 중 일부가 기능부, 모듈, 특징부, 요소 등이라고 다양하게 지칭되는 하나 이상의 구조적 구성 요소의 맥락에서 개념을 기술한다. 도면에 도시된 다양한 구성 요소는, 예를 들어, 컴퓨터 장비 상에서 실행 중인 소프트웨어, 하드웨어(예를 들어, 칩으로 구현되는 로직 기능부) 등, 및/또는 이들의 임의의 조합에 의해, 임의의 물리적이고 유형인(tangible) 메커니즘에 의해 임의의 방식으로 구현될 수 있다. 어느 한 경우에, 도면의 다양한 구성 요소들의 개별 유닛으로의 도시된 분리는 실제 구현에서 대응하는 별개의 물리적이고 유형인 구성 요소들의 사용을 반영할 수 있다. 대안으로 또는 추가적으로, 도면에 도시된 임의의 단일 구성 요소가 복수의 실제 물리적인 구성 요소들로 구현될 수 있다. 대안으로 또는 추가적으로, 도면에서 임의의 둘 이상의 개별 구성 요소들의 도시는 하나의 실제 물리적인 구성 요소에 의해 수행되는 서로 다른 기능들을 반영할 수 있다. 도 19는, 차례로 설명될 것이지만, 도면에 도시된 기능들의 한 가지 예시적 물리적 구현에 관한 추가 세부 사항을 제공한다.
다른 도면들이 순서도 형태로 개념을 설명한다. 이러한 형태에서, 특정 동작이 특정 순서로 수행되는 개별 블록을 구성하는 것으로 설명된다. 이러한 구현들은 예시이며 비제한적이다. 본원에서 설명되는 특정 블록들이 함께 그룹지어지고 단일 동작으로 수행될 수 있으며, 특정 블록은 복수의 구성 요소 블록들로 분할될 수 있고, 특정 블록은 본원에 도시된 것과 상이한 순서로(예를 들어, 블록을 병렬로 수행) 수행될 수 있다. 순서도에 도시된 블록은, 예를 들어, 컴퓨터 장비 상에서 실행되는 소프트웨어, 하드웨어(예를 들어, 칩으로 구현되는 로직 기능부) 등 및/또는 이들의 임의의 조합에 의해, 임의의 물리적이고 유형인 메커니즘에 의해 임의의 방식으로 구현될 수 있다.
용어와 관련하여, "~하도록 구성된(configured to)"이라는 구는 임의의 종류의 물리적이고 유형인 기능부가 식별된 동작을 수행하도록 구성될 수 있는 임의의 방식을 포함한다. 기능부는 예를 들어, 컴퓨터 장비 상에서 실행되는 소프트웨어, 하드웨어(예를 들어, 칩으로 구현되는 로직 기능부) 등 및/또는 이들의 임의의 조합을 이용해 동작을 수행하도록 구성될 수 있다.
용어 "로직"은 작업을 수행하기 위한 임의의 물리적이고 유형인 기능부를 포함한다. 예를 들어, 순서도에 도시된 각각의 동작은 그 동작을 수행하는 로직 구성 요소에 대응한다. 동작은, 예를 들어, 컴퓨터 장비 상에서 실행되는 소프트웨어, 하드웨어(예를 들어, 칩으로 구현되는 로직 기능부) 등 및/또는 이들의 임의의 조합을 이용해 수행될 수 있다. 컴퓨팅 장비에 의해 구현될 때, 로직 구성 요소는 구현되는 컴퓨팅 시스템의 물리적 부분인 전기적 구성 요소를 나타낸다.
다음의 설명이 하나 이상의 특징을 "선택적인" 것으로 식별할 수 있다. 이러한 종류의 서술은 선택적인 것으로 간주될 수 있는 특징만을 나타내는 것으로 해석되지 않으며, 즉, 명시적으로 언급되지는 않더라도, 그 밖의 다른 특징이 선택적인 것으로 여겨질 수 있다. 또한, 단일 개체의 임의의 설명이 이러한 개체의 복수 개의 사용을 배제하는 것이 아니며, 마찬가지로, 복수의 개체의 설명이 단일 개체의 사용을 배제하는 것이 아니다. 나아가, 본 설명이 식별된 기능을 실행하거나 식별된 메커니즘을 구현하는 대안적인 방법으로서 특정 특징들을 설명하였지만, 그 특징들은 임의의 조합으로 함께 결합될 수도 있다. 마지막으로, "예시적인(exemplary)" 또는 "예시적인(illustrative)"이라는 용어는 다수의 가능한 구현들 중에서 하나의 구현을 지칭한다.
A. 예시적인 추적 시스템
A.1. 개관
도 1은 추적 시스템(102)의 일례의 개관을 도시한다. 추적 시스템(102)은 네트워크(104)를 통해 전송되는 선택된 패킷에 관한 정보를 추출한 후, 그 패킷을 분석한다. 하나의 사용 시나리오에서, 분석가는 추적 시스템(102)에 의해 제공된 정보를 사용하여 비정상적이거나 바람직하지 않은 이벤트들을 조사할 수 있다. 다른 경우에, 분석가는 추적 시스템(102)에 의해 제공된 정보를 사용하여 네트워크(104)에서 바람직한 동작을 조사할 수 있다. 전반적으로, 추적 시스템(102)에 의해 제공된 정보는 어떤 이벤트들이 연구되고 있는지의 원인에 관한 통찰을 제공할 수 있다.
다른 잠재적인 이점들 중에서, 추적 시스템(102)이 네트워크(104)로부터 정보를 가려내는 선택성은 인간 분석가 또는 다른 소비자에게 제시되는 "잡음"의 양을 감소시키고, 따라서 그의 또는 그녀의 조사를 용이하게 한다. 또한, 이는 추적 시스템의 확장성 및 전반적인 효율성에도 기여한다. 후술하는 추적 시스템(102)의 다른 양태들은 추적 시스템(102)이 제공하는 패킷-수집 기능의 확장성 및 효율성에 기여한다.
네트워크(104)는 대표 스위치(106)와 같은 복수의 하드웨어 스위치로 구성된다. 예를 들어, 각 스위치는 ASIC(Application Specific Integrated Circuit) 등에 의해 제공되는 로직 기능에 의해 구현될 수 있다. 도시되지는 않았지만, 추가적으로 또는 대안으로, 하나 이상의 소프트웨어로 구현된 스위치를 포함할 수 있다. 각 스위치는, 어떤 방식으로 구성되든, 하나 이상의 라우팅 고려 사항에 기초하여 소스에서 수신된 입력 패킷을 목적지로 라우팅하는 주된 기능을 수행한다. 소스는 멀티-홉(multi-hop) 경로 상의 다른 "업스트림" 스위치 또는 패킷의 궁극적인 시작점에 해당할 수 있다. 마찬가지로, 목적지는 경로 상의 다른 스위치 또는 패킷의 최종 목적지에 해당할 수 있다.
네트워크(104)는 도 1에서 상위-레벨 형태로만 도시된다. 실제로, 네트워크(104)는 임의의 토폴로지를 가질 수 있다. 토폴로지는 네트워크(104)에서 스위치의 선택 및 이들 스위치의 배치(및 상호 접속)를 결정한다. 또한, 네트워크(104)는 임의의 환경에서 사용될 수 있다. 일례로, 예를 들어, 네트워크(104)는 데이터 센터 내에서 패킷들을 라우팅하고 외부 개체들과 데이터 센터 사이에서 패킷들을 라우팅하는데 사용될 수 있다. 다른 경우에, 네트워크(104)는 기업 환경에서 사용될 수 있다. 또 다른 경우에, 네트워크(104)는 둘 이상의 환경들 간에(예를 들어, 둘 이상의 데이터 센터들 간에 등) 정보를 라우팅함으로써 중간 컨텍스트에서 동작할 수 있다. 또 다른 응용들이 가능하다.
추적 시스템(102)은 2 개의 주요 구성 요소들인 미러링 기능부, 및 수집 및 분석(collection and analysis, CA) 프레임워크(108)를 갖는다. 미러링 기능부는 전체적으로 네트워크(104) 내의 모든 스위치에 의해 제공되는 미러링 메커니즘을 나타낸다. 다른 구현에서, 스위치들의 전부는 아니지만, 스위치들의 서브 세트가 미러링 메커니즘을 포함한다. 각각의 미러링 메커니즘은 그 호스팅 스위치가 하나 이상의 패킷-검출 규칙과 일치하는 원래 패킷을 수신할 때 미러링된 패킷을 생성한다. 미러링된 패킷에는 원래 패킷의 헤더 정보와 같이 원래 패킷에서 추출된 정보의 서브 세트가 포함된다. 미러링된 패킷에는 (원래 패킷의 원래 목적지 주소와 비교하여) 새로운 목적지 주소를 지정하는 새로운 헤더도 포함된다. 다음으로, 스위치는 미러링 메커니즘에 의해 할당된 주소에 따라, 미러링된 패킷을 CA 프레임워크(108)로 전달한다. 그 후 CA 프레임워크(108)는 다양한 구현-특유의 방식으로 미러링된 패킷을 처리한다.
보다 구체적으로, 스위치는 하나 이상의 멀티플렉서(110)의 세트 중에서 선택되는 멀티플렉서에 미러링된 패킷을 전송할 수 있다. 이어서, 선택된 멀티플렉서는 적어도 하나의 로드 밸런싱 고려 사항을 기반으로 하여, 처리 모듈(PM, 112) 세트 중 하나로 미러링된 패킷을 전송할 수 있다. 그런 다음, 선택된 처리 모듈은 하나 이상의 처리 엔진을 사용하여 (다른, 이전에 수신된, 미러링된 패킷과 함께) 미러링된 패킷을 처리할 수 있다.
적어도 하나의 소비 개체(114)는 미러링된 패킷을 획득하기 위해 처리 모듈(112)과 상호 작용할 수 있다. 다음으로, 소비 개체(114)는 하나 이상의 처리 엔진을 사용하여 미러링된 패킷에 대한 임의의 애플리케이션-특유의 분석을 수행할 수 있다. 어떤 경우에, 소비 개체(114)가 컴퓨팅 장치에서 실행되는 자동 방식으로 동작하는 분석 프로그램에 대응할 수 있다. 다른 경우에, 소비 개체(114)는 인간 분석가의 지시 하에 컴퓨팅 장치에서 실행되는 분석 프로그램에 대응할 수 있다. 일부 시나리오에서, 소비 개체(114)는 특정 애플리케이션과도 관련이 있다. 이러한 연관성에 비추어, 소비 개체는 특히 그 자신의 애플리케이션에 영향을 미치는 네트워크에서의 이벤트에 관심을 가질 수 있다.
관리 모듈(116)은 추적 시스템(102)의 임의의 양태를 제어할 수 있다. 예를 들어, 관리 모듈(116)은 네트워크(104)를 통해 흐르는 특정 유형의 패킷들을 캡쳐할 때 사용하기 위해, 네트워크(104) 내의 스위치들에게 특정 패킷-검출 규칙을 로딩하도록 지시할 수 있다. 관리 모듈(116)은 또한 임의의 소비 개체와 상호 작용할 수 있다. 예를 들어, 소비 개체(114)는 네트워크에서의 문제점을 식별하고, 이에 응답하여, 스위치에 패킷-검출 규칙을 전파하도록 관리 모듈(116)에 요청할 수 있으며, 이러한 규칙들의 결과로서 생성된 미러링된 패킷은 소비 개체(114)가 문제의 원인을 식별하는 것을 도울 것이다.
상기의 설명을 명확하게 하기 위해, 도 1은 그 미러링된 대응부와 함께, 네트워크(104)를 통한 하나의 원래 패킷의 흐름을 도시한다. 이후의 하위 섹션(아래)은 도 1의 대표적인 흐름을 설명할 때 소개된 각각의 동작에 관한 추가 예시적인 세부 사항을 제공한다.
도시된 바와 같이, 임의의 소스 개체(118)는 그것을 임의의 목적지 개체(122)에 전송하려는 궁극적인 의도로, 원래 패킷(Po, 120)을 네트워크(104)에 전송한다. 예를 들어, 제한 없이, 소스 개체(118)는 제 1 컴퓨팅 장치에 대응하고, 목적지 개체(122)는 제 2 컴퓨팅 장치에 대응할 수 있다. 보다 구체적으로는, 예를 들어, 목적지 개체(122)가 특정 애플리케이션을 호스팅하는, 데이터 센터에 배치된 서버 컴퓨팅 장치에 대응할 수 있다. 소스 개체(118)는 임의의 목적으로 애플리케이션과 상호 작용을 원하는 임의의 컴퓨팅 장치에 대응할 수 있다.
본원에서 사용되는 용어로서, 패킷은 임의의 정보 단위를 지칭한다. 하나의 특정 구현에서, 원래 패킷(120)은 IP 프로토콜에 의해 지정된 헤더와 페이로드(payload)를 갖는 인터넷 프로토콜(IP) 패킷에 대응한다. 보다 구체적으로, 원래 패킷은 목적지 개체를 식별하는 가상 IP(VIP) 주소를 제공할 수 있다. 목적지 개체(122)는, 결국, 직접 IP(DIP) 주소와 관련이 있을 수 있다. 다른 기능 중에서, 네트워크(104)의 적어도 하나의 구성 요소가 VIP 주소를 목적지 개체(122)의 올바른 DIP 주소에 매핑한다.
네트워크(104)는 소스 개체(118)로부터 목적지 개체(122)로 그 스위칭 구조를 통해 원래 패킷(120)을 라우팅하기 위해 임의의 라우팅 프로토콜을 사용할 수 있다. 경로를 구축하는데 역할을 할 수 있는 이런 하나의 프로토콜은 RFC 4271에 정의된 바와 같은 BGP(Border Gateway Protocol)이 있다. 원래 패킷(120)에 대해 동작하는 네트워크(104)의 상이한 구성 요소들이 원래 패킷(120)이 그 경로를 횡단할 때 다양한 캡슐화(encapsulating) 헤더를 원래 패킷(120)으로(또는 그로부터) 추가(또는 제거)할 수 있다.
보다 구체적으로, 도 1은 원래 패킷(120)이 다수의 세그먼트 또는 홉들을 갖는 경로(124)를 횡단하는 단지 예시적인 경우를 나타낸다. 제 1 세그먼트에서, 원래 패킷(120)은 스위치(106)로 라우팅된다. 제 2 세그먼트에서, 원래 패킷(120)은 다른 스위치(126)로 라우팅된다. 제 3 세그먼트에서, 원래 패킷(120)은 또 다른 스위치(128)로 라우팅된다. 제 4 세그먼트에서, 원래 패킷(120)은 목적지 개체(122)로 라우팅된다. 실제로, 경로(124)는 (단일 홉을 포함하여) 임의의 개수의 홉을 가질 수 있고, 스위치에 의해 정의된 스위칭 구조 내의 임의의 스위치를 횡단할 수 있다. 또한, 전술한 바와 같이, 네트워크(104)는 하나 이상의 터널링 프로토콜을 사용하여 원래 패킷을 다른, 둘러싸는 패킷들 안에 캡슐화할 수 있고, 그러한 제공은 본질적으로 환경에 특정되며 설명을 용이하게 하기 위해 도 1에서 생략되어 있다.
각 스위치 상의 (또는 스위치들의 각 서브 세트 상의) 미러링 메커니즘은 원래 패킷을 분석하여 그것이 하나 이상의 패킷-검출 규칙을 충족시키는지 여부를 먼저 결정한다. 충족시키는 경우, 미러링 메커니즘은 원래 패킷 자체를 손상시키지 않고 경로(124)를 따라 원래 패킷의 라우팅을 방해하지 않으면서, 원래 패킷에 대해 미러링된 패킷 대응부를 생성할 것이다.
예를 들어, 스위치(106)의 동작을 고려해보자. (그 밖의 다른 스위치들은 원래 패킷(120)을 처리할 때 동일한 동작을 나타낼 것이다). 스위치(106)가 원래 패킷(120)이 적어도 하나의 패킷-검출 규칙과 일치함을 먼저 결정한다고 가정하자. 그 다음, 미러링된 패킷(130)을 생성한다. 스위치(106)는 (멀티플렉서들(110) 중 하나에 대응하는) 지정된 목적지로 경로(132)를 따라 미러링된 패킷(130)을 전달할 수 있다. 보다 구체적으로, 경로(132) 상의 상이한 전파 개체들은 미러링된 패킷(130)에 대해 캡슐화 헤더들을 첨부(또는 제거)할 수 있다. 그러나, 예시와 설명의 편의를 위해, 도 1은 미러링된 정보를 단순히 미러링된 패킷(130)으로 지칭한다.
보다 구체적으로, 일 구현에서, 스위치(106)는 멀티플렉서(110) 세트 중에서 멀티플렉서를 선택하기 위해 적어도 하나의 하중(load-bearing) 고려 사항을 적용할 수 있다. 예를 들어, 스위치(106)가 멀티플렉서(134)를 선택한다고 가정하자. 다른 구현에서, CA 프레임워크(108)는 단일 멀티플렉서를 제공할 수 있으며, 이 경우에, 스위치(106)는 복수의 이용 가능한 멀티플렉서들 중에서 선택하지 않고 그 멀티플렉서에 미러링된 패킷(130)을 전송한다.
멀티플렉서(134)는 적어도 하나의 하중 고려 사항에 기초하여 처리 모듈들(112) 중 하나에 미러링된 패킷(130)을 추가로 라우팅하는 기능을 수행한다. 또한, 멀티플렉서(134)는 네트워크(104)를 통한 흐름과 관련된 미러링된 패킷이 동일한 처리 모듈로 전송되도록 타겟 처리 모듈을 선택할 것이다. 멀티플렉서(134) 자체는 임의의 방식으로 구현될 수 있다. 어느 한 경우, 멀티플렉서(134)는 ASIC(Application Specific Integrated Circuit)에 의해 제공되는 로직 기능과 같이, 하드웨어로 구현된 멀티플렉서에 대응할 수 있다. 다른 경우에, 멀티플렉서(134)는 서버 컴퓨팅 장치에서 실행되는 멀티플렉싱 프로그램과 같이, 소프트웨어로 구현된 멀티플렉서에 대응한다. 다른 경우, 멀티플렉서들의 집합(110)은 하드웨어 멀티플렉서들 및 소프트웨어 멀티플렉서들의 조합을 포함할 수 있다.
멀티플렉서(134)가 미러링된 패킷(130)을 특정 처리 모듈(136)로 라우팅한다고 가정하자. 일 구현에서, 처리 모듈(136)은 서버 컴퓨팅 장치에 대응할 수 있다. 수신 시에, 처리 모듈(136)은 미러링된 패킷(130)에 대한 다양한 동작을 수행할 수 있다. 그러한 기능 중 하나로, 처리 모듈(136)은 미러링된 패킷을 (만일 있다면) 동일한 경로(124)에 속하는 다른 패킷들과 관련시킬 수 있고, 그 후에 스위치에 의해 생성된 순서로 미러링된 패킷들을 분류할 수 있다. 예를 들어, 원래 패킷의 경로(124) 횡단이 완료되면, 처리 모듈(136)은 스위치(106, 126 및 128)에 의해 생성된 미러링된 패킷의 시퀀스에 대응하는 패킷 시퀀스(138)를 생성할 수 있다.
소비 개체(114)는 처리 모듈(136)에 의해 저장된 임의의 패킷-관련 정보를 추출한 후, 임의의 방식으로 그 정보를 분석할 수 있다. 다음의 설명은 소비 개체(114)에 의해 수행될 수 있는 분석의 예시를 제공한다. 도 1은 특히 소비 개체(114)가 네트워크(104)를 통해 적어도 원래 패킷(120)의 경로(124)와 연관된 시퀀스(138)를 추출하거나 액세스하는 것을 도시한다. 다른 경우에, 소비 개체(114)는 패킷들의 시퀀스가 아닌 특정의 미러링된 패킷을 요청 및 수신할 수 있다.
A.2. 특정 네트워크 환경의 예시
도 2는 도 1의 추적 시스템(102)의 비제한적인 하나의 구현을 포함하는 환경(202)을 도시한다. 환경(202)은 복수의 서버와 같은 복수의 컴퓨팅 장치(204)를 포함하는 데이터 센터에 대응한다. 네트워크(206)는 데이터 센터 내의 컴퓨팅 장치들(204)이 데이터 센터 내의 다른 컴퓨팅 장치들과 통신할 수 있게 한다. 네트워크(206)는 또한 외부 개체(208)가 컴퓨팅 장치(204)와 상호 작용할 수 있게 한다. 인터넷과 같은 광역 네트워크(210)는 데이터 센터의 네트워크(206)를 개체들(208)과 연결시킬 수 있다.
네트워크(206)는 임의의 토폴로지를 가질 수 있다. 도 2의 특정 및 비제한적인 예시에서 도시된 바와 같이, 네트워크(206)는 팻-트리(fat-tree) 계층 토폴로지의 복수의 스위치를 포함한다. 제한 없이, 스위치는 코어 스위치(212), 집합 스위치(aggregation switches, 214), TOR(top-of-rack) 스위치(216) 등을 포함할 수 있다. 또한, 네트워크(206)는 컴퓨팅 장치(204)를 컨테이너(218 및 220)와 같은 컨테이너로 구성할 수 있다. 실제 데이터 센터는 더 많은 스위치 및 컴퓨팅 유닛을 포함할 수 있으며, 도 2는 데이터 센터 환경의 기능부를 대표하고 단순화한 샘플만을 보여주는 것에 불과하다.
네트워크(206) 내의 모든 스위치 또는 그 일부 서브 세트는 미러링 메커니즘을 포함한다. (원래 패킷이 하나 이상의 패킷-검출 규칙을 충족한다고 가정하고) 미러링 메커니즘은 원래 패킷을 처리할 때 미러링된 패킷을 생성한다. 다음으로 미러링 메커니즘은 미러링된 패킷을 수집 및 분석(CA) 프레임 워크(222)로 전달한다.
보다 구체적으로, CA 프레임 워크(222)는 미러링된 패킷의 수집 및 분석을 처리하기 위한 전용 장비를 제공할 수 있다. 즉, CA 프레임 워크(222)는 네트워크(206)를 통한 원래 패킷의 라우팅에서 어떠한 역할도 수행하지 않을 수 있다. (그러나 다른 구현에서, CA 프레임 워크(222)가 원래 패킷을 라우팅하고 미러링된 패킷을 처리하는 이중 역할을 수행할 수 있다.) 어느 한 경우에, CA 프레임 워크(222)가 하나 이상의 멀티플렉서(224)를 포함한다. 멀티플렉서는 하드웨어 멀티플렉서에 대응할 수 있고, 보다 구체적으로는, 멀티플렉싱 역할을 수행하도록 재구성된 하드웨어 스위치에 대응할 수 있다. 대안으로, 또는 추가적으로, 적어도 멀티플렉서들(224)의 서브 세트는 (예를 들어, 하나 이상의 서버 컴퓨팅 장치들에 대응하는) 소프트웨어로 구현된 멀티플렉서들에 대응할 수 있다.
멀티플렉서들(224)은 네트워크(206)의 최상위 레벨 스위치들(212) 및/또는 다른 스위치들에 결합될 수 있다. 또한, 멀티플렉서들(224)은 하나 이상의 처리 모듈들(226)에 직접 결합될 수 있다. 대안으로, 도 2에 도시된 바와 같이, 멀티플렉서들(224)은 임의의 접속 토폴로지를 사용하여 스위치(228)를 통해 처리 모듈에 접속될 수 있다.
A.3. 미러링 기능이 있는 예시적인 스위치
도 3은 미러링 기능을 갖는 예시적인 스위치(302)를 나타내며, 이는 원래 패킷의 미러링된 대응부인 패킷을 생성 및 전달하는 능력을 갖고 있음을 의미한다. 앞서 언급한 바와 같이, 스위치(302)는 하드웨어 유닛(예를 들어, ASIC)으로서 구현될 수 있다.
상위 레벨 관점에서, 스위치(302)는 세 가지 주요 기능을 수행하기 위한 기능부를 포함할 수 있다. 기능부(304)는 스위치(302)가 수신된 원래 패킷을 타겟 목적지로 전달하는 그 종래의 역할을 수행하게 한다. 기능부(306)는 스위치 동작의 미러링 양태들을 수행한다. 또한, 기능부(308)는 다양한 관리 기능을 수행한다. 보다 구체적으로, 설명의 용이함을 위해, 도 3은 3개의 개별 도메인으로서 이들 3개의 기능부(304, 306, 308)를 도시한다. 그러나, 일부 구현에서, 하나의 물리적 모듈이 도 3에 도시된 별개의 도메인에 기인하는 둘 이상의 기능을 수행할 수 있다.
기능부(304)에서 시작해서, 수신 모듈(310)은 임의의 소스로부터 원래 패킷(120)을 수신한다. 소스는 도 1의 소스 개체(118), 또는 다른 "업스트림" 스위치에 대응할 수 있다. 경로 선택 모듈(312)은 다음 홉(314)에 대응하는, 원래 패킷의 다음 목적지를 선택한다. 다음 홉(314)은 다시 원래 패킷의 궁극적인 타겟 목적지, 또는 멀티-홉 경로를 따르는 다른 "다운 스트림" 스위치에 대응할 수 있다. 경로 선택 모듈(312)은 다음 홉(314)을 선택할 때 데이터 저장소(316)에서 제공된 라우팅 정보를 참조할 수 있다. 또한 경로 선택 모듈(312)은 BGP와 같이, 다음 홉(314)을 선택할 때 임의의 프로토콜을 사용할 수 있다. 송신 모듈(318)은 원래 패킷을 다음 홉(314)으로 보낸다. 도 3에 명시적으로 도시되어 있지는 않지만, 송신 모듈(318)은 원래 패킷을 다음 홉(314)에 보내기 전에, 원래 패킷을 다른 패킷에 캡슐화하기 위해 임의의 캡슐화 프로토콜을 선택적으로 사용할 수 있다.
미러링 기능부(306)와 관련하여, 매칭 모듈(320)은 수신된 원래 패킷(120)이 데이터 저장소(322)에 저장된 임의의 패킷-검출 규칙과 일치하는지 여부를 결정한다. 예시적인 규칙들이 이하에서 설명될 것이다. 미러링 모듈(324)은 원래 패킷(120)이 임의의 하나 이상의 패킷-검출 규칙을 만족하면 미러링된 패킷(326)을 생성한다. 전술한 바와 같이, 미러링 모듈(324)은 원래 패킷의 헤더와 같이, 원래 패킷(120)으로부터 정보의 서브 세트를 추출함으로써 미러링된 패킷(326)을 생성할 수 있다. 또한 미러링 모듈(324)은 원래 패킷(120)을 처리하는 과정에서 스위치(302) 자체에 의해 생성된 메타 데이터와 같이, 원래 패킷(120)에 존재하지 않는 정보를 추가할 수도 있다. 일부 구현에서, 미러링 모듈(324) 캘리포니아의 산호세에 있는 시스코 시스템즈가 제공하는 캡슐화된 원격 스위치드 포트 분석기(ERSPAN) 기술과 같이, 미러링된 패킷(326)을 생성하기 위해 이용 가능한 패킷-복사 기술을 사용할 수 있다.
멀티플렉서 선택 모듈(328)은 (도 1의) 멀티플렉서 세트(110) 중에서 미러링된 패킷(326)을 전송할 멀티플렉서를 선택한다. 도 3의 컨텍스트에서, 멀티플렉서 선택 모듈(328)이 멀티플렉서(332)를 선택한다고 가정하자. 예를 들어, 멀티플렉서 선택 모듈(328)은 해싱 알고리즘을 사용하여, (미러링된 패킷으로 복사된 정보인) 원래 패킷의 IP 헤더의 헤더에 제공된 다른 정보 항목과 같이, 미러링된 패킷에 의해 전달된 정보 항목의 임의의 튜플(tuple)을 해싱할 수 있다. 해싱 작업은 해시 결과를 생성하고, 해시 결과는 다시 특정 멀티플렉서에 매핑될 수 있다. 미러링 메커니즘이 있는 모든 스위치는 동일한 해시 함수를 사용한다. 전반적으로, 해싱 작업은 이용 가능한 멀티플렉서 세트(110)를 통해 미러링된 패킷을 확산시키는 효과를 갖는다. 데이터 저장소(330)는 멀티플렉서 선택 모듈(328)이 그 동작을 수행하는데 참조할 수 있는 정보를 제공할 수 있으며, 예를 들어, 데이터 저장소(330)는, 예를 들어, 그들 각각의 주소를 제공함으로써, 이용 가능한 멀티플렉서(110)를 식별할 수 있다.
송신 모듈(334)은 미러링된 패킷을 멀티플렉서(332)로 전송한다. 어느 한 경우에, 송신 모듈(334)은 미러링된 패킷을 터널링 패킷에 캡슐화하기 위해 (GRE(Generic Routing Encapsulation)와 같은) 임의의 터널링 프로토콜을 사용할 수 있고, 이어서 터널링 프로토콜 헤더의 "상부에" 멀티플렉싱 IP 헤더를 첨부할 수 있다. GRE는, 예를 들어, RFC 2784에 기술되어 있다. 송신 모듈(318)은 캡슐화된 미러링된 패킷(336)을 생성한다.
관리 기능부(308)에 관해서, 스위치(302)는 다른 각각의 작업을 처리하기 위한 다른 제어 모듈들(338)을 포함할 수 있다. 예를 들어, 라우팅 관리 모듈은 네트워크의 다른 스위치들에게로 스위치(302)의 존재를 브로드캐스팅하고, 다른 스위치들의 존재를 결정하고, 데이터 저장소(316, 330)의 라우팅 정보를 업데이트하는 등의 작업을 수행할 수 있다. 인터페이스 모듈(340)은 관리 모듈(116)로부터 관리 정보 및 다른 지시들을 수신할 수 있다.
이제 매칭 모듈(320)을 보다 상세하게 참조하면, 그 구성 요소는 원래 패킷(120)을 다른 유형의 패킷-검출 규칙과 비교할 수 있다. 다음의 설명은 패킷-검출 규칙의 대표적인 예시들을 제공한다. 이러한 목록은 제한이 아닌 예시로서 제공되며, 다른 구현은 아래에 언급되지 않은 추가 유형의 패킷-검출 규칙에 의존할 수 있다.
제 1 종류의 패킷-검출 규칙은, 예를 들어, 원래 패킷(120)의 헤더 및/또는 본문에, 지정된 프로토콜-관련 정보 항목 또는 항목들을 포함하는 것과 같이, 원래 패킷(120)이 프로토콜-관련 특성을 나타내는 경우에 원래 패킷(120)이 미러링되어야 한다고 지정할 수 있다. 예를 들어, 그 정보는 전송 제어 프로토콜(TCP)과 같은 전송 레벨 오류 검사 프로토콜에 의해 생성된 플래그에 대응할 수 있다. 다른 경우에, 트리거링 조건은 BGP와 같은 라우팅 프로토콜에 의해 생성된 하나 이상의 정보 항목에 대응할 수 있다.
제 2 종류의 패킷-검출 규칙은, 원래 패킷(120)이, 예를 들어, 애플리케이션-관련 정보 항목 또는 항목들을 포함함으로써, 그것이 특정 애플리케이션으로부터 생성된 것임을 나타내는 경우에, 원래 패킷(120)이 미러링되어야 한다고 지정할 수 있다. 애플리케이션-관련 정보 항목(들)은 플래그, 코드, 주소 등에 대응할 수 있다. 애플리케이션은 정상 실행 중에 생성하는 패킷에 정보 항목(들)을 추가할 수 있다.
제 3 종류의 패킷-검출 규칙은 사용자가 생성한 패킷-검출 규칙에 대응한다. 이러한 종류의 규칙은 원래 패킷이 사용자가 지정한 일치 조건을 충족하는 경우 미러링되도록 지정한다. 사용자는 네트워크(104)의 네트워크 관리자, 테스트 엔지니어, 애플리케이션 또는 시스템 개발자, 최종 사용자 등에 대응할 수 있다. 예를 들어, 사용자는 식별된 헤더 정보를 포함하는 임의의 패킷을 미러링하도록 지정하는 규칙을 작성할 수 있다.
제 4 종류의 패킷-검출 규칙은, 스위치(302)가 원래 패킷(120)을 처리할 때 특정 조건 또는 환경을 만났음을 원래 패킷(120)이 나타내면 원래 패킷(120)이 미러링되어야 한다고 지정할 수 있다. 예를 들어, 스위치(302)에 의해 추가된 원래 패킷의 정보 항목을 검출하면 규칙이 트리거되고, 그 정보 항목은 원래 패킷(120)을 처리할 때 스위치(302)가 오류 조건 또는 다른 이벤트를 만났음을 나타낸다.
보다 구체적으로, 예를 들어, 원래 패킷(120)을 전달하기 위해 스위치(302)에 의해 사용되는 기능부(304)는 일련의 동작이 원래 패킷(120) 상에서 직렬로 수행되는 처리 파이프 라인으로서 구현될 수 있다. 하나 이상의 단계에서, 오류 검출 기능부(342)는 그 원래 패킷(120)의 처리 시에 오류 조건을 검출할 수 있다. 예를 들어, 분석의 수신 또는 경로 선택 단계 동안, 오류 검출 기능부(342)는 원래 패킷(120)이 손상되어 의미있게 해석될 수 없으므로 다음 홉(314)으로 전달될 수 없음을 결정할 수 있다. 이에 응답하여, 오류 검출 기능부(342)는 원래 패킷(120)에 플래그 또는 다른 정보 항목을 첨부하여, 그것이 드롭될 것임을 표시할 수 있다. 다음으로 기능부(304)의 처리 파이프 라인의 후속 단계는 원래 패킷(120)을 드롭하는 익스프레스 단계를 수행할 수 있다.
그러나, 드롭이 발생하기 전에, 매칭 모듈(320)은 추가된 정보 항목의 존재를 검출할 수 있고, 이에 응답하여, (언급한 대로, 그 패킷은 결국 드롭될 것이지만) 미러링 모듈(324)은 그에 추가된 정보와 함께 원래 패킷(120)을 미러링할 수 있다. 이와 같이 미러링된 패킷은 분석 중에 패킷 드롭의 원인을 식별하는데 유용한 정보를 제공한다.
매칭 모듈(320)은, 매칭 모듈(320)이 단지 수신 단계뿐만 아니라, 스위치(302)에 의해 수행되는 처리의 임의의 단계에서 원래 패킷(120)을 패킷-검출 규칙과 비교할 수 있음을 일반적으로 나타내기 위해 입력부(344)를 포함한다. 이와 같이, 일부 환경에서, 원래 패킷(120)은, 초기 수신 시에, 패킷-검출 규칙을 트리거하는 특정 필드의 정보를 포함하지 않을 수 있으며, 다만 스위치(302) 자체가 그 처리의 후반 단계에서 트리거링 정보 항목을 추가할 수 있어서, 나중에 매칭 모듈(320)이 수정된 패킷을 규칙들 중 하나와 성공적으로 일치시킬 수 있다.
다른 측면으로, 추적 시스템(102)은 패킷 드롭을 검출하기 위한 추가적인 기법들을 제공할 수 있다. 예를 들어, 처리 모듈 또는 소비 개체는 원래 패킷의 네트워크 횡단 경로를 따라 생성된 미러링된 패킷의 시퀀스를 분석함으로써 패킷 드롭의 존재를 검출할 수 있다. 원래 패킷이 의도한 최종 목적지에 도달하지 못한 점에서 알 수 있듯이, 패킷 드롭은 시퀀스의 조기 절단(premature truncation)으로 나타날 수 있다. 또는 시퀀스는 홉 목적지가 패킷을 수신할 것으로 예상했지만 수신하지 못했음을 나타내는 시퀀스의 "홀(hole)"을 나타낼 수 있다(다만, 이 경우에, 패킷은 결국 그 최종 목적지에 도달했을 수 있다).
다른 상황에서, 스위치(302)는 원래 패킷(120)을 처리할 때 스위치(302)에 의해 다른 조건이 발생했음을 나타내도록 메타 데이터 정보를 원래 패킷(120)에 추가할 수 있고, 여기서 조건이 반드시 오류에 관련될 필요는 없다.
제 5 종류의 패킷-검출 규칙은 원래 패킷(120)이 미러링될 식별된 서비스 유형을 지정한다면 원래 패킷(120)이 미러링되어야 한다고 지정할 수 있다. 예를 들어, 그 유형의 패킷-검출 규칙은 원래 패킷(120)에 의해 지정된 DSCP(Differentiated Service Code Point) 값 등에 기초하여 원래 패킷(120)을 미러링하도록 결정할 수 있다.
제 6 종류의 패킷-검출 규칙은 원래 패킷(120)이 핑(ping)-관련 애플리케이션에 의해 생성되는 경우 미러링되어야 한다고 지정할 수 있다. 보다 구체적으로, 핑-관련 애플리케이션은 원래 패킷을 타겟 개체에 송신함으로써 동작하며, 이때에 타겟 개체는 원래 패킷에 응답을 송신하도록 요청된다.
반복하면, 다른 환경들이 추가적인 유형의 패킷-검출 규칙을 적용할 수 있다. 예를 들어, 특정 IP 소스 및/또는 목적지 주소, 또는 TCP 또는 UDP 소스 및/또는 목적지 포트 등의 검출 시에 다른 규칙들이 트리거될 수 있다. 또한, 어떤 경우에는, 원래 패킷(120)의 단일 플래그와 같이, 원래 패킷(120)의 단일 정보 항목의 검출 시에 패킷-검출 규칙이 트리거될 수 있다. 그러나, 다른 경우, 패킷 검출 규칙은 원래 패킷(120)의 2 개의 플래그들의 조합과 같이, 원래 패킷(120) 내의 둘 이상의 정보 항목들의 조합의 검출 시에 트리거될 수 있다. 또한, 상기의 경우들에서, 정보 항목(들)은 원래 패킷(120)의 헤더 및/또는 본문에 나타날 수 있다. 대안으로, 또는 추가적으로, 패킷-검출 규칙은 원래 패킷(120)의 다른 특성(들), 즉 원래 패킷(120)의 헤더 또는 본문 내의 특정 정보 항목의 존재 또는 부재 이외의 일부 특성에 의해 트리거될 수 있다. 예를 들어, 규칙은 원래 패킷(120)이 손상되거나, 다른 오류가 있거나, 또는 다른 매칭 조건을 만족하는 것을 검출하면 트리거될 수 있다.
일시적으로 도면의 순서에서 앞으로 넘어가서, 도 5는 도 3의 멀티플렉서 선택 모듈(328)에 의해 수행되는 멀티플렉싱 기능을 나타낸다. 거기에 도시된 바와 같이, 멀티플렉서 선택 모듈(328)은 (원래 패킷의 IP 헤더의 일부 튜플 상에서 동작하는 해싱 알고리즘과 같은) 일부 확산 알고리즘(spreading algorithm, 506)을 사용하여 원래 패킷(502)을 멀티플렉서(504) 세트 중 하나에 매핑한다.
보다 구체적으로, 어느 한 경우에, 각각의 멀티플렉서가 그 자신의 유일한 VIP 주소에 의해 표현될 수 있다. 따라서, 멀티플렉서 선택 모듈(328)은 상이한 VIP 주소 중에서 선택을 하는 효과를 갖는다. 다른 경우, 멀티플렉서들의 집합은 상이한 직접 DIP 주소를 가질 수 있지만, 동일한 VIP 주소를 가질 수 있다. 멀티플렉서 간에 미러링된 패킷을 확산시키기 위해 (등가 다중-경로 라우팅(ECMP)과 같은) 임의의 로드 밸런싱 프로토콜을 사용할 수 있다. ECMP는 RFC 2991에 정의되어 있다.
도 8은 미러링-가능 스위치(302)의 출력에서 생성된 캡슐화된 미러링된 패킷(336)의 예시적인 구조를 도시한다. 캡슐화된 미러링된 패킷(336)은, 예를 들어, 적어도 원래 패킷(120)의 헤더를 제공함으로써, 예를 들어, 원래 패킷(120)의 정보의 서브 세트에 대응하는 미러링 모듈(324)에 의해 생성된 상기 명시된 미러링된 패킷(326)을 포함한다. 캡슐화 외부 필드는 GRE 터널링 헤더와 같은 미러 터널링 헤더(802)를 포함한다. 다음 캡슐화 외부 필드는 미러 IP 헤더(804)를 포함한다. 다른 구현들은 미러링된 패킷(326)을 캡슐화하는 다른 방법들을 채택할 수 있다.
A.4. 예시적인 멀티플렉서
도 4는 멀티플렉서(402)의 일 구현을 도시한다. 멀티플렉서(402)는 도 1에 도시된 멀티플렉서(110) 세트 중 하나에 대응할 수 있다. 또는, 멀티플렉서(402)는 추적 시스템(102)에 의해 제공되는 유일한 멀티플렉서에 대응할 수 있다. 멀티플렉서(402)는 하드웨어로 구현된 장치 또는 소프트웨어로 구현된 장치 또는 이들의 조합에 대응할 수 있다. 전자의 경우, 하드웨어 멀티플렉서는 멀티플렉싱 기능을 수행하도록 재프로그램되고 용도가 변경된 상용 스위치에 대응할 수 있다. 또는, 하드웨어 멀티플렉서는 후술하는 기능을 수행하도록 구성된 맞춤-설계된 구성 요소에 대응할 수 있다.
멀티플렉서(402)는 멀티플렉싱 기능을 관리하기 위한 기능부(406)와 함께 실제 멀티플렉싱 기능을 수행하기 위한 기능부(404)를 포함한다. 예를 들어, 기능부(404)는 미러링된 패킷(412)을 수신하는 수신 모듈(410)을 포함할 수 있다. (더 정확하게는, 미러링된 패킷(412)은 스위치(302)의 출력에서 생성된 캡슐화된 미러링된 패킷(336)의 종류에 대응하지만, 아래에서는 간략하게 하기 위해 단순히 "미러링된 패킷"(412)으로 지칭된다.) 기능부(404)는 또한 후보 처리 모듈들(112)의 세트 중에서 처리 모듈을 선택하기 위한 PM 선택 모듈(414)을 포함할 수 있다. PM 선택 모듈(414)은 자신의 동작을 수행할 때 데이터 스토어(416)의 라우팅 정보를 참고한다. PM 선택 모듈(414)이 미러링된 패킷(412)을 PM(418)에 송신하도록 선택한다고 가정하자. 송신 모듈(420)은 미러링된 패킷(412)을 PM(418)에 전송한다. 그렇게 할 때, 송신 모듈(420)은 미러링된 패킷(412)을 (GRE 헤더와 같은) 터널링 프로토콜 헤더에 캡슐화한 다음, 그 정보를 또 다른 외부 IP 헤더에 캡슐화하여, 캡슐화된 미러링된 패킷(422)을 생성할 수 있다. 제어-관련 모듈들(424)은 멀티플렉서의 동작의 임의의 양태를 관리할 수 있다. 예를 들어, 제어-관련 모듈(424)은 PM의 주소를 식별하는, 데이터 저장소(416)에 저장하기 위한, 주소 정보를 제공할 수 있다. 인터페이스 모듈(426)은, 예를 들어, 멀티플렉서(402)의 동작을 구성하는데 사용되는 관리 모듈(116)로부터의 제어 지시를 수신함으로써 (도 1의) 관리 모듈(116)과 상호 작용한다.
PM 선택 모듈(414)은 임의의 로드 밸런싱 고려 사항에 기초하여 PM 세트(112)로부터 PM을 선택할 수 있다. 하나의 접근법에서, PM 선택 모듈(414)은 해싱 알고리즘을 사용하여 원래 패킷의 헤더와 함께 포함된 정보 항목을 해싱하는데, 이는 또한 미러링된 패킷 내에 캡쳐된 정보이다. 결과 해시는 처리 모듈들(112) 중 하나에 매핑된다. 해싱 알고리즘은 또한 동일한 패킷 흐름에 속하는 패킷들이 동일한 처리 모듈에 매핑되는 것을 보장한다. 추적 시스템(102)은 원래 패킷이 네트워크(104)를 통해 경로를 횡단할 때 동일하게 남아있거나, 아니면 해시 알고리즘에 의해 작동될 때 동일한 출력 해시 값을 생성하는 원래 패킷으로부터의 입력 정보 항목들(해싱 알고리즘에 대한 입력 키로서 기능함)을 선택함으로써 이런 결과를 얻을 수 있다. 또한, 추적 시스템(102)은 모든 멀티플렉서(110)에 동일한 해싱 알고리즘을 배치한다.
또한, 도 6은 도 4의 PM 선택 모듈(414)에 의해 수행되는 멀티플렉싱 기능을 나타낸다. 도시된 바와 같이, PM 선택 모듈(414)은 (전술한 해싱 알고리즘과 같은) 일부 확산 알고리즘(606)을 이용하여 수신된 미러 패킷(602)을 PM 세트(604) 중 하나에 매핑한다.
어느 한 경우에, 각각의 처리 모듈(112)이 자신의 고유한 VIP 주소로 표현될 수 있다. 따라서, PM 선택 모듈(414)은 상이한 VIP 주소들 중에서 선택하는 효과를 갖는다. 다른 경우에, 처리 모듈(112)의 집합은 상이한 직접 주소(DIP)를 가질 수 있지만, 동일한 VIP 주소를 가질 수 있다. (ECMP와 같은) 임의의 로드 밸런싱 프로토콜은 미러링된 패킷을 처리 모듈(112) 사이에 확산시키는데 사용될 수 있다.
도 7은 PM 선택 모듈(414)이 그 멀티플렉싱 기능을 수행하기 위해 사용할 수 있는 예시적인 테이블 데이터 구조(702)를 나타낸다. 데이터 스토어(416)는 테이블 데이터 구조(702)를 저장할 수 있다. 보다 구체적으로, 도 7은 하드웨어 스위치를 재프로그램하고 용도를 변경함으로써 멀티플렉서(402)를 생성하는 구현에 대응한다. 이 경우에, 스위치는 이들 테이블의 고유 기능이 아닌 멀티플렉싱 기능을 지원하도록 재프로그램되고 용도가 변경될 수 있는 테이블 세트를 가질 수 있다.
보다 구체적으로, 일 구현에서, 테이블 데이터 구조(702)는 테이블(T1), 테이블(T2), 테이블(T3), 및 테이블(T4)를 포함하는 4개의 링크된 테이블 세트를 포함한다. 도 7은 상위-레벨 방식으로 나타낸, 테이블의 몇몇 대표적인 엔트리들을 도시한다. 실제로, 엔트리는 어떤 형태든지 취할 수 있다. 멀티플렉서(402)가, 예를 들어, 미러링된 패킷(412)에 대응하는 임의의 소스로부터의 패킷을 수신한다고 가정하자. 패킷은 패킷이 향하는 목적지와 연관된 특정 주소를 지정하는 헤더를 갖는다. PM 선택 모듈(414)은 먼저 입력 주소를 인덱스로서 사용하여 제 1 테이블(T1) 내에 엔트리(엔트리w)를 배치한다. 그 엔트리는, 다시, 제 2 테이블(T2)의 다른 엔트리(엔트리x)를 가리킨다. 그 엔트리는, 다시, 제 3 테이블(T3)의 엔트리들의 연속 블록(704)을 가리킨다. PM 선택 모듈(414)은 임의의 선택 로직에 기초하여 블록(704) 내의 엔트리들 중 하나를 선택한다. 예를 들어, 전술한 바와 같이, PM 선택 모듈(414)은 원래 패킷의 IP 헤더로부터 추출된 하나 이상의 정보 항목을 해싱하여 해시 결과를 생성할 수 있고, 그 해시 결과는, 다시, 블럭(704)의 엔트리와 관련된 빈(bin)들 중 하나에 들어가서, 그 빈과 관련된 엔트리를 선택한다. 제 3 테이블(T3)에서 선택된 엔트리(예를 들어, 엔트리y2)는 제 4 테이블(T4)의 엔트리(엔트리z)를 가리킨다.
이 단계에서, PM 선택 모듈(414)은 제 4 테이블의 엔트리z에 의해 전해진 정보를 사용하여 특정 PM 모듈과 연관된 주소를 생성할 수 있다. 그 다음에, 송신 모듈(420)은, 예를 들어, 캡슐화된 미러링된 패킷(422)에 대응하는 새로운 패킷으로 패킷을 캡슐화한다. 그 다음, 송신 모듈(420)은 캡슐화된 미러링된 패킷(422)을 선택된 PM에 전송한다.
일 구현에서, 테이블(T1)은 L3 테이블에 대응할 수 있고, 테이블(T2)는 그룹 테이블에 대응할 수 있고, 테이블(T3)은 ECMP 테이블에 대응할 수 있으며, 테이블(T4)는 터널링 테이블에 대응할 수 있다. 이들은 도 7에 명시된 방식으로 서로 연결되어 있지는 않지만, 상용 하드웨어 스위치가 기본적으로 제공할 수 있은 테이블들이다. 이들은 상기에서 지정된 종류의 매핑 정보로 채워지지 않는다. 보다 구체적으로, 일부 구현에서, 이 테이블들은 자유(미사용) 슬롯뿐만 아니라, 네트워크 내에서 고유한 패킷-전달 기능을 수행하는데 사용되는 엔트리를 갖는 슬롯을 포함한다. 추적 시스템(102)은 전술한 특정 방식으로 테이블들을 연결할 수 있고, 다음으로 멀티플렉싱 목적을 위해 매핑 정보의 인스턴스를 집합적으로 제공하기 위해 미사용 슬롯에 엔트리를 로딩할 수 있다.
도 9는 멀티플렉서(402)의 출력에서 생성된, 캡슐화된 미러링된 패킷(422)의 예시적인 구조를 도시한다. 캡슐화된 미러링된 패킷(422)은, 그 제 1 부분으로서, 스위치(302)의 출력에서 생성된, 캡슐화된 미러링된 패킷(336)을 포함한다. 보다 구체적으로, 캡슐화된 미러링된 패킷(422)은 미러링된 패킷(326), 미러 터널링 헤더(802) 및 미러 IP 헤더(804)를 포함한다. 또한, 캡슐화된 미러링된 패킷(422)은 GRE 터널링 헤더와 같은 새로운 캡슐화 로드 밸런서 터널링 헤더(902)를 포함한다. 다음 캡슐화 외부 필드는 로드 밸런서 IP 헤더(904)를 포함한다. 다른 구현들은 멀티플렉서(402)의 출력에서 미러링된 패킷 정보를 캡슐화하는 다른 방법을 채택할 수 있다.
최종 코멘트로서, 특히 멀티플렉서(110)가 용도 변경된 하드웨어 스위치 또는 그 밖의 다른 하드웨어 장치에 대응하는 경우에, 멀티플렉서(110)가 높은 처리량을 갖는다. 이러한 특성은 추적 시스템(104)이 높은 트래픽량을 처리할 수 있게 하는 하나의 특징이며, 이러한 특성은 또한 추적 시스템(104)의 확장성을 촉진한다.
A.5. 예시적인 처리 모듈
도 10은 도 1의 추적 시스템(102)의 또 다른 구성 요소인 처리 모듈(1002)의 일 구현을 도시한다. 처리 모듈(1002)은 멀티플렉서(110)로부터 미러링된 패킷의 스트림을 수신한다. 전술한 바와 같이, 멀티플렉서(110)는 네트워크(104)를 통해 동일한 경로에 속하는 미러링된 패킷을 동일한 처리 모듈로 전달한다. 따라서, 일 구현에서, 처리 모듈(1002)에 의해 수신되는 미러링된 패킷의 스트림은 다른 처리 모듈에 의해 처리되는 흐름에 속하는 미러링된 패킷을 포함하지 않을 것이다.
역캡슐화 모듈(decapsulation module, 1004)은 수신된 미러링된 패킷들로부터 외부 헤더들을 제거한다. 예를 들어, 도 9의 캡슐화된 미러링된 패킷(422)과 관해서, 역캡슐화 모듈(1004)은 (도 3의) 미러링 모듈(324)에 의해 생성된 원래의 미러 패킷(326)을 남기기 위해 헤더들(802, 804, 902, 904)을 제거한다. 그러나, 이하의 설명을 단순화하기 위해, 처리 모듈(1002)에 의해 처리되는 미러링된 정보는 이후 간단히 미러링된 패킷으로 지칭된다. 다른 구현에서, 처리 모듈(1002)은 이 정보가 유용한 진단 정보를 제공하는 한, 외부 헤더에 제공되는 적어도 일부 정보를 보유할 수 있다.
처리 모듈(1002)은 미러링된 패킷들의 스트림 상에서 동작하는 하나 이상의 처리 엔진들(1006)의 집합을 포함할 수 있다. 예를 들어, 적어도 하나의 트레이스 어셈블리 모듈(trace assembly module, 1008)은 네트워크(104)를 통해 동일한 흐름 또는 경로에 속하는 미러링된 패킷 세트를 함께 그룹화할 수 있다. 도 1의 예시에서, 예를 들어, 트레이스 어셈블리 모듈(1008)은 스위치들(106, 126 및 128)에 의해 생성된 미러링된 패킷을 단일 그룹으로 어셈블링하여, 미러링된 패킷 시퀀스(138)를 생성할 수 있다. 트레이스 어셈블리 모듈(1008)은 또한 생성된 순서에 따라 그룹 내의 미러링된 패킷들의 순서를 정할 수 있다. 트레이스 어셈블리 모듈(1008)은 미러링된 패킷에 의해 캡쳐된 타임 스탬프, 시퀀스 번호 및/또는 기타 정보를 참조함으로써 그 기능을 수행할 수 있다.
적어도 하나의 필터 및 선택(filter and select, FS) 모듈(1010)은 수신된, 미러링된 패킷의 스트림으로부터 하나 이상의 유형의 패킷을 추출할 수 있다. 예를 들어, FS 모듈(1010)은 특정 TCP 플래그, 또는 특정 오류 조건, 또는 특정 애플리케이션 등과 관련된 패킷들을 추출할 수 있다. FS 모듈(1010)은, 예를 들어, 정규 표현 기능(regex functionality) 등을 사용함으로써, 수신된 미러링된 패킷들에 제공된 정보를 매칭 규칙에 매칭시켜 그 기능을 수행할 수 있다.
보관 모듈(archival module, 1012)은 수신된 미가공 미러링된 패킷 및/또는 다른 처리 엔진(1006)에 의해 생성된 임의의 상위-레벨 정보를 저장한다. 보관 모듈(1012)은 데이터 저장소(1014)에 임의의 그러한 정보를 저장할 수 있으며, 데이터 저장소(1014)는 단일 사이트에 제공되거나 또는 복수의 사이트들에 분산된 하나 이상의 물리적 저장 메커니즘에 대응할 수 있다. 예를 들어, 어느 한 경우에, 보관 모듈(1004)이 처리 모듈(1002)에 의해 수신된 모든 미가공 미러링된 패킷들을 저장할 수 있다. 추가적으로 또는 대안으로, 보관 모듈(1012)이 트레이스 어셈블리 모듈(1008)에 의해 생성된 트레이스를 저장할 수 있다. 추가적으로 또는 대안으로, 보관 모듈(1012)이 FS 모듈(1010) 등에 의해 식별된 미러링된 패킷들의 선택된 서브 세트를 저장할 수 있다.
보다 구체적으로, 보관 모듈(1012)은 미러링된 패킷을 소비할 소비 개체의 예상된 필요성에 따라, 상이한 유형의 미러링된 패킷에 대해 상이한 방식으로 미러링된 패킷을 저장할 수 있다. 어떤 경우에, 보관 모듈(1012)은 미러링된 패킷의 완전한 트레이스를 기록할 수 있다. 다른 경우에, 보관 모듈(1012)은 반드시 이들 경로에 대한 완전한 트레이스를 저장할 필요 없이, 경로에서 생성된 특정 미러링된 패킷을 저장할 수 있다. 예를 들어, 특정 스위치에서 패킷 드롭이 발생하였음을 나타내는 명시적인 정보가 캡쳐되면, 보관 모듈(1012)은 패킷 드롭 포인트까지 전체 홉 시퀀스를 캡쳐하지 않을 수 있다.
인터페이스 모듈(1016)은 도 1의 소비 개체(114)와 같은 임의의 소비 개체가, 처리 모듈(1002)에 의해 수집되고 처리된 임의의 정보를 검색할 수 있게 한다. 어느 한 경우에, 소비 개체(114)는 수집된 정보를 수신하여 분석하기 위해 임의의 특성의 컴퓨팅 장치를 사용하는 인간 분석가에 대응할 수 있다. 대안으로, 또는 추가적으로, 소비 개체(114)가 자동화된 분석 프로그램에 대응할 수 있다.
어느 한 경우에, 소비 개체(114)가 데이터 저장소(1014)에 보관된 정보를 수신할 수 있다. 대안으로 또는 추가적으로, 예를 들어, 그러한 정보의 실시간 스트림으로서, 미러링된 패킷들이 처리 모듈(1002)에 의해 수신될 때, 소비 개체(114)는 미러링된 패킷들을 수신할 수 있다. 어느 한 경우에, 인터페이스 모듈(1016)은 임의의 소비 개체가 하나 이상의 API(Application Programming Interface)를 통해 자원과 상호 작용할 수 있게 한다. 예를 들어, 인터페이스 모듈(1016)은 상이한 정보 추출 모드에 대해 상이한 API를 제공할 수 있다. 또한 API는 소비 개체로 하여금, 추출된 원하는 미러링된 패킷 등에 사용하기 위한 필터링 기준을 지정하게 할 수 있다.
인터페이스 모듈(1016)은 또한 소비 개체로부터 지시를 수신할 수 있다. 예를 들어, (예를 들어, 소비 개체에 의해 구현되는 것과 같은) 자동화된 분석 프로그램은 보관 모듈(1012)이 분석 프로그램의 정보 요청에 기초하여, 기록하는 정보의 유형 및 특성을 자동적으로 및 동적으로 변경하도록 지시할 수 있다.
다른 인터페이스 모듈(1018)은 (도 1의) 관리 모듈(116)과 처리 모듈(1002) 간의 통신을 수행하기 위한 메커니즘을 제공한다. 예를 들어, 그 분석에 기초하여, 처리 모듈(1002)은 관리 모듈(116)에 지시를 자동으로 전송하여, 다시 관리 모듈(116)에게 업데이트된 패킷-검출 규칙을 네트워크(104) 내의 스위치들에게로 전송하도록 지시할 수 있다. 새로운 패킷-검출 규칙은 미러링된 패킷의 처리 모듈(1002)로의 흐름을 변경시킬 것이다. 예를 들어, 처리 모듈(1002)은 관리 모듈(116)에게, 예를 들어, 선택 기준을 덜 또는 더 제한적으로 함으로써, 수신하는 미러링된 패킷의 양을 증가 또는 감소시키는 새로운 규칙 세트를 제공하도록 요청할 수 있다. 추가적으로 또는 대안으로, 처리 모듈(1002)은 수신 중인 정보의 유형에 동적으로 반응할 수 있다. 즉, 임의의 애플리케이션 특유의 이유로 인해, 패킷-검출 규칙의 변경에 영향을 주어 특정 유형의 패킷 유형을 추가로 캡쳐하거나 특정 유형의 패킷을 덜 캡쳐할 수 있다. 예를 들어, 처리 모듈(1002)은 플러딩 공격(flooding attack)이 현재 발생하고 있음을 제안하기 위해 일정량의 증거를 수집할 수 있고, 그 후에, 플러딩 공격의 존재를 추가로 확인하는 수신된 미러링된 패킷의 양을 억제하도록 관리 모듈(116)에 요청할 수 있다.
마찬가지로 관리 모듈(116)은 임의의 애플리케이션-특유의 이유로 인해 인터페이스 모듈(1018)을 사용하여 처리 모듈(1002)에 지시를 전송할 수 있다. 예를 들어, 관리 모듈(116)은 처리 모듈(1002)에 성능 데이터를 사전에 문의할 수 있다. 관리 모듈(116)은 성능 데이터를 사용하여 전술한 방식들 중 임의의 방식으로 미러링 기능부의 동작을 변경할 수 있다. 관리 모듈(116)과 처리 모듈(1002) 사이의 또 다른 환경-특유의 상호 작용이 수행될 수 있다.
A.6. 예시적인 소비 개체
도 11은 도 1의 컨텍스트에 소개된 소비 개체(114)의 일 구현을 도시한다. 전술한 바와 같이, 소비 개체(114)는 인간 분석가가 미러링된 패킷에 대한 분석을 수행하는 컴퓨팅 장치에 대응할 수 있다. 대안으로, 또는 추가적으로, 소비 개체는 임의의 유형의 컴퓨팅 장치를 실행하는 하나 이상의 분석 프로그램에 대응할 수 있다.
소비 개체(114)는 예컨대, 처리 모듈(112)에 의해 제공되는 하나 이상의 API를 통해, 처리 모듈(112)과 상호 작용하기 위한 인터페이스 모듈(F)을 포함한다. 소비 개체(114)는 처리 모듈(112)에 의해 캡쳐되고 처리된 임의의 정보를 얻을 수 있다. 어느 한 경우에, 소비 개체(114)는 처리 모듈(112)의 전체 집합에 정보 요청을 할 수 있고, 원하는 정보를 보유하고 있는 특정 처리 모듈(또는 모듈들)이 원하는 정보를 제공함으로써 응답할 것이다. 대안으로, 또는 추가적으로, 처리 모듈(112)은 미러링된 패킷 정보를 소비 개체(114)에 자동으로 제공할 수 있다. 예를 들어, 소비 개체(114)는 원하는 패킷-관련 정보를 수신하기 위해 하나 이상의 이벤트 핸들러를 등록할 수 있다. 처리 모듈(112)은 마주칠 때 원하는 정보를 제공함으로써 이들 이벤트 핸들러에 응답할 수 있다. 소비 개체(114)는 수집한 정보를 데이터 저장소(1104)에 저장할 수 있다. 전술한 바와 같이, 소비 개체(114)는 처리 모듈(112)에 지시 및 다른 피드백도 전송할 수 있다.
소비 개체(114)는 수신된 미러링된 패킷 정보를 분석하는 하나 이상의 애플리케이션-특유의 처리 엔진(1106)을 제공할 수 있다. 어느 한 경우에, 예를 들어, 처리 엔진은 수집된 미러 패킷의 헤더에서 TCP 헤더 정보를 검사할 수 있다. 이 정보는 통신하는 개체들 간에 설정된 연결 개수를 나타낸다. 처리 엔진은 임계값에 대한 연결 개수를 비교하여 플러딩 공격 또는 기타 비정상적인 조건이 발생했는지 여부를 판별할 수 있다.
다른 처리 엔진은 손실되거나 손상된 정보 흐름에 기여할 수 있은 깨진 링크 또는 오작동하는 구성 요소에 대해 네트워크(104)를 검사할 수 있다. 이러한 처리 엔진은 패킷의 조기 절단된 시퀀스(예를 들어, 패킷이 그 의도된 목적지에 도달하지 않는 경우)의 식별에 의한 것과 같은 다양한 증거에 기초하여, 및/또는 누락된 홉, 비정상적인 경로 등을 포함하는 패킷의 시퀀스에 기초하여, 장애의 존재를 결정할 수 있다. 추가적으로 또는 대안으로, 처리 엔진은 다음의 증거, BGP 또는 다른 라우팅 정보, 스위치에 의해 추가된 오류 조건 메타 데이터, 핑-관련 패킷 정보 등 중에서 임의의 것을 검사할 수 있다. 즉, BGP 정보는 링크의 장애 또는 오작동과 같은 네트워크의 라우팅 문제를 직접적으로 나타낼 수 있다. 오류 조건 정보는 특정 스위치가 그 손상 또는 다른 요인들로 인해 패킷을 드롭했을 나타낼 수 있다. 핑-관련 패킷 정보는 네트워크 내의 2개의 개체들 사이의 연결 문제를 나타낼 수 있다. 전술한 바와 같이, 핑 애플리케이션은 원격 개체에 테스트 메시지를 전송하고 원격 개체에 의한 핑 메시지에 대한 응답을 리스닝함으로써 원격 개체로의 접속 품질을 테스트하는 애플리케이션에 대응한다.
또 다른 유형의 처리 엔진(1106)이 소비 개체(114)에 의해 사용될 수 있고, 상기의 예시들은 제한이 아닌 예로서 설명되었다.
처리 엔진은 규칙-기반 엔진, 인공 지능 엔진, 기계-훈련 모델 등과 같은 임의의 방식으로 구현될 수 있다. 예를 들어, 어느 하나의 규칙-기반 처리 엔진이 일련의 진단 규칙을 반영하는 매핑 테이블 또는 분기 알고리즘(branching algorithm)을 채택할 수 있다. 각각의 규칙은 IF-THEN 형식으로 구성될 수 있다. 즉, 규칙은 캡쳐된 미러링된 패킷에 증거 세트 {X1, X2, .... Xn}이 존재하면, 네트워크가 비정상 Y로 타격을 받을 것임을 지정할 수 있다. 이러한 규칙들의 구체적인 특성은 모니터링되는 네트워크(104)의 특성, 분석의 목적 및/또는 임의의 다른 요인(들)에 따라 사실상 환경-특유적이다.
일부의 경우에, 처리 엔진은 일련의 테스트를 동적으로 수행할 수도 있으며, 후속 테스트는 이전 테스트(또는 테스트들)의 결과에 의해 트리거될 수 있으며, 이전 테스트(들)에서 생성된 결론에 의존할 수 있다.
적어도 하나의 작업-수행 모듈(action-taking module, 1108)은 임의의 처리 엔진(1106)에 의해 제공된 분석 결과에 기초하여 액션을 취할 수 있다. 예를 들어, 하나의 작업-수행 모듈은 분석 결과를 임의의 형태로, 예를 들어, 경보 신호, 검출된 장애의 원인에 대한 텍스트 설명 등을 제공함으로써 인간 분석가에게 통지할 수 있다. 또 다른 경우에, 작업-수행 모듈은 오작동으로 판단된 네트워크(104)의 부분의 성능을 사전에 비활성화시키거나 그렇지 않으면 수정할 수 있다. 예를 들어, 이러한 종류의 작업-수행 모듈은 공격 대상인 특정 서버나 다른 자원으로의 통신 경로를 사용하지 못하게 하거나, 악성 개체로 의심되는 트래픽을 차단할 수 있다.
인터페이스 모듈(1110)은 소비 개체(114)가 관리 모듈(116)과 상호 작용할 수 있게 한다. 예를 들어, 소비 개체(114)는 적어도 처리 모듈(112)이 요청할 수 있는 동일한 이유로 관리 모듈(116)에 요청을 보낼 수 있다. 예를 들어, 처리 엔진이 수신 중인 패킷의 유형을 변경하거나 수신 중인 패킷의 양을 변경하기 원할 수 있다. 이를 위해, 처리 엔진은 관리 모듈(116)에 요청하여 네트워크(104) 내의 스위치에 업데이트된 패킷-검출 규칙을 전송하도록 지시할 수 있다. 업데이트된 규칙은, 스위치에 의해 적용될 때, 처리 엔진의 목표를 달성한다.
도 1 및 도 11에 관한 마지막 메모로서, 이들 도면은 처리 모듈(112)을 소비 개체로부터 분리된 에이전트로서 도시한다. 다른 구현들에서, 처리 모듈들(112)에 의해 수행되는 것으로 전술된 하나 이상의 기능들이, 대신에, 소비 개체에 의해 수행될 수 있다. 실제로, 일부 구현에서, 처리 모듈(112)이 완전히 제거될 수 있고, 소비 개체가 멀티플렉서(110)로부터 직접 미러링된 패킷을 수신할 수 있다.
A.7. 예시적인 관리 모듈
마지막으로, 도 12는 관리 모듈(116)의 일 구현을 도시한다. 관리 모듈(116)은 네트워크 스위치, 멀티플렉서(110), 처리 모듈(112) 등에서의 다양한 동작을 제어하기 위해 적어도 하나의 제어 모듈(1202)을 사용할 수 있다. 예를 들어, 제어 모듈(1202)은 스위치들의 후속 미러링 동작을 제어하는 패킷-검출 규칙들의 세트를 스위치들에 제공할 수 있다. 제어 모듈(1202)은 관리자로부터의 명시적인 명령, 소비 개체와 관련된 인간 분석가에 의한 명시적인 요청, 임의의 처리 모듈 또는 소비 개체에 의한 자동화된 요청 등과 같은 하나 이상의 요인에 기초하여 새로운 규칙을 생성할 수 있다.
어느 한 경우에, 관리 모듈(116)은 동일한 세트의 패킷-검출 규칙을 로딩하도록 모든 스위치에 지시한다. 다른 경우에, 관리 모듈(116)은 스위치들의 상이한 서브 세트들이 상이한 각각의 패킷-검출 규칙 세트를 로딩하도록 지시할 수 있다. 관리 모듈(116)은, 예를 들어, 트래픽이 많은 스위치에 의해 생성된 미러링된 패킷의 양을 다시 억제하기 위해, 임의의 환경-특유의 이유에 대한 후속 접근 방법을 채택할 수 있다.
또한, 관리 모듈(116)은 적어도 하나의 성능 모니터링 모듈(1204)을 포함할 수 있다. 이 구성 요소는 네트워크(104) 및 추적 시스템(102)의 다양한 구성 요소의 동작에 관한 피드백 정보를 수신한다. 이 정보에 기초하여, 성능 모니터링 모듈(1204)은 네트워크(104) 및 추적 시스템(102)의 성능 레벨을 반영하여 하나 이상의 성능-관련 측정치를 생성할 수 있다. 예를 들어, 성능 모니터링 모듈(1204)은 추적 시스템(102)에 의해 생성되는 미러링된 패킷의 양을 결정할 수 있다. 미러링된 패킷은 다양한 방식으로 원래 패킷과 구별될 수 있다. 예를 들어, 스위치에 제공된 미러링 메커니즘 각각은 자신이 생성한 미러링된 패킷에 서비스 유형(TOS) 플래그를 추가할 수 있고, 이 플래그는 패킷을 미러링된 패킷으로 식별할 수 있다.
제어 모듈(1202)은 또한 성능 모니터링 모듈(1204)에 의해 제공된 성능 데이터에 기초하여 스위치에 전파하는 규칙을 업데이트 할 수 있다. 예를 들어, 추적 시스템(102)의 미러링 동작이 원래 패킷의 흐름에 악영향을 미치지 않도록, 제어 모듈(1202)은 피크 트래픽 부하의 기간 동안 네트워크(104)의 혼잡을 줄이기 위해 미러링된 패킷의 양을 다시 억제할 수 있다.
관리 모듈(116)은 또한 다른 관리 동작을 수행하는 임의의 다른 기능부(1206)를 포함할 수 있다. 예를 들어, 도 12에는 명시적으로 언급되지 않았지만, 기능부(1206)는 라우팅 정보를 컴파일하여 스위치에 전송할 수 있다. 이 라우팅 정보는 스위치가 네트워크(104)를 통해 원래 및 미러링된 패킷을 라우팅하는 방식을 결정한다.
마지막으로, 관리 모듈(116)은 네트워크(104) 내의 스위치와 상호 작용하기 위한 인터페이스 모듈(1208), 멀티플렉서(110)와 상호 작용하기 위한 인터페이스 모듈(1210), 처리 모듈(112)과 상호 작용하기 위한 인터페이스 모듈(1212), 및 소비 개체와 상호 작용하기 위한 인터페이스 모듈(1214)을 포함하여, 추적 시스템(102)의 다양한 액터와 상호 작용하기 위한 다수의 인터페이스를 포함할 수 있다.
B. 예시적인 프로세스들
도 13 내지 도 18은 섹션 A의 추적 시스템(102)의 동작을 순서도 형태로 설명하는 프로세스를 도시한다. 추적 시스템(102)의 동작의 바탕이 되는 원리는 이미 섹션 A에서 설명되었기 때문에, 본 섹션에서는 특정 동작이 요약 방식으로 언급될 것이다.
도 13에서 시작하면, 본 도면은 도 3의 스위치(302)의 동작의 하나의 방식을 설명하는 프로세스(1302)를 도시한다. 블록(1304)에서, 스위치(302)는 네트워크(104)를 통해 전송되는 원래 패킷을 수신한다. 블록(1306)에서, 스위치(302)는 원래 패킷을 미러링할지 여부를 결정한다. 블록(1308)에서, 스위치는 원래 패킷을 미러링하는 결정이 내려진 것으로 가정하여, 원래 패킷에 기초하여 미러링된 패킷을 생성한다. 미러링된 패킷은 적어도 원래 패킷에서 제공된 정보의 서브 세트를 포함한다. 블록(1310)에서, 스위치(302)는 적어도 하나의 로드 밸런싱 고려 사항에 기초하여 후보 멀티플렉서(110) 세트로부터 멀티플렉서를 선택적으로 선택한다. 이러한 동작은, 일부 구현에서, 추적 시스템(102)이 단지 하나의 멀티플렉서를 제공할 수 있고, 따라서 멀티플렉서들 사이의 멀티플렉싱이 그 경우에는 필요하지 않다는 점에서 선택적이다. 블록(1312)에서, 스위치(302)는 미러링된 패킷을 선택된(또는 디폴트) 로드 밸런싱 멀티플렉서로 전송한다. 블록(1314)에서, 스위치(302)는 원래 패킷에 의해 지정된 타겟 목적지로 원래 패킷을 송신한다. 상기의 동작들은 설명을 단순화하기 위해 직렬로 설명되지만, 이들 동작들 중 임의의 동작은 동작들(1312 및 1314)과 같이 병렬로 수행될 수도 있다.
도 14는 도 3의 스위치(302)의 구성 요소인 매칭 모듈(320)의 동작의 한 방식을 설명하는 프로세스(1402)를 도시한다. 블록(1404)에서, 매칭 모듈(320)은 적어도 하나의 패킷-검출 규칙에 관해 원래 패킷을 분석한다. 블록(1406)에서, 매칭 모듈(320)은 원래 패킷이 패킷-검출 규칙을 만족시키는지 여부를 결정한다. 블록(1408)에서, 매칭 모듈(320)은 원래 패킷이 패킷-검출 규칙을 만족한다면, 원래 패킷을 미러링하라는 지시를 생성한다. 실제로, 매칭 모듈(320)은, 직렬 또는 병렬로, 일련의 패킷-검출 규칙에 관해서 도 14의 동작을 수행할 수 있다.
도 15는 도 4의 멀티플렉서(402)의 동작의 한 방식을 설명하는 프로세스(1502)를 도시한다. 블록(1504)에서, 멀티플렉서(402)는 미러링된 패킷을 수신한다. 블록(1506)에서, 멀티플렉서(402)는 적어도 하나의 로드 밸런싱 선택 고려 사항에 기초하여 처리 모듈 후보들의 세트로부터 처리 모듈을 선택한다. 예를 들어, 멀티플렉서(402)는 전술한 해싱 기법을 사용하여 처리 모듈 후보들 중에서 선택하면서, 동일한 흐름에 속하는 패킷들이 동일한 처리 모듈로 보내지도록 보장할 수 있다. 블록(1508)에서, 멀티플렉서(402)는 선택된 처리 모듈에 미러링된 패킷을 전송한다.
도 16은 도 10의 처리 모듈(1002)의 동작의 한 방식을 설명하는 프로세스(1602)를 도시한다. 블록(1604)에서, 처리 모듈(1002)은 멀티플렉서들(110)로부터 미러링된 패킷들을 수신한다. 블럭(1606)에서, 처리 모듈(1002)은, 이에 한정되는 것은 아니지만, (예를 들어, 동일한 흐름에 속하는) 관련 미러링된 패킷들의 시퀀스들의 어셈블링, 특정 미러링된 패킷을 필터링 및 선택, 미러링된 패킷 및/또는 처리 모듈(1002)에 의해 수행된 분석 결과 기록 등과 같은, 임의의 유형의 처리를 미러링된 패킷들에 대해 수행한다.
도 17은 도 11의 소비 개체(114)의 하나의 비제한적이고 대표적인 동작 방식을 설명하는 프로세스(1702)를 도시한다. 블록(1704)에서, 소비 개체(114)는 미러링된 패킷의 분석을 시작할지 여부를 결정한다. 예를 들어, 소비 개체(114)가, 네트워크(104)와 상호 작용하거나 네트워크(104)에서 TCP-관련 애플리케이션 또는 BGP-관련 애플리케이션과 같은 역할을 하는 특정 애플리케이션과 관련이 있다고 가정하자. 어느 한 동작 모드에서, 이러한 애플리케이션은, 추적 시스템(102)과는 독립적으로, 네트워크(104)에서 장애 또는 다른 바람직하지 않은 이벤트가 발생했는지를 결정할 수 있다. 이에 응답하여, 애플리케이션은 특정 유형의 미러링된 패킷의 수집을 시작하도록 스위치에 요청할 수 있다. 즉, 애플리케이션은 관리 모듈(116)에 이러한 요청을 할 수 있으며, 다시, 관리 모듈(116)은, 스위치에 의해 적용될 때, 원하는 패킷들을 캡쳐하는 최종 효과를 가질 하나 이상의 패킷-검출 규칙을 스위치들에게로 전송한다. 다른 동작 모드에서, 애플리케이션은 먼저 비정상적인 조건을 만나지 않고 정상 동작 과정에서 특정 패킷을 수집하도록 스위치에 요청할 수 있다. 또 다른 작동 모드들도 가능하다.
블록(1706)에서, 소비 개체(114)는 처리 모듈(112)에 의해 제공된 분석된 결과 및/또는 미러링된 패킷을 수신한다. 소비 개체(114)는 블록(1706)에서 푸쉬(push) 기법, 풀(pull) 기법 또는 이들의 조합을 사용하여 정보를 얻을 수 있다. 블록(1708)에서, 소비 개체(114)는 미러링된 패킷을 분석하여 네트워크(104)에서 발생했거나 또는 현재 네트워크(104)에서 발생하고 있는 이벤트에 관한 제 1 결론에 도달한다. 그 후, 이 제 1 결론에 기초하여, 소비 개체(114)는 하나 이상의 동작을 취할 수 있으며, 그 예시들이 도 17에 요약되어 있다.
예를 들어, 블록(1710)에서, 소비 개체(114)는 네트워크(104) 내의 비정상 조건을 인간 분석가, 관리자 또는 임의의 다른 개체에 통지할 수 있다. 소비 개체(114)는 임의의 사용자 인터페이스 표현을 사용하여 이들 결과를 전달할 수 있다. 대안으로 또는 추가적으로, 블록(1712)에서, 소비 개체(114)는 그 분석 결과를 로깅할 수 있다. 대안으로 또는 추가적으로, 블록(1714)에서, 소비 개체(114)는 네트워크(104)의 임의의 부분의 동작을 비활성화시키거나 변경함으로써 임의의 다른 액션을 취할 수 있다.
추가적으로 또는 대안으로, 블록(1716)에서, 소비 개체(114)는 제 1 결론을 사용하여 또 다른 분석 라운드를 트리거할 수 있다. 그 두 번째 분석에서는 제 1 결론을 입력 데이터로서 사용할 수 있다. 이러한 반복 조사는 인간 분석가 또는 자동화된 프로그램이 원하는 최종 결론에 도달할 때까지 여러 번 반복될 수 있다. 블록(1716)의 분석은 소비 개체(114)가 이미 처리 모듈(112)로부터 수신한 미러링된 패킷 정보와 관련하여 일어난다.
추가적으로 또는 대안으로, 블록(1718)에서, 소비 개체(114)는 처리 모듈(112)과 상호 작용하여 처리 모듈(112)로부터 추가적인 패킷-관련 정보를 획득할 수 있다. 추가적으로 또는 대안으로, 소비 개체(114)는 관리 모듈(116)과 상호 작용하여 스위치 상에 로딩되는 패킷-검출 규칙을 변경하도록 요청할 수 있다. 이러한 변경은, 다시, 처리 모듈(112)로부터 소비 개체(114)가 수신하는 패킷의 유형 및/또는 양을 변경할 것이다. 다음으로 소비 개체(114)는 추가 패킷-관련 정보가 수신된 경우에 전술한 동작들 중 임의의 동작을 반복할 수 있다.
마지막으로 도 18은 도 12의 관리 모듈(116)의 동작의 한 방식을 설명하는 프로세스(1802)를 도시한다. 블록(1804)에서, 관리 모듈(116)은 네트워크(104)의 스위치, 멀티플렉서(110), 처리 모듈(112) 등과 같은 추적 시스템(102)의 구성 요소에 다양한 지시를 전송할 수 있다. 예를 들어, 관리 모듈(116)은 패킷-검출 규칙의 업데이트된 세트를 스위치에 전송할 수 있으며, 스위치는 이후에 특정 방식으로 그 패킷 미러링 동작을 제어할 것이다. 블록(1806)에서, 관리 모듈(116)은 스위치, 멀티플렉서(110), 처리 모듈(112), 소비 개체 등과 같은 다양한 개체로부터 피드백을 수신한다. 전술한 방식으로, 관리 모듈(116)은 이후에, 즉, 블록(1804)의 후속 실행에서, 피드백을 사용하여 다양한 에이전트에 전송하는 지시들을 업데이트할 수 있다. 관리 모듈(116)은 또한 도 18에 도시되지 않은 다른 관리 기능들도 수행할 수 있다.
C. 대표적인 컴퓨팅 기능부
도 19는 전술한 도면에서 설명된 추적 기능부의 임의의 양태를 구현하는데 사용될 수 있는 컴퓨팅 기능부(1902)를 도시한다. 예를 들어, 도 19에 도시된 컴퓨팅 기능부(1902)의 유형이 (도 1의 추적 시스템(102)에서 사용되는 경우) 소프트웨어로 구현된 멀티플렉서, 임의의 패킷 처리 모듈, 관리 모듈(116), (소비 개체(114)와 같은) 임의의 소비 개체 등을 구현하는데 사용될 수 있다. 모든 경우에, 컴퓨팅 기능부(1902)는 하나 이상의 물리적이고 유형인 처리 메커니즘을 나타낸다.
컴퓨팅 기능부(1902)는 하나 이상의 처리 장치(1904), 예를 들어, 하나 이상의 중앙 처리 유닛(CPU), 및/또는 하나 이상의 그래픽 처리 유닛(GPU) 등을 포함할 수 있다.
또한, 컴퓨팅 기능부(1902)는 코드, 세팅, 데이터 등과 같은 임의의 유형의 정보를 저장하는 임의의 저장 자원(1906)을 더 포함할 수 있다. 비제한적인 예를 들면, 저장 자원(1906)은 임의의 유형의 RAM, 임의의 유형의 ROM, 플래시 장치, 하드 디스크, 광 디스크 등 중 임의의 것을 포함할 수 있다. 보다 일반적으로, 임의의 저장 자원은 정보를 저장하기 위한 임의의 기술을 이용할 수 있다. 또한 임의의 저장 자원은 휘발성 또는 비휘발성 정보 보유를 제공할 수 있다. 또한, 임의의 저장 자원은 컴퓨팅 기능부(1902)의 고정식 또는 이동식 구성 요소를 나타낼 수 있다. 컴퓨팅 기능부(1902)는 처리 장치(1904)가 임의의 저장 자원들 또는 저장 자원들의 조합에 저장된 지시를 반송할 때 전술한 기능들 중 임의의 것을 수행할 수 있다.
용어와 관련하여, 저장 자원(1906) 중 임의의 것, 또는 저장 자원(1906)의 임의의 조합이 컴퓨터 판독 가능 매체로 여겨질 수 있다. 여러 경우에서, 컴퓨터 판독 가능 매체는 일부 형태의 물리적이고 유형인 개체를 나타낸다. 컴퓨터 판독 가능 매체라는 용어는 또한 전파된 신호, 예를 들어, 물리 도관 및/또는 공중 또는 그 밖의 다른 무선 매체 등을 통해 송신 또는 수신된 신호를 포함한다. 그러나 특정 용어 "컴퓨터 판독 가능 저장 매체" 및 "컴퓨터 판독 가능 매체 장치"는 그 밖의 다른 모든 형태의 컴퓨터 판독 가능 매체는 포함하면서, 전파되는 신호 자체는 명확히 배제한다.
컴퓨팅 기능부(1902)는 또한 하드 디스크 드라이브 메커니즘, 광 디스크 드라이브 메커니즘 등과 같은 임의의 저장 자원과 상호 작용하기 위한 하나 이상의 드라이브 메커니즘(1908)을 포함한다.
컴퓨팅 기능부(1902)는 또한 (입력 장치(1912)를 통해) 다양한 입력을 수신하고, (출력 장치(1914)를 통해) 다양한 출력을 제공하기 위한 입/출력 모듈(1910)을 포함한다. 예시적인 입력 장치로는 키보드 장치, 마우스 입력 장치, 터치스크린 입력 장치, 디지털화 패드, 하나 이상의 비디오 카메라, 하나 이상의 깊이 카메라, 자유 공간 제스처 인식 메커니즘, 하나 이상의 마이크로폰, 음성 인식 메커니즘, 임의의 움직임 검출 메커니즘(예를 들어, 가속도계, 자이로스코프 등) 등을 포함한다. 하나의 특정 출력 메커니즘으로는 표시 장치(1916) 및 이와 연관된 그래픽 사용자 인터페이스(GUI, 1918)를 포함할 수 있다. 그 밖의 다른 출력 장치는 프린터, 모델-생성 메커니즘, 촉각 출력 메커니즘, (출력 정보를 저장하기 위한) 저장 메커니즘 등을 포함한다. 컴퓨팅 기능부(1902)는 또한 하나 이상의 통신 도관(1922)을 통해 데이터를 그 밖의 다른 장치와 교환하기 위한 하나 이상의 네트워크 인터페이스(1920)를 포함할 수 있다. 하나 이상의 통신 버스(1924)는 전술한 구성 요소들을 통신 가능하게 연결한다.
통신 도관(들)(1922)은 임의의 방식으로, 예를 들어, 근거리 통신망, 광역 통신망(예를 들어, 인터넷), 포인트-투-포인트 연결 등, 또는 이들의 조합으로 구현될 수 있다. 통신 도관(들)(1922)은 임의의 프로토콜 또는 프로토콜 조합에 의해 통제되는, 하드와이어링된 링크, 무선 링크, 라우터, 게이트웨이 기능부, 네임 서버 등의 임의의 조합을 포함할 수 있다.
대안으로 또는 추가로, 상기의 섹션들에서 설명된 기능들 중 임의의 것이, 하나 이상의 하드웨어 로직 구성 요소에 의해 적어도 부분적으로 수행될 수 있다. 비제한적 예를 들면, 컴퓨팅 기능부(1902)는 FPGA(Field-programmable Gate Array), ASIC(Application-specific Integrated Circuit), ASSP(Application-specific Standard Product), SOC(System-on-a-chip system), CPLD(Complex Programmable Logic Device) 등 중 하나 이상을 이용해 구현될 수 있다.
마치면서, 본 발명은 구조적 특징 및/또는 방법적 동작에 특정적인 언어로 설명되었지만, 첨부된 청구항에서 정의된 본 발명은 전술한 특정의 특징 또는 동작에 반드시 한정되지 않음음을 이해해야 한다. 오히려, 전술한 특정의 특징 및 동작이 청구항을 구현하는 예시적 형태로서 기재된다.

Claims (15)

  1. 네트워크로부터 패킷을 수집하는 방법으로서,
    네트워크 내의 스위치에서 원래 패킷을 수신하는 단계,
    상기 원래 패킷을 미러링할지 여부를 결정하는 단계,
    상기 원래 패킷을 미러링하는 결정이 내려지면, 상기 원래 패킷에 기초하여 미러링된 패킷을 생성하는 단계- 상기 미러링된 패킷은 적어도 상기 원래 패킷에서 제공되는 정보의 서브 세트를 포함함 -,
    상기 미러링 패킷을 로드 밸런싱 멀티플렉서에 전송하는 단계, 및
    상기 원래 패킷에 의해 지정된 타겟 목적지로 상기 원래 패킷을 전송하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 원래 패킷을 미러링할지 여부를 결정하는 상기 단계는
    패킷-검출 규칙과 관련하여 상기 원래 패킷을 분석하는 단계,
    상기 원래 패킷이 상기 패킷-검출 규칙을 만족하는지 여부를 결정하는 단계, 및
    상기 원래 패킷이 상기 패킷-검출 규칙을 만족한다면, 상기 원래 패킷을 미러링하라는 지시를 생성하는 단계를 포함하는 방법.
  3. 제 2 항에 있어서,
    상기 패킷-검출 규칙은 특정 프로토콜-관련 특성을 표현하는 각각의 원래 패킷이 미러링되도록 지정하는 방법.
  4. 제 2 항에 있어서,
    상기 패킷-검출 규칙은 특정 애플리케이션으로부터 생성된 각각의 원래 패킷이 미러링되도록 지정하는 방법.
  5. 제 2 항에 있어서,
    상기 패킷-검출 규칙은 사용자-생성 패킷-검출 규칙에 대응하고, 상기 사용자-생성 패킷 검출 규칙은 사용자-지정 일치 조건을 만족하는 각각의 원래 패킷이 미러링되도록 지정하는 방법.
  6. 제 2 항에 있어서,
    상기 패킷-검출 규칙은 상기 스위치가, 상기 패킷을 처리할 때, 특정 조건을 만났음을 나타내는 각각의 원래 패킷이 미러링되도록 지정하는 방법.
  7. 제 1 항에 있어서,
    적어도 하나의 로드 밸런싱 고려 사항에 기초하여, 멀티플렉서 후보들의 세트로부터 상기 멀티플렉서를 선택하는 단계를 더 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 멀티플렉서는 하드웨어로 구현된 멀티플렉서인 방법.
  9. 네트워크로부터 수집된 패킷들을 분석하는 하나 이상의 컴퓨팅 장치로서,
    적어도 하나의 처리 모듈로부터 복수의 미러링된 패킷들을 수신하는 인터페이스 모듈 -
    원래 패킷이 패킷-검출 규칙들의 세트 중에서 적어도 하나의 패킷-검출 규칙을 만족하면, 상기 원래 패킷의 처리에 응답하여 각각의 미러링된 패킷이 상기 네트워크의 스위치에 의해 생성되어 상기 적어도 하나의 처리 모듈에 전달되며,
    각각의 미러링된 패킷은 적어도 상기 원래 패킷에서 제공된 정보의 서브 세트를 포함함 -,
    상기 미러링된 패킷을 처리하여 상기 네트워크에서 발생했거나 발생 중인 이벤트에 관한 적어도 하나의 결론에 도달하도록 구성된 적어도 하나의 처리 엔진, 및
    상기 적어도 하나의 결론에 기초하여 액션을 취하도록 구성된 작업-수행 모듈을 포함하는 컴퓨팅 장치.
  10. 네트워크에서 사용하기 위한, 물리적 장치에 대응하는 스위치로서,
    원래 패킷을 수신하도록 구성된 수신 모듈,
    상기 원래 패킷이 패킷-검출 규칙들의 세트 중에서 적어도 하나의 패킷-검출 규칙을 만족하는지 여부를 결정함으로써 상기 원래 패킷을 미러링할지 여부를 결정하도록 구성된 매칭 모듈,
    상기 원래 패킷을 미러링하는 결정이 내려지면, 상기 원래 패킷에 기초하여 미러링된 패킷을 생성하도록 구성된 미러링 모듈- 상기 미러링된 패킷은 적어도 상기 원래 패킷에서 제공되는 정보의 서브 세트를 포함함 -,
    상기 미러링된 패킷을 로드 밸런싱 멀티플렉서에 전송하도록 구성된 미러-패킷 송신 모듈, 및
    상기 원래 패킷에 의해 지정된 타겟 목적지로 상기 원래 패킷을 송신하도록 구성된 원래-패킷 송신 모듈을 포함하는 스위치.
  11. 제 3 항에 있어서,
    상기 프로토콜-관련 특성은 전송 계층 프로토콜에 의해 생성된 적어도 하나의 정보 항목에 의해 표현되는 방법.
  12. 제 3 항에 있어서,
    상기 프로토콜-관련 특성은 라우팅 프로토콜에 의해 생성된 적어도 하나의 정보 항목에 의해 표현되는 방법.
  13. 제 8 항에 있어서,
    상기 특정 조건은 상기 원래 패킷이 상기 스위치에 의해 드롭되어야 함을 나타내는 방법.
  14. 제 1 항에 있어서,
    상기 멀티플렉서에서 상기 미러링된 패킷을 수신하는 단계,
    적어도 하나의 로드 밸런싱 고려 사항에 기초하여, 처리 모듈 후보들의 세트로부터 처리 모듈을 선택하는 단계, 및
    상기 미러링된 패킷을 상기 선택된 처리 모듈로 전송하는 단계를 더 포함하는 방법.
  15. 제 10 항에 있어서,
    적어도 하나의 로드 밸런싱 고려 사항에 기초하여, 멀티플렉서 후보들의 세트로부터 상기 멀티플렉서를 선택하도록 구성된 타겟 멀티플렉서 선택 모듈을 더 포함하는 스위치.
KR1020177005926A 2014-09-03 2015-08-31 선택된 네트워크 트래픽을 수집하고 분석하는 기법 KR20170049509A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/475,927 US20160065423A1 (en) 2014-09-03 2014-09-03 Collecting and Analyzing Selected Network Traffic
US14/475,927 2014-09-03
PCT/US2015/047633 WO2016036627A1 (en) 2014-09-03 2015-08-31 Collecting and analyzing selected network traffic

Publications (1)

Publication Number Publication Date
KR20170049509A true KR20170049509A (ko) 2017-05-10

Family

ID=54106457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177005926A KR20170049509A (ko) 2014-09-03 2015-08-31 선택된 네트워크 트래픽을 수집하고 분석하는 기법

Country Status (11)

Country Link
US (1) US20160065423A1 (ko)
EP (1) EP3189626A1 (ko)
JP (1) JP2017527216A (ko)
KR (1) KR20170049509A (ko)
CN (1) CN106797328A (ko)
AU (1) AU2015312174A1 (ko)
BR (1) BR112017003040A2 (ko)
CA (1) CA2959041A1 (ko)
MX (1) MX2017002881A (ko)
RU (1) RU2017106745A (ko)
WO (1) WO2016036627A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9391716B2 (en) 2010-04-05 2016-07-12 Microsoft Technology Licensing, Llc Data center using wireless communication
US20160142269A1 (en) * 2014-11-18 2016-05-19 Cisco Technology, Inc. Inline Packet Tracing in Data Center Fabric Networks
US11025514B2 (en) 2015-10-30 2021-06-01 Nicira, Inc. Automatic health check and performance monitoring for applications and protocols using deep packet inspection in a datacenter
WO2018137232A1 (zh) * 2017-01-26 2018-08-02 华为技术有限公司 数据处理的方法、控制面节点和用户面节点
US10764209B2 (en) * 2017-03-28 2020-09-01 Mellanox Technologies Tlv Ltd. Providing a snapshot of buffer content in a network element using egress mirroring
US11012327B2 (en) * 2017-06-19 2021-05-18 Keysight Technologies Singapore (Sales) Pte. Ltd. Drop detection and protection for network packet monitoring in virtual processing environments
US10841235B2 (en) * 2017-07-20 2020-11-17 Vmware, Inc Methods and apparatus to optimize memory allocation in response to a storage rebalancing event
US10530678B2 (en) 2017-07-20 2020-01-07 Vmware, Inc Methods and apparatus to optimize packet flow among virtualized servers
US11102063B2 (en) 2017-07-20 2021-08-24 Vmware, Inc. Methods and apparatus to cross configure network resources of software defined data centers
US10756967B2 (en) 2017-07-20 2020-08-25 Vmware Inc. Methods and apparatus to configure switches of a virtual rack
AU2018359378B2 (en) * 2017-10-31 2021-09-09 Ab Initio Technology Llc Managing a computing cluster using durability level indicators
US11190418B2 (en) * 2017-11-29 2021-11-30 Extreme Networks, Inc. Systems and methods for determining flow and path analytics of an application of a network using sampled packet inspection
CN108270699B (zh) * 2017-12-14 2020-11-24 中国银联股份有限公司 报文处理方法、分流交换机及聚合网络
JP6869203B2 (ja) * 2018-03-28 2021-05-12 ソフトバンク株式会社 監視システム
CN108418765B (zh) * 2018-04-08 2021-09-17 苏州盛科通信股份有限公司 远程流量监控负载分担的芯片实现方法和装置
US10924504B2 (en) * 2018-07-06 2021-02-16 International Business Machines Corporation Dual-port mirroring system for analyzing non-stationary data in a network
US10491511B1 (en) * 2018-07-20 2019-11-26 Dell Products L.P. Feedback-based packet routing system
CN108881295A (zh) * 2018-07-24 2018-11-23 瑞典爱立信有限公司 用于检测和解决异常路由的方法和网络设备
US11252040B2 (en) 2018-07-31 2022-02-15 Cisco Technology, Inc. Advanced network tracing in the data plane
JP7119957B2 (ja) * 2018-11-30 2022-08-17 富士通株式会社 スイッチ装置及び障害検知プログラム
CN115211087A (zh) * 2020-03-25 2022-10-18 华为技术有限公司 用于处理和记录网络数据以及孪生网络数字的集成电路
US11714786B2 (en) * 2020-03-30 2023-08-01 Microsoft Technology Licensing, Llc Smart cable for redundant ToR's
US11323381B2 (en) * 2020-04-16 2022-05-03 Juniper Networks, Inc. Dropped packet detection and classification for networked devices
CN116097623A (zh) * 2020-07-02 2023-05-09 瑞典爱立信有限公司 基于流的策略的ue发起的带内策略激活
US20230239247A1 (en) * 2022-01-24 2023-07-27 Netscout Systems Texas, Llc Method and system for dynamic load balancing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003525000A (ja) * 2000-02-22 2003-08-19 トップ レイヤー ネットワークス,インク. ネットワークスイッチにおけるデータフローミラー処理システム及び方法
US7486674B2 (en) * 2003-04-28 2009-02-03 Alcatel-Lucent Usa Inc. Data mirroring in a service
US7710867B1 (en) * 2003-05-23 2010-05-04 F5 Networks, Inc. System and method for managing traffic to a probe
US8869267B1 (en) * 2003-09-23 2014-10-21 Symantec Corporation Analysis for network intrusion detection
US7457868B1 (en) * 2003-12-30 2008-11-25 Emc Corporation Methods and apparatus for measuring network performance
US8248928B1 (en) * 2007-10-09 2012-08-21 Foundry Networks, Llc Monitoring server load balancing
US9003429B2 (en) * 2009-09-23 2015-04-07 Aliphcom System and method of enabling additional functions or services of device by use of transparent gateway or proxy
US8606921B2 (en) * 2010-08-10 2013-12-10 Verizon Patent And Licensing Inc. Load balancing based on deep packet inspection
US9864517B2 (en) * 2013-09-17 2018-01-09 Netapp, Inc. Actively responding to data storage traffic

Also Published As

Publication number Publication date
BR112017003040A2 (pt) 2017-11-21
EP3189626A1 (en) 2017-07-12
CN106797328A (zh) 2017-05-31
WO2016036627A1 (en) 2016-03-10
MX2017002881A (es) 2017-06-19
US20160065423A1 (en) 2016-03-03
RU2017106745A (ru) 2018-09-03
JP2017527216A (ja) 2017-09-14
CA2959041A1 (en) 2016-03-10
AU2015312174A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
KR20170049509A (ko) 선택된 네트워크 트래픽을 수집하고 분석하는 기법
US11128550B2 (en) Logical network traffic analysis
US11038744B2 (en) Triggered in-band operations, administration, and maintenance in a network environment
CN107690778B (zh) 使用镜像探测分组测量网络的性能的方法及设备
US9935851B2 (en) Technologies for determining sensor placement and topology
US9606896B2 (en) Creating searchable and global database of user visible process traces
Handigol et al. I know what your packet did last hop: Using packet histories to troubleshoot networks
US20180278548A1 (en) End-to-end, in situ packet enrichment for network analytics
US11722375B2 (en) Service continuity for network management systems in IPv6 networks
CN114521320B (zh) 基于服务的以节点为中心的ecmp健康
CN104243196B (zh) 一种sdn架构下的虚拟网络映射保护方法及系统
CN110011869B (zh) 控制器装置、方法及计算机可读存储介质
US20110141914A1 (en) Systems and Methods for Providing Ethernet Service Circuit Management
CN110557342A (zh) 用于分析和减轻丢弃的分组的设备
US10862807B2 (en) Packet telemetry data via first hop node configuration
US9356876B1 (en) System and method for classifying and managing applications over compressed or encrypted traffic
Levin et al. Network Monitoring in Federated Cloud Environment
Yamada et al. Developing network configuration management database system and its application—data federation for network management
EP3977680A1 (en) Trace routing in virtual networks
WO2017058137A1 (en) Latency tracking metadata for a network switch data packet
KR100454684B1 (ko) 다중 프로토콜 레이블 스위칭 망에서 모의실험과 최적화를이용한 트래픽 엔지니어링 수행방법 및 그를 위한 서버
AMMOUR et al. PERFORMANCE EVALUATION OF SOFTWARE DEFINED–NETWOEK (SDN) CONTROLLER