KR100564768B1 - 순차룩업에 의한 패킷헤더 룩업장치 및 방법 - Google Patents

순차룩업에 의한 패킷헤더 룩업장치 및 방법 Download PDF

Info

Publication number
KR100564768B1
KR100564768B1 KR1020040087047A KR20040087047A KR100564768B1 KR 100564768 B1 KR100564768 B1 KR 100564768B1 KR 1020040087047 A KR1020040087047 A KR 1020040087047A KR 20040087047 A KR20040087047 A KR 20040087047A KR 100564768 B1 KR100564768 B1 KR 100564768B1
Authority
KR
South Korea
Prior art keywords
lookup
header
rule
combination
unit
Prior art date
Application number
KR1020040087047A
Other languages
English (en)
Other versions
KR20050066986A (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 한국전자통신연구원
Publication of KR20050066986A publication Critical patent/KR20050066986A/ko
Application granted granted Critical
Publication of KR100564768B1 publication Critical patent/KR100564768B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/62Wavelength based

Abstract

순차룩업에 의한 패킷헤더 룩업장치 및 방법이 개시된다. 헤더분석부는 네트워크를 통해 수신된 패킷으로부터 헤더를 분리하고, 분리된 헤더에 존재하는 필드중에서 값이 설정되어 있는 분석대상필드와 하나 이상의 헤더조합룰에 포함되어 있는 필드에 대한 룩업순서를 출력한다. 단위룩업부는 헤더분석부로부터 입력받은 룩업순서를 기초로 헤더분석부로부터 입력받은 각각의 분석대상필드에 대해 헤더조합룰과의 매치여부를 룩업하여 매치신호와 매치주소를 출력한다. 룰조합메모리는 분석대상필드에 해당하는 엔트리를 사용하는 헤더조합룰에 대한 식별정보를 저장하며, 단위룩업부로부터 입력된 매치주소에 대응하는 저장장소로부터 식별정보를 독출하여 출력한다. 순서조합메모리는 패킷헤더를 구성하는 필드들에 대해 정해진 룩업순서정보 및 각각의 헤더조합룰에서 참고하여야 하는 필드의 룩업결과에 대한 정보인 순서조합정보가 저장되며, 분석대상필드에 포함되어 있는 엔트리에 대해 부여된 순서정보를 입력주소로 하여 헤더조합룰에서 참고하여야 하는 순서조합정보를 독출하여 출력한다. 룰조합부는 단위룩업부로부터 입력된 매치신호와 룰조합메모리 및 순서조합메모리로부터 독출한 데이터를 기초로 매치결과를 생성한다. 본 발명에 따르면, 하드웨어의 손실은 최소화하면서도 고속의 침입 탐지가 가능하며, 다양한 새로운 공격에 대해 신속하게 탐지 룰을 업데이트 할 수 있다.

Description

순차룩업에 의한 패킷헤더 룩업장치 및 방법{Apparatus for performing packet header lookup based on sequential lookup and method of the same}
도 1은 현재 패킷전송에 이용되고 있는 대표적인 프로토콜에 정의되어 있는 헤더의 포맷들을 도시한 도면,
도 2는 본 발명에 따른 순차룩업에 의한 패킷헤더 룩업장치의 구성을 도시한 블록도,
도 3은 패킷 헤더의 필드들에 대한 룩업순서를 기재한 테이블을 도시한 도면, 그리고,
도 4는 본 발명에 따른 순차룩업에 의한 패킷헤더 룩업방법의 수행과정을 도시한 흐름도이다.
본 발명은 순차룩업에 의한 패킷헤더 룩업장치 및 방법에 관한 것으로, 보다 상세하게는, 침입탐지시스템(Intrusion Detection System : IDS)과 같은 보안시스템에 적용되는 순차룩업에 의한 패킷헤더 룩업장치 및 방법에 관한 것이다.
네트워크로 유입되는 패킷을 검사하여 침해를 검사하는 방화벽이나, IDS 같 은 장치는 패킷의 헤더와 페이로드의 조합을 검사하여 패킷의 이상 유무를 검사한다. 패킷의 페이로드를 검사하는 경우와 달리 패킷의 헤더를 검사하기 위해서는 헤더에서 정해진 위치의 각 필드를 다양한 조합으로 검사하는 방법이 요구된다. 또한, 헤더의 필드에서 1비트를 비교해야 하는 경우도 존재하므로, 각 비트에 대한 don't care 처리가 필요하다. TCP 패킷의 경우에는 헤더의 크기가 40바이트 이상이며, 이러한 헤더 데이터에서 다양한 조합을 갖는 룰을 동시에 비교하여야 한다.
한편, IDS는 패킷의 헤더로부터 얻은 조합 및 패킷의 페이로드의 문자열 정보를 이용하여 다양한 침입 탐지 룰을 만든다. 이러한 침입 탐지 룰의 경우 동일한 조합의 헤더 필드들을 가지며 페이로드에 다른 문자열들을 갖는 다수의 룰이 존재한다. 예를 들어, 침입 탐지 룰 중에서 Http 룰의 경우 TCP 프로토콜에 목적지 포트(destination port)가 80번인 헤더 조합을 가지면서 다른 컨텐츠를 갖는 수백 개의 룰이 존재한다. IDS에 존재하는 룰의 수는 수천개를 넘고 있는데, 패킷의 헤더 정보에 대한 조합은 수백개 정도여서 룰의 수에 비해서는 많은 종류가 있는 것은 아니다. 또한, 이러한 룰은 적게는 헤더의 특정 부분 1비트만을 비교하여 결과를 내놓을 수 있어야 한다.
이러한 복잡성을 해결하기 위하여 종래에는 헤더를 구성하는 룰을 하드웨어 로직의 하드 코딩을 하였으나, 하드 코딩은 새로운 형태의 룰을 추가하고자 하는 경우에 제약이 존재한다. 이와 같은 하드웨어적인 제약으로 인하여 종래에는 패킷의 헤더 필드들 중에서 제한된 필드에 대해서만 TCAM(Ternary Content Addressable Memory)을 사용하여 찾아내는 방법을 사용하였다. 그러나, TCAM을 사용하는 경우에 TCP 프로토콜 하나에 대해서만도 40바이트가 넘는 입력을 갖는 TCAM을 운용하여야 하며, 룰을 조합하는 동안 대부분의 필드는 don't care로 처리되어야 한다. 이러한 조건을 만족하고자 하는 경우 TCAM은 많은 필드가 사용되지 못하므로 매우 비효율적인 해결책이다. 또한, TCP 프로토콜의 IP Option 부분이나, TCP Option 부분을 파악하는 탐지 룰도 있어 TCAM을 사용하는 경우 이러한 다양한 조합을 만들어 내는 것이 쉽지 않다. 또한 기존의 TCAM을 사용하고자 하는 경우 전력 소모가 심하고 물리적인 공간을 많이 차지하는 단점이 있었다.
나아가, TCAM을 사용하는 방법은 룩업에 사용된 필드를 제외한 다른 필드들에 대한 많은 정보들이 무시되므로 정확한 룩업 결과를 얻을 수 없었다. 만약, 헤더의 모든 필드들을 모두 룩업에 사용하고자 하는 경우에는 TCP 프로토콜의 경우 40바이트가 넘는 필드를 동시에 룩업해야 하므로 하나의 엔트리를 구성하기 위해 지나치게 많은 하드웨어가 낭비된다. 또한, 룰을 구성하는 필드의 수가 많지 않은 것이 대부분이어서 엔트리를 구성하는 하드웨어가 낭비되는 문제를 가지고 있었다. 또한 패킷의 종류에 따라 헤더를 구성하는 필드의 의미와 헤더의 크기가 달라서 프로토콜에 따라 각각 다른 룩업 엔트리를 미리 정해 두어야 하는 단점을 가지고 있다. 또한, 새로운 형태의 룰을 추가하고자 하는 경우 한계를 지니고 있다.
본 발명이 이루고자 하는 기술적 과제는 하드웨어를 효과적으로 사용하면서 IP option 또는 TCP option을 포함하는 룰의 경우에도 완벽하게 룰 조합을 만들어 낼 수 있는 패킷헤더 룩업장치 및 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 순차룩업에 의한 패킷헤더 룩업장치는, 네트워크를 통해 수신된 패킷으로부터 헤더를 분리하고, 분리된 헤더에 존재하는 필드중에서 값이 설정되어 있는 분석대상필드와 하나 이상의 헤더조합룰에 포함되어 있는 필드에 대한 룩업순서를 출력하는 헤더분석부; 상기 헤더분석부로부터 입력받은 룩업순서를 기초로 상기 헤더분석부로부터 입력받은 각각의 분석대상필드에 대해 상기 헤더조합룰과의 매치여부를 룩업하여 매치신호와 매치주소를 출력하는 단위룩업부; 상기 분석대상필드에 해당하는 엔트리를 사용하는 헤더조합룰에 대한 식별정보가 저장되며, 상기 단위룩업부로부터 입력된 매치주소에 대응하는 저장장소로부터 상기 식별정보를 독출하여 출력하는 룰조합메모리; 패킷헤더를 구성하는 필드들에 대해 정해진 룩업순서정보 및 각각의 헤더조합룰에서 참고하여야 하는 필드의 룩업결과에 대한 정보인 순서조합정보가 저장되며, 상기 분석대상필드에 포함되어 있는 엔트리에 대해 부여된 순서정보를 입력주소로 하여 상기 헤더조합룰에서 참고하여야 하는 순서조합정보를 독출하여 출력하는 순서조합메모리; 및 상기 매치신호와 상기 룰조합메모리 및 순서조합메모리로부터 입력되는 식별정보 및 순서조합정보를 기초로 매치결과를 생성하는 룰조합부;를 구비한다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 순차룩업에 의한 패킷헤더 룩업방법은, 분석대상필드에 해당하는 엔트리를 사용하는 헤더조합룰에 대한 식별정보를 룰조합메모리에 저장하는 단계; 패킷헤더를 구성하는 필드들에 대해 정해진 룩업순서정보 및 각각의 헤더조합룰에서 참고하여야 하는 필드의 룩업결 과에 대한 정보인 순서조합정보를 순서조합메모리에 저장하는 단계; 네트워크를 통해 수신된 패킷의 헤더로부터 필드를 분리하고, 분리된 필드중에서 값이 설정되어 있는 분석대상필드 및 하나 이상의 헤더조합룰에 포함되어 있는 필드에 대한 룩업순서를 출력하는 단계; 상기 룩업순서를 기초로 상기 분석대상필드에 대해 상기 헤더조합룰과의 매치여부를 룩업하여 매치신호와 매치주소를 출력하는 단계; 상기 매치주소를 입력주소로 하여 상기 룰조합메모리로부터 상기 헤더조합룰에 대한 식별정보를 획득하고, 상기 분석대상필드에 포함되어 있는 엔트리에 대해 부여된 순서정보를 입력주소로 하여 상기 순서조합메모리로부터 헤더조합룰에서 참고하여야 하는 순서조합정보를 획득하는 단계; 및 상기 매치신호와 상기 룰조합메모리로부터 획득한 식별정보 및 상기 순서조합메모리로부터 획득한 순서조합정보를 기초로 매치결과를 생성하는 단계;를 포함한다.
이에 의해, 하드웨어의 손실은 최소화하면서도 고속의 침입 탐지가 가능하며, 다양한 새로운 공격에 대해 신속하게 탐지 룰을 업데이트 할 수 있다.
이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 순차룩업에 의한 패킷헤더 룩업장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
도 1에는 현재 패킷전송에 이용되고 있는 대표적인 프로토콜에 정의되어 있는 헤더의 포맷을 도시한 도면이다. 본 발명에 따른 순차룩업에 의한 패킷헤더 룩업장치 및 방법은 도 1에 도시되어 있는 바와 같은 헤더에 존재하는 필드들의 조합에 의해 생성된 탐지 룰을 기초로 네트워크로 유입되는 패킷을 검사하여 패킷의 이상유무를 검사한다.
도 2는 본 발명에 따른 패킷헤더 룩업장치의 상세한 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명에 따른 패킷헤더 룩업장치(200)는 헤더분석부(210), 단위룩업부(220), 룰조합메모리(230), 순서조합메모리(240), 부정메모리(250), 및 룰조합부(260)를 구비한다.
헤더분석부(210)는 네트워크를 통해 수신된 패킷으로부터 헤더를 분리하고, 헤더에 존재하는 필드중에서 세트되어 있는 필드와 룩업순서를 파악한다. 헤더분석부(210)는 파악된 필드 및 룩업순서를 단위룩업부(220)에 제공하고, 룩업순서를 순서조합메모리(240) 또는 부정메모리(250)에 제공한다.
단위룩업부(220)는 헤더분석부(220)로부터 입력된 세트되어 있는 필드와 룩업순서를 기초로 패킷 헤더를 구성하는 각각의 필드에 대해 헤더 조합 룰과의 매치여부를 룩업한다. 단위룩업부(220)는 룩업결과인 매치신호와 매치주소를 각각 룰조합부(260) 및 룰조합메모리(230)로 출력한다. 단위룩업부(220)에는 단위룩업을 위한 필드순서가 등록되어 있다. 도 3에는 패킷 헤더의 필드들에 대한 룩업순서가 기재된 룩업순서 테이블의 일 예가 도시되어 있다. IPv4 프로토콜에 대한 룩업순서 테이블은 32 이내의 필드로 구성될 수 있다. 도 3에 도시되어 있는 바와 같이 패킷 헤더를 구성하는 필드(예를 들면, Type of Service(TOS) 필드)에 16진수 0x10을 부가하여 테이블을 구성하면, 단위룩업부(220)가 룩업테이블에 기록된 다른 엔트리와 독립적으로 해당 필드에 대한 룩업을 수행할 수 있는 이점이 있다. 단위룩업부(220)에 등록되는 필드순서는 도 3에 도시되어 있는 테이블의 엔트리중에서 선택된 다. 또한, 단위룩업부(220)는 TCAM이 사용될 수 있으며, 크기가 다른 필드를 룩업하기 위하여 크기가 다른 TCAM이 하나 이상 사용될 수도 있다.
이하에서는 편의상 4개의 헤더 조합 룰과 6개의 엔트리가 기재된 룩업순서 테이블이 등록되어 있는 단위룩업부(220)가 8개의 엔트리를 갖는 경우에를 예로 들어 단위룩업부(220)의 동작을 설명한다. 그리고, 완전한 탐지 룰은 헤더에 대한 룰과 페이로드에 대한 룰이 연결된 형태를 취하여야 하나 본 발명은 헤더룩업에 관한 것이므로 페이로드의 룩업에 대한 설명은 생략한다.
헤더조합룰은 다음과 같다고 가정한다.
0 : TCP, destination port 80, TCP flag syn
1 : TCP, destination port 80, TCP ack 0
2 : TCP, IP fragment MF
3 : UDP, destination port 80
이때, 단위룩업부(220)의 각 엔트리에는 다음과 같은 6개의 내용을 필드 순서 번호와 함께 사전에 등록된다.
0 : (0x12, TCP protocol)
1 : (0x05, destination port 80)
2 : (0x15, TCP Flag syn)
3 : (0x1b, TCP ack 0)
4 : (0x02, IP fragment MF)
5 : (0x12, UDP protocol)
단위룩업부(220)는 먼저 프로토콜을 룩업하며, TCP가 룩업되면 매치신호와 함께 매치주소 0을 출력한다. 다음으로, 단위룩업부(220)는 패킷의 목적지 포트를 룩업하며, 목적지 포트 80이 룩업되면 매치신호와 매치주소 1을 출력한다. 이어서, 단위룩업부(220)는 TCP flag 등에 대해 순서에 따라 룩업을 수행하며, 해당되는 필드가 매치되는 경우 매치신호와 매치주소를 출력한다.
룰조합메모리(230)에는 단위룩업부(220)로부터 입력된 매치주소에 대응하는 저장장소에 분석대상필드에 해당하는 엔트리를 사용하는 헤더조합룰에 대한 식별정보가 저장된다. 본 발명에 따른 순차룩업에 의한 패킷헤더 룩업장치(200)가 4개의 룰만을 만들어 낸다고 가정하면, 룰조합메모리(230)는 4비트의 출력을 갖는다. 그러나, 이는 설명상의 편의를 위해 한정한 것으로 본 발명에 따른 순차룩업에 의한 패킷헤더 룩업장치(200)가 제공하는 룰의 수에는 어떠한 제약도 존재하지 않는다. 룰조합메모리(230)의 출력비트는 LSB에서부터 한 비트씩 룰의 순서와 같다고 가정한다.
이때, 단위룩업부(220)로부터 출력되는 매치주소는 룰조합메모리(230)에 저장되어 있는 데이터의 독출을 위한 입력주소로 사용된다. 예를 들어, 단위룩업부(220)의 매치주소 0에는 TCP 프로토콜에 대한 정보가 저장된다. 이때, TCP 프로토콜은 헤더조합룰 0, 1, 2번 룰에서 공통으로 사용되므로, 룰조합메모리(230)의 0번 주소의 0, 1, 2번 비트에 '1'이 기록되고, 3번째 비트에는 '0'이 기록된다. 따라서, 룰조합메모리(230)의 0번 주소에 저장되어 있는 데이터를 읽어내는 것은 곧 0, 1, 2번 룰에서 단위룩업부(220)에 의한 매치정보를 사용하는 것을 의미한다. 즉, 룰조합메모리(230)의 비트에 '0'이 기록되어 있으면, 단위록업부(220)에 의한 매치결과를 don't care로 처리한다.
그러나, 단위룩업부(220)에 의한 룩업결과가 매치가 발생하지 않는 경우에는 룰조합메모리(230)의 입력주소를 구할 수 없다. 이 경우, 각 룰에서 필요로 하는 모든 단위룩업결과를 조합하는데 문제가 발생한다. 예를 들어, 네트워크를 통해 수신된 패킷이 ICMP 패킷이면, TCP 프로토콜에 대한 매치가 발생하지 않으므로 룰조합메모리(230)의 주소를 구할 수 없다. 따라서, 0 ~ 3번까지의 룰에서 TCP를 검사해야 하는지의 여부조차 파악할 수 없게 된다. 이와 같이 룰조합메모리(230)의 출력만으로는 모든 룰에서 필요로 하는 단위룩업결과를 조합하는 것이 불가능하다. 따라서, 룰조합메모리(230)와 함께 순서조합메모리(240)를 필요로 한다.
순서조합메모리(240)에는 패킷헤더를 구성하는 필드들에 대해 정해진 룩업순서정보 및 각각의 헤더조합룰에서 참고하여야 하는 필드의 룩업결과에 대한 정보인 순서조합정보가 저장된다. 이를 위해 순서조합메모리(240)는 필드갯수와 동일한 갯수의 엔트리가 필요하다. IPv4에서는 32개 이내의 필드로 구성될 수 있으므로 순서조합메모리(240)는 32개의 엔트리를 가지면 된다. 또한, 순서조합메모리(240)의 출력 데이터 버스의 비트수는 룰의 개수와 동일하여야 하며, 각 비트의 위치는 룰의 번호를 나타낸다. 예를 들어, 프로토콜의 경우 순서조합메모리(240)의 주소 0x12에 저장되어 있으며, 모든 룰이 프로토콜에 대한 룩업 결과를 이용하므로 4 비트가 모두 '1'(active)로 기록되어 있어야 한다. 또한, TCP flag의 경우 순서조합메모리(240)의 주소 0x15에 기록되어 있으며, 룰 중에서 TCP flag를 이용하는 룰은 '0'번 룰이므로 0x15의 엔트리에서 0번 비트가 '1'(active)로 기록되고 나머지는 모두 '0'(inactive)로 기록된다.
부정메모리(negation memory)(250)는 매치가 이루어지지 않은 경우를 참으로 하는 것을 제외하면 실질적으로 순서조합메모리(250)와 동일한 기능을 수행한다. 순서조합메모리(240)와 동일한 크기의 부정메모리(250)를 이용하면 어떠한 단위룩업의 결과가 매치가 아닌 것에 대한 조건을 조합으로 넣을 수 있다. 부정메모리(250)는 TCP, destination port 80, TCP flag !syn 와 같은 룰을 조합으로 만들고자 하는 경우에 사용될 수 있다. 이 경우, 0번 룰과의 차이점은 syn 비트가 active가 아닌 경우를 룰로 가지는 것에 있다. 이 때, 부정메모리(250)의 주소 0x15에 '1'이 기록된다. 한편, 부정메모리(250)가 사용되는 경우에 단위룩업시 매치가 발생하지 않는 경우를 참으로 인식하는 회로가 추가되어야 한다.
룰조합부(260)는 단위룩업부(220)로부터 입력된 매치신호와 매치주소를 입력주소로 하여 룰조합메모리(230)로부터 독출한 헤더조합룰에 대한 식별정보 및 분석대상필드에 포함되어 있는 엔트리에 대해 부여된 순서정보를 입력주소로 하여 순서조합메모리(240)로부터 독출한 헤더조합룰에서 참고하여야 하는 필드의 룩업결과에 대한 순서조합정보를 기초로 매치결과를 생성한다. 부정메모리(250)가 구비되는 경우에 룰조합부(260)는 부정메모리(250)로부터 입력되는 부정조합데이터를 매치결과의 생성에 이용한다.
도 4는 본 발명에 따른 순서룩업에 의한 패킷헤더 룩업방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
도 4를 참조하면, 룰조합메모리(230)에는 분석대상필드에 해당하는 엔트리를 사용하는 헤더조합룰에 대한 식별정보가 저장되며(S400), 순서조합메모리(240)에는 패킷헤더를 구성하는 필드들에 대해 정해진 룩업순서정보 및 각각의 헤더조합룰에서 참고하여야 하는 필드의 룩업결과에 대한 정보인 순서조합정보가 저장된다(S410). 새로운 패킷이 도착하면 룰조합부(260)는 룰매치결과를 모두 '1'로 세트하고 대기한다(S420). 다음으로, 헤더분석부(210)는 패킷의 헤더에 존재하는 필드를 분리하고, 분리된 필드중에서 값이 설정되어 있는 분석대상필드 및 하나 이상의 헤더조합룰에 포함되어 있는 필드에 대한 룩업순서를 단위룩업부(220)로 출력한다(S430). 단위룩업부(220)는 매 클럭마다 각각의 필드값과 순서값에 대해 룩업을 수행하여 룩업결과인 매치신호와 매치주소를 각각 룰조합부(260) 및 룰조합메모리(230)로 출력한다(S440).
룰조합메모리(230)는 단위룩업부(220)로부터 입력된 매치주소에 대응하는 저장장소로부터 식별정보를 독출하여 출력하며(S450), 순서조합메모리(240)는 분석대상필드에 포함되어 있는 엔트리에 대해 부여된 순서정보를 입력주소로 하여 헤더조합룰에서 참고하여야 하는 순서조합정보를 독출하여 출력한다(S460).
룰조합부(260)는 순서조합메모리(240)로부터 입력받은 순서조합데이터를 기초로 각각의 필드에 대한 룩업결과를 룰에서 필요로 하는지의 여부를 결정하고, 룰조합메모리(230)로부터 입력받은 룰조합데이터를 기초로 각각의 룰에서 필요로 하는 룩업결과의 정확한 위치를 확인하여 매치결과를 발생한다(S470). 이때, 순서조합메모리(240)에서 룰을 합성하기 위하여 필요로 하는 필드 룩업이 active되어 있 으면서도 단위룩업에 의한 룰조합메모리(230)의 결과비트의 해당 비트가 inactive되어 있는 경우에 룰조합부(260)는 룰에 대한 매치신호가 reset이 되어 미스매치되었음을 출력한다.
이하에서는 네트워크를 통해 수신된 패킷이 TCP 프로토콜protocol을 사용하며, 목적지 포트 80, TCP flag syn이 세트되어 있는 경우를 예로 들어 본 발명에 따른 순서룩업에 의한 패킷헤더 룩업장치 및 방법을 상세하게 설명한다.
먼저, 단위룩업부(220)는 프로토콜에 대한 단위룩업에 대한 매치결과와 함께 매치주소 '0'을 발생한다. 룰조합메모리(230)는 단위룩업부(220)로부터 입력받은 매치주소 '0'을 저장주소로 사용한다. 상술한 4개의 헤더조합룰 중에서 프로토콜이 TCP로 규정되어 있는 룰은 0, 1, 2번 룰이므로, 룰조합메모리(230)의 0번 주소에는 '0111'이 기록된다. 룰조합부(260)는 룰조합메모리(230)의 0번 주소로부터 데이터를 독출하여 '0111'을 얻는다. 한편, 순서조합메모리(240)는 필드순서번호와 함께 등록되어 있는 각각의 필드에 대해 부여된 16진수의 순서정보를 저장주소로 사용한다. 룰조합부(260)는 순서조합메모리(240)의 0x12번 주소로부터 데이터를 독출하여 '0111'을 얻는다. 따라서, 룰조합부(260)는 프로토콜에 대한 단위룩업에 대한 결과는 '0111'이며, 이는 헤더조합룰 0, 1, 2번이 프로토콜까지의 룩업에 의해 매치되었음을 의미한다.
다음으로, 단위룩업부(220)는 IP fragment에 대한 룩업을 수행하며, 단위룩업의 결과는 '0'이 된다. 따라서, 룰조합메모리(230)로부터는 데이터를 읽을 수 없다. 그러나, 순서조합메모리(240)의 0x02번 주소로부터 '0100'를 읽을 수 있으며, 이로부터 IP fragment의 룩업결과를 이용하는 룰이 2번 룰임을 파악할 수 있다. 하지만, 단위룩업의 결과에 미스매치가 발생하였으므로, 룰조합부(260)는 현재까지의 룩업결과인 '0111'에서 2번 룰에 대한 미스매치를 고려하여 룩업결과를 '0011'로 업데이트한다. 따라서, IP fragment를 룩업한 후에는 0, 1번 룰에 대해서만 매치가 발생한 상태가 된다.
다음으로, 단위룩업부(220)는 목적지 포트에 대한 룩업을 수행하며, 매치신호와 함께 단위룩업의 결과로 '1'을 출력한다. 이때, 룰조합메모리(230)의 1번 주소에는 TCP 목적지 포트를 포함하고 있는 헤더조합룰인 0, 1, 3번 룰에 대한 매치결과인 '1011'이 기록된다. 룰조합부(260)는 룰조합메모리(230)의 1번 주소로부터 '1011'을 독출한다. 한편, 목적지 포트에 대한 순서조합메모리(240)의 데이터저장주소는 0x05이므로, 룰조합부(260)는 순서조합메모리(240)의 0x05번 주소로부터 데이터를 독출하여 '1011'을 얻는다. 하지만, 현재까지의 룩업결과가 '0011'이므로 룰조합부(260)는 현재까지의 룩업결과와 독출한 데이터를 논리연산하여 룩업결과를 '0011'로 업데이트한다. 따라서, 목적지 포트까지의 룩업결과는 0, 1번 룰이 매치가 되어 있는 상태이다.
다음으로, 단위룩업부(220)는 TCP flag에 대한 룩업을 진행한다. 이때, don't care를 처리 할 수 있는 TCAM 같은 장치를 이용하는 경우에, 단위룩업부(220)는 TCP flag의 syn 부분만 세트되어 있으면 매치신호와 함께 매치주소로 '2'를 출력한다. 룰조합메모리(230)의 2번 주소에는 TCP flag를 포함하고 있는 헤더조합룰인 0번 룰에 대한 매치결과인 '0001'이 기록된다. 룰조합부(260)는 룰조합메모 리(230)의 2번 주소로부터 '0001'을 독출한다. TCP flag에 대한 순서조합메모리(240)의 데이터저장주소는 0x15이므로, 룰조합부(260)는 순서조합메모리(240)의 0x15번 주소로부터 데이터를 독출하여 '0001'을 얻는다. 이어서, 룰조합부(260)는 현재까지의 매치결과를 업데이트한다. 이때, 순서조합메모리(240)로부터 독출된 데이터가 '0001'이므로 현재까지의 매치결과 '0011'중에서 0번 비트만 업데이트된다. 그러나, 1번 룰의 경우 TCP flag의 결과를 이용하지 않으므로, 순서조합메모리(240)의 출력에서 inactive되어 있는 것으로 간주한다. 따라서, 룰조합부(260)는 매치결과의 업데이트시 이를 don't care로 처리하며, 결과적으로 매치결과는 '0011'로 유지된다.
다음으로, 단위룩업부(220)는 TCP ack에 대한 룩업을 수행하며, TCP ack에 대해서는 미스매치가 발생한다. 룰조합부(260)는 순서조합메모리(240)의 TCP ack에 대한 데이터저장주소인 0x1b로부터 '0100'을 독출한다. 즉, TCP ack의 경우 헤더조합룰 1번이 사용하는 것으로 순서조합메모리(240)에는 기록되어 있으나, 단위룩업결과는 미스매치인 상태이다. 따라서, 룰조합부(260)는 현재까지의 매치결과 '0011'에서 1번 룰에 대한 미스매치를 고려하여 매치결과를 '0001'로 업데이트한다. 모든 헤더 필드에 대한 룩업을 종료한 후 룰조합부(260)는 매치결과로 '0001'을 출력하며, 이는 네트워크로부터 수신된 패킷에 대해 헤더조합룰 중에서 0번 룰이 매치되었음을 의미한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스 템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드디스크, 플로피디스크, 플래쉬 메모리, 광데이터 저장장치 등이 있으며, 또한 캐리어웨이브(예를 들면 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터로 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서는 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
본 발명에 따른 순차룩업에 의한 패킷헤더 룩업장치 및 방법에 의하면, 하드웨어를 효율적으로 사용하여 패킷의 헤더의 모든 정보를 조합할 수 있다. 또한, 본 발명은 고속의 룩업장치에 적용할 수 있으며, 복잡하면서도 다양한 조합이 존재하는 패킷헤더 룩업장치에 적용되는 경우에 헤더의 모든 정보로부터 룰을 조합할 수 있다. 또한, 본 발명은 운용중에 새로운 룰을 추가 또는 삭제할 수 있으며, 효율적인 하드웨어에 대한 이용방안을 제공한다. 또한, IDS와 같은 보안시스템에서 필요로 하는 복잡한 룰에 대한 룩업방법을 수행하는 고속 하드웨어를 제공할 수 있으며, 하드웨어의 구현시 회로의 수를 감소시킬 수 있어 칩으로 구현하기 용이하다.

Claims (11)

  1. 네트워크를 통해 수신된 패킷으로부터 헤더를 분리하고, 분리된 헤더에 존재하는 필드중에서 값이 설정되어 있는 분석대상필드와 하나 이상의 헤더조합룰에 포함되어 있는 필드에 대한 룩업순서를 출력하는 헤더분석부;
    상기 헤더분석부로부터 입력받은 룩업순서를 기초로 상기 헤더분석부로부터 입력받은 각각의 분석대상필드에 대해 상기 헤더조합룰과의 매치여부를 룩업하여 매치신호와 매치주소를 출력하는 단위룩업부;
    상기 분석대상필드에 해당하는 엔트리를 사용하는 헤더조합룰에 대한 식별정보가 저장되며, 상기 단위룩업부로부터 입력된 매치주소에 대응하는 저장장소로부터 상기 식별정보를 독출하여 출력하는 룰조합메모리;
    패킷헤더를 구성하는 필드들에 대해 정해진 룩업순서정보 및 각각의 헤더조합룰에서 참고하여야 하는 필드의 룩업결과에 대한 정보인 순서조합정보가 저장되며, 상기 분석대상필드에 포함되어 있는 엔트리에 대해 부여된 순서정보를 입력주소로 하여 상기 헤더조합룰에서 참고하여야 하는 순서조합정보를 독출하여 출력하는 순서조합메모리; 및
    상기 매치신호와 상기 룰조합메모리 및 순서조합메모리로부터 입력되는 식별정보 및 순서조합정보를 기초로 매치결과를 생성하는 룰조합부;를 포함하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업장치.
  2. 제 1항에 있어서,
    패킷헤더를 구성하는 필드들에 대해 정해진 룩업순서정보 및 상기 룩업순서정보에 대응하고 미스매치가 발생한 경우에 참으로 설정되는 룩업결과가 저장되는 부정메모리; 및
    상기 룩업결과가 미스매치인 경우를 참으로 인식하는 논리회로;를 더 포함하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업장치.
  3. 제 1항에 있어서,
    상기 단위룩업부는 하나 이상의 TCAM(Ternary Contents Addressable Memory)로 구성되는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업장치.
  4. 제 1항에 있어서,
    상기 룰조합부는 상기 네트워크를 통해 패킷이 수신되면 상기 매치결과에 대한 값을 초기화하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업장치.
  5. 제 1항에 있어서,
    상기 룰조합부는 상기 룩업순서 및 상기 헤더조합룰을 기초로 상기 분석대상필드 각각에 대해 수행된 룩업결과를 순차적으로 논리연산하여 상기 룩업결과의 값을 갱신하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업장치.
  6. 제 1항에 있어서,
    상기 룰조합부는 상기 룰조합메모리로부터 독출된 룩업결과를 구성하는 비트중에서 매치되지 않았음을 나타내는 데이터가 기록되어 있는 비트에 대응하는 상기 순서조합메모리의 비트에 매치되었음을 나타내는 데이터가 기록되어 있는 경우에 해당 비트에 대한 매치결과로 미스매치에 해당하는 값을 출력하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업장치.
  7. 분석대상필드에 해당하는 엔트리를 사용하는 헤더조합룰에 대한 식별정보를 룰조합메모리에 저장하는 단계;
    패킷헤더를 구성하는 필드들에 대해 정해진 룩업순서정보 및 각각의 헤더조합룰에서 참고하여야 하는 필드의 룩업결과에 대한 정보인 순서조합정보를 순서조합메모리에 저장하는 단계;
    네트워크를 통해 수신된 패킷의 헤더로부터 필드를 분리하고, 분리된 필드중에서 값이 설정되어 있는 분석대상필드 및 하나 이상의 헤더조합룰에 포함되어 있는 필드에 대한 룩업순서를 출력하는 단계;
    상기 룩업순서를 기초로 상기 분석대상필드에 대해 상기 헤더조합룰과의 매치여부를 룩업하여 매치신호와 매치주소를 출력하는 단계;
    상기 매치주소를 입력주소로 하여 상기 룰조합메모리로부터 상기 헤더조합룰에 대한 식별정보를 획득하고, 상기 분석대상필드에 포함되어 있는 엔트리에 대해 부여된 순서정보를 입력주소로 하여 상기 순서조합메모리로부터 헤더조합룰에서 참 고하여야 하는 순서조합정보를 획득하는 단계; 및
    상기 매치신호와 상기 룰조합메모리로부터 획득한 식별정보 및 상기 순서조합메모리로부터 획득한 순서조합정보를 기초로 매치결과를 생성하는 단계;를 포함하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업방법.
  8. 제 7항에 있어서,
    상기 패킷헤더를 구성하는 필드들에 대해 정해진 룩업순서정보 및 상기 룩업순서정보에 대응하고 미스매치가 발생한 경우에 참으로 설정되는 룩업결과를 부정메모리에 저장하는 단계; 및
    상기 룩업결과가 미스매치인 경우를 참으로 설정하는 단계;를 더 포함하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업방법.
  9. 제 7항에 있어서,
    상기 네트워크를 통해 패킷이 수신되면 상기 매치결과에 대한 값을 초기화하는 단계를 더 포함하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업방법.
  10. 제 7항에 있어서,
    상기 매치결과 생성단계는 상기 룩업순서 및 상기 헤더조합룰을 기초로 상기 분석대상필드 각각에 대해 수행된 룩업결과를 순차적으로 논리연산하여 상기 룩업결과의 값을 갱신하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업방법.
  11. 제 7항에 있어서,
    상기 매치결과 생성단계는 상기 룰조합메모리로부터 독출된 룩업결과를 구성하는 비트중에서 매치되지 않았음을 나타내는 데이터가 기록되어 있는 비트에 대응하는 상기 순서조합메모리의 비트에 매치되었음을 나타내는 데이터가 기록되어 있는 경우에 해당 비트에 대한 매치결과로 미스매치에 해당하는 값을 출력하는 것을 특징으로 하는 순차룩업에 의한 패킷헤더 룩업방법.
KR1020040087047A 2003-12-26 2004-10-29 순차룩업에 의한 패킷헤더 룩업장치 및 방법 KR100564768B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20030097151 2003-12-26
KR1020030097151 2003-12-26

Publications (2)

Publication Number Publication Date
KR20050066986A KR20050066986A (ko) 2005-06-30
KR100564768B1 true KR100564768B1 (ko) 2006-03-27

Family

ID=34698503

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040087047A KR100564768B1 (ko) 2003-12-26 2004-10-29 순차룩업에 의한 패킷헤더 룩업장치 및 방법

Country Status (2)

Country Link
US (1) US7433357B2 (ko)
KR (1) KR100564768B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100776115B1 (ko) * 2006-03-22 2007-11-15 기장근 부정 및 시작 플래그를 가지는 터너리 컨텐트 어드레스어블 메모리
IL220238A (en) 2007-03-12 2014-03-31 Marvell Israel Misl Ltd A method and system for determining the location of fields in information units
KR100862903B1 (ko) * 2007-05-15 2008-10-13 주식회사 나우콤 프로토콜 무결성 고속 검출 장치 및 검출 방법
KR101280910B1 (ko) * 2011-12-15 2013-07-02 한국전자통신연구원 고속 패킷 처리를 위한 네트워크 프로세서 기반 2단계 침입탐지장치 및 방법
US9276851B1 (en) 2011-12-20 2016-03-01 Marvell Israel (M.I.S.L.) Ltd. Parser and modifier for processing network packets
US9154415B1 (en) 2012-09-18 2015-10-06 Cisco Technology, Inc. Parallel processing for low latency network address translation
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
US9313102B2 (en) 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
US10284499B2 (en) 2013-08-22 2019-05-07 Arris Enterprises Llc Dedicated control path architecture for systems of devices
US9185049B2 (en) 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
US9577932B2 (en) * 2014-02-12 2017-02-21 Brocade Communications Systems, Inc. Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems
US9692695B2 (en) 2014-03-27 2017-06-27 Brocade Communications Systems, Inc. Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US9692652B2 (en) 2014-04-03 2017-06-27 Brocade Communications Systems, Inc. Framework for reliably communicating port information in a system of devices
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes
WO2018178906A1 (en) 2017-03-28 2018-10-04 Marvell World Trade Ltd. Flexible processor of a port extender device
US11343358B2 (en) 2019-01-29 2022-05-24 Marvell Israel (M.I.S.L) Ltd. Flexible header alteration in network devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1180882A2 (en) 2000-08-17 2002-02-20 Nippon Telegraph and Telephone Corporation Packet classification search device and method
KR20020081569A (ko) * 2002-09-04 2002-10-28 (주)시큐어베이스 Ternary CAM(Content Addressable Memory)을 이용하는네트웍 장치에서의 CAM내 동일한 엔트리 크기를 가지는다수의 테이블 관리 방법
KR20030077292A (ko) * 2002-03-26 2003-10-01 한정보통신 주식회사 주소 분할에 의한 다중필드 분류시스템
US6658002B1 (en) 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6600744B1 (en) * 1999-03-23 2003-07-29 Alcatel Canada Inc. Method and apparatus for packet classification in a data communication system
US6970462B1 (en) * 2000-04-24 2005-11-29 Cisco Technology, Inc. Method for high speed packet classification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658002B1 (en) 1998-06-30 2003-12-02 Cisco Technology, Inc. Logical operation unit for packet processing
EP1180882A2 (en) 2000-08-17 2002-02-20 Nippon Telegraph and Telephone Corporation Packet classification search device and method
KR20030077292A (ko) * 2002-03-26 2003-10-01 한정보통신 주식회사 주소 분할에 의한 다중필드 분류시스템
KR20020081569A (ko) * 2002-09-04 2002-10-28 (주)시큐어베이스 Ternary CAM(Content Addressable Memory)을 이용하는네트웍 장치에서의 CAM내 동일한 엔트리 크기를 가지는다수의 테이블 관리 방법

Also Published As

Publication number Publication date
US7433357B2 (en) 2008-10-07
KR20050066986A (ko) 2005-06-30
US20050141513A1 (en) 2005-06-30

Similar Documents

Publication Publication Date Title
KR100564768B1 (ko) 순차룩업에 의한 패킷헤더 룩업장치 및 방법
US20220279055A1 (en) Configuring a switch for extracting packet header fields
US11425038B2 (en) Packet header field extraction
US10764181B2 (en) Pipelined evaluations for algorithmic forwarding route lookup
US9398033B2 (en) Regular expression processing automaton
US9762544B2 (en) Reverse NFA generation and processing
US10805437B2 (en) Compiler and hardware interactions to remove action dependencies in the data plane of a network forwarding element
US10516626B1 (en) Generating configuration data and API for programming a forwarding element
US9563399B2 (en) Generating a non-deterministic finite automata (NFA) graph for regular expression patterns with advanced features
US7457292B2 (en) Packet identification device and packet identification method
US8599859B2 (en) Iterative parsing and classification
US8543528B2 (en) Exploitation of transition rule sharing based on short state tags to improve the storage efficiency
US20190236103A1 (en) Algorithmic tcam based ternary lookup
US9159420B1 (en) Method and apparatus for content addressable memory parallel lookup
US20070058633A1 (en) Configurable network connection address forming hardware
CN103825824A (zh) 一种报文处理方法及装置
KR100456671B1 (ko) 네트워크 라우터의 고속 패킷 전달을 위한 병렬 룩업 엔진및 그 방법
US9135997B2 (en) System and method for filtering addresses
CN116208374B (zh) 工业协议的识别方法、装置、设备及存储介质
WO2022097725A1 (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
JP2005303417A (ja) パケットクラシファイア装置
CN115633103A (zh) 数据包的混合解析方法及系统

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: 20130304

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee