TWI654858B - Vpn中穿越nat的方法 - Google Patents

Vpn中穿越nat的方法

Info

Publication number
TWI654858B
TWI654858B TW107105568A TW107105568A TWI654858B TW I654858 B TWI654858 B TW I654858B TW 107105568 A TW107105568 A TW 107105568A TW 107105568 A TW107105568 A TW 107105568A TW I654858 B TWI654858 B TW I654858B
Authority
TW
Taiwan
Prior art keywords
nat
vpn service
destination
dnat
proxy server
Prior art date
Application number
TW107105568A
Other languages
English (en)
Other versions
TW201935892A (zh
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 TW107105568A priority Critical patent/TWI654858B/zh
Application granted granted Critical
Publication of TWI654858B publication Critical patent/TWI654858B/zh
Publication of TW201935892A publication Critical patent/TW201935892A/zh

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本發明提供一種VPN中穿越NAT的方法,使VPN能偵測出其外側NAT通訊埠口的分配規則,於是達成穿越NAT的目的。本發明在一網路通信架構中,包含一公眾網段、一客戶網段、一目的網段、一第一NAT、一第二NAT。在第一NAT與第二NAT之間設置一DNAT-T代理伺服器,其作用是使VPN送出資料之前,經過多次(N次)註冊程序,以偵知DNAT-T代理伺服器分配NAT通訊埠的規律變化,並將DNAT-T代理伺服器下一步分配NAT的通訊埠號碼互相告知對方,如此則雙方資料封包就能互相穿越NAT。

Description

VPN中穿越NAT的方法
本發明有關於一種NAT(Network Address Translator)穿越法,尤指一種在VPN(虛擬私人網路,Virtual Private Network)中之NAT穿越法,使VPN能利用公眾網路而穿越NAT無阻。
虛擬私人網路(Virtual Private Network,縮寫VPN)是一種用於連接中、大型企業或團體與團體間的私人網路通訊架構。虛擬私人網路的資料透過公用的網路架構(例如網際網路)傳送其內部網路的資料。
請見圖1,其為VPN利用公眾網路傳送資料的示意圖。在A網段1的客戶電腦2欲將資料3透過客戶VPN服務4經由公眾網段5(例如網際網路)透過目的VPN服務6送到B網段7的目的電腦8。
資料3從A網段1透過客戶VPN服務4送出之前,客戶VPN服務4先配發B網段7的一組IP給客戶電腦2,於是所送出的資料3後面會加兩段訊息,一是TCP/UDP標頭(TCP,傳輸控制協定,Transmission Control Protocol)(UDP,用戶封包協定,User Datagram Protocol),二是B網段來源IP與B網段目的IP。B網段來源IP與B網段目的IP是資料3送到B網段後所使用的IP。
資料3送到公眾網段5時,會在最後面再加上一段訊息,即客戶外部IP與目的外部IP,此二IP分別是公眾網段5配發給客戶VPN服務4與目的VPN服務6的IP。
資料3由公眾網段5經由目的VPN服務6送入B網段7 後,脫除客戶外部IP與目的外部IP,然後將資料3送入目的電腦8。
在目前的網路環境中,愈來愈多的人架設NAT(Network Address Translator)伺服器。網路位址轉換(Network Address Translation,NAT)是一種防火牆作用,是在IP封包通過時重寫來源IP位址或目的IP位址的一種技術。
請見圖2,若將一NAT 9裝在一般的區域網路與公眾網段5之間,當資料3由左邊區域網路出來時,其後面所附加的區域網路來源IP會被NAT 9改成NAT 9的外部IP;而且來源埠口X會被NAT 9改成Z。
請見圖3,若將NAT 9裝在客戶VPN服務4與公眾網段5之間,當資料3由客戶VPN服務4出來時,NAT 9發現在TCP/UDP標頭後面所附加的兩段訊息不如圖2單純,不能識別,因此不知如何將其改成NAT 9的外部IP,因此會採取丟棄的處理,於是破壞了資料的連續性。
有一種簡單克服圖3困境的辦法如圖4所示,即在資料3由客戶VPN服務4出來時,多加一段UDP標頭,在UDP標頭之後附加客戶外部IP與目的外部IP,於是NAT 9可以將客戶外部IP改成NAT 9的外部IP,使資料3經由公眾網段5出境而抵達目的VPN服務6。此法稱為NAT-T法。
請見圖5,若目的VPN服務6的外面也設置一NAT 10,則因為目的VPN服務6是被動接收資料,並不會主動發送封包至NAT 10外面,所以NAT 10的埠口Y不會主動事先開啟而接收外來的資料傳入NAT 10內部,所以資料3仍然被擋住。
本發明的目的在提出一種VPN中穿越NAT的方法,使VPN能偵測出其外側NAT的通訊埠口的分配規則,於是達成穿越NAT的目的。
本發明在一網路通信架構中,包含一公眾網段、一客戶網段與一目的網段;在客戶VPN服務與公眾網段之間設置一第一NAT,在目的 VPN服務與公眾網段之間設置一第二NAT;在第一NAT與第二NAT之間設置一DNAT-T代理伺服器,其作用是使客戶VPN服務傳送一資料給目的VPN服務時能穿越第一NAT與第二NAT,其步驟如下:
客戶VPN服務、目的VPN服務都向DNAT-T代理伺服器進行註冊程序,分別送出一Register封包至DNAT-T代理伺服器,DNAT-T代理伺服器分別以一Register ACK回應客戶VPN服務、目的VPN服務。
當客戶VPN服務欲傳送資料給目的VPN服務時,客戶VPN服務發送一NAT Test封包給DNAT-T代理伺服器,DNAT-T代理伺服器則回應一Response NAT(IPA:PA1)告知第一NAT的客戶外部IP為IPA,其埠口為PA1
如此檢測多次(N次),得知第一NAT的埠口分配規則,得知下次的分配是IPA:PAn+1
此後客戶VPN服務以一Tell(IPA:PAn+1)封包透過先前客戶VPN服務的註冊程序通路告知DNAT-T代理伺服器,DNAT-T代理伺服器則將此資訊Tell(IPA:PAn+1)透過先前目的VPN服務的註冊程序通路,送給目的VPN服務。
當目的VPN服務收到Tell(IPA:PAn+1)訊息後,則同樣對DNAT-T代理伺服器進行多次(N次)NAT Test,得知下次的分配是IPB:PBn+1
此後目的VPN服務以Tell ACK(IPB:PBn+1)透過先前目的VPN服務的註冊程序通路告知DNAT-T代理伺服器,DNAT-T代理伺服器則將此資訊Tell ACK(IPA:PAn+1)透過先前客戶VPN服務的註冊程序通路,送給客戶VPN服務;同時DNAT-T代理伺服器也會發送一SYNC同步信號封包給目的VPN服務。
當客戶VPN服務收到IPB:PBn+1訊息,開始進行穿越,將資料直接發送至IPB:PBn+1;當目的VPN服務收到SYNC同步信號封包,也 進行穿越,將資料發送至IPA:PAn+1;如此則雙邊資料就能互相穿越第一NAT與第二NAT。
本發明在穿越第一NAT與第二NAT後,客戶VPN服務送出資料,該資料後面會加上四段訊息,一是TCP/UDP標頭,二是目地網段來源IP與目的網段目的IP,三是一額外的UDP標頭,四是一客戶外部IP與一目的外部IP,於是使第一NAT將客戶外部IP改成第一NAT的一外部IP,使資料可以直接穿越第一NAT、公眾網段、第二NAT而抵達目的VPN服務。
1‧‧‧A網段
2‧‧‧客戶電腦
3‧‧‧資料
4‧‧‧客戶VPN服務
5‧‧‧公眾網段
6‧‧‧目的VPN服務
7‧‧‧B網段
8‧‧‧目的電腦
9‧‧‧NAT
10‧‧‧NAT
11‧‧‧DNAT-T代理伺服器
圖1為VPN利用公眾網路傳送資料示意圖。
圖2為NAT裝在一般區域網路與公眾網段之間的示意圖。
圖3為NAT裝在客戶VPN服務與公眾網段之間的示意圖。
圖4為NAT-T方法示意圖。
圖5為目的VPN服務外面設置NAT示意圖。
圖6為本發明在VPN中穿越NAT的方法示意圖。
圖7為本發明DNAT-T協定之流程說明圖。
請見圖6,為本發明在VPN中穿越NAT的方法示意圖。在公眾網段5設置一DNAT-T(Dual NAT Traversal)代理伺服器11,其面對客戶VPN服務4、NAT 9、NAT 10、目的VPN服務6的環境,可以打通VPN通道,使客戶VPN服務4、目的VPN服務6的資料能直接交流。
請見圖7,說明本發明DNAT-T協定(Dual NAT Traversal protocol)。本發明DNAT-T(Dual NAT Traversal)代理伺服器11存有本發明的DNAT-T協定相關軟體,以處理客戶VPN服務4、目的VPN服務6的資料直接交流。
在客戶VPN服務4送出資料3之前,必須經過多次(N次)註冊程序,此註冊程序是為了偵知DNAT-T代理伺服器11分配通訊埠的規律變化。在做完N次偵測程序後,客戶VPN服務4送出資料3時,便會依據DNAT-T代理伺服器11分配通訊埠的規律變化,預測出DNAT-T代理伺服器11所將分配的通訊埠號碼。
首先客戶VPN服務4、目的VPN服務6都向DNAT-T代理伺服器11進行註冊程序,分別送出Register封包至DNAT-T代理伺服器11,DNAT-T代理伺服器11分別以Register ACK回應客戶VPN服務4、目的VPN服務6。此舉是為了保證DNAT-T代理伺服器11與雙邊VPN服務能暢通無阻。
當客戶VPN服務4欲連線至目的VPN 6服務時,客戶VPN服務4發送一NAT Test封包給DNAT-T代理伺服器11,DNAT-T代理伺服器11則回應Response NAT(IPA:PA1)告知NAT 9的客戶外部IP為IPA,其埠口為PA1
如此檢測多次(N次),得知NAT9埠口的分配規則,得知下次的分配是IPA:PAn+1
此後客戶VPN服務4以Tell(IPA:PAn+1)透過客戶VPN服務4先前的註冊程序通路告知DNAT-T代理伺服器11,DNAT-T代理伺服器11則將此資訊Tell(IPA:PAn+1)透過目的VPN服務6先前的註冊程序通路,送給目的VPN服務6。
當目的VPN服務6收到Tell(IPA:PAn+1)訊息後,則同樣進行多次(N次)NAT Test,得知下次的分配是IPB:PBn+1
此後目的VPN服務6以Tell ACK(IPB:PBn+1)透過目的VPN服務6先前的註冊程序通路告知DNAT-T代理伺服器11,DNAT-T代理伺服器11則將此資訊Tell ACK(IPB:PBn+1)透過客戶VPN服務4先前的註冊程序通路送給客戶VPN服務4。同時DNAT-T代理伺服器11也會發送一個 SYNC同步信號封包給目的VPN服務6。
當客戶VPN服務4收到IPB:PBn+1訊息,開始進行穿越,將資料3直接發送至IPB:PBn+1。當目的VPN服務6收到SYNC同步信號封包,也進行穿越,將資料3發送至IPA:PAn+1。如此則雙邊資料3就能互相穿越NAT 9、NAT 10。
此後進行VPN的NAT-T方法,如圖4所示,結果解決雙邊VPN服務同時位於NAT之下的問題。
本發明的精神與範圍決定於下面的申請專利範圍,不受限於上述實施例。

Claims (1)

  1. 一種VPN中穿越NAT的方法,在一網路通信架構中,包含一公眾網段、一客戶網段與一目的網段;該客戶網段與該目的網段分別使用一客戶VPN服務與一目的VPN服務經由該公眾網段而傳送一資料;在該客戶VPN服務與該公眾網段之間設置一第一NAT,在該目的VPN服務與該公眾網段之間設置一第二NAT;在該第一NAT與該第二NAT之間設置一DNAT-T代理伺服器,其作用是使客戶VPN服務傳送該資料給目的VPN服務時能穿越第一NAT與第二NAT,包含步驟如下:a.客戶VPN服務、目的VPN服務都向DNAT-T代理伺服器進行註冊程序,分別送出一Register封包至DNAT-T代理伺服器,DNAT-T代理伺服器分別以一Register ACK回應客戶VPN服務、目的VPN服務;b.當客戶VPN服務欲傳送資料給目的VPN服務時,客戶VPN服務發送一NAT Test封包給DNAT-T代理伺服器,DNAT-T代理伺服器則回應一Response NAT(IPA:PA1)告知第一NAT的客戶外部IP為IPA,其埠口為PA1;c.如此檢測多次(N次),得知第一NAT的埠口分配規則,得知下次的分配是IPA:PAn+1;d.此後客戶VPN服務以一Tell(IPA:PAn+1)封包透過步驟a.中客戶VPN服務的註冊程序通路告知DNAT-T代理伺服器,DNAT-T代理伺服器則將此資訊Tell(IPA:PAn+1)透過步驟a.中目的VPN服務的註冊程序通路,送給目的VPN服務;e.當目的VPN服務收到Tell(IPA:PAn+1)訊息後,則同樣對DNAT-T代理伺服器進行多次(N次)NAT Test,得知下次的分配是IPB:PBn+1;f.此後目的VPN服務以Tell ACK(IPB:PBn+1)透過步驟a.中目的 VPN服務的註冊程序通路告知DNAT-T代理伺服器,DNAT-T代理伺服器則將此資訊Tell ACK(IPB:PBn+1)透過步驟a.中客戶VPN服務的註冊程序通路,送給客戶VPN服務;同時DNAT-T代理伺服器也會發送一SYNC同步信號封包給目的VPN服務;g.當客戶VPN服務收到IPB:PBn+1訊息,開始進行穿越,將資料直接發送至IPB:PBn+1;當目的VPN服務收到SYNC同步信號封包,也進行穿越,將資料發送至IPA:PAn+1;如此則雙邊資料就能互相穿越第一NAT與第二NAT;h.客戶VPN服務送出該資料時,該資料後面會加上四段訊息,一是TCP/UDP標頭,二是目地網段來源IP與目的網段目的IP,三是一額外的UDP標頭,四是一客戶外部IP與一目的外部IP,於是使第一NAT將客戶外部IP改成第一NAT的一外部IP,使資料可以直接穿越第一NAT、公眾網段、第二NAT而抵達目的VPN服務。
TW107105568A 2018-02-14 2018-02-14 Vpn中穿越nat的方法 TWI654858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW107105568A TWI654858B (zh) 2018-02-14 2018-02-14 Vpn中穿越nat的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107105568A TWI654858B (zh) 2018-02-14 2018-02-14 Vpn中穿越nat的方法

Publications (2)

Publication Number Publication Date
TWI654858B true TWI654858B (zh) 2019-03-21
TW201935892A TW201935892A (zh) 2019-09-01

Family

ID=66590852

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107105568A TWI654858B (zh) 2018-02-14 2018-02-14 Vpn中穿越nat的方法

Country Status (1)

Country Link
TW (1) TWI654858B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101374141A (zh) 2007-08-23 2009-02-25 浙江省电信有限公司 一种基于pcp协议的tcp nat穿越方法
US20090147795A1 (en) 2006-05-16 2009-06-11 Microsoft Corporation TCP Traversal Through Network Address Translators (NATS)
US20090238209A1 (en) 2006-12-04 2009-09-24 Huawei Technologies Co., Ltd. Method for transmitting fragmented packets, communication system, and tunnel equipment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090147795A1 (en) 2006-05-16 2009-06-11 Microsoft Corporation TCP Traversal Through Network Address Translators (NATS)
US20090238209A1 (en) 2006-12-04 2009-09-24 Huawei Technologies Co., Ltd. Method for transmitting fragmented packets, communication system, and tunnel equipment
CN101374141A (zh) 2007-08-23 2009-02-25 浙江省电信有限公司 一种基于pcp协议的tcp nat穿越方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kazuhiro Tobe, Akihiro Shimoda, and Shigeki Goto, "Extended UDP Multiple Hole Punching Method to Traverse Large Scale NATs", APAN Network Research Workshop 2010 at the 30th APAN Meeting, 2010/8/9.

Also Published As

Publication number Publication date
TW201935892A (zh) 2019-09-01

Similar Documents

Publication Publication Date Title
US10200264B2 (en) Link status monitoring based on packet loss detection
US9819511B2 (en) Bidirectional forwarding detection over a virtual extensible local area network
RU2543304C2 (ru) Способ и устройство, для ретрансляции пакетов
US10110556B2 (en) Methods, systems, and computer readable media for initiating and executing performance tests of a private network and/or components thereof
US11075836B2 (en) Reverse forwarding information base enforcement
EP2057784A2 (en) Improved traceroute using address request messages
JP5362032B2 (ja) 近隣発見プロトコル調停
US9769011B2 (en) Bidirectional forwarding detection over network virtualization using generic routing encapsulation
US9313246B2 (en) Resilient video encoding control via explicit network indication
US20100241710A1 (en) Method and system for videoconferencing or data transfer between clients behind different network address translators
US20140071839A1 (en) Bandwidth Probing Messages
US9559942B2 (en) Media stream providing device and method for connecting thereto, media streaming system, and computer-readable medium
US10673813B2 (en) Method for NAT traversal in VPN
TWI654858B (zh) Vpn中穿越nat的方法
TWI555357B (zh) Effectively maintain the NAT channel service method
WO2015014167A1 (zh) 一种处理原始ip报文的方法和相应装置
JP7326478B2 (ja) トランスポート制御プロトコルのトリップタイムの推定
CN102377834A (zh) 网络地址转换设备及通信方法
JP5547019B2 (ja) NAT(NetworkAddressTranslation)におけるアドレス・ポート数推定方法及び装置及びプログラム
TWI506998B (zh) Icmp敏感性nat之穿越法
Aftab et al. COMPARISON AND TRANSITION STUDY OF INTERNET PROTOCOL VERSION 4 & 6 (IPV4 &IPV6)
Xia The solution of P-teredo service traversing symmetric NAT
TWI559719B (zh) Point-to-point connection through the symmetric network address translation of the network communication system
JP5682934B2 (ja) ネットワークシステムおよびネットワーク管理装置
JP5171608B2 (ja) Vpn接続装置、パケット制御方法、及びプログラム