KR20010072661A - 내부 및 외부 네트워크 사이의 네트워크 데이터 패킷트래픽을 제어하는 파이어월 장치 및 방법 - Google Patents

내부 및 외부 네트워크 사이의 네트워크 데이터 패킷트래픽을 제어하는 파이어월 장치 및 방법 Download PDF

Info

Publication number
KR20010072661A
KR20010072661A KR1020007015107A KR20007015107A KR20010072661A KR 20010072661 A KR20010072661 A KR 20010072661A KR 1020007015107 A KR1020007015107 A KR 1020007015107A KR 20007015107 A KR20007015107 A KR 20007015107A KR 20010072661 A KR20010072661 A KR 20010072661A
Authority
KR
South Korea
Prior art keywords
packet
fragment
prefix
internal
firewall
Prior art date
Application number
KR1020007015107A
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 KR20010072661A publication Critical patent/KR20010072661A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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
    • H04L63/0263Rule management
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

내부 및 외부 네트워크(1,5,4) 사이의 네트워크 데이터 패킷 트래픽을 제어하는 파이어월(3)은 네트워크 사이에 전송된 데이터 패킷의 데이터 필드 내의 내용에 따라서, 파이어월(3)을 통하여 상기 패킷을 차단하거나 전송하도록 데이터 패킷에 적용가능한 룰을 전체 룰의 세트로부터 선택하는 필터링 수단을 포함한다. 2-차원 어드레스 검사 수단은 한 세트의 어드레스 프리픽스 내의 소스 및 목적지 어드레스와 관련된 프리픽스를 자신의 대표값을 통하여 발견하기 위한 상기 패킷의 소스 및 목적지 어드레스의 2-차원 검사를 수행하고 각각의 프리픽스는 전체 룰의 세트중 룰의 서브셋을 가지며, 룰 정합 수단(10)은 상기 데이터 필드의 내용을 기초로 하여 상기 데이터 패킷에 적용가능한 룰을 발견하기 위하여 룰 정합을 수행한다.

Description

내부 및 외부 네트워크 사이의 네트워크 데이터 패킷 트래픽을 제어하는 파이어월 장치 및 방법 {FIREWALL APPARATUS AND METHOD OF CONTROLLING NETWORK DATA PACKET TRAFFIC BETWEEN INTERNAL AND EXTERNAL NETWORKS}
대부분의 인터넷 관련 단체에 대한 중요한 이슈는 보안이며 따라서 파이어월은 대부분의 단체에서 대부분의 컴퓨터 및 네트워크 보안 전략에서 중요한 부품이 되고 있다. 그 단체의 다른 공중 서비스 또는 웹서버에 접속하는 사용자는 회계 시스템, 인터넷 정보 서버 및 다른 중요한 회사 정보와 같은 내부 서비스에 접속할 수 없어야만 한다. 그 시스템의 서비스는 인터럽트되지 않아야만 되며-서버와 워크-스테이션은 인터넷 상의 사용자로부터 서비스 거부(denial-of-service)(DOS) 태그(tag)에 대하여 보호받을 필요가 있다.
파이어월, 즉 필터링 라우터는 근본적으로 라우터와 동일한 방식으로 동작하는 장치이다. 즉, 파이어월은 내부-인터페이스에서 패킷을 수신하고, 패킷 목적지 어드레스를 검사하고, 정확한(목적지 어드레스에 대하여) 외부-인터페이스로 그 패킷을 전송한다. 그러나, 파이어월은 각 패킷의 훨씬 더 철저한 검사를 수행한다. 소스 및 목적지 어드레스, 소스 및 목적지 포트, 프로토콜 필드, 플래그, 및 옵션이 또한 검사되어 파이어월 룰의 목록과 비교된다. 룰이 그 패킷과 정합한지에 따라서, 가령, 차단 룰이 정합된 경우, 파이어월은 그 패킷을 전송하지 않도록 결정할 수 있다.
권한이 없는 접속 이외에도 단체가 인터넷에 접속될때 발생하는 다른 위협이 있다. 하부 라인은 공지되지 않은 소스로부터 수신된 데이터가 신뢰받을 수 없다는 것이다. 이메일과 웹페이지 내의 바이러스와 트로잔 호오스(trojan horse)에 대한 스캐닝은 일부의 종래 기술 파이어월에 의해 수행된 의무이다.
게다가, 네트워크 대역폭이 증가하고 있기 때문에, 파이어월의 성능은 중요한 이슈가 되고 있다.
파이어월은 많은 상이한 레벨로 동작하여 자신을 지나가는 데이터를 스캐닝하기 위한 상이한 종류의 기능을 제공한다. 그러나, 모든 파이어월의 기본적인 기능은 네트워크(IP=인터넷 프로토콜) 및 트랜스포트(UDP, TCP=전송 제어 프로토콜 및 ICMP=인터넷 제어 메세지 프로토콜) 레이어 헤더(layer header)의 내용을 근거로 하여 필터링을 수행하는 것이다. 그러한 IP 필터링없이, 데이터 스캐닝과 같은, 모든 다른 기능은 쓸모가 없다. 즉, 내부 네트워크 상의 사용자는 멀리 떨어진 서버에 접속하기 위하여 스캐너를 통과하지 않고 그래서 모든 보안 기능을 바이패스하지 않게 하기 위하여 그들의 네트워크 응용을 구성하는 것이 낫다.
회사 또는 단체는 다양한 이유를 위하여, 가령, 회사, 그 상품 및 웹상의 서비스에 관한 정보를 공표하기 위하여, 인터넷 상의 이용가능한 정보에 접속하기 위하여, 이메일을 통하여 교신하기 위하여 인터넷에 접속된다.
회사는 종종 인터넷 상의 사용자가 접속하지 않아야만 하는 인터넷 정보 서버, 파일 서버 등등과 같은 내부 정보를 갖는다. 대부분의 통상적인 배열은 인터넷으로부터 한 세트의 서버(웹, 이메일, 및 다른 공중 서비스)로의 접속을 허용하지만 다른 호스트(가령, 인트라넷 서버)에 접속하지 못하게 하는 것이다. 이것을 성취하기 위하여, "완충 영역(DMZ)"이 설정된다. DMZ에서는 인터넷으로부터 뿐만 아니라 인트라넷으로부터 컴퓨터로 접속될 수 있지만 인터넷으로부터 인트라넷으로의 접속은 제한된다. 종래 기술의 네트워크에서, 인트라넷과 같은 내부 네트워크는 파이어월을 통하여 완충영역에 접속되며 DMZ는 라우터를 통하여 인터넷에 접속된다. 따라서, 네트워크 트래픽은 인터넷과 DMZ 사이에서 자유로이 통과될 수 있으므로, 그것은 인트라넷 상의 사용자로부터 완전하게 보호받지는 못한다. 이 때문에 종래 기술의 파이어월이 또한 두 개 이상의 네트워크-내부 및 외부 네트워크에 접속시킬 가능성을 결여시킨다.
다른 파이어월은 세 개의 네트워크 인터페이스를 갖는다. 여기서, 인터넷 및 DMZ 뿐만 아니라 인트라넷 사이의 트래픽에 관하여 제한이 행해질 수 있다. 일부의 제한은 DMZ 내의 호스트로의 트래픽 및 DMZ 내의 호스트로부터의 트래픽에 대하여발생될 수 있으며, 가령, 웹 서버는 단지 HTTP(하이퍼텍스트 전송 프로토콜) 포트에 접속할 필요가 있다. 인터넷 사용자는 임의의 다른 서비스에 접속하지 않아야만 한다. 그러나, 인트라넷 상의 사용자는 관리의 목적을 위하여 인터넷 사용자보다 더 많은 방식으로 웹 서버에 접속하기를 희망할 수 있으므로, 보다 많은 접속이 이러한 두 네트워크 사이에 제공되야 한다. 유사한 룰이 이메일 서버에 대해 요구된다; STMP(간단한 메일 전송 프로토콜) 접속은 인터넷으로부터 허용되어야만 하지만 이메일 판독은 단지 인트라넷 상의 어떤 허용된 호스트에 대하여 가능해야만 하고, 인터넷 상의 일부 호스트로부터도 또한 가능하다.
파이어월 환경에서 DMZ 내의 기계의 수는 예를 들면, 30이다. DMZ 내의 기계에 대한 룰은 각각의 기계에 대하여 상이할 수 있지만 기계마다 룰의 수는 상당히 낮으며 예를 들어, 10-15이다. 보다 많은 룰이 인트라넷으로부터 DMZ로의 트래픽에 적용될 수 있지만, 이것들이 보다 일반적이다. 그러므로, 상당히 낮은 수의 룰은 DMZ 내의 모든 기계에 대하여 유효하다.
더구나, 인터넷과 인트라넷(들) 사이의 트래픽에 관한 룰은 어쨌든 대부분의 경우에 거의 없다. 대부분의 트래픽은 차단되어야만 한다. 그러나, 인트라넷으로부터 시작된 트래픽은 허용될 수 있다.
인터넷 상의 사용자의 수가 증가함에 따라, 공중 서버는 보다 자주 방문될 것이며, 보다 많은 트래픽을 발생시킬 것이다. 인트라넷으로의 트래픽 및 인트라넷으로부터의 트래픽은 인트라넷 사용자가 인터넷 상의 이용가능한 정보의 양을 증가시키는 역할을 함에 따라 증가한다. 결과적으로, 대역폭 요구가 증가하고 있다. 이것은 사용된 파이어월의 성능에 대한 요구를 보다 크게 한다.
그러므로, 파이어월에 대한 주 임무는 IP 패킷 및 한 세트의 룰이 제공되며, 어느 룰이 이 패킷에 적용되야만 하는 것인가? 하는 패킷 필터링이다. 몇개의 룰이 동일한 패킷에 정합하다면, 어느 룰을 선택할지를 상술하도록 규정될 정책이 필요로된다. 이 문제에 대해 공지된 두 가지의 종래 기술 솔루션이 있다. 하나의 솔루션은 최대 수의 패킷의 필드에 정합하는 룰을 선택하는 것이며, 두 개의 룰이 동일한 수의 필드이지만 상이한 필드에 정합하다면, 순서는 그 룰들 사이에 규정될 필요가 있다. 이것은 Borg and Flodin, Borg, N. Flodin, Malin, packet classification, June 1997; Borg, N., A Packet Classifier for IP Networks, Masters Lic., Lulea university of techonlogy, February 1998 에 의한 패킷 분류 알고리즘에서 사용된다. 다른 솔루션은 룰들 사이의 순서를 규정하는 것이며 그 순서가 사용되어 어느 룰을 선택할지를 규정한다. 제 2 솔루션의 장점은 필터 룰을 규정할때 보다 양호한 유연성(flexibility)를 제공한다는 것이며, NetBSD 파이어월 코드가 이 방법을 사용한다.
필터 룰은 이행되어야만 하는 한 세트의 표준 및 그것들이 이행될때 수행되는 동작을 포함한다. 그 표준은 패킷이 IP 옵션 세트를 갖는지 여부 그리고 이러한 옵션이 적당한 IP/TCP 소스 및 목적지 포트 넘버(2 16-비트 정수 범위)인지에 관한 IP 소스 및 목적지 어드레스(32-비트 프리픽스(prefix)), IP 프로토콜 필드(8-비트 정수)의 표준과 패킷이 어떤 인터페이스로부터 판독되는지(8+8 비트), 그리고 패킷이 어떤 인터페이스로 전송되는지(8+8 비트)에 관한 TCP 헤더 플레그(3 비트),ICMP 헤더 타입 및 코드 필터(28-비트 정수)의 기준에 근거를 둔다.
요즘 대부분의 파이어월은 특히 룰 정합 문제를 제기하지 않는다. 룰의 링크된 목록(또는 어레이)을 갖는 것이 통상적인데, 정합이 발견될때가지 이 룰들 각각 및 모든 룰과 패킷을 비교한다. 그러나, 이것은 비효과적이다. 다른 방법은 룰의 해싱이다. 더구나, 룰들 사이의 모호함을 해결하기 위한 방법, 즉 두 룰이 동일한 패킷에 정합된 경우, 대부분의 수행은 제 1 또는 최후 정합 룰을 아래의 하나로 규정함으로써 해결한다.
종래 기술 파이어월, Cisco Systems에 의한 PIX 파이어월은 외부 네트워크로부터 내부 내트워크를 보호하는 접속 지향 보안 장치이다. PIX 파이어월은 매우 값비싼 장치이며 대략 16000의 동시 접속의 상한을 갖는다. PIX 파이어월의 주요한 부분은 적응형 보안 알고리즘(ASA)에 근거한 보호 구조이며, 안전한 접속 지향 보안을 제공한다. ASA는 소스 및 목적지 어드레스, TCP 시퀀스 번호, 포트 번호, 그리고 각 패킷의 부가적인 TCP 플래그를 추적한다. 이 정보는 테이블 내에 저장되며, 들어오고(inbound) 나가는(outbound) 모든 패킷이 테이블 내의 엔트리에 대하여 비교된다. 그러므로, 설정된 각각의 접속에 대한 정보는 접속의 지속기간 동안 저장되어야만 하고, 그래서 가능한 접속의 수는 이용가능한 메모리 용량에 의해 규정된다. 완전하게 로딩된 Cisco PIX 파이어월은 대략 90 Mbite/s로 동작할 수 있다. 그러나, 그 Cisco PIX 파이어월은 또한 포트 어드레스 변환(PAT)를 지원함으로써, 64000 이상의 내부 호스트가 단일 외부 IP 어드레스에 의해 서비스될 수 있다.
ipf(IP filter)로 불리는 종래 기술 패킷 필터는 넷 BSD 1.3의 표준 분포에포함된다.
ipf에서 룰 세트는 유효한 인터페이스로 분할된다. 더구나, 룰은 2회, 패킷이 호스트로 들어갈때 제 1회 및 패킷이 호스트를 떠날때 제 2회 점검된다. 단지 들어오는 패킷에 대하여 유효한 룰은 출력 포트에서 점검된 룰의 목록으로 추가되지 않으며, 역도 또한 마찬가지이다. 데이터 구조는 근본적으로 최적화 링크된 목록이다.
Exokernel, Engler, D., Kaashoek, M. F., O'Tool Jr,J., Exokernel: An operating system architecture..., Proceedings of the 15th ACM symposium on Operating Systems principles, December 1995 는 상이한 방식을 사용하여 DFP, Angler, D., Kaashoek, M. F., DPF: Fast, flexible message demultiplexing..., Engler, D., Kaashoek, M. F., Computer Communication Review, Vo. 26, No. 4, October 1996 이라고 불리는 패킷 역다중화를 다룬다. 그 룰들은 특정한 프로그래밍 언어로 쓰여졌으므로 컴파일링된다. 컴파일러는 상술된 모든 룰에 관하여 인지하며, 발생된 코드는 예측되는 트래픽 특권를 위해 최적화될 수 있다.
본 발명은 일반적으로 내부 및 외부 네트워크 사이의 네트워크 데이터 패킷 트래픽을 제어하는 파이어월 장치 및 방법에 관한 것이며, 특히 상기 네트워크 사이에 전송될 데이터 패킷의 데이터 필드 내의 내용에 따라서, 파이어월을 통하여 상기 패킷을 전송하거나 차단하도록 데이터 패킷에 적용가능한 룰을 전체 룰의 세트로부터 선택하기 위한 필터링 수단을 포함하는 파이어월 장치 및 그 방법에 관한 것이다.
본 발명을 보다 상세히 설명하고 본 발명의 장점 및 특성을 설명하기 위하여, 본 발명의 바람직한 실시예가 첨부 도면을 참조하여 이하에 기술될 것이다.
도 1은 본 발명에 따른 파이어월을 포함하는 통상적인 네트워크 접속형태 (topology)를 도시한 도면.
도 2는 본 발명에 따른 파이어월의 블럭도.
도 3은 2차원 밀집 정크(chunk)의 부분을 도시한 도면.
도 4는 본 발명에 따른 데이터 구조를 도시한 도면.
도 5는 등급 (0, 0) 타일을 도시한 도면.
도 6는 등급 (1, 1) 타일을 도시한 도면.
도 7는 등급 (1, 2) 타일을 도시한 도면.
도 8는 등급 (2, 1) 타일을 도시한 도면.
도 9는 등급 (1, 3+) 타일을 도시한 도면.
도 10는 등급 (3+, 1) 타일을 도시한 도면.
도 11는 등급 (2+, 2+) 타일을 도시한 도면.
도 12는 여섯 개의 키를 포함하는 파트리시아 트리(Patricia Tree) 내의 특정 질문 키에 대하여 실패한 탐색의 예를 도시한 도면.
도 13은 도 12에 따른 실패한 탐색으로부터 질문 키의 삽입하게 하는 파트리시아 트리를 도시한 도면.
본 발명의 목적은 내부 및 외부 네트워크 사이의 네트워크 트래픽을 제어하며, 효율적이며 신속한 IP 패킷 필터링을 성취하도록 룰 정합 공정과 능률적인 어드레스 검사를 제공하며, 가능한 접속의 수가 파이어월을 통하여 제한되지 않도록 하는 개선된 파이어월 장치 및 방법을 제공하는 것이다.
이것은 본 발명에 따른 파이어월 장치 및 방법에 의해 성취되며, 여기서 선형으로 탐색될 필요가 있는 룰의 세트는 상기 룰 세트를 세그먼팅함으로써 감소된다. 본 발명에 따른 파이어월은 2 단계 검사, 우선 한 세트의 어드레스 프리픽스에서 패킷의 소스 및 목적지 어드레스 검사를 수행하는 2-차원의 어드레스 검사 수단을 포함한다. 각각의 프리픽스는 전체 룰의 세트중 룰의 서브셋과 관련된다. 선형 탐색은 결과적인 룰의 서브셋 상에서 수행되어 현재의 데이터 패킷에 적용가능한 룰을 발견하도록 한다.
본 발명의 다른 목적은 프래그먼팅된 패킷 내의 모든 프래그먼트(fragment)의 필터링을 인에이블하게 하는 프래그먼트 기계를 제공하는 것이다.
본 발명의 또다른 목적은 내부 소스 어드레스를 파이어월로부터 전송된 패킷의 외부 소스 어드레스로 변환하거나 외부 소스 어드레스를 파이어월로 전송된 패킷의 내부 소스 어드레스로 변환하는 네트워크 어드레스 변환 수단을 제공하는 것이다.
본 발명의 또다른 목적은 내부 소스 어드레스를 내부 네트워크로부터 외부 네트워크로 전송된 패킷의 외부 소스 어드레스로 변환하거나 외부 소스 어드레스를 외부 네트워크로부터 내부 네트워크로 전송된 패킷의 내부 소스 어드레스로 변환하는 네트워크 어드레스 변환 수단을 제공하는 것이다.
본 발명의 또다른 목적은 내부 네트워크로부터 시작된 접속에 대하여 외부-대-내부 차단 룰로부터 일시적으로 제외시키는 홀 펀칭 수단(hole punching means)을 제공하는 것이며, 여기서 외부 네트워크로부터 내부 네트워크로 전송된 패킷에 대하여 복귀 채널이 상기 파이어월을 통하여 설정된다.
본 발명의 또다른 목적은 1000 이상의 특정 룰을 취급할 수 있는 파이어월을 제공하는 것이다.
본 발명을 다른 파이어월 및 그 방법의 장점은 동시에 가능한 접속의 수가 제한받지 않고, 신속한 IP 필터링, 그리고 상당히 많은 수의 가능한 룰이 지원된다는 것이다.
본 발명에 따른 파이어월의 다른 목적은 라우터를 포함하는 파이어월을 제공하는 것이다.
회사 또는 단체의 관점으로부터 현대의 네트워크 접속형태의 예가 도 1에 도시되어 있다. 인트라넷과 같은 내부 네트워크(1)는 PC들, 워크스테이션, 파일 서버 등과 같은 몇개의 네트워크 노드(2)를 포함하며, 그 노드들은 파이어월(3)에 접속된다. 외부 네트워크 (4)(인터넷)에 접속된 회사 또는 단체는 제품과 서비스와 같은 회사 관련 정보를 웹 상에서 공표하고, 인터넷 상에서 다른 회사 또는 단체에 의해 공표된 정보에 접속하고, 이메일을 통하여 교신하고자 한다. 그러나, 그 회사는 인터넷 상의 사용자가 접속하도록 허용되지 않는 가령, 인트라넷 정보 서버, 파일 서버 등등를 통하여 이용가능한 정보인 내부 정보를 가질 수 있다. 그러므로, 인터넷 사용자가 공중 정보에 접속하도록 하기 위하여, 인터넷 사용자는 가령, 웹, 이메일 등등과 같은 제한된 세트의 서버에 접속되도록 허용되며, 인트라넷 서버와 같은 다른 호스트 상의 정보에 접속하는 것은 거절된다. 그 공중 서버는 "완충 영역"(DMZ)(5)에서 이용가능하며, 이것은 파이어월(3)에 접속된다. 더구나, 파이어월 (3)은 라우터(6)를 통하여 인터넷에 접속되므로, DMZ(5) 내의 노드로의 접속은 외부 네트워크 또는 인터넷(4) 뿐만 아니라 인트라넷(1)으로부터 행해질 수 있지만 인터넷(4)으로부터 인트라넷(1)으로의 접속은 제한된다.
다음의 설명에서, 다수의 특정한 세부사항이 상세히 제공되어 본 발명의 보다 철저한 서술을 제공하도록 한다. 본 발명이 이러한 특정한 세부사항없이 실행될 수 있다는 것을 당업자들은 분명하게 인지할 것이다. 일부의 널리-공지된 특성은 본 발명을 명확하게 하기 위하여 상세히 기술되지 않는다.
본 발명에 따라서 필터링된 패킷이 흐르는 방법 및 신속한 경로에서 상이한 모듈과 파이어월의 한 실시예가 도 2에 도시된다.
간단한 경우에, 패킷은 파이어월 입력 접속(7)에서 네트워크(1,4, 또는 5)로부터 수신되어 2-차원 어드레스 검사 수단 또는 2d-SFT 블럭(8)의 입력에 인가된다. 중간 접속(9)은 2d-SFT 및 룰 정합 수단 또는 블럭(10)에 접속되며, 여기서 그 패킷은 (아래로) 통과되거나 차단된다(b5). 그러나, 본 발명에 따른 파이어월을 적절하게 동작시키기 위하여, 다수의 부가적인 모듈을 갖는다.
이 실시예에서, 소스 어드레스 및 목적지 어드레스의 검사가 2d-SFT 블럭(8)에서 수행되며, 룰 또는 실제로 간단한 룰의 목록을 발생시킨다. 그 룰 목록이 탐색되어 정합 룰이 발견될때까지 룰 정합 블럭(10)에서 유지된다. 게다가, 패킷이 다른 모듈에 의해 처리될 필요가 있는지 없는지에 대한 정보가 2d-SFT 검사에 의해 발생된다. 일부의 이런 결정은 도 2에 도시된 바와 같이, 룰 정합 동안 취해지는데, 이것은 룰 정합이 실제로 블럭으로 들어가기 전에 시작된다는 것을 의미한다. 그 2d-SFT 블럭(8)은 이하에 상세히 기술된다.
패킷이 너무 커서 링크를 통하여 전송될 수 없을때, 패킷은 프래그먼팅된다. 이것은 IP 헤더를 따르는 모든 것이 조각(프래그먼트)으로 잘려지며 각각의 프래그먼트가 자신의 IP 헤더와 함께 제공된다라는 것을 의미한다. 부가적인 프래그먼트 플래그 및 프래그먼트 오프셋이 각각의 프래그먼트에서 설정되어 그것이 마지막 프래그먼트인지 아닌지를 나타내도록 하며, 어디에 프래그먼트 데이터가 원래의(프래그먼팅되지 않은) 패킷과 조화되는지를 기록하도록 한다.
패킷이 프래그먼트될때, 단지 제 1 프래그먼트, 그 프래그먼트 헤더만이 전송 헤더(TCP, UDP, 또는 ICMP 헤더)를 포함한다. 이것은 그 다음 프래그먼트가 예를 들어 포트를 위해 포함하는 룰에 대해 정합될 수 없다는 것을 의미한다.
본 발명에 따라서, 프래그먼트 기계(11)는 프래그먼트 헤더가 도착할 때까지 (프래그먼트는 반드시 순서대로 도착되는 것은 아님) 각각의 프래그먼팅된 패킷으로부터 프래그먼트를 수집한다. 그리고 나서, 단지 프래그먼트 헤더 내에만 제공된 정보의 조각은 그 프래그먼팅된 패킷과 관련된 엔트리 내에 저장되며, 그 수집된 프래그먼트는 접속부(7)에 접속된 출력(o1)에 인가되고, 가장 먼저 프래그먼트 헤더가 인가된다. 프래그먼트 기계로부터 전송된 각각의 프래그먼트는 프래그먼트 헤더 정보와 함께 제공되어 마치 프래그먼트되지 않은 패킷인 것처럼 필터에 의해 처리될 수 있도록 한다. 부가적인 프래그먼트 플래그 및 프래그먼트 오프셋이 검사되어 패킷이 접속부(7)에 접속된 프래그먼트 기계(11)의 입력(i1)에 인가되는지 아닌지를 결정하도록 한다.
프래그먼팅된 패킷의 모든 프래그먼트가 프래그먼트 기계(11)에서 수신될때,그 패킷에 대한 엔트리는 제거된다.
어떤 점에서, 프래그먼트 기계는 또한 프래그먼트를 차단하도록 결정할 수 있다. 이것은 깨진 프래그먼팅된 패킷이 도착할때(아마 공격의 결과로서), 수집된 프래그먼트의 수가 어떤 한도를 초과한 경우, 또는 간단하게 불용정보(garbage) 수집의 결과로서(오래된 엔트리는 새로운 엔트리를 위해 자리를 비우도록 제거됨) 발생한다.
네트워크 어드레스 변환(NAT)은 회사가 많은 내부 IP 어드레스와 극소수의 외부 (실제) IP 어드레스를 갖는 네트워크를 가질때 통상적으로 사용된다. 어떤 부분의 IP 주소 공간은 10.*.*.*, 192.168.*.*, 그리고 172.16.*.*과 같이 내부 어드레스를 위해 남겨진다. 이러한 어드레스는 내부/구내 네트워크에서 자유로이 사용될 수 있다. 그러나, 그것들은 외부에서 결코 볼 수 없어야만 한다. 그러므로, 파이어월이 설정되어 패킷이 내부로부터 외부 네트워크로 갈때 내부 소스 어드레스를 외부 소스 어드레스로 변환하도록 한다. 다른 방향으로 가는 패킷을 위하여, 패킷이 파이어월을 통과할때 외부 목적지 어드레스는 내부 어드레스로 변환된다. 많은 내부 어드레스를 소수의 외부 어드레스 상에 맵핑하기 위하여, 포트가 또한 사용된다.
예를 들면, 파이어월이 설정되어 20000 내지 20255의 포트(28포트)를 사용하어 10.1.0.0로부터 10.1.255.255까지의 내부 어드레스(216어드레스)를 194.22. 187.0 내지 194.22.187.255의 외부 어드레스(28어드레스)로 맵핑하도록 한다.
접속이 10.1.1.1 포트 4000으로부터 130.240.64.46 포트 6000으로 시작될때, (a,p)가 임의의 다른 NAT 접속과 충돌하지 않도록 하기 위하여 어드레스(a) 및 포트(p)는 그 어드레스 및 포트 범위로부터 선택된다. 그리고 나서, 그 접속으로부터 내부에서 외부로 각각 나가는(I2X) 패킷에 대하여, 소스 어드레스(10.1.1.1) 및 포트(4000)는 (a) 및 (p)에 의해 각각 대체된다. 외부에서 내부로 각각 들어오는 (X2I) 패킷에 대하여, 목적지 어드레스(a) 및 포트(p)는 10.1.1.1 및 4000에 의해 각각 대체된다.
이 방식에서, 256 포트와 함께 256 외부 어드레스는 65536의 내부 네트워크를 나타낼 수 있다.
2d-SFT 검사의 결과로서, 패킷이 외부에서 내부로 어드레스 변환을 겪는지에 관한 정보가 얻어지고, 그 패킷은 외부에서 내부로 어드레스 변환을 수행하는 X2I-NAT 블럭(12)의 입력(i2)에 인가된다. 그러므로, X2I-NAT 검사를 수행하기 위한 오버헤드(overhead)는 변환할 필요가 없는 모든 패킷에서 제거된다. X2I-NAT 검사가 수행되는 패킷에 대하여, 그 패킷은 실패의 경우에 X2I-NAT 블럭의 슬로우 패스(slow path) 출력(s2)을 통하여 슬로우 패스 수단(13)에 전송되는데, 그 이유는 NAT 데이터 구조의 갱신이 슬로우 패스에서 처리되기 때문이다. 성공적인 X2I-NAT 검사가 수행될때, 그 어드레스 및 포트는 변화되고 새로운 소스-목적지 쌍의 룰 정합은 패킷이 X2I-NAT 블럭의 출력(o2)을 통하여 다음 필터링 단계로 전송되기 전에 검색된다.
또한 2d-SFT 검사의 결과로서 또는 X2I-NAT로부터, 패킷이 내부에서 외부로(I2X) 어드레스 변환을 겪는지가 분명해진다. 이것은 근본적으로 X2I와 동일한 방식으로 수행되지만, 최종 필터링 단계로서 수행된다. 룰 정합 블럭(10)의 출력 접속부(15)로부터 수신된 내부에서 외부로(I2X) 어드레스 변환을 겪는 패킷은 내부에서 외부로 어드레스 변환을 수행하는 I2X-NAT 블럭(14)의 입력(i5)에 인가된다. I2X-NAT 검사가 수행되는 패킷에 대하여, 그 패킷은 실패의 경우에 X2I-NAT 블럭의 슬로우 패스 출력(s5)을 통하여 슬로우 패스 수단(13)에 전송되는데, 그 이유는 NAT 데이터 구조의 갱신이 슬로우 패스에서 처리되기 때문이다. 성공적인 I2X-NAT 검사가 수행될때, 그 어드레스 및 포트는 변화되고 그 패킷은 I2X-NAT 블럭의 출력 (o5) 및 출력 접속부(15)를 통하여 적당한 네트워크로 전송된다.
2d-SFT 검사 이후에, 제 1 단계로서 X2I-NAT 및 최종 단계로서 I2X-NAT를 갖는 이유는 필터링 룰이 동적으로 할당된 NAT 어드레스가 아니라 고정된 내부 어드레스에 대하여 제공되기 때문이다.
통상적으로, 외부 네트워크(4)로부터 내부 네트워크(1)로 가는 대부분의 트래픽은 내부 네트워크를 보호하기 위하여 차단된다. 그러나, 내부 네트워크 상의 호스트는 통상적으로 외부 네트워크(4) 상의 호스트에 접속하도록 허용된다. 외부로부터의 임의의 복귀 트래픽을 수신하기 위하여, 외부-대-내부 차단 룰로부터의 일시적인 제외가 내부 네트워크로부터 시작된 접속에 대해 발생되어야만 한다. 이것이 홀 펀치(HP)로서 언급된다. 즉, 복귀 패킷을 위한 홀이 파이어월을 통하여 펀칭된다. 그 홀은 단지 그 접속의 지속기간 동안에만 존재하고 단지 그 접속으로부터 패킷에만 영향을 미친다.
홀 펀칭은 또한 TCP 시퀀스 번호를 기억하고 있어서 홀 펀칭된 접속을 하이젝킹되는 것으로부터 보호하도록 한다. 그러므로, I2X-HP 블럭(16)에 의해 수행된는 나가는 (I2X) 패킷에 대한 HP 검사 및 X2I-HP 블럭(17)에 의해 수행된 들어오는 (X2I) 패킷에 대한 HP 검사 둘 모두가 필요하다.
2d-SFT 검사 또는 X2I 검사의 결과로서 또는 X2I-NAT로부터, 우리는 그 패킷이 내부에서 외부로 (I2X) 홀 펀칭을 겪는지 또는 외부에서 내부로 (X2I) 홀 펀칭을 겪는지를 인지한다. 이것은 우리가 홀 펀칭되기 쉽지 않은 패킷에 대한 HP 검사를 수행하는 것으로부터 오버헤드를 피할 수 있다는 것을 의미한다. 홀 펀칭을 겪는 나가는 패킷이 I2X-HP 블럭(16)의 입력(i3)에 인가됨으로써 소스 및 목적지 어드레스 및 포트, 그리고 프로토콜이 검사되어 현재 상태를 찾아내도록 한다. 그러한 상태가 존재하지 않는다면, 그 패킷은 I2X-HP 블럭(16)의 슬로우 패스 출력 (s3)을 통하여 슬로우 패스 수단(13)에 전송되며, 여기서 HP 데이터 구조는 갱신되고 상태는 생성된다. 정합 상태가 발견된다면, TCP-시퀀스 번호 등은 패킷이 다른 출력(o3)을 통하여 다음 필터링 단계로 전송되기 전에 갱신된다.
X2I-HP는 동일한 방식으로 수행된다. 홀 펀칭을 겪는 들어오는 패킷이 X2I-HP 블럭(17)의 입력(i4)에 인가됨으로써 소스 및 목적지 어드레스 및 포트, 그리고 프로토콜이 검사되어 현재 상태를 찾아내도록 한다. 그러한 상태가 존재하지 않는다면, 차단 룰에서 존재하지-않는 홀을 통하여 패킷을 전송하려고 하는 시도가 발생되며 그 패킷은 X2I-HP 블럭의 출력(b4)에서 차단된다. 정합 상태가 발견된다면, 그것은 패킷이 다른 출력(o4)을 통하여 다음 필터링 단계로 전송되기 전에 갱신된다.
2d-SFT 블럭(8)을 다시 참조하면, 상기 네트워크 사이에 전송되는 데이터 패킷의 데이터 필드의 내용에 따라서, 그 데이터 패킷에 적용가능한 룰이 전체 룰의 세트로부터 선택됨으로써 상기 패킷이 파이어월을 통하여 차단되거나 전송된다. 선형적으로 탐색될 룰의 세트를 감소시키기 위하여, 그 룰 세트는 분할된다. 본 발명에 따라서, 이것은 한 세트의 어드레스 프리픽스에서 패킷의 소스 및 목적지 어드레스의 2-차원 검사에 의해 수행되어 소스 및 목적지 어드레스에 관련된 프리픽스를 발견하도록 하며, 여기서 각각의 프리픽스는 전체 세트의 룰중 룰의 서브셋을 갖는다. 그리고 나서, 상기 데이터 필드의 내용에 근거하여, 룰 정합은 룰 정합 수단(10)에 의해 수행되어 그 데이터 패킷에 적용 가능한 룰을 발견하도록 한다.
그 어드레스의 2-차원 검사가 수행될때, 각 룰은 2-차원 평면의 직사각형 (rectangular) 에어리어를 커버하는 것으로 도시되며, 여기서 직사각형의 오프셋 및 크기는 어드레스 프리픽스 및 프리픽스 길이에 의해 결정된다. 그러므로, 검사는 평면 내의 한 포인트를 둘러싸는 직사각형을 발견하는 것과 동일한 문제가 되도록 고려된다. 검사를 간소화하기 위하여, 평면 내의 각각의 포인트가 하나 및 단지 하나의 직사각형에 의해 커버되어 보다 쉬운 검사 절차를 발생시킨다는 것을 보증하기 위하여 제한이 행하여진다.
2-차원 어드레스 검사가 수행된 이후에, 검사는 발견된 현재의 프리픽스와 관련된 결과적인 룰의 서브셋을 가지고 계속된다. 그러나, 그 어드레스 필드는 최종의 룰 정합에서 사용되지 않는다. 그러므로, 룰이 현재의 패킷의 어드레스에 대하여 유효하지 않다면, 그것은 어드레스 검사에서 발생하는 룰의 목록에서 제외된다.
각 룰이 전체 어드레스 공간의 일부분을 커버하는 직사각형에 의해 표현되고 각각의 룰이 동일한 어드레스에 적용가능하기 때문에, 그 직사각형은 중첩된다. 그러나, 본 발명에 따른 방법을 적절한 방식으로 동작시키기 위하여, 중첩하는 직사각형은 허용되지 않는다. 따라서, 중첩하지 않는 표준을 이행하기 위하여, 다음의 단계가 수행되어야만 한다.
1. 각 룰에 대하여, 어드레스 공간에서 직사각형을 생성하라.
2. 단지 새롭게 생성된 직사각형만 포함하는 세트를 생성하라. 이 세트는 비교 세트로 불릴 것이다.
3. 평면내에 이미 존재하는 모든 직사각형에 대하여; 그것을 비교 세트 내의 각각의 직사각형과 비교하라.
4. 그들이 중첩한다면, 중첩하지 않는 부분을 삭제하라. 중첩하는 부분의 룰 목록은 그 룰 목록의 종단에 첨부된 새로운 직사각형으로부터 룰에 할당된다.
5. 모든 부분에 대하여, 그 부분이 평면상에 이미 존재하는 직사각형의 부분이였다면, 그것을 그 평면으로 복귀하라. 아니라면, 그것을 비교된 직사각형의 세트에 추가시켜라.
6. 그 비교 세트가 텅비지 않았다면, 단계(3)로 복귀하라. 평면내에 이미 존재하는 직사각형 및 이미 비교된 것은 제외될 수 있다.
7. 이 상태에서, 비교 세트는 텅비어 있다. 임의의 직사각형이 새로운 것과중첩한다면, 그것들은 필요하다면, 보다 적은 부분으로 분할되며, 그 공통 부분은 새로운 룰을 포함하는 룰 목록을 갖는다.
중첩하지 않는 표준을 이행하기 위한 다른 방법에서, 평면내에 단지 한 세트의 직사각형만 있는 것은 아니다. 대신에, 각각의 직사각형은 자신의 좌표 및 룰 목록 인덱스 이외에도, 한 세트의 직사각형 또는 하위직사각형을 포함한다. 각각의 하위직사각형은 추가적인 하위직사각형의 세트를 갖는다. 그러나, 때때로 동일한 하위직사각형을 참조하고 직사각형 깊이의 지시된 비순환 그래프(DAG)를 통과하는 것이 필요하다.
전체의 평면을 커버하는 하나의 루트 직사각형이 있다. 이것은 모든 다른 비교가 실패할 경우에 따르는 디폴트(default)를 표현한다. 그 룰 작동은 그 구성에 따라서 차단되거나 통과되도록 허용된다.
루트로 불리는 직사각형은 새로운 직사각형이 추가될 수 있는 루트 직사각형이다.
그 루트 및 새로운 직사각형이 동일한 크기라면, 새로운 직사각형에서의 룰들은 그 루트 직사각형과 관련된 룰 목록에 추가된다.
루트 직사각형의 모든 하위직사각형에 대하여 반복하라. 새로운 직사각형이 임의의 하위직사각형에 의해 완전히 커버될 수 있다면, 하위직사각형을 갖는 반복적인 호출이 대신 루트로서 발생되고 나서 복귀하라.
다시 한번, 루트 직사각형 내의 모든 하위직사각형에 대하여 반복하라.
하위직사각형이 새로운 직사각형에 완전하게 포함된다면, 하위직사각형은 루트 직사각형으로부터 새로운 직사각형으로 이동된다. 하위직사각형의 룰 목록 및 그 룰 목록을 따르는 모든 직사각형은 새로운 직사각형의 목록도 또한 포함하기 위하여 변경될 필요가 있다.
하위직사각형이 새로운 직사각형과 교차한다면, 새로운 직사각형이 생성되어 그 둘의 공통 부분을 포함한다. 교차하는 직사각형의 룰 목록은 원래의 것들의 조합이다. 그리고 나서, 새로운 직사각형은 원래의 하위직사각형과 새로운 직사각형 둘 모두에 추가된다.
일단 모든 직사각형이 DAG에 추가된다면, 그 그래프는 트래버스(traverse)될 수 있으며 두 개의 2-차원 검사 빌딩 코드에 의해 요구되는 프리픽스-규정 직사각형의 목록이 발생될 수 있다. 교차하는 직사각형은 적절한 프리픽스-규정 직사각형일 수 있지만, 하위직사각형이 삭제된 이후에 나머지의 주위 직사각형은 프리픽스에 의해 적절하게 규정되지 않는다.
데이터 구조가 상술된 바와 같이 필터링 검사를 위해 사용될때, 검사는 두 단계에서 발생된다. 우선 2차원의 어드레스 검사가 수행되어 정수를 발생시킨다. 이 정수는 룰의 어레이에서 인덱스이며, 여기서 각각의 룰은 정합이 발견된 경우, 어느 필드가 비교될 것인지 및 어떤 동작이 수행될지를 규정한다. 각각의 룰은 다음 필드를 가지며, 그 필드는 오정합의 경우에 어느 룰이 계속되는지를 나타낸다. 룰 목록의 트래버싱은 정합이 발견될때까지 계속되며, 그리고 그 때에 패킷을 차단 또는 전송하기 위하여 적절한 조치가 취하여 진다.
2-차원 프리픽스 문제는 다음과 같이 해결된다.
어드레스 공간 또는 유니버스(universe)(U)는 0 ≤ s < 232,0 ≤d < 232를 만족시키는 정수 쌍(s,d)으로 구성된 2 차원 공간이다.
만약, s0≤ s < s1, d0≤d < d1라면, (s,d)∈R을 만족시키는U의 서브셋 (R)은 직사각형으로 불리며, 여기서 (s0,d0),(s1,d1)∈R이다. 더구나, 그 쌍의 포인트[(s0,d0),(s1,d1)]는 특정하게 R로 규정된다.
[(s0,d0),(s1,d1)]로 규정된 직사각형은 프리픽스로 불리며, 여기서 어떤 음이 아닌 정수(is,id,ks, 및 kd)에 대하여이다.
P가 U의 부분(partition)이 되도록 한 세트의 프리픽스P={P1,P2,...,Pn} 및포인트(s,d)∈U가 제공되며, 2-차원 프리픽스 정합 문제는 (s,d)∈Pi하도록 i를 계산하는 문제이다.
파이어월의 소스-목적지 부분의 필터링 문제는 2-차원 프리픽스 정합 문제로 표현되며, 여기서, 세트P는 루팅 데이블 및 필터링 룰을 프리픽스 부분으로 변환함으로써 얻어진다. 필터링될 각각의 패킷이 프리픽스 정합을 필요로하기 때문에, 프리픽스 정합이 효율적으로 계산될 수 있도록 P의 표현을 발견하는 것이 필요로된다.
작은 32×32 비트 유니버스를 분할하는 많은 프리픽스는 도 3에서 도시된다. 검은 정사각형(square)(18)은 설정된 비트(대표값(representative))를 표현하며 흰정사각형(19)는 설정되지 않은 비트를 표현한다. 포인트(0,0)가 도 3에서 상부 왼편 코너에 위치된다는 것을 주의하자.
각각의 프리픽스[P = [(s0,d0),(s1,d1)] ∈P]에 대하여, 포인트[p0=(s0,d0)]는 P의 대표값으로 선택된다. 더구나,P= {P1,P2,...,Pn} = {(s1,d1),(s2,d2),... (sn,dn)}가P내의 프리픽스의 대표값의 세트를 표시한다고 하자.
sd≥s 및 dd≥d이도록 각각의 (s,d)∈U에 대하여 포인트(sd,dd)∈U가 제공되며, (sd,dd)는 (s,d)의 지배(dominating) 포인트이거나, 대안적으로 (s,d)가 (sd,dd)에 의해 지배받는다.
한 쌍의 포인트 (s1,d1),(s2,d2)∈U가 제공되며, 놈(norm)(L) 하에서 포인트 사이의 거리는에 의해 제공된다.
이제, 포인트 p=(s,d)가 제공되며,P에서 정합 프리픽스를 발견하는 문제는 놈(L) 하에서P에서 가장 가까운 지배 포인트 P를 발견하는 문제이다. 즉, P의 PiP의 지배 포인트는 Pi및 P 사이의 거리(L)를 최소화한다. 그러므로, 프리픽스 그 자신들 대신에 단지 지배 포인트들만을 표현하는 것은 충분하다.
도 4에 도시된 바와 같이, 세트(P)는 개념적으로 232x 232포인트들의 비트 매트릭스로 표현되며, 여기서 비트(P)는 P∈P조건의 세트이다. 표현을 위해 필요한 공간을 감소시키기 위하여, 우리는 실제로P를 네 가지 레벨 28+8진 트리로 표현한다. 각 레벨은 (다시) 개념적으로 28x 28비트의 비트 매트릭스로 표현되며, 여기서 비트(s,d)는 하위-트리 아래에 지배 포인트가 있다는 조건의 세트이다. 즉, 레벨(1)(최상위 레벨)에서, 비트(s,d)는U의 직사각형[(224*s, 224*d), (224*(s+1), 224*(d+1)]내에 지배 포인트의 존재 또는 부재를 표현한다.
레벨의 실제 표현은 2-차원 밀집 정크 또는 간단히 2d-정크이다. 레벨이 1-차원 밀집 정크에 의해 표현될 수 있는 방법 및 시간은 이후에 논의된다. 2d-정크은 32 x 32 타일로 구성되며, 여기서 각각의 타일은 8 x 8 비트를 표현한다. 타일을 규정하는 포인트가 프리픽스의 지배 포인트이기 때문에, 264가지 종류의 타일 모두가 가능하지는 않다. 사실상, 우리는 단지 677가지의 상이한 종류만이 가능하도록 타일에 제한을 부과한다.
다른 타일(Td) 내에 자신의 가장 가까운 지배 포인트를 갖는 타일(T) 내에 포인트(타일 내의 비트들중 하나에 의해 표현된 어떤 하위-유니버스 내의 포인트)가 있다면, 그 경우에 T 내의 모든 포인트는 Td내에 그들의 가장 까까운 지배 포인트를 갖는다. 지배 포인트의 정의는 지배 타일로 확장된다. 타일(Td)은 T의 지배 타일로 불리거나, 대안적으로, 타일(T)는 타일(Td)에 의해 지배받는다.
사전 정의에 대한 요구를 이행하기 위하여, 다음의 전제(lemma)가 요구된다.
P = [(s0,d0)(s1,d1)]가 s1-s0> 1 을 만족하는 프리픽스라면, 그 경우에[(s0,d0)(s0+2i,d1)] 및 [(s0+2i,d0)(s1,d1)]도 또한 프리픽스이며, 여기서 어떤 음이 아닌 정수(i)에 대하여 s1-s0=2i이다. 다른 차원에 대한 전제는 대칭적이다.
상기 전제에 의하여, 프리픽스는 필요로될때 언제나 2 부분으로 잘려질 수 있다. 그러므로, 타일(Td) 내에 대표값과 함께 한 세트의 프리픽스(P d)가 제공되어 우리는 모든 프리픽스가 동일한 타일 내에 자신의 종단 포인트를 가질 때까지 상기 요구를 이행하기 위하여 양자 모두의 차원에서 그것들을 반복적으로 자를 수 있다. 이것은 밀집2d 정크 구성의 중대한 부분 및 타일 커팅으로 불린다.
상이한 종류의 타일은 도 5-11에 도시된 일곱 개의 등급으로 분류된다. 각각의 등급에 대하여, 타일은 비트 매트릭스로 도시된다 별표는 0 또는 1 둘중에 하나일 수 있는 비트를 나타냄). 각각의 설정된 비트(*는 아님) 및 타일 등급에 대하여, 그 비트(포인트)에 의해 지배되는 서브셋의 보증된 경계를 나타내는 라인이 또한 존재한다. 타일 내의 설정된 비트는 통상적으로 다른 타일 내의 포인트를 오른쪽 및/또는 아래로 지배한다. 우리는 또한 그 등급에서 상이한 종류의 타일의 수를 제공할 수 있으며 네츄럴(natural) 및 제한적(restricted) 타일 등급 사이를 구별한다. 최종적으로, 우리는 타일이 밀집2d 정크에서 어떻게 표현되거나/엔코딩되는지를 서술한다.
등급(0, 0)는 도 5에 도시된다. 비트는 설정되지 않는다: 네츄럴이고 1 종류이며 등급 (1, 1), (1, 2), (2, 1), (1, 3+), 또는 (3+, 1)로부터 타일(Td)에 의해항상 지배 받는다. 등급(0, 0) 타일 내의 비트(sb,db)에서 한 포인트의 지배 포인트를 발견하는 것은 자신의 지배 타일(Td)의 비트(sb,db)에서 대응 포인트의 지배 포인트를 발견하는 것과 정확하게 동일하다. 그러므로, 등급(0, 0) 타일은 항상 자신의 지배 타일(Td)과 정확하게 동일한 방식으로 엔코딩될 수 있고, 그렇게 되어야만 한다.
등급(1, 1) 타일이 도 6에 도시된다. 한 개의 비트가 설정된다: 네츄럴이고 1 종류이며 등급(0, 0) 타일을 오른편 및/또는 아래로 지배한다. 이 타일 내의 모든 포인트가 동일한 가장 가까운 지배 포인트를 가지기 때문에, 우리는 타일 그 자제 내의 그 포인트들을 참조하여 간단히 엔코딩한다.
등급(1, 2) 타일이 도 7에 도시된다. 제 1행(D-차원) 내의 두 개의 비트가 설정된다: 네츄럴이고 1 종류이며 등급(0, 0) 타일을 아래로 지배한다. 등급(0, 0) 타일을 오른쪽으로 지배할 수 없다.
이 타일 내의 포인트에 두 개의 가장 가까운 지배 포인트가 있으며, 하나는 왼쪽 절반 내의 포인트를 위한 것이고 하나는 오른쪽 절반 내의 포인트를 위한 것이다. 우리는 길이(2)의 어레이로 이러한 지배 포인트 둘 모두를 참조하여 엔코딩하고 나서, 질문 포인트의 왼쪽/오른쪽 절반을 인덱스로 사용할 수 있다.
등급(2, 1) 타일은 도 8에 도시된다. 제 1열(S-차원) 내의 두 개의 비트가 설정된다: 네츄럴이고 1 종류이며 등급(0, 0) 타일을 오른편으로 지배한다. 등급 (0, 0) 타일을 아래로 지배할 수 없다. 이 타일 내의 포인트에 두 개의 가장 가까운 지배 포인트가 있으며, 하나는 상부 절반 내의 포인트를 위한 것이고 하나는 하부 절반 내의 포인트를 위한 것이다. 이러한 지배 포인트 둘 모두를 참조하여 길이 (2)의 어레이로 엔코딩하고 나서, 질문 포인트의 상부/하부 절반을 인덱스로 사용할 수 있다.
등급(1, 3+) 타일은 도 9에 도시된다. 제 1행 내의 세 개 이상의 비트가 설정된다. 네츄럴이고 24 종류이며, 등급(0, 0) 타일을 아래로 지배한다. 등급(0, 0)을 오른쪽으로 지배할 수 없다. 이 등급의 타일 내의 포인트의 많은 지배 포인트가 있다. 24개의 상이한 종류의 타일이 있기 때문에 그 종류의 타일을 엔코딩하는 것이 필요하다. 더구나, 제 1행 내에 설정된 각각의 비트에 대하여, 지배 포인트 아래로의 포인터(단지 하나만 있는 경우) 또는 다음 레벨 정크로의 포인터(몇개의 지배 포인트가 있는 경우)가 엔코딩된다. 최종적으로, 제 1 포인터를 참조하여 엔코딩된다(베이스 포인터). 이 방법에서, 질문 포인트(s,d)의 지배 포인트(또는 다음 레벨 정크의 참조)는 그 열 내에 d가 존재하고 그 종류의 정크와 함께 테이블 검사를 수행하여 포인터 오프셋(x)를 검색하도록 하고 결국 그 포인터를 베이스 포인터로부터 벗어난 x 포인터로 검색하도록 하는 것을 간단히 조사함으로써 발견될 수 있다. 임의의 다음 레벨 정크는 타일 내의 모든 대표값이 동일한 S-좌표 상에 있기 때문에 단지 하나의 (D-)차원일 필요가 있다.
등급(3+, 1) 타일은 도 10에 도시된다. 제 1열 내에 세 개 이상의 비트가 설정된다: 네츄럴이고 24 종류이며, 등급(0, 0) 타일을 오른쪽으로 지배한다. 등급 (0,0) 타일을 아래로 지배할 수 없다. 이 등급의 타일 내의 포인트에 많은 지배 포인트가 있을 수 있다. 24 개의 상이한 종류가 있기 때문에 그 타일의 종류를 엔코딩하는 것이 필요하다. 더구나, 제 1열 내의 각각의 설정된 비트에 대하여, 지배 포인트 아래로의 포인터(단지 하나인 경우) 또는 다음 레벨 정크(여러 지배 포인트인 경우)가 엔코딩된다. 최종적으로, 제 1 포인터를 참조하여 엔코딩된다(베이스 포인터). 이 방법에서, 질문 포인트(s,d)의 지배 포인트(또는 다음 레벨 정크의 기준)은 그 행 내에 s가 존재하고 그 종류의 정크와 함께 테이블 검사를 수행하여 포인터 오프셋(x)를 검색하도록 하고 결국 그 포인터를 베이스 포인터로부터 벗어난 x 포인터로 검색하도록 하는 것을 간단히 조사함으로써 발견될 수 있다. 임의의 다음 레벨 정크는 타일 내의 모든 대표값이 동일한 D-좌표 상에 있기 때문에 단지 하나의 (S-)차원일 필요가 있다.
등급(2+, 2+) 타일이 도 11에 도시된다. 두 개 이상의 비트가 제 1행 및 제 1열 둘 모두에서 설정된다.: 제한되고 625 종류이며, 다른 타일을 지배할 수 없고, 다른 타일에 의해 지배받을 수 없다. 통상적으로 이 등급의 타일 내에 많은 지배 포인트가 있다. 엔코딩은 정확하게 등급(1, 3+) 및 (3+, 1) 타일에 대해서만 수행된다. 그러나, 실제 엔코딩을 수행하기 전에 상이한 종류의 수를 감소시키기 위하여 제한이 부과된다. 제 1의 태스크(task)는 정의(Definition) 8의 타일 제한과 유사한 제한을 각각의 비트에 부과하는 것이다. 그리고 나서, 길이(8)의 한 쌍의 비트 벡터(Sv 및 Dv)가 계산되며, 여기서 Si는 i번째 행에서 설정된 비트가 존재하면 1이고 그렇지 않으면 0이고, Di는 i번째 열에서 설정된 비트가 존재하면 1이고 그렇지 않으면 0이다.
새로운 타일은 매트릭스 승산을 사용하여 Sv 및 DvT의 곱을 계산함으로써 최종적으로 생성된다.
등급(1, 3+) 및 (3+, 1) 타일에서와 같이, 일 차원의 하위-레벨이 또한 이 경우에 제공될 수 있다. 하나 이상의 대표값을 포함하는 비트 내의 모든 대표값이 S-차원이 무너지는 것을 의미하는U내의 동일한 행에 존재하는지 D-차원이 무너지는 것을 의미하는U내의 동일한 열 상에 존재하는지가 점검된다.
데이터 구조의 부가적인 서술이 NAT 및 HP 엔트리를 표현하기 위한 파이어월에서 사용된다.
둘 모두의 경우에, 프로세싱된 패킷의 IP 어드레스의 쌍(saddr 및 daddr), 포트의 쌍(sport 및 dport), 프로토콜(proto)이 검사시에 키로서 사용된다. 검사시에 제 1 단계는 해시(hash) 값을 계산하는 것이다. 이것은 비트 시프트 비트-방식의 논리 연산자와 같은 매우 간단하고 신속한 명령을 사용하여 수행된다. 그리고 나서, 해시 값을 인덱스로 사용하여 16 비트 포인터는 큰 어레이(해시 테이블)로부터 검색된다.
포인터는 검사가 잘못된(텅빈) 것을 의미하는 0 이거나 작은 세트의 키를 표현하기 위한 매우 효율적인 데이터 구조인 파트리시아 트리의 루트를 참조한다. 포인터가 파트리시아 트리를 참조한다면, 키는 saddr, daddr, sport, dport, 및 porto의 비트 패턴을 연결시킴으로써 형성된다. 그리고 나서, 키는 다음 섹션에서서술된 바와 같이 파트리시아 트리를 탐색할때 사용된다.
파트리시아 트리는 질문 키를 비트 어레이로 취급하는 이진 트리이며, 각 내부 노드 내의 비트 인덱스를 사용하여 분기를 지시한다. 탐색은 루트로부터 리프 (leaf)로 트리를 트래버싱함으로써 성취된다. 내부 노드를 비트 인덱스(i)로 방문할때, 질문 키의 비트(i)가 검사되어 왼쪽(비트가 0인 경우) 또는 오른쪽(비트가 1인 경우) 하위-트리에서 탐색이 계속되는지 여부를 결정한다. 트래버셜(traversal)은 리프에 도착할때 중단된다. 그리고 나서, 질문 키가 테이블 내에 존재하는지 아닌지를 결정하기 위하여, 질문 키는 그 리프 내에 저장된 키와 비교된다. 두 키가 동일하면, 탐색은 성공이다.
도 12는 여섯 개의 키를 포함하는 파트리시아 트리 내의 질문 키(001111)에 대하여 실패한 탐색의 예를 도시한 도면이다. 비트 번호(0, 2, 및 3)는 트래버셜 동안 검사되며, 그 트래버셜은 키(011101)를 갖는 리프에서 끝난다. 질의 및 리프 키가 비교될때, 오정합이 비트 번호(1)에서 검출된다.
내부 노드에 저장된 비트 인덱스들에 대하여, 파트리시아 트리는 무더기 (heap) 정열된다. 즉, 루트를 제외한 임의의 내부 노드는 자신의 부모의 비트 인덱스보다 큰 비트 인덱스를 갖는다. 그것은 비트 인덱스(i)를 갖는 노드에서 루팅된 (rooted) 하위-트리 내에 저장된 모든 키가 비트(i-1)까지 동일하며 비트(i-1)를 포함하고 있다는 것을 따른다.
삽입은 실패한 탐색을 우선 수행하고, 질문 및 리프 키의 비교에서 제 1 오정합 비트의 인덱스(i)를 기록함으로써 성취된다. 그리고 나서, 두 개의 노드가 생성되며, 새로운 내부 노드는 질문 키에 대한 리프 노드 및 인덱스(i)를 갖는다. 질문 키의 i번째 비트가 0인지 1인지에 따라서, 리프는 내부 노드의 왼쪽 또는 오른쪽 하위-트리로서 각각 저장된다. 그리고 나서, 다른 하위-트리를 링크 필드로 사용함으로써, 내부 노드는 루트로부터 리프로 트래버싱된 경로 내의 i 보다 큰 가장 적은 비트 인덱스를 갖는 노드 상에 직접적으로 삽입된다.
도 13은 도 12에서 사전 예의 실패한 탐색으로부터 질문 키의 삽입하게 하는 파트리시아 트리를 도시한 것이다. 비트 인덱스(1)을 갖는 새로운 내부 노드가 생성되며, 루트로부터 트래버싱된 경로 내의 비트 인덱스(0 및 2)를 갖는 노드 사이에 삽입된다.
홀 펀칭을 위하여 사용된 파트리시아 해싱은 정확하게 상술된 바와 같이 동작한다-간단한 해시 테이블 검사는 파트리시아 트리 검사보다 선행한다. 대부분의 시간에서, 리프는 직접적으로 도착되고, 이것은 그 파라미터로부터 비트 어레이를 형성할 필요가 없다는 것을 의미한다-이것들은 파트리시아 리프를 포함하는/나타내는 구조에서 대응 드와 직접적으로 비교된다.
I2X-HP 및 X2I-HP 이 둘 모두를 위하여 사용된 하나의 검사 기능(hp_검사 (iaddr, xaddr, iport, xport, proto))이 제공된다. 이것들 사이의 유일한 차이는 파라미터가 제공되는 순서에 있다. I2X-HP에 대하여, 기능 호출은 hp_검사(saddr, daddr, sport, dport, proto)이며, X2I-HP에 대하여, 기능 호출은 hp_검사(daddr, saddr, dport, sport, proto)이다.
검사 기능은 파트리시아 리프 키를 포함하는 구조를 참조하여 복귀된다. 즉,iaddr, xaddr, iport, xport, proto, 및 한 쌍의 다른 필드는 가령, TCP 시퀀스 수와 같은 접속의 상태를 나타낸다.
NAT를 위한 파트리시아 해싱은 HP를 위한 것보다 조금 더 복잡하다. 그 이유는 다지 두 개의 어드레스 및 포트가 포함되는 HP에 반대되는 바와 같이, 세 개의 상이한 어드레스 및 포트(iaddr, xaddr, naddr, iport, nport, xport)가 포함되기 때문이다. 이것은 I2X-HP 및 X2I-HP 사이의 차이가 검사에서 단지 교환 어드레스 및 포트보다 조금 더 미묘하게 될 수 있다는 것을 의미한다.
그 문제는 검사가 I2X-HP 또는 X2I-HP인 경우(이것은 사용하는 두 개의 해시 테이블이 본질적으로 동일함), 가장 적게 중요한 비트의 해시 값을 반영시킴으로써 해결된다. NAT 접속을 위한 파트리시아 리프 키를 포함하는 구조는 I2X-HP 및 X2I-HP를 위한 것과 동일하고 그것은 모드 세 개의 어드레스 및 포트를 포함한다.
두 검사 기능(nat_i2x_검사(saddr, daddr, sport, dport, proto) 및 nat_x2i_검사(saddr, daddr, sport, dport, proto))이 있다. 두 기능 모두 인수 (argument)를 사용하여 해시 값을 계산하며, 여기서 가장 적게 중요한 비트는 그에 따라서 설정된다. 결과적인 포인터가 파트리시아 노드(내부 노드)를 참조하면, 어드레스, 포트, 그리고 프로토콜이 연결되어 파트리시아 트리를 트래버싱하기 위하 필요한 비트 어레이를 생성한다. 리프 구조가 도착될때, 어드레스, 포트, 그리고 프로토콜은 리프 내의 대응 필드에 비교된다.
패킷이 I2X-HP에 겪을때:
(패킷의) saddr은 (리프 구조의) iaddr과 비교된다.
daddr은 xaddr과 비교된다
sport는 iport와 비교된다
dport는 xport와 비교된다
proto는 proto와 비교된다
이것들 모두가 정합한다면, 검사는 성공이며, 패킷의 소스 어드레스 및 포트 (saddr, sport)는 패킷이 전송되기 전에, (리프 구조의) naddr 및 nport로 각각 대체된다.
패킷이 X2I-HP에 겪을때:
(패킷의) saddr은 (리프 구조의) xaddr과 비교된다.
daddr은 naddr과 비교된다
sport는 xport와 비교된다
dport는 nport와 비교된다
proto는 proto와 비교된다
이것들 모두가 정합한다면, 검사는 성공이며, 패킷의 목적지 어드레스 및 포트(daddr, dport)는 패킷이 다음 처리 단계로 전송되기 전에, (리프 구조의) iaddr 및 iport로 각각 대체된다.
HP 및 NAT 데이터 구조의 갱신은 BSP(프로세서 1) 상에서 실행되는 EffNIX 커널(kernel)(사전 NetBSD)에 의해 수행되지만 대부분의 검사는 AP(프로세서 2) 상에서 실행되는 전송 커널에 의해 수행된다. 단지 HP 데이터 구조의 하나의 예와 NAT 데이터 구조의 하나의 예가 있다. 이것들은 공유된 메모리에 상주하고 두 개의프로세서에 의해 동시에 접속된다. 이것은 매우 재미있는 동기화 문제-하나의 기록기 및 하나의 판독기를 발생시킨다. 그 동기화는 어떤것(기록)을 변화시키기 전에, 갱신 루틴을 리프 구조 및 노드로 무효화함으로써 해결된다. 검사 루틴은 접속된 리프와 노드가 접속되기 전 및 후에 유효한지를 점검하고 그것들이 접속동안 변화되지 않는지를 또한 점검한다. 레이스가 발생하고 검출되다면(모든 위험한 레이스 상황이 검출되면), 검사는 실패하고 패킷은 BSP로 전송되어 거기에서 (프로세싱하여 성공적인 검사가 수행되거나 데이터 구조가 갱신되도록) 다루어진다.
본 발명이 상술된 목적과 장점을 완전히 충족시키는 내부 및 외부 네트워크 사이의 네트워크 데이터 패킷 트래픽을 제어하는 파이어월 장치 및 방법을 제공한다는 것은 명백하다.
본 발명이 특정한 실시예에 관하여 기술되었지만, 본 발명은 다양한 형태의 실시예를 수용할 수 있고, 본 공표가 본 발명 원리의 예로서 간주될 것이며, 상술된 특정 실시예에 의해 본 발명의 국한되는 것은 아니다.

Claims (20)

  1. 네트워크 사이에 전송된 데이터 패킷의 데이터 필드 내의 내용에 따라서, 전체 룰의 세트로부터 상기 데이터 패킷에 적용가능한 룰을 선택하여 파이어월(3)을 통하여 상기 데이터 패킷을 차단하거나 상기 패킷을 전송하도록 하는 필터링 수단을 구비하는 내부 및 외부 네트워크(1,5,4) 사이의 네트워크 데이터 패킷 트래픽 제어용 파이어월(3)로서,
    한 세트의 어드레스 프리픽스 내에 패킷의 소스 및 목적지 어드레스의 2-차원 검사용 2-차원 어드레스 검사 수단으로서, 상기 각각의 프리픽스는 전체 세트의 룰중 룰의 서브셋을 가져서 소스 및 목적지 어드레스와 관련된 프리픽스를 자신의 대표값을 통해서 발견하도록 하는, 상기 어드레스 검사 수단과,
    상기 데이터 필드의 내용을 기초로 하여 상기 데이터 패킷에 적용가능한 룰을 발견하는 룰 정합용 룰 정합 수단(10)을 구비하는 것을 특징으로 하는 파이어월.
  2. 제 1항에 있어서,
    상기 2-차원 어드레스 검사 수단(8)은 놈(L) 하에서P내에 가장 가까운 지배 포인트(P), 즉 Pi및 P 사이의 거리(L)를 최소화하는 P의 PiP의 지배 포인트를 결정함으로써 상기 소스 및 목적지에 관련된 프리픽스를 발견하기 위한 수단을구비하는 것을 특징으로 하는 파이어월.
  3. 제 2항에 있어서,
    상기 소스 및 목적지 어드레스는 포인트(s,d)∈U로 표현되며, 여기서U는 0 ≤ s < 232,0 ≤d < 232를 만족시키는 정수 쌍(s, d)으로 표현된 2 차원의 어드레스 공간이며,
    상기 프리픽스[P= {P1,P2,...,Pn}]는 어드레스 공간(U)의 부분이며,
    각각의 프리픽스(Pi)는 [(s0, d0), (s1, d1)]에 의해 규정된 어드레스 공간(U) 내의 논리적인 직사각형(R)이며, 여기서 어떤 음이 아닌 정수(is,id,ks, 및 kd)에 대하여이고이며,
    상기 논리적인 직사각형(R)은 s0≤ s < s1, d0≤d < d1인 경우 (s, d)∈R을 만족시키는U의 서브셋이며, 여기서 (s0,d0), (s1,d1)∈U이고, 그 쌍의 포인터 [(s0,d0), (s1,d1)]는 상기 직사각형(R)에 의해 특정하게 규정되는 것을 특징으로 하는 파이어월.
  4. 제 2항 또는 3항에 있어서,
    각각의 프리픽스 P = [(s0,d0), (s1,d1)∈P]에 대하여, 상기 포인트(p0=(s0,d0))는 P의 대표값이며,P= {p1, p2,...,pn} = {(s1,d1),(s2,d2),...,(sn,dn)}는P내의 프리픽스의 대표값의 세트이고, 여기서 각각의 (s,d)∈U에 대하여 포인트 (sd,dd)∈U가 제공되며, 여기서 sd≥ s 및 dd≥ d 이고 (s,d)는 (sd,dd)에 의해 지배되는 것을 특징으로 하는 파이어월.
  5. 제 3항에 있어서,
    한 쌍의 포인트[(s1,d1)(s2,d2)∈U]가 제공되며, 놈(L) 하에서 상기 포인트들 사이의 거리는로 제공되는 것을 특징으로 하는 파이어월.
  6. 제 1항 내지 5항중 어느 한 항에 있어서,
    상기 패킷의 프래그먼트 헤더가 수신될 때까지 프래그먼팅된 패킷으로부터 패킷 프래그먼트를 수집하기 위한 프래그먼트 수집 수단과, 패킷의 프래그먼트 헤더 필드 내에 제공된 정보를 엔트리 수단 내에 저장하기 위한 프래그먼트 헤더 저장 수단과, 상기 프래그먼트 헤더와 함께 시작하는 프래그먼트 헤더 정보가 제공된 패킷 프래그먼트를 전송하기 위한 프래그먼트 전송 수단을 구비하는 프래그먼트 기계 (11)를 구비하며, 상기 각각의 프래그먼트는 필터링 수단에 의해 규칙적인 프래그먼트되지 않은 패킷으로 처리되는 것을 특징으로 하는 파이어월.
  7. 제 1항 내지 6항중 어느 한 항에 있어서,
    상기 프리픽스 내의 정보에 따라서 내부 소스 어드레스를 상기 파이어월을 통하여 외부로 전송된 패킷의 외부 소스 어드레스로 변환하거나, 외부 소스 어드레스를 상기 파이어월을 통하여 내부로 전송된 패킷의 내부 소스 어드레스로 변환하기 위한 네트워크 어드레스 변환 수단(12, 14)을 구비하는 것을 특징으로 하는 파이어월.
  8. 제 1항 내지 6항중 어느 한 항에 있어서,
    상기 프리픽스 내의 정보에 따라서 내부 소스 어드레스를 상기 내부 네트워크(1)로부터 상기 외부 네트워크(4)로 전송된 패킷의 외부 소스 어드레스로 변환하거나, 외부 소스 어드레스를 상기 외부 네트워크(4)로부터 상기 내부 네트워크(1)로 전송된 패킷의 내부 소스 어드레스로 변환하기 위한 네트워크 어드레스 변환 수단을 구비하는 것을 특징으로 하는 파이어월.
  9. 제 1항 내지 8항중 어느 한 항에 있어서,
    프리픽스 내의 정보를 기초로 하여 상기 패킷이 상기 내부 네트워크로부터 시작된 접속에 대하여 외부-대-내부 차단 룰로부터의 일시적인 제외를 겪는지를 결정하기 위한 홀 펀칭 수단(16, 17)을 구비하며, 여기서 상기 외부 네트워크(4)로부터 상기 내부 네트워크(1)로 전송된 패킷에 대한 복귀 채널이 접속의 지속기간 동안 상기 파이어월을 통하여 설정되는 것을 특징으로 하는 파이어월.
  10. 네트워크 사이에 전송된 상기 데이터 패킷의 데이터 필드 내의 내용에 따라서 전체 세트의 룰로부터 데이터 패킷에 적용가능한 룰을 선택하여 파이어월(3)을 통하여 상기 데이터 패킷을 차단하거나 상기 패킷을 전송하도록 하는 필터링 수단을 구비하는 내부 및 외부 네트워크(1,5,4) 사이의 네트워크 데이터 패킷 트래픽 제어용 파이어월(3)로서,
    패킷의 프래그먼트 헤더가 수신될 때까지 프래그먼팅된 패킷으로부터 패킷 프래그먼트를 수집하기 위한 프래그먼트 수집 수단과, 패킷의 프래그먼트 헤더 필드 내에 제공된 정보를 엔트리 수단 내에 저장하기 위한 프래그먼트 헤더 저장 수단과, 상기 프래그먼트 헤더와 함께 시작하는 프래그먼트 헤더 정보가 제공된 패킷 프래그먼트를 전송하기 위한 프래그먼트 전송 수단을 구비하는 프래그먼트 기계 (11)를 구비하며, 상기 각각의 프래그먼트는 필터링 수단에 의해 규칙적인 프래그먼트되지 않은 패킷으로 처리되는 것을 특징으로 하는 파이어월.
  11. 네트워크 사이에 전송된 데이터 패킷의 데이터 필드 내의 내용에 따라서 전체 룰의 세트로부터 상기 데이터 패킷에 적용가능한 룰을 선택하는 단계와, 상기 룰을 상기 패킷에 적용하는 단계와, 상기 룰에 따라서 파이어월(3)을 통하여 상기 패킷을 차단하거나 전송하는 단계를 포함하며, 파이어월(3)을 통하여 내부(1,5) 및 외부 네트워크(4) 사이의 네트워크 데이터 패킷 트래픽을 제어하는 방법으로서,
    상기 필터링은
    한 세트의 어드레스 프리픽스 내의 상기 소스 및 목적지 어드레스와 관련된 프리픽스를 자신의 대표값을 통해서 발견하기 위하여 상기 패킷의 소스 및 목적지 어드레스의 2-차원 검사를 수행하는 단계로서, 각각의 프리픽스는 전체 룰의 세트중 룰의 서브셋을 갖는, 상기 수행 단계와,
    상기 데이터 필드의 내용을 기초로 하여 상기 데이터 패킷에 적용가능한 룰을 발견하기 위하여 룰의 서브셋 상에 룰 정합을 수행하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
  12. 제 11항에 있어서,
    상기 데이터 패킷에 적용가능한 룰을 선택하는 상기 단계 이전 단계는,
    상기 패킷의 프래그먼트 헤드가 수신될 때까지 프래그먼팅된 패킷으로부터 패킷 프래그먼트를 수집하는 단계와,
    상기 패킷의 프래그먼트 헤더 필드 내에 제공된 정보를 엔트리 수단 내에 저장하는 단계와,
    상기 프래그먼트 헤더와 함께 시작하는 프래그먼트 헤더 정보가 제공된 패킷 프래그먼트를 전송하는 단계를 더 포함하며, 상기 각각의 프래그먼트는 필터링 수단에 의해 규칙적인 프래그먼트되지 않은 패킷으로 처리되는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
  13. 제 11항 또는 12항에 있어서,
    룰 정합을 수행하는 상기 단계 이전 단계는,
    상기 프리픽스 내의 정보에 따라서, 외부 소스 어드레스를 파이어월(3)을 통하여 내부로 전송될 패킷의 내부 소스 어드레스로 변환하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
  14. 제 11항 내지 13항중 어느 한 항에 있어서,
    룰 정합을 수행하는 상기 단계 이전 단계는,
    상기 프리픽스 내의 정보에 따라서, 외부 소스 어드레스를 상기 외부 네트워크(4)로부터 상기 내부 네트워크(1,5)로 전송될 패킷의 내부 소스 어드레스로 변환하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
  15. 제 11항 내지 14항중 어느 한 항에 있어서,
    상기 프리픽스 내의 정보에 따라서, 내부 소스 어드레스를 파이어월(3)을 통하여 외부로 전송될 패킷의 외부 소스 어드레스로 변환하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
  16. 제 11항 내지 15항중 어느 한 항에 있어서,
    상기 프리픽스 내의 정보에 따라서, 내부 소스 어드레스를 상기 내부 네트워크(4)로부터 상기 외부 네트워크(1)로 전송될 패킷의 외부 소스 어드레스로 변환하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
  17. 제 11항 내지 16항중 어느 한 항에 있어서,
    룰 정합을 수행하는 상기 단계 이전 단계는,
    상기 프리픽스 내의 정보에 근거하여, 상기 패킷이 상기 내부 네트워크(1)로부터 시작된 접속에 대하여 외부-대-내부 차단 룰로부터의 일시적인 제외를 겪는지를 결정하는 단계와,
    그렇게 된 경우, 상기 파이어월을 통하여 상기 외부 네트워크(4)로부터 상기 내부 네트워크(1)로 전송된 패킷에 대한 복귀 채널이 접속의 지속기간에 대응하는 기간을 가지고 설정되는 단계를 더 포함하는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
  18. 네트워크 사이에 전송된 데이터 패킷의 데이터 필드 내의 내용에 따라서 상기 데이터 패킷에 적용가능한 룰을 전체 룰의 세트로부터 선택하는 단계와, 상기 룰을 상기 패킷에 적용하는 단계와, 상기 룰에 따라서 파이어월(3)을 통하여 상기 패킷을 차단하거나 전송하는 단계를 포함하며, 파이어월(3)을 통하여 내부 및 외부 네트워크(1,5,4) 사이의 네트워크 데이터 패킷 트래픽을 제어하는 방법으로서,
    상기 데이터 패킷에 적용가능한 룰을 선택하는 단계 이전 단계는,
    상기 패킷의 프래그먼트 헤드가 수신될 때까지 프래그먼팅된 패킷으로부터패킷 프래그먼트를 수집하는 단계와,
    상기 패킷의 프래그먼트 헤더 필드 내에 제공된 정보를 엔트리 수단 내에 저장하는 단계와,
    상기 프래그먼트 헤더와 함께 시작하는 프래그먼트 헤더 정보와 함께 제공된 패킷 프래그먼트를 전송하는 단계를 더 포함하며, 상기 각각 프래그먼트는 필터링 수단에 의해 규칙적인 프래그먼트되지 않은 패킷으로 처리되는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
  19. 제 11항 내지 18항중 어느 한 항에 있어서,
    상기 패킷의 소스 및 목적지 어드레스의 2-차원 검사를 수행하는 상기 단계는,
    놈(L) 하에서P내에 가장 가가운 지배 포인트(P), 즉 Pi및 P 사이의 거리 (L)를 최소화하는 P의 PiP의 지배 포인트를 발견하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
  20. 제 19항에 있어서,
    상기 소스 및 목적지 어드레스는 포인트(s,d)∈U에 의해 표현되며, 여기서U는 0 ≤ s < 232,0 ≤d < 232를 만족시키는 정수 쌍(s, d)에 의해 표현된 2 차원의 어드레스 공간이며,
    상기 프리픽스[P= {P1,P2,...,Pn}]는 어드레스 공간(U)의 부분이며,
    각각의 프리픽스(Pi)는 [(s0, d0), (s1, d1)}에 의해 규정된 어드레스 공간(U) 내의 논리적인 직사각형(R)이며, 여기서 어떤 음이 아닌 정수(is,id,ks, 및 kd)에 대하여이고이며, 여기서 상기 논리적인 직사각형 (R)은 s0≤ s < s1, d0≤d < d1인 경우 (s, d)∈R을 만족시키는U의 서브셋이고, 여기서 (s0, d0), (s1, d1)∈U이고, 그 쌍의 포인터 [(s0, d0), (s1, d1)]는 상기 직사각형(R)에 의해 특정하게 규정되며,
    각각의 프리픽스 P = [(s0, d0), (s1, d1)∈P]에 대하여, 상기 포인트(p0=(s0, d0))는 P의 대표값이며,P= {p1, p2,...,pn} = {(s1,d1),(s2,d2),...,(sn,dn)}는P내의 프리픽스의 대표값의 세트이고, 여기서 각각의 (s,d)∈U에 대하여 포인트(sd,dd)∈U가 제공되며, 여기서 sd≥ s 및 dd≥ d 이고 (s,d)는 (sd,dd)에 의해 지배되며,
    한 쌍의 포인트[(s1,d1)(s2,d2)∈U]가 제공되며, 놈(L) 하에서 상기 포인트들 사이의 거리는에 의해 제공되는 것을 특징으로 하는 네트워크 데이터 패킷 트래픽 제어 방법.
KR1020007015107A 1998-07-02 1999-07-02 내부 및 외부 네트워크 사이의 네트워크 데이터 패킷트래픽을 제어하는 파이어월 장치 및 방법 KR20010072661A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9802415-1 1998-07-02
SE9802415A SE513828C2 (sv) 1998-07-02 1998-07-02 Brandväggsapparat och metod för att kontrollera nätverksdatapakettrafik mellan interna och externa nätverk
PCT/SE1999/001202 WO2000002114A2 (en) 1998-07-02 1999-07-02 Firewall apparatus and method of controlling network data packet traffic between internal and external networks

Publications (1)

Publication Number Publication Date
KR20010072661A true KR20010072661A (ko) 2001-07-31

Family

ID=20411974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007015107A KR20010072661A (ko) 1998-07-02 1999-07-02 내부 및 외부 네트워크 사이의 네트워크 데이터 패킷트래픽을 제어하는 파이어월 장치 및 방법

Country Status (18)

Country Link
US (1) US20020016826A1 (ko)
EP (1) EP1127302A2 (ko)
JP (1) JP2002520892A (ko)
KR (1) KR20010072661A (ko)
CN (1) CN1317119A (ko)
AU (1) AU4948499A (ko)
BG (1) BG105087A (ko)
CA (1) CA2336113A1 (ko)
EA (1) EA200100099A1 (ko)
EE (1) EE200000783A (ko)
HU (1) HUP0103814A2 (ko)
ID (1) ID29386A (ko)
IL (1) IL140481A0 (ko)
NO (1) NO20006668L (ko)
PL (1) PL345701A1 (ko)
SE (1) SE513828C2 (ko)
SK (1) SK20232000A3 (ko)
WO (1) WO2000002114A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030080412A (ko) * 2002-04-08 2003-10-17 (주)이카디아 외부네트워크 및 내부네트워크로부터의 침입방지방법
KR100582555B1 (ko) * 2004-11-10 2006-05-23 한국전자통신연구원 네트워크 트래픽 이상 상태 검출/표시 장치 및 그 방법

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001243364A1 (en) * 2000-03-01 2001-09-12 Sun Microsystems, Inc. System and method for avoiding re-routing in a computer network during secure remote access
US20040073617A1 (en) * 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US6950947B1 (en) 2000-06-20 2005-09-27 Networks Associates Technology, Inc. System for sharing network state to enhance network throughput
US7031267B2 (en) 2000-12-21 2006-04-18 802 Systems Llc PLD-based packet filtering methods with PLD configuration data update of filtering rules
US7013482B1 (en) 2000-07-07 2006-03-14 802 Systems Llc Methods for packet filtering including packet invalidation if packet validity determination not timely made
GB2371186A (en) * 2001-01-11 2002-07-17 Marconi Comm Ltd Checking packets
JP3963690B2 (ja) * 2001-03-27 2007-08-22 富士通株式会社 パケット中継処理装置
US7640434B2 (en) * 2001-05-31 2009-12-29 Trend Micro, Inc. Identification of undesirable content in responses sent in reply to a user request for content
US7117533B1 (en) * 2001-08-03 2006-10-03 Mcafee, Inc. System and method for providing dynamic screening of transient messages in a distributed computing environment
US6993660B1 (en) 2001-08-03 2006-01-31 Mcafee, Inc. System and method for performing efficient computer virus scanning of transient messages using checksums in a distributed computing environment
JP3864743B2 (ja) * 2001-10-04 2007-01-10 株式会社日立製作所 ファイアウォール装置、情報機器および情報機器の通信方法
US7298745B2 (en) * 2001-11-01 2007-11-20 Intel Corporation Method and apparatus to manage packet fragmentation with address translation
US7761605B1 (en) 2001-12-20 2010-07-20 Mcafee, Inc. Embedded anti-virus scanner for a network adapter
US8185943B1 (en) 2001-12-20 2012-05-22 Mcafee, Inc. Network adapter firewall system and method
AU2003227123B2 (en) * 2002-05-01 2007-01-25 Firebridge Systems Pty Ltd Firewall with stateful inspection
AUPS214802A0 (en) 2002-05-01 2002-06-06 Firebridge Systems Pty Ltd Firewall with stateful inspection
US7676579B2 (en) * 2002-05-13 2010-03-09 Sony Computer Entertainment America Inc. Peer to peer network communication
US7243141B2 (en) * 2002-05-13 2007-07-10 Sony Computer Entertainment America, Inc. Network configuration evaluation
US8224985B2 (en) * 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8060626B2 (en) 2008-09-22 2011-11-15 Sony Computer Entertainment America Llc. Method for host selection based on discovered NAT type
US8234358B2 (en) * 2002-08-30 2012-07-31 Inpro Network Facility, Llc Communicating with an entity inside a private network using an existing connection to initiate communication
FR2844949B1 (fr) * 2002-09-24 2006-05-26 Radiotelephone Sfr Procede de gestion d'une configuration d'une passerelle par un utilisateur de la passerelle
AU2003233838A1 (en) * 2003-06-04 2005-01-04 Inion Ltd Biodegradable implant and method for manufacturing one
CN100345118C (zh) * 2003-11-07 2007-10-24 趋势株式会社 数据包内容过滤装置及方法
US7669240B2 (en) * 2004-07-22 2010-02-23 International Business Machines Corporation Apparatus, method and program to detect and control deleterious code (virus) in computer network
JP4405360B2 (ja) * 2004-10-12 2010-01-27 パナソニック株式会社 ファイアウォールシステム及びファイアウォール制御方法
US7769858B2 (en) * 2005-02-23 2010-08-03 International Business Machines Corporation Method for efficiently hashing packet keys into a firewall connection table
US20060268852A1 (en) * 2005-05-12 2006-11-30 David Rosenbluth Lens-based apparatus and method for filtering network traffic data
US20070174207A1 (en) * 2006-01-26 2007-07-26 Ibm Corporation Method and apparatus for information management and collaborative design
US8903763B2 (en) 2006-02-21 2014-12-02 International Business Machines Corporation Method, system, and program product for transferring document attributes
CN101014048B (zh) * 2007-02-12 2010-05-19 杭州华三通信技术有限公司 分布式防火墙系统及实现防火墙内容检测的方法
US8392981B2 (en) * 2007-05-09 2013-03-05 Microsoft Corporation Software firewall control
US7995478B2 (en) * 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
US20080298354A1 (en) * 2007-05-31 2008-12-04 Sonus Networks, Inc. Packet Signaling Content Control on a Network
EP2171983B1 (de) * 2007-06-25 2012-02-29 Siemens Aktiengesellschaft Verfahren zum weiterleiten von daten in einem dezentralen datennetz
US7933273B2 (en) 2007-07-27 2011-04-26 Sony Computer Entertainment Inc. Cooperative NAT behavior discovery
CN101110830A (zh) * 2007-08-24 2008-01-23 张建中 创建多维地址协议的方法、装置和系统
CN101861722A (zh) * 2007-11-16 2010-10-13 法国电信公司 用于对分组进行归类的方法和装置
US8171123B2 (en) 2007-12-04 2012-05-01 Sony Computer Entertainment Inc. Network bandwidth detection and distribution
US7856506B2 (en) 2008-03-05 2010-12-21 Sony Computer Entertainment Inc. Traversal of symmetric network address translator for multiple simultaneous connections
CN101827070A (zh) * 2009-03-06 2010-09-08 英华达股份有限公司 可携式通讯装置
US9407602B2 (en) * 2013-11-07 2016-08-02 Attivo Networks, Inc. Methods and apparatus for redirecting attacks on a network
US11507663B2 (en) 2014-08-11 2022-11-22 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
US9710648B2 (en) 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US20160094659A1 (en) * 2014-09-25 2016-03-31 Ricoh Company, Ltd. Information processing system and information processing method
US9692727B2 (en) 2014-12-02 2017-06-27 Nicira, Inc. Context-aware distributed firewall
US11277387B2 (en) 2015-12-22 2022-03-15 Hirschmann Automation And Control Gmbh Network with partly unidirectional data transmission
US11115385B1 (en) * 2016-07-27 2021-09-07 Cisco Technology, Inc. Selective offloading of packet flows with flow state management
US10193862B2 (en) 2016-11-29 2019-01-29 Vmware, Inc. Security policy analysis based on detecting new network port connections
US11616812B2 (en) 2016-12-19 2023-03-28 Attivo Networks Inc. Deceiving attackers accessing active directory data
US11695800B2 (en) 2016-12-19 2023-07-04 SentinelOne, Inc. Deceiving attackers accessing network data
US10462171B2 (en) 2017-08-08 2019-10-29 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US11470115B2 (en) 2018-02-09 2022-10-11 Attivo Networks, Inc. Implementing decoys in a network environment
JP7278423B2 (ja) 2019-05-20 2023-05-19 センチネル ラブス イスラエル リミテッド 実行可能コード検出、自動特徴抽出及び位置独立コード検出のためのシステム及び方法
US11190489B2 (en) 2019-06-04 2021-11-30 OPSWAT, Inc. Methods and systems for establishing a connection between a first device and a second device across a software-defined perimeter
CN112364360B (zh) * 2020-11-11 2022-02-11 南京信息职业技术学院 一种财务数据安全管理系统
US11579857B2 (en) 2020-12-16 2023-02-14 Sentinel Labs Israel Ltd. Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach
US11899782B1 (en) 2021-07-13 2024-02-13 SentinelOne, Inc. Preserving DLL hooks
CN113783974B (zh) * 2021-09-09 2023-06-13 烽火通信科技股份有限公司 一种动态下发map域规则的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0594196B1 (en) * 1992-10-22 1999-03-31 Cabletron Systems, Inc. Address lookup in packet data communications link, using hashing and content-addressable memory
US5606668A (en) * 1993-12-15 1997-02-25 Checkpoint Software Technologies Ltd. System for securing inbound and outbound data packet flow in a computer network
WO1997000471A2 (en) * 1993-12-15 1997-01-03 Check Point Software Technologies Ltd. A system for securing the flow of and selectively modifying packets in a computer network
US5757924A (en) * 1995-09-18 1998-05-26 Digital Secured Networks Techolognies, Inc. Network security device which performs MAC address translation without affecting the IP address
US5918018A (en) * 1996-02-09 1999-06-29 Secure Computing Corporation System and method for achieving network separation
US5889958A (en) * 1996-12-20 1999-03-30 Livingston Enterprises, Inc. Network access control system and process

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030080412A (ko) * 2002-04-08 2003-10-17 (주)이카디아 외부네트워크 및 내부네트워크로부터의 침입방지방법
KR100582555B1 (ko) * 2004-11-10 2006-05-23 한국전자통신연구원 네트워크 트래픽 이상 상태 검출/표시 장치 및 그 방법

Also Published As

Publication number Publication date
HUP0103814A2 (hu) 2002-03-28
NO20006668D0 (no) 2000-12-27
SE9802415D0 (sv) 1998-07-02
JP2002520892A (ja) 2002-07-09
WO2000002114A3 (en) 2000-02-17
US20020016826A1 (en) 2002-02-07
SE9802415L (sv) 2000-01-03
PL345701A1 (en) 2002-01-02
BG105087A (bg) 2001-08-31
SK20232000A3 (sk) 2001-09-11
NO20006668L (no) 2001-03-01
AU4948499A (en) 2000-01-24
ID29386A (id) 2001-08-30
CA2336113A1 (en) 2000-01-13
EA200100099A1 (ru) 2001-06-25
IL140481A0 (en) 2002-02-10
CN1317119A (zh) 2001-10-10
SE513828C2 (sv) 2000-11-13
EP1127302A2 (en) 2001-08-29
WO2000002114A2 (en) 2000-01-13
EE200000783A (et) 2001-10-15

Similar Documents

Publication Publication Date Title
KR20010072661A (ko) 내부 및 외부 네트워크 사이의 네트워크 데이터 패킷트래픽을 제어하는 파이어월 장치 및 방법
US6976089B2 (en) Method for high speed discrimination of policy in packet filtering type firewall system
US6212184B1 (en) Fast scaleable methods and devices for layer four switching
US6717943B1 (en) System and method for routing and processing data packets
US7188173B2 (en) Method and apparatus to enable efficient processing and transmission of network communications
JP3443529B2 (ja) ファイアウォールサービスを提供する方法と、ファイアウォールサービスを提供するコンピュータシステム
Liu et al. All-match based complete redundancy removal for packet classifiers in TCAMs
US7830898B2 (en) Method and apparatus for inter-layer binding inspection
US7953088B2 (en) Method and apparatus for packet classification and rewriting
US7127739B2 (en) Handling information about packet data connections in a security gateway element
US20060256814A1 (en) Ad hoc computer network
CA2572358A1 (en) Intrusion detection strategies for hypertext transport protocol
JP2008544728A (ja) ステートフルなパケット内容マッチング機構
US11997203B2 (en) Systems and methods for privacy preserving accurate analysis of network paths
US20220006782A1 (en) Efficient matching of feature-rich security policy with dynamic content using user group matching
US20060256717A1 (en) Electronic packet control system
KR102014741B1 (ko) Fpga 기반 고속 스노트 룰과 야라 룰 매칭 방법
US6795816B2 (en) Method and device for translating telecommunication network IP addresses by a leaky-controlled memory
US7917649B2 (en) Technique for monitoring source addresses through statistical clustering of packets
CN113132419A (zh) 报文转发方法、装置、交换机、路由器及服务器
JP2007104472A (ja) 統計データ取得装置及び統計データ取得方法
Adiseshu et al. Packet filter management for layer 4 switching
US20200145379A1 (en) Efficient matching of feature-rich security policy with dynamic content using incremental precondition changes
RU2812087C1 (ru) Система и способ анализа входящего потока трафика
Wasti Hardware assisted packet filtering firewall

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid