KR100660123B1 - Vpn server system and vpn terminal for a nat traversal - Google Patents

Vpn server system and vpn terminal for a nat traversal Download PDF

Info

Publication number
KR100660123B1
KR100660123B1 KR1020050100883A KR20050100883A KR100660123B1 KR 100660123 B1 KR100660123 B1 KR 100660123B1 KR 1020050100883 A KR1020050100883 A KR 1020050100883A KR 20050100883 A KR20050100883 A KR 20050100883A KR 100660123 B1 KR100660123 B1 KR 100660123B1
Authority
KR
South Korea
Prior art keywords
vpn
client terminal
server
module
network
Prior art date
Application number
KR1020050100883A
Other languages
Korean (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 KR1020050100883A priority Critical patent/KR100660123B1/en
Application granted granted Critical
Publication of KR100660123B1 publication Critical patent/KR100660123B1/en

Links

Images

Classifications

    • 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
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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/256NAT traversal
    • 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/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Landscapes

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

Abstract

A VPN(Virtual Private Network) server system for NAT(Network Address Translation) traversal and a VPN client terminal are provided to enable IP phones, which cannot implement VoIP calls due to a NAT firewall, to normally execute VoIP calls by preferentially connecting a plurality of VPN clients with a VPN server to construct a VPN network and freely transmitting/receiving call control-associated packets with a gatekeeper through the constructed VPN network. If an ARQ message to call a VPN client terminal is transmitted to a gatekeeper(110) from a calling IP phone(150), the gatekeeper(110) transmits an ACF message to the calling IP phone(150) in response to the received ARQ message. The calling IP phone(150) transmits a call setup message to the gatekeeper(110). The gatekeeper(110) transmits the call setup message to a VPN server(120) through a local ethernet network. The call setup message is delivered to the VPN client terminal through the tunnel module and VPN layer module of the VPN server. The VPN client terminal exchanges ARQ/ACF/ALERT/CONNECT messages with the gatekeeper(110), connected with the local ethernet network through the VON server(120), according to an H.323 protocol and makes a call connection with the calling IP phone(150) finally.

Description

NAT 통과를 위한 브이.피.엔 서버 시스템 및 브이.피.엔 클라이언트 단말기{VPN SERVER SYSTEM AND VPN TERMINAL FOR A NAT TRAVERSAL}VP server system and VPN terminal for NAT traversal {VPN SERVER SYSTEM AND VPN TERMINAL FOR A NAT TRAVERSAL}

도 1은 본 발명의 실시예에 따른 VPN(Virtual Private Network) 서버 시스템과 VPN 클라이언트 단말기가 포함되어 있는 VoIP 시스템 구성 예시도.1 is an exemplary configuration of a VoIP system including a VPN (Virtual Private Network) server system and a VPN client terminal according to an embodiment of the present invention.

도 2는 도 1에 도시한 시스템을 논리적 시스템으로 재도시한 도면.FIG. 2 is a diagram of the system shown in FIG. 1 as a logical system. FIG.

도 3은 도 1에 도시한 VPN 서버 시스템의 프로그램 모듈 구성 예시도.3 is an exemplary program module configuration of the VPN server system shown in FIG.

도 4는 도 1중 본 발명의 실시예에 따른 VPN 클라이언트 단말기의 프로그램 모듈 구성 예시도.4 is an exemplary program module configuration of a VPN client terminal according to an embodiment of the present invention in FIG.

도 5는 도 1에 도시한 VPN 서버와 VPN 클라이언트 단말기간에 VPN이 연결되는 과정을 설명하기 위한 도면.5 is a view for explaining a process of connecting a VPN between the VPN server and the VPN client terminal shown in FIG.

도 6은 도 1에 도시한 VPN 서버와 게이트키퍼를 중심으로 한 콜 시그널링 트랜스퍼(call signalling transfer) 예시도.FIG. 6 illustrates an example of call signaling transfer centering on the VPN server and gatekeeper shown in FIG. 1; FIG.

도 7은 본 발명의 또 다른 실시예에 따른 VPN 서버 시스템이 포함되어 있는 VoIP 시스템 구성 예시도.Figure 7 is an exemplary VoIP system configuration that includes a VPN server system according to another embodiment of the present invention.

도 8은 도 7에 도시한 시스템을 논리적 시스템으로 재도시한 도면.FIG. 8 is a diagram of the system shown in FIG. 7 as a logical system. FIG.

도 9는 도 7에 도시한 VPN 서버 시스템의 프로그램 모듈 구성 예시도.9 is an exemplary program module configuration of the VPN server system shown in FIG.

도 10은 도 7에 도시한 VPN 서버와 게이트키퍼를 중심으로 한 콜 시그널링 트랜스퍼(call signalling transfer) 예시도.FIG. 10 is a diagram illustrating call signaling transfer centering on the VPN server and gatekeeper shown in FIG. 7; FIG.

본 발명은 VoIP 시스템에 관한 것으로, 특히 NAT(Network Address Translation) 통과(traversal)를 위한 가상의 사설망(VPN)을 구축하기 위해 필요한 서버 시스템과 VPN 클라이언트 단말기에 관한 것이다.The present invention relates to a VoIP system, and more particularly, to a server system and a VPN client terminal necessary for establishing a virtual private network (VPN) for NAT (traversal) traversal.

IP 자원이 제한적이고 사용자의 입장에서 비용 증가 등의 이유로 NAT(Network Address Translation) 방식의 IP 공유기가 많이 이용되고 있다. 공유기를 사용하게 되면 하나의 공인 IP를 이용해서 다수의 단말이 IP망에 연결될 수 있기 때문에 소규모 기업이나 가정에서 많이 사용되고 있다.Network routers using NAT (Network Address Translation) are widely used because of limited IP resources and increased cost from the user's point of view. When the router is used, many terminals can be connected to the IP network by using one public IP, which is widely used in small businesses or homes.

그러나 NAT을 이용할 경우 일부 어플리케이션이 TCP/IP 응용 프로그램의 종류에 따라 NAT 방화벽에 의해 정상적으로 처리되지 않는 문제가 발생할 수 있다. 이는 NAT가 TCP/UDP 패킷의 헤더만 변경하므로 페이로드에 네트워크 접속정보를 전송하는 경우, 상대방에서 라우팅할 수 없는 사설 IP를 얻을 수 밖에 없기 때문이다. 이러한 프로토콜을 사용하는 대표적인 응용 프로그램으로 P2P방식의 파일 공유/전송 어플리케이션, 인터넷 게임, VoIP 또는 FTP와 같은 것들이 있다. 이중 FTP와 같이 널리 알려진 프로토콜은 IP 공유기에서 페이로드에 전송되는 접속정보를 변경하는 NAT Traversal을 실시하여 상술한 문제를 해결할 수 있다. 그러나 NAT Traversal과 같은 별도 처리 대상을 선정하기에는 어플리케이션의 수가 너무 많으 며, 언제나 새로운 어플리케이션이 만들어지고 있으므로, NAT 방화벽을 통과하지 못하는 어플리케이션이 항상 존재할 수 밖에 없다.However, when using NAT, some applications may not be processed properly by the NAT firewall depending on the type of TCP / IP application. This is because NAT only changes the header of the TCP / UDP packet, so when transmitting network access information in the payload, the private IP cannot be routed from the other party. Typical applications using these protocols include P2P file sharing / transfer applications, Internet games, VoIP or FTP. A well-known protocol such as FTP can solve the above-mentioned problem by performing NAT traversal to change the access information transmitted to the payload in the IP router. However, because there are too many applications to select separate processing targets such as NAT Traversal, and new applications are always being created, there are always applications that cannot pass through the NAT firewall.

한편 NAT 방화벽의 문제를 일부 해결하는 기능으로서, IP 공유기에서 내부 네트워크의 한 장치를 DMZ(DeMilitarized Zone) 서버로 지정하고, 상기 DMZ 서버로 지정된 네트워크 장치로부터의 패킷은 가급적 헤더의 포트번호를 바꾸지 않고 IP망으로 내보내며, 등록되지 않은 통로로 전송되는 외부로부터의 패킷은 버리지 않고 모두 DMZ로 보내는 방법이 있다. 이러한 방법은 DMZ가 비록 NAT 방화벽 내부에 존재하지만 IP망에 직접 연결된 것처럼 보이게 하여 외부로부터의 접근을 모두 허용하도록 한 것이다.On the other hand, as a function to solve some of the problems of NAT firewall, the IP router designates one device of the internal network as a DMZ (DeMilitarized Zone) server, and packets from the network device designated as the DMZ server are preferably changed without changing the port number of the header. There is a way to send all the packets from the outside to the DMZ without sending them out through the IP network. This approach allows the DMZ to appear to be directly connected to the IP network, even though it is inside the NAT firewall, allowing access from the outside.

그러나 DMZ를 사용하더라도 IP 공유기 내부의 네트워크 장치가 여전히 사설 IP를 사용하기 때문에, 상술한 NAT Traversal 처리에 대한 근본적인 문제를 해결할 수는 없다.However, even with the DMZ, since the network device inside the IP router still uses the private IP, it cannot solve the fundamental problem of the NAT traversal processing described above.

이에 본 발명의 목적은 상술한 문제점을 해결하기 위하여 창안된 것으로서, IP 폰들이 IP 공유기에 접속되어 있는 VoIP 시스템에서 NAT Traversal이 정상 처리되도록 하여 VoIP 통화가 이루어질 수 있는 VPN(Virtual Private Network) 서버 시스템 및 VPN 클라이언트 단말기를 제공함에 있다.Accordingly, an object of the present invention was devised to solve the above-mentioned problem, and a VPN (Virtual Private Network) server system capable of making a VoIP call by allowing NAT Traversal to be normally processed in a VoIP system in which IP phones are connected to an IP router. And a VPN client terminal.

상기 목적을 달성하기 위한 본 발명의 일실시예에 따른 VPN 서버 시스템은 사설 IP가 할당되어 있는 게이트키퍼와 이더넷 인터페이스부를 통해 접속 가능하 며, IP 공유기에 접속되는 다수의 VPN 클라이언트 단말들과 가상의 사설망(VPN)을 구축하기 위한 VPN(Virtual Private Network) 서버로서,VPN server system according to an embodiment of the present invention for achieving the above object is accessible via a gatekeeper and an Ethernet interface to which a private IP is assigned, and a plurality of VPN client terminals connected to an IP router As a virtual private network (VPN) server for building a private network (VPN),

VPN 네트워크에 접속하기 위해 필요한 정보들과 VoIP 통신을 수행하기 위해 필요한 정보들을 VPN 인터페이스부를 통해 상기 VPN 클라이언트 단말들에 제공하기 위한 컨피그(config) 모듈과;A config module for providing the VPN client terminals with information necessary for connecting to a VPN network and information necessary for performing VoIP communication;

접속 요청한 VPN 클라이언트 단말을 인증하기 위한 클라이언트 인증모듈과;A client authentication module for authenticating the VPN client terminal requesting access;

인증된 VPN 클라이언트 단말과 VPN 세션을 유지하며, 상기 VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 호 처리 패킷들을 릴레이하기 위한 터널 모듈과;A tunnel module for maintaining a VPN session with an authenticated VPN client terminal and for relaying call processing packets transmitted and received between the VPN interface and the Ethernet interface;

VPN 클라이언트 단말과 VPN을 구성하기 위한 가상의 드라이버를 제공하기 위한 VPN 레이어 모듈;을 포함함을 특징으로 한다.And a VPN layer module for providing a virtual driver for configuring a VPN with the VPN client terminal.

더 나아가 상기 VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 음성 데이터 패킷을 릴레이하기 위한 미디어 릴레이 모듈을 더 포함함을 또 다른 특징으로 한다.Furthermore, it further includes a media relay module for relaying voice data packets transmitted and received between the VPN interface and the Ethernet interface.

상술한 바와 같은 특징적 구성에 따르면, IP 공유기에 접속되어 있는 다수의 VPN 클라이언트는 우선적으로 VPN 서버와 가상의 사설망을 구축하게 되고, 구축된 가상의 사설망을 통해 게이트키퍼와 호 처리 관련 패킷을 자유롭게 송수신함으로서, 사설 IP를 가지는 VPN 클라이언트 단말들이 정상적으로 VoIP 통화를 수행할 수 있게 되는 것이다.According to the characteristic configuration as described above, a plurality of VPN clients connected to the IP router preferentially establishes a virtual private network with the VPN server, and freely transmits and receives the gatekeeper-related packets with the gatekeeper through the established virtual private network. By doing so, VPN client terminals having a private IP can normally perform VoIP calls.

한편 본 발명의 실시예에 따른 VPN 클라이언트 단말기는 VPN(Virtual Private Network) 서버와 가상의 사설망(VPN)을 구축할 수 있는 VoIP 단말기로서,Meanwhile, a VPN client terminal according to an embodiment of the present invention is a VoIP terminal capable of establishing a virtual private network (VPN) server and a virtual private network (VPN).

외부 단말과 VoIP 통화를 수행하기 위해 필요한 통신 프로토콜 스택 모듈과;A communication protocol stack module required for conducting a VoIP call with an external terminal;

VPN 네트워크에 접속하기 위해 필요한 정보 및 VoIP 통신을 수행하기 위해 필요한 정보들을 상기 서버로부터 제공받기 위한 컨피그 모듈과;A config module for receiving from the server information necessary for connecting to a VPN network and information necessary for performing VoIP communication;

상기 서버로부터 제공받은 인증정보를 이용하여 VPN에 가입하기 위한 인증절차를 수행하기 위한 인증 모듈과;;An authentication module for performing an authentication procedure for joining a VPN by using the authentication information provided from the server;

상기 VPN 서버와 VPN 세션을 유지하고, VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 호 처리 패킷들을 릴레이하기 위한 터널 모듈과;A tunnel module for maintaining a VPN session with the VPN server and for relaying call processing packets transmitted and received between the VPN interface and the Ethernet interface;

상기 VPN 서버와 VPN을 구성하기 위한 가상의 드라이버를 제공하기 위한 VPN 레이어 모듈; 및A VPN layer module for providing a virtual driver for configuring a VPN with the VPN server; And

상기 프로그램 모듈 및 응용 프로그램들을 관리하기 위한 시스템 운영체계(OS);를 포함함을 특징으로 한다.And a system operating system (OS) for managing the program modules and application programs.

이러한 클라이언트 단말기 역시 VPN 서버와 가상의 사설망을 구축하게 되고, 구축된 가상의 사설망을 통해 게이트키퍼와 호 처리 관련 패킷을 자유롭게 송수신함으로서 정상적인 VoIP 통화가 이루어질 수 있다.The client terminal also establishes a virtual private network with the VPN server, and a normal VoIP call can be made by freely transmitting and receiving a packet associated with a gatekeeper through the established virtual private network.

이하 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 관련된 공지 기능 혹은 구성에 대한 상세한 설명은 생략하기로 한다. 그리고 하기에서는 설명의 편의상 H.323 방식을 채용한 VoIP 시스템을 가정하여 본 발명의 실시예를 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, a detailed description of related known functions or configurations will be omitted. In the following description, an embodiment of the present invention will be described on the assumption of a VoIP system employing the H.323 method for convenience of description.

우선 도 1은 본 발명의 실시예에 따른 VPN(Virtual Private Network) 서버 (120) 시스템과 IP 폰인 VPN 클라이언트 단말기(140)가 포함되어 있는 VoIP 시스템 구성을 예시한 것이다.First, FIG. 1 illustrates a configuration of a VoIP system including a VPN server 120 and a VPN client terminal 140 which is an IP phone according to an embodiment of the present invention.

도 1에 도시되어 있는 바와 같이 공인 IP를 가지는 일반 IP폰(150)들과 게이트키퍼(GK:110)는 IP망에 연결되어진다. 상기 게이트키퍼(GK:110)는 VoIP 단말을 관리하는 주체로서 호 관리는 물론 과금이나 사용자 관리 기능을 담당하는 것이 일반적이다. 이러한 일반적 기능과는 별도로 상기 게이트키퍼(110)는 본 발명의 구현을 위해서 사설 IP(172.18.0.4)가 할당되어지며 로컬 이더넷망을 통해 후술하는 VPN 서버(120) 시스템과 연결된다. 한편 사설 IP를 가지는 VPN 클라이언트 단말기(140)는 IP 공유기인 NAT 라우터(130)를 통해 IP망과 접속 가능하다. 하기 설명에서 VPN 클라이언트 단말기(140)는 VPN 클라이언트 기능이 포함된 IP폰과 같은 VoIP 단말을 의미하는 것으로 정의하기로 한다.As shown in FIG. 1, general IP phones 150 having a public IP and a gatekeeper GK 110 are connected to an IP network. The gatekeeper (GK) 110 is a subject that manages the VoIP terminal, and is generally in charge of call management and billing or user management. Apart from this general function, the gatekeeper 110 is assigned a private IP (172.18.0.4) for the implementation of the present invention and is connected to a VPN server 120 system described below via a local Ethernet network. Meanwhile, the VPN client terminal 140 having the private IP may be connected to the IP network through the NAT router 130 which is an IP router. In the following description, the VPN client terminal 140 is defined as meaning a VoIP terminal such as an IP phone including a VPN client function.

상술한 VoIP 시스템에서 VPN 서버(120)는 NAT 라우터(130)에 접속되어 있는 다수의 VPN 클라이언트 단말들(140)과 가상의 사설망(VPN)을 구축한다. 이와 같이 VPN 서버(120)와 VPN 클라이언트 단말들(140)이 VPN을 구축하는 경우의 논리적 시스템 구성이 도 2에 도시되어 있다. 이하 도 2에 도시한 바와 같은 논리적 시스템 구성이 얻어지기 위한 VPN 서버(120)와 VPN 클라이언트 단말기(140)의 구성 및 동작을 순차적으로 부연 설명하기로 한다.In the above-described VoIP system, the VPN server 120 establishes a virtual private network (VPN) with a plurality of VPN client terminals 140 connected to the NAT router 130. As such, a logical system configuration in which the VPN server 120 and the VPN client terminals 140 establish a VPN is illustrated in FIG. 2. Hereinafter, the configuration and operation of the VPN server 120 and the VPN client terminal 140 for obtaining the logical system configuration as shown in FIG. 2 will be described in detail.

우선 도 3은 도 1에 도시한 VPN 서버(120) 시스템의 프로그램 모듈 구성을 도시한 것으로, 컨피그(config) 모듈(121), 인증모듈(122), 터널(tunnel)모듈(123), VPN 레이어(layer) 모듈(125) 및 시스템 운영체계(OS) 모듈, 그리고 경우에 따라서는 미디어 릴레이 모듈(124)을 추가적으로 더 포함한다.First, FIG. 3 illustrates a program module configuration of the VPN server 120 system shown in FIG. 1, which includes a config module 121, an authentication module 122, a tunnel module 123, and a VPN layer. It further includes a layer module 125 and a system operating system (OS) module, and optionally a media relay module 124.

상기 컨피그 모듈(121)은 VPN 네트워크에 접속하기 위해 필요한 정보들과 VoIP 통신을 수행하기 위해 필요한 정보들을 허가된 VPN 클라이언트 단말들(140)에 제공하는 역할을 담당한다. 컨피그 모듈(121)에 의해 제공되는 정보는, VPN 서버의 리얼 IP 어드레스 및 TCP 포트정보, 미디어 릴레이 서버의 리얼 IP 어드레스, VPN 클라이언트 단말의 VPN IP 어드레스, VPN 클라이언트의 ID 및 패스워드, VPN 네트워크의 마스크(mask) 어드레스, 게이트키퍼(110) IP 어드레스 및 VPN 네트워크에서 라우팅을 위한 정보, VPN 네트워크의 디폴트 게이트웨이 IP 어드레스를 포함한다. 이들 정보중 미디어 릴레이 서버를 대신할 수 있는 미디어 릴레이 모듈이 VPN 서버(120)의 프로그램 모듈로 구현되었다면 그 서버의 정보는 VPN 서버정보가 될 것이다.The config module 121 is responsible for providing the authorized VPN client terminals 140 with the information necessary to access the VPN network and the information necessary to perform the VoIP communication. The information provided by the config module 121 includes the real IP address and TCP port information of the VPN server, the real IP address of the media relay server, the VPN IP address of the VPN client terminal, the ID and password of the VPN client, and the mask of the VPN network. (mask) address, the gatekeeper 110 IP address, information for routing in the VPN network, and the default gateway IP address of the VPN network. If the media relay module that can replace the media relay server among these information is implemented as a program module of the VPN server 120, the information of the server will be VPN server information.

인증모듈(122)은 VPN에 접속 요청한 VPN 클라이언트 단말(140)과 TCP 연결 설정한후 그 클라이언트 단말을 인증하는 역할을 담당한다. 참고적으로 상기 인증모듈(122)은 상기 VPN 클라이언트의 ID와 패스워드를 통해 단말을 인증한다.The authentication module 122 is responsible for authenticating the client terminal after establishing a TCP connection with the VPN client terminal 140 requesting a VPN connection. For reference, the authentication module 122 authenticates the terminal through the ID and password of the VPN client.

그리고 터널 모듈(123)은 인증된 VPN 클라이언트 단말(140)과 VPN 세션을 유지하며, VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 호 처리 패킷들을 릴레이(relay)하는 역할을 담당한다.The tunnel module 123 maintains a VPN session with the authenticated VPN client terminal 140 and relays call processing packets transmitted and received between the VPN interface and the Ethernet interface.

한편 VPN 레이어 모듈(125)은 VPN 클라이언트 단말(140)과 VPN을 구성하기 위한 가상의 드라이버를 제공하기 위한 모듈로서, 상기 터널 모듈(123)에 의해서 VPN 클라이언트 단말들로 전송되는 패킷과 세션 유지 패킷들은 상기 VPN 레이어 모 듈(125)이 제공하는 가상의 드라이버를 통해서 전달되는 것이다.Meanwhile, the VPN layer module 125 is a module for providing a virtual driver for configuring a VPN with the VPN client terminal 140, and a packet and a session maintenance packet transmitted to the VPN client terminals by the tunnel module 123. They are delivered through a virtual driver provided by the VPN layer module 125.

상술한 바와 같은 프로그램 모듈들을 포함하는 VPN 서버(120)는 기본적으로 상기 프로그램 모듈들을 관리하기 위한 시스템 운영체계(OS)를 더 포함하며,The VPN server 120 including the program modules as described above basically further includes a system operating system (OS) for managing the program modules.

경우에 따라서는 VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 음성 데이터 패킷(RTP)을 릴레이하기 위한 미디어 릴레이 모듈(124)을 더 포함할 수도 있다. 물론 외부 IP망에 구축되어 있는 미디어 릴레이 기능의 TURN 서버를 이용하는 경우라면 상기 미디어 릴레이 모듈은 불필요한 구성이 될 것이다.In some cases, it may further include a media relay module 124 for relaying voice data packets (RTP) transmitted and received between the VPN interface and the Ethernet interface. Of course, if the media relay function TURN server is built in the external IP network, the media relay module will be unnecessary configuration.

이하 상술한 구성을 가지는 VPN 서버(120)와 VPN을 구축하는 VPN 클라이언트 단말기(140)의 프로그램 모듈 구성을 도 4를 참조하여 설명하기로 한다.Hereinafter, a program module configuration of the VPN server 120 having the above-described configuration and the VPN client terminal 140 establishing a VPN will be described with reference to FIG. 4.

도 4에 도시한 바와 같이 VPN 클라이언트 단말기(140)는 기본적으로 외부 단말과 VoIP 통화를 수행하기 위해 필요한 통신 프로토콜 스택 모듈(145)을 포함한다. 이러한 통신 프로토콜 스택 모듈로서 H.323 통신규약에 따라 통신 수행하는 H.323모듈을 들 수 있다.As shown in FIG. 4, the VPN client terminal 140 basically includes a communication protocol stack module 145 necessary for conducting a VoIP call with an external terminal. As such a communication protocol stack module, there may be mentioned an H.323 module that performs communication according to the H.323 communication protocol.

아울러 VPN 클라이언트 단말기(140)는 VPN 네트워크에 접속하기 위해 필요한 정보(VPN 접속정보라 함) 및 VoIP 통신을 수행하기 위해 필요한 정보들을 요청하여 상기 VPN 서버(120)로부터 제공받는 컨피그 모듈(141)과, 상기 서버(120)로부터 제공받은 정보를 이용하여 VPN 서버와 연결 설정하고 VPN에 가입하기 위한 인증절차를 수행하는 인증 모듈(142) 및 상기 VPN 서버(120)와 VPN 세션을 유지하고, VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 호 처리 패킷들을 릴레이하기 위한 터널 모듈(143), 그리고 상기 VPN 서버(120)와 VPN을 구성하기 위한 가상 의 드라이버를 제공하기 위한 VPN 레이어 모듈(144), STUN 서버와 메세지를 송수신하여 NAT을 프로브(probe)하기 위한 스턴(STUN) 모듈(146)과 상기 프로그램 모듈들을 관리하기 위한 시스템 운영체계(OS)(147)를 포함한다.In addition, the VPN client terminal 140 requests the information necessary for accessing the VPN network (referred to as VPN connection information) and the information required for performing VoIP communication, and receives the config module 141 provided from the VPN server 120. Using the information provided from the server 120 to establish a connection with a VPN server and perform an authentication procedure for joining a VPN, and maintain a VPN session with the VPN server 120 and a VPN interface. And a tunnel module 143 for relaying call processing packets transmitted and received between Ethernet and Ethernet interfaces, and a VPN layer module 144 for providing a virtual driver for configuring a VPN with the VPN server 120, and a STUN server. A STUN module 146 for sending and receiving messages to probe NAT and a system operating system (OS) 147 for managing the program modules.

이하 상술한 바와 같은 구성을 가지는 VPN 서버(120)와 VPN 클라이언트 단말기(140)가 VPN을 구축하는 과정을 도 5를 참조하여 설명하기로 한다.Hereinafter, a process of establishing a VPN by the VPN server 120 and the VPN client terminal 140 having the above-described configuration will be described with reference to FIG. 5.

우선 VPN 클라이언트 단말기(140) 사용자는 부여받은 전화번호(H.323 ID, E.164 ID)를 단말기에 설정 등록(S1)한다. 전화번호 설정 등록된 단말기가 재부팅되면, VPN 클라이언트 단말기(140)내 스턴 모듈(146)에 의해 NAT 프로브(probe) 절차(S2)가 이루어진다. 스턴(STUN)의 동작은 RFC 3489 20페이지에 이미 정의되어 있는 관계로 그에 대한 상세 설명은 생략하기로 한다.First, the user of the VPN client terminal 140 registers the set telephone numbers (H.323 ID, E.164 ID) with the terminal (S1). Phone Number Setting When the registered terminal is rebooted, a NAT probe procedure S2 is performed by the stun module 146 in the VPN client terminal 140. The operation of the STUN is already defined in RFC 3489 page 20, so the detailed description thereof will be omitted.

상기 스턴 모듈(146)에 의해 클라이언트 단말기(140)가 NAT(IP 공유기)하(下)에 있는 것으로 판명되면, 단말기내 컨피그 모듈(141)은 사전 등록된 VPN 서버(120)의 IP 주소를 이용하여 VPN 서버(120)측으로 H.323 ID와 E.164 ID를 전송하여 VPN 접속정보의 전송을 요청(S3)한다.If the client terminal 140 is found under the NAT (IP router) by the stun module 146, the intra-configurable module 141 uses the IP address of the pre-registered VPN server 120. By transmitting the H.323 ID and E.164 ID to the VPN server 120 to request the transmission of the VPN access information (S3).

VPN 서버(120)의 컨피그 모듈(121)에 의해 상기 H.323 ID와 E.164 ID가 정상 ID로 판명(S4)되면, 서버(120)측 컨피그 모듈(121)은 VPN 접속정보들과 VoIP 통신을 수행하기 위해 필요한 정보들을 해당 VPN 클라이언트 단말기(140)측으로 전송(S5)함으로서, 단말기측(140) 컨피그 모듈(141)은 상기 정보들을 전달 받게 되는 것이다.When the H.323 ID and the E.164 ID are determined to be normal IDs (S4) by the config module 121 of the VPN server 120, the config module 121 at the server 120 determines the VPN connection information and the VoIP. By transmitting the necessary information for performing the communication to the corresponding VPN client terminal 140 (S5), the terminal module 140, the configuration module 141 is to receive the information.

VPN 접속정보를 포함하는 일련의 정보를 전송받게 되면 VPN 클라이언트 단말 기(120)의 인증모듈(142)은 서버(120)측으로 SYN패킷 등을 전송하여 TCP 연결을 설정(S7)한다. 양자간 TCP 연결이 설정되면 VPN 클라이언트 단말기(120)의 인증모듈(142)은 인증정보(VPN ID, 패스워드)를 VPN 서버(120)측으로 전송(S8)하고, 서버(120)측 인증모듈(122) 역시 전송받은 인증정보의 진위여부를 판단(S9)하여 그 결과를 통보(S10)해 준다. 만약 VPN 클라이언트 단말기(140)의 인증이 정상적으로 완료되었다면 VPN 서버(120)와 클라이언트 단말기(140)간에는 하나의 VPN 연결이 정상적으로 설정된 것으로, 이후 양측은 주기적으로 keep Alive 패킷을 전송(S11)하여 VPN 연결상태를 확인하게 되는 것이다.Upon receiving a series of information including VPN access information, the authentication module 142 of the VPN client terminal 120 establishes a TCP connection by transmitting a SYN packet to the server 120 (S7). When the bilateral TCP connection is established, the authentication module 142 of the VPN client terminal 120 transmits authentication information (VPN ID, password) to the VPN server 120 side (S8), and the server 120 side authentication module 122. ) Also determines the authenticity of the received authentication information (S9) and informs the result (S10). If the authentication of the VPN client terminal 140 is normally completed, one VPN connection is normally established between the VPN server 120 and the client terminal 140, and then both sides periodically transmit a keep alive packet (S11) to connect to the VPN. You will check the status.

상술한 바와 같이 VPN 서버(120)와 클라이언트 단말기(140)간에 VPN 연결이 유지되면 이후 H.323 엔드포인트에 해당하는 VPN 클라이언트 단말기(140)는 도 6에 도시한 바와 같이 VPN 서버(120)측으로 위치정보 등록요구메세지(RRQ)를 전송한다. 이러한 위치정보 등록요구 메세지(RRQ)는 호 처리 패킷들을 릴레이하는 VPN 서버(120)의 터널모듈(123)에 의해 게이트키퍼(110)로 전달됨으로서, 결국 게이트키퍼(110)에는 VPN 클라이언트 단말기(140)들의 위치정보는 물론 외부 IP망에 접속되어 있는 IP폰들(150)의 위치정보 역시 등록되게 되는 것이다.As described above, when the VPN connection is maintained between the VPN server 120 and the client terminal 140, the VPN client terminal 140 corresponding to the H.323 endpoint is then moved to the VPN server 120 side as shown in FIG. 6. Send the location information registration request message (RRQ). The location information registration request message (RRQ) is transmitted to the gatekeeper 110 by the tunnel module 123 of the VPN server 120 relaying call processing packets, so that the gatekeeper 110 has a VPN client terminal 140. In addition to the location information of the location information of the IP phones 150 connected to the external IP network is also to be registered.

이와 같이 게이트키퍼(110)에 VPN 클라이언트 단말기(140)들과 IP폰(150)의 위치등록이 완료되면 이들 상호간에는 도 6에 도시한 바와 같은 일반적인 절차에 따라 호 시그널링 트랜스퍼(call signalling transfer) 과정이 이루어짐으로서 결과적으로 착신측과 발신측 단말기 사이에는 호 연결이 이루어질 수 있는 것이며, 호 연결상태에서 VPN 서버(120)의 미디어 릴레이 모듈(124) 혹은 TURN 서버(IETF의 Draft에 정의됨) 등에 의해 미디어(media) 데이터 등이 실시간으로 전송될 수 있게 되는 것이다.As such, when the location registration of the VPN client terminals 140 and the IP phone 150 is completed in the gatekeeper 110, the call signaling transfer process is performed according to the general procedure as shown in FIG. 6. As a result, a call connection can be made between the called party and the calling terminal as a result, and by the media relay module 124 of the VPN server 120 or the TURN server (as defined in IETF's Draft), etc., in the call connection state. Media data and the like can be transmitted in real time.

보다 구체적으로 도 6에 도시한 바와 같이 VPN 클라이언트 단말기(140)를 호출하기 위한 ARQ 메세지가 발신측 IP폰(150)에서 게이트키퍼(110)로 전송되면, 게이트키퍼(110)는 ARQ 메세지 수신에 응답하는 ACF 메세지를 발신측 IP 폰(150)으로 전송한다. 이에 발신측 IP 폰(150)은 VPN 클라이언트 단말기(140)와 호 접속을 요청하는 셋업메세지를 다시 게이트키퍼(110)측으로 전송한다. 게이트키퍼(110)는 사설 IP할당되어 있는 로컬 이더넷망을 통해 상기 셋업메제지를 다시 VPN 서버(120)측으로 전송한다. 이러한 셋업메세지는 VPN 서버(120)의 터널모듈(123) 및 VPN 레이어 모듈(125)을 통해 VPN 연결되어 있는 VPN 클라이언트 단말기(140)로 전송된다.More specifically, as shown in FIG. 6, when an ARQ message for calling the VPN client terminal 140 is transmitted from the calling IP phone 150 to the gatekeeper 110, the gatekeeper 110 receives an ARQ message. The responding ACF message is sent to the calling IP phone 150. Accordingly, the calling IP phone 150 transmits a setup message for requesting a call connection with the VPN client terminal 140 to the gatekeeper 110 again. The gatekeeper 110 transmits the setup message back to the VPN server 120 through the local Ethernet network to which the private IP is assigned. The setup message is transmitted to the VPN client terminal 140 connected to the VPN through the tunnel module 123 and the VPN layer module 125 of the VPN server 120.

한편 호 셋업메세지를 전송받은 VPN 클라이언트 단말(140)은 VPN 서버(120)를 통해 로컬 이더넷망에 연결된 게이트키퍼(110)와 H.323 프로토콜에 따라 ARQ/ACF/ALERT/CONNECT 메세지를 송수신하여 발신측 IP 폰(150)과 최종적으로 호를 연결하게 된다.Meanwhile, the VPN client terminal 140 receiving the call setup message transmits and receives ARQ / ACF / ALERT / CONNECT message according to the H.323 protocol with the gatekeeper 110 connected to the local Ethernet network through the VPN server 120. The IP phone 150 is finally connected to the call.

이와 같이 VPN 서버(120)와 게이트키퍼(110)를 매개로 하여 VPN 클라이언트 단말기(140)와 발신측 IP 폰(150) 사이에 호 연결이 이루어지면, VPN 서버(120)내 미디어 릴레이 모듈(124) 혹은 외부의 TURN 서버에 의해 양자간 음성 데이터는 RTP 데이터로 변환되어 전송됨으로서, NAT 방화벽에 의해 VoIP 통화가 정상적으로 이루어질 수 없는 사설 IP 폰들도 정상적으로 VoIP 통화를 수행할 수 있게 되는 것이 다.As such, when a call connection is made between the VPN client terminal 140 and the caller IP phone 150 through the VPN server 120 and the gatekeeper 110, the media relay module 124 in the VPN server 120 is connected. Alternatively, the bilateral voice data is converted into RTP data and transmitted by an external TURN server, so that private IP phones that can not normally make a VoIP call by a NAT firewall can normally perform a VoIP call.

이상의 실시예에서는 본 발명의 실시예에 따른 VPN 서버(120)를 게이트키퍼(110)와 로컬 이더넷망을 통해 연결하여 VoIP 시스템을 구축하는 경우를 예시하였다. 일반적인 게이트키퍼는 하나의 인터페이스만을 이용하도록 구성되어 있기 때문에, 일반 게이트키퍼의 수정 없이 NAT Traversal을 위한 VPN 시스템을 구축할 필요가 있다. 이러한 시스템이 도 7에 도시되어 있다.In the above embodiment, the VPN server 120 according to an embodiment of the present invention is connected to the gatekeeper 110 through a local Ethernet network to construct a VoIP system. Since the general gatekeeper is configured to use only one interface, it is necessary to establish a VPN system for NAT traversal without modifying the general gatekeeper. Such a system is shown in FIG.

도 7은 본 발명의 또 다른 실시예에 따른 VPN 서버(160) 시스템이 포함되어 있는 VoIP 시스템 구성도를 예시한 것이며, 도 8은 도 7에 도시한 시스템을 논리적 시스템으로 재도시한 것이다.FIG. 7 illustrates a configuration of a VoIP system including a VPN server 160 system according to another embodiment of the present invention. FIG. 8 is a diagram illustrating a logical system of the system shown in FIG.

도 7에 도시되어 있는 바와 같이 공인 IP를 가지는 일반 IP폰(150)들과 게이트키퍼(110)는 IP망에 연결되어지며, 사설 IP를 가지는 VPN 클라이언트 단말기들(140)은 IP 공유기인 NAT 라우터(130)를 통해 IP망과 접속 가능하다. 그리고 VPN 서버(160)는 NAT 라우터(130)에 접속되어 있는 다수의 VPN 클라이언트 단말들(140)과 가상의 사설망(VPN)을 구축한다. 이와 같이 VPN 서버(160)와 VPN 클라이언트 단말들(140)이 VPN을 구축하는 경우의 논리적 시스템 구성이 도 8에 도시되어 있다. 이하 도 8에 도시한 바와 같은 논리적 시스템 구성이 얻어지기 위한 VPN 서버(160)의 구성 및 동작을 도 9와 도 10을 참조하여 순차적으로 부연 설명하기로 한다.As shown in FIG. 7, general IP phones 150 having a public IP and a gatekeeper 110 are connected to an IP network, and VPN client terminals 140 having a private IP are NAT routers which are IP routers. It is possible to connect to the IP network through the 130. The VPN server 160 establishes a virtual private network (VPN) with a plurality of VPN client terminals 140 connected to the NAT router 130. As such, the logical system configuration when the VPN server 160 and the VPN client terminals 140 establish a VPN is illustrated in FIG. 8. Hereinafter, the configuration and operation of the VPN server 160 for obtaining the logical system configuration as shown in FIG. 8 will be described in detail with reference to FIGS. 9 and 10.

참고적으로 도 7에 도시한 VPN 클라이언트 단말기(140)의 구성은 도 1에서 이미 설명된 VPN 클라이언트 단말기(140)의 구성과 동일하므로 생략하기로 한다.For reference, the configuration of the VPN client terminal 140 shown in FIG. 7 is the same as the configuration of the VPN client terminal 140 already described with reference to FIG.

우선 도 9는 도 7에 도시한 VPN 서버(160) 시스템의 프로그램 모듈 구성을 예시한 것으로, 상기 VPN 서버(160)는 ;First, FIG. 9 illustrates a program module configuration of the VPN server 160 system shown in FIG. 7, wherein the VPN server 160 includes;

VPN 네트워크에 접속하기 위해 필요한 VPN 접속정보들과 VoIP 통신을 수행하기 위해 필요한 정보들을 VPN 클라이언트 단말들(140)에 제공하기 위한 컨피그(config) 모듈(161)과;A config module 161 for providing VPN client terminals 140 with VPN connection information necessary for connecting to a VPN network and information necessary for performing VoIP communication;

VPN에 접속 요청한 VPN 클라이언트 단말(140)과 TCP 연결 설정한후 그 클라이언트 단말을 인증하는 클라이언트 인증모듈(162)과;A client authentication module 162 for authenticating the client terminal after establishing a TCP connection with the VPN client terminal 140 requesting a VPN connection;

인증된 VPN 클라이언트 단말(140)과 VPN 세션을 유지하며, VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 호 처리 패킷들을 릴레이하기 위한 터널 모듈(163)과;A tunnel module 163 for maintaining a VPN session with the authenticated VPN client terminal 140 and for relaying call processing packets transmitted and received between the VPN interface and the Ethernet interface;

VPN 클라이언트 단말(140)과 VPN을 구성하기 위한 가상의 드라이버를 제공하기 위한 VPN 레이어 모듈(165); 및A VPN layer module 165 for providing a virtual driver for configuring a VPN with the VPN client terminal 140; And

상기 VPN 클라이언트 단말(140)로부터 전송된 시그널링 패킷 정보에 포함된 IP 어드레스와 포트정보를 자신의 IP 어드레스와 포트정보로 변경하여 게이트키퍼(110)로 전송하는 시그널링 프록시 모듈(164); 및 상기 프로그램 모듈들을 관리하기 위한 시스템 운영체계(OS);를 포함한다.A signaling proxy module 164 for changing the IP address and port information included in the signaling packet information transmitted from the VPN client terminal 140 into its own IP address and port information and transmitting the same to the gatekeeper 110; And a system operating system (OS) for managing the program modules.

이와 같은 구성을 가지는 VPN 서버(160)에서 시그널링 프록시 모듈(164)은 게이트키퍼(110) 입장에서 보면 하나의 VoIP 단말 처럼 동작하고, 클라이언트 단말(140) 입장에서 보면 게이트키퍼 처럼 동작한다.In the VPN server 160 having such a configuration, the signaling proxy module 164 operates as one VoIP terminal when viewed from the gatekeeper 110, and operates as a gatekeeper when viewed from the client terminal 140.

상술한 바와 같은 구성을 가지는 VPN 서버(160)와 VPN 클라이언트 단말기(140)가 VPN을 구축하는 과정 역시 이미 도 5에서 설명한 방법과 동일하다.The process of establishing the VPN by the VPN server 160 and the VPN client terminal 140 having the above-described configuration is also the same as the method described with reference to FIG. 5.

즉, VPN 클라이언트 단말기(140)는 스턴 모듈(146)을 통해 NAT 프로브(probe) 절차를 수행하고, 그 수행 결과에 따라 VPN 서버(160)측으로 H.323 ID와 E.164 ID를 전송하여 VPN 접속정보의 전송을 요청한다. VPN 서버(160)의 컨피그 모듈(161)에 의해 상기 H.323 ID와 E.164 ID가 정상 ID로 판명되면, 서버(160)측 컨피그 모듈(161)은 VPN 접속정보들과 VoIP 통신을 수행하기 위해 필요한 정보들을 해당 VPN 클라이언트 단말기(140)측으로 전송함으로서, 단말기측(140) 컨피그 모듈(141)은 상기 정보들을 전달 받게 되는 것이다.That is, the VPN client terminal 140 performs a NAT probe procedure through the stun module 146, and transmits the H.323 ID and the E.164 ID to the VPN server 160 based on the result of the stun module 146, thereby providing the VPN. Request transmission of access information. When the H.323 ID and the E.164 ID are determined to be normal IDs by the config module 161 of the VPN server 160, the config module 161 on the server 160 performs VoIP communication with the VPN access information. By transmitting the necessary information to the corresponding VPN client terminal 140 side, the terminal side 140 configuration module 141 is to receive the information.

한편 상술한 정보들을 전송받게 되면 VPN 클라이언트 단말기(120)의 인증모듈(142)은 서버(160)와 TCP 연결을 설정한후 인증정보(VPN ID, 패스워드)를 VPN 서버(160)측으로 전송한다. 이에 서버(160)측 인증모듈(162) 역시 전송받은 인증정보의 진위여부를 판단하여 그 결과를 통보해 준다. 만약 VPN 클라이언트 단말기(140)의 인증이 정상적으로 완료되었다면 VPN 서버(160)와 클라이언트 단말기(140)간에는 하나의 VPN 연결이 정상적으로 설정된 것으로, 이후 양측은 주기적으로 keep Alive 패킷을 전송하여 VPN 연결상태를 확인하게 되는 것이다.On the other hand, if the above information is transmitted, the authentication module 142 of the VPN client terminal 120 establishes a TCP connection with the server 160 and then transmits authentication information (VPN ID, password) to the VPN server 160. The server 160 side authentication module 162 also determines the authenticity of the received authentication information and notifies the result. If the authentication of the VPN client terminal 140 is normally completed, one VPN connection is normally established between the VPN server 160 and the client terminal 140, and then both sides periodically transmit a keep alive packet to check the VPN connection state. Will be done.

상술한 바와 같이 VPN 서버(160)와 클라이언트 단말기(140)간에 VPN 연결이 유지되면 이후 H.323 엔드포인트에 해당하는 VPN 클라이언트 단말기(140)는 도 10에 도시한 바와 같이 VPN 서버(160)측으로 위치정보 등록요구메세지(RRQ)를 전송한다. 이러한 위치정보 등록요구 메세지(RRQ)는 호 처리 패킷들을 릴레이하는 VPN 서버(160)의 터널모듈(163)에 의해 게이트키퍼(110)로 전달됨으로서, 결국 게이트키퍼(110)에는 VPN 클라이언트 단말기(160)들의 위치정보는 물론 외부 IP망에 접속되 어 있는 IP폰들(150)의 위치정보 역시 등록되게 되는 것이다.As described above, when the VPN connection is maintained between the VPN server 160 and the client terminal 140, the VPN client terminal 140 corresponding to the H.323 endpoint is then moved to the VPN server 160 as shown in FIG. 10. Send the location information registration request message (RRQ). The location information registration request message (RRQ) is transmitted to the gatekeeper 110 by the tunnel module 163 of the VPN server 160 relaying call processing packets, so that the gatekeeper 110 has a VPN client terminal 160. In addition to the location information of the location information of the IP phones 150 connected to the external IP network is also to be registered.

이와 같이 게이트키퍼(110)에 VPN 클라이언트 단말기(140)들과 IP폰(150)의 위치등록이 완료되면 이들 상호간에는 도 10에 도시한 바와 같은 절차에 따라 호 시그널링 트랜스퍼(call signalling transfer) 과정이 이루어짐으로서 결과적으로 착신측과 발신측 단말기 사이에는 호 연결이 이루어질 수 있는 것이다.When the location registration of the VPN client terminals 140 and the IP phone 150 is completed in the gatekeeper 110 as described above, a call signaling transfer process is performed according to the procedure shown in FIG. 10. As a result, a call connection can be made between the called party and the calling terminal.

보다 구체적으로 도 10에 도시한 바와 같이 VPN 클라이언트 단말기(140)를 호출하기 위한 ARQ 메세지가 발신측 IP폰(150)에서 게이트키퍼(110)로 전송되면, 게이트키퍼(110)는 ARQ 메세지 수신에 응답하는 ACF 메세지를 발신측 IP 폰(150)으로 전송한다. 이에 발신측 IP 폰(150)은 VPN 클라이언트 단말기(140)와 호 접속을 요청하는 셋업메세지를 다시 게이트키퍼(110)측으로 전송하고, 게이트키퍼(110)는 다시 상기 셋업메제지를 VPN 서버(160)측으로 전송한다. 이러한 셋업메세지는 VPN 서버(160)의 터널모듈(163) 및 VPN 레이어 모듈(165)을 통해 VPN 연결되어 있는 VPN 클라이언트 단말기(140)로 전송된다.More specifically, as shown in FIG. 10, when an ARQ message for calling the VPN client terminal 140 is transmitted from the calling IP phone 150 to the gatekeeper 110, the gatekeeper 110 receives an ARQ message. The responding ACF message is sent to the calling IP phone 150. In response, the calling IP phone 150 transmits a setup message requesting a call connection with the VPN client terminal 140 to the gatekeeper 110 again, and the gatekeeper 110 again transmits the setup message to the VPN server 160. Send to). The setup message is transmitted to the VPN client terminal 140 connected to the VPN through the tunnel module 163 and the VPN layer module 165 of the VPN server 160.

한편 호 셋업메세지를 전송받은 VPN 클라이언트 단말(140)은 VPN 서버(160)와 H.323 프로토콜에 따라 ARQ/ACF/ALERT/CONNECT 메세지를 송수신하는데, 이때 서버(160)내 시그널링 프록시 모듈(164)은 시그널링 패킷 정보에 포함된 단말기의 IP 어드레스와 포트정보를 자신의 IP 어드레스와 포트정보로 변경하여 게이트키퍼(110)측으로 전송함으로서, 최종적으로 VPN 클라이언트 단말(140)과 발신측 IP 폰(150) 사이에는 호 연결이 이루어지게 된다.Meanwhile, the VPN client terminal 140 receiving the call setup message transmits and receives an ARQ / ACF / ALERT / CONNECT message according to the H.323 protocol with the VPN server 160. In this case, the signaling proxy module 164 in the server 160 is transmitted. The IP address and port information of the terminal included in the signaling packet information is changed to its IP address and port information and transmitted to the gatekeeper 110, and finally, the VPN client terminal 140 and the originating IP phone 150. A call connection is made between them.

이와 같이 VPN 서버(160)와 게이트키퍼(110)를 매개로 하여 VPN 클라이언트 단말기(140)와 발신측 IP 폰(150) 사이에 호 연결이 이루어지면, 외부의 TURN 서버에 의해 양자간 음성 데이터는 RTP 데이터로 변환되어 전송됨으로서, NAT 방화벽에 의해 VoIP 통화가 정상적으로 이루어질 수 없는 사설 IP 폰들도 정상적으로 VoIP 통화를 수행할 수 있게 되는 것이다.As such, when a call connection is made between the VPN client terminal 140 and the calling IP phone 150 through the VPN server 160 and the gatekeeper 110, the voice data between the two parties is generated by an external TURN server. By converting and transmitting the RTP data, private IP phones that can not normally make a VoIP call by the NAT firewall can normally perform a VoIP call.

따라서 일반 게이트키퍼의 수정 없이 VPN 서버(160)내 시그널링 프록시 모듈을 구비하는 것만으로도 NAT Traversal을 위한 VPN 시스템을 정상적으로 구축할 수있게 되는 것이다.Therefore, simply providing a signaling proxy module in the VPN server 160 without modification of the general gatekeeper is able to normally build a VPN system for NAT Traversal.

상술한 바와 같이 본 발명은 IP 공유기에 접속되어 있는 다수의 VPN 클라이언트를 우선적으로 VPN 서버와 연결하여 VPN망을 구축하고 구축된 VPN망을 통해 게이트키퍼와 호 처리 관련 패킷들을 자유롭게 송수신함으로서, NAT 방화벽에 의해 VoIP 통화가 이루어질 수 없는 IP 폰들도 정상적으로 VoIP 통화를 수행할 수 있게 되는 장점이 있다.As described above, the present invention establishes a VPN network by first connecting a plurality of VPN clients connected to an IP router with a VPN server, and freely transmits and receives the gatekeeper and call processing related packets through the established VPN network, thereby providing a NAT firewall. There is an advantage that IP phones that can not make a VoIP call can normally perform a VoIP call.

한편 본 발명은 도면에 도시된 실시예들을 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술분야에 통상의 지식을 지닌자라면 이로부터 다양한 변형 및 균등한 타실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.On the other hand, the present invention has been described with reference to the embodiments shown in the drawings, which are merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention should be defined only by the appended claims.

Claims (7)

사설 IP가 할당되어 있는 게이트키퍼와 이더넷 인터페이스부를 통해 접속 가능하며, IP 공유기에 접속되는 다수의 VPN 클라이언트 단말들과 가상의 사설망(VPN)을 구축하기 위한 VPN(Virtual Private Network) 서버 시스템에 있어서,In a virtual private network (VPN) server system for establishing a virtual private network (VPN) and a plurality of VPN client terminals connected to an IP router, which can be accessed through a gatekeeper to which a private IP is assigned and an Ethernet interface unit, VPN 네트워크에 접속하기 위해 필요한 정보들과 VoIP 통신을 수행하기 위해 필요한 정보들을 허가된 VPN 클라이언트 단말들에 제공하기 위한 컨피그(config) 모듈과;A config module for providing authorized VPN client terminals with information necessary to connect to the VPN network and to perform VoIP communication; VPN에 접속 요청한 VPN 클라이언트 단말과 TCP 연결 설정하고 그 클라이언트 단말을 인증하기 위한 인증모듈과;An authentication module for establishing a TCP connection with the VPN client terminal requesting the VPN connection and authenticating the client terminal; 인증된 VPN 클라이언트 단말과 VPN 세션을 유지하며, VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 호 처리 패킷들을 릴레이(relay)하기 위한 터널 모듈과;A tunnel module for maintaining a VPN session with an authenticated VPN client terminal and for relaying call processing packets transmitted and received between the VPN interface and the Ethernet interface; VPN 클라이언트 단말과 VPN을 구성하기 위한 가상의 드라이버를 제공하기 위한 VPN 레이어 모듈; 및A VPN layer module for providing a virtual driver for configuring a VPN with a VPN client terminal; And 상기 프로그램 모듈들을 관리하기 위한 시스템 운영체계(OS);를 포함함을 특징으로 하는 VPN 서버 시스템.And a system operating system (OS) for managing the program modules. 청구항 1에 있어서, 상기 컨피그 모듈은 :The device of claim 1, wherein the config module is: VPN 서버 시스템의 리얼 IP 어드레스 및 TCP 포트정보;Real IP address and TCP port information of the VPN server system; 미디어 릴레이 서버의 리얼 IP 어드레스;The real IP address of the media relay server; VPN 클라이언트 단말의 VPN IP 어드레스;VPN IP address of the VPN client terminal; VPN 클라이언트의 ID 및 패스워드;ID and password of the VPN client; VPN 네트워크의 디폴트 게이트웨이 IP 어드레스;The default gateway IP address of the VPN network; VPN 네트워크의 마스크 어드레스, 상기 게이트키퍼 IP 어드레스 및 VPN 네트워크에서 라우팅을 위한 정보를 인증된 VPN 클라이언트 단말에 제공함을 특징으로 하는 VPN 서버 시스템.And a mask address of the VPN network, the gatekeeper IP address, and information for routing in the VPN network to the authenticated VPN client terminal. 청구항 1에 있어서, 상기 VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 음성 데이터 패킷을 릴레이하기 위한 미디어 릴레이 모듈;을 더 포함함을 특징으로 하는 VPN 서버 시스템.The VPN server system according to claim 1, further comprising a media relay module for relaying voice data packets transmitted and received between the VPN interface and the Ethernet interface. 청구항 3에 있어서, 상기 컨피그 모듈은 :The device of claim 3, wherein the config module is: VPN 서버 시스템의 리얼 IP 어드레스 및 TCP 포트정보;Real IP address and TCP port information of the VPN server system; 미디어 릴레이 서버의 리얼 IP 어드레스;The real IP address of the media relay server; VPN 클라이언트 단말의 VPN IP 어드레스;VPN IP address of the VPN client terminal; VPN 클라이언트의 ID 및 패스워드;ID and password of the VPN client; VPN 네트워크의 디폴트 게이트웨이 IP 어드레스;The default gateway IP address of the VPN network; VPN 네트워크의 마스크 어드레스, 상기 게이트키퍼 IP 어드레스 및 VPN 네트워크에서 라우팅을 위한 정보를 인증된 VPN 클라이언트 단말에 제공함을 특징으로 하는 VPN 서버 시스템.And a mask address of the VPN network, the gatekeeper IP address, and information for routing in the VPN network to the authenticated VPN client terminal. IP 공유기에 접속되는 다수의 VPN 클라이언트 단말들과 가상의 사설망(VPN)을 구축하기 위한 VPN(Virtual Private Network) 서버 시스템에 있어서,In a virtual private network (VPN) server system for establishing a virtual private network (VPN) with a plurality of VPN client terminals connected to an IP router, VPN 네트워크에 접속하기 위해 필요한 정보들과 VoIP 통신을 수행하기 위해 필요한 정보들을 허가된 VPN 클라이언트 단말들에 제공하기 위한 컨피그(config) 모듈과;A config module for providing authorized VPN client terminals with information necessary to connect to the VPN network and to perform VoIP communication; VPN에 접속 요청한 VPN 클라이언트 단말과 TCP 연결 설정하고 그 클라이언트 단말을 인증하기 위한 인증모듈과;An authentication module for establishing a TCP connection with the VPN client terminal requesting the VPN connection and authenticating the client terminal; 인증된 VPN 클라이언트 단말과 VPN 세션을 유지하며, VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 호 처리 패킷들을 릴레이(relay)하기 위한 터널 모듈과;A tunnel module for maintaining a VPN session with an authenticated VPN client terminal and for relaying call processing packets transmitted and received between the VPN interface and the Ethernet interface; VPN 클라이언트 단말과 VPN을 구성하기 위한 가상의 드라이버를 제공하기 위한 VPN 레이어 모듈; 및A VPN layer module for providing a virtual driver for configuring a VPN with a VPN client terminal; And 상기 VPN 클라이언트 단말로부터 전송된 시그널링 패킷 정보에 포함된 IP 어드레스와 포트정보를 자신의 IP 어드레스와 포트정보로 변경하여 게이트키퍼로 전송하는 시그널링 프록시 모듈; 및A signaling proxy module for changing the IP address and port information included in the signaling packet information transmitted from the VPN client terminal into its own IP address and port information and transmitting the same to the gatekeeper; And 상기 프로그램 모듈들을 관리하기 위한 시스템 운영체계(OS);를 포함함을 포함함을 특징으로 하는 VPN 서버 시스템.And a system operating system (OS) for managing the program modules. 청구항 5에 있어서, 상기 컨피그 모듈은 :The device of claim 5, wherein the config module is: VPN 서버 시스템의 리얼 IP 어드레스 및 TCP 포트정보;Real IP address and TCP port information of the VPN server system; 미디어 릴레이 서버의 리얼 IP 어드레스;The real IP address of the media relay server; VPN 클라이언트 단말의 VPN IP 어드레스;VPN IP address of the VPN client terminal; VPN 클라이언트의 ID 및 패스워드;ID and password of the VPN client; VPN 네트워크의 디폴트 게이트웨이 IP 어드레스;The default gateway IP address of the VPN network; VPN 네트워크의 마스크 어드레스, 상기 게이트키퍼 IP 어드레스 및 VPN 네트워크에서 라우팅을 위한 정보를 인증된 VPN 클라이언트 단말에 제공함을 특징으로 하는 VPN 서버 시스템.And a mask address of the VPN network, the gatekeeper IP address, and information for routing in the VPN network to the authenticated VPN client terminal. VPN(Virtual Private Network) 서버와 가상의 사설망(VPN)을 구축할 수 있는 VPN 클라이언트 단말기에 있어서,In a VPN client terminal capable of establishing a virtual private network (VPN) server and a virtual private network (VPN), 외부 단말과 VoIP 통화를 수행하기 위해 필요한 통신 프로토콜 스택 모듈과;A communication protocol stack module required for conducting a VoIP call with an external terminal; NAT을 프로브(probe)하기 위한 스턴 모듈과;A stun module for probing NAT; VPN 네트워크에 접속하기 위해 필요한 정보 및 VoIP 통신을 수행하기 위해 필요한 정보들을 상기 서버로부터 제공받기 위한 컨피그 모듈과;A config module for receiving from the server information necessary for connecting to a VPN network and information necessary for performing VoIP communication; 상기 서버로부터 제공받은 정보를 이용하여 상기 서버와 연결 설정하고 VPN에 가입하기 위한 인증절차를 수행하기 위한 인증 모듈과;An authentication module for establishing a connection with the server using the information provided from the server and performing an authentication procedure for subscribing to a VPN; 상기 서버와 VPN 세션을 유지하고, VPN 인터페이스와 이더넷 인터페이스 상호간에 송수신되는 호 처리 패킷들을 릴레이하기 위한 터널 모듈과;A tunnel module for maintaining a VPN session with the server and for relaying call processing packets transmitted and received between the VPN interface and the Ethernet interface; 상기 VPN 서버와 VPN을 구성하기 위한 가상의 드라이버를 제공하기 위한 VPN 레이어 모듈; 및A VPN layer module for providing a virtual driver for configuring a VPN with the VPN server; And 상기 프로그램 모듈들을 관리하기 위한 시스템 운영체계(OS);를 포함함을 특징으로 하는 VPN 클라이언트 단말기.And a system operating system (OS) for managing the program modules.
KR1020050100883A 2005-10-25 2005-10-25 Vpn server system and vpn terminal for a nat traversal KR100660123B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050100883A KR100660123B1 (en) 2005-10-25 2005-10-25 Vpn server system and vpn terminal for a nat traversal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050100883A KR100660123B1 (en) 2005-10-25 2005-10-25 Vpn server system and vpn terminal for a nat traversal

Publications (1)

Publication Number Publication Date
KR100660123B1 true KR100660123B1 (en) 2006-12-20

Family

ID=37815140

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050100883A KR100660123B1 (en) 2005-10-25 2005-10-25 Vpn server system and vpn terminal for a nat traversal

Country Status (1)

Country Link
KR (1) KR100660123B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101263783B1 (en) 2010-12-27 2013-05-13 삼성에스디에스 주식회사 System and method for data transmission using relay server
CN110581903A (en) * 2019-09-16 2019-12-17 上海享途网络科技有限公司 multilayer intranet penetration method, system and medium
CN113949565A (en) * 2021-10-15 2022-01-18 上海谋乐网络科技有限公司 System and method for detecting vulnerability of intranet digital assets

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124090A1 (en) 2000-08-18 2002-09-05 Poier Skye M. Method and apparatus for data communication between a plurality of parties
US20040024882A1 (en) 2002-07-30 2004-02-05 Paul Austin Enabling authorised-server initiated internet communication in the presence of network address translation (NAT) and firewalls
KR20040067885A (en) * 2003-01-21 2004-07-30 삼성전자주식회사 Gateway for supporting communication between network devices of different private networks
US20050008006A1 (en) 2003-07-02 2005-01-13 Thomas Schimper Method for operating a voice terminal connected to a remote private automatic branch exchange, communication arrangement and voice terminal
KR20050040390A (en) * 2003-10-28 2005-05-03 케이아이티밸리(주) Multi-functional server system
KR20060079515A (en) * 2004-12-31 2006-07-06 주식회사 케이티 Methode for settling account of one-phone data service and system thereof

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020124090A1 (en) 2000-08-18 2002-09-05 Poier Skye M. Method and apparatus for data communication between a plurality of parties
US20040024882A1 (en) 2002-07-30 2004-02-05 Paul Austin Enabling authorised-server initiated internet communication in the presence of network address translation (NAT) and firewalls
KR20040067885A (en) * 2003-01-21 2004-07-30 삼성전자주식회사 Gateway for supporting communication between network devices of different private networks
US20050008006A1 (en) 2003-07-02 2005-01-13 Thomas Schimper Method for operating a voice terminal connected to a remote private automatic branch exchange, communication arrangement and voice terminal
KR20050040390A (en) * 2003-10-28 2005-05-03 케이아이티밸리(주) Multi-functional server system
KR20060079515A (en) * 2004-12-31 2006-07-06 주식회사 케이티 Methode for settling account of one-phone data service and system thereof

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101263783B1 (en) 2010-12-27 2013-05-13 삼성에스디에스 주식회사 System and method for data transmission using relay server
CN110581903A (en) * 2019-09-16 2019-12-17 上海享途网络科技有限公司 multilayer intranet penetration method, system and medium
CN113949565A (en) * 2021-10-15 2022-01-18 上海谋乐网络科技有限公司 System and method for detecting vulnerability of intranet digital assets
CN113949565B (en) * 2021-10-15 2023-10-27 上海谋乐网络科技有限公司 System and method for detecting vulnerability of intranet digital assets

Similar Documents

Publication Publication Date Title
CN114866521B (en) Conference server
US8607323B2 (en) Method for providing media communication across firewalls
EP3292675B1 (en) Establishing media paths in real time communications
US7305546B1 (en) Splicing of TCP/UDP sessions in a firewalled network environment
US8291116B2 (en) Communications system
CN101841519B (en) Multimedia communication session coordination across heterogeneous transport networks
US9307049B2 (en) Voice-over-IP-(VoIP-) telephony computer system
US20060262916A1 (en) Proxy server for internet telephony
US9015258B2 (en) System and method for peer-to-peer media routing using a third party instant messaging system for signaling
TW201002018A (en) Method for predicting port number of NAT apparatus based on two STUN server inquiry results
JP5216018B2 (en) Streaming media services for mobile phones
WO2007036160A1 (en) An apparatus, system and method for realizing communication between the client and the server
WO2011038637A1 (en) Method for realizing end-to-end call, end-to-end call terminal and system
US9088542B2 (en) Firewall traversal driven by proximity
US20070058617A1 (en) Method for establishing and maintaining a connection
KR100660123B1 (en) Vpn server system and vpn terminal for a nat traversal
WO2007121255A2 (en) System and method for a communication system
US8576854B2 (en) System for communication between private and public IP networks
US20200287868A1 (en) Systems and methods for in-band remote management
JP2010252261A (en) Vpn device, vpn networking method and storage medium
JP4728933B2 (en) IP telephone communication system, IP telephone communication method, and program thereof
US20050177718A1 (en) Systems and methods for video transport service
Mahbub Study of Voice over Internet Protocol (VoIP) in an Enterprise Network Through Simulation
JP4381190B2 (en) Registration of terminal identification from external network to server on intranet via DMZ
Asghar et al. Security issues of SIP

Legal Events

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