KR100898371B1 - 투명 프록시 시스템 및 그의 패킷 처리 방법 - Google Patents

투명 프록시 시스템 및 그의 패킷 처리 방법 Download PDF

Info

Publication number
KR100898371B1
KR100898371B1 KR1020070059328A KR20070059328A KR100898371B1 KR 100898371 B1 KR100898371 B1 KR 100898371B1 KR 1020070059328 A KR1020070059328 A KR 1020070059328A KR 20070059328 A KR20070059328 A KR 20070059328A KR 100898371 B1 KR100898371 B1 KR 100898371B1
Authority
KR
South Korea
Prior art keywords
packet
session
address
destination
port number
Prior art date
Application number
KR1020070059328A
Other languages
English (en)
Other versions
KR20070096987A (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 KR1020070059328A priority Critical patent/KR100898371B1/ko
Publication of KR20070096987A publication Critical patent/KR20070096987A/ko
Application granted granted Critical
Publication of KR100898371B1 publication Critical patent/KR100898371B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2528Translation at a proxy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 투명 프록시 시스템 및 그의 패킷 처리 방법에 관한 것으로, 본 발명에 따른 투명 프록시 시스템은 패킷이 전달된 인터페이스와 패킷 구조체에 기록된 세션 유형을 기초로 패킷에 설정된 주소를 변경한다. 본 발명에 의하면, 프록시 동작 중에 변경된 주소를 실제 세션에 맞게 변경한 후 원래 목적지로 재전송함으로써 클라이언트와 서버가 중간에 프록시 서버가 개입되는 것을 인식하지 못하게 할 수 있다.
패킷, 투명, 프록시, 구조체, 인터페이스

Description

투명 프록시 시스템 및 그의 패킷 처리 방법{Transparent Proxy System and Packet Processing Method thereof}
도 1은 본 발명의 일 실시예에 따른 투명 프록시 시스템을 설명하기 위해 제공되는 블록도이다.
도 2는 도 1의 투명 프록시 시스템을 보다 자세히 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 투명 프록시 시스템의 동작을 설명하기 위해 제공되는 흐름도이다.
도 4는 도 3의 클라이언트 인터페이스를 통해 패킷이 전달된 경우 처리 단계를 상세히 나타낸 흐름도이다.
도 5은 도 3의 로컬 인터페이스를 통해 패킷이 전달된 경우 처리 단계를 상세히 나타낸 흐름도이다.
도 6은 도 3의 서버 인터페이스를 통해 패킷이 전달된 경우 처리 단계를 상세히 나타낸 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 클라이언트 단말 20 : 외부 네트워크
30 : 로컬 네트워크 40 : 웹 서버
100 : 투명 프록시 시스템 110 : 클라이언트 인터페이스
120 : 서버 인터페이스 130 : 네트워크 드라이버부
131 : 네트워크 드라이버 132 : 주소 변환 모듈
140 : TCP/IP 스택 150 : 프록시 모듈
151 : 프록시 클라이언트 모듈 155 : 프록시 서버 모듈
본 발명은 투명 프록시 시스템 및 그의 패킷 처리 방법에 관한 것이다.
프록시 서버(proxy server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 네트워크 서비스를 제공한다. 이와 같이 서버와 클라이언트 사이에서 중계기로서 대리로 통신을 수행하는 기능을 가리켜 '프록시'라고 부른다. 이와 같은 프록시 기능이 많이 활용되는 것 중 하나가 방화벽, 침입탐지시스템 혹은 침입방지시스템과 같은 웹 보안 시스템이며, 투명 프록시(transparent proxy)를 이용하여 구현되고 있다.
투명 프록시는 클라이언트는 프록시 서버의 존재를 알 필요없이 서버와 직접 접속을 시도하면 중간에서 프록시가 해당 패킷을 가로채서 검증 작업을 거친 후에 다시 자체적으로 실제 서버와 연계하여 연결을 해준다. 그런데 현재 투명 프록시 기술에 의하면 네트워크 장비에서 웹 서비스 포트가 지정된 TCP 패킷을 프록시 서버로 재전송하면 프록시 서버에서 해당 패킷에 대한 검증을 수행한 후 프록시 서버 자신의 IP를 출발지 주소로 하여 웹 서버와 연결되어 통신하는 방식이 사용되고 있 다.
따라서 실질적으로는 웹 서버는 실제 클라이언트가 아닌 프록시 서버를 클라이언트로 파악할 수 있으며, 아울러 웹 서버로부터 수신한 응답 데이터를 클라이언트로 재전송할 때도 프록시 서버 자신의 IP를 출발지 주소로 하여 클라이언트와 연결되어 통신하기 때문에 클라이언트도 웹 서버의 존재를 인식하게 될 수도 있다. 따라서 IP를 근거로 클라이언트를 인증하거나 과금할 경우 해당 서비스를 제공하지 못하게 될 수 있으며, 이를 해결하기 위해서는 웹 서버나 클라이언트에 별도의 수정이 필요하게 될 수 있는 문제점이 있다.
따라서 본 발명이 이루고자 하는 기술적 과제는 프록시 동작 중에 변경된 주소를 서버와 클라이언트의 실제 세션에 맞게 처리하여 재전송함으로써 중간에 프록시 서버가 개입되는 것을 인식하지 못하게 하는 투명 프록시 시스템 및 그의 패킷 처리 방법을 제공하는 것이다.
이러한 기술적 과제를 이루기 위한 본 발명의 일 실시예에 따른 투명 프록시 시스템의 패킷 처리 방법은, 패킷이 전달된 인터페이스를 확인하는 단계와, 클라이언트 인터페이스를 통해 상기 패킷이 전달된 경우, 상기 패킷의 목적지 IP 주소와 목적지 포트 번호가 네트워크 주소 변환 테이블(NAT 테이블)에 존재하는지 확인하는 단계와, 상기 패킷의 목적지 IP 주소와 목적지 포트 번호가 NAT 테이블에 존재하면 상기 패킷의 목적지 IP 주소를 상기 프록시 모듈이 상기 클라이언트 단말과 통신을 위해 사용하는 제1 로컬 IP 주소로 변경하여 TCP/IP 스택을 통해 상기 프록시 모듈로 전달하는 단계를 포함한다.
상기 패킷이 처음 세션 연결을 요청하는 경우, 상기 패킷에 설정된 목적지 주소 및 출발지 주소를 세션 정보로서 세션 테이블에 기록하는 단계와, 상기 패킷의 패킷 구조체에 실제 세션 정보 및 세션 유형 정보(제1 세션 유형으로 기록함)를 기록하는 단계 및 상기 패킷 구조체에 기록된 실제 세션 정보 및 세션 유형 정보를 클라이언트 세션을 위한 제1 소켓 구조체에 기록하는 단계를 더 포함할 수 있다.
서버측 세션을 위한 제2 소켓 구조체에 상기 제1 소켓 구조체에서 구한 실제 세션 정보와 세션 유형 정보(제2 세션 유형으로 기록함)를 기록하는 단계를 더 포함할 수 있다.
상기 TCP/IP 스택에서 클라이언트측 세션을 통해 상기 클라이언트 단말로 전송하는 패킷의 패킷 구조체에 상기 제1 소켓 구조체에 기록된 제1 세션 유형 및 실제 세션 정보를 기록하는 단계 및, 상기 TCP/IP 스택에서 서버측 세션을 통해 상기 서버로 전송하는 패킷의 패킷 구조체에 상기 제2 소켓 구조체에 기록된 제2 세션 유형 및 실제 세션 정보를 기록하는 단계를 더 포함할 수 있다.
상기 TCP/IP 스택으로부터 로컬 인터페이스를 통해 패킷이 전달된 경우, 상기 패킷의 패킷 구조체에 기록되어 있는 세션 유형 정보를 확인하는 단계와, 상기 패킷 구조체에 제1 세션 유형이 기록되어 있는 경우, 상기 패킷 헤더에 설정된 목적지 IP 주소, 목적지 포트 번호 및 출발지 포트 번호를 키값으로 상기 세션 테이블을 조회하여 세션 정보를 구하는 단계와, 상기 구해진 세션 정보를 참조하여 상 기 패킷의 출발지 IP 주소, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경하는 단계 및, 상기 주소가 변경된 패킷을 상기 클라이언트 단말로 전송하는 단계를 더 포함할 수 있다.
상기 TCP/IP 스택으로부터 로컬 인터페이스를 통해 패킷이 전달된 경우, 상기 패킷의 패킷 구조체에 기록되어 있는 세션 유형 정보를 확인하는 단계와, 상기 패킷 구조체에 제2 세션 유형이 기록되어 있는 경우, 상기 패킷 구조체에 기록되어 있는 실제 세션의 출발지 IP 주소, 출발지 포트 번호를 키값으로 상기 세션 테이블을 조회하여 세션 정보를 구하는 단계와, 상기 구해진 세션 정보를 기초로 상기 패킷의 출발지 IP 주소, 출발지 포트 번호, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경하는 단계 및, 상기 주소가 변경된 패킷을 상기 서버로 전송하는 단계를 더 포함할 수 있다.
패킷이 서버 인터페이스를 통해 전달된 경우, 상기 패킷에 설정된 목적지 IP 주소, 목적지 포트 번호 및 출발지 포트 번호를 키값으로 하는 세션 정보가 상기 세션 테이블에 등록되어 있는지 확인하는 단계와, 상기 세션 테이블에 세션이 등록되어 있으면, 상기 패킷의 목적지 IP 주소, 목적지 포트 번호를 상기 프록시 모듈이 상기 서버와 통신하는데 사용하는 제2 로컬 IP 주소와 로컬 포트 번호로 변경하는 단계 및, 상기 주소가 변경된 패킷을 상기 TCP/IP 스택을 통해 상기 프록시 모듈로 전달하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시예에 따른 컴퓨터로 읽을 수 있는 매체는 상기한 방법 중 어느 하나를 컴퓨터에 실행시키기 위한 프로그램을 기록한다.
본 발명의 다른 실시예에 따른 투명 프록시 시스템은, 클라이언트 인터페이스를 통해 패킷이 전달된 경우, 상기 패킷의 목적지 IP 주소와 목적지 포트 번호가 네트워크 주소 변환 테이블(NAT 테이블)에 존재하는지 확인하고, 상기 패킷의 목적지 IP 주소와 목적지 포트 번호가 NAT 테이블에 존재하면 상기 패킷의 목적지 IP 주소를 상기 프록시 모듈이 상기 클라이언트 단말과 통신을 위해 사용하는 제1 로컬 IP 주소로 변경하는 네트워크 드라이버부 및, 상기 네트워크 드라이버부로부터 전달된 패킷을 처리하여 상기 프록시 모듈로 전달하는 TCP/IP 스택을 포함한다.
상기 패킷이 처음 세션 연결을 요청하는 경우, 상기 네트워크 드라이버부는, 상기 패킷에 설정된 목적지 주소 및 출발지 주소를 세션 정보로서 세션 테이블에 기록하고, 상기 패킷의 패킷 구조체에 실제 세션 정보 및 세션 유형 정보(제1 세션 유형으로 기록함)를 기록하며, 상기 TCP/IP 스택은, 상기 패킷 구조체에 기록된 실제 세션 정보 및 세션 유형 정보를 클라이언트 세션을 위한 제1 소켓 구조체에 기록할 수 있다.
상기 프록시 모듈은 서버측 세션을 위한 제2 소켓 구조체에 상기 제1 소켓 구조체에서 구한 실제 세션 정보와 세션 유형 정보(제2 세션 유형으로 기록함)가 기록되도록 할 수 있다.
상기 TCP/IP 스택은, 클라이언트측 세션을 통해 상기 클라이언트 단말로 전송하는 패킷의 패킷 구조체에 상기 제1 소켓 구조체에 기록된 제1 세션 유형 및 실제 세션 정보를 기록하며, 서버측 세션을 통해 상기 서버로 전송하는 패킷의 패킷 구조체에 상기 제2 소켓 구조체에 기록된 제2 세션 유형 및 실제 세션 정보를 기록 할 수 있다.
상기 네트워크 드라이버부는, 상기 TCP/IP 스택으로부터 패킷이 전달된 경우, 상기 패킷의 패킷 구조체에 기록되어 있는 세션 유형 정보를 확인하고, 상기 패킷 구조체에 제1 세션 유형이 기록되어 있는 경우 상기 패킷 헤더에 설정된 목적지 IP 주소, 목적지 포트 번호 및 출발지 포트 번호를 키값으로 상기 세션 테이블을 조회하여 세션 정보를 구하며, 상기 구해진 세션 정보를 참조하여 상기 패킷의 출발지 IP 주소, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경하고 상기 클라이언트 단말로 전송할 수 있다.
상기 네트워크 드라이버부는, 상기 TCP/IP 스택으로부터 로컬 인터페이스를 통해 패킷이 전달된 경우, 상기 패킷의 패킷 구조체에 기록되어 있는 세션 유형 정보를 확인하고, 상기 패킷 구조체에 제2 세션 유형이 기록되어 있는 경우 상기 패킷 구조체에 기록되어 있는 실제 세션의 출발지 IP 주소, 출발지 포트 번호를 키값으로 상기 세션 테이블을 조회하여 세션 정보를 구하며, 상기 구해진 세션 정보를 기초로 상기 패킷의 출발지 IP 주소, 출발지 포트 번호, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경하고 상기 서버로 전송할 수 있다.
상기 네트워크 드라이버부는, 패킷이 서버 인터페이스를 통해 전달된 경우, 상기 패킷에 설정된 목적지 IP 주소, 목적지 포트 번호 및 출발지 포트 번호를 키값으로 하는 세션 정보가 상기 세션 테이블에 등록되어 있는지 확인하고, 상기 세션 테이블에 세션이 등록되어 있으면 상기 패킷의 목적지 IP 주소, 목적지 포트 번호를 상기 프록시 모듈이 상기 서버와 통신하는데 사용하는 제2 로컬 IP 주소와 로 컬 포트 번호로 변경하여 상기 TCP/IP 스택을 통해 상기 프록시 모듈로 전달할 수 있다.
이하, 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 투명 프록시 시스템을 설명하기 위해 제공되는 블록도이다.
도 1을 참조하면, 본 발명에 따른 투명 프록시 시스템(100)은 네트워크(20,30)를 통해 복수의 클라이언트 단말(10)과 복수의 웹 서버(40)에 연결될 수 있다.
클라이언트 단말(10)은 웹 서버(40)로부터 웹 서비스를 제공받기 위해 사용되는 통신 단말 장치로서, 네트워크(20,30)를 통해 데이터 및 메시지를 주고 받는다.
웹 서버(40)는 클라이언트 단말(10)에 웹 서비스를 제공하는 기능을 수행하며 네트워크(20,30)를 통해 데이터 및 메시지를 주고 받는다.
네트워크(20,30)는 로컬 네트워크(local area network, LAN), 도시권 네트워크(metropolitan area network, MAN), 광역 네트워크(wide area network, WAN), 인터넷 등을 가리지 않는다.
투명 프록시 시스템(100)은 클라이언트 단말(10)과 웹 서버(40) 사이에서 교환되는 패킷을 중간에서 가로채서 미리 정해진 처리를 수행한 후 원래 목적지로 전 달한다. 투명 프록시 시스템(100)은 클라이언트 단말(10)과 통신을 위한 TCP 세션(이하 클라이언트측 세션)을 생성하고, 웹 서버(40)와 통신을 위한 TCP 세션(이하 서버측 세션)을 생성한다.
특히 본 발명에 따른 투명 프록시 시스템(100)은 클라이언트측 세션과 서버측 세션을 통해 클라이언트 단말(10) 또는 웹 서버(40)로 패킷을 전송할 때 실제 세션(클라이언트 단말(10)과 웹 서버(40) 사이의 세션)에 기초하여 목적지 주소 및 출발지 주소를 설정한 후 패킷을 전송한다. 이에 의해 클라이언트 단말(10)과 웹 서버(40)는 서로 직접 TCP 세션이 연결된 것으로 인식하며, 중간에 투명 프록시 시스템(100)이 개입된 것을 인식하지 못한다. 여기서 목적지 주소는 목적지 MAC 주소, 목적지 IP 주소, 목적지 포트 주소(또는 번호)를 포함하며, 출발지 주소는 출발지 MAC 주소, 출발지 IP 주소, 출발지 포트 번호를 포함한다.
도 2는 도 1의 투명 프록시 시스템을 보다 자세히 나타낸 블록도이다.
도 2를 참고하면, 투명 프록시 시스템(100)은 클라이언트 인터페이스(110), 서버 인터페이스(120), 네트워크 드라이버부(130), TCP/IP 스택(140) 및 프록시 모듈(150)을 포함한다.
서버 인터페이스(120)는 로컬 네트워크(30)를 통해 웹 서버(40)와 연결되어 데이터를 송수신하는 물리적인 네트워크 인터페이스이다. 클라이언트 인터페이스(110)는 외부 네트워크(20)를 통해 클라이언트 단말(10)과 연결되어 데이터를 송수신하는 물리적인 네트워크 인터페이스이다. 서버 인터페이스(120)와 클라이언트 인터페이스(110)는 랜카드와 같은 네트워크 카드로 구현할 수 있다.
네트워크 드라이버부(130)는 네트워크 드라이버(131)와 주소 변환 모듈(132)을 포함할 수 있다. 네트워크 드라이버부(130)는 서버/클라이언트 인터페이스(110,120)를 제어하여 외부로 패킷을 송수신하는 기능을 수행하며, 주소 변환 기능을 구비하여 수신된 패킷의 목적지 주소 또는 출발지 주소를 변경할 수 있다.
보다 자세하게는 네트워크 드라이버(131)는 서버/클라이언트 인터페이스(110,120)를 제어하여 외부로 패킷을 송신하거나 외부로부터 패킷을 수신한다. 네트워크 드라이버(131)는 외부로부터 패킷을 수신할 때 패킷 구조체에 어느 인터페이스로부터 수신되었는지 여부를 기록한 후 주소 변환 모듈(132)로 전달한다.
주소 변환 모듈(132)은 패킷이 전달된 인터페이스와 패킷에 기록된 세션 유형에 따라 패킷에 설정된 목적지 주소 또는 출발지 주소를 변경한다. 보다 자세하게는 주소 변환 모듈(132)은 외부로부터 수신된 패킷을 분석하여 프록시 모듈(150)로 전달해야 하는지 판단하고, 필요한 경우 패킷의 목적지 주소를 변경하고 세션 유형을 패킷 구조체에 기록한 후 TCP/IP 스택(140)으로 전달한다. 이를 위해 주소 변환 모듈(132)은 네트워크 주소 변환 테이블(이하 NAT 테이블:미도시)을 구비한다. NAT 테이블에는 프록시 모듈(150)로 전달해야 할 패킷의 목적지 IP 주소와 목적지 포트 번호가 기록되어 있다. 주소 변환 모듈(132)은 외부로부터 전달된 패킷에 설정된 목적지 IP 주소와 목적지 포트 번호가 NAT 테이블에 존재하면 프록시 모듈(150)로 전달해야 할 패킷으로 판단한다. 보안 관리자는 외부로부터 부정 침입을 방지하기 원하는 웹 서버의 IP주소와 포트 번호를 NAT 테이블에 기록할 수 있다.
또한 주소 변환 모듈(132)은 TCP/IP 스택(140)을 통해 내부에서 전달되는 패킷의 목적지 또는 출발지 주소를 실제 세션에 맞추어 변경하여 웹 서버(40)와 클라이언트 단말(10)이 중간에 투명 프록시 시스템(100)이 개입된 것을 인식하지 못하도록 처리한다.
TCP/IP(Transmission Control Protocol/Internet Protocol)스택(140)은 TCP, UDP, IP, ARP, RARP, ICMP, IGMP와 같은 다양한 프로토콜의 집합으로서, 상위 계층인 프록시 모듈(150)로부터 전달받은 데이터를 패킷 단위로 가공하고 처리하여 하위 계층인 네트워크 드라이버부(130)로 전달하고 반대로 하위 계층인 네트워크 드라이버부(130)에서 전달된 패킷을 상위 계층인 프록시 모듈(150)로 전달하는 기능을 수행한다.
특히 본 발명에 따른 TCP/IP 스택(140)은 패킷 구조체와 소켓 구조체에 세션 유형(A 또는 B)과 실제 세션 정보를 추가 기록하도록 수정된다. 보다 자세하게는 TCP/IP 스택(140)은 네트워크 드라이버부(130)로부터 전달되는 패킷의 패킷 구조체에 기록되어 있는 세션 유형 및 실제 세션 정보를 해당 세션의 소켓 구조체에 기록한다. 또한 TCP/IP 스택(140)은 프록시 모듈(150)로부터 전달받은 데이터를 패킷 단위로 가공할 때 해당 세션의 소켓 구조체에 기록된 세션 유형 및 실제 세션 정보를 패킷 구조체에 기록한다. 여기서 패킷 구조체는 네트워크 드라이버부(130)와 TCP/IP 스택(140) 사이에 주고 받는 패킷의 데이터 형이고, 소켓 구조체는 세션 단위로 해당 세션 정보를 관리하기 위해 TCP/IP 스택(140)에 지속되는 내부 테이블이다. 한편 세션 유형 'A'는 클라이언트측 세션을 의미하고, 세션 유형 'B'는 서버 측 세션을 의미한다.
프록시 모듈(150)은 투명 프록시 시스템(100)이 중간에서 가로챈 패킷으로 이루어지는 메시지 또는 데이터에 대해 미리 정해진 처리를 수행한 후 다시 TCP/IP 스택(140)을 통해 목적지로 보낸다. 예컨대, 프록시 모듈(150)은 클라이언트 단말(10)로부터 웹 서버(40)로 전송되는 웹 서비스 요청 패킷이 정상적인지 여부를 확인한 후 정상적이면 웹 서버(40)로 전달하고, 비정상적이면 중간에서 차단하는 기능을 수행할 수 있다. 한편 프록시 모듈(150)은 프록시 클라이언트 모듈(151)과 프록시 서버 모듈(155)을 포함할 수 있다.
프록시 클라이언트 모듈(151)은 응용 계층에서 클라이언트 단말(10)과 데이터를 송수신하는 기능을 수행한다. 이를 위해 프록시 클라이언트 모듈(151)은 클라이언트 단말(10)과 통신을 위해 생성된 소켓에 bind 함수를 통해 'LIP', 'DPORT'를 로컬 주소를 설정해놓음으로써 NAT 테이블에 존재하는 모든 목적지 포트에 대해 대기(Listen)하도록 할 수 있다. 여기서, 'LIP'는 프록시 모듈(150)이 클라이언트 단말(10)과 접속하기 위해 사용하는 로컬 IP 주소이며, 'DPORT'는 NAT 테이블에 설정되어 있는 목적지 포트 번호이다. 또한 프록시 클라이언트 모듈(151)은 클라이언트측 세션 연결 시 시스템 함수 'getsockname()'을 사용하여 클라이언트측 세션을 위한 소켓 구조체에 기록된 실제 세션 정보를 얻는다. 이렇게 구해진 실제 세션 정보는 프록시 서버 모듈(155)과 공유된다.
프록시 서버 모듈(155)은 응용 계층에서 웹 서버(40)와 데이터를 송수신하는 기능을 수행한다. 이를 위해 프록시 서버 모듈(155)은 웹 서버(40)와 통신을 위해 생성된 소켓에 GIP, GPORT를 로컬 주소로 설정해놓는다. 여기서, 'GIP'는 프록시 모듈(150)이 웹 서버(40)와 접속하기 위해 사용되는 로컬 IP 주소이며, 'GPORT'는 TCP 포트 번호이다. 또한 프록시 서버 모듈(155)은 웹 서버(40)와 통신을 위한 서버측 세션 연결 시 시스템 함수 'setsockopt()'를 사용하여 서버측 세션을 위한 소켓 구조체에 실제 세션 정보 및 세션 유형(B)을 기록한다.
이하 설명에서 혼동을 피하기 위해 용어를 다음과 같이 정의한다.
SIP, SPORT는 클라이언트 단말(10)이 웹 서버(40)와 통신할 때 사용하는 IP 주소, TCP 포트 번호이다.
DIP, DPORT는 웹 서버(40)가 클라이언트 단말(10)과 통신할 때 사용하는 IP 주소, TCP 포트 번호이다.
GIP, GPORT는 프록시 모듈(150)이 프록시 서버 모듈(155)을 통해 웹 서버(40)와 접속하기 위해 사용하는 IP 주소와 TCP 포트 번호이다.
LIP는 프록시 모듈(150)이 클라이언트 단말(10)과 접속하기 위해 사용하는 로컬 IP 주소이다.
패킷(SMAC, SIP, SPORT, DMAC, DIP, DPORT)은 클라이언트 단말(10)을 출발지로 하고 웹 서버(40)를 목적지로 하는 패킷으로, SMAC, SIP, SPORT, DMAC, DIP, DPORT이 출발지 MAC 주소, 출발지 IP 주소, 출발지 포트 번호, 목적지 MAC 주소, 목적지 IP 주소, 목적지 포트 번호로 설정되어 있다.
패킷(DMAC, DIP, DPORT, SMAC, SIP, SPORT)은 웹 서버(40)를 출발지로 하고 클라이언트 단말(10)을 목적지로 하는 패킷으로, DMAC, DIP, DPORT, SMAC, SIP, SPORT이 출발지 MAC 주소, 출발지 IP 주소, 출발지 포트 번호, 목적지 MAC 주소, 목적지 IP 주소, 목적지 포트 번호로 설정되어 있다.
MAC 어드레스는 네트워크 세그먼트 단위로 설정이 바뀔 수 있으므로 다음과 같이 가정한다. 패킷(SMAC, SIP, SPORT, DMAC, DIP, DPORT)이 투명 프록시 시스템(100)에 수신될 때 출발지 MAC 주소는 SMAC이 설정되어 있고, 목적지 MAC 주소는 DMAC이 설정되어 있는 것으로 가정한다. 반대로 패킷(DMAC, DIP, DPORT, SMAC, SIP, SPORT)이 수신될 때는 SMAC이 목적지 MAC 주소로 설정되고 DMAC이 출발지 MAC 주소로 설정되어 있는 것으로 가정한다.
그러면 도 3 내지 도 6을 참조하여 본 발명의 일 실시예에 따른 투명 프록시 시스템의 동작에 대해 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 투명 프록시 시스템의 동작을 설명하기 위해 제공되는 흐름도이며, 도 4는 도 3의 클라이언트 인터페이스를 통해 패킷이 전달된 경우 처리 단계를 상세히 나타낸 흐름도이고, 도 5은 도 3의 로컬 인터페이스를 통해 패킷이 전달된 경우 처리 단계를 상세히 나타낸 흐름도이며, 도 6은 도 3의 서버 인터페이스를 통해 패킷이 전달된 경우 처리 단계를 상세히 나타낸 흐름도이다.
도 3을 참고하면, 먼저 네트워크 드라이버부(130)는 패킷을 수신하면 패킷이 전달된 인터페이스를 확인한다(S300). 패킷은 클라이언트 인터페이스(110), 서버 인터페이스(120) 또는 TCP/IP 스택(140:로컬 인터페이스)를 통해 전달될 수 있으며, 네트워크 드라이버부(130)는 전달된 인터페이스에 따라 패킷을 다르게 처리한 다.
먼저 도 4를 참고하여 클라이언트 인터페이스(110)를 통해 패킷이 전달된 경우를 설명한다.
도 4를 참고하면, 네트워크 드라이버부(130)는 클라이언트 인터페이스(110)를 통해 전달된 패킷의 목적지 IP 주소와 목적지 PORT 번호가 NAT 테이블에 존재하는지 확인한다(S410). 이하에서 패킷(SMAC, SIP, SPORT, DMAC, DIP, DPORT)이 네트워크 드라이버부(130)에 전달된 것으로 가정하고 설명한다.
패킷(SMAC, SIP, SPORT, DMAC, DIP, DPORT)의 목적지 IP 주소(DIP), 목적지 PORT 번호(DPORT)가 NAT 테이블에 존재하면(S410-Y), 네트워크 드라이버부(130)는 전달된 패킷이 웹 서버(40)로 처음 세션 연결을 요청하는 패킷(이하 'SYN 패킷'이라 함)인지 확인한다(S420).
SYN 패킷인 경우(S420-Y), 네트워크 드라이버부(130)는 세션 테이블에 해당 패킷의 세션 정보(SMAC, SIP, SPORT, DMAC, DIP, DPORT)를 등록하고(S430), 패킷 구조체에 세션 유형과 실제 세션 정보를 추가 기록한다(S440). 예컨대 패킷 구조체에 세션 유형을 'A'로 기록하고 실제 세션 정보(SIP, SPORT, DIP, DPORT)를 추가한다. 여기서 패킷 구조체에 실제 세션 정보를 기록할 때 MAC 주소는 제외하고 기록할 수 있다.
한편 SYN 패킷이 아닌 경우(S420-N), 이미 클라이언트 단말(10)과 세션이 연결되고 실제 세션 정보가 세션 테이블에 기록되었으므로 단계(S430)와 단계(S440)를 생략하고 바로 다음 단계(S450)를 수행할 수 있다.
이후 네트워크 드라이버부(130)는 전달된 패킷의 목적지 IP 주소를 'DIP'에서 'LIP'로 변경하고 TCP/IP 스택(140)으로 전달한다(S450). 네트워크 드라이버부(130)는 시스템 동작 초기부터 클라이언트 인터페이스(110)를 통해 수신된 패킷을 TCP/IP 스택(140)으로 전달할 때 목적지 IP 주소를 'LIP'로 변경하도록 설정되도록 구현되는 것이 바람직하다.
이후 네트워크 드라이버부(130)로부터 전달된 패킷이 SYN 패킷이면(S460-Y), TCP/IP 스택(140)은 세션 연결 요청을 수락(accept)하고 패킷 구조체에 기록된 세션 유형과 실제 세션 정보를 소켓 구조체에 기록한다(S470). 이때 프록시 클라이언트 모듈(151)은 시스템 함수 'getsockname()'을 통해 소켓 구조체에 기록된 실제 세션 정보를 얻을 수 있다. 한편 SYN 패킷이 아니면(S460-N), TCP/IP 스택(140)은 바로 단계(S480)를 수행한다.
이후 TCP/IP 스택(140)은 패킷을 프록시 클라이언트 모듈(151)을 통해 프록시 모듈(150)로 전달하여 처리되도록 한다(S480). 프록시 모듈(150)은 앞에서 설명한 것처럼 'LIP', 'DPORT'를 로컬 주소를 설정해놓은 소켓이 생성되어 있으므로 TCP/IP 스택(140)으로부터 해당 패킷을 수신할 수 있다.
한편 클라이언트 인터페이스(110)를 통해 전달된 패킷의 목적지 IP 주소와 목적지 PORT 번호가 NAT 테이블에 존재하지 않으면(S410-N), 네트워크 드라이버부(130)는 전달된 패킷을 서버 인터페이스(120)로 전송한다(S490).
다음으로 도 5를 참고하여 네트워크 드라이버부(130)가 로컬 인터페이스를 통해 패킷을 수신한 경우에 대해 설명한다.
도 5를 참고하면, 먼저 네트워크 드라이버부(130)는 패킷 구조체에 기록된 세션 유형을 확인한다(S510). 위에서 설명한 것처럼 로컬 인터페이스를 통해 전달되는 패킷은 TCP/IP 스택(140)에서 세션 유형 및 실제 세션 정보가 패킷 구조체에 기록되어 네트워크 드라이버부(130)에 전달되게 된다. 예컨대 클라이언트측 세션을 통해 전송되어야 할 패킷은 패킷 구조체에 세션 유형이 'A'로 기록하고 서버측 세션을 통해 전송되어야 할 패킷은 세션 유형이 'B'로 기록된다.
확인 결과 세션 유형이 'A'이면(S510-A), 네트워크 드라이버부(130)는 세션 테이블에서 패킷에 설정된 출발지 PORT, 목적지 IP, 목적지 PORT를 키값으로 하여 실제 세션 정보를 구한다(S520). 이하 패킷(출발지 MAC, LIP, DPORT, 목적지 MAC, SIP, SPORT)이 네트워크 드라이버부(130)에 전달된 것으로 가정하고 설명한다. 패킷에 설정된 출발지 PORT, 목적지 IP, 목적지 PORT는 각각 'DPORT', 'SIP', 'SPORT'이므로 세션 테이블에서 그에 대응하는 실제 세션 정보(SMAC, SIP, SPORT, DMAC, DIP, DPORT)를 구할 수 있다.
이후 네트워크 드라이버부(130)는 단계(S520)에서 구해진 실제 세션 정보를 이용하여 출발지 IP 주소를 'LIP'에서 'DIP'로 변경하고, 출발지 MAC 주소는 'DMAC'으로 변경하고, 목적지 MAC 주소는 'SMAC'으로 변경한 후(S530), 클라이언트 인터페이스(110)를 통해 클라이언트 단말(10)로 전송한다(S540). 이에 의해 클라이언트 단말(10)로 전달되는 패킷은 항상 웹 서버(40)의 주소가 출발지 주소로 설정되게 된다.
한편 세션 유형이 'B'이면(S510-B), 네트워크 드라이버부(130)는 프록시 모 듈(150)에서 웹 서버(40)로 처음 세션 연결을 요청하는 SYN 패킷인지 확인한다(S550). 이하에서는 패킷(출발지 MAC, GIP, GPORT, 목적지 MAC, DIP, DPORT)이 패킷 구조체에 세션 유형이 'B', 실제 세션 정보는 'SIP', 'SPORT', 'DIP', 'DPORT'로 기록되어 전달된 것으로 가정하고 설명한다.
SYN 패킷이면(S550-Y), 네트워크 드라이버부(130)는 세션 테이블에 GIP, GPORT를 추가한다(S560).
이후 패킷 구조체에 기록되어 있는 실제 세션의 출발지 IP 주소(SIP), 출발지 포트 번호(SPORT)를 키값으로 세션 테이블에서 실제 세션 정보(SMAC, SIP, SPORT, DMAC, DIP, DPORT)를 검색한다(S570).
이후 네트워크 드라이버부(130)는 실제 세션 정보를 이용하여 출발지 IP 주소를 'GIP'에서 'SIP'로, 출발지 포트 번호를 'GPORT'에서 'SPORT'로, 출발지 MAC 주소를 'SMAC'로, 목적지 MAC 주소를 'DMAC'으로 변경한 후(S580), 서버 인터페이스(120)를 통해 웹 서버(40)로 패킷을 전송한다(S590).
마지막으로 도 6을 참조하여 서버 인터페이스(120)를 통해 패킷을 수신한 경우에 대해 설명한다. 패킷(DMAC, DIP, DPORT, SMAC, SIP, SPORT)이 수신된 것으로 가정하고 설명한다.
먼저 네트워크 드라이버부(130)는 패킷 헤더에 실제 설정된 출발지 포트 주소(DPORT), 목적지 IP 주소(SIP), 목적지 포트 번호(SPORT)를 키값으로 해당 키값을 가지는 세션 정보가 세션 테이블에 등록되어 있는지 확인한다(S610).
세션 테이블에 등록되어 있으면(S610-Y), 네트워크 드라이버부(130)는 패킷 의 목적지 IP 주소(SIP)를 'GIP'로, 목적지 포트 번호(SPORT)를 'GPORT'로 변경하고 패킷 구조체에 세션 유형을 'B'로 기록한 후 TCP/IP 스택(140)으로 패킷을 전달한다(S620). 네트워크 드라이버부(130)는 단계(S590)에서 세션 테이블에 추가 기록된 'GIP', 'GPORT'를 이용하여 패킷의 목적지 주소를 변경할 수 있다.
한편 세션 테이블에 등록되어 있지 않으면(S610-N), 네트워크 드라이버부(130)는 패킷을 클라이언트 인터페이스(110)를 통해 클라이언트 단말(10)로 전송한다(S640).
본 발명의 실시예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터로 읽을 수 있는 매체를 포함한다. 이 매체는 지금까지 설명한 투명 프록시 시스템의 패킷 처리 방법을 실행시키기 위한 프로그램을 기록한다. 이 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 이러한 매체의 예에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기 매체, CD 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 자기-광 매체, 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 구성된 하드웨어 장치 등이 있다. 또는 이러한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발 명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
이상 설명한 바와 같이, 본 발명에 따르면 패킷에 설정된 주소를 서버와 클라이언트의 실제 세션에 맞게 처리하여 재전송함으로써 중간에 프록시 서버가 개입되는 것을 인식하지 못하게 할 수 있다.

Claims (15)

  1. 클라이언트 단말과 서버 사이에 교환되는 패킷을 중간에서 처리하는 프록시 모듈을 포함하는 투명 프록시 시스템의 패킷 처리 방법에 있어서,
    패킷이 전달된 인터페이스를 확인하는 단계;
    클라이언트 인터페이스를 통해 상기 패킷이 전달된 경우, 상기 패킷의 목적지 IP 주소와 목적지 포트 번호가 네트워크 주소 변환 테이블(NAT 테이블)에 존재하는지 확인하는 단계;
    상기 패킷의 목적지 IP 주소와 목적지 포트 번호가 NAT 테이블에 존재하면 상기 패킷의 목적지 IP 주소를 상기 프록시 모듈이 상기 클라이언트 단말과 통신을 위해 사용하는 제1 로컬 IP 주소로 변경하여 TCP/IP 스택을 통해 상기 프록시 모듈로 전달하는 단계; 를 포함하고,
    상기 패킷이 처음 세션 연결을 요청하는 경우,
    상기 패킷에 설정된 목적지 주소 및 출발지 주소를 세션 정보로서 세션 테이블에 기록하는 단계;
    상기 패킷의 패킷 구조체에 실제 세션 정보 및 세션 유형 정보(제1 세션 유형으로 기록함)를 기록하는 단계; 및
    상기 패킷 구조체에 기록된 실제 세션 정보 및 세션 유형 정보를 클라이언트 세션을 위한 제1 소켓 구조체에 기록하는 단계; 를 더 포함하는 투명 프록시 시스템의 패킷 처리 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    서버측 세션을 위한 제2 소켓 구조체에 상기 제1 소켓 구조체에서 구한 실제 세션 정보와 세션 유형 정보(제2 세션 유형으로 기록함)를 기록하는 단계; 를 더 포함하는 것을 특징으로 하는 투명 프록시 시스템의 패킷 처리 방법.
  4. 제 3 항에 있어서,
    상기 TCP/IP 스택에서 클라이언트측 세션을 통해 상기 클라이언트 단말로 전송하는 패킷의 패킷 구조체에 상기 제1 소켓 구조체에 기록된 제1 세션 유형 및 실제 세션 정보를 기록하는 단계; 및,
    상기 TCP/IP 스택에서 서버측 세션을 통해 상기 서버로 전송하는 패킷의 패킷 구조체에 상기 제2 소켓 구조체에 기록된 제2 세션 유형 및 실제 세션 정보를 기록하는 단계; 를 더 포함하는 투명 프록시 시스템의 패킷 처리 방법.
  5. 제 4 항에 있어서,
    상기 TCP/IP 스택으로부터 로컬 인터페이스를 통해 패킷이 전달된 경우, 상기 패킷의 패킷 구조체에 기록되어 있는 세션 유형 정보를 확인하는 단계;
    상기 패킷 구조체에 제1 세션 유형이 기록되어 있는 경우, 상기 패킷 헤더에 설정된 목적지 IP 주소, 목적지 포트 번호 및 출발지 포트 번호를 키값으로 상기 세션 테이블을 조회하여 세션 정보를 구하는 단계;
    상기 구해진 세션 정보를 참조하여 상기 패킷의 출발지 IP 주소, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경하는 단계; 및,
    상기 출발지 IP 주소, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경한 패킷을 상기 클라이언트 단말로 전송하는 단계; 를 더 포함하는 것을 특징으로 하는 투명 프록시 시스템의 패킷 처리 방법.
  6. 제 4 항에 있어서,
    상기 TCP/IP 스택으로부터 로컬 인터페이스를 통해 패킷이 전달된 경우, 상기 패킷의 패킷 구조체에 기록되어 있는 세션 유형 정보를 확인하는 단계;
    상기 패킷 구조체에 제2 세션 유형이 기록되어 있는 경우, 상기 패킷 구조체에 기록되어 있는 실제 세션의 출발지 IP 주소, 출발지 포트 번호를 키값으로 상기 세션 테이블을 조회하여 세션 정보를 구하는 단계;
    상기 구해진 세션 정보를 기초로 상기 패킷의 출발지 IP 주소, 출발지 포트 번호, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경하는 단계; 및,
    상기 출발지 IP 주소, 출발지 포트 번호, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경한 패킷을 상기 서버로 전송하는 단계; 를 더 포함하는 것을 특징으로 하는 투명 프록시 시스템의 패킷 처리 방법.
  7. 제 1 항에 있어서,
    패킷이 서버 인터페이스를 통해 전달된 경우, 상기 패킷에 설정된 목적지 IP 주소, 목적지 포트 번호 및 출발지 포트 번호를 키값으로 하는 세션 정보가 상기 세션 테이블에 등록되어 있는지 확인하는 단계;
    상기 세션 테이블에 세션이 등록되어 있으면, 상기 패킷의 목적지 IP 주소, 목적지 포트 번호를 상기 프록시 모듈이 상기 서버와 통신하는데 사용하는 제2 로컬 IP 주소와 로컬 포트 번호로 변경하는 단계; 및,
    상기 목적지 IP 주소, 목적지 포트 번호를 상기 프록시 모듈이 상기 서버와 통신하는데 사용하는 제2 로컬 IP 주소와 로컬 포트 번호로 변경한 패킷을 상기 TCP/IP 스택을 통해 상기 프록시 모듈로 전달하는 단계; 를 더 포함하는 것을 특징으로 하는 투명 프록시 시스템의 패킷 처리 방법.
  8. 컴퓨터에 제1항, 제3항 내지 제7항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  9. 클라이언트 단말과 서버 사이에 교환되는 패킷을 중간에서 처리하는 프록시 모듈을 포함하는 투명 프록시 시스템에 있어서,
    클라이언트 인터페이스를 통해 패킷이 전달된 경우, 상기 패킷의 목적지 IP 주소와 목적지 포트 번호가 네트워크 주소 변환 테이블(NAT 테이블)에 존재하는지 확인하고, 상기 패킷의 목적지 IP 주소와 목적지 포트 번호가 NAT 테이블에 존재하면 상기 패킷의 목적지 IP 주소를 상기 프록시 모듈이 상기 클라이언트 단말과 통신을 위해 사용하는 제1 로컬 IP 주소로 변경하는 네트워크 드라이버부; 및,
    상기 네트워크 드라이버부로부터 전달된 패킷을 처리하여 상기 프록시 모듈로 전달하는 TCP/IP 스택; 을 포함하는 투명 프록시 시스템.
  10. 제 9 항에 있어서,
    상기 패킷이 처음 세션 연결을 요청하는 경우,
    상기 네트워크 드라이버부는, 상기 패킷에 설정된 목적지 주소 및 출발지 주소를 세션 정보로서 세션 테이블에 기록하고, 상기 패킷의 패킷 구조체에 실제 세션 정보 및 세션 유형 정보(제1 세션 유형으로 기록함)를 기록하며,
    상기 TCP/IP 스택은, 상기 패킷 구조체에 기록된 실제 세션 정보 및 세션 유형 정보를 클라이언트 세션을 위한 제1 소켓 구조체에 기록하는 것을 특징으로 하는 투명 프록시 시스템.
  11. 제 10 항에 있어서,
    상기 프록시 모듈은 서버측 세션을 위한 제2 소켓 구조체에 상기 제1 소켓 구조체에서 구한 실제 세션 정보와 세션 유형 정보(제2 세션 유형으로 기록함)가 기록되도록 하는 것을 특징으로 하는 투명 프록시 시스템.
  12. 제 11 항에 있어서,
    상기 TCP/IP 스택은,
    클라이언트측 세션을 통해 상기 클라이언트 단말로 전송하는 패킷의 패킷 구 조체에 상기 제1 소켓 구조체에 기록된 제1 세션 유형 및 실제 세션 정보를 기록하며, 서버측 세션을 통해 상기 서버로 전송하는 패킷의 패킷 구조체에 상기 제2 소켓 구조체에 기록된 제2 세션 유형 및 실제 세션 정보를 기록하는 것을 특징으로 하는 투명 프록시 시스템.
  13. 제 12 항에 있어서,
    상기 네트워크 드라이버부는,
    상기 TCP/IP 스택으로부터 패킷이 전달된 경우, 상기 패킷의 패킷 구조체에 기록되어 있는 세션 유형 정보를 확인하고, 상기 패킷 구조체에 제1 세션 유형이 기록되어 있는 경우 상기 패킷 헤더에 설정된 목적지 IP 주소, 목적지 포트 번호 및 출발지 포트 번호를 키값으로 상기 세션 테이블을 조회하여 세션 정보를 구하며, 상기 구해진 세션 정보를 참조하여 상기 패킷의 출발지 IP 주소, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경하고 상기 클라이언트 단말로 전송하는 것을 특징으로 하는 투명 프록시 시스템.
  14. 제 12 항에 있어서,
    상기 네트워크 드라이버부는,
    상기 TCP/IP 스택으로부터 로컬 인터페이스를 통해 패킷이 전달된 경우, 상기 패킷의 패킷 구조체에 기록되어 있는 세션 유형 정보를 확인하고, 상기 패킷 구조체에 제2 세션 유형이 기록되어 있는 경우 상기 패킷 구조체에 기록되어 있는 실 제 세션의 출발지 IP 주소, 출발지 포트 번호를 키값으로 상기 세션 테이블을 조회하여 세션 정보를 구하며, 상기 구해진 세션 정보를 기초로 상기 패킷의 출발지 IP 주소, 출발지 포트 번호, 출발지 MAC 주소 및 목적지 MAC 주소를 실제 주소로 변경하고 상기 서버로 전송하는 것을 특징으로 하는 투명 프록시 시스템.
  15. 제 10 항에 있어서,
    상기 네트워크 드라이버부는,
    패킷이 서버 인터페이스를 통해 전달된 경우, 상기 패킷에 설정된 목적지 IP 주소, 목적지 포트 번호 및 출발지 포트 번호를 키값으로 하는 세션 정보가 상기 세션 테이블에 등록되어 있는지 확인하고, 상기 세션 테이블에 세션이 등록되어 있으면 상기 패킷의 목적지 IP 주소, 목적지 포트 번호를 상기 프록시 모듈이 상기 서버와 통신하는데 사용하는 제2 로컬 IP 주소와 로컬 포트 번호로 변경하여 상기 TCP/IP 스택을 통해 상기 프록시 모듈로 전달하는 것을 특징으로 하는 투명 프록시 시스템.
KR1020070059328A 2007-06-18 2007-06-18 투명 프록시 시스템 및 그의 패킷 처리 방법 KR100898371B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070059328A KR100898371B1 (ko) 2007-06-18 2007-06-18 투명 프록시 시스템 및 그의 패킷 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070059328A KR100898371B1 (ko) 2007-06-18 2007-06-18 투명 프록시 시스템 및 그의 패킷 처리 방법

Publications (2)

Publication Number Publication Date
KR20070096987A KR20070096987A (ko) 2007-10-02
KR100898371B1 true KR100898371B1 (ko) 2009-05-18

Family

ID=38803567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070059328A KR100898371B1 (ko) 2007-06-18 2007-06-18 투명 프록시 시스템 및 그의 패킷 처리 방법

Country Status (1)

Country Link
KR (1) KR100898371B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102085331B1 (ko) * 2019-01-07 2020-03-05 주식회사 엑스게이트 네트워크 이중화 환경에서 투명 프록시를 이용한 패킷 처리 방법 및 패킷 처리 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030000080A (ko) * 2001-06-22 2003-01-06 주식회사 엑스큐어넷 네트워크상에서의 투명한 게이트웨이 또는 투명한 프록시구현 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030000080A (ko) * 2001-06-22 2003-01-06 주식회사 엑스큐어넷 네트워크상에서의 투명한 게이트웨이 또는 투명한 프록시구현 방법

Also Published As

Publication number Publication date
KR20070096987A (ko) 2007-10-02

Similar Documents

Publication Publication Date Title
CN110301126B (zh) 会议服务器
US8607323B2 (en) Method for providing media communication across firewalls
KR100416541B1 (ko) 홈게이트웨이와 홈포탈서버를 이용한 홈네트워크 접근방법 및 그 장치
US7472411B2 (en) Method for stateful firewall inspection of ICE messages
US7978716B2 (en) Systems and methods for providing a VPN solution
US10313397B2 (en) Methods and devices for access control of data flows in software defined networking system
US8996657B2 (en) Systems and methods for multiplexing network channels
US7107609B2 (en) Stateful packet forwarding in a firewall cluster
US11297115B2 (en) Relaying media content via a relay server system without decryption
WO2005048106A2 (en) Virtual private network with pseudo server
WO2009045799A2 (en) Method, apparatus and system for network mobility of a mobile communication device
US8429279B2 (en) Method and device for connecting packet-oriented communication terminals
US11575757B2 (en) Cloaked remote client access
US20130117460A1 (en) Data management methods for use in a network system and network systems using the same
US20060053485A1 (en) Network connection through NAT routers and firewall devices
US9088542B2 (en) Firewall traversal driven by proximity
KR100898371B1 (ko) 투명 프록시 시스템 및 그의 패킷 처리 방법
WO2011044810A1 (zh) 实现多方通信的方法、装置及系统
US8576854B2 (en) System for communication between private and public IP networks
US8023985B1 (en) Transitioning a state of a connection in response to an indication that a wireless link to a wireless device has been lost
JP2007519356A (ja) セキュリティを備えた遠隔制御ゲートウェイ管理
JP3929969B2 (ja) 通信システム、サーバ、端末装置、通信方法、プログラムおよび記憶媒体
JP2006352710A (ja) パケット中継装置及びプログラム
KR101158794B1 (ko) VoIP 서비스 제공 방법 및 세션 보더 컨트롤러 서버
KR101896551B1 (ko) 분리망 연계 시스템 및 그 제어방법

Legal Events

Date Code Title Description
A201 Request for examination
G15R Request for early opening
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130507

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140508

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150506

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160503

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170508

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190430

Year of fee payment: 11