KR100864889B1 - Tcp 상태 기반 패킷 필터 장치 및 그 방법 - Google Patents

Tcp 상태 기반 패킷 필터 장치 및 그 방법 Download PDF

Info

Publication number
KR100864889B1
KR100864889B1 KR1020070024525A KR20070024525A KR100864889B1 KR 100864889 B1 KR100864889 B1 KR 100864889B1 KR 1020070024525 A KR1020070024525 A KR 1020070024525A KR 20070024525 A KR20070024525 A KR 20070024525A KR 100864889 B1 KR100864889 B1 KR 100864889B1
Authority
KR
South Korea
Prior art keywords
packet
state
session
tcp
previous
Prior art date
Application number
KR1020070024525A
Other languages
English (en)
Other versions
KR20080083827A (ko
Inventor
이승복
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070024525A priority Critical patent/KR100864889B1/ko
Publication of KR20080083827A publication Critical patent/KR20080083827A/ko
Application granted granted Critical
Publication of KR100864889B1 publication Critical patent/KR100864889B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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

Abstract

본 발명은 TCP 상태 기반 패킷 필터 장치 및 그 방법에 관한 것으로, 입력 패킷으로부터 패킷필터처리를 위한 헤더필드를 추출하는 헤더 분리부와, 상기 헤더 분리부에서 추출된 헤더필드를 일시 저장하고, 세션테이블 검색을 위한 세션테이블 검색키를 생성하는 헤더필드큐/패킷처리부와, 상기 세션테이블 관리를 위한 세션테이블 제어키를 생성하는 테이블 관리부와, 상기 세션테이블 검색키와 세션테이블 제어키를 적절히 배분하여 파이프라인 구조의 세션테이블/상태테이블로 검색키 또는 제어키를 출력하는 스케쥴러와, 상기 세션테이블/상태테이블에서 출력되는 세션테이블/상태테이블 매칭에 의한 이전 세션의 상태 값과 상기 헤더필드큐/패킷처리부로부터 현재 수신한 패킷의 상태 값을 비교 검사하여 패킷의 통과 여부를 결정하는 상태 검사부와, 상기 상태 검사부로부터 테이블 관리를 위한 작업 데이터를 순차적으로 저장하는 작업 큐를 포함하는 것을 특징으로 한다.

Description

TCP 상태 기반 패킷 필터 장치 및 그 방법{DEVICE AND METHOD FOR TCP STATEFUL PACKET FILTER}
도 1은 종래의 TCAM 또는 해쉬 함수를 이용한 상태기반 패킷필터의 주요 구성을 나타내는 도면.
도 2는 본 발명에 따른 하드웨어 기반의 고속 상태기반 패킷필터의 구성을 나타내는 도면.
도 3은 도 2의 상태 검사기의 하드웨어 로직 알고리즘을 나타내는 도면.
도 4는 도 2의 테이블 관리기의 하드웨어 로직 알고리즘을 나타내는 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
111 : 입력버퍼 112 : 패킷 메모리
113 : 헤더 분리기 114 : 헤더필드큐/패킷처리기
115 : 테이블 관리기 116 : 스케쥴러
117 : TCAM-SRAM 118 : 상태 검사기
119 : 포워딩부 120 : 작업 큐
121 : 출력버퍼
본 발명은 TCP 상태 기반 패킷 필터 장치 및 그 방법에 관한 것으로, 특히 엔터프라이즈(enterprise) 네트워크에 존재하는 라우터 방화벽 시스템이 신뢰받지 못하는 TCP 연결을 원천적으로 봉쇄하는 TCP 상태 기반 패킷 필터 장치 및 그 방법에 관한 것이다.
도 1은 종래의 TCAM 또는 해쉬 함수를 이용한 상태기반 패킷필터의 주요 구성을 나타내는 도면이다.
도 1에 도시된 바와 같이, 종래의 엔터프라이즈 네트워크 상의 라우터 방화벽에서는 대부분 고속의 포워딩 같은 네트워킹 처리를 위하여 전용의 네트워크 프로세서를 사용하며, 저속의 프로토콜이나 제어 데이터는 네트워크 프로세서의 내부에 내장된 일반 CPU를 사용하거나, Off-Chip을 사용한다.
종래의 라우터 방화벽 시스템에 TCP 상태기반 패킷 필터기를 구현하기 위해서는 네트워크 프로세서(10) 내부의 로컬 CPU(11) 또는 내부의 병렬처리 프로세싱 구조를 가지며, 고속의 네트워킹 데이터를 담당하는 전용의 마이크로 엔진(Mciro-Engine)(12)이 TCAM(20) 및 SRAM(30)과 연동하여 구성하는 방법과, 마이크로 엔진(12)이 내부에 내장된 하드웨어 가속지원의 해쉬 함수기(Hash Function)(13)와 외부의 SRAM(40)을 이용하는 방법이 있다.
여기서 TCAM을 사용하는 이유는 TCAM이 어떤 소프트웨어 알고리즘보다 고속의 패킷 분류가 가능하며, 하드웨어적 검색 알고리즘을 사용함으로서 일정한 룩업 속도를 제공하기 때문이다.
즉, 상태기반의 구조를 가지는 패킷 필터기에서는 이전의 세션과 이 세션에 대한 상태 정보를 가져야 하므로 세션 테이블과 상태 테이블, 2 개를 가지며 프로세서는 항상 이들을 관리해야 한다.
TCP 상태기반 패킷 필터에서 1 개의 TCP 패킷이 들어올 경우, 3-Way 핸드 쉐이킹(handshaking), 또는 3-Way, 4-Way Close 패킷에 따라 세션 테이블과 상태 테이블에 세션생성, 세션 업데이트(Update), 세션 삭제, 세션 검색 등을 수행하게 된다.
현재의 엔터프라이즈 네트워크에서의 라인속도는 점점 증가하고 있어 수 Gbps급으로 증가하고 있는 상황에서 종래의 일반 프로세서를 기반으로 하는 상태기반 패킷필터기능은 방화벽 시스템의 전체 Throughput을 떨어뜨리고 있다. 만약 수 Gbps급의 속도로 패킷이 입력되고, 또 연속적으로 TCP 세션 연결을 요구하는 패킷이 동시에 많이 입력된다면 프로세서를 이용한 처리능력은 한계가 있다.
또한, 3-Way 패킷에 대한 테이블 관리에 있어서, 프로세서는 1 개의 패킷이 입력되더라도 테이블 엑세스 횟수는 1 회가 아닌 수 회의 엑세스를 가져야만 된다.
이와 같이, 3-Way TCP 핸드쉐이킹 패킷이 연속적으로 입력될 경우를 TCAM을 사용할 경우와 해쉬함수를 사용할 경우의 2 가지로 나누어 보면, 먼저 TCAM을 사용 할 경우 프로세서는 여러 번의 TCAM 엑세스를 통해 테이블을 엑세스하기 위해 아주 많은 클럭 사이클을 소모하게 되며, 해쉬함수와 외부의 SRAM을 이용한 고속의 마이크로 엔진을 통해서도 세션의 수가 커지면 해쉬 함수에서의 충돌(collision) 가능성이 증가되며 이는 곧 연결 리스트(linked list)의 증가로 이어지게 되고 전체 시스템의 throughput은 감소하게 된다.
즉, 상기와 같은 종래기술의 기법으로는 엔터프라이즈 네트워크에서의 라인속도를 만족시키는 방화벽 시스템에서의 상태기반 패킷 필터기를 구현하기는 어렵다. 상술한 대로 상태기반의 처리 특성상 3-Way 핸드쉐이킹, 또는 3-Way, 4-Way Close 패킷을 처리하기 위한 세션 테이블과 상태 테이블을 관리하는데 많은 클럭 소모가 생기기 때문에 종래의 기법으로는 한계가 존재한다.
따라서, 본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로서, 엔터프라이즈 네트워크상에 존재하는 방화벽 시스템인 라우터 방화벽이나, NIPS(Network Intrusion Prevention System) 또는 NIDS(Network Intrusion Detection System)에서 사용하는 상태기반의 패킷 필터기능을 종래의 방법보다 훨씬 더 뛰어난 처리성능을 가지며, 프로세서의 도움 없이 독립적으로 TCAM을 제어하여 효율적인 테이블을 관리하고, 또 수 Gbps의 라인속도를 지원하는 테이블 검색을 지원할 수 있도록 하고, 프로세서 독립적 테이블 관리 메커니즘을 적용하여 시스템의 부하부담을 줄임으로써 전체 시스템의 성능도 향상시킬 수 있도록 한 TCP 상태 기반 패킷 필터 장치 및 그 방법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 TCP 상태 기반 패킷 필터 장치의 일 측면에 따르면, 입력 패킷으로부터 패킷필터처리를 위한 헤더필드를 추출하는 헤더 분리부와, 상기 헤더 분리부에서 추출된 헤더필드를 일시 저장하고, 세션테이블 검색을 위한 세션테이블 검색키를 생성하는 헤더필드큐/패킷처리부와, 상기 세션테이블 관리를 위한 세션테이블 제어키를 생성하는 테이블 관리부와, 상기 세션테이블 검색키와 세션테이블 제어키를 적절히 배분하여 파이프라인 구조의 세션테이블/상태테이블로 검색키 또는 제어키를 출력하는 스케쥴러와, 상기 세션테이블/상태테이블에서 출력되는 세션테이블/상태테이블 매칭에 의한 이전 세션의 상태 값과 상기 헤더필드큐/패킷처리부로부터 현재 수신한 패킷의 상태 값을 비교 검사하여 패킷의 통과 여부를 결정하는 상태 검사부와, 상기 상태 검사부로부터 테이블 관리를 위한 작업 데이터를 순차적으로 저장하는 작업 큐를 포함하는 것을 특징으로 한다.
상기 헤더필드큐/패킷처리부는 상기 상태 검사부로부터 출력 인에이블 신호를 수신하는 경우 상기 세션테이블로 검색키를 연속적으로 출력시키게 된다.
상기 상태 검사부는 이전 세션이 존재하지 않는 경우 SYN 패킷인지를 검사하여 SYN 패킷일 경우 테이블 등록을 위한 JOB_TYPE을 생성하여 상기 작업큐에 저장하고 패킷통과신호를 출력하게 된다.
상기 상태 검사부는 이전 세션이 존재하는 경우 상태 테이블 값이 저장된 상태테이블로부터 이전의 상태 값을 읽어 들여 현재의 상태 플래그 값과 이전의 상태 플래그 값을 비교하여 현재의 패킷이 3-WAY TCP 연결상태 패킷이면 그 단계에 상응하는 Sequence 번호와 Acknowledge 번호를 검사하여 패킷의 정상유무를 검사하게 된다.
상기 상태 검사부는 상기 현재의 상태 플래그 값이 일반 데이터 단계의 패킷이고 이전의 상태 플래그 값이 연결 설정 완료된 패킷인 경우, 패킷통과신호를 출력하게 된다.
상기 상태 검사부는 상기 현재의 상태 플래그 값이 ACK 이고 이전의 상태 플래그 값이 SYN|ACK 인 경우 상기 상태테이블에 설정완료 표시 비트를 설정하고, 이외의 TCP 3-WAY 패킷은 모두 현재의 플래그 값을 설정하여 상기 작업 큐에 저장하게 된다.
상기 테이블 관리부는 상기 작업 큐에서 읽어 들인 값에 포함된 JOB_TYPE 정보를 이용하여 세션테이블의 액세스 횟수와 해당 세션테이블 명령어를 파악하여 이에 상응하는 순차적 알고리즘을 수행하며, 상기 작업 큐에서 읽은 JOB_TYPE 정보는 IPv4 패킷인지 IPv6 패킷인지에 따라 구분되어진다.
상기 테이블 관리부는 방화벽 시스템으로 TCP 양단간 통신으로 인해 양방향 입력인 현재 세션과 이전 세션이 동일 세션이고 서로 주고 받는 방식인 양방향 동일세션의 매칭을 위하여 상태테이블의 검색키와 제어키를 IP 출발지 주소와 목적지 주소간, TCP의 출발 포트와 목적지 포트간의 스와핑(Swapping)을 수행하게 된다.
한편, 상기한 목적을 달성하기 위한 본 발명에 따른 TCP 상태 기반 패킷 필터 방법의 일 측면에 따르면, 입력 패킷으로부터 패킷필터처리를 위한 헤더필드를 추출하는 과정과, 상기 추출된 헤더필드를 일시 저장하고, 세션테이블 검색을 위한 세션테이블 검색키 및 세션테이블 관리를 위한 세션테이블 제어키를 생성하는 과정과, 상기 세션테이블 검색키와 세션테이블 제어키를 적절히 배분하여 파이프라인 구조의 세션테이블/상태테이블로 검색키 또는 제어키를 출력하는 과정과, 상기 세션테이블/상태테이블에서 출력되는 세션테이블-상태테이블 매칭에 의한 이전 세션의 상태 값과 현재 수신한 패킷의 상태 값을 비교 검사하여 패킷의 통과 여부를 결정하는 과정을 포함하는 것을 특징으로 한다.
상기 이전 세션이 존재하지 않는 경우 SYN 패킷인지를 검사하여 SYN 패킷일 경우 테이블 등록을 위한 JOB_TYPE을 생성하여 저장하고 패킷통과신호를 출력하는 과정을 더 포함한다.
상기 이전 세션이 존재하는 경우, 상태 테이블 값이 저장된 상태테이블로부터 이전의 상태 값을 읽어 들여 현재의 상태 플래그 값과 이전의 상태 플래그 값을 비교하여 현재의 패킷이 3-WAY TCP 연결상태 패킷이면 그 단계에 상응하는 Sequence 번호와 Acknowledge 번호를 검사하여 패킷의 정상유무를 검사하는 과정을 더 포함한다.
상기 현재의 상태 플래그 값이 일반 데이터 단계의 패킷이고 이전의 상태 플래그 값이 연결 설정 완료된 패킷인 경우 패킷통과신호를 출력하는 과정을 더 포함 한다.
상기 현재의 상태 플래그 값이 ACK 이고 이전의 상태 플래그 값이 SYN|ACK 인 경우 상기 상태테이블에 설정완료 표시 비트를 설정하고, 이외의 TCP 3-WAY 패킷은 모두 현재의 플래그 값을 설정하여 저장하는 과정을 더 포함한다.
테이블 관리를 위한 JOB_TYPE 정보를 이용하여 세션테이블의 액세스 횟수와 세션테이블 명령어를 파악하여 이에 상응하는 순차적 알고리즘을 수행하는 과정을 더 포함한다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 2는 본 발명에 따른 하드웨어 기반의 고속 상태기반 패킷필터의 구성을 나타내는 도면이다.
도 2에 도시된 바와 같이, 본 발명의 구성은 하드웨어적 구성으로는 FPGA 안에 구현되는 것으로서, 입력버퍼(111)와, 패킷 메모리(112)와, 헤더 분리기(113)와, 헤더필드큐/패킷처리기(114)와, 테이블 관리기(115)와, 스케쥴러(116)와, TCAM-SRAM(117)와, 상태 검사기(118)와, 포워딩부(119)와, 작업 큐(120)와, 출력버퍼(121)를 포함하여 구성된다.
입력버퍼(111)는 헤더와 페이로드를 포함한 패킷을 최초로 수신한다.
패킷 메모리(112)는 입력버퍼(111)로부터 입력되어 패킷의 통과 허용 여부의 신호가 올 때까지 대기한다.
헤더 분리기(113)는 입력버퍼(111)로부터 패킷필터 처리를 위한 헤더를 분리한다.
헤더필드큐/패킷처리기(114)는 상기 헤더 분리기(113)에서 추출된 헤더를 일시 저장하며 분리된 일부 헤더 필드들을 이용하여 세션테이블을 검색하는데 사용된다.
테이블 관리기(115)는 테이블 관리를 위한 제어키를 스케쥴러(116)에게 보내고 1개의 테이블 처리 데이터를 끝낼 때마다 상기 작업 큐(120)로부터 다음의 세션테이블 처리 데이터를 가져와서 계속적으로 처리하게 된다.
스케쥴러(116)는 헤더필드큐/패킷처리기(114)로부터 만들어진 검색 키(lookup key)와 테이블 관리기(115)에서 입력되는 세션테이블 제어 키(control key)를 적절히 배분하여 파이프라인 구조의 TCAM-SRAM(117)으로 검색 키 또는 제어 키를 출력시키게 된다.
TCAM-SRAM(117)는 세션테이블-상태테이블 매칭에 의한 이전세션의 상태 값을 출력한다.
상태 검사기(118)는 TCAM-SRAM(117)에서 출력되는 세션테이블-상태테이블 매 칭에 의한 이전세션의 상태 값과 상술한 헤더필드큐/패킷처리기(114)로부터 현재 수신한 패킷의 상태 값을 비교 및 검사하여 패킷의 통과 여부를 포워딩부(119)로 알리거나 3-Way 패킷일 경우 별도의 테이블 관리를 위해 작업 큐(120)에 저장시키는 역할을 담당한다.
포워딩부(119)는 상태 검사기(118)로부터 이전에 수신한 패킷의 통과 허용 여부 신호를 수신하고 이를 이용하여 패킷 메모리(112)로부터 패킷을 출력버퍼(121)로 보내거나 폐기시키게 된다.
즉, 포워딩부(119)는 상태 검사기(118)로부터 패킷 ID와 그 패킷의 통과 여부 신호(Pass/Drop)를 입력받아 실제 패킷 데이터가 저장된 패킷 메모리(112)에서 패킷을 출력버퍼(121)로 보낼 것인지 폐기할 것인지를 제어하게 된다.
작업 큐(120)는 상태 검사기(118)로부터 테이블 관리를 위한 작업 데이터를 순차적으로 저장한다.
이하, 하기에서는 상기와 같은 구성을 갖는 본 발명의 고속 상태기반 패킷필터의 동작에 대해 보다 구체적으로 살펴보기로 한다.
먼저, 패킷이 입력버퍼(111)로 입력되면 먼저 패킷 메모리(112)에 포워딩부(119)로부터 패킷의 통과 여부신호를 수신하기까지 대기하게 된다.
그리고 신뢰받지 못한 TCP 연결 탐지를 위한 상태기반 패킷 필터링을 수행하기 위해 헤더분리기(113)에서 TCP 패킷만을 패킷으로부터 헤더필드들을 추출하고, 나머지 패킷들은 예외 패킷 처리하여 포워딩부(119)로 보내 패킷이 필터링되지 않고 바로 통과되도록 한다.
헤더분리기(113)로부터 분리된 헤더필드들은 헤더필드큐/패킷처리기(114)의 헤더필드 큐에 일시 저장되며, 헤더필드 큐에서는 5개의 헤더필드(출발지 IP 어드레스, 목적지 IP 어드레스, 출발지 TCP 포트, 목적지 TCP 포트, 프로토콜 필드)를 조합하여 검색 키를 생성해서 스케쥴러(116)에게 보내고, 다시 상태 검사기(118)로 이전세션과의 상태 비교를 위해 필요한 현재의 플래그 비트와 또 나중에 세션테이블 관리를 위해 필요한 헤더필드 큐 등의 5개의 헤더필드와, 패킷 ID, Sequence 번호, Acknowledge 번호, TCP 플래그 필드 등을 함께 보낸다.
스케줄러(116)에서는 헤더필드 큐로부터 수신한 세션테이블 검색 키와 테이블 관리기(115)로부터 수신한 세션테이블 제어 키를 수신하여 적절한 배분의 스케줄링을 통해 세션테이블인 TCAM을 룩업하게 되며, TCAM은 검색 결과로서 해당 세션에 일대일 대응되는 상태 테이블의 주소를 가리키는 인덱스(Index)를 출력하게 되고, 상태 테이블인 SRAM은 이전 세션 값의 이전 히스토리(history)의 상태 값을 출력하게 된다.
상태 검사기(118)는 상기 현재의 세션에 대한 이전의 상태 값과 전술한 헤더필드 큐로부터 수신한 현재 세션의 상태 값을 비교 분석한다.
하기에서는 첨부된 도 3을 참조하여 상태 검사기의 하드웨어 알고리즘에 대해 보다 구체적으로 살펴보기로 한다.
도 3은 도 2의 상태 검사기의 하드웨어 로직 알고리즘을 나타내는 도면이다.
도 3에 도시된 바와 같이, 우선 헤드 필드 큐가 비었는지를 검사하여 큐 안 에 헤더 필드 값이 들어 있으면 검색 키를 이용하여 TCAM 테이블로 세션 룩업을 수행(S10)하게 된다.
이어서, TCAM 테이블 룩업 후 검색 키가 매칭되는지를 확인(S20)하여 검색 키가 매칭되지 않는 경우 즉, 이전 세션이 존재하지 않는 경우에는 현재 패킷이 SYN 패킷인지를 체크(S30)한다.
체크 결과, 현재 패킷이 SYN 패킷이고 이전이 메모리 초기값인 경우에는 Sequence 번호와 Acknowledge 번호를 검사(S40)하여 패킷의 정상유무를 검사하고, 테이블 등록을 위한 JOB_TYPE을 생성(S50)하여 JOB_FIFO에 저장(S60)한 후 곧바로 포워딩으로 패킷의 통과 신호(Pass)를 주게 된다.
그러나, 만약 현재 패킷이 SYN 패킷인지를 체크하는 과정에서 현재 패킷이 SYN 패킷이고 이전이 메모리 초기값이 아닌 경우에는 정지 신호(Drop)를 주게 된다.
한편, 상기 검색 키를 매칭하는 S20 과정에서, 검색 키가 매칭되는 경우 즉, 검색 키를 통해 이전의 세션이 존재하는 경우 상태 검사기는 상태 테이블 값을 저장한 SRAM으로부터 이전의 상태 값을 읽어 들여(S70) 현재의 상태 플래그 값과 이전의 상태 플래그 값을 비교하게 된다.
비교 결과, 현재의 상태 플래그 값이 일반 데이터 단계의 패킷이고 이전의 상태 플래그 값이 연결 설정 완료된 패킷인지를 확인(S80)하여 현재의 상태 플래그 값이 일반 데이터 단계의 패킷이고 이전의 상태 플래그 값이 연결 설정 완료된 패킷이면 바로 패킷통과 신호(Pass)를 포워딩으로 내보내게 되며, 이 검사에서 확인 되지 않는 패킷은 버려지게 된다.
그러나, 현재의 패킷이 TCP 연결설정 패킷인지 아닌지를 확인하여 만약 3-WAY TCP 연결상태 패킷이면 S90 내지 S120 각 단계에 상응하는 Sequence 번호와 Acknowledge 번호를 검사(S130)하여 패킷의 정상유무를 검사하며, 테이블 등록을 위한 JOB_TYPE을 생성(S140)하여 JOB_FIFO에 저장(S150)하게 된다.
특히, 상태 검사기는 TCP 3-WAY 패킷이면서 현재의 TCP 플래그가 ACK이고 이전 세션의 플래그가 SYN|ACK 인 경우에는 TCP 3-WAY의 마지막 단계이므로 상태 테이블에 "설정완료" 라는 표시의 비트를 셋업하고, 이외의 TCP 3-WAY 패킷은 모두 현재의 플래그 값을 셋업시켜 작업 큐에 저장하며, 향후 테이블 관리기에 의해 이들의 업데이트 될 상태 값들은 모두 다시 세션 테이블인 TCAM 룩업을 통하여 상태 테이블인 SRAM에 현재의 상태 값으로 업데이트 된다.
도 4는 도 2의 테이블 관리기의 하드웨어 로직 알고리즘을 나타내는 도면이다.
도 4에 도시된 바와 같이, 먼저 작업 큐가 비어진 상태인지를 확인(S10)하여 만약 작업 큐가 비어진 상태가 아닌 경우에는 작업 큐를 리드(S20)하여 계속해서 세션테이블과 상태테이블을 관리하기 위하여 TCAM과 SRAM을 엑세스하게 된다.
즉, 테이블 관리기가 작업 큐에서 읽어 들인 값에는 먼저 3-WAY 중 어느 단계이고 이에 따른 어떤 TCAM 엑세스를 요구하는지를 나타내는 JOB_TYPE 정보가 포함되어 있으며, 테이블 관리기는 이를 이용하여 몇 번의 TCAM 엑세스가 필요하고 또 이에 따른 어떤 TCAM 명령어를 보내야 하는지에 대해 이미 하드웨어적으로 정해져 있는 순차적 알고리즘을 수행하게 된다.
다시 말해, 테이블 관리기에서는 TCP 3-WAY 패킷인 경우 테이블의 등록/수정(갱신)/삭제/검색을 위한 테이블 관리를 담당하게 되는데, 작업 큐를 리드한 후에는 JOB_TYPE(JOB_TYPE1~JOB_TYPE4)을 확인(S30~S60)하는 과정에 따라 각각의 JOB_TYPE에 따른 TYPE 1 내지 TYPE 4에 해당하는 TYPE 별 처리 과정(S70~S100)을 수행하게 된다.
예를 들어, TYPE 1(현재: SYN, 이전: 메모리 초기값)인 경우, 작업 큐에서 읽은 JOB_TYPE 정보는 이전 패킷이 IPv4인지 IPv6인지에 따라 구분되어진다.
즉, 이전 패킷이 IPv4인지 IPv6인지를 확인(S71)하여 IPv4인 경우 v4 Ctl Key를 생성(S72)하고, IPv6인 경우 v6 Ctl Key를 생성(S73)하게 된다.
이어서, TCAM 명령어/파라미터를 설정(S74)하고 필요시에는 스왑(SWAP)(S75)을 수행하게 된다.
이어서, TCAM 테이블을 액세스(S76)한 후 Statful Data를 SRAM에 등록(S77)하게 된다. 여기서, Statful Data에는 TCP flag 값과 Sequence 번호와 Acknowledge 번호 정보가 포함되어진다.
이와 같이, 작업 큐에서 읽은 JOB_TYPE 정보는 이번 패킷이 IPv4 인지 IPv6 인지에 따라서도 구분되어져 있으며, 방화벽 시스템으로 TCP 양단간 통신으로 인해 양방향 입력인 현재 세션과 이전 세션이 동일 세션이고 서로 주고 받는 방식인 양방향 동일세션의 매칭을 위하여 테이블 관리기에서는 필요에 따라 TCAM의 검색 키 와 추가/수정/삭제와 같은 제어 키를 IP의 출발지 주소와 목적지 주소간, 또 TCP의 출발지 포트와 목적지 포트간의 스와핑(Swapping) 하는 기능도 수행하게 된다.
이상에서는 본 발명에서 특정의 바람직한 실시예에 대하여 도시하고 또한 설명하였다. 그러나, 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.
본 발명에 따르면, 엔터프라이즈 네트워크 상에 존재하는 방화벽 시스템에 본 발명을 적용할 경우 종래에는 지원하지 못했던 수 Gbps의 라인속도를 실현할 수 있으며, 상태기반 패킷 필터의 잦은 테이블 엑세스로 인한 프로세서의 부하부담을 덜어 전체 시스템의 처리성능을 향상시킬 수 있는 효과가 있다.

Claims (15)

  1. TCP 상태 기반 패킷 필터 장치에 있어서,
    입력 패킷으로부터 패킷필터처리를 위한 헤더필드를 추출하는 헤더 분리부와,
    상기 헤더 분리부에서 추출된 헤더필드를 일시 저장하고, 세션테이블 검색을 위한 세션테이블 검색키를 생성하는 헤더필드큐/패킷처리부와,
    상기 세션테이블 관리를 위한 세션테이블 제어키를 생성하는 테이블 관리부와,
    상기 세션테이블 검색키와 세션테이블 제어키를 적절히 배분하여 파이프라인 구조의 세션테이블/상태테이블로 검색키 또는 제어키를 출력하는 스케쥴러와,
    상기 세션테이블/상태테이블에서 출력되는 세션테이블/상태테이블 매칭에 의한 이전 세션의 상태 값과 상기 헤더필드큐/패킷처리부로부터 현재 수신한 패킷의 상태 값을 비교 검사하여 패킷의 통과 여부를 결정하는 상태 검사부와,
    상기 상태 검사부로부터 테이블 관리를 위한 작업 데이터를 순차적으로 저장하는 작업 큐를 포함하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 장치.
  2. 제 1항에 있어서,
    상기 헤더필드큐/패킷처리부는,
    상기 상태 검사부로부터 출력 인에이블 신호를 수신하는 경우 상기 세션테이블로 검색키를 연속적으로 출력시키는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 장치.
  3. 제 1항에 있어서,
    상기 상태 검사부는,
    이전 세션이 존재하지 않는 경우 SYN 패킷인지를 검사하여 SYN 패킷일 경우 테이블 등록을 위한 JOB_TYPE을 생성하여 상기 작업큐에 저장하고 패킷통과신호를 출력하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 장치.
  4. 제 1항에 있어서,
    상기 상태 검사부는,
    이전 세션이 존재하는 경우, 상태 테이블 값이 저장된 상태테이블로부터 이전의 상태 값을 읽어 들여 현재의 상태 플래그 값과 이전의 상태 플래그 값을 비교하여 현재의 패킷이 3-WAY TCP 연결상태 패킷이면 그 단계에 상응하는 Sequence 번호와 Acknowledge 번호를 검사하여 패킷의 정상유무를 검사하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 장치.
  5. 제 4항에 있어서,
    상기 상태 검사부는,
    상기 현재의 상태 플래그 값이 일반 데이터 단계의 패킷이고 이전의 상태 플래그 값이 연결 설정 완료된 패킷인 경우, 패킷통과신호를 출력하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 장치.
  6. 제 4항에 있어서,
    상기 상태 검사부는,
    상기 현재의 상태 플래그 값이 ACK 이고 이전의 상태 플래그 값이 SYN|ACK 인 경우, 상기 상태테이블에 설정완료 표시 비트를 설정하고, 이외의 TCP 3-WAY 패킷은 모두 현재의 플래그 값을 설정하여 상기 작업 큐에 저장하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 장치.
  7. 제 1항에 있어서,
    상기 테이블 관리부는,
    상기 작업 큐에서 읽어 들인 값에 포함된 JOB_TYPE 정보를 이용하여 세션테이블의 액세스 횟수와 해당 세션테이블 명령어를 파악하여 이에 상응하는 순차적 알고리즘을 수행하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 장치.
  8. 제 7항에 있어서,
    상기 작업 큐에서 읽은 JOB_TYPE 정보는 IPv4 패킷인지 IPv6 패킷인지에 따라 구분되는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 장치.
  9. 제 1항에 있어서,
    상기 테이블 관리부는,
    방화벽 시스템으로 TCP 양단간 통신으로 인해 양방향 입력인 현재 세션과 이전 세션이 동일 세션이고 서로 주고 받는 방식인 양방향 동일세션의 매칭을 위하여 상태테이블의 검색키와 제어키를 IP 출발지 주소와 목적지 주소간, TCP의 출발 포트와 목적지 포트간의 스와핑(Swapping)을 수행하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 장치.
  10. TCP 상태 기반 패킷 필터 방법에 있어서,
    입력 패킷으로부터 패킷필터처리를 위한 헤더필드를 추출하는 과정과,
    패킷필터처리를 위한 헤더필드를 추출하는 과정에서 추출된 상기 헤더필드를 일시 저장하고, 세션테이블 검색을 위한 세션테이블 검색키 및 세션테이블 관리를 위한 세션테이블 제어키를 생성하는 과정과,
    상기 세션테이블 검색키와 세션테이블 제어키를 적절히 배분하여 파이프라인 구조의 세션테이블/상태테이블로 검색키 또는 제어키를 출력하는 과정과,
    상기 세션테이블/상태테이블에서 출력되는 세션테이블-상태테이블 매칭에 의한 이전 세션의 상태 값과 현재 수신한 패킷의 상태 값을 비교 검사하여 패킷의 통과 여부를 결정하는 과정을 포함하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 방법.
  11. 제 10항에 있어서,
    상기 이전 세션이 존재하지 않는 경우 SYN 패킷인지를 검사하여 SYN 패킷일 경우 테이블 등록을 위한 JOB_TYPE을 생성하여 저장하고 패킷통과신호를 출력하는 과정을 더 포함하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 방법.
  12. 제 10항에 있어서,
    상기 이전 세션이 존재하는 경우, 상태 테이블 값이 저장된 상태테이블로부터 이전의 상태 값을 읽어 들여 현재의 상태 플래그 값과 이전의 상태 플래그 값을 비교하여 현재의 패킷이 3-WAY TCP 연결상태 패킷이면 그 단계에 상응하는 Sequence 번호와 Acknowledge 번호를 검사하여 패킷의 정상유무를 검사하는 과정을 더 포함하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 방법.
  13. 제 12항에 있어서,
    상기 현재의 상태 플래그 값이 일반 데이터 단계의 패킷이고 이전의 상태 플래그 값이 연결 설정 완료된 패킷인 경우 패킷통과신호를 출력하는 과정을 더 포함하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 방법.
  14. 제 12항에 있어서,
    상기 현재의 상태 플래그 값이 ACK 이고 이전의 상태 플래그 값이 SYN|ACK 인 경우 상기 상태테이블에 설정완료 표시 비트를 설정하고, 이외의 TCP 3-WAY 패킷은 모두 현재의 플래그 값을 설정하여 저장하는 과정을 더 포함하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 방법.
  15. 제 10항에 있어서,
    테이블 관리를 위한 JOB_TYPE 정보를 이용하여 세션테이블의 액세스 횟수와 세션테이블 명령어를 파악하여 이에 상응하는 순차적 알고리즘을 수행하는 과정을 더 포함하는 것을 특징으로 하는 TCP 상태 기반 패킷 필터 방법.
KR1020070024525A 2007-03-13 2007-03-13 Tcp 상태 기반 패킷 필터 장치 및 그 방법 KR100864889B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070024525A KR100864889B1 (ko) 2007-03-13 2007-03-13 Tcp 상태 기반 패킷 필터 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070024525A KR100864889B1 (ko) 2007-03-13 2007-03-13 Tcp 상태 기반 패킷 필터 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20080083827A KR20080083827A (ko) 2008-09-19
KR100864889B1 true KR100864889B1 (ko) 2008-10-22

Family

ID=40024313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070024525A KR100864889B1 (ko) 2007-03-13 2007-03-13 Tcp 상태 기반 패킷 필터 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100864889B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095665A (zh) * 2011-11-07 2013-05-08 中兴通讯股份有限公司 一种提升防火墙处理性能的方法和装置
US8942258B2 (en) 2012-09-14 2015-01-27 International Business Machines Corporation Segmentation and reassembly of network packets for switched fabric networks
US8923299B2 (en) 2012-09-14 2014-12-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Segmentation and reassembly of network packets
CN109729059B (zh) * 2017-10-31 2020-08-14 华为技术有限公司 数据处理方法、装置及计算机

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040099864A (ko) * 2003-05-20 2004-12-02 한국전자통신연구원 보안 게이트웨이 시스템과 이를 이용한 침입 탐지 방법
KR20050081439A (ko) * 2004-02-13 2005-08-19 엘지엔시스(주) 네트워크 보안 시스템 및 그 동작 방법
KR20070023408A (ko) * 2005-08-24 2007-02-28 한국전자통신연구원 고속 패킷 필터링 방법 및 장치, 그리고 이를 지원하는네트워크 장치
US7245620B2 (en) 2002-03-15 2007-07-17 Broadcom Corporation Method and apparatus for filtering packet data in a network device
US7274698B2 (en) 2002-03-15 2007-09-25 Broadcom Corporation Multilevel parser for conditional flow detection in a network device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7245620B2 (en) 2002-03-15 2007-07-17 Broadcom Corporation Method and apparatus for filtering packet data in a network device
US7274698B2 (en) 2002-03-15 2007-09-25 Broadcom Corporation Multilevel parser for conditional flow detection in a network device
KR20040099864A (ko) * 2003-05-20 2004-12-02 한국전자통신연구원 보안 게이트웨이 시스템과 이를 이용한 침입 탐지 방법
KR20050081439A (ko) * 2004-02-13 2005-08-19 엘지엔시스(주) 네트워크 보안 시스템 및 그 동작 방법
KR20070023408A (ko) * 2005-08-24 2007-02-28 한국전자통신연구원 고속 패킷 필터링 방법 및 장치, 그리고 이를 지원하는네트워크 장치

Also Published As

Publication number Publication date
KR20080083827A (ko) 2008-09-19

Similar Documents

Publication Publication Date Title
US9154442B2 (en) Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors
US9258225B2 (en) System and method for efficient matching of regular expression patterns across multiple packets
US8724496B2 (en) System and method for integrating line-rate application recognition in a switch ASIC
US9727508B2 (en) Address learning and aging for network bridging in a network processor
US8176300B2 (en) Method and apparatus for content based searching
US8059650B2 (en) Hardware based parallel processing cores with multiple threads and multiple pipeline stages
US8014390B2 (en) Policy based routing using a fast filter processor
US9485200B2 (en) Network switch with external buffering via looparound path
US8638793B1 (en) Enhanced parsing and classification in a packet processor
US9356844B2 (en) Efficient application recognition in network traffic
US10104043B2 (en) Method and system for analyzing a data flow
US20080225874A1 (en) Stateful packet filter and table management method thereof
JP6074776B2 (ja) イーサネット(登録商標)ネットワーク用のセキュリティ検出を備えたインテリジェントphy
KR20070122045A (ko) 실시간 상태 기반 패킷 검사 방법 및 이를 위한 장치
US8555374B2 (en) High performance packet processing using a general purpose processor
US20080209540A1 (en) Firewall including local bus
US7554984B2 (en) Fast filter processor metering and chaining
US7787463B2 (en) Content aware apparatus and method
US20120076153A1 (en) Statistics module for network processors in virtual local area networks
KR20120112568A (ko) 복수의 데이터를 프로세싱하기 위한 방법 및 통신 패킷들을 스위칭하기 위한 스위칭 디바이스
US11838318B2 (en) Data plane with connection validation circuits
KR100864889B1 (ko) Tcp 상태 기반 패킷 필터 장치 및 그 방법
JP2007166514A (ja) 通信処理装置及び通信処理方法
US10887234B1 (en) Programmatic selection of load balancing output amongst forwarding paths
US8902756B2 (en) Packet transfer processing device, packet transfer processing method, and packet transfer processing program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee