KR20030021510A - Firewall/NAT 환경 검사방법 - Google Patents

Firewall/NAT 환경 검사방법 Download PDF

Info

Publication number
KR20030021510A
KR20030021510A KR1020010054797A KR20010054797A KR20030021510A KR 20030021510 A KR20030021510 A KR 20030021510A KR 1020010054797 A KR1020010054797 A KR 1020010054797A KR 20010054797 A KR20010054797 A KR 20010054797A KR 20030021510 A KR20030021510 A KR 20030021510A
Authority
KR
South Korea
Prior art keywords
user
computer
inspection
address
port binding
Prior art date
Application number
KR1020010054797A
Other languages
English (en)
Inventor
장훈
이승환
서수민
서종원
Original Assignee
(주) 새롬기술
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 새롬기술 filed Critical (주) 새롬기술
Priority to KR1020010054797A priority Critical patent/KR20030021510A/ko
Publication of KR20030021510A publication Critical patent/KR20030021510A/ko

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 Firewall/NAT 환경 검사방법에 관한 것이다.
본 발명은 엔드-유저의 컴퓨터, 서로 다른 IP주소를 가지며 TCP 커넥션이 맺어진 제1 및 2 검사 서버를 구비한 네트워크 환경 검사시스템에서 수행되는 Firewall/NAT 환경 검사방법에 있어서, (a) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로 TCP 커넥션을 요청하는 단계; 및 (b) 상기 엔드-유저의 컴퓨터와 제1 검사 서버 간의 TCP 커넥션 설정이 실패하면 상기 엔드-유저의 컴퓨터가 방화벽 Ⅲ(very strict firewall)에 연결된 것으로 판단하는 단계를 포함한다. 이에 의해, 엔드-유저가 속해 있는 네트워크 환경을 알아낼 수 있게 된다. 따라서, 서비스 제공자는 엔드-유저의 Firewall/NAT 환경에 대한 적응적인 서비스를 수행할 수 있게 되며 엔드-유저 또한 자신이 속한 Firewall/NAT 환경에 따른 적응적인 서비스를 향유할 수 있게 된다.

Description

Firewall/NAT 환경 검사방법{Method for detecting exact network type in various firewall/NAT environment}
본 발명은 Firewall/NAT 환경 검사방법에 관한 것으로, 보다 상세하게는 엔드-유저가 속해 있는 네트워크가 방화벽 환경인지 NAT 환경인지 여부를 검사하는방법에 관한 것이다.
인터넷이 급속하게 확산되자 이에 따른 보안문제가 대두되고 있다. 이에, 외부인이 비공개 자원에 접근하는 것을 차단하는 한편 자사의 직원들이 접속해야할 외부의 자원들을 통제하기 위해 방화벽을 설치하는 기업이 늘어가고 있다.
한편, 많은 수의 학교, 기업 등에서는 NAT(Network Address Translation) 서버를 사용하여 내부적으로 사설 IP주소를 사용하고 있다. NAT를 채용하면 한정된 공인 IP주소를 가지고도 다수의 엔드-유저가 인터넷에 접속할 수 있으며, 주소변환을 위해 입출력 패킷들이 반드시 NAT 서버를 경유해야 하므로 보안문제를 해결하는데 있어 매우 유리하다. 따라서 NAT 서버는 라우터 또는 방화벽의 일부로서 설치되기도 한다.
그러나, 엔드-유저의 네트워크 환경이 다양하게 변화됨에 따라, 즉 방화벽 등에 의해 특정 프로토콜에 따른 패킷의 전송 또는 수신이 불가능하게 됨에 따라 특정 프로토콜을 기반으로 하는 응용 서비스가 제대로 수행되기 어렵다. 예를 들어, 음성통신, 화상통신 등은 RTP(Real-time Transport Protocol) 채널을 통해 이루어지며, RTP 채널은 일반적으로 UDP(User Datagram Protocol) 프로토콜을 기반으로 수행된다. 그러나, NAT 서버 또는 방화벽에 연결된 엔드-유저는 외부로부터 직접 UDP 패킷을 받을 수 없다. 따라서, 엔드-유저의 컴퓨터에서 실행되는 응용 프로그램은 직접 RTP 채널을 설정할 수 없게 된다. 다시 말해, 엔드-유저의 네트워크 환경에 따라 서비스 제공자는 특정 엔드-유저에게 서비스를 제공할 수 없게 되며 엔드-유저는 그 서비스를 제공받을 수 없게 된다.
따라서, 본 발명의 목적은 엔드-유저가 속해 있는 Firewall/NAT 환경을 알아낼 수 있는 Firewall/NAT 환경 검사방법을 제공하는 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 Firewall/NAT 환경 검사 시스템의 개요도,
도 2 및 3은 도 1의 엔드-유저의 컴퓨터(3)가 속한 네트워크 환경을 설명하기 위한 참고도,
도 4는 엔드-유저의 컴퓨터(3)의 상세블럭도,
도 5는 Firewall/NAT 환경 검사방법을 설명하기 위한 참고도이다.
* 도면의 주요부분에 대한 부호의 설명
1: 제1 검사 서버 2: 제2 검사 서버
3: 엔드-유저의 컴퓨터 7: 외부 노드
20: NAT 서버 30: 방화벽
상기 목적은, 본 발명에 따라, 엔드-유저의 컴퓨터, 서로 다른 IP주소를 가지며 TCP(Transmission Control Protocol) 커넥션이 맺어진 제1 및 2 검사 서버를 구비한 네트워크 환경 검사시스템에서 수행되는 Firewall/NAT 환경 검사방법에 있어서, (a) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로 TCP 커넥션을 요청하는 단계; 및 (c) 상기 엔드-유저의 컴퓨터와 제1 검사 서버 간의 TCP 커넥션 설정이 실패하면 상기 엔드-유저의 컴퓨터가 방화벽 Ⅲ(very strict firewall)에 연결된 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 Firewall/NAT 환경 검사방법에 의해 달성된다.
상기 Firewall/NAT 환경 검사방법은 (d) 상기 엔드-유저의 컴퓨터와 상기 제1 검사 서버 간에 TCP 커넥션이 설정된 후 상기 제1 검사 서버가 상기 엔드-유저의 컴퓨터로 포트 바인딩 주소 (1)를 알려주는 단계; 및 (e) 상기 엔드-유저의 컴퓨터가 상기 포트 바인딩 주소(1)로 포트 바인딩 패킷을 전송하고 나서 상기 제1 검사 서버로부터 널 주소(null address)를 수신하면 엔드-유저의 컴퓨터는 방화벽 Ⅱ에 연결된 것으로 판단하는 단계를 더 포함할 수 있다.
또한, (f) 상기 엔드-유저의 컴퓨터가 상기 포트 바인딩 주소(1)로 포트 바인딩 패킷을 전송하고 나서 상기 제1 검사 서버로부터 상기 제2 검사 서버의 포트바인딩 주소 (2)를 수신하는 단계; 및 (g) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로부터 상기 (e)단계에서 전송한 포트 바인딩 패킷에 첨부된 주소로 응답(acknowledgment) 패킷이 수신되지 않으면 상기 엔드-유저의 컴퓨터가 방화벽 Ⅰ에 연결되어 있는 것으로 판단하는 단계와,
(h) 상기 엔드-유저의 컴퓨터가 상기 응답 패킷을 수신하고, 상기 제1 검사 서버로부터의 TCP 커넥션 요청에 응답하여 TCP 커넥션을 설정할 수 있는 경우에는 엔드-유저의 컴퓨터는 공인 IP주소를 가지고 있으며 인터넷에 직접 연결된 것으로 판단하는 단계를 더 포함하는 것이 바람직하다.
또한, (i) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로부터의 TCP 커넥션 요청에 응답하지 못하는 경우 상기 엔드-유저의 컴퓨터는 방화벽 Ⅳ에 연결된 것으로 판단하는 단계, (j) 상기 엔드-유저의 컴퓨터는 상기 제1 검사 서버로부터 전송된 포트 바인딩 주소 (2)로 포트 바인딩 패킷을 전송하고 상기 제2 검사 서버가 상기 제1 검사 서버로부터 제공받은 포트 바인딩 주소 (3)로 보낸 응답 패킷을 받지 못했다면 엔드-유저의 컴퓨터가 NAT Ⅱ에 연결된 것으로 판단하는 단계, 및 (k) 상기 엔드-유저의 컴퓨터가 상기 (j)단계에서 상기 응답 패킷을 받았다면 상기 엔드-유저의 컴퓨터가 NAT Ⅰ에 연결된 것으로 판단하는 단계를 더 포함하는 것이 더욱 바람직하다.
한편, 본 발명의 다른 분야에 따르면 상기 목적은 엔드-유저의 컴퓨터, 서로 다른 IP주소를 가지며 TCP 커넥션이 맺어진 제1 및 2 검사 서버를 구비한 네트워크 환경 검사시스템에서 수행되는 Firewall/NAT 환경 검사방법을 실행하기 위한 프로그램 코드가 기록된 기록매체에 있어서, (a) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로 TCP 커넥션을 요청하는 단계를 수행하기 위한 프로그램 코드; (c) 상기 엔드-유저의 컴퓨터와 제1 검사 서버 간의 TCP 커넥션 설정이 실패하면 상기 엔드-유저의 컴퓨터가 방화벽 Ⅲ(very strict firewall)에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드를 포함하는 것을 특징으로 하는 기록매체에 의해서도 달성된다.
상기 기록매체에는 (d) 상기 엔드-유저의 컴퓨터와 상기 제1 검사 서버 간에 TCP 커넥션이 설정된 후 상기 제1 검사 서버가 상기 엔드-유저의 컴퓨터로 포트 바인딩 주소 (1)를 알려주는 단계를 수행하기 위한 프로그램 코드; 및 (e) 상기 엔드-유저의 컴퓨터가 상기 포트 바인딩 주소(1)로 포트 바인딩 패킷을 전송하고 나서 상기 제1 검사 서버로부터 널 주소(null address)를 수신하면 엔드-유저의 컴퓨터는 방화벽 Ⅱ에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드가 더 포함될 수 있다. 또한, (f) 상기 엔드-유저의 컴퓨터가 상기 포트 바인딩 주소(1)로 포트 바인딩 패킷을 전송하고 나서 상기 제1 검사 서버로부터 상기 제2 검사 서버의 포트 바인딩 주소 (2)를 수신하는 단계를 수행하기 위한 프로그램 코드; 및 (g) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로부터 상기 (e)단계에서 전송한 포트 바인딩 패킷에 첨부된 주소로 응답(acknowledgment) 패킷이 수신되지 않으면 상기 엔드-유저의 컴퓨터가 방화벽 Ⅰ에 연결되어 있는 것으로 판단하는 단계를 수행하기 위한 프로그램 코드가 더 포함되며,
(h) 상기 엔드-유저의 컴퓨터가 상기 응답 패킷을 수신하고, 상기 제1 검사서버로부터의 TCP 커넥션 요청에 응답하여 TCP 커넥션을 설정할 수 있는 경우에는 엔드-유저의 컴퓨터는 공인 IP주소를 가지고 있으며 인터넷에 직접 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드가 더 포함될 수 있다.
또한, (i) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로부터의 TCP 커넥션 요청에 응답하지 못하는 경우 상기 엔드-유저의 컴퓨터는 방화벽 Ⅳ에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드와, (j) 상기 엔드-유저의 컴퓨터는 상기 제1 검사 서버로부터 전송된 포트 바인딩 주소 (2)로 포트 바인딩 패킷을 전송하고 상기 제2 검사 서버가 상기 제1 검사 서버로부터 제공받은 포트 바인딩 주소 (3)로 보낸 응답 패킷을 받지 못했다면 엔드-유저의 컴퓨터가 NAT Ⅱ에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드, 및 (k) 상기 엔드-유저의 컴퓨터가 상기 (j)단계에서 상기 응답 패킷을 받았다면 상기 엔드-유저의 컴퓨터가 NAT Ⅰ에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드가 더 포함될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 Firewall/NAT 환경 검사방법을 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 네트워크 환경 검사시스템의 개요도이다.
도 1을 참조하면, 엔드-유저의 컴퓨터(3)는 인터넷에 접속가능하도록 연결되어 있으며, 본 발명의 바람직한 실시예에 따라 두 개의 서로 다른 공인 IP주소를 갖는 제1 및 2 검사 서버(1,2)가 인터넷에 접속되어 있다.
엔드-유저는 가정용 컴퓨터 사용자이거나 학교, 공공기관, 회사 등의 업무용 컴퓨터 사용자로서 사설 IP주소 또는 공인 IP주소를 사용하여 인터넷에 접속한다. 제 1 및 2 검사 서버(1,2)는 인터넷을 통해 음성통신 등의 응용 서비스를 제공하는 응용 서비스 제공업자의 서버 시스템 내에 설치될 수 있다.
엔드-유저의 컴퓨터(3)가 속한 네트워크 환경은 크게 공인 IP 환경, NAT 또는 방화벽 환경으로 나눌 수 있다. NAT 환경은 본 실시예에서 NAT Ⅰ(normal NAT)와 NAT Ⅱ(symmetric NAT)로 세분되며, 방화벽은 방화벽 Ⅰ(normal firewall), 방화벽 Ⅱ(strict firewall), 방화벽 Ⅲ(very strict firewall), 방화벽 Ⅳ(TCP firewall)로 세분된다. 이는 RTP 통신을 기반으로 한 응용 서비스를 염두에 두고 분류된 것이다. 다시 말해, 엔드-유저의 컴퓨터(3)가 UDP 패킷을 직접 내보내고 받을 수 있는지 여부에 따라 네트워크 환경을 분류한 것이다. 따라서, 네트워크 환경은 통신환경에 대한 응용 서비스의 요구특성에 따라 본 실시예와 다르게 분류할 수 있다.
< NAT Ⅰ(normal NAT) >
도 2를 참조하면, 엔드-유저의 컴퓨터(3)는 NAT 서버(20)에 접속되어 있다. 따라서, 엔드-유저의 컴퓨터(3)가 공인 IP주소를 갖는 외부의 특정 노드(7)로 패킷을 보내려면 NAT 서버(20)를 경유하여 보내려는 패킷에 첨부될 소스 주소 및 소스 포트를 NAT 서버(20)의 공인 IP주소 및 NAT 서버(20)의 포트로 변경해야 한다. 이 때 NAT 서버(20)는 첨부할 포트를 임의로 결정할 수 있다. 예를 들어, 엔드-유저의 컴퓨터(3)의 로컬 포트 10000에서 외부 노드(7)의 로컬 포트 20000으로 패킷을보내고자 한다면 NAT 서버(20)는 자신의 로컬 포트 60000을 사용할 경우 패킷의 소스 주소를 192.168.10.2:10000에서 210.108.147.53: 60000으로 교체해서 내보낸다. 이 때, 192.168.10.2:10000과 210.108.147.53:60000 사이에 「NAT 포트 바인딩」되었다고 한다. 또한 이를 위해 사용된 패킷을 「포트 바인딩 패킷 NAT Port Binding Packet, NPBP」 이라 하고 210.108.147.53:60000를 「포트 바인딩 주소」라고 한다. 이후에, 192.168.10.2:10000로부터 외부로 내보내지는 패킷은 모두 NAT 서버(20)의 로컬 포트 60000과 바인딩되므로 외부 노드(7)로부터 NAT 서버(20)의 로컬 포트 60000으로 보내진 패킷은 엔드-유저의 컴퓨터(3)의 로컬 포트 10000으로 보내진다.
이처럼 엔드-유저의 컴퓨터(3)가 NAT 서버(20)와 연결되어 있는 경우에는 언제라도 UDP 패킷을 목적지(7)로 내보낼 수 있으며 언제라도 TCP 커넥션을 맺을 수 있는 반면, 목적지(7)로부터 UDP 패킷을 수신하기 위해서는 먼저 NAT 포트 바인딩이 이루어져야 한다. 즉, 엔드-유저의 컴퓨터(3)와 외부 노드(7)가 RTP 패킷을 주고받을 경우 엔드-유저의 컴퓨터(3)는 외부 노드(7)로 자신의 주소를 알려주지 못하고 대신 외부 노드(7)로 포트 바인딩 패킷을 보낸다. 외부 노드(7)는 포트 바인딩 패킷을 받아서 포트 바인딩 주소를 알아낸 다음 알아낸 포트 바인딩 주소를 RTP 패킷 채널 주소로 사용하게 된다.
< NAT Ⅱ(symmetric NAT) >
도 2를 참조하면, NAT Ⅱ의 경우 엔드-유저의 컴퓨터(3)에서 외부 노드(7)로 포트 바인딩 패킷을 보낸 경우, NAT Ⅰ에서는 「NAT 포트 바인딩」에 있어서 엔드-유저의 컴퓨터(3)와 NAT 서버(20)만이 바인딩됨에 비해, 외부 노드(7)까지 바인딩된다. 즉, 외부 노드(7)의 로컬 포트 20000이 사용된다면 208.185.147.100:20000까지 바인딩된다.
정리하면, NAT Ⅰ에서의 NAT 포트 바인딩은 도착지 주소, 즉 외부 노드(7)의 IP주소: 포트가 상이하더라도 모두 NAT 서버(20)의 동일한 로컬 포트에 바인딩되며, NAT Ⅱ의 경우는 서로 다른 도착지에는 NAT 서버(20)의 서로 다른 포트가 바인딩된다.
< 방화벽 Ⅰ(normal firewall) >
도 3을 참조하면, 엔드-유저의 컴퓨터(3)는 UDP 패킷을 보낼 수 있으며, 직접 외부 노드(7)와 TCP 커넥션을 맺을 수 있다. 그러나, 외부 노드(7)로부터 들어오는 UDP 패킷은 받을 수 없고, 외부 노드(7)로부터의 TCP 커넥션은 맺을 수 없다.
< 방화벽 Ⅱ(strict firewall) >
방화벽 Ⅱ는 외부 노드(7)와 UDP 패킷을 주고받을 수 없으며, 외부 노드(7)로부터의 TCP 커넥션을 맺을 수 없다. 다만, 엔드-유저의 컴퓨터(3)로부터 외부 노드(7)로 요청되는 TCP 커넥션은 설정가능하다.
< 방화벽 Ⅲ(very strict firewall) >
방화벽 Ⅲ 또한 외부 노드(7)와 UDP 패킷을 주고받을 수 없으며, 외부 노드(7)로부터의 TCP 커넥션을 맺을 수 없다. 나아가, 엔드-유저의 컴퓨터(3)의 특정 포트(예를 들면 HTTP 포트(로컬 포트 80))로부터 외부 노드(7)로 요청되는 TCP 커넥션을 제외하고는 TCP 커넥션도 맺을 수 없다.
< 방화벽 Ⅳ(TCP firewall) >
방화벽 Ⅳ는 외부 노드(7)로부터 요청되는 TCP 커넥션은 받아들일 수 없는 것을 제외하고는 외부 노드(7)와 UDP 패킷을 주고받을 수 있으며, 엔드-유저의 컴퓨터(3)로부터 외부 노드(7)로 요청되는 TCP 커넥션을 맺을 수 있다. 따라서, < public IP >와 같이 RTP 패킷을 위한 RTP 채널을 여는 데는 문제가 없다.
도 4는 엔드-유저의 컴퓨터(3)의 상세블럭도이다.
도 4를 참조하면, 엔드-유저의 컴퓨터(3)는 펜티엄 등의 프로세서(31), 메모리(33), 하드 디스크, 플래시 메모리 등으로 구현된 저장부(34), 키보드, 마우스 등의 입력장치(35), 및 인터넷 접속을 위한 인터넷 접속부(32)를 구비한다.
메모리(33)에는 운영체제(30), 응용 프로그램, 및 네트워크 환경 검사모듈(40)이 탑재된다. 특히, 운영체제(30)는 메모리(33)에 최초로 적재되어 실행됨으로써 네트워크 환경 검사모듈(40) 또는 응용 프로그램을 관리한다. 네트워크 환경 검사모듈(40)은 엔드-유저의 컴퓨터(3)에 설치되어 실행됨으로써 본 발명에 따른 네트워크 환경 검사방법을 수행하기 위한 응용 프로그램의 일종이다. 다만, 네트워크 환경 검사모듈(40)은 다른 응용 프로그램 내에 존재하거나 다른 응용 프로그램과 독립적으로 존재하면서 검사결과만을 응용 프로그램에 전달해줄 수 있다. 네트워크 환경 검사모듈(40)은 CD 등 기록매체를 통해 배포되거나 인터넷 서버를 통해 제공된다. 인터넷 서버는 본 발명에 따른 제1 및 2 검사 서버(1,2) 중 어느 하나일 수 있다. 네트워크 환경 검사모듈(40)은 엔드-유저가 응용 프로그램의 실행을 요청하면 응용 프로그램에 앞서 실행되어 엔드-유저의 컴퓨터(3)가 속한 네트워크 환경을 응용 프로그램으로 알려준다. 응용 프로그램은 검사결과를 기초로 해당 네트워크 환경에 적응적인 서비스를 수행한다.
상기와 같은 구성에 의해 본 발명의 바람직한 실시예에 따른 Firewall/NAT 환경 검사방법을 설명하면 다음과 같다.
도 5는 Firewall/NAT 환경 검사방법을 설명하기 위한 참고도이다.
도 5를 참조하면, 실선은 TCP 통신을 점선은 UDP 통신을 의미한다. TCP와 UDP는 모두 인터넷에서 사용되는 통신 프로토콜이다. OSI 참조모델 또는 TCP/IP 모델에서 양자는 모두 전송계층(transport layer)을 담당한다. 다만, TCP는 엔드-유저의 컴퓨터(3)와 외부 노드(7) 간에 가상 경로(virtual circuit)를 설정하고 이들 경로를 통해 패킷을 전송하는 연결지향 프로토콜이며 종단간 오류제어를 수행하므로 신뢰성이 높지만 전송속도 면에서 실시간 전송을 기반으로 한 응용 서비스에는 적절하지 않다. 반면, UDP는 비연결지향 프로토콜로서 각 패킷의 전송에 최선(best-try)을 다할 뿐 종단간 오류제어를 수행하지 않으므로 신뢰성이 낮은 대신 전송속도가 빨라서 상대적으로 실시간 전송을 기반으로 한 응용 서비스에 적합하다.
제1 및 2 검사 서버(1,2) 간에는 TCP 커넥션이 맺어져 있다. 엔드-유저의 컴퓨터(3)는 제1 검사 서버(1)에 TCP 커넥션을 요청한다(단계 ①). 즉, 네트워크 환경 검사모듈(40)은 프로세서(31)에 의해 실행됨으로써 TCP 커넥션을 요청하는 리퀘스트 패킷을 인터넷 접속부(32)를 통해 외부 노드(7)의 하나인 제1 검사 서버(1)로 전송한다. 엔드-유저의 컴퓨터(3)와 제1 검사 서버(1) 간에 TCP 커넥션이 맺어지지 않으면(실패하면) 네트워크 환경 검사모듈(40)은 엔드-유저의 컴퓨터(3)가 방화벽 Ⅲ(very strict firewall)에 연결된 것으로 결론한다. 왜냐하면, 엔드-유저의 컴퓨터(3)가 제1 검사 서버(1)로 요청한 TCP 커넥션이 맺어지지 않았다는 것은 TCP 커넥션을 요청하는 리퀘스트 패킷이 제1 검사 서버(1)에 도달하지 못했다는 것을 의미하기 때문이다.
엔드-유저의 컴퓨터(3)와 제1 검사 서버(1) 간에 TCP 커넥션이 설정되면 제1 검사 서버(1)는 포트 바인딩 패킷 NPBP을 수신하기 위한 자신의 로컬 포트를 엔드-유저의 컴퓨터(3)로 알려준다(단계 ②). 단계 ②에서 엔드-유저의 컴퓨터(3)로 전송된 「제1 검사 서버(1)의 IP주소: 로컬 포트」를 포트 바인딩 주소 (1)이라 한다.
이에, 네트워크 환경 검사모듈(40)은 엔드-유저의 컴퓨터(3)가 단계 ②에서 수신된 포트 바인딩 주소(1)로 포트 바인딩 패킷 NPBP을 전송하도록 한다(단계 ③). 제1 검사 서버(1)가 해당 포트 바인딩 패킷 NPBP을 받으면 제2 검사 서버(2)에서 포트 바인딩 패킷 NPBP을 받기 위한 로컬 포트를 엔드-유저의 컴퓨터(3)로 제공한다(단계 ④). 단계 ④에서 엔드-유저의 컴퓨터(3)로 전송된 「검사 서버(2)의 IP주소: 로컬 포트」는 포트 바인딩 주소 (2)라 한다. 단계 ③에서 포트 바인딩 패킷 NPBP을 받지 못하는 경우에 제1 검사 서버(1)는 단계 ④에서 엔드-유저의 컴퓨터(3)로 null address를 보낸다. null address는 포트 0이 될 수 있다. 포트 0은 응용 계층에서는 사용되지 않는 포트 번호이기 때문이다. 엔드-유저의 컴퓨터(3)가 null address를 받았다면 네트워크 환경 검사모듈(40)은 엔드-유저의컴퓨터(3)가 방화벽 Ⅱ(strict firewall) 안에 있는 것으로 결론한다. 왜냐하면, 단계 ④에서 엔드-유저의 컴퓨터(3)가 null address를 받았다는 사실로부터 단계 ③에서 엔드-유저의 컴퓨터(3)는 제1 검사 서버(1)로 포트 바인딩 패킷을 내보내지 못하였음을 알 수 있기 때문이다.
단계 ③에서 포트 바인딩 패킷 NPBP을 받은 경우 제1 검사 서버(1)는 수신된 포트 바인딩 패킷에 첨부된 주소, 즉「소스 IP주소: 로컬 포트」로 응답(acknowledgment) 패킷을 보낸다(단계 ⑤). 이 때 엔드-유저의 컴퓨터(3)가 단계 ⑤에서의 응답 패킷을 받지 못했다면, 네트워크 환경 검사모듈(40)은 엔드-유저의 컴퓨터(3)가 방화벽 Ⅰ에 연결되어 있는 것으로 판단한다.
단계 ⑤에서 엔드-유저의 컴퓨터(3)의 네트워크 환경 검사모듈(40)이 응답 패킷을 받았으며 엔드-유저의 컴퓨터(3)의 IP주소가 사설 IP주소가 아니라면 제1 검사 서버(1)는 엔드-유저의 컴퓨터(3)로 TCP 커넥션을 요청한다(단계 ⑥). 현재 사용되는 IP주소는 IPv4(IP version 4)의 32 비트 주소 체계에 따른 것이므로 사설 IP주소는 10.x.x.x, 172.16.x.x, 192.168.x.x가 된다. 하지만 IP주소 체계가 IPv6(IP version 6)로 변경되면 사설 IP주소는 달라지게 된다.
엔드-유저의 컴퓨터(3)가 단계 ⑥의 요청에 응답하여 TCP 커넥션을 맺을 수 있다면 네트워크 환경 검사모듈(40)은 엔드-유저의 컴퓨터(3)가 공인 IP주소를 가지고 있으며 인터넷에 직접 연결되어 있음을 알게 된다. 그러나 엔드-유저의 컴퓨터(3)가 이에 응답하지 못하여 제1 검사 서버(1)로부터 TCP 커넥션을 맺을 수 없다면 엔드-유저의 컴퓨터(3)가 방화벽 Ⅳ(TCP firewall)에 연결된 것으로 판단한다.왜냐하면 방화벽 Ⅳ는 외부로부터의 TCP 커넥션을 수신하지 못하도록 하기 때문이다.
다음으로, 제1 검사 서버(1)는 제2 검사 서버(2)에게 단계 ③에서 수신된 포트 바인딩 패킷에 첨부된 주소, 즉 「소스 IP주소: 로컬 포트」를 전송한다(단계 ⑦). 이를 포트 바인딩 주소 (3)이라 한다. 한편, 네트워크 환경 검사모듈(40)은 엔드-유저의 컴퓨터(3)로 하여금 단계 ④에서 받은 포트 바인딩 주소 (2)로 포트 바인딩 패킷 NPBP을 전송하도록 한다(단계 ⑧). 제2 검사 서버(2)는 단계 ⑧에서 보낸 포트 파인딩 패킷 NPBP이 수신되면 첨부된 엔드-유저의 컴퓨터(3)의 주소로 응답(acknowledgment) 패킷을 보낸다(단계 ⑨). 이 때 엔드-유저의 컴퓨터(3)가 응답 패킷을 받지 못했다면 단계 ⑧에서 보낸 포트 바인딩 패킷이 제2 검사 서버(2)에 도착하지 않았다는 것을 의미한다. 이는 제1 검사 서버(1)와 제2 검사 서버(2)가 서로 다른 포트 바인딩 주소를 가짐을 뜻한다. 따라서 네트워크 환경 검사모듈(40)은 엔드-유저의 컴퓨터(3)가 NAT Ⅱ에 연결된 것으로 판단한다.
만약 엔드-유저의 컴퓨터(3)가 단계 ⑨에서 응답 패킷을 받았다면 제1 검사 서버(1)와 제2 검사 서버(2)는 동일한 포트 바인딩 주소를 가짐을 뜻하며 따라서 네트워크 환경 검사모듈(40)은 엔드-유저의 컴퓨터(3)가 NAT Ⅰ에 연결된 것으로 판단한다.
한편, 위의 각 단계에서 네트워크 환경 검사모듈(40)이 엔드-유저의 컴퓨터(3)가 연결되어 있는 네트워크 환경이 무엇인지 판단을 완료하면 이후의 단계는 더 이상 진행되지 않는다.
네트워크 환경 검사모듈(40)은 전술한 과정을 통해 얻어진 검사결과, 즉 엔드-유저의 컴퓨터(3)가 속해 있는 Firewall/NAT 환경을 응용 프로그램으로 제공하거나 제1 검사 서버(1), 제2 검사 서버(2) 또는 응용 서비스 제공을 위한 다른 서버(도시되지 않음)로 제공할 수 있다.
엔드-유저의 컴퓨터(3)가 속한 Firewall/NAT 환경을 알게 되면 이를 다양하게 응용할 수 있다. 먼저, 엔드-유저는 Firewall/NAT 환경에 따른 적응적인 서비스를 향유할 수 있게 된다. 예를 들어, RTP를 기반으로 한 응용 서비스의 경우 Firewall/NAT 환경에 따라 RTP 채널이 설정될 수 있는 하는 방법을 채용한다면 엔드-유저의 컴퓨터(3)는 해당 응용 프로그램을 실행할 수 있게 된다. 나아가, 엔드-유저의 컴퓨터(3)는 제1 검사 서버(1), 제2 검사 서버(2) 또는 다른 서버로부터 제공되는 RTP를 기반으로 한 응용 서비스를 받을 수 있게 된다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 코드로서 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에서 판독가능한 데이터가 저장될 수 있는 모든 종류의 저장장치를 포함한다. 예로는 ROM, RAM, CD-ROM, DVD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래시 메모리, 광 데이터 저장장치 등을 들 수 있다. 나아가 기록매체는 캐리어 웨이브(예를 들면 통신망을 통한 전송)의 형태로도 구현될 수 있다. 또한, 프로그램 코드는 통신망으로 연결된 컴퓨터 시스템 내에 분산되어 저장되고 실행될 수 있다.
전술한 바와 같이, 본 발명에 따르면 엔드-유저가 속해 있는 네트워크 환경을 알아낼 수 있다. 이에 따라, 서비스 제공자는 엔드-유저의 Firewall/NAT 환경에 대한 적응적인 서비스를 수행할 수 있게 되며 엔드-유저 또한 자신이 속한 Firewall/NAT 환경에 따른 적응적인 서비스를 향유할 수 있게 된다.

Claims (14)

  1. 엔드-유저의 컴퓨터와, 서로 다른 IP주소를 가지며 TCP 커넥션이 맺어진 제1 및 2 검사 서버를 구비한 네트워크 환경 검사시스템에서 수행되는 네트워크 환경 검사방법에 있어서,
    (a) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로 TCP 커넥션을 요청하는 단계; 및
    (c) 상기 엔드-유저의 컴퓨터와 제1 검사 서버 간의 TCP 커넥션 설정이 실패하면 상기 엔드-유저의 컴퓨터가 방화벽 Ⅲ(very strict firewall)에 연결된 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 네트워크 환경 검사방법.
  2. 제1항에 있어서,
    (d) 상기 엔드-유저의 컴퓨터와 상기 제1 검사 서버 간에 TCP 커넥션이 설정된 후 상기 제1 검사 서버가 상기 엔드-유저의 컴퓨터로 포트 바인딩 주소 (1)를 알려주는 단계; 및
    (e) 상기 엔드-유저의 컴퓨터가 상기 포트 바인딩 주소(1)로 포트 바인딩 패킷을 전송하고 나서 상기 제1 검사 서버로부터 널 주소(null address)를 수신하면엔드-유저의 컴퓨터는 방화벽 Ⅱ에 연결된 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 네트워크 환경 검사방법.
  3. 제2항에 있어서,
    (f) 상기 엔드-유저의 컴퓨터가 상기 포트 바인딩 주소(1)로 포트 바인딩 패킷을 전송하고 나서 상기 제1 검사 서버로부터 상기 제2 검사 서버의 포트 바인딩 주소 (2)를 수신하는 단계; 및
    (g) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로부터 상기 (e)단계에서 전송한 포트 바인딩 패킷에 첨부된 주소로 응답(acknowledgment) 패킷이 수신되면 상기 엔드-유저의 컴퓨터가 방화벽 Ⅰ에 연결되어 있는 것으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 환경 검사방법.
  4. 제3항에 있어서,
    (h) 상기 엔드-유저의 컴퓨터가 상기 응답 패킷을 수신하고, 상기 제1 검사 서버로부터의 TCP 커넥션 요청에 응답하여 TCP 커넥션을 설정할 수 있는 경우에는 엔드-유저의 컴퓨터는 공인 IP주소를 가지고 있으며 인터넷에 직접 연결된 것으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 환경 검사방법.
  5. 제4항에 있어서,
    (i) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로부터의 TCP 커넥션 요청에 응답하지 못하는 경우 상기 엔드-유저의 컴퓨터는 방화벽 Ⅳ에 연결된 것으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 환경 검사방법.
  6. 제5항에 있어서,
    (j) 상기 엔드-유저의 컴퓨터는 상기 제1 검사 서버로부터 전송된 포트 바인딩 주소 (2)로 포트 바인딩 패킷을 전송하고 상기 제2 검사 서버가 상기 제1 검사 서버로부터 제공받은 포트 바인딩 주소 (3)로 보낸 응답 패킷을 받지 못했다면 엔드-유저의 컴퓨터가 NAT Ⅱ에 연결된 것으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 환경 검사방법.
  7. 제6항에 있어서,
    (k) 상기 엔드-유저의 컴퓨터가 상기 (j)단계에서 상기 응답 패킷을 받았다면 상기 엔드-유저의 컴퓨터가 NAT Ⅰ에 연결된 것으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 환경 검사방법.
  8. 엔드-유저의 컴퓨터와, 서로 다른 IP주소를 가지며 TCP 커넥션이 맺어진 제1 및 2 검사 서버를 구비한 네트워크 환경 검사시스템에서 수행되는 네트워크 환경 검사방법을 실행하기 위한 프로그램 코드가 기록된 기록매체에 있어서,
    (a) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로 TCP 커넥션을 요청하는 단계를 수행하기 위한 프로그램 코드;
    (c) 상기 엔드-유저의 컴퓨터와 제1 검사 서버 간의 TCP 커넥션 설정이 실패하면 상기 엔드-유저의 컴퓨터가 방화벽 Ⅲ(very strict firewall)에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드를 포함하는 것을 특징으로 하는 기록매체.
  9. 제8항에 있어서,
    (d) 상기 엔드-유저의 컴퓨터와 상기 제1 검사 서버 간에 TCP 커넥션이 설정된 후 상기 제1 검사 서버가 상기 엔드-유저의 컴퓨터로 포트 바인딩 주소 (1)를 알려주는 단계를 수행하기 위한 프로그램 코드; 및
    (e) 상기 엔드-유저의 컴퓨터가 상기 포트 바인딩 주소(1)로 포트 바인딩 패킷을 전송하고 나서 상기 제1 검사 서버로부터 널 주소(null address)를 수신하면 엔드-유저의 컴퓨터는 방화벽 Ⅱ에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드를 포함하는 것을 특징으로 하는 기록매체.
  10. 제9항에 있어서,
    (f) 상기 엔드-유저의 컴퓨터가 상기 포트 바인딩 주소(1)로 포트 바인딩 패킷을 전송하고 나서 상기 제1 검사 서버로부터 상기 제2 검사 서버의 포트 바인딩 주소 (2)를 수신하는 단계를 수행하기 위한 프로그램 코드; 및
    (g) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로부터 상기 (e)단계에서 전송한 포트 바인딩 패킷에 첨부된 주소로 응답(acknowledgment) 패킷이 수신되지않으면 상기 엔드-유저의 컴퓨터가 방화벽 Ⅰ에 연결되어 있는 것으로 판단하는 단계를 수행하기 위한 프로그램 코드를 더 포함하는 것을 특징으로 하는 기록매체.
  11. 제10항에 있어서,
    (h) 상기 엔드-유저의 컴퓨터가 상기 응답 패킷을 수신하고, 상기 제1 검사 서버로부터의 TCP 커넥션 요청에 응답하여 TCP 커넥션을 설정할 수 있는 경우에는 엔드-유저의 컴퓨터는 공인 IP주소를 가지고 있으며 인터넷에 직접 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드를 더 포함하는 것을 특징으로 하는 기록매체.
  12. 제11항에 있어서,
    (i) 상기 엔드-유저의 컴퓨터가 상기 제1 검사 서버로부터의 TCP 커넥션 요청에 응답하지 못하는 경우 상기 엔드-유저의 컴퓨터는 방화벽 Ⅳ에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드를 더 포함하는 것을 특징으로 하는 기록매체.
  13. 제12항에 있어서,
    (j) 상기 엔드-유저의 컴퓨터는 상기 제1 검사 서버로부터 전송된 포트 바인딩 주소 (2)로 포트 바인딩 패킷을 전송하고 상기 제2 검사 서버가 상기 제1 검사 서버로부터 제공받은 포트 바인딩 주소 (3)로 보낸 응답 패킷을 받지 못했다면 엔드-유저의 컴퓨터가 NAT Ⅱ에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드를 더 포함하는 것을 특징으로 하는 기록매체.
  14. 제13항에 있어서,
    (k) 상기 엔드-유저의 컴퓨터가 상기 (j)단계에서 상기 응답 패킷을 받았다면 상기 엔드-유저의 컴퓨터가 NAT Ⅰ에 연결된 것으로 판단하는 단계를 수행하기 위한 프로그램 코드를 더 포함하는 것을 특징으로 하는 기록매체.
KR1020010054797A 2001-09-06 2001-09-06 Firewall/NAT 환경 검사방법 KR20030021510A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010054797A KR20030021510A (ko) 2001-09-06 2001-09-06 Firewall/NAT 환경 검사방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010054797A KR20030021510A (ko) 2001-09-06 2001-09-06 Firewall/NAT 환경 검사방법

Publications (1)

Publication Number Publication Date
KR20030021510A true KR20030021510A (ko) 2003-03-15

Family

ID=27722825

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010054797A KR20030021510A (ko) 2001-09-06 2001-09-06 Firewall/NAT 환경 검사방법

Country Status (1)

Country Link
KR (1) KR20030021510A (ko)

Similar Documents

Publication Publication Date Title
US8526467B2 (en) Facilitating transition of network operations from IP version 4 to IP version 6
US8082324B2 (en) Method of establishing a tunnel between network terminal devices passing through firewall
US7450585B2 (en) Method and system in an IP network for using a network address translation (NAT) with any type of application
US9497168B2 (en) Method and apparatus for supporting communications between a computing device within a network and an external computing device
US8224985B2 (en) Peer-to-peer communication traversing symmetric network address translators
US8055771B2 (en) Network traversal method for establishing connection between two endpoints and network communication system
US7293108B2 (en) Generic external proxy
US20130297733A1 (en) Middlebox Control
RU2543304C2 (ru) Способ и устройство, для ретрансляции пакетов
US9705844B2 (en) Address management in a connectivity platform
US20140330886A1 (en) Distributed network address translation control
KR20110062994A (ko) 디엔에스 패킷 변조를 통한 인터넷 접속 경로 우회 유도시스템 및 그 방법
EP1980084B1 (en) Packet redirection in a communication network
EP2741460B1 (en) A method and a user agent for load balancing within several proxies in a SIP network comprising a router applying network address translation
US20040064584A1 (en) Apparatus and methods of assisting in NAT traversal
Tseng et al. Can: A context-aware NAT traversal scheme
US20090245131A1 (en) Remotely controlled gateway management with security
KR20030021510A (ko) Firewall/NAT 환경 검사방법
KR100898371B1 (ko) 투명 프록시 시스템 및 그의 패킷 처리 방법
US8572283B2 (en) Selectively applying network address port translation to data traffic through a gateway in a communications network
Engelbrecht et al. The Messenger Pigeon, Packets, and a Trip Around the World
Hu Proxy for host identity protocol
Mellouk et al. A new methodology to adapt SIP Protocol for voice traffic transported over IP Network
Madhavan NAT TRAVERSAL THROUGH TUNNELING
GB2403627A (en) Communication through network address translation (nat) devices

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination