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
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
本發明有關於一種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)
- 一種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服務。
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)
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 |
-
2018
- 2018-02-14 TW TW107105568A patent/TWI654858B/zh active
Patent Citations (3)
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)
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接続装置、パケット制御方法、及びプログラム |