KR20040067885A - Gateway for supporting communication between network devices of different private networks - Google Patents

Gateway for supporting communication between network devices of different private networks Download PDF

Info

Publication number
KR20040067885A
KR20040067885A KR1020040001570A KR20040001570A KR20040067885A KR 20040067885 A KR20040067885 A KR 20040067885A KR 1020040001570 A KR1020040001570 A KR 1020040001570A KR 20040001570 A KR20040001570 A KR 20040001570A KR 20040067885 A KR20040067885 A KR 20040067885A
Authority
KR
South Korea
Prior art keywords
network
address
private
tunnel
vpn
Prior art date
Application number
KR1020040001570A
Other languages
Korean (ko)
Other versions
KR100552475B1 (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 CNB2004100073140A priority Critical patent/CN1301611C/en
Priority to US10/760,553 priority patent/US7366188B2/en
Priority to JP2004013699A priority patent/JP3965160B2/en
Priority to EP20040001265 priority patent/EP1441483B1/en
Publication of KR20040067885A publication Critical patent/KR20040067885A/en
Application granted granted Critical
Publication of KR100552475B1 publication Critical patent/KR100552475B1/en

Links

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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2869Operational details of access network equipments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Abstract

PURPOSE: A network access system for supporting the communication between network elements located in respectively different private networks is provided to offer a service so that communication can be made between the network elements connected to respectively different private networks. CONSTITUTION: A gateway(100) comprises a public network interface(110), a private network interface(120), a memory(130), and a controller(140). The public network interface(110), connected to the Internet physically, has an authorized IP address allocated from an ISP(Internet Service Provider). The private network interface(120) has a private IP address. A network address to be used at a private network is randomly selected among the addresses approved by IANA(Internet Assigned Numbers Authority). The memory(130) stores programs associated with system operations and newly created or updated data. The controller(140) comprises a NAT(Network Address Translation)/NAPT(Network Address Port Translation) processing part(141), an IP processing part(142), a DNS(Domain Name Service) processing part(143), a DHCP(Dynamic Host Configuration Protocol) processing part(144), a routing part(145), an HTIP processing part(146A), a VPN(Virtual Private Network) processing part(146B), a web/middleware server(147), an encryption processing part(148), and a user authentication part(149).

Description

서로 다른 사설망에 위치한 네트워크 장치들 사이의 통신을 지원하는 망접속장치{Gateway for supporting communication between network devices of different private networks}Gateway for supporting communication between network devices of different private networks

본 발명은 망접속장치에 관한 것으로서, 특히, 서로 다른 망에 연결된 네트워크 장치들 사이의 통신을 가능하게 하는 망접속장치에 관한 것이다.The present invention relates to a network connection device, and more particularly, to a network connection device that enables communication between network devices connected to different networks.

최근 통신기술의 발달과 함께 초고속통신망이 각 가정에 널리 보급되고 있다. 또한, 기업들은 가정 내에서 가전기기를 이용하여 인터넷에 접속할 수 있도록 인터넷 냉장고, 디지털 TV, 셋탑박스 등과 같은 네트워크 기능이 추가된 다양한 디지털 정보가전기기들을 출시하고 있다. 이처럼 가정 내에서 사용되어지는 가전기기들에 네트워크 기능이 추가되어 정보단말화 됨에 따라 새로운 네트워크 형태인 홈네트워크가 출현하였다.Recently, with the development of communication technology, high-speed communication network is widely used in each home. In addition, companies are releasing various digital information appliances with network functions such as Internet refrigerators, digital TVs, and set-top boxes to access the Internet through home appliances. As the network function is added to the home appliances used in the home and the information terminal becomes a new network type, the home network has emerged.

홈네트워크를 구성하는 가정내의 전기/전자제품은 유/무선을 통해 인터넷과 연결되므로, 사용자는 가정 및 원격지 등에서 위치에 관계없이 정보를 송수신하는 한편, 전기/전자제품들을 인터넷을 통해 제어할 수 있게 되었다.Since the home electrical / electronic products that make up the home network are connected to the Internet through wired / wireless, users can send and receive information regardless of their location at home and remote locations, and control the electrical / electronic products through the Internet. It became.

한편, 전기/전자제품을 인터넷과 연결하기 위해서 가정 내에는 새로운 네트워크 장치들과 각 장치에 탑재될 프로그램들이 요구된다. 이러한 장치들 가운데, 인터넷과 홈네트워크를 연결하며, 네트워크 패킷의 흐름을 제어하는 네트워크 장치를 홈게이트웨이(Home Gateway)라 한다.Meanwhile, in order to connect electrical / electronic products with the Internet, new network devices and programs to be installed in each device are required in the home. Among these devices, a network device that connects the Internet and a home network and controls the flow of network packets is called a home gateway.

현재 가정에서는 ADSL, Cable 모뎀 등의 초보적인 홈게이트웨이를 사용하여 인터넷서비스제공자(Internet Service Provider: ISP)로부터 하나의 공인 IP(Internet Protocol) 주소를 할당받아 인터넷에 접속할 수 있다.In current homes, novice home gateways, such as ADSL and cable modems, can be used to access the Internet by being assigned one public Internet Protocol (IP) address from an Internet Service Provider (ISP).

그러나 위와 같은 종래 홈게이트웨이는 하나의 홈네트워크 기기에서 인터넷으로의 단순한 연결을 제공할 뿐 다양한 서비스를 제공하지는 못하고 있다. 즉, 가정내 복수의 네트워크 기기 보급, SOHO, 재택근무의 활성화, 가전기기 자동화, 그리고 원격제어 등이 진행됨에 따라 홈게이트웨이에 보다 다양한 서비스가 요구되고 있는 데 반해, 기존의 홈게이트웨이는, 그러한 사용자의 욕구를 만족시키지 못하고 있는 형편이다.However, the conventional home gateway as described above merely provides a simple connection from one home network device to the Internet and does not provide various services. In other words, as more and more network devices are distributed in the home, SOHO, telecommuting, home appliance automation, and remote control are required, a variety of services are required for the home gateway. It does not satisfy the desire of.

위와 같은 사용자 요구를 수용하기 위해 홈네트워크에는 사설 IP주소를 이용하는 방안이 제안되었다. 사설 IP주소를 이용하는 방안은, 홈네트워크에 있는 복수의 네트워크 기기가 하나의 공인 IP주소를 공유하여 인터넷에 접근할 수 있도록 네트워크주소포트변환(Network Address Port Translation: NAPT) 기술이 홈게이트웨이에 적용된다. 또한, 인터넷에 연결되어 있는 원격 사용자가 사설망인 홈네트워크에 접근할 수 있도록 가상사설망(Virtual Private Network: VPN) 기술이 홈게이트웨이에 적용된다.In order to accommodate the above user needs, a method of using a private IP address for a home network has been proposed. In the case of using a private IP address, a network address port translation (NAPT) technology is applied to a home gateway so that a plurality of network devices in a home network can share a public IP address to access the Internet. . In addition, a virtual private network (VPN) technology is applied to a home gateway so that a remote user connected to the Internet can access a private home network.

그러나 홈게이트웨이가 할당받는 공인 IP주소는 수시로 변하므로 인터넷에 연결되어 있는 사용자가 홈네트워크에 접속하기 위해서는 현재 홈게이트웨이에 할당된 공인 IP주소를 반드시 알고 있어야 한다. 이처럼 ISP로부터 홈게이트웨이에할당된 가변적인 공인 IP주소를 반드시 알아야 한다는 문제를 해결하기 위하여 홈게이트웨이는 ISP로부터 공인 IP주소를 할당받은 후, 홈게이트웨이의 도메인 이름과 할당받은 공인 IP주소를 인터넷에 위치한 동적 DNS서버에 등록한다.However, since the public IP address assigned by the home gateway changes from time to time, a user connected to the Internet must know the public IP address currently assigned to the home gateway in order to access the home network. In order to solve the problem of having to know the variable public IP address assigned to the home gateway from the ISP, the home gateway is assigned a public IP address from the ISP, and then the home gateway domain name and the assigned public IP address are located on the Internet. Register with a dynamic DNS server.

또한, 홈게이트웨이는 ISP로부터 하나의 공인 IP주소를 할당받으나, 홈네트워크 환경에서는 복수의 정보기기들이 가정 내에서 사용되므로 하나의 공인 IP주소만으로는 이들을 동시에 인터넷에 연결할 수 없다. 따라서 가정 내에는 사설 IP주소가 사용되어지며 하나의 공인 IP주소를 이용하여 이들을 인터넷에 연결해주는 NAPT 기술이 사용된다.In addition, the home gateway is assigned one public IP address from the ISP, but in a home network environment, since a plurality of information devices are used in the home, only one public IP address can simultaneously connect them to the Internet. Therefore, private IP addresses are used in the home and NAPT technology is used to connect them to the Internet using one public IP address.

NAPT는 가정에서 인터넷으로 나가는 패킷이 있는 경우, 홈게이트웨이는 패킷의 출발지 사설 IP주소와 출발전 포트번호를 할당받은 공인 IP주소와 다른 포트번호로 변환하고 이를 NAPT 변환표에 기록한다. 이에 대한 응답 패킷이 인터넷으로부터 홈네트워크로 전송되는 경우 홈게이트웨이는 NAPT 변환표를 참조하여 패킷의 목적지 공인 IP주소와 목적지 포트번호를 사설 IP주소와 포트번호로 변환한 후, 최종목적지로 라우팅한다. 인터넷에서 홈네트워크로 전송된 패킷이 NAPT 변환표에 기록되어 있지 않으면 패킷은 폐기된다.If there is a packet outgoing from the home to the Internet, the home gateway converts the packet's source private IP address and pre-departure port number to a port number different from the assigned public IP address and records it in the NAPT conversion table. When the response packet is transmitted from the Internet to the home network, the home gateway converts the packet's destination public IP address and destination port number into a private IP address and port number by referring to the NAPT conversion table, and then routes to the final destination. If a packet transmitted from the Internet to a home network is not recorded in the NAPT conversion table, the packet is discarded.

NAPT기술을 이용하면 홈네트워크에서 인터넷으로 접근은 가능하다. 즉, 사설망 내에 위치한 복수의 네트워크 기기가 하나의 공인 IP주소를 공유하여 인터넷에 접근하는 것이 가능하다. 그러나 인터넷에서 홈네트워크로의 접근은 불가능하며, 이것은 인터넷에 연결되어 있는 외부사용자가 보내는 패킷이 홈게이트웨이를 통과하여 사설망 내부로 변환/라우팅되기 위해서는 NAPT 변환표에 사설 IP주소 및 포트, 홈게이트웨이 포트번호, 공인 IP주소 및 포트, IP프로토콜 등의 정보가 기록되어 있어야 하는 데, 이 정보들을 미리 알 수 없기 때문이다.NAPT technology allows access from the home network to the Internet. That is, it is possible for a plurality of network devices located in a private network to access the Internet by sharing one public IP address. However, it is impossible to access the home network from the Internet, which means that private IP addresses, ports, and home gateway ports are included in the NAPT conversion table in order for packets sent by external users connected to the Internet to be converted / routed through the home gateway. Information such as number, public IP address and port, and IP protocol should be recorded because it is not known in advance.

인터넷에 연결되어 있는 외부사용자가 사설망에 있는 네트워크 기기에 접근할 수 있도록 하기 위해 홈게이트웨이에 적용되어지는 기술이 VPN이다. VPN은 적용되는 환경과 네트워크 계층에 따라 여러가지가 있으나, 홈네트워크 환경에서는 일반적으로 PPTP, L2TP 등의 2계층 터널링 프로토콜이 많이 사용된다. 홈게이트웨이에는 VPN서버가 위치하며, 인터넷에 연결되어 있는 원격사용자는 VPN클라이언트로 동작한다. 각 홈네트워크의 홈게이트웨이들은 각각의 홈네트워크에서 VPN서버 또는 VPN클라이언트로 동작할 수 있다. 우선 VPN클라이언트는 인터넷 상에서 공인 IP주소를 이용하여 VPN서버에 터널의 생성을 요청한다. 터널이 형성되면 VPN서버는 VPN클라이언트를 인증한 후, VPN클라이언트에게 홈네트워크의 내부에서 사용할 수 있는 사설 IP주소를 할당한다. VPN클라이언트는 할당받은 사설 IP주소를 이용하여 가상의 네트워크 인터페이스를 만들며, 이것은 홈네트워크에 연결되어 마치 하나의 네트워크인 것처럼 동작한다. VPN클라이언트의 공인 IP주소는 VPN서버까지의 터널을 만드는데 사용되며, 사설 IP주소는 터널을 통하여 연결된 홈네트워크에서 사용된다.VPN is a technology applied to home gateways to allow external users connected to the Internet to access network devices on private networks. VPNs vary depending on the environment and network layer. However, in the home network environment, two-layer tunneling protocols such as PPTP and L2TP are commonly used. A VPN server is located in the home gateway, and a remote user connected to the Internet acts as a VPN client. The home gateways of each home network can operate as a VPN server or a VPN client in each home network. First, the VPN client requests the creation of a tunnel to the VPN server by using a public IP address on the Internet. Once the tunnel is established, the VPN server authenticates the VPN client and assigns the VPN client a private IP address that can be used inside the home network. The VPN client creates a virtual network interface using the assigned private IP address, which is connected to the home network and acts as if it were a single network. The public IP address of the VPN client is used to create a tunnel to the VPN server, and the private IP address is used on the home network connected through the tunnel.

위와 같이 NAPT와 VPN기술을 홈게이트웨이에 적용하면 가정내 복수의 네트워크 기기를 통해 인터넷에 연결할 할 수 있으며, 인터넷에 위치한 원격 사용자들이 홈네트워크에 연결할 수 있게 된다.If you apply NAPT and VPN technology to your home gateway as above, you can connect to the Internet through multiple network devices in your home, and remote users on the Internet can connect to your home network.

그러나 위와 같이 NAPT 및 VPN 등의 기술들은 홈네트워크와 인터넷은 서로연결시켜주고 있지만, 임의의 홈네트워크와 또 다른 홈네트워크 사이의 연결을 제공할 수는 없다는 문제점이 있었다. 즉, 홈네트워크에서는 사설 IP주소가 이용되는 관계로, 서로 다른 공인 IP주소를 사용하는 복수의 홈네트워크가 동일한 사설 IP주소를 사용할 수 있기 때문에 홈네트워크에 연결된 어느 한 호스트에서 데이터를 전송하려는 경우, 자신이 속한 홈네트워크에 있는 호스트와 원격지의 홈네트워크에 속한 호스트의 IP주소가 동일하면, 데이터를 어느 홈네트워크에 속한 호스트에 전송할 지 결정할 수 없어 데이터 전송 에러를 발생시키게 된다.However, as described above, the technologies such as NAPT and VPN connect the home network and the Internet, but cannot provide a connection between an arbitrary home network and another home network. In other words, in the home network, since a private IP address is used, a plurality of home networks using different public IP addresses can use the same private IP address. If the IP address of the host in the home network of the host and the host in the remote home network is the same, it is impossible to determine which home network the data is sent to, which causes a data transmission error.

본 발명의 목적은 상기와 같은 문제점을 해결하기 위하여 서로 다른 사설망에 연결된 네트워크 장치들 사이의 통신이 가능하도록 서비스를 제공하는 망접속장치를 제공하는 데 있다.An object of the present invention is to provide a network access device that provides a service to enable communication between network devices connected to different private networks in order to solve the above problems.

도 1은 본 발명에 따른 망접속장치를 포함하는 네트워크 구성도,1 is a configuration diagram of a network including a network access device according to the present invention;

도 2는 도 1에 보인 망접속장치의 일 실시예에 따른 개략적인 블록도,2 is a schematic block diagram according to an embodiment of the network connection apparatus shown in FIG. 1;

도 3은 확장된 네트워크ID가 서로 다른 두 사설망의 VPN터널 형성과정을 설명하는 신호흐름도,3 is a signal flow diagram illustrating a VPN tunnel formation process of two private networks having different extended network IDs;

도 4는 도 3의 과정에 의해 사설망A와 사설망B 사이에 형성된 터널을 통한 호스트A와 호스트B의 패킷전달과정을 설명하는 신호흐름도,4 is a signal flow diagram illustrating a packet delivery process of the host A and the host B through the tunnel formed between the private network A and the private network B by the process of FIG.

도 5는 확장된 네트워크ID가 서로 일치하는 두 사설망의 VPN터널 형성과정을 설명하는 신호흐름도,5 is a signal flow diagram illustrating a process of forming a VPN tunnel of two private networks where the extended network IDs match each other.

도 6은 도 5의 과정에 의해 사설망A와 사설망B 사이에 형성된 터널을 통한 호스트A와 호스트B의 패킷전달과정을 설명하는 신호흐름도,6 is a signal flow diagram illustrating a packet delivery process of the host A and the host B through the tunnel formed between the private network A and the private network B by the process of FIG.

도 7은 사설망A의 확장된 네트워크ID가 사설망B의 확장된 네트워크ID에 포함되는 경우의 두 사설망간 VPN터널 형성과정을 설명하는 신호흐름도,7 is a signal flow diagram illustrating a process of forming a VPN tunnel between two private networks when the extended network ID of private network A is included in the extended network ID of private network B.

도 8은 도 1에 보인 망접속장치의 또다른 실시예에 따른 개략적인 블록도,8 is a schematic block diagram according to still another embodiment of the network access apparatus shown in FIG. 1;

도 9는 확장된 네트워크ID가 서로 다른 두 사설망의 VPN터널 형성과정을 설명하는 신호흐름도,9 is a signal flow diagram illustrating a process of forming a VPN tunnel of two private networks having different extended network IDs.

도 10은 도 9의 과정에 의해 사설망A와 사설망B 사이에 형성된 터널을 통한 호스트A와 호스트B의 패킷전달과정을 설명하는 신호흐름도,10 is a signal flow diagram illustrating a packet delivery process of the host A and the host B through the tunnel formed between the private network A and the private network B by the process of FIG.

도 11은 확장된 네트워크ID가 서로 일치하는 두 사설망의 VPN터널 형성과정을 설명하는 신호흐름도,11 is a signal flow diagram illustrating a process of forming a VPN tunnel of two private networks in which extended network IDs match each other.

도 12는 도 11의 과정에 의해 사설망A와 사설망B 사이에 형성된 터널을 통한 호스트A와 호스트B의 패킷전달과정을 설명하는 신호흐름도, 그리고12 is a signal flow diagram illustrating a packet delivery process between Host A and Host B through a tunnel formed between Private Network A and Private Network B by the process of FIG.

도 13은 사설망A의 확장된 네트워크ID가 사설망B의 확장된 네트워크ID에 포함되는 경우의 두 사설망간 VPN터널 형성과정을 설명하는 신호흐름도이다.FIG. 13 is a signal flow diagram illustrating a process of forming a VPN tunnel between two private networks when the extended network ID of private network A is included in the extended network ID of private network B. Referring to FIG.

*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

100: 게이트웨이 110: 공중망 인터페이스100: gateway 110: public network interface

120: 사설망 인터페이스 130: 메모리부120: private network interface 130: memory unit

132, 132': 사설망 연결 관리 테이블132, 132 ': private network connection management table

140: 제어부 141: NAT/NAPT처리부140: control unit 141: NAT / NAT processing unit

142: IP처리부 143, 143': 사설망DNS처리부142: IP processing unit 143, 143 ': private network DNS processing unit

144: DHCP처리부 145, 145': 라우팅부144: DHCP processing unit 145, 145 ': routing unit

146, 146': VPN처리부 146A, 146A': HTIP처리부146, 146 ': VPN processing unit 146A, 146A': HTIP processing unit

146B, 146B': VPN처리부 147: 웹서버/미들웨어서버146B, 146B ': VPN processing unit 147: Web server / middleware server

148: 암호화처리부 149: 사용자인증처리부148: encryption processing unit 149: user authentication processing unit

150: ISP(Internet Service Provider)150: Internet Service Provider (ISP)

200: 사설망 210, 310, 320: 호스트200: private network 210, 310, 320: host

212: 웹브라우저 214: 응용프로그램212: Web browser 214: Application

300: 인터넷 330: 인터넷DNS서버300: Internet 330: Internet DNS Server

상기의 목적을 달성하기 위한 본 발명의 망접속장치는, 공중망과 연결되는 적어도 하나 이상의 공중망 인터페이스; 사설망과 연결되는 적어도 하나 이상의 사설망 인터페이스; 상기 사설망에 연결된 호스트로부터 상기 공중망에 연결된 타사설망에 대한 터널 생성 요청메시지가 수신되면, 상기 타사설망의 게이트웨이와 통신하여 VPN터널을 형성시키되, 상기 사설망 및 상기 타사설망의 네트워크 주소가 같거나 어느 한 사설망에 다른 한 사설망의 네트워크 주소가 포함되면, 상기 두 사설망이 VPN터널 내에서 서로 다른 네트워크 주소를 사용하도록 새로운 네트워크 주소 테이블을 생성하고, 상기 사설망에 연결된 호스트 또는 상기 타사설망으로부터전송된 데이터 패킷에 대해 상기 새로운 네트워크 주소 테이블을 토대로 목적지 주소 또는 출발지 주소를 변환시켜 포워딩하는 제어부;를 포함한다.Network connection device of the present invention for achieving the above object, at least one public network interface connected to the public network; At least one private network interface connected to the private network; When a tunnel creation request message for a third party network connected to the public network is received from a host connected to the private network, a VPN tunnel is formed by communicating with a gateway of the third party network, and the network addresses of the private network and the third party network are the same or equal. If the private network includes the network addresses of the other private network, create a new network address table so that the two private networks use different network addresses in the VPN tunnel, and add the data packets transmitted from the host connected to the private network or the third party network. And converting and forwarding a destination address or a source address based on the new network address table.

상기 제어부는, 상기 사설망에 연결된 호스트에서 터널 생성을 요청할 수 있도록 터널생성요청페이지를 제공하는 웹서버; 상기 사설망에 연결된 호스트의 상기 타사설망에 대한 터널 생성 요청에 대해 상기 공중망에 연결된 DNS(Domain Name Server)로부터 상기 타사설망 게이트웨이의 공인 IP(Internet Protocol)주소를 획득하는 사설망 DNS처리부; 상기 공중망 인터페이스를 통해 전달된 터널 생성 요청 또는 상기 사설망 인터페이스를 통해 전달된 터널 생성 요청에 따라 서버 또는 클라이언트로 동작하여 요청 대상 사설망과 터널이 형성될 수 있도록 처리하는 VPN(Virtual Private Network)처리부; 및 상기 사설망에서 상기 공중망으로 전송되는 데이터 패킷 또는 상기 공중망에서 상기 사설망으로 전송되는 데이터 패킷에 대해 NAPT프로토콜을 이용하여 사설 IP주소를 공인 IP주소로 변환하거나 공인 IP주소를 사설 IP주소로 변환시키며, 상기 사설망과 상기 타사설망 사이에 상기 VPN 터널이 형성된 경우, NAT 프로토콜을 이용하여 상기 VPN 터널 내에서 주소변환을 수행하는 NAT/NAPT처리부;를 포함한다. 여기서, 상기 웹서버는, 미들웨어서버로 대체 가능하다.The controller may include a web server providing a tunnel creation request page so that a host connected to the private network can request to create a tunnel; A private network DNS processing unit for obtaining a public IP (Internet Protocol) address of the third-party network gateway from a DNS (Domain Name Server) connected to the public network in response to a tunnel creation request for the third-party network of a host connected to the private network; A virtual private network (VPN) processing unit operating as a server or a client according to the tunnel creation request transmitted through the public network interface or the tunnel creation request transmitted through the private network interface to form a tunnel with the requesting private network; Converting a private IP address into a public IP address or a public IP address into a private IP address using a NAPT protocol for a data packet transmitted from the private network to the public network or a data packet transmitted from the public network to the private network; And a NAT / NAPT processing unit for performing address translation in the VPN tunnel using a NAT protocol when the VPN tunnel is formed between the private network and the third party network. Here, the web server can be replaced by a middleware server.

상기 VPN처리부는, 상기 사설망에 연결된 상기 호스트로부터 상기 타사설망에 대한 상기 터널 생성 요청이 전달되면, 상기 사설망의 네트워크 주소 및 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제2 네트워크 주소들을 포함하는 상기 터널 생성 요청 메시지를 상기 타사설망 게이트웨이에 전송한다. 그리고 상기 VPN처리부는 상기 터널 생성 요청에 대해 상기 타사설망의 게이트웨이로부터 상기 타사설망의 네트워크 주소, 상기 제2 네트워크 주소, 및 상기 VPN 터널에서 상기 타사설망의 네트워크 주소 대신에 사용될 제3 네트워크 주소들을 포함하는 응답이 수신되면, 상기 사설망의 네트워크 주소, 상기 타사설망의 네트워크 주소, 상기 제2 네트워크 주소, 상기 제3 네트워크 주소를 포함하는 ACK(Acknowledge)를 상기 타사설망 게이트웨이에 전송한다. 또한, 상기 VPN처리부는, 상기 타사설망에 대한 터널 생성 요청메시지 발생부터 상기 ACK를 전송하기까지의 과정을 통해 사설망간 연결 관리 테이블을 생성한다. 상기 사설망 연결 관리 테이블은, 상기 사설망의 네트워크 주소, 상기 타사설망의 네트워크 주소, 상기 제2 네트워크 주소, 상기 제3 네트워크 주소를 포함하며, 상기 타사설망 게이트웨이의 도메인 이름 및 상기 타사설망 게이트웨이의 VPN 동작에 따른 서버/클라이언트 상태 표시 항목을 더 포함할 수 있다.The VPN processing unit may include a network address of the private network and second network addresses to be used instead of the network address of the private network in the VPN tunnel when the tunnel creation request for the third party network is transmitted from the host connected to the private network. The tunnel creation request message is transmitted to the third party gateway. And the VPN processing unit includes a network address of the third party network, the second network address, and third network addresses to be used in place of the network address of the third party network in the VPN tunnel with respect to the tunnel creation request. If a response is received, an ACK (Acknowledge) including the network address of the private network, the network address of the third-party network, the second network address, and the third network address is transmitted to the third-party network gateway. The VPN processor generates a connection management table between private networks through a process of generating a tunnel creation request message for the third party network and transmitting the ACK. The private network connection management table includes a network address of the private network, a network address of the third party network, the second network address, and the third network address, and a domain name of the third party network gateway and a VPN operation of the third party network gateway. It may further include a server / client status display item according to.

상기 NAT/NAPT처리부는 위와 같이 상기 VPN처리부에서 상기 사설망 연결 관리 테이블을 생성하면, 상기 사설망에 연결된 호스트들에 대하여 NAT(Network Address Translation)를 설정한다.When the NAT / NAPT processor generates the private network connection management table in the VPN processor as described above, the NAT / NAPT processor sets NAT (Network Address Translation) for the hosts connected to the private network.

또한, 상기 DNS처리부는, 상기 타사설망과의 사이에 VPN 터널이 형성된 상태에서 상기 사설망에 연결된 제1 호스트로부터 상기 타사설망에 연결된 제2 호스트에 대한 통신 요구가 전달되면, 상기 제2 호스트의 제3 네트워크 주소를 상기 타사설망의 게이트웨이에 문의하고, 상기 타사설망 게이트웨이로부터 상기 제2 호스트의 제3 네트워크 주소에 대한 응답이 수신되면, 상기 제1 호스트에 상기 제2 호스트의 제3 네트워크 주소를 전송한다.In addition, the DNS processing unit, when a communication request is transmitted from the first host connected to the private network with the second host connected to the third-party network in a state where a VPN tunnel is formed between the third-party network, the second host of the second host. 3, the third-party gateway is contacted for a network address; and when a response to the third network address of the second host is received from the third-party gateway, the third network address of the second host is transmitted to the first host. do.

상기 제어부는, 상기 제2 호스트의 제3 네트워크주소를 목적지주소로 하는 데이터 패킷이 상기 제1 호스트로부터 전달되면, 상기 VPN터널을 통해 상기 타사설망 게이트웨이에 포워딩한다.The control unit forwards the data packet having the third network address of the second host as the destination address from the first host to the third-party network gateway through the VPN tunnel.

한편, 상기 VPN처리부는, 타사설망으로부터 상기 타사설망의 네트워크 주소 및 상기 VPN 터널에서 상기 타사설망의 네트워크 주소 대신에 사용될 제2 네트워크 주소들을 포함하는 터널 요청 메시지가 수신되면, 사설망의 네트워크 주소, 상기 제2 네트워크 주소, 및 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제3 네트워크 주소들을 포함하는 응답메시지를 상기 타사설망에 전송한다. 또한, 상기 VPN처리부는, 상기 타사설망으로부터 터널 생성 요청메시지 수신시부터 상기 응답메시지에 대한 ACK를 수신하기까지의 과정을 통해 사설망간 연결 관리 테이블을 생성한다. 상기 사설망 연결 관리 테이블은, 상기 사설망의 네트워크 주소, 상기 타사설망의 네트워크 주소, 상기 제2 네트워크 주소, 상기 제3 네트워크 주소를 포함하며, 상기 타사설망 게이트웨이의 도메인 이름 및 상기 타사설망 게이트웨이의 VPN 동작에 따른 서버/클라이언트 상태 표시 항목을 더 포함할 수 있다.Meanwhile, when the VPN processing unit receives a tunnel request message including a network address of the third party network and second network addresses to be used in place of the network address of the third party network in the VPN tunnel, the network address of the private network, Send a response message to the third party network including a second network address and third network addresses to be used in place of the private network's network address in the VPN tunnel. The VPN processing unit generates a connection management table between private networks through a process from receiving a tunnel creation request message from the third-party network to receiving an ACK for the response message. The private network connection management table includes a network address of the private network, a network address of the third party network, the second network address, and the third network address, and a domain name of the third party network gateway and a VPN operation of the third party network gateway. It may further include a server / client status display item according to.

상기 NAT/NAPT처리부는, 위와 같이 VPN처리부에서 상기 사설망 연결 관리 테이블을 생성하면, 상기 사설망 연결 관리 테이블을 참조하여 상기 사설망에 연결된 호스트들에 대한 NAT(Network Address Translation)를 설정한다.When the NAT / NAPT processing unit generates the private network connection management table in the VPN processing unit as described above, the NAT / NAPT processing unit sets NAT (Network Address Translation) for hosts connected to the private network with reference to the private network connection management table.

또한, 상기 DNS처리부는, 상기 타사설망으로부터 상기 사설망에 연결된 호스트에 대한 문의가 수신되면, 상기 VPN터널 내에서 사용되는 상기 호스트의 네트워크 주소를 응답으로 전송한다.In addition, when the DNS processing unit receives an inquiry about a host connected to the private network from the third-party network, the DNS processing unit transmits the network address of the host used in the VPN tunnel as a response.

상기 제어부는, 상기 타사설망으로부터 상기 호스트의 제3 네트워크 주소를 목적지주소로 하는 데이터 패킷이 전달되면, 상기 NAT를 참조하여 상기 호스트에 수신된 데이터 패킷을 전송한다.If the data packet is transmitted from the third-party network as a destination address to the third network address of the host, the controller transmits the received data packet to the host with reference to the NAT.

한편, 상기 제어부는, 상기 사설망에 연결된 호스트에서 터널 생성을 요청할 수 있도록 터널생성요청페이지를 제공하는 웹서버; 상기 사설망에 연결된 호스트 또는 상기 제어부의 요청에 따라 도메인 이름에 대한 IP(Internet Protocol) 주소를 획득하는 DNS처리부; 상기 공중망 인터페이스를 통해 전달된 터널 생성 요청 또는 상기 사설망 인터페이스를 통해 전달된 터널 생성 요청에 따라 서버 또는 클라이언트로 동작하여 요청 대상 사설망의 망접속장치와 통신하여 필요한 정보를 교환 및 협상하고, 상기 VPN처리부 및 NAT/NAPT처리부를 제어하는 HTIP처리부; 상기 공중망 인터페이스를 통해 전달된 터널 생성 요청 또는 상기 HTIP처리부를 통해 전달된 터널 생성 요청에 따라 서버 또는 클라이언트로 동작하여 요청 대상 사설망과 터널이 형성될 수 있도록 처리하는 VPN(Virtual Private Network)처리부 및 상기 사설망에서 상기 공중망으로 전송되는 데이터 패킷 또는 상기 공중망에서 상기 사설망으로 전송되는 데이터 패킷에 대해 NAPT프로토콜을 이용하여 사설 IP주소를 공인 IP주소로 변환하거나 공인 IP주소를 사설 IP주소로 변환시키며, 상기 사설망과 상기 타사설망 사이에 형성된 상기 VPN 터널에 대하여 필요한 경우 NAT 프로토콜을 이용하여 상기 VPN 터널의 양단에서 주소변환을 수행하는 NAT/NAPT처리부;를 포함한다. 여기서, 상기 웹서버는, 미들웨어서버 등으로 대체 가능하다.On the other hand, the control unit, a web server for providing a tunnel creation request page to request the creation of the tunnel from the host connected to the private network; A DNS processing unit for obtaining an IP (Internet Protocol) address for a domain name at the request of a host connected to the private network or the controller; In response to the tunnel creation request transmitted through the public network interface or the tunnel creation request transmitted through the private network interface, the server or client operates to communicate with a network access device of the target private network to exchange and negotiate necessary information, and the VPN processing unit. And HTIP processing unit for controlling the NAT / NAT processing unit; A virtual private network (VPN) processing unit configured to operate as a server or a client according to the tunnel creation request transmitted through the public network interface or the tunnel creation request transmitted through the HTIP processing unit to form a tunnel with the requesting private network; Converts a private IP address into a public IP address or a public IP address into a private IP address using a NAPT protocol for a data packet transmitted from a private network to the public network or a data packet transmitted from the public network to the private network; And a NAT / NAPT processing unit for performing address translation at both ends of the VPN tunnel, if necessary, for the VPN tunnel formed between the network and the third party network. Here, the web server may be replaced with a middleware server.

상기 HTIP처리부는, 상기 사설망에 연결된 상기 호스트로부터 상기 타사설망에 대한 상기 터널 생성 요청이 전달되면, 상기 터널에 사용될 VPN 프로토콜, 상기 사설망의 네트워크 주소 및 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제2 네트워크 주소들을 포함하는 상기 터널 생성 요청 메시지를 상기 타사설망 게이트웨이에 전송한다. 그리고 상기 HTIP처리부는 상기 터널 생성 요청에 대해 상기 타사설망의 게이트웨이로부터 상기 터널에 사용될 VPN프로토콜, 상기 타사설망의 네트워크 주소, 상기 VPN 터널에서 상기 타사설망의 네트워크 주소 대신에 사용될 제3 네트워크 주소들, 상기 사설망의 주소 및 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제2네트워크 주소들을 포함하는 응답이 수신되면, 상기 VPN프로토콜, 상기 사설망의 네트워크 주소, 상기 타사설망의 네트워크 주소, 상기 제2 네트워크 주소, 상기 제3 네트워크 주소를 포함하는 ACK(Acknowledge)를 상기 타사설망 게이트웨이에 전송한다. 그리고, 상기 HTIP처리부는 상기 ACK 메시지에 대해 상기 타사설망의 게이트웨이로부터 상기 터널에 사용될 VPN 프로토콜, 상기 타사설망의 네트워크 주소, 상기 VPN 터널에서 상기 타사설망의 네트워크 주소 대신에 사용될 제3네트워크 주소, 상기 사설망의 주소 및 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제2 네트워크 주소 등을 포함하는 READY 메시지를 수신하면, 상기 VPN처리부를 VPN 클라이언트로 설정하고, 상기 HTIP처리부가 VPN 클라이언트를 구동하도록 한다.The HTIP processing unit may be used in place of the VPN protocol to be used for the tunnel, the network address of the private network, and the network address of the private network in the VPN tunnel when the tunnel creation request for the third party network is transmitted from the host connected to the private network. The tunnel creation request message including the second network addresses is transmitted to the third party network gateway. The HTIP processing unit may be a VPN protocol to be used for the tunnel from the gateway of the third party network for the tunnel creation request, a network address of the third party network, third network addresses to be used instead of the network address of the third party network in the VPN tunnel, If a response is received that includes an address of the private network and second network addresses to be used in place of the network address of the private network in the VPN tunnel, the VPN protocol, the network address of the private network, the network address of the third-party network, and the second network. Send an ACK (Acknowledge) including the address, the third network address to the third-party network gateway. The HTIP processing unit may be a VPN protocol to be used for the tunnel from the gateway of the third party network for the ACK message, a network address of the third party network, a third network address to be used instead of the network address of the third party network in the VPN tunnel, Upon receiving a READY message including an address of a private network and a second network address to be used in place of the network address of the private network in the VPN tunnel, the VPN processor is configured as a VPN client and the HTIP processor is configured to drive a VPN client. .

또한, 상기 HTIP처리부는, 상기 타사설망에 대한 터널 생성 요청메시지 발생부터 상기 READY를 수신하기까지의 과정을 통해 사설망간 연결 관리 테이블을 생성한다. 상기 사설망 연결 관리 테이블은, 상기 사설망의 네트워크 주소, 상기 터널의 VPN 프로토콜, 상기 터널의 ID, 상기 타사설망의 네트워크 주소, 상기 제2 네트워크 주소, 상기 제3 네트워크 주소를 포함하며, 상기 타사설망 게이트웨이의 도메인 이름 및 상기 타사설망 게이트웨이의 VPN 동작에 따른 서버/클라이언트 상태 표시 항목 등을 더 포함할 수 있다.The HTIP processing unit generates a connection management table between private networks through a process of generating a tunnel creation request message for the third party network and receiving the READY. The private network connection management table includes a network address of the private network, a VPN protocol of the tunnel, an ID of the tunnel, a network address of the third party network, the second network address, and the third network address. It may further include the domain name and the server / client status display items according to the VPN operation of the third-party network gateway.

또한, 상기 HTIP처리부는 상기 사설망과 상기 타사설망 사이에 VPN 터널이 형성되었으며 VPN 터널의 양단에서 주소변환이 필요한 경우, 상기 사설망 연결 관리 테이블을 참조하여 VPN 터널의 양단에 주소변환을 설정하도록 NAT/NAPT처리부를 제어한다.In addition, when the VPN tunnel is formed between the private network and the third-party network, and the address translation is required at both ends of the VPN tunnel, the HTIP processor may refer to the private network connection management table to configure address translation at both ends of the VPN tunnel. Control the NAPT processing unit.

또한, 상기 DNS처리부는, 상기 타사설망과의 사이에 VPN 터널이 형성된 상태에서 상기 사설망에 연결된 제1 호스트로부터 상기 타사설망에 연결된 제2 호스트에 대한 통신 요구가 전달되면, 상기 제2 호스트의 도메인 이름에 대한 IP주소를 상기 타사설망의 게이트웨이에 문의한다. 상기 타사설망 게이트웨이는 상기 VPN터널에서 사용되는 상기 제2 호스트의 IP주소를 응답으로 보내며, 상기 DNS처리부는 이를 수신하여 상기 제1 호스트에 전송한다.In addition, the DNS processing unit, if a communication request is transmitted from a first host connected to the private network to a second host connected to the third-party network while a VPN tunnel is formed between the third-party network, the domain of the second host. Contact the gateway of the third-party network for the IP address for the name. The third-party network gateway sends an IP address of the second host used in the VPN tunnel as a response, and the DNS processor receives it and transmits it to the first host.

상기 제어부는, 상기 제2 호스트의 IP주소를 목적지주소로 하는 데이터 패킷이 상기 제1 호스트로부터 전달되면, 상기 VPN터널을 통해 상기 타사설망 게이트웨이로 라우팅하며, VPN터널에 주소 변환이 설정되어 있는 경우 데이터 패킷의 출발지 주소 변환을 수행한다.The controller, when a data packet having the IP address of the second host as the destination address is transmitted from the first host, routes the packet to the third-party network gateway through the VPN tunnel, and when address translation is set in the VPN tunnel. Perform source address translation of data packets.

한편, 상기 HTIP처리부는, 타사설망으로부터 상기 터널의 VPN 프로토콜, 상기 타사설망의 네트워크 주소 및 상기 VPN 터널에서 상기 타사설망의 네트워크 주소 대신에 사용될 제2 네트워크 주소들을 포함하는 터널 요청 메시지가 수신되면, 상기 터널의 VPN 프로토콜, 사설망의 네트워크 주소, 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제3 네트워크 주소들, 상기 타사설망의 네트워크 주소 및 상기 제2 네트워크 주소를 포함하는 응답메시지를 상기 타사설망에 전송한다.Meanwhile, when the HTIP processing unit receives a tunnel request message including a VPN protocol of the tunnel, a network address of the third party network, and second network addresses to be used instead of the network address of the third party network in the VPN tunnel, A response message including the VPN protocol of the tunnel, the network address of the private network, third network addresses to be used in place of the network address of the private network in the VPN tunnel, the network address of the third-party network, and the second network address. To transmit.

또한, 상기 HTIP처리부는, 상기 타 사설망으로부터 ACK 메시지가 도착하면, 상기 VPN처리부를 VPN 서버로 설정하고, 상기 터널의 VPN 프로토콜, 상기 사설망의 네트워크 주소, 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제 3네트워크 주소, 상기 타사설망의 네트워크 주소, 상기 VPN 터널에서 상기 타사설망의 네트워크 주소 대신에 사용될 제2 네크워크 주소 등을 포함하는 READY 메시지를 상기 타사설망의 망접속장치에 전송한다.The HTIP processing unit, when an ACK message arrives from the other private network, sets the VPN processing unit as a VPN server, and replaces the VPN protocol of the tunnel, the network address of the private network, and the network address of the private network in the VPN tunnel. A READY message including a third network address to be used, a network address of the third party network, a second network address to be used in place of the network address of the third party network in the VPN tunnel, and the like, are transmitted to the network access device of the third party network.

또한, 상기 HTIP처리부는, 상기 타사설망으로부터 터널 생성 요청메시지 수신시부터 상기 응답메시지에 대한 상기 READY를 송신하기까지의 과정을 통해 사설망간 연결 관리 테이블을 생성한다. 상기 사설망 연결 관리 테이블은, 상기 터널의 VPN 프로토콜, 상기 터널의 ID, 상기 사설망의 네트워크 주소, 상기 타사설망의 네트워크 주소, 상기 제2 네트워크 주소, 상기 제3 네트워크 주소를 포함하며, 상기 타사설망 게이트웨이의 도메인 이름 및 상기 타사설망 게이트웨이의 VPN 동작에 따른 서버/클라이언트 상태 표시 항목 등을 더 포함할 수 있다.The HTIP processing unit generates a connection management table between private networks through a process from receiving a tunnel creation request message from the third-party network to transmitting the READY for the response message. The private network connection management table includes a VPN protocol of the tunnel, an ID of the tunnel, a network address of the private network, a network address of the third party network, the second network address, and the third network address. It may further include the domain name and the server / client status display items according to the VPN operation of the third-party network gateway.

또한, 상기 HTIP처리부는 상기 사설망과 상기 타사설망 사이에 VPN 터널이형성되었으며 VPN 터널의 양단에서 주소변환이 필요한 경우, 상기 사설망 연결 관리 테이블을 참조하여 VPN 터널의 양단에 주소 변환을 설정하도록 NAT/NAPT처리부를 제어한다.In addition, when the VPN tunnel is formed between the private network and the third-party network, and the address translation is required at both ends of the VPN tunnel, the HTIP processing unit may refer to the private network connection management table to configure address translation at both ends of the VPN tunnel. Control the NAPT processing unit.

또한, 상기 DNS처리부는, 상기 타사설망으로부터 상기 사설망에 연결된 호스트에 대한 문의가 수신되면, 상기 VPN터널 내에서 사용되는 상기 호스트의 네트워크 주소를 응답으로 전송한다.In addition, when the DNS processing unit receives an inquiry about a host connected to the private network from the third-party network, the DNS processing unit transmits the network address of the host used in the VPN tunnel as a response.

상기 제어부는, 상기 타사설망으로부터 상기 호스트의 제3 네트워크 주소를 목적지주소로 하는 데이터 패킷이 전달되면, 상기 NAT/NAPT처리부의 변환표를 참조하여 데이터 패킷의 목적지 주소를 변환한 후, 상기 호스트에 수신된 데이터 패킷을 전송한다.If the data packet is transmitted from the third-party network as a destination address to the third network address of the host, the controller converts the destination address of the data packet by referring to the conversion table of the NAT / NAPT processing unit and then sends the data packet to the host. Send the received data packet.

이상과 같은 본 발명의 망접속장치는, 사설망에서 공중망(인터넷)으로의 네트워킹 및 인터넷에서 사설망으로의 네트워킹이 가능할 뿐만 아니라 사설망에서 타사설망과의 네트워킹까지도 가능하여 사용자의 네트워킹의 범위를 보다 더 확장시킬 수 있게 된다.As described above, the network connection device of the present invention enables not only the networking from the private network to the public network (Internet) and the networking from the Internet to the private network, but also from the private network to the third party network, thereby further extending the scope of the user's networking. You can do it.

이하 첨부한 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 이하의 설명에서 복수의 부재에는 복수의 부재를 포괄하는 단일의 부재번호가 이용됨을 명시한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. In the following description, it is specified that a plurality of members uses a single member number that includes a plurality of members.

도 1은 본 발명의 일 실시예에 에 따른 홈게이트웨이를 포함하는 네트워크 구성도이다. 네트워크는, 복수의 사설망(200A,200B)과 억세스(Access) 네트워크 및 인터넷(300)을 포함한다. 사설망들(200A,200B)에는 각각 망 내부에사설망호스트들(210A, 210B,210C,210D)이 연결되며, 인터넷(300)에는 DNS서버(330) 및 복수의 공중망호스트들(310,320)이 연결되어 있다. 그리고 각 사설망(200)과 인터넷(300)은 ISP(150)및 홈게이트웨이(100)를 포함하는 억세스(access) 네트워크를 통해 서로 연결되어 있다.1 is a diagram illustrating a network including a home gateway according to an embodiment of the present invention. The network includes a plurality of private networks 200A and 200B, an access network, and the Internet 300. Private network hosts 210A, 210B, 210C, and 210D are connected to the private networks 200A and 200B, respectively, and the DNS server 330 and the plurality of public network hosts 310 and 320 are connected to the Internet 300. have. Each private network 200 and the Internet 300 are connected to each other through an access network including an ISP 150 and a home gateway 100.

사설망(200)과 인터넷(300)을 연결하는 홈게이트웨이(100)는 ISP(150)로부터 공인 IP주소를 할당받고, 할당받은 IP주소에 대해 인터넷에 연결된 DNS서버(330)에 도메인 네임을 등록한다. 또한, 홈게이트웨이(100)는 각 사설망에 위치한 호스트들(210)과 인터넷(300)에 연결된 호스트들(310,320)이 상호 통신할 수 있도록 NAPT프로토콜 및 VPN을 통해 서비스한다. 또한, 홈게이트웨이(100)는 VPN 및 사설 IP주소 할당을 통해 각 사설망(200) 내부에 위치한 호스트들(210A/210C)과 다른 사설망에 연결된 호스트들(210B/210D)이 상호 통신할 수 있도록 서비스한다. 즉, 홈게이트웨이A(100A) 및 홈게이트웨이B(100B)는 각 사설망(예를 들어, 200A)에 위치한 어느 한 호스트(예를 들어, 호스트A)로부터 다른 사설망(200B)에 위치한 호스트(호스트B)와의 연결 요청에 대해, 상대방 홈게이트웨이(100B)와의 통신을 통해 VPN 터널을 생성하고, 각 사설망(200A/200B)에 연결된 호스트들(210)에 대하여 VPN터널에서 사용될 서로 다른 사설 IP주소를 할당한 후, 터널 양단에서 NAT를 통해 사설망A(200A)에 연결된 호스트A(210A) 또는 호스트C(210C)와 사설망B(200B)에 연결된 호스트B(210B) 또는 호스트D(210D)가 상호 통신할 수 있도록 서비스한다.The home gateway 100 connecting the private network 200 and the Internet 300 receives a public IP address from the ISP 150 and registers a domain name in the DNS server 330 connected to the Internet for the assigned IP address. . In addition, the home gateway 100 services through the NAPT protocol and the VPN so that the hosts 210 and the hosts 310 and 320 connected to the Internet 300 can communicate with each other. In addition, the home gateway 100 provides a service for allowing hosts 210A / 210C located in each private network 200 and hosts 210B / 210D connected to other private networks to communicate with each other through VPN and private IP address assignment. do. That is, the home gateway A (100A) and the home gateway B (100B) is a host (host B) located in the other private network (200B) from one host (for example, host A) located in each private network (for example, 200A). For the connection request with the other), create a VPN tunnel through communication with the other home gateway (100B), and assign different private IP addresses to be used in the VPN tunnel for the hosts (210) connected to each private network (200A / 200B). Then, at both ends of the tunnel, Host A 210A or Host C 210C connected to Private Network A 200A through NAT can communicate with Host B 210B or Host D 210D connected to Private Network B 200B. Service to help.

도 2는 본 발명의 실시예에 따른 게이트웨이의 블록도이다. 게이트웨이(100)는 공중망 인터페이스(110), 사설망 인터페이스(120), 메모리부(130) 및제어부(140)를 포함한다.2 is a block diagram of a gateway according to an embodiment of the present invention. The gateway 100 includes a public network interface 110, a private network interface 120, a memory unit 130, and a controller 140.

인터페이스는 위와 같이 적어도 두개 이상의 네트워크 인터페이스가 구비되며, 적어도 하나는 공중망 인터페이스이고, 적어도 하나는 사설망 인터페이스이다. 공중망 인터페이스(110)는 ADSL, Cable 모뎀, 이더넷(Ethernet) 등에 의해 물리적으로 인터넷(300)에 연결되며, ISP(150)로부터 할당된 하나의 공인 IP주소를 갖는다. 사설망 인터페이스(120)는 이더넷, 무선랜(Wireless LAN), 홈PNA 등 유/무선으로 구성될 수 있으며, 제어부(140)에서 사설 IP주소를 가진다. 사설망에 사용되는 네트워크 주소는 IANA(Internet Assigned Numbers Authority)에 의해 사용이 허가된 주소들 가운데 무작위로 선택된다.The interface is provided with at least two network interfaces as described above, at least one is a public network interface, and at least one is a private network interface. The public network interface 110 is physically connected to the Internet 300 by ADSL, Cable Modem, Ethernet, etc., and has one public IP address assigned from the ISP 150. The private network interface 120 may be configured by wired / wireless such as Ethernet, wireless LAN, home PNA, etc., and has a private IP address in the controller 140. The network address used for the private network is randomly selected from addresses authorized by the Internet Assigned Numbers Authority (IANA).

메모리부(130)는 시스템 운영에 관련된 프로그램 및 새롭게 생성 및 갱신되는 데이터가 저장된다.The memory unit 130 stores programs related to system operation and newly generated and updated data.

제어부(140)는 NAT/NAPT처리부(141), IP(Internet Protocol)처리부(142), DNS(Domain Name Service)처리부(143), DHCP(Dynamic Host Configuration Protocol)처리부(144), 라우팅부(145), VPN처리부(146), 웹/미들웨어 서버(147), 암호화처리부(148), 그리고 사용자인증처리부(149)를 포함한다.The control unit 140 includes a NAT / NAPT processing unit 141, an IP (Internet Protocol) processing unit 142, a domain name service (DNS) processing unit 143, a dynamic host configuration protocol (DHCP) processing unit 144, and a routing unit 145. ), A VPN processing unit 146, a web / middleware server 147, an encryption processing unit 148, and a user authentication processing unit 149.

NAT/NAPT처리부(141)는 사설망에서 인터넷으로 전송되는 패킷 또는 인터넷에서 사설망으로 전송되는 패킷에 대해 사설 IP주소를 공인 IP주소로 변환하거나 공인 IP주소를 사설 IP주소로 변환시킨다. 또한, NAT/NAPT처리부(141)는 VPN 터널을 이용하여 사설망끼리 연결된 경우, NAT 프로토콜을 이용하여 VPN 터널 내에서 주소변환을 수행한다. NAT/NAPT처리부(141)는 메모리부(130)에 NAT 및 NAPT 테이블을생성 및 지속적으로 갱신한다.The NAT / NAPT processor 141 converts a private IP address into a public IP address or a public IP address into a private IP address for a packet transmitted from a private network to the Internet or a packet transmitted from the Internet to a private network. In addition, the NAT / NAPT processing unit 141 performs address translation in a VPN tunnel using a NAT protocol when private networks are connected to each other using a VPN tunnel. The NAT / NAPT processing unit 141 generates and continuously updates the NAT and NAPT tables in the memory unit 130.

IP처리부(142)는 공중망 인터페이스(110) 및 사설망 인터페이스(120)에서 전달된 패킷의 IP 데이터그램(datagram)에 대한 처리를 수행한다.The IP processing unit 142 performs processing on IP datagrams of packets transmitted from the public network interface 110 and the private network interface 120.

라우팅부(145)는 공중망에 연결된 외부 호스트 및 타사설망에 연결된 호스트와의 최적경로를 설정한다. 라우팅부(145)는 메모리부(130)에 라우팅테이블을 생성 및 지속적으로 갱신한다.The routing unit 145 establishes an optimal path with an external host connected to the public network and a host connected with a third party network. The routing unit 145 generates and continuously updates a routing table in the memory unit 130.

DNS처리부(146)는 사설망 내부의 호스트들에 대한 도메인 이름 및 사설 IP주소를 관리한다. 또한, DNS처리부(146)는 사설망 내부의 호스트로부터 사설망 외부의 호스트에 대한 문의가 발생하면 인터넷에 위치한 DNS서버(330) 또는 타사설망 전단에 위치한 홈게이트웨이로부터 답변을 구하여 응답한다. DNS처리부(146)는 사설망 내부의 호스트들과 관련한 DNS테이블을 관리한다.The DNS processor 146 manages domain names and private IP addresses for hosts in the private network. In addition, when a query for a host outside the private network occurs from a host inside the private network, the DNS processing unit 146 obtains an answer from a DNS server 330 located on the Internet or a home gateway located at the front end of a third party network. The DNS processing unit 146 manages DNS tables related to hosts in the private network.

DHCP처리부(144)는 사설망 내부의 네트워크 장치가 부팅될 때, 사설망 내부의 호스트들로부터 사용할 수 있는 사설 IP주소, 게이트웨이 주소, DNS처리부 주소 등의 요청에 대해 응답한다. DHCP처리부(144)는 응답의 일부로 호스트의 도메인 이름을 획득하며, 획득한 도메인 이름을 DNS처리부(146)에 전달하여 DNS테이블이 생성 및 갱신될 수 있도록 한다.When the network device in the private network is booted, the DHCP processor 144 responds to a request for a private IP address, a gateway address, a DNS processor address, and the like, available from the hosts in the private network. The DHCP processor 144 acquires the domain name of the host as part of the response, and transfers the obtained domain name to the DNS processor 146 so that the DNS table can be generated and updated.

웹(WEB)/미들웨어(Middleware)서버(147)는 사설망의 사용자가 다른 사설망과의 사이에 터널 생성을 요청할 수 있는 수단을 제공한다. 사용자는 웹브라우저 또는 미들웨어 클라이언트를 이용하여 서비스를 요청할 수 있다.The web / middleware server 147 provides a means for a user of a private network to request to create a tunnel between other private networks. The user may request a service using a web browser or a middleware client.

VPN처리부(146)는 인터넷에 위치한 호스트에 대하여 VPN서버로 동작하며, 다른 사설망과의 연결이 가능하도록 VPN서버 또는 VPN클라이언트로 동작한다. 또한, VPN처리부(146)는 사설망 내부에 위치한 호스트로부터 WEB/Middleware서버(147)를 통해 다른 사설망과의 연결이 요청되면, 타사설망과 통신하여 VPN터널을 형성하고, 사설망의 네트워크 주소에 따라 VPN터널의 끝에 NAT를 설정한다. 다른 사설망과의 연결에 필요한 정보들은 사설망 연결 관리 테이블을 생성하여 관리하며, 테이블로 생성된 데이터들은 메모리부(130)에 저장된다. 사설망 연결 관리 테이블은 자체 사설망의 네트워크 주소, 타사설망의 네트워크 주소, VPN터널 내에서 사용될 자체 사설망의 네트워크 주소, VPN터널 내에서 사용될 타사설망의 네트워크 주소를 포함하며, 상대 사설망 게이트웨이의 도메인 이름 및 상대 사설망 게이트웨이의 VPN 동작에 따른 서버/클라이언트 상태 표시 항목을 더 포함할 수 있다.The VPN processing unit 146 operates as a VPN server for a host located on the Internet, and operates as a VPN server or a VPN client so as to enable connection with other private networks. In addition, when the VPN processing unit 146 is requested to connect with other private networks through a WEB / Middleware server 147 from a host located inside the private network, it forms a VPN tunnel by communicating with a third party network and establishes a VPN according to the network address of the private network. Configure NAT at the end of the tunnel. Information necessary for connection with other private networks is generated by managing a private network connection management table, and the data generated as a table is stored in the memory unit 130. The private network connection management table includes the network address of its own private network, the network address of the third party's network, the network address of its own private network to be used within the VPN tunnel, and the network address of the third party's network to be used within the VPN tunnel. The server / client status display item according to the VPN operation of the private network gateway may be further included.

암호화처리부(148)는 사설망과 공중망 사이 또는 사설망과 타사설망 사이에 전달되는 패킷에 대해 암호화를 수행한다.The encryption processing unit 148 performs encryption on packets transmitted between the private network and the public network or between the private network and the third party network.

사용자인증처리부(149)는 공중망으로부터 사설망에 접근하기 원하는 외부 사용자 및 사설망에서 게이트웨이에 대한 설정변경 등을 위해 접근하는 사용자에 대해 인증절차를 수행한다.The user authentication processing unit 149 performs an authentication procedure for an external user who wants to access a private network from a public network and a user who accesses a configuration change for a gateway in a private network.

위와 같은 게이트웨이는 타사설망과 VPN터널을 형성할 때, 다음과 같은 3가지 경우에 따라 대응되는 동작을 수행한다. 각 경우에 대해서 도 1을 참조하여 설명한다.When the above gateway forms a VPN tunnel with a third-party network, it performs corresponding operations according to the following three cases. Each case will be described with reference to FIG. 1.

첫째, 사설망A(200A)와 사설망B(200B)의 확장된 네트워크 ID(네트워크 ID와 서브넷 마스크의 곱)가 서로 다른 경우(case1)이다. 예를 들어, 사설망A(200A)의네트워크 ID가 10.0.0.0/24, 사설망B(200B)의 네트워크 ID는 10.0.1.0/24로 설정되었을 때(case1), 사설망A(200A)의 확장된 네트워크 ID는 10.0.0.x가 되고, 사설망B의 확장된 네트워크 주소는 10.0.1.x.가 되어 서로 다르다. 이 경우, 사설망A와 사설망B는 VPN터널을 형성하는 것만으로 상호 통신이 가능하게 된다.First, the extended network ID (the product of the network ID and the subnet mask) of the private network A 200A and the private network B 200B is different from each other (case1). For example, when the network ID of private network A 200A is set to 10.0.0.0/24 and the network ID of private network B 200B is set to 10.0.1.0/24 (case1), the extended network of private network A 200A is set. ID is 10.0.0.x and private network B's extended network address is 10.0.1.x. In this case, private network A and private network B can communicate with each other only by forming a VPN tunnel.

둘째, 사설망A(200A)와 사설망B(200B)의 확장된 네트워크 ID가 서로 일치하는 경우(case2)이다. 예를 들어, 사설망A와 사설망B의 네트워크 ID가 모두 10.0.0.0/24로 설정되었을 때(case2), 사설망A(200A) 및 사설망B(200B) 모두 확장된 네트워크 ID는 10.0.0.x가 되어 서로 일치한다. 이 경우, 사설망A(200A)에 위치한 호스트A(210A)가 사설망B(200B)에 위치한 호스트B(210B)에게 패킷을 보내려 할 때, 호스트C(210C)가 호스트B(120B)와 같은 IP주소를 가졌다면, 홈게이트웨이A(100A)는 호스트A(210A)로부터 전송된 패킷을 호스트B(210B)에게 전송해야 하는지 또는 호스트C(210C)에 전송해야 하는지를 알 수 없어 전송에러를 발생시키며, 두 사설망 사이에 통신이 이루어지지 않게 된다. 따라서, 이 경우에는, 사설망A(200A)와 사설망B(200B) 사이에 형성된 터널에서 사용될 수 있는 새로운 IP주소를 할당한다. 예를 들어, 사설망A에는 10.0.1.0/24, 사설망B에는 10.0.2.0/24의 네트워크 주소를 할당한 후, VPN터널의 양단에서 NAT가 수행되도록 한다. 결과적으로, 사설망A(200A)에서 사설망B(200B)에 위치한 호스트(210B/210D)를 바라보면, 사설망B(200B)에 위치한 호스트는 10.0.2.x의 네트워크 주소를 가진 것으로 인식되며, 사설망B(200B)에서는 사설망A(200A)에 위치한 호스트(210A/210C)에 대해 10.0.2.y의 네트워크 주소를 가진 것으로 인식하게 되므로, 사설망A(200A)의 호스트(210A/210C)와 사설망B(200B)의 호스트(210B/210D)는 상호 통신이 가능하게 된다.Second, the extended network IDs of the private network A 200A and the private network B 200B coincide with each other (case2). For example, when both network IDs of private network A and private network B are set to 10.0.0.0/24 (case2), the extended network ID of both private network A (200A) and private network B (200B) is 10.0.0.x. And match each other. In this case, when Host A 210A located in Private Network A 200A tries to send a packet to Host B 210B located in Private Network B 200B, Host C 210C has the same IP address as Host B 120B. If Home Gateway A (100A) does not know whether to send a packet transmitted from Host A (210A) to Host B (210B) or Host C (210C) does not know whether to generate a transmission error, both There will be no communication between private networks. Thus, in this case, a new IP address that can be used in the tunnel formed between private network A 200A and private network B 200B is assigned. For example, after assigning a network address of 10.0.1.0/24 to private network A and 10.0.2.0/24 to private network B, NAT is performed at both ends of the VPN tunnel. As a result, when looking at the host 210B / 210D located in the private network B 200B in the private network A 200A, the host located in the private network B 200B is recognized as having a network address of 10.0.2.x. Since the B 200B recognizes that the host 210A / 210C located in the private network A 200A has a network address of 10.0.2.y, the host 210A / 210C and the private network B of the private network A 200A may be identified. The host 210B / 210D of the 200B can communicate with each other.

셋째, 사설망A의 네트워크ID가 사설망B의 네트워크ID에 포함되는 경우(case3)이다. 예를 들어, 사설망A(200A)는 10.0.0.0/24, 사설망B(200B)는 10.0.0.0/16과 같이 주어졌을 때(case3), 사설망A(200A)의 확장된 네트워크ID는 10.0.0.x, 사설망B(200B)의 확장된 네트워크ID는 10.0.x.x로 서로 다르지만, 10.0.0.x는 10.0.x.x의 일부로 포함된다. 이 경우에도 사설망A(200A)와 사설망B(200B) 사이에 VPN터널을 만들고 사설망A(200A)에는 10.0.1.0/24, 사설망B(200B)에는 10.1.0.0/16의 네트워크 주소를 할당한 후 터널의 양끝에서 NAT를 수행한다. 결과적으로 사설망A(200A)에서 사설망B(200B)에 위치한 호스트를 바라보면 10.1.x.y의 주소를 가진 것으로 보이며, 사설망B(200B)에서 사설망A(200A)에 위치한 호스트를 바라보면 10.0.1.z의 주소를 가진 것으로 보이므로 사설망A(200A)의 호스트와 사설망B(200B)의 호스트는 서로 통신할 수 있게 된다.Third, the network ID of private network A is included in the network ID of private network B (case3). For example, when private network A (200A) is given as 10.0.0.0/24 and private network B (200B) is given as 10.0.0.0/16 (case3), the extended network ID of private network A (200A) is 10.0.0. .x, the extended network ID of the private network B (200B) is 10.0.xx different, but 10.0.0.x is included as part of 10.0.xx. In this case as well, create a VPN tunnel between private network A (200A) and private network B (200B), assign a network address of 10.0.1.0/24 to private network A (200A), and 10.1.0.0/16 to private network B (200B). NAT is performed at both ends of the tunnel. As a result, when looking at the host located in private network A (200B) in private network A (200A), it appears to have an address of 10.1.xy, and when looking at the host located in private network A (200A) in private network B (200B), 10.0.1. Since it appears to have an address of z, the host of private network A 200A and the host of private network B 200B can communicate with each other.

위의 3가지 경우에서 사설망A(200A)와 사설망B(200B)의 확장된 네트워크ID가 서로 다르면 그 사이에 VPN 터널을 만드는 것만으로도 별다른 설정 없이 서로 통신을 할 수 있으므로, 홈게이트웨이의 내부의 사설망 네트워크 주소는 가급적 서로 다르도록 무작위로 설정하는 것이 바람직함을 알 수 있다.In the above three cases, if the extended network IDs of the private network A (200A) and the private network B (200B) are different from each other, it is possible to communicate with each other without setting up simply by creating a VPN tunnel therebetween. It can be seen that it is desirable to set the private network network addresses randomly so that they differ from each other.

이하, 위 세가지 경우에 따른 두 사설망 사이의 VPN터널 형성 및 패킷전달과정을 설명한다.Hereinafter, VPN tunnel formation and packet delivery process between two private networks according to the above three cases will be described.

도 3은, 확장된 네트워크ID가 서로 다른 두 사설망의 VPN터널 형성과정을 설명하는 신호흐름도이다. 먼저, 게이트웨이A(100A)의 웹서버(147)에서 제공되는 터널형성요청페이지를 사설망A(200A)의 사용자가 호스트A(210A)에서 웹브라우저 (212)를 통해 사설망B(200B)와의 터널 생성을 요청하면, 사설망A(200A)와 사설망B(200B) 사이의 터널 생성 요청을 받은 게이트웨이A(100A)는 DNS처리부(143)를 통해 인터넷에 위치한 DNS 서버(330)로부터 게이트웨이B(100B)의 공인IP주소(211.32.119.136)를 얻는다. 다음으로 게이트웨이A(100A)는 VPN처리부(146)에서 클라이언트 프로그램을 구동하여 게이트웨이B(100B)의 VPN처리부(146')에 터널 생성을 요청한다. 사설망간의 터널 생성 요청 메시지에는 사설망A(200A)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용되어질 네트워크 주소들(10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, ...)이 포함된다. 이때, 사설망A(200A)와 사설망B(200B)의 네트워크 주소가 서로 다르면, VPN터널 내에서 NAT가 필요 없으므로 사설망A의 주소 (10.0.0.0/24)가 그대로 선택되어지며, 사설망A와 사설망B의 확장된 네트워크 주소가 일치하는 경우에는 10.0.1.0/24, 10.0.2.0/24, ... 중에서 사용 가능한 것이 선택된다.3 is a signal flow diagram illustrating a VPN tunnel formation process of two private networks having different extended network IDs. First, the tunnel formation request page provided from the web server 147 of the gateway A 100A is used by the user of the private network A 200A to create a tunnel with the private network B 200B through the web browser 212 in the host A 210A. When the request is made, the gateway A 100A receiving the tunnel creation request between the private network A 200A and the private network B 200B is connected to the gateway B 100B from the DNS server 330 located in the Internet through the DNS processing unit 143. Obtain a public IP address (211.32.119.136). Next, the gateway A 100A requests the creation of the tunnel to the VPN processing unit 146 ′ of the gateway B 100B by driving the client program in the VPN processing unit 146. The tunnel creation request message between private networks includes the network address (10.0.0.0/24) of private network A (200A) and the network addresses (10.0.0.0/24, 10.0) to be used instead of the network address of private network A (200A) in the VPN tunnel. .1.0 / 24, 10.0.2.0/24, ...). At this time, if the network addresses of private network A (200A) and private network B (200B) are different from each other, since NAT is not required in the VPN tunnel, the address of private network A (10.0.0.0/24) is selected as it is, and private network A and private network B are If the expanded network addresses of s match, the available ones are selected from 10.0.1.0/24, 10.0.2.0/24, ...

게이트웨이B(100B)는 게이트웨이A(100A)에서 사설망간 터널 생성 요청 메시지가 전송되면, VPN처리부(146)에서 사설망간의 터널 생성 응답메시지를 게이트웨이A(100A)에 전송한다. 응답메시지에는 사설망B(200B)의 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용되어질 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망B(200B)의 네트워크주소 대신에 사용되어질 네트워크 주소들(10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, ...)이 포함된다.When the gateway B 100B transmits the private network tunnel creation request message from the gateway A 100A, the VPN processor 146 transmits the tunnel creation response message between the private networks to the gateway A 100A. The response message includes the network address (10.0.1.0/24) of private network B (200B), the network address (10.0.0.0/24) to be used instead of the network address of private network A (200A) in the VPN tunnel, and the private network within the VPN tunnel. Network addresses (10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, ...) to be used instead of the network address of B 200B are included.

응답메시지를 수신한 게이트웨이A(100A)는 사설망간의 터널 생성 ACK를 게이트웨이B(100B)에게 전송한다. ACK는 사설망A(200A)의 네트워크 주소(10.0.0.0/24), 사설망B(200B)의 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24)를 포함한다. 이때, 사설망A(200A)의 주소와 VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소가 일치하면, VPN 터널 내에서 NAT가 일어나지 않음을 의미하며, 일치하지 않으면 NAT가 일어남을 의미한다.The gateway A (100A) receiving the response message transmits the tunnel creation ACK between the private networks to the gateway B (100B). The ACK is used to replace the network address of private network A (200A) (10.0.0.0/24), the network address of private network B (200B) (10.0.1.0/24), and the network address of private network A (200A) within the VPN tunnel. Address (10.0.0.0/24), and the network address (10.0.1.0/24) to use in place of the network address of private network B 200B in the VPN tunnel. At this time, if the address of the private network A (200A) and the network address to be used instead of the network address of the private network A (200A) in the VPN tunnel match, it means that NAT does not occur in the VPN tunnel, otherwise, NAT occurs. it means.

ACK 메시지를 주고받은 후, 게이트웨이A(100A)와 게이트웨이B(100B)에는 각각 사설망 연결 관리 테이블(132,132')이 생성된다. 사설망 연결 관리 테이블(132)은 상대편 게이트웨이의 도메인 이름, 상대편 게이트웨이가 VPN 서버인지 클라이언트인지를 표시하는 항목, 사설망A(200A)의 네트워크 주소, 사설망B(200B)의 네트워크 주소, VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소, VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소 등이 포함된다.After sending and receiving an ACK message, private network connection management tables 132 and 132 'are generated in the gateway A 100A and the gateway B 100B, respectively. The private network connection management table 132 includes items indicating the domain name of the other gateway, whether the other gateway is a VPN server or a client, a network address of the private network A (200A), a network address of the private network B (200B), and a private network within the VPN tunnel. The network address to be used instead of the network address of A 200A, the network address to be used instead of the network address of private network B 200B in the VPN tunnel, and the like.

게이트웨이A(100A)가 생성하는 테이블을 살펴보면, 게이트웨이B(100B)의 도메인 이름(게이트웨이B), 게이트웨이B는 VPN 서버임을 표시하는 항목(서버), 사설망A의 네트워크 주소(10.0.0.0/24), 사설망B의 네트워크 주소(10.0.1.0/24), VPN터널 내에서 사설망A의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망B의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24) 등을 포함한다.Looking at the table generated by Gateway A (100A), the domain name (Gateway B) of Gateway B (100B), the item indicating that Gateway B is a VPN server (server), the network address of private network A (10.0.0.0/24) , The network address of Private Network B (10.0.1.0/24), the network address to use instead of Private Network A's network address within the VPN tunnel (10.0.0.0/24), and the network address to use instead of Private Network B's network address within the VPN tunnel. (10.0.1.0/24) and the like.

위와 같이 두 사설망 사이에 ACK신호가 교환되면, 게이트웨이A(100A)와 게이트웨이B(100B) 사이에 VPN터널이 형성되며, 터널 내에 PPP 연결이 생성된다. 이후, 호스트A(210A)로부터 게이트웨이A(100A)의 VPN터널 끝으로 전달되어진 패킷은 PPP 연결을 통하여 게이트웨이B(100B)의 VPN터널 끝으로 전달된다.When the ACK signal is exchanged between the two private networks as described above, a VPN tunnel is formed between the gateway A 100A and the gateway B 100B, and a PPP connection is created in the tunnel. Thereafter, the packet transferred from the host A 210A to the end of the VPN tunnel of the gateway A 100A is transferred to the end of the VPN tunnel of the gateway B 100B through the PPP connection.

도 4는 도 3의 과정에 의해 사설망A(200A)와 사설망B(200B) 사이에 형성된 터널을 통한 호스트A(210A)와 호스트B(210B) 사이의 패킷 전달과정을 설명하는 신호흐름도이다. 먼저, 사설망A(200A)의 사용자가 호스트B(210A)의 도메인 이름을 알고 있으며, 호스트A(210A)에 설치된 응용프로그램은 호스트B(210B)의 도메인 이름에 대응하는 IP주소를 알기 위하여 게이트웨이A(100A)에게 DNS문의를 전송한다. 그러면 게이트웨이A(100A)의 DNS처리부(143)는 먼저 사설망 연결 관리 테이블(132)을 조사한다. 그리고 사설망A(200A)와 사설망B(200B) 사이에 VPN터널이 설정되어 있으면, 게이트웨이B(100B)에게 호스트B(210B)에 대한 DNS 문의를 보낸다.4 is a signal flow diagram illustrating a packet transfer process between the host A 210A and the host B 210B through the tunnel formed between the private network A 200A and the private network B 200B by the process of FIG. 3. First, the user of the private network A (200A) knows the domain name of the host B (210A), the application installed in the host A (210A) is the gateway A to know the IP address corresponding to the domain name of the host B (210B) Send DNS inquiry to 100A. Then, the DNS processing unit 143 of the gateway A 100A first examines the private network connection management table 132. If a VPN tunnel is established between the private network A (200A) and the private network B (200B), the DNS query for the host B (210B) is sent to the gateway B (100B).

위와 같이 게이트웨이A(100A)에서 게이트웨이B(100B)에 DNS 문의가 전송되면, 게이트웨이B(100B)의 DNS처리부(143')는 호스트B(210B)의 네트워크 주소 대신에 VPN터널 내에서 호스트B(210B)를 표시하는 네트워크 주소(10.0.1.5)를 내용으로 응답메시지를 게이트웨이A(100A)에 전송한다.When the DNS query is transmitted from the gateway A (100A) to the gateway B (100B) as described above, the DNS processing unit 143 'of the gateway B (100B) is the host B (in the VPN tunnel instead of the network address of the host B (210B)). A response message is sent to the gateway A 100A with the network address (10.0.1.5) indicating 210B).

게이트웨이A(100A)는 게이트웨이B(100B)의 DNS처리부(143')로부터호스트B(210B)에 대해 응답된 사설IP주소(10.0.1.5)를 호스트A(210A)에게 포워딩한다.Gateway A (100A) forwards the private IP address (10.0.1.5) responded to host B (210B) from DNS processing unit 143 'of gateway B (100B) to host A (210A).

호스트A(210A)는 게이트웨이A(100A)로부터 호스트B(210B)의 사설IP주소가 수신되면, 목적지 주소에는 수신된 사설IP주소(10.0.1.5)를, 출발지 주소에는 호스트A(210A)의 사설IP 주소(10.0.04)를 기입하여 패킷을 게이트웨이A(100A)에 전송한다.Host A 210A receives the private IP address of Host B 210B from Gateway A 100A, receives the received private IP address (10.0.1.5) for the destination address and the private address of Host A 210A for the source address. Enter the IP address (10.0.04) and send the packet to Gateway A (100A).

게이트웨이A(100A)는 호스트A(210A)로부터 패킷이 수신되면, 수신한 패킷을 라우팅 테이블(145)과 포워딩 설정을 참조하여 게이트웨이A(100A)의 터널 끝으로 패킷을 전달한다. 게이트웨이A(100A)와 게이트웨이B(100B) 사이의 VPN터널 내에는 PPP 연결이 설정되어 있으므로 게이트웨이A(100A)의 터널 끝으로 보내진 패킷은 게이트웨이B(100B)의 터널 끝으로 전달된다.When the packet is received from the host A 210A, the gateway A 100A forwards the received packet to the end of the tunnel of the gateway A 100A with reference to the routing table 145 and the forwarding setting. Since the PPP connection is established in the VPN tunnel between the gateway A 100A and the gateway B 100B, the packet sent to the tunnel end of the gateway A 100A is delivered to the tunnel end of the gateway B 100B.

게이트웨이B(100B)는 VPN터널을 통해 패킷이 전달되면, 라우팅 테이블(145')과 포워딩 설정을 참조하여 호스트B(210B)에게 패킷을 포워딩한다.When the packet is delivered through the VPN tunnel, the gateway B 100B forwards the packet to the host B 210B with reference to the routing table 145 'and the forwarding setting.

호스트B(210B)는 패킷이 수신되면, 출발지 주소에 호스트B(210B)의 사설IP 주소(10.0.1.5)를, 목적지 주소에 호스트A(210A)의 사설IP 주소(10.0.04)를 기입하여 응답을 보낸다.When a packet is received, Host B 210B enters the private IP address (10.0.1.5) of Host B 210B in the source address and the private IP address (10.0.04) of Host A 210A in the destination address. Send a response.

이후, 호스트A(210A)와 호스트B(210B)는 사설망A(200A) 및 사설망B(200B) 사이에 형성된 터널을 통해 위 패킷 전달과정을 반복하게 된다.Thereafter, the host A 210A and the host B 210B repeat the packet forwarding process through the tunnel formed between the private network A 200A and the private network B 200B.

도 5는 확장된 네트워크ID가 서로 일치하는 두 사설망의 VPN터널 형성과정을 설명하는 신호흐름도이다. 먼저, 게이트웨이A(100A)의 웹서버(147)에서 제공되는터널형성요청페이지를 사설망A(200A)의 사용자가 호스트A(210A)에서 웹브라우저(212)를 통해 사설망B(200B)와의 터널 생성을 요청하면, 사설망A(200A)와 사설망B(200B) 사이의 터널 생성 요청을 받은 게이트웨이A(100A)는 DNS처리부(143)를 통해 인터넷에 위치한 DNS서버(330)로부터 게이트웨이B(100B)의 공인IP주소(211.32.119.136)를 얻는다. 다음으로 게이트웨이B(100B)의 공인IP주소를 얻은 게이트웨이A(100A)는 VPN처리부(146)에서 클라이언트 프로그램을 구동하여 게이트웨이B(100B)의 VPN처리부(146')에 사설망간 터널 생성을 요청한다. 사설망간의 터널 생성 요청메시지에는 사설망A(200A)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용되어질 네트워크 주소들(10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, ...)이 포함된다.FIG. 5 is a signal flow diagram illustrating a process of forming a VPN tunnel of two private networks in which extended network IDs coincide with each other. First, the tunnel formation request page provided by the web server 147 of the gateway A 100A is created by the user of the private network A 200A in the tunnel with the private network B 200B through the web browser 212 in the host A 210A. In response to the request, the gateway A (100A) receiving the tunnel creation request between the private network A (200A) and the private network B (200B) from the DNS server 330 located in the Internet through the DNS processing unit 143 of the gateway B (100B) Obtain a public IP address (211.32.119.136). Next, the gateway A 100A, which has obtained the public IP address of the gateway B 100B, requests the VPN processing unit 146 'of the gateway B 100B to create a private network tunnel by running the client program in the VPN processing unit 146. . The tunnel creation request message between private networks includes the network address (10.0.0.0/24) of private network A (200A) and the network addresses (10.0.0.0/24, 10.0) to be used instead of the network address of private network A (200A) in the VPN tunnel. .1.0 / 24, 10.0.2.0/24, ...).

게이트웨이B(100B)의 VPN처리부(146')는 게이트웨이A(100A)로부터 터널 생성 요청이 수신되면, 사설망간의 터널 생성 요청에 대한 응답메시지를 게이트웨이A(100A)에 전송한다. 응답메시지에는 사설망B(200B)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용되어질 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용되어질 네트워크 주소들(10.0.2.0/24, 10.0.3.0/24, 10.0.4.0/24, ...)이 포함된다.When the VPN processing unit 146 ′ of the gateway B 100B receives the tunnel creation request from the gateway A 100A, the VPN processing unit 146 ′ transmits a response message for the tunnel creation request between the private networks to the gateway A 100A. The response message includes the network address (10.0.0.0/24) of private network B (200B), the network address (10.0.1.0/24) to be used instead of the network address of private network A (200A) in the VPN tunnel, and the private network within the VPN tunnel. Network addresses (10.0.2.0/24, 10.0.3.0/24, 10.0.4.0/24, ...) to be used instead of the network address of B 200B are included.

게이트웨이A(100A)는 게이트웨이B(100B)로부터 응답메시지를 수신하면, 사설망간의 터널 생성 ACK를 게이트웨이B(100B)에게 보낸다. ACK는 사설망A(200A)의 네트워크 주소(10.0.0.0/24), 사설망B(200B)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(100A)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24), VPN터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.2.0/24)를 포함한다. 사설망A(200A)의 주소와 VPN터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소가 일치하지 않으므로, 게이트웨이A(100A)는 NAT프로토콜에 의해 주소변환이 사용될 것으로 인식한다.When the gateway A 100A receives the response message from the gateway B 100B, the gateway A 100A sends a tunnel creation ACK between the private networks to the gateway B 100B. ACK is used instead of the network address of private network A (200A) (10.0.0.0/24), the network address of private network B (200B) (10.0.0.0/24), and the network address of private network A (100A) within the VPN tunnel. Address (10.0.1.0/24), and the network address (10.0.2.0/24) to be used in place of the network address of the private network B 200B in the VPN tunnel. Since the address of the private network A 200A and the network address to be used instead of the network address of the private network A 200A in the VPN tunnel do not match, the gateway A 100A recognizes that address translation will be used by the NAT protocol.

ACK 메시지를 주고받은 후, 게이트웨이A(100A)와 게이트웨이B(100B)에는 각각 사설망 연결 관리 테이블(132,132')이 생성된다. 사설망 연결 관리 테이블(132)은 상대편 게이트웨이(100)의 도메인 이름, 상대편 게이트웨이(100)가 VPN 서버인지 클라이언트인지를 표시하는 항목, 사설망A(200A)의 네트워크 주소, 사설망B(200B)의 네트워크 주소, VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소, VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소 등을 포함한다.After sending and receiving an ACK message, private network connection management tables 132 and 132 'are generated in the gateway A 100A and the gateway B 100B, respectively. The private network connection management table 132 includes items indicating the domain name of the other gateway 100, an item indicating whether the other gateway 100 is a VPN server or a client, a network address of the private network A 200A, and a network address of the private network B 200B. , A network address to be used instead of the network address of the private network A 200A in the VPN tunnel, and a network address to be used instead of the network address of the private network B 200B in the VPN tunnel.

게이트웨이A(100A)가 생성하는 테이블을 살펴보면, 게이트웨이B(100B)의 도메인 이름(게이트웨이B), 게이트웨이B는 VPN 서버임을 표시하는 항목(서버), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), 사설망B(200B)의 네트워크 주소(10.0.0.0/24), VPN터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24), VPN터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.2.0/24) 등을 포함한다.Looking at the table generated by Gateway A (100A), the domain name (Gateway B) of Gateway B (100B), the item indicating that Gateway B is a VPN server (server), and the network address (10.0.0.0) of private network A (200A). / 24), the network address of private network B (200B) (10.0.0.0/24), the network address (10.0.1.0/24) to use instead of the network address of private network A (200A) in the VPN tunnel, and the private network within the VPN tunnel. A network address (10.0.2.0/24) or the like to be used instead of the network address of the B 200B.

위와 같은 과정을 통해 게이트웨이A(100A)와 게이트웨이B(100B) 사이는 VPN터널이 형성되며, 터널 내에 PPP 연결이 생성된다. 이후, 게이트웨이A(100A)의VPN 터널 끝으로 전달되어진 패킷은 PPP 연결을 통하여 게이트웨이B(100B)의 VPN 터널 끝으로 전달된다.Through the above process, a VPN tunnel is formed between the gateway A 100A and the gateway B 100B, and a PPP connection is generated in the tunnel. Thereafter, the packet delivered to the end of the VPN tunnel of the gateway A 100A is delivered to the end of the VPN tunnel of the gateway B 100B through the PPP connection.

VPN 터널이 생성되고, PPP 연결이 끝나면 게이트웨이A(100A)는 사설망 연결 관리 테이블(132)을 참조하여 VPN 터널의 게이트웨이A(100A)에 NAT를 설정한다. NAT를 설정하면, 패킷이 사설망A(200A)에서 게이트웨이A(100A)를 지나 VPN터널로 보내질 때, 출발지 주소 10.0.0.x는 10.0.1.x로 변환되며, 패킷이 VPN터널로부터 게이트웨이A(100A)를 지나 사설망A로 보내질 때 목적지 주소 10.0.1.y가 10.0.0.y로 변환된다. 또한 게이트웨이B도 VPN 터널의 게이트웨이B 쪽에 NAT를 설정한다.After the VPN tunnel is created and the PPP connection is completed, the gateway A 100A sets up NAT in the gateway A 100A of the VPN tunnel with reference to the private network connection management table 132. When NAT is set, when a packet is sent from the private network A (200A) through the gateway A (100A) to the VPN tunnel, the source address 10.0.0.x is converted to 10.0.1.x, and the packet is transferred from the VPN tunnel to Gateway A. When it passes over (100A) to private network A, the destination address 10.0.1.y is converted to 10.0.0.y. Gateway B also sets up NAT on the gateway B side of the VPN tunnel.

도 6은 도 5의 과정에 의해 사설망A와 사설망B 사이에 형성된 터널을 통한 호스트A(210A)와 호스트B(210B) 사이의 패킷 전달과정을 설명하는 신호흐름도이다. 먼저 사설망A(200A)의 사용자가 호스트B(210B)의 도메인 이름을 알고 있으며, 호스트A(210A)에 설치된 응용프로그램(214)이 게이트웨이A(100A)에게 호스트B(210B)에 대한 DNS를 문의하면, 게이트웨이A(100A)의 DNS처리부(143)는 사설망 연결 관리 테이블(132)을 조사한다. 그리고 사설망A(200A)와 사설망B(200B) 사이에 VPN터널이 설정되어 있으면, 터널을 통과하는 패킷에 대한 NAT가 필요한 것으로 인식되어 있으므로, 게이트웨이B(100B)에게 호스트B(210B)의 VPN터널에서 사용될 사설IP주소를 알기 위하여 DNS문의를 게이트웨이B에게 전송한다.FIG. 6 is a signal flow diagram illustrating a packet forwarding process between the host A 210A and the host B 210B through the tunnel formed between the private network A and the private network B by the process of FIG. 5. First, a user of private network A 200A knows the domain name of host B 210B, and an application 214 installed on host A 210A queries gateway A 100A for DNS for host B 210B. Then, the DNS processing unit 143 of the gateway A 100A examines the private network connection management table 132. If a VPN tunnel is established between the private network A (200A) and the private network B (200B), it is recognized that NAT for the packet passing through the tunnel is required. In order to know private IP address to be used in DNS, send DNS query to Gateway B.

게이트웨이B(100B)의 DNS처리부(143')는 호스트B(210B)에 대한 문의가 수신되면, 호스트B(210B)의 VPN터널 내에서 사용되는 IP주소(10.0.2.5)를 게이트웨이A(100A)에 응답메시지를 전송하며, 게이트웨이A(100A)는 이를호스트A(210A)에게 재전송한다.When the DNS processing unit 143 'of the gateway B 100B receives an inquiry about the host B 210B, the DNS processing unit 143' receives the IP address (10.0.2.5) used in the VPN tunnel of the host B 210B. Sends a response message, and gateway A (100A) retransmits it to host A (210A).

이후, 호스트A(210A)는 호스트B(210B)로 패킷을 보내기 위하여 패킷을 게이트웨이A((100A)에 전송한다. 패킷의 목적지 주소는 10.0.2.5가 기입되며, 출발지 주소는 10.0.0.4가 기입된다.Host A 210A then sends the packet to Gateway A (100A) to send the packet to Host B 210B. The destination address of the packet is 10.0.2.5 and the source address is 10.0.0.4. do.

게이트웨이A(100A)는 호스트A(210A)로부터 호스트B(210B)를 목적지로 하는 패킷이 수신되면, 라우팅 테이블과 포워딩 설정을 참조하여 게이트웨이A(100A)의 터널 끝으로 패킷을 전달한다. 그러면 게이트웨이A(100A)의 VPN터널 끝에는 NAT가 설정되어 있으므로, 출발지 주소 10.0.0.4는 10.0.1.4로 변환된다. 그리고 게이트웨이A(100A)와 게이트웨이B((100B) 사이의 터널에는 PPP 연결이 설정되어 있으므로, NAT를 통해 출발지 주소가 변환된 패킷은 게이트웨이B(100B)의 터널 끝으로 전송된다.When a packet destined for the host B 210B is received from the host A 210A, the gateway A 100A forwards the packet to the end of the tunnel of the gateway A 100A with reference to the routing table and the forwarding setting. Then, since NAT is set at the end of the VPN tunnel of the gateway A 100A, the source address 10.0.0.4 is converted to 10.0.1.4. Since the PPP connection is established in the tunnel between the gateway A (100A) and the gateway B (100B), the packet whose source address is converted through NAT is transmitted to the end of the tunnel of the gateway B (100B).

게이트웨이B(100B)는 위와 같이 출발지 주소가 NAT를 통해 변경되어 게이트웨이B(100B)의 터널 끝으로 전달된 패킷에 대해 게이트웨이B(100B)의 VPN 터널 끝에 설정된 NAT를 통해 목적지 주소 10.0.2.5를 10.0.0.5로 변환시킨다. 이렇게 NAT를 통해 목적지 주소가 변환된 패킷은 라우팅 테이블과 포워딩 설정을 참조하여 호스트B(210B)에게 전달된다.Gateway B (100B) uses the NAT set at the VPN tunnel end of Gateway B (100B) to forward the destination address 10.0.2.5 to 10.0. Convert it to .0.5. The packet whose destination address is converted through NAT is forwarded to the host B 210B by referring to the routing table and the forwarding setting.

이후, 호스트B(210B)는 호스트A(210A)로 응답을 보내며, 위 패킷 전달과정의 반복에 의해 통신이 이루어진다.Thereafter, the host B 210B sends a response to the host A 210A, and communication is performed by repetition of the packet forwarding process.

도 7은 사설망A의 확장된 네트워크ID가 사설망B의 확장된 네트워크ID에 포함되는 경우의 두 사설망간 VPN터널 형성과정을 설명하는 신호흐름도이다. 먼저, 게이트웨이A(100A)의 웹서버(147)에서 제공되는 터널형성요청페이지를 사설망A(200A)의 사용자가 호스트A(210A)에서 웹브라우저(212)를 통해 불러온 후, 사설망B(200B) 에 대해 터널 생성을 요청하면, 사설망A(200A)와 사설망B(200B) 사이의 터널 생성 요청을 받은 게이트웨이A(100A)는 DNS처리부(143)를 통해 인터넷에 위치한 DNS서버(330)로부터 게이트웨이B(100B)의 공인IP주소(211.32.119.136)를 얻는다. 다음으로 게이트웨이B(100B)의 공인IP주소를 얻은 게이트웨이A(100A)는 VPN처리부(146)에서 클라이언트 프로그램을 구동하여 게이트웨이B(100B)의 VPN처리부에 사설망간 터널 생성을 요청한다. 사설망간의 터널 생성을 요청하는 메시지에는 사설망A의 네트워크 주소(10.0.0.0/24), VPN터널 내에서 사설망A의 네트워크 주소 대신에 사용될 네트워크 주소들(10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, ...)이 포함된다.FIG. 7 is a signal flow diagram illustrating a process of forming a VPN tunnel between two private networks when the extended network ID of private network A is included in the extended network ID of private network B. Referring to FIG. First, the tunnel formation request page provided by the web server 147 of the gateway A 100A is read by the user of the private network A 200A from the host A 210A through the web browser 212, and then the private network B 200B. If a request is made to create a tunnel, the gateway A (100A) receiving the tunnel creation request between the private network A (200A) and the private network B (200B) is a gateway from the DNS server 330 located in the Internet through the DNS processing unit 143. Obtain a public IP address of B (100B) (211.32.119.136). Next, the gateway A 100A having obtained the public IP address of the gateway B 100B drives the client program in the VPN processing unit 146 to request the private network tunnel generation to the VPN processing unit of the gateway B 100B. The message requesting the creation of a tunnel between private networks includes the network address of private network A (10.0.0.0/24) and the network addresses (10.0.0.0/24, 10.0.1.0/24, etc.) to be used instead of the network address of private network A in the VPN tunnel. 10.0.2.0/24, ...).

게이트웨이B(100B)는 게이트웨이A(100A)로부터 터널 형성 요청메시지가 수신되면, VPN처리부(146')에서 사설망간의 터널 생성 응답메시지를 보낸다. 응답메시지는 사설망B의 네트워크 주소(10.0.0.0/16), VPN 터널 내에서 사설망A의 네트워크 주소 대신에 사용될 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사설망B의 네트워크 주소 대신에 사용될 네트워크 주소들(10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16, ...)을 포함한다.When the gateway B 100B receives the tunnel formation request message from the gateway A 100A, the VPN processing unit 146 'sends a tunnel creation response message between the private networks. The response message will be used instead of Private Network B's network address (10.0.0.0/16), Network address to be used in place of Private Network A's network address within the VPN tunnel (10.0.1.0/24), and Private Network B's network address within the VPN tunnel. Network addresses (10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16, ...).

게이트웨이A(100A)는 게이트웨이B(100B)로부터 응답메시지가 수신되면, 사설망간의 터널 생성 ACK를 게이트웨이B(100B)에 전송한다. ACK는 사설망A의 네트워크 주소(10.0.0.0/24), 사설망B의 네트워크 주소(10.0.0.0/16), VPN터널 내에서 사설망A의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24), VPN 터널 내에서사설망B의 네트워크 주소 대신에 사용할 네트워크 주소(10.1.0.0/24)를 포함한다. 사설망A의 주소와 VPN 터널 내에서 사설망A의 네트워크 주소 대신에 사용할 네트워크 주소가 일치하지 않으므로, 게이트웨이A(100A)는 NAT가 사용되어야 할 것으로 인식한다.When the gateway A 100A receives a response message from the gateway B 100B, the gateway A 100A transmits a tunnel creation ACK between the private networks to the gateway B 100B. ACK is the network address of private network A (10.0.0.0/24), the network address of private network B (10.0.0.0/16), the network address (10.0.1.0/24) to use in place of the private network A network address in the VPN tunnel, Include the network address (10.1.0.0/24) to use in place of private network B's network address in the VPN tunnel. Since the address of the private network A and the network address to be used instead of the network address of the private network A in the VPN tunnel do not match, the gateway A 100A recognizes that NAT should be used.

ACK 메시지를 주고받은 후, 게이트웨이A(100A)와 게이트웨이B(100B)에는 사설망 연결 관리 테이블(132,132')이 생성된다. 게이트웨이A(100A)가 생성하는 테이블(132)을 살펴보면, 게이트웨이B(100B)의 도메인 이름, 게이트웨이B(100B)는 VPN 서버임을 표시하는 항목, 사설망A의 네트워크 주소(10.0.0.0/24), 사설망B의 네트워크 주소(10.0.0.0/16), VPN 터널 내에서 사설망A의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사설망B의 네트워크 주소 대신에 사용할 네트워크 주소(10.1.0.0/16) 등을 포함한다.After exchanging the ACK message, private network connection management tables 132 and 132 'are generated in the gateway A 100A and the gateway B 100B. Referring to the table 132 generated by the gateway A 100A, the domain name of the gateway B 100B, the item indicating that the gateway B 100B is the VPN server, the network address of the private network A (10.0.0.0/24), The network address of Private Network B (10.0.0.0/16), the network address to use instead of Private Network A's network address within the VPN tunnel (10.0.1.0/24), and the network address to use instead of Private Network B's network address within the VPN tunnel ( 10.1.0.0/16), and the like.

위와 같은 과정을 통해 게이트웨이A(100A)와 게이트웨이B(100B) 사이의 VPN 터널 내에 PPP 연결이 생성된다. 이후, 게이트웨이A(100A)의 VPN 터널 끝으로 전달되어진 패킷은 PPP 연결을 통하여 게이트웨이B(100B)의 VPN 터널 끝으로 전달된다.Through the above process, a PPP connection is generated in the VPN tunnel between the gateway A 100A and the gateway B 100B. Thereafter, the packet delivered to the end of the VPN tunnel of the gateway A 100A is delivered to the end of the VPN tunnel of the gateway B 100B through the PPP connection.

다음으로, VPN 터널이 생성되고 PPP 연결이 끝나면 게이트웨이A(100A)는 사설망 연결 관리 테이블(132)을 참조하여 VPN 터널의 게이트웨이A(100A) 쪽에 NAT를 설정한다. NAT를 설정하면 패킷이 사설망A에서 게이트웨이A(100A)를 지나 VPN 터널로 보내질 때, 출발지 주소 10.0.0.x는 10.0.1.x로 변환되며, 패킷이 VPN 터널로부터 게이트웨이A(100A)를 지나 사설망A로 보내질 때 목적지 주소 10.0.1.y가 10.0.0.y로 변환된다. 마찬가지로, 게이트웨이B(100B)도 VPN 터널의게이트웨이B(100B) 쪽에 NAT를 설정한다.Next, when the VPN tunnel is created and the PPP connection is completed, the gateway A 100A sets NAT on the gateway A 100A side of the VPN tunnel with reference to the private network connection management table 132. If NAT is enabled, when a packet is sent from VPN A through Gateway A (100A) to the VPN tunnel, the source address 10.0.0.x will be converted to 10.0.1.x, and the packet will be routed from the VPN tunnel to Gateway A (100A). When it is sent to private network A, the destination address 10.0.1.y is converted to 10.0.0.y. Similarly, gateway B 100B also establishes NAT on the gateway B 100B side of the VPN tunnel.

위와 같이 게이트웨이A(100A) 및 게이트웨이B(100B) 사이에 형성된 VPN터널 양단에 NAT가 설정되면, 이후, 호스트A(210A)와 호스트B(210B)는 도 6에 보인 데이터 패킷 전달과정을 통해 상호 통신을 할 수 있게 된다.When NAT is set at both ends of the VPN tunnel formed between the gateway A (100A) and the gateway B (100B) as described above, the host A (210A) and the host B (210B) mutually through the data packet delivery process shown in FIG. Communication is possible.

이하 본 발명의 또다른 실시예에 따른 망접속장치에 대해 설명한다.Hereinafter, a network connection apparatus according to another embodiment of the present invention will be described.

도 8은 본 발명의 또다른 실시예에 따른 게이트웨이의 블록도이다. 게이트웨이(100)는 공중망 인터페이스(110), 사설망 인터페이스(120), 메모리부(130) 및 제어부(140)를 포함한다.8 is a block diagram of a gateway according to another embodiment of the present invention. The gateway 100 includes a public network interface 110, a private network interface 120, a memory unit 130, and a controller 140.

인터페이스(110), 사설망 인터페이스(120) 및 메모리부(130)의 동작과 기능은 상기한 바와 같다. 제어부(140)는 NAT/NAPT처리부(141), IP(Internet Protocol)처리부(142), DNS(Domain Name Service)처리부(143), DHCP(Dynamic Host Configuration Protocol)처리부(144), 라우팅부(145), HTIP처리부(146A), VPN처리부(146B), 웹/미들웨어 서버(147), 암호화처리부(148), 그리고 사용자인증처리부(149)를 포함한다.Operations and functions of the interface 110, the private network interface 120, and the memory 130 are as described above. The control unit 140 includes a NAT / NAPT processing unit 141, an IP (Internet Protocol) processing unit 142, a domain name service (DNS) processing unit 143, a dynamic host configuration protocol (DHCP) processing unit 144, and a routing unit 145. ), The HTIP processing unit 146A, the VPN processing unit 146B, the web / middleware server 147, the encryption processing unit 148, and the user authentication processing unit 149.

NAT/NAPT처리부(141), IP(Internet Protocol)처리부(142), DNS(Domain Name Service)처리부(143), DHCP(Dynamic Host Configuration Protocol)처리부(144), 라우팅부(145), 웹/미들웨어 서버(147), 암호화처리부(148), 그리고 사용자인증처리부(149)의 동작과 기능은 상기한 바와 같다.NAT / NAPT processing unit 141, IP (Internet Protocol) processing unit 142, DNS (Domain Name Service) processing unit 143, Dynamic Host Configuration Protocol (DHCP) processing unit 144, routing unit 145, web / middleware The operations and functions of the server 147, the encryption processing unit 148, and the user authentication processing unit 149 are as described above.

한편, HTIP처리부(146A)는 서로 다른 사설망 간에 터널을 생성하는데 필요한 변수 들을 협상한 후, 이를 이용하여 VPN처리부(146B) 및 NAT/NAPT처리부(141)를제어한다. 이 경우 필요한 변수로는 VPN 터널 형성시 사용되는 VPN 프로토콜의 종류, 자체 사설망의 네트워크 주소, 타사설망의 네트워크 주소, VPN터널 내에서 사용될 자체 사설망의 네트워크 주소, VPN터널 내에서 사용될 타사설망의 네트워크 주소 등을 포함한다.On the other hand, the HTIP processing unit 146A negotiates parameters necessary for creating a tunnel between different private networks, and then controls the VPN processing unit 146B and the NAT / NAPT processing unit 141 by using the same. In this case, the necessary parameters include the type of VPN protocol used to create the VPN tunnel, the network address of its own private network, the network address of the third party's network, the network address of its own private network to be used within the VPN tunnel, and the network address of the third party's network to be used within the VPN tunnel. And the like.

HTIP처리부(146A)는 사설망 내부의 사설 IP주소, VPN 프로토콜의 종류에 관계없이 복수의 사설망 사이에서 사설망 내의 통신 기기가 서로 직접 통신할 수 있도록 한다. 한편, 상기 협상을 통해 얻은 변수들이나 생성된 사설망간 VPN 터널의 목록은 메모리부(130)에 저장된다. 즉, 다른 사설망과의 연결에 필요한 정보들은 사설망 연결 관리 테이블을 생성하여 관리하며, 테이블로 생성된 데이터들은 메모리부(130)에 저장된다.The HTIP processing unit 146A enables communication devices in the private network to directly communicate with each other between a plurality of private networks regardless of the type of private IP address and VPN protocol in the private network. Meanwhile, the variables obtained through the negotiation or the list of generated VPN tunnels between the private networks are stored in the memory unit 130. That is, information necessary for connection with other private networks is generated by managing a private network connection management table, and the data generated as a table is stored in the memory unit 130.

즉, HTIP처리부(146A)는 사설망 내부에 위치한 호스트로부터 WEB/Middleware서버(147)를 통해 다른 사설망과의 연결이 요청되면, 타사설망과 통신하여 VPN터널을 형성하기 위한 변수들을 협상하고, 상기 협상에 따라 VPN 터널을 생성하도록 VPN처리부(146B)를 제어하며, 사설망의 네트워크 주소에 따라 VPN터널의 끝에 NAT를 설정하도록 NAT/NAPT처리부(141)를 제어한다. 사설망 연결 관리 테이블은 사용되는 VPN 프로토콜, 자체 사설망의 네트워크 주소, 타사설망의 네트워크 주소, VPN터널 내에서 사용될 자체 사설망의 네트워크 주소, VPN터널 내에서 사용될 타사설망의 네트워크 주소를 포함하며, 상대 사설망 게이트웨이의 도메인 이름 및 상대 사설망 게이트웨이의 VPN 동작에 따른 서버/클라이언트 상태 표시 항목을 더 포함할 수 있다.That is, when the HTIP processing unit 146A is requested to connect with another private network through the WEB / Middleware server 147 from a host located inside the private network, the HTIP processing unit 146A negotiates variables for forming a VPN tunnel by communicating with a third party network and negotiates the negotiation. Control the VPN processing unit 146B to create a VPN tunnel, and control the NAT / NAPT processing unit 141 to set NAT at the end of the VPN tunnel according to the network address of the private network. The private network connection management table contains the VPN protocol used, the network address of its own private network, the network address of the third party's network, the network address of its own private network to be used within the VPN tunnel, and the network address of the third party's network to be used within the VPN tunnel. The server may further include a server / client status display item according to a VPN operation of a domain name and a counterpart private network gateway.

VPN처리부(146B)는 인터넷에 위치한 호스트에 대하여 VPN서버로 동작하며, 다른 사설망과의 연결이 가능하도록 VPN서버 또는 VPN클라이언트로 동작한다. 또한, HTIP처리부(146A)는 타 사설망의 망접속장치에 위치한 HTIP처리부(146A')와 통신하여 협상을 완료한 후 VPN처리부(146B)를 제어하여 서로 다른 사설망 사이에 VPN 터널이 형성되도록 한다.The VPN processing unit 146B operates as a VPN server for a host located on the Internet, and operates as a VPN server or a VPN client to enable connection with other private networks. In addition, the HTIP processing unit 146A communicates with the HTIP processing unit 146A 'located in another network connection device to complete the negotiation, and then controls the VPN processing unit 146B to form VPN tunnels between different private networks.

위와 같은 게이트웨이는 타사설망과 VPN터널을 형성할 때, 다음과 같은 3가지 경우에 따라 대응되는 동작을 수행한다. 상기한 세 가지의 경우, 즉 첫째, 사설망A(200A)와 사설망B(200B)의 확장된 네트워크 ID(네트워크 ID와 서브넷 마스크의 곱)가 서로 다른 경우(case1), 둘째, 사설망A(200A)와 사설망B(200B)의 확장된 네트워크 ID가 서로 일치하는 경우(case2) 및 셋째, 사설망A의 네트워크ID가 사설망B의 네트워크ID에 포함되는 경우(case3)에 대해서 도 1을 참조하여, 위 세가지 경우에 따른 두 사설망 사이의 VPN터널 형성 및 패킷전달과정을 설명한다.When the above gateway forms a VPN tunnel with a third-party network, it performs corresponding operations according to the following three cases. In the above three cases, namely, first, when the extended network ID (the product of the network ID and the subnet mask) of the private network A (200A) and the private network B (200B) is different (case1), and the second, the private network A (200A) Referring to FIG. 1 for the case where the extended network IDs of the and private network B 200B coincide with each other (case2) and the third case, the network ID of the private network A is included in the network ID of the private network B (case3), In some cases, the process of VPN tunnel formation and packet delivery between two private networks will be explained.

도 9는, 확장된 네트워크ID가 서로 다른 두 사설망의 VPN터널 형성과정을 설명하는 신호흐름도이다. 먼저, 게이트웨이A(100A)의 웹서버(147)에서 제공되는 터널형성요청페이지를 사설망A(200A)의 사용자가 호스트A(210A)에서 웹브라우저 (212)를 통해 사설망B(200B)와의 터널 생성을 요청하면, 사설망A(200A)와 사설망B(200B) 사이의 터널 생성 요청을 받은 게이트웨이A(100A)는 DNS처리부(143)를 통해 인터넷에 위치한 DNS 서버(330)로부터 게이트웨이B(100B)의 공인IP주소(211.32.119.136)를 얻는다.9 is a signal flow diagram illustrating a VPN tunnel formation process of two private networks having different extended network IDs. First, the tunnel formation request page provided from the web server 147 of the gateway A 100A is used by the user of the private network A 200A to create a tunnel with the private network B 200B through the web browser 212 in the host A 210A. When the request is made, the gateway A 100A receiving the tunnel creation request between the private network A 200A and the private network B 200B is connected to the gateway B 100B from the DNS server 330 located in the Internet through the DNS processing unit 143. Obtain a public IP address (211.32.119.136).

다음으로 게이트웨이A(100A)는 HTIP처리부(146A)에서 HTIPD 프로그램을 구동하여 게이트웨이B(100B)의 HTIP처리부(146A')에 터널 생성을 요청한다. 사설망간의 터널 생성 요청 메시지에는 사용할 VPN 프로토콜(예를 들면, L2TP), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용되어질 네트워크 주소들(10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, ...)이 포함된다. 이때, 사설망A(200A)와 사설망B(200B)의 네트워크 주소가 서로 다르거나, 사설망B(200B)와 제 3의 사설망을 VPN 터널로 연결하는데 사설망A(200A)의 네트워크 주소가 사용되지 않고 있으면, VPN터널 내에서 NAT가 필요 없으므로 사설망A의 주소 (10.0.0.0/24)가 그대로 선택되어지며, 사설망A와 사설망B의 확장된 네트워크 주소가 일치하는 경우에는 10.0.1.0/24, 10.0.2.0/24, ... 중에서 사용 가능한 것이 선택된다.Next, the gateway A 100A drives the HTIPD program in the HTIP processing unit 146A and requests the tunnel generation from the HTIP processing unit 146A 'of the gateway B 100B. The tunnel creation request message between private networks should be used instead of the VPN protocol to be used (eg L2TP), the network address of private network A (200A) (10.0.0.0/24), and the network address of private network A (200A) within the VPN tunnel. Network addresses (10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, ...) are included. At this time, if the network addresses of the private network A (200A) and private network B (200B) is different, or if the network address of the private network A (200A) is not used to connect the private network B (200B) and the third private network by a VPN tunnel Since the NAT is not needed in the VPN tunnel, the address of private network A (10.0.0.0/24) is selected as it is.If the extended network addresses of private network A and private network B match, 10.0.1.0/24, 10.0.2.0 The available ones are selected from / 24, ....

게이트웨이B(100B)는 게이트웨이A(100A)로부터 사설망간 터널 생성 요청 메시지를 수신하면, HTIP처리부(146A)에서 사설망간의 터널 생성 응답메시지를 게이트웨이A(100A)에 전송한다. 응답메시지에는 사용할 VPN 프로토콜(예를 들면, L2TP), 사설망B(200B)의 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용되어질 네트워크 주소들(10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, ...), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용되어질 네트워크 주소(10.0.0.0/24) 등이 포함된다.When the gateway B 100B receives the private network tunnel creation request message from the gateway A 100A, the HTIP processing unit 146A transmits the tunnel creation response message between the private networks to the gateway A 100A. The response message includes the VPN protocol to be used (e.g., L2TP), the network address of private network B (200B) (10.0.1.0/24), and the network addresses to be used instead of the network address of private network B (200B) within the VPN tunnel. 10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, ...), network address of private network A (200A) (10.0.0.0/24), network of private network A (200A) in VPN tunnel This includes the network address (10.0.0.0/24) to be used instead of the address.

응답메시지를 수신한 게이트웨이A(100A)는 사설망간의 터널 생성 ACK를 게이트웨이B(100B)에게 전송한다. ACK는 사설망A(200A)의 네트워크 주소(10.0.0.0/24),사설망B(200B)의 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24) 등을 포함한다. 이때, 사설망A(200A)의 주소와 VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소가 일치하면, VPN 터널 내에서 NAT가 일어나지 않음을 의미하며, 일치하지 않으면 NAT가 일어남을 의미한다.The gateway A (100A) receiving the response message transmits the tunnel creation ACK between the private networks to the gateway B (100B). The ACK is used instead of the network address (10.0.0.0/24) of private network A (200A), the network address of private network B (200B) (10.0.1.0/24), and the network address of private network A (200A) within the VPN tunnel. Address (10.0.0.0/24), a network address (10.0.1.0/24) to be used instead of the network address of the private network B 200B in the VPN tunnel, and the like. At this time, if the address of the private network A (200A) and the network address to be used instead of the network address of the private network A (200A) in the VPN tunnel match, it means that NAT does not occur in the VPN tunnel, otherwise, NAT occurs. it means.

ACK 메시지를 주고받은 후, 게이트웨이A(100A)와 게이트웨이B(100B)에는 각각 사설망 연결 관리 테이블(132,132')이 생성된다. 사설망 연결 관리 테이블(132)은 상대편 게이트웨이의 도메인 이름, 사용하는 VPN 프로토콜(L2TP), 사설망 간 터널 ID, 상대편 게이트웨이가 VPN 서버인지 클라이언트인지를 표시하는 항목, 사설망A(200A)의 네트워크 주소, 사설망B(200B)의 네트워크 주소, VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소, VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소 등이 포함된다.After sending and receiving an ACK message, private network connection management tables 132 and 132 'are generated in the gateway A 100A and the gateway B 100B, respectively. The private network connection management table 132 includes items indicating the domain name of the other gateway, the VPN protocol (L2TP) used, the tunnel ID between the private networks, whether the other gateway is a VPN server or a client, the network address of the private network A (200A), and the private network. The network address of B 200B, the network address to be used instead of the network address of private network A 200A in the VPN tunnel, the network address to be used instead of the network address of private network B 200B within the VPN tunnel, and the like.

게이트웨이A(100A)가 생성하는 테이블을 살펴보면, 게이트웨이B(100B)의 도메인 이름(게이트웨이B), 게이트웨이B는 VPN 서버임을 표시하는 항목(서버), 사설망A의 네트워크 주소(10.0.0.0/24), 사설망B의 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사설망A의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망B의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24) 등을 포함한다.Looking at the table generated by Gateway A (100A), the domain name (Gateway B) of Gateway B (100B), the item indicating that Gateway B is a VPN server (server), the network address of private network A (10.0.0.0/24) , The network address of Private Network B (10.0.1.0/24), the network address to use instead of Private Network A's network address within the VPN tunnel (10.0.0.0/24), and the network address to use instead of Private Network B's network address within the VPN tunnel. (10.0.1.0/24) and the like.

ACK 메시지를 받은 후, 게이트웨이B(100B)는 사용할 VPN 프로토콜에 따라VPN터널을 생성하도록 VPN처리부(146B')를 VPN 서버로 설정한다. VPN처리부(146B')를 VPN 서버로 설정하여 사설망 간의 터널 생성을 위한 준비가 완료되면, 게이트웨이B(100B)의 HTIP처리부(146A')는 사설망 간의 터널 생성 준비가 완료되었음을 알리는 READY 메시지를 게이트웨이A(100A)에 전송한다. READY 메시지는 사용 VPN 프로토콜(L2TP), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), 사설망B(200B)의 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사용할 사설망A(200A)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사용할 사설망B(200B)의 네트워크 주소(10.0.1.0/24) 등을 포함한다.After receiving the ACK message, the gateway B 100B sets the VPN processing unit 146B 'as a VPN server to generate a VPN tunnel according to the VPN protocol to be used. When the VPN processing unit 146B 'is set as the VPN server and the preparation for creating the tunnel between the private networks is completed, the HTIP processing unit 146A' of the gateway B 100B sends a READY message indicating that preparation for creating the tunnel between the private networks is completed. To 100A. The READY message includes the VPN protocol used (L2TP), the network address of private network A (200A) (10.0.0.0/24), the network address of private network B (200B) (10.0.1.0/24), and the private network A to be used within the VPN tunnel. Network address (10.0.0.0/24) of the 200A, network address (10.0.1.0/24) of the private network B 200B to be used in the VPN tunnel, and the like.

READY 메시지를 받은 후, 게이트웨이A(100A)는 사용할 VPN 프로토콜에 따라 VPN처리부(146B)를 게이트웨이B(100B)의 VPN 클라이언트로 설정한다. HTIP처리부(146A)가 VPN 클라이언트를 구동하면 게이트웨이A(100A)와 게이트웨이B(100B) 사이에는 VPN(L2TP) 터널이 생성된다.After receiving the READY message, the gateway A 100A sets the VPN processing unit 146B as the VPN client of the gateway B 100B according to the VPN protocol to be used. When the HTIP processing unit 146A drives the VPN client, a VPN (L2TP) tunnel is created between the gateway A 100A and the gateway B 100B.

위와 같이 두 사설망 사이에 ACK신호 및 READY신호가 교환되면, 게이트웨이A(100A)와 게이트웨이B(100B) 사이에 VPN터널이 생성되며, 호스트A(210A)로부터 게이트웨이A(100A)의 VPN터널 끝으로 전달되어진 패킷은 게이트웨이B(100B)의 VPN터널 끝으로 전달된다.When the ACK signal and the READY signal are exchanged between the two private networks as above, a VPN tunnel is generated between the gateway A (100A) and the gateway B (100B), and from the host A (210A) to the end of the VPN tunnel of the gateway A (100A). The forwarded packet is delivered to the end of the VPN tunnel of gateway B (100B).

도 10은 도 9의 과정에 의해 사설망A(200A)와 사설망B(200B) 사이에 형성된 터널을 통한 호스트A(210A)와 호스트B(210B) 사이의 패킷 전달과정을 설명하는 신호흐름도이다. 먼저, 사설망A(200A)의 사용자가 호스트B(210A)의 도메인 이름을 알고 있으며, 호스트A(210A)에 설치된 응용프로그램은 호스트B(210B)의 도메인 이름에 대응하는 IP주소를 알기 위하여 게이트웨이A(100A)에게 DNS문의를 전송한다. 그러면 게이트웨이A(100A)의 DNS처리부(143)는 먼저 사설망 연결 관리 테이블(132)을 조사한다. 그리고 사설망A(200A)와 사설망B(200B) 사이에 VPN터널이 설정되어 있으면, 게이트웨이B(100B)에게 호스트B(210B)에 대한 DNS 문의를 보낸다.FIG. 10 is a signal flow diagram illustrating a packet transmission process between a host A 210A and a host B 210B through a tunnel formed between the private network A 200A and the private network B 200B by the process of FIG. 9. First, the user of the private network A (200A) knows the domain name of the host B (210A), the application installed in the host A (210A) is the gateway A to know the IP address corresponding to the domain name of the host B (210B) Send DNS inquiry to 100A. Then, the DNS processing unit 143 of the gateway A 100A first examines the private network connection management table 132. If a VPN tunnel is established between the private network A (200A) and the private network B (200B), the DNS query for the host B (210B) is sent to the gateway B (100B).

위와 같이 게이트웨이A(100A)에서 게이트웨이B(100B)에 DNS 문의가 전송되면, 게이트웨이B(100B)의 DNS처리부(143')는 사설망 연결 관리 테이블(132')을 참조하여 호스트B(210B)의 네트워크 주소 대신에 VPN터널 내에서 호스트B(210B)를 표시하는 네트워크 주소(10.0.1.5)를 내용으로 응답메시지를 게이트웨이A(100A)에 전송한다. DNS 문의 및 응답 과정은 도면에는 생략한다.When the DNS query is transmitted from the gateway A 100A to the gateway B 100B as described above, the DNS processing unit 143 'of the gateway B 100B refers to the private network connection management table 132' of the host B 210B. Instead of the network address, the response message is transmitted to the gateway A 100A using the network address (10.0.1.5) indicating the host B 210B in the VPN tunnel. DNS query and response processes are omitted in the drawings.

게이트웨이A(100A)는 게이트웨이B(100B)의 DNS처리부(143')로부터 호스트B(210B)에 대해 응답된 사설IP주소(10.0.1.5)를 호스트A(210A)에게 포워딩한다. 호스트A(210A)는 게이트웨이A(100A)로부터 호스트B(210B)의 사설IP주소가 수신되면, 목적지 주소에는 수신된 사설IP주소(10.0.1.5)를, 출발지 주소에는 호스트A(210A)의 사설IP 주소(10.0.0.4)를 기입하여 패킷을 게이트웨이A(100A)에 전송한다.Gateway A (100A) forwards the private IP address (10.0.1.5) responded to host B (210B) from DNS processing unit 143 'of gateway B (100B) to host A (210A). Host A 210A receives the private IP address of Host B 210B from Gateway A 100A, receives the received private IP address (10.0.1.5) for the destination address and the private address of Host A 210A for the source address. Enter the IP address (10.0.0.4) and send the packet to Gateway A (100A).

게이트웨이A(100A)는 호스트A(210A)로부터 패킷이 수신되면, 수신한 패킷을 라우팅 테이블(145)과 포워딩 설정을 참조하여 게이트웨이A(100A)와 게이트웨이B(100B) 사이에 형성된 VPN의 끝으로 전달하며, 게이트웨이A(100A)의 터널 끝으로 보내진 패킷은 게이트웨이B(100B)의 터널 끝으로 전달된다.When a packet is received from the host A 210A, the gateway A 100A refers to the routing table 145 and the forwarding setting to the end of the VPN formed between the gateway A 100A and the gateway B 100B. The packet sent to the tunnel end of the gateway A 100A is delivered to the tunnel end of the gateway B 100B.

게이트웨이B(100B)는 VPN터널을 통해 패킷이 전달되면, 라우팅 테이블(145')과 포워딩 설정을 참조하여 호스트B(210B)에게 패킷을 포워딩한다.When the packet is delivered through the VPN tunnel, the gateway B 100B forwards the packet to the host B 210B with reference to the routing table 145 'and the forwarding setting.

호스트B(210B)는 패킷이 수신되면 이를 처리한 후, 출발지 주소에 호스트B(210B)의 사설IP 주소(10.0.1.5)를, 목적지 주소에 호스트A(210A)의 사설IP 주소(10.0.0.4)를 기입하여 응답을 보낸다.Host B 210B processes the packet when it is received, and then returns the private IP address (10.0.1.5) of Host B 210B to the source address and the private IP address (10.0.0.4) of Host A 210A to the destination address. Send a response.

이후, 호스트A(210A)와 호스트B(210B)는 사설망A(200A) 및 사설망B(200B) 사이에 형성된 터널을 통해 위 패킷 전달과정을 반복하게 된다.Thereafter, the host A 210A and the host B 210B repeat the packet forwarding process through the tunnel formed between the private network A 200A and the private network B 200B.

도 11은 확장된 네트워크ID가 서로 일치하는 두 사설망의 VPN터널 형성과정을 설명하는 신호흐름도이다. 먼저, 게이트웨이A(100A)의 웹서버(147)에서 제공되는 터널형성요청페이지를 사설망A(200A)의 사용자가 호스트A(210A)에서 웹브라우저(212)를 통해 사설망B(200B)와의 터널 생성을 요청하면, 사설망A(200A)와 사설망B(200B) 사이의 터널 생성 요청을 받은 게이트웨이A(100A)는 DNS처리부(143)를 통해 인터넷에 위치한 DNS서버(330)로부터 게이트웨이B(100B)의 공인IP주소(211.32.119.136)를 얻는다. DNS 문의 및 응답 과정은 도면에는 생략한다.FIG. 11 is a signal flow diagram illustrating a process of forming a VPN tunnel of two private networks where extended network IDs match each other. First, the tunnel creation request page provided from the web server 147 of the gateway A 100A is created by the user of the private network A 200A in the tunnel with the private network B 200B through the web browser 212 in the host A 210A. In response to the request, the gateway A (100A) receiving the tunnel creation request between the private network A (200A) and the private network B (200B) from the DNS server 330 located in the Internet through the DNS processing unit 143 of the gateway B (100B) Obtain a public IP address (211.32.119.136). DNS query and response processes are omitted in the drawings.

다음으로 게이트웨이B(100B)의 공인IP주소를 얻은 게이트웨이A(100A)는 HTIP처리부(146A)에서 HTIP 프로그램을 구동하여 게이트웨이B(100B)의 HTIP처리부(146A')에 사설망간 터널 생성을 요청한다. 사설망간의 터널 생성 요청메시지에는 사용할 VPN 프로토콜(L2TP), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용되어질 네트워크 주소들(10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, ...)이 포함된다.Next, the gateway A (100A) having obtained the public IP address of the gateway B (100B) requests the HTIP processing unit (146A ') of the gateway B (100B) to create a private network tunnel by driving the HTIP program in the HTIP processing unit (146A). . The tunnel creation request message between private networks includes the VPN protocol (L2TP) to be used, the network address of private network A (200A) (10.0.0.0/24), and the network addresses to be used instead of the network address of private network A (200A) within the VPN tunnel. 10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, ...).

게이트웨이B(100B)의 HTIP처리부(146A')는 게이트웨이A(100A)로부터 터널 생성 요청이 수신되면, 사설망간의 터널 생성 요청에 대한 응답메시지를 게이트웨이A(100A)에 전송한다. 응답메시지에는 사용할 VPN 프로토콜(L2TP), 사설망B(200B)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용되어질 네트워크 주소들(10.0.2.0/24, 10.0.3.0/24, 10.0.4.0/24, ...), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용되어질 네트워크 주소(10.0.1.0/24) 등이 포함된다.When the HTIP processing unit 146A 'of the gateway B 100B receives the tunnel creation request from the gateway A 100A, the HTIP processing unit 146A' transmits a response message for the tunnel creation request between the private networks to the gateway A 100A. The response message includes the VPN protocol to be used (L2TP), the network address of private network B (200B) (10.0.0.0/24), and the network addresses (10.0.2.0/) to be used instead of the network address of private network B (200B) within the VPN tunnel. 24, 10.0.3.0/24, 10.0.4.0/24, ...), network address of private network A (200A) (10.0.0.0/24), used in place of network address of private network A (200A) within VPN tunnel The network address to be configured (10.0.1.0/24) is included.

게이트웨이A(100A)는 게이트웨이B(100B)로부터 응답메시지를 수신하면, 사설망간의 터널 생성 ACK를 게이트웨이B(100B)에게 보낸다. ACK는 사용할 VPN 프로토콜(L2TP), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), 사설망B(200B)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(100A)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24), VPN터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.2.0/24) 등을 포함한다. 사설망A(200A)의 주소와 VPN터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소가 일치하지 않으므로, 게이트웨이A(100A)는 VPN 터널의 양단에서 NAT프로토콜에 의해 주소변환이 사용될 것으로 인식한다.When the gateway A 100A receives the response message from the gateway B 100B, the gateway A 100A sends a tunnel creation ACK between the private networks to the gateway B 100B. ACK is the VPN protocol to be used (L2TP), the network address of private network A (200A) (10.0.0.0/24), the network address of private network B (200B) (10.0.0.0/24), and private network A (100A) within the VPN tunnel. It includes a network address (10.0.1.0/24) to be used instead of the network address of the network address (10.0.2.0/24) to be used instead of the network address of the private network B (200B) in the VPN tunnel. Since the address of private network A (200A) and the network address to use instead of the network address of private network A (200A) in the VPN tunnel do not match, gateway A (100A) is assumed to use address translation by NAT protocol at both ends of VPN tunnel. Recognize.

ACK 메시지를 주고받은 후, 게이트웨이A(100A)와 게이트웨이B(100B)에는 각각 사설망 연결 관리 테이블(132,132')이 생성된다. 사설망 연결 관리 테이블(132)은 사용하는 VPN 프로토콜(L2TP), 사설망 간 터널 ID, 상대편 게이트웨이(100)의 도메인 이름, 상대편 게이트웨이(100)가 VPN 서버인지 클라이언트인지를 표시하는 항목, 사설망A(200A)의 네트워크 주소, 사설망B(200B)의 네트워크 주소, VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소, VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소 등을 포함한다.After sending and receiving an ACK message, private network connection management tables 132 and 132 'are generated in the gateway A 100A and the gateway B 100B, respectively. Private network connection management table 132 is an item indicating whether the VPN protocol (L2TP), private network tunnel ID, the gateway name of the other gateway 100, the other gateway 100 is a VPN server or client, private network A (200A) Network address, private network B (200B) network address, network address to use instead of private network A (200A) network address within VPN tunnel, network address to use instead of network address of private network B (200B) within VPN tunnel, etc. It includes.

게이트웨이A(100A)가 생성하는 테이블을 살펴보면, 사용하는 VPN 프로토콜(L2TP), 게이트웨이B(100B)의 도메인 이름(게이트웨이B), 게이트웨이B는 VPN 서버임을 표시하는 항목(서버), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), 사설망B(200B)의 네트워크 주소(10.0.0.0/24), VPN터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.1.0/24), VPN터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소(10.0.2.0/24) 등을 포함한다.Looking at the table generated by the gateway A (100A), the VPN protocol (L2TP) to use, the domain name (gateway B) of the gateway B (100B), the item indicating that the gateway B is a VPN server (server), private network A (200A) Network address (10.0.0.0/24), network address of private network B (200B) (10.0.0.0/24), and network address (10.0.1.0/ to use instead of the network address of private network A (200A) within the VPN tunnel. 24) a network address (10.0.2.0/24), etc. to be used instead of the network address of the private network B 200B in the VPN tunnel.

ACK 메시지를 받은 후, 게이트웨이B(100B)는 사용할 VPN 프로토콜에 따라 VPN터널을 생성하도록 VPN처리부(146B')를 VPN 서버로 설정한다. VPN처리부(146B')를 VPN 서버로 설정하여 사설망 간의 터널 생성을 위한 준비가 완료되면, 게이트웨이B(100B)의 HTIP처리부(146A')는 사설망 간의 터널 생성 준비가 완료되었음을 알리는 READY 메시지를 게이트웨이A(100A)에 전송한다. READY 메시지는 사용 VPN 프로토콜(L2TP), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), 사설망B(200B)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사용할 사설망A(200A)의 네트워크 주소(10.0.1.0/24), VPN 터널 내에서 사용할 사설망B(200B)의 네트워크주소(10.0.2.0/24) 등을 포함한다.After receiving the ACK message, the gateway B 100B sets the VPN processing unit 146B 'as a VPN server to generate a VPN tunnel according to the VPN protocol to be used. When the VPN processing unit 146B 'is set as the VPN server and the preparation for creating the tunnel between the private networks is completed, the HTIP processing unit 146A' of the gateway B 100B sends a READY message indicating that preparation for creating the tunnel between the private networks is completed. To 100A. The READY message includes the VPN protocol used (L2TP), the network address of private network A (200A) (10.0.0.0/24), the network address of private network B (200B) (10.0.0.0/24), and the private network A ( Network address (10.0.1.0/24) of the 200A, network address (10.0.2.0/24) of the private network B 200B to be used in the VPN tunnel, and the like.

READY 메시지를 받은 후, 게이트웨이A(100A)는 사용할 VPN 프로토콜에 따라 VPN처리부(146B)를 게이트웨이B(100B)의 VPN 클라이언트로 설정한다. HTIP처리부(146A')가 VPN 클라이언트를 구동하면 게이트웨이A(100A)와 게이트웨이B(100B) 사이에는 VPN(L2TP) 터널이 생성된다.After receiving the READY message, the gateway A 100A sets the VPN processing unit 146B as the VPN client of the gateway B 100B according to the VPN protocol to be used. When the HTIP processing unit 146A 'drives the VPN client, a VPN (L2TP) tunnel is created between the gateway A 100A and the gateway B 100B.

위와 같은 과정을 통해 게이트웨이A(100A)와 게이트웨이B(100B) 사이는 VPN터널이 형성되며, 게이트웨이A(100A)의 VPN 터널 끝으로 전달되어진 패킷은 게이트웨이B(100B)의 VPN 터널 끝으로 전달된다.Through the above process, a VPN tunnel is formed between the gateway A (100A) and the gateway B (100B), and the packet transmitted to the end of the VPN tunnel of the gateway A (100A) is delivered to the end of the VPN tunnel of the gateway B (100B). .

VPN 터널의 생성과 연결이 완료되면, 게이트웨이A(100A)는 사설망 연결 관리 테이블(132)을 참조하여 VPN 터널의 게이트웨이A(100A) 쪽에 NAT를 설정한다. NAT를 설정하면, 패킷이 사설망A(200A)에서 게이트웨이A(100A)를 지나 VPN터널로 보내질 때, 출발지 주소 10.0.0.x는 10.0.1.x로 변환되며, 패킷이 VPN터널로부터 게이트웨이A(100A)를 지나 사설망A로 보내질 때 목적지 주소 10.0.1.y가 10.0.0.y로 변환된다. 또한 게이트웨이B도 VPN 터널의 게이트웨이B 쪽에 NAT를 설정한다.When the creation and connection of the VPN tunnel is completed, the gateway A 100A sets up NAT on the gateway A 100A side of the VPN tunnel with reference to the private network connection management table 132. When NAT is set, when a packet is sent from the private network A (200A) through the gateway A (100A) to the VPN tunnel, the source address 10.0.0.x is converted to 10.0.1.x, and the packet is transferred from the VPN tunnel to Gateway A. When it passes over (100A) to private network A, the destination address 10.0.1.y is converted to 10.0.0.y. Gateway B also sets up NAT on the gateway B side of the VPN tunnel.

도 12는 도 11의 과정에 의해 사설망A와 사설망B 사이에 형성된 터널을 통한 호스트A(210A)와 호스트B(210B) 사이의 패킷 전달과정을 설명하는 신호흐름도이다. 먼저 사설망A(200A)의 사용자가 호스트B(210B)의 도메인 이름을 알고 있으며, 호스트A(210A)에 설치된 응용프로그램(214)이 게이트웨이A(100A)에게 호스트B(210B)의 도메인 이름에 대응하는 IP주소를 알기 위하여 DNS 문의를 보내면, 게이트웨이A(100A)의 DNS처리부(143)는 사설망 연결 관리 테이블(132)을 조사한다.그리고 사설망A(200A)와 사설망B(200B) 사이에 VPN터널이 설정되어 있으면, 터널을 통과하는 패킷에 대한 NAT가 필요한 것으로 인식되어 있으므로, 게이트웨이B(100B)에게 호스트B(210B)의 VPN터널에서 사용될 사설IP주소를 알기 위하여 DNS문의를 게이트웨이B에게 전송한다.FIG. 12 is a signal flow diagram illustrating a packet forwarding process between the host A 210A and the host B 210B through the tunnel formed between the private network A and the private network B by the process of FIG. 11. First, the user of the private network A 200A knows the domain name of the host B 210B, and the application 214 installed in the host A 210A corresponds to the domain name of the host B 210B to the gateway A 100A. If a DNS query is sent to know the IP address, the DNS processing unit 143 of the gateway A 100A examines the private network connection management table 132. The VPN tunnel between the private network A (200A) and the private network B (200B). If this is set, NAT for the packet passing through the tunnel is recognized as necessary. Therefore, the gateway B 100B sends a DNS query to the gateway B to know the private IP address to be used in the VPN tunnel of the host B 210B. .

게이트웨이B(100B)의 DNS처리부(143')는 호스트B(210B)에 대한 문의가 수신되면, 호스트B(210B)의 VPN터널 내에서 사용되는 IP주소(10.0.2.5)를 게이트웨이A(100A)에 응답메시지를 전송하며, 게이트웨이A(100A)는 이를 호스트A(210A)에게 재전송한다. DNS 문의 및 응답 과정은 도면에는 생략한다. 이후, 호스트A(210A)는 호스트B(210B)로 패킷을 보내기 위하여 패킷을 게이트웨이A((100A)에 전송한다. 패킷의 목적지 주소는 10.0.2.5가 기입되며, 출발지 주소는 10.0.0.4가 기입된다.When the DNS processing unit 143 'of the gateway B 100B receives an inquiry about the host B 210B, the DNS processing unit 143' receives the IP address (10.0.2.5) used in the VPN tunnel of the host B 210B. Sends a response message, and gateway A (100A) retransmits it to host (A) 210A. DNS query and response processes are omitted in the drawings. Host A 210A then sends the packet to Gateway A (100A) to send the packet to Host B 210B. The destination address of the packet is 10.0.2.5 and the source address is 10.0.0.4. do.

게이트웨이A(100A)는 호스트A(210A)로부터 호스트B(210B)를 목적지로 하는 패킷이 수신되면, 라우팅 테이블과 포워딩 설정을 참조하여 게이트웨이A(100A)의 터널 끝으로 패킷을 전달한다. 그러면 게이트웨이A(100A)의 VPN터널 끝에는 NAT가 설정되어 있으므로, 출발지 주소 10.0.0.4가 10.0.1.4로 변환되며, NAT를 통해 출발지 주소가 변환된 패킷은 게이트웨이B(100B)의 터널 끝으로 전송된다.When a packet destined for the host B 210B is received from the host A 210A, the gateway A 100A forwards the packet to the end of the tunnel of the gateway A 100A with reference to the routing table and the forwarding setting. Then, since NAT is set at the end of the VPN tunnel of Gateway A (100A), source address 10.0.0.4 is converted to 10.0.1.4, and the packet whose source address is converted through NAT is transmitted to the tunnel end of Gateway B (100B). .

게이트웨이B(100B)는 위와 같이 출발지 주소가 NAT를 통해 변경되어 게이트웨이B(100B)의 터널 끝으로 전달된 패킷에 대해 게이트웨이B(100B)의 VPN 터널 끝에 설정된 NAT를 통해 목적지 주소 10.0.2.5를 10.0.0.5로 변환시킨다. 이렇게 NAT를 통해 목적지 주소가 변환된 패킷은 라우팅 테이블과 포워딩 설정을 참조하여호스트B(210B)에게 전달된다.Gateway B (100B) uses the NAT set at the VPN tunnel end of Gateway B (100B) to forward the destination address 10.0.2.5 to 10.0. Convert it to .0.5. The packet whose destination address is converted through NAT is forwarded to host B 210B by referring to the routing table and the forwarding configuration.

이후, 호스트B(210B)는 호스트A(210A)로 응답을 보내며, 위 패킷 전달과정의 반복에 의해 통신이 이루어진다.Thereafter, the host B 210B sends a response to the host A 210A, and communication is performed by repetition of the packet forwarding process.

도 13은 사설망A의 확장된 네트워크ID가 사설망B의 확장된 네트워크ID에 포함되는 경우의 두 사설망간 VPN터널 형성과정을 설명하는 신호흐름도이다. 먼저, 게이트웨이A(100A)의 웹서버(147)에서 제공되는 터널형성요청페이지를 사설망A(200A)의 사용자가 호스트A(210A)에서 웹브라우저(212)를 통해 불러온 후, 사설망B(200B) 에 대해 터널 생성을 요청하면, 사설망A(200A)와 사설망B(200B) 사이의 터널 생성 요청을 받은 게이트웨이A(100A)는 DNS처리부(143)를 통해 인터넷에 위치한 DNS서버(330)로부터 게이트웨이B(100B)의 공인IP주소(211.32.119.136)를 얻는다. DNS 문의 및 응답 과정은 도면에는 생략한다.FIG. 13 is a signal flow diagram illustrating a process of forming a VPN tunnel between two private networks when the extended network ID of private network A is included in the extended network ID of private network B. Referring to FIG. First, the tunnel formation request page provided by the web server 147 of the gateway A 100A is read by the user of the private network A 200A from the host A 210A through the web browser 212, and then the private network B 200B. If a request is made to create a tunnel, the gateway A (100A) receiving the tunnel creation request between the private network A (200A) and the private network B (200B) is a gateway from the DNS server 330 located in the Internet through the DNS processing unit 143. Obtain a public IP address of B (100B) (211.32.119.136). DNS query and response processes are omitted in the drawings.

다음으로 게이트웨이B(100B)의 공인IP주소를 얻은 게이트웨이A(100A)는 HTIP처리부(146A)에서 HTIP 프로그램을 구동하여 게이트웨이B(100B)의 HTIP처리부(146A')에 사설망간 터널 생성을 요청한다. 사설망간의 터널 생성을 요청하는 메시지에는 사용할 VPN 프로토콜(L2TP), 사설망A의 네트워크 주소(10.0.0.0/24), VPN터널 내에서 사설망A의 네트워크 주소 대신에 사용될 네트워크 주소들(10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24, ...)이 포함된다.Next, the gateway A (100A) having obtained the public IP address of the gateway B (100B) requests the HTIP processing unit (146A ') of the gateway B (100B) to create a private network tunnel by driving the HTIP program in the HTIP processing unit (146A). . Messages requesting tunnel creation between private networks include the VPN protocol to be used (L2TP), the network address of private network A (10.0.0.0/24), and the network addresses to be used instead of the network address of private network A in the VPN tunnel (10.0.0.0/24). , 10.0.1.0/24, 10.0.2.0/24, ...).

게이트웨이B(100B)의 HTIP처리부(146A')는 게이트웨이A(100A)로부터의 터널 생성 요청 메시지를 수신한 후 이를 분석한다. VPN 터널 내에서 사설망A의 네트워크 주소 대신에 사용될 네트워크 주소들(10.0.0.0/24, 10.0.1.0/24,...)이 사설망B의 네트워크 주소에 포함되므로, 게이트웨이B(100B)의 HTIP처리부(146A')는 게이트웨이A(100A)에게 NAK를 보낸다. NAK에는 게이트웨이A(100A)가 게이트웨이B(100B)에게 보낸 터널 생성 요청 메시지이 내용 중 재협상이 필요한 부분(VPN 터널 내에서 사설망A의 네트워크 주소 대신에 사용될 네트워크 주소들)과 사설망B의 네트워크 주소(10.0.0.0/16)가 포함된다.The HTIP processing unit 146A 'of the gateway B 100B receives the tunnel creation request message from the gateway A 100A and analyzes it. Since the network addresses (10.0.0.0/24, 10.0.1.0/24, ...) to be used in place of the network address of the private network A in the VPN tunnel are included in the network address of the private network B, the HTIP processing part of the gateway B 100B. 146A 'sends a NAK to gateway A 100A. In the NAK, the tunnel creation request message sent by Gateway A (100A) to Gateway B (100B) is the portion of the content that needs to be renegotiated (network addresses to be used in place of the network address of Private Network A in the VPN tunnel) and the network address (10.0) of Private Network B. .0.0 / 16).

게이트웨이B(100B)로부터의 NAK를 수신한 게이트웨이A(100A)의 HTIP처리부(146A)는 NAK의 내용을 분석한 후, 사설망간의 터널 생성 요청을 다시 보낸다. 사설망간의 터널 생성을 다시 요청하는 메시지에는 사용할 VPN 프로토콜(L2TP), 사설망A의 네트워크 주소(10.0.0.0/24), VPN터널 내에서 사설망A의 네트워크 주소 대신에 사용될 네트워크 주소들(10.2.0.0/24, 10.2.1.0/24, ...)이 포함된다.After receiving the NAK from the gateway B 100B, the HTIP processing unit 146A of the gateway A 100A analyzes the contents of the NAK and resends the tunnel creation request between the private networks. The message requesting to create a tunnel between the private networks again includes the VPN protocol to be used (L2TP), the network address of private network A (10.0.0.0/24), and the network addresses to be used instead of the network address of private network A in the VPN tunnel (10.2.0.0/ 24, 10.2.1.0/24, ...).

게이트웨이B(100B)의 게이트웨이A(100A)로부터 터널 생성 요청 메시지가 수신되면, HTIP처리부(146A')에서 이를 분석하여 적절한 경우 사설망간의 터널 생성 응답메시지를 보낸다. 응답메시지에는 사용할 VPN 프로토콜(L2TP), 사설망B(200B)의 네트워크 주소(10.0.0.0/16), VPN 터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용될 네트워크 주소들(10.1.0.0/16, 10.2.0.0/16, ...), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용될 네트워크 주소(10.2.0.0/24) 등을 포함한다.When the tunnel creation request message is received from the gateway A 100A of the gateway B 100B, the HTIP processing unit 146A 'analyzes this and sends a tunnel creation response message between the private networks when appropriate. The response message includes the VPN protocol to be used (L2TP), the network address of private network B (200B) (10.0.0.0/16), and the network addresses (10.1.0.0/16) to be used instead of the network address of private network B (200B) within the VPN tunnel. , 10.2.0.0/16, ...), the network address of private network A (200A) (10.0.0.0/24), the network address to be used instead of the network address of private network A (200A) within the VPN tunnel (10.2.0.0/ 24) and the like.

게이트웨이A(100A)는 게이트웨이B(100B)로부터 응답메시지가 수신되면, HTIP처리부(146A)에서 이를 분석한 후 적절하다고 판단되면, 사설망간의 터널 생성 ACK를 게이트웨이B(100B)에게 보낸다. ACK는 사용할 VPN 프로토콜(L2TP), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), VPN 터널 내에서 사설망A(100A)의 네트워크 주소 대신에 사용할 네트워크 주소(10.2.0.0/24), 사설망B(200B)의 네트워크 주소(10.0.0.0/16), VPN터널 내에서 사설망B(200B)의 네트워크 주소 대신에 사용할 네트워크 주소(10.1.0.0/16) 등을 포함한다. 사설망A(200A)의 주소와 VPN터널 내에서 사설망A(200A)의 네트워크 주소 대신에 사용할 네트워크 주소가 일치하지 않으므로, 게이트웨이A(100A)는 NAT가 사용되어야 할 것으로 인식한다.When a response message is received from the gateway B 100B, the gateway A 100A analyzes it in the HTIP processing unit 146A, and if it is determined to be appropriate, sends the tunnel creation ACK between the private networks to the gateway B 100B. ACK is the VPN protocol to use (L2TP), the network address of private network A (200A) (10.0.0.0/24), the network address to use in place of the network address of private network A (100A) within the VPN tunnel (10.2.0.0/24), The network address (10.0.0.0/16) of the private network B 200B, the network address (10.1.0.0/16) to be used instead of the network address of the private network B 200B in the VPN tunnel, and the like. Since the address of the private network A 200A and the network address to be used instead of the network address of the private network A 200A in the VPN tunnel do not match, the gateway A 100A recognizes that NAT should be used.

ACK 메시지를 주고받은 후, 게이트웨이A(100A)와 게이트웨이B(100B)에는 사설망 연결 관리 테이블(132,132')이 생성된다. 게이트웨이A(100A)가 생성하는 테이블(132)을 살펴보면, 사용하는 VPN 프로토콜(L2TP), 사설망 간 터널 ID, 게이트웨이B(100B)의 도메인 이름, 게이트웨이B(100B)는 VPN 서버임을 표시하는 항목, 사설망A의 네트워크 주소(10.0.0.0/24), 사설망B의 네트워크 주소(10.0.0.0/16), VPN 터널 내에서 사설망A의 네트워크 주소 대신에 사용할 네트워크 주소(10.2.0.0/24), VPN 터널 내에서 사설망B의 네트워크 주소 대신에 사용할 네트워크 주소(10.1.0.0/16) 등을 포함한다.After exchanging the ACK message, private network connection management tables 132 and 132 'are generated in the gateway A 100A and the gateway B 100B. Looking at the table 132 generated by the gateway A (100A), the VPN protocol (L2TP) used, the tunnel ID between the private network, the domain name of the gateway B (100B), the item indicating that the gateway B (100B) is a VPN server, Network address of private network A (10.0.0.0/24), network address of private network B (10.0.0.0/16), network address to use in place of network A's network address (10.2.0.0/24) within the VPN tunnel, VPN tunnel Contains the network address (10.1.0.0/16) to use in place of the network address of private network B.

ACK 메시지를 받은 후, 게이트웨이B(100B)는 사용할 VPN 프로토콜에 따라 VPN터널을 생성하도록 VPN처리부(146B')를 VPN 서버로 설정한다. 게이트웨이B(100B)의 HTIP처리부(146A')는 VPN처리부(146B')를 VPN 서버로 설정하여 사설망 간의 터널 생성을 위한 준비가 완료되면, 게이트웨이B(100B)의 HTIP처리부(146A')는 사설망 간의 터널 생성 준비가 완료되었음을 알리는 READY 메시지를게이트웨이A(100A)에 전송한다. READY 메시지는 사용 VPN 프로토콜(L2TP), 사설망A(200A)의 네트워크 주소(10.0.0.0/24), 사설망B(200B)의 네트워크 주소(10.0.0.0/16), VPN 터널 내에서 사용할 사설망A(200A)의 네트워크 주소(10.2.0.0/24), VPN 터널 내에서 사용할 사설망B(200B)의 네트워크 주소(10.1.0.0/16)를 포함한다.After receiving the ACK message, the gateway B 100B sets the VPN processing unit 146B 'as a VPN server to generate a VPN tunnel according to the VPN protocol to be used. When the HTIP processing unit 146A 'of the gateway B 100B sets the VPN processing unit 146B' as a VPN server and is ready to create a tunnel between the private networks, the HTIP processing unit 146A 'of the gateway B 100B is a private network. A READY message indicating that the preparation for creating a tunnel is completed is transmitted to the gateway A 100A. The READY message includes the VPN protocol used (L2TP), the network address of private network A (200A) (10.0.0.0/24), the network address of private network B (200B) (10.0.0.0/16), and the private network A to be used within the VPN tunnel. The network address (10.2.0.0/24) of 200A, and the network address (10.1.0.0/16) of private network B 200B to be used in the VPN tunnel.

READY 메시지를 받은 후, 게이트웨이A(100A)의 HTIP처리부(146A)는 사용할 VPN 프로토콜에 따라 VPN처리부(146B)를 게이트웨이B(100B)의 VPN 클라이언트로 설정한다. HTIP처리부(146A)가 VPN 클라이언트를 구동하면 게이트웨이A(100A)와 게이트웨이B(100B) 사이에는 VPN(L2TP) 터널이 생성된다.After receiving the READY message, the HTIP processing unit 146A of the gateway A 100A sets the VPN processing unit 146B as the VPN client of the gateway B 100B according to the VPN protocol to be used. When the HTIP processing unit 146A drives the VPN client, a VPN (L2TP) tunnel is created between the gateway A 100A and the gateway B 100B.

위와 같은 과정을 통해 게이트웨이A(100A)와 게이트웨이B(100B) 사이에는 VPN 터널 형성된다. 이후, 게이트웨이A(100A)의 VPN 터널 끝으로 전달되어진 패킷은 게이트웨이B(100B)의 VPN 터널 끝으로 전달된다.Through the above process, a VPN tunnel is formed between the gateway A 100A and the gateway B 100B. Thereafter, the packet delivered to the end of the VPN tunnel of the gateway A 100A is delivered to the end of the VPN tunnel of the gateway B 100B.

다음으로, VPN 터널의 생성과 연결이 끝나면 게이트웨이A(100A)의 HTIP처리부(146A)는 사설망 연결 관리 테이블(132)을 참조하여 VPN 터널의 게이트웨이A(100A) 쪽에 NAT를 설정한다. NAT를 설정하면 패킷이 사설망A에서 게이트웨이A(100A)를 지나 VPN 터널로 보내질 때, 출발지 주소 10.0.0.x는 10.2.0.x로 변환되며, 패킷이 VPN 터널로부터 게이트웨이A(100A)를 지나 사설망A로 보내질 때 목적지 주소 10.2.0.y가 10.0.0.y로 변환된다. 마찬가지로, 게이트웨이B(100B)의 HTIP처리부(146A')도 VPN 터널의 게이트웨이B(100B) 쪽에 NAT를 설정한다.Next, after the creation and connection of the VPN tunnel is completed, the HTIP processing unit 146A of the gateway A 100A sets NAT on the gateway A 100A side of the VPN tunnel with reference to the private network connection management table 132. When NAT is set, when a packet is sent from VPN A through 100A to the VPN tunnel, the source address 10.0.0.x is converted to 10.2.0.x, and the packet is transferred from the VPN tunnel to Gateway A (100A). When it is sent to private network A, the destination address 10.2.0.y is converted to 10.0.0.y. Similarly, the HTIP processing unit 146A 'of the gateway B 100B also sets NAT on the gateway B 100B side of the VPN tunnel.

위와 같이 게이트웨이A(100A) 및 게이트웨이B(100B) 사이에 형성된 VPN터널양단에 NAT가 설정되면, 이후, 호스트A(210A)와 호스트B(210B)는 도 12에 보인 데이터 패킷 전달과정을 통해 상호 통신을 할 수 있게 된다.When NAT is set at both ends of the VPN tunnel formed between the gateway A (100A) and the gateway B (100B) as described above, the host A (210A) and the host B (210B) mutually through the data packet delivery process shown in FIG. Communication is possible.

본 발명의 일 실시예에 따른 망접속장치는 사설망과 공중망 또는 사설망과 사설망간 연결이 가능하여 사용자의 이용망을 보다 확장시킬 수 있어 가정 내 사용자의 편의를 도모할 수 있으며, 최근 새롭게 부상되는 홈네트워크에서 타 홈네트워크 사용자와 보다 다양하게 커뮤니티를 활성화 할 수 있을 뿐만 아니라 홈네트워크 사이에서 장치 또는 자료를 공유하는 서비스가 가능해지므로 홈네트워크 시장의 활성화에 기여할 수 있으며, 또한, 현재의 IPv4환경에서 공인IP주소의 부족현상을 해소할 수 있어 전체 네트워크의 성능을 향상시킬 수 있게 된다.Network connection device according to an embodiment of the present invention can be connected between the private network and public network or private network and private network to further expand the user's use network to facilitate the user's convenience in the home, the newly emerging home In addition to enabling more diverse communities with other home network users in the network, services that share devices or data between home networks become possible, which can contribute to the activation of the home network market. The shortage of IP addresses can be eliminated and the performance of the entire network can be improved.

특히 본 발명의 또다른 실시예에서 제안하는 방법을 HTIP(Home-to-Home Tunneling Initiation) 프로토콜이라고 하는데, HTIP 프로토콜을 사용하면 사설망간의 VPN터널을 생성하는데 필요한 정보를 미리 교환, 협상하는 것이 가능하므로 사설망간의 VPN터널 생성에 필요한 사전 설정을 최소화할 수 있으며, HTIP처리부에서 협상이 완료된 정보를 이용하여 VPN처리부, NAT/NAPT처리부를 제어하므로 PPTP, L2TP 등의 기존 VPN 프로토콜을 수정없이 사용하는 것이 가능하다. 또한, HTIP 프로토콜을 사용하면 기존의 VPN 터널 내에서 사용되는 네트워크 주소들과 새로이 생성되는 VPN 터널의 네트워크 주소들이 충돌하지 않도록 미리 협상하는 것이 가능하므로, 두 개 이상의 복수 사설망에 대하여 교차적으로 VPN 터널을 형성하는 것이 가능하다.In particular, the method proposed in another embodiment of the present invention is called a Home-to-Home Tunneling Initiation (HTIP) protocol. Since the HTIP protocol is used to exchange and negotiate information necessary to create a VPN tunnel between private networks in advance. It is possible to minimize the preset settings necessary for creating a VPN tunnel between private networks, and by using the negotiated information from the HTIP processor to control the VPN processor and NAT / NAPT processor, it is possible to use existing VPN protocols such as PPTP and L2TP without modification. Do. In addition, the HTIP protocol makes it possible to negotiate ahead of time so that network addresses used in existing VPN tunnels and network addresses of newly created VPN tunnels do not collide, thus allowing VPN tunnels to cross over two or more private networks. It is possible to form

이상에서는 본 발명의 바람직한 실시예에 대해서 도시하고 설명하였으나, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.Although the preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and the present invention is not limited to the specific embodiments of the present invention without departing from the spirit of the present invention as claimed in the claims. Anyone skilled in the art can make various modifications, as well as such modifications are within the scope of the claims.

Claims (16)

공중망과 연결되는 적어도 하나 이상의 공중망 인터페이스;At least one public network interface connected to the public network; 사설망과 연결되는 적어도 하나 이상의 사설망 인터페이스; 및At least one private network interface connected to the private network; And 상기 사설망에 연결된 호스트로부터 상기 공중망에 연결된 타사설망에 대한 터널 생성 요청메시지가 수신되면, 상기 타사설망의 게이트웨이와 통신하여 VPN터널을 형성시키되, 상기 사설망 및 상기 타사설망의 네트워크 주소가 같거나 어느 한 사설망에 다른 한 사설망의 네트워크 주소가 포함되면, 상기 두 사설망이 VPN터널 내에서 서로 다른 네트워크 주소를 사용하도록 새로운 네트워크 주소 테이블을 생성하고, 상기 사설망에 연결된 호스트 또는 상기 타사설망으로부터 전송된 데이터 패킷에 대해 상기 새로운 네트워크 주소 테이블을 토대로 주소를 변환시켜 포워딩하는 제어부;를 포함하는 것을 특징으로 하는 망접속장치.When a tunnel creation request message for a third party network connected to the public network is received from a host connected to the private network, a VPN tunnel is formed by communicating with a gateway of the third party network, and the network addresses of the private network and the third party network are the same or equal. If the private network includes the network addresses of the other private network, create a new network address table so that the two private networks use different network addresses in the VPN tunnel, and add the data packets transmitted from the host connected to the private network or the third party network. And a controller for converting and forwarding an address based on the new network address table. 제 1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 사설망에 연결된 호스트에서 터널 생성을 요청할 수 있도록 터널생성요청페이지를 제공하는 웹서버;A web server providing a tunnel creation request page to request a tunnel creation from a host connected to the private network; 상기 사설망에 연결된 호스트의 상기 타 사설망에 대한 터널 생성 요청에 대해 상기 공중망에 연결된 DNS(Domain Name Server)로부터 상기 타사설망 게이트웨이의 공인 IP(Internet Protocol)주소를 획득하는 사설망 DNS처리부;A private network DNS processing unit for obtaining a public IP (Internet Protocol) address of the third-party network gateway from a DNS (Domain Name Server) connected to the public network in response to a tunnel creation request of the host connected to the private network to the other private network; 상기 공중망 인터페이스를 통해 전달된 터널 생성 요청 또는 상기 사설망 인터페이스를 통해 전달된 터널 생성 요청에 따라 서버 또는 클라이언트로 동작하여 요청 대상 사설망과 터널이 형성될 수 있도록 처리하는 VPN(Virtual Private Network)처리부; 및A virtual private network (VPN) processing unit operating as a server or a client according to the tunnel creation request transmitted through the public network interface or the tunnel creation request transmitted through the private network interface to form a tunnel with the requesting private network; And 상기 사설망에서 공중망으로 전송되는 데이터 패킷 또는 상기 공중망에서 사설망으로 전송되는 데이터 패킷에 대해 NAPT(Network Address Port Translation)프로토콜을 이용하여 사설 IP주소를 공인 IP주소로 변환하거나 공인 IP주소를 사설 IP주소로 변환시키며, 상기 사설망과 상기 타사설망 사이에 상기 VPN 터널이 형성된 경우, NAT(Network Address Translation)프로토콜을 이용하여 상기 VPN 터널 내에서 사설IP주소의 주소변환을 수행하는 NAT/NAPT처리부;를 포함하는 것을 특징으로 하는 망접속장치.Convert a private IP address into a public IP address or convert a public IP address into a private IP address using a network address port translation (NAPT) protocol for data packets transmitted from the private network to the public network or from the public network to the private network. And a NAT / NAPT processing unit for converting a private IP address in the VPN tunnel using a NAT (Network Address Translation) protocol when the VPN tunnel is formed between the private network and the third-party network. Network connection device, characterized in that. 제 2항에 있어서,The method of claim 2, 상기 VPN처리부는, 상기 사설망에 연결된 상기 호스트로부터 상기 타사설망에 대한 상기 터널 생성 요청이 전달되면, 상기 터널 생성 요청 메시지를 상기 타사설망 게이트웨이에 전송하며, 상기 타사설망의 게이트웨이로부터 상기 터널 생성 요청에 대한 응답이 수신되면, ACK(Acknowledge)를 상기 타사설망 게이트웨이에 전송하는 것을 특징으로 하는 망접속장치.The VPN processing unit transmits the tunnel creation request message to the third-party network gateway when the tunnel creation request for the third-party network is transmitted from the host connected to the private network, and transmits the tunnel creation request message to the tunnel creation request from the gateway of the third-party network. And receiving an acknowledgment, transmitting an ACK (Acknowledge) to the third-party network gateway. 제 3항에 있어서,The method of claim 3, wherein 상기 타사설망에 대한 터널 생성 요청 메시지는, 상기 사설망의 네트워크 주소 및 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제2 네트워크 주소들을 포함하는 것을 특징으로 하는 망접속장치.The tunnel creation request message for the third-party network includes a network address of the private network and second network addresses to be used instead of the network address of the private network in the VPN tunnel. 제 3항에 있어서,The method of claim 3, wherein 상기 VPN처리부는, 타사설망으로부터 상기 타사설망의 네트워크 주소 및 상기 VPN 터널에서 상기 타사설망의 네트워크 주소 대신에 사용될 제2 네트워크 주소들을 포함하는 터널 요청 메시지가 수신되면, 사설망의 네트워크 주소, 상기 제2 네트워크 주소, 및 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제3 네트워크 주소들을 포함하는 응답메시지를 상기 타사설망에 전송하는 것을 특징으로 하는 망접속장치.When the VPN processing unit receives a tunnel request message including a network address of the third-party network and second network addresses to be used instead of the network address of the third-party network in the VPN tunnel from the third-party network, the network address of the private network, the second And a response message including a network address and third network addresses to be used in place of the network address of the private network in the VPN tunnel. 제 2항에 있어서,The method of claim 2, 상기 웹서버는, 미들웨어서버로 대체 가능한 것을 특징으로 하는 망접속장치.The web server is a network connection device, characterized in that replaceable with a middleware server. 제 1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 사설망에 연결된 호스트에서 터널 생성을 요청할 수 있도록 터널생성요청페이지를 제공하는 웹서버;A web server providing a tunnel creation request page to request a tunnel creation from a host connected to the private network; 상기 사설망에 연결된 호스트의 상기 타 사설망에 대한 터널 생성 요청에 대해 상기 공중망에 연결된 DNS 로부터 상기 타사설망 게이트웨이의 공인 IP 주소를 획득하는 사설망 DNS처리부;A private network DNS processing unit for obtaining a public IP address of the third-party network gateway from a DNS connected to the public network in response to a tunnel creation request for the other private network of a host connected to the private network; 상기 공중망 인터페이스를 통해 전달된 터널 생성 요청 또는 상기 사설망 인터페이스를 통해 전달된 터널 생성 요청에 따라 요청 대상 사설망과 터널을 형성하기 위해 필요한 변수를 포함하는 터널 생성 요청 메시지를 송수신하는 HTIP(Home-to-Home Tunneling Initiation Protocol)처리부;HTIP (Home-to-) for transmitting / receiving a tunnel creation request message including a parameter required to form a tunnel with the requesting private network according to the tunnel creation request transmitted through the public network interface or the tunnel creation request transmitted through the private network interface Home Tunneling Initiation Protocol) processing unit; 상기 HTIP처리부의 제어에 따라, 서버 또는 클라이언트로 동작하여 상기 요청 대상 사설망과 상기 터널이 형성될 수 있도록 처리하는 VPN(Virtual Private Network)처리부; 및A virtual private network (VPN) processing unit operating as a server or a client under the control of the HTIP processing unit so as to form the tunnel with the request target private network; And 상기 사설망에서 공중망으로 전송되는 데이터 패킷 또는 상기 공중망에서 사설망으로 전송되는 데이터 패킷에 대해 NAPT(Network Address Port Translation)프로토콜을 이용하여 사설 IP주소를 공인 IP주소로 변환하거나 공인 IP주소를 사설 IP주소로 변환시키며, 상기 사설망과 상기 타사설망 사이에 상기 VPN 터널이 형성되고 주소변환이 필요한 경우, NAT(Network Address Translation)프로토콜을 이용하여 상기 VPN 터널 내에서 사설IP주소의 주소변환을 수행하는 NAT/NAPT처리부;를 포함하는 것을 특징으로 하는 망접속장치.Convert a private IP address into a public IP address or convert a public IP address into a private IP address using a network address port translation (NAPT) protocol for data packets transmitted from the private network to the public network or from the public network to the private network. NAT / NAPT for translating a private IP address in the VPN tunnel using a NAT (Network Address Translation) protocol when the VPN tunnel is formed between the private network and the third-party network, and an address translation is required. Network connection apparatus comprising a; processing unit. 제 7항에 있어서,The method of claim 7, wherein 상기 HTIP처리부는, 상기 사설망에 연결된 상기 호스트로부터 상기 타사설망에 대한 상기 터널 생성 요청이 전달되면, 상기 메시지를 상기 타사설망 게이트웨이에 전송하며, 상기 타사설망의 게이트웨이로부터 상기 터널 생성 요청에 대한 응답이 수신되면, ACK(Acknowledge)를 상기 타사설망 게이트웨이에 전송하는 것을 특징으로 하는 망접속장치.The HTIP processing unit, when the tunnel creation request for the third party network is transmitted from the host connected to the private network, transmits the message to the third party network gateway, and the response to the tunnel creation request is transmitted from the gateway of the third party network. When received, the network access device, characterized in that for transmitting an ACK (Acknowledge) to the third-party network gateway. 제 8항에 있어서,The method of claim 8, 상기 타사설망에 대한 터널 생성 요청 메시지가 포함하는 변수는, 상기 터널 생성시 사용할 VPN 프로토콜, 상기 사설망의 네트워크 주소 및 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제2 네트워크 주소들을 포함하는 것을 특징으로 하는 망접속장치.The variable included in the tunnel creation request message for the third party network includes a VPN protocol to be used when creating the tunnel, a network address of the private network, and second network addresses to be used instead of the network address of the private network in the VPN tunnel. Network connection device. 제 8항에 있어서,The method of claim 8, 상기 HTIP처리부는, 타사설망으로부터 상기 터널 생성시 사용할 VPN 프로토콜, 상기 타사설망의 네트워크 주소 및 상기 VPN 터널에서 상기 타사설망의 네트워크 주소 대신에 사용될 제2 네트워크 주소들을 포함하는 터널 요청 메시지가 수신되면, 상기 터널 생성시 사용할 VPN 프로토콜, 사설망의 네트워크 주소, 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제3 네트워크 주소들, 상기 타사설망의 네트워크 주소, 상기 제2 네트워크 주소를 포함하는 응답메시지를 상기 타사설망에 전송하는 것을 특징으로 하는 망접속장치.When the HTIP processing unit receives a tunnel request message including a VPN protocol to be used when creating the tunnel, a network address of the third party network, and second network addresses to be used instead of the network address of the third party network in the VPN tunnel, The response message includes a VPN protocol to be used when creating the tunnel, a network address of a private network, third network addresses to be used instead of the network address of the private network in the VPN tunnel, a network address of the third party network, and the second network address. Network connection device, characterized in that the transmission to other companies. 제 8항에 있어서,The method of claim 8, 상기 HTIP처리부는, 타사설망으로부터 상기 ACK가 수신되면, 상기 VPN처리부를 VPN 서버로 설정하고, 상기 VPN처리부의 설정이 완료되었음을 알리는 READY 메시지를 상기 타사설망에 전송하는 것을 특징으로 하는 망접속장치.The HTIP processing unit, when the ACK is received from the other company's network, the VPN processing unit is set to the VPN server, the network connection device, characterized in that for transmitting the READY message indicating that the setting of the VPN processing unit is completed to the third party network. 제 11항에 있어서,The method of claim 11, 상기 HTIP처리부는, 상기 타사설망으로부터 상기 READY 메시지가 수신되면, 상기 VPN처리부를 상기 타사설망의 VPN 서버에 대한 VPN 클라이언트로 설정하고, 상기 VPN 클라이언트를 구동하여 상기 사설망과 상기 타사설망 사이에 VPN터널을 생성하는 것을 특징으로 하는 망접속장치.When the HTIP processing unit receives the READY message from the third party network, the HTIP processing unit sets the VPN processing unit as a VPN client for the VPN server of the third party network, and drives the VPN client to establish a VPN tunnel between the private network and the third party network. Network connection device, characterized in that for generating. 제 8항에 있어서,The method of claim 8, 상기 HTIP처리부는, 상기 타사설망으로부터 수신한 상기 터널 생성 요청 메시지 또는 상기 응답 메시지를 분석하여 상기 메시지에 포함된 변수 및 변수값이 적절하지 않은 경우, 이를 알리는 NAK 메시지를 상기 타사설망에 전송하는 것을 특징으로 하는 망접속장치.The HTIP processing unit analyzes the tunnel creation request message or the response message received from the third-party network, and transmits a NAK message to the third-party network when the variable and the variable value included in the message are not appropriate. Network connection device characterized in that. 제 13항에 있어서,The method of claim 13, 상기 HTIP처리부는, 상기 타사설망에 전송한 상기 터널 생성 요청 메시지 또는 상기 응답 메시지에 대하여 상기 NAK 메시지를 수신하면, 상기 메시지들에 포함된 변수 및 변수값을 새로이 설정하여, 상기 타사설망에 재전송하는 것을 특징으로 하는 망접속장치.When the HTIP processing unit receives the NAK message with respect to the tunnel creation request message or the response message transmitted to the third-party network, the HTIP processor newly sets a variable and a variable value included in the messages, and retransmits it to the third-party network. Network connection device, characterized in that. 제 8항에 있어서,The method of claim 8, 상기 HTIP처리부는, 상기 터널 생성시 사용할 VPN 프로토콜, 상기 사설망의 네트워크 주소, 상기 VPN 터널에서 상기 사설망의 네트워크 주소 대신에 사용될 제2네트워크 주소, 상기 타사설망의 네트워크 주소, 상기 VPN 터널에서 상기 타 사설망의 네트워크 주소 대신에 사용될 제3네트워크 주소를 포함하는 변수들을 미리 협상하여, 기존의 VPN 터널들에서 사용하는 네트워크 주소들과 상기 VPN 터널에서 사용하는 네트워크 주소들이 충돌하지 않도록 하여, 두 개 이상의 복수 사설망들과 동시에 VPN 터널을 형성하는 것을 특징으로 하는 망접속장치.The HTIP processing unit may include a VPN protocol to be used when creating the tunnel, a network address of the private network, a second network address to be used instead of the network address of the private network in the VPN tunnel, a network address of the third party network, and the other private network in the VPN tunnel. By pre-negotiating variables including the third network address to be used instead of the network address of the network address, the network addresses used in the existing VPN tunnels and the network addresses used in the VPN tunnel do not conflict with each other. Network connection device, characterized in that to form a VPN tunnel with them. 제 7항에 있어서,The method of claim 7, wherein 상기 웹서버는, 미들웨어서버로 대체 가능한 것을 특징으로 하는 망접속장치.The web server is a network connection device, characterized in that replaceable with a middleware server.
KR1020040001570A 2003-01-21 2004-01-09 Gateway for supporting communication between network devices of different private networks KR100552475B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CNB2004100073140A CN1301611C (en) 2003-01-21 2004-01-21 Gateway for supporting communications between network devices of different private networks
US10/760,553 US7366188B2 (en) 2003-01-21 2004-01-21 Gateway for supporting communications between network devices of different private networks
JP2004013699A JP3965160B2 (en) 2003-01-21 2004-01-21 Network connection device that supports communication between network devices located in different private networks
EP20040001265 EP1441483B1 (en) 2003-01-21 2004-01-21 Gateway for supporting communications between network devices of different private networks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20030004126 2003-01-21
KR1020030004126 2003-01-21

Publications (2)

Publication Number Publication Date
KR20040067885A true KR20040067885A (en) 2004-07-30
KR100552475B1 KR100552475B1 (en) 2006-02-15

Family

ID=37357262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040001570A KR100552475B1 (en) 2003-01-21 2004-01-09 Gateway for supporting communication between network devices of different private networks

Country Status (1)

Country Link
KR (1) KR100552475B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100660123B1 (en) * 2005-10-25 2006-12-20 (주)클립컴 Vpn server system and vpn terminal for a nat traversal
KR100789425B1 (en) * 2006-04-10 2007-12-28 삼성전자주식회사 Method for sharing contents using digital living network alliance network
KR100970367B1 (en) * 2008-09-08 2010-07-15 주식회사 다산네트웍스 operating method for residential gateway
KR101501973B1 (en) * 2011-03-09 2015-03-12 무라다기카이가부시끼가이샤 Relay server and relay communication system
KR20170001656A (en) * 2015-06-26 2017-01-04 주식회사 케이티 Dynamic service configuration method for NFV based internet service providing both public IP and private IP through service function chaining

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101098082B1 (en) * 2009-12-04 2011-12-26 이학종 System and method for guiding bypass of internet connection path using a DNS packet modulation, and recording medium storing program thereof
KR101880216B1 (en) * 2016-08-18 2018-07-19 (주)와이드큐브 System and method for connecting closed networks

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100660123B1 (en) * 2005-10-25 2006-12-20 (주)클립컴 Vpn server system and vpn terminal for a nat traversal
KR100789425B1 (en) * 2006-04-10 2007-12-28 삼성전자주식회사 Method for sharing contents using digital living network alliance network
US8160081B2 (en) 2006-04-10 2012-04-17 Samsung Electronics Co., Ltd. Apparatus and method for sharing content using digital living network alliance (DLNA) network and computer-readable medium thereof
KR100970367B1 (en) * 2008-09-08 2010-07-15 주식회사 다산네트웍스 operating method for residential gateway
KR101501973B1 (en) * 2011-03-09 2015-03-12 무라다기카이가부시끼가이샤 Relay server and relay communication system
KR20170001656A (en) * 2015-06-26 2017-01-04 주식회사 케이티 Dynamic service configuration method for NFV based internet service providing both public IP and private IP through service function chaining

Also Published As

Publication number Publication date
KR100552475B1 (en) 2006-02-15

Similar Documents

Publication Publication Date Title
US7366188B2 (en) Gateway for supporting communications between network devices of different private networks
US7796616B2 (en) Apparatus and method for offering connections between network devices located in different home networks
JP4303600B2 (en) Connection setting mechanism between networks with different address areas
JP3854584B2 (en) Network connection apparatus and method for providing direct connection between network devices existing in different private networks
EP1817882B1 (en) Home network bridge-based communications method and apparatus
US20070081530A1 (en) Packet relay apparatus
US20030172170A1 (en) Providing multiple ISP access to devices behind NAT
CN105376299B (en) Network communication method, equipment and network attached storage equipment
CN101238453A (en) Setting up a name resolution system for home-to-home communications
KR20020026745A (en) IP based network system and networking method thereof
JP4600394B2 (en) Network access router, network access method, program, and recording medium
US20070192434A1 (en) Network system, terminal, and gateway
WO2006057798A2 (en) Method and apparatus to facilitate universal plug and play interaction between different local networks
US20060268863A1 (en) Transparent address translation methods
KR100552475B1 (en) Gateway for supporting communication between network devices of different private networks
JP4292897B2 (en) Relay device and port forward setting method
JP2009010606A (en) Tunnel connection system, tunnel control server, tunnel connecting device, and tunnel connection method
US7085836B1 (en) System and method for automatic private IP address selection
JP2019050628A5 (en)
KR100451167B1 (en) Gateway system and packet processing method thereof
JP5054666B2 (en) VPN connection device, packet control method, and program
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
JP3912269B2 (en) Gateway device, information equipment device, and communication control method
JP3808471B2 (en) Network and router apparatus and address notification method used therefor
KR20170084626A (en) Screen apparatus for providing multi-screen using NAT, NAT and method for network address translation

Legal Events

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

Payment date: 20130130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140128

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee