NAT與NAPT
區別在於,NAT只轉換IP包中的IP地址,NAPT不僅轉換IP包中的IP地址,還對IP包中TCP和UDP的Port進行轉換。
NAT使用期間獨占公網IP,利用率太低。NAPT可以使多台私有網主機利用1個NAT公共IP就可以同時和公共網進行通信。
所以現在說的NAT一般都是NAPT。
一、帶防火牆的NAT
NAT一開始的功能只是一種映射,其功能是將內網IP、端口 映射到 公網 IP 端口;而防火牆的功能是過濾進出內網的數據,帶防火牆功能的NAT,即帶有過濾功能的NAT,即有限制數據功能的NAT。
(1)錐形NAT(cone NAT)
錐型的NAT,內網IP、端口{X:y} 唯一映射到公網IP、端口{A:b},即 {X:y}——>{A:b}
與公網主機建立通信時,將每個公網主機看做一點,這所有的點就相當於一個面,而因為映射 {X:y}——>{A:b}是唯一的,由點{A:b}到面建立連線形成的就是一個錐形
(2)對稱NAT(Symmetric NAT)
與不同的公網主機{IP:port}通信時,內網的IP、端口{X:y} 都會為這一次的通信建立一個唯一的映射:{X:y}——>{IP:port},即每一次的通信映射和公網主機的數量是一一對應的,所以稱為對稱。
二、cone NAT(錐形NAT)
(1)Full cone NAT 完全圓錐型
如上圖所示,內網IP、端口{X:y} 與公網IP、端口{A:b} 建立映射,並綁定 {X:y}——>{A:b}
綁定建立后,無論外部數據來自於哪個公網主機(M、P、S),都允許與內網主機建立通信
(2)Restricted cone NAT 受限圓錐型
在完全圓錐型建立了映射 {X:y}——>{A:b} 的基礎上,此時,公網的主機想要訪問內網主機增加了一條限制
即:內網主機( {X:y}——>{A:b} )訪問過公網主機 P,則主機P可訪問內網主機{X:y},且端口不受限{P:q}、{P:r};而非公網主機P的 M、S均無法訪問內網主機
(3)Port Restricted cone NAT 端口受限圓錐型
在受限圓錐型對IP有限制的基礎上,繼續增加對端口的限制,不僅要是內網主機( {X:y}——>{A:b} )訪問過公網主機 P,還要細化是哪一個端口
即: 映射{X:y}——>{A:b} 訪問過公網主機{M:N},則{M:N}可訪問內網主機{X:y},同為公網的主機S則不可訪問內網 【受限圓錐型】
映射{X:y}——>{A:b} 訪問過公網主機 {P:q},則{P:q}可訪問內網主機 {X:y},同一個IP的{P:r}也不能訪問內網主機【端口受限圓錐型】
三、Symmetric NAT(對稱NAT)
與不同的公網主機{IP:port}通信時,內網的IP、端口{X:y} 都會為這一次的通信建立一個唯一映射,
即: 內網主機{X:y} 訪問過 公網主機{M:n},生成一個映射 {X:y}——>{C:d},公網主機{M:n}就可以訪問內網主機{X:y}同為公網的主機S不可訪問內網
內網主機{X:y} 訪問過 公網主機 {P:q},生成一個映射 {X:y}——>{A:b},公網主機{P:q}就可以訪問內網主機{X:y},同一個IP的{P:r}卻不可訪問內網
四、目前比較常用的NAT類型是完全錐型NAT:
1.首先目前絕大多數的路由器都是非對稱型NAT(Cone NAT),所以P2P技術才能正常使用。 對稱/非對稱的區別主要在於:網關設備在實現NAT時,對於內網某主機的若干個UDP連接請求,網關設備對應地在外網上所建立的UDP端口數量。對稱NAT是一個請求對應一個端口,非對稱NAT是多個請求對應一個端口(象錐形,所以叫Cone NAT)
2.對稱型NAT(Symmetric NAT)是無法實現P2P技術
————————————————
版權聲明:本文為CSDN博主「Rookie_Manito」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Rookie_Manito/article/details/85261097
NAT的四種類型
(轉自:https://blog.csdn.net/mycloudpeak/article/details/53550405)
簡述
基於UDP的P2P應用需要考慮NAT的類型,因為不同的NAT組合的穿透的方式並不一致,有的能通, 有的不能通。
一般來講, NAT可以分為四種類型,分別是:
1, 全錐型(Full Cone)
2, 受限錐型(Restricted Cone), 或者說是IP受限錐型
3, 端口受限錐型(Port Restricted Cone), 或者說是IP + PORT受限錐型
4, 對稱型(Symmetric)
其中1,2,3屬於同一種類型,都是錐型,區別只是路由器的不同的安全策略。
還有些NAT不屬於這四種中的任何一種,就不在本文的討論范圍了。
為什么有四種類型的NAT
NAT緩解了IPV4地址不夠用的問題,同時也也帶了限制,那就是NAT外部的主機無法主動跟位於NAT內部的主機通信,NAT內部主機想要通信,必須主動和公網的一個IP通信,路由器負責建立一個映射關系,從而實現數據的轉發, 這就是NAT的工作原理。
假定
公網server1 ip是1.1.1.1, 監聽端口是1111
公網server2 ip是2.2.2.2, 監聽端口是2222
NAT router ip是8.8.8.8
NAT內部client是192.168.0.3
client發送數據的時候,不管是tcp還是udp必須本地綁定一個端口,一般來講,這個過程都是自動的。
假定client(192.168.0.3, 100)給 server(1.1.1.1, 1111)發送報文,報文到達路由器,路由器在自己的公網ip上開辟一個端口800,從而建立了一個隱射關系(8.8.8.8, 800)<--->(192.168.0.3, 100), 建立映射關系后,所以(192.168.0.3, 100)和(1.1.1.1, 1111)之間的報文都通過這個映射關系進行轉發。
NAT之間主要的區別分兩種情況討論
1:
client(192.168.0.3, 100)和server(1.1.1.1, 1111)在路由器上建立好映射關系后,如果client(192.168.0.3, 100)又給(2.2.2.2, 2222)發送數據,路由器該怎么處理呢?
1, 復用舊的映射關系(8.8.8.8, 800)<--->(192.168.0.3, 100)和(2.2.2.2, 2222)通信, 這就是錐型(Cone) NAT
2, 創建新的映射關系(8.8.8.8, 801)<--->(192.168.0.3, 100)和(2.2.2.2, 2222)通信, 這就是對稱型NAT
注: (8.8.8.8, 801)只是舉例,到底用什么端口取決於路由器的端口管理策略,總之是另外的一個端口,有的路由器有多個公網IP,不同的IP也會參與到這個映射關系中。
2:
client(192.168.0.3, 100)和server(1.1.1.1, 1111)在路由器上建立好映射關系后,如果這個時候路由器(8.8.8.8)在800端口上收到從另外一台server(2.2.2.2, 2222)發來的數據,是不是應該轉發給(192.168.0.3, 100)呢?
有四種情況:
1, 無條件轉發給(192.168.0.3, 100), 這就是全錐型(Full Cone)NAT。
2, 如果(192.168.0.3, 100)之前給(2.2.2.2)發送過數據,則轉發, 這就是受限錐型(Restricted Cone)。
3, 如果(192.168.0.3, 100)之前給(2.2.2.2, 2222)發送過數據,則轉發, 這就是端口受限錐型(Port Restricted Cone)。
4, 丟棄報文,拒絕轉發, 這就是對稱型NAT。
從上面也描述也可以看出,安全性系數, 對稱型 > 端口受限錐型 > 受限錐型 > 全錐型
不同NAT的穿透性
NAT有10種組合
全錐型 全錐型 ✓
全錐型 受限錐型 ✓
全錐型 端口受限錐型 ✓
全錐型 對稱型 ✓
受限錐型 受限錐型 ✓
受限錐型 端口受限錐型 ✓
受限錐型 對稱型 ✓
端口受限錐型 端口受限錐型 ✓
端口受限錐型 對稱型 ✘, 無法打通
對稱型 對稱型 ✘, 無法打通
————————————————
版權聲明:本文為CSDN博主「mycloudpeak」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/mycloudpeak/article/details/53550405
NAT類型科普及一些簡單提升NAT類型的方法
(轉自:https://www.right.com.cn/forum/thread-199299-1-1.html)
首先可以在百度百科了解到什么是“NAT”,傳送門→“NAT科普”
然后呢,看了那么多我們大概就知道了一些關於NAT的基本知識,比如說“定義”、“功能”、“實現方式”及“類型”
提升NAT類型的好處:
瀏覽網頁、觀看視頻、游戲等更順暢,下載速度更穩定快速,
特別是對那些玩ED2K/PT下載、PS4/XBox主機游戲的,
提升NAT類型后更有可能獲取到HigtID、更容易進入游戲房間連線等。
好了,廢話有點多了。
要提升NAT類型,我們必須知道NAT的4個類型:NAT1、NAT2、NAT3、NAT4。
它們分別對應(詳情見百度百科):
NAT1 → Full Cone NAT
NAT2 → Address-Restricted Cone NAT
NAT3 → Port-Restricted Cone NAT
NAT4 → Symmetric NAT
說些比較重要的前話:路由器少一層是一層,這樣越有可能得到NAT1和NAT2這兩類NAT類型。
一般建議家里的網路是以下兩種拓撲類型:
1、光貓橋接→主路由(撥號連接外網用)→副路由(純AP模式,擴展信號)
2、光貓撥號(直接充當主路由)→副路由(純AP模式,擴展信號)
這樣的好處是橋接和純AP是不進行NAT的,而是SWitch,所以不會導致多一層NAT。
如果你的網絡是NAT1,那這是最寬松的網絡環境,你想做什么,基本沒啥限制;
如果是NAT4的話,這是最嚴格的網絡環境,可能會玩不了游戲、下載都沒速度;
一般,我們家里的設備都是通過光貓橋接+無線路由器撥號的形式連接到外網的,
此時,基本是NAT2和NAT3,正常情況對看網頁、游戲及下載都沒有過多的限制。
但是,現在個別網絡游戲嚴格要求你的網絡環境必須是“NAT2”以上(NAT2和NAT1),才能進行游戲。
而你的網絡環境又是"NAT3”及“NAT4",那到底該怎么辦呢?
下面我們介紹一些簡單提升NAT類型的方法,其實就是進行NAT穿透(NAT Traversal):
1、如果你的路由器有啟用“Full Cone”、“STUN”、“TURN”、“ICE”、“uPnP”等功能,果斷都啟用了。
如果沒有的話,你的路由器差不多可以扔了,因為現在的路由器“uPnP”基本是標配,連這都沒有,那你的路由器是有多古董。
2、如果你的路由器沒有以上功能,那可以找下有沒有“DMZ”功能(什么是“DMZ”,請問度娘 → DMZ ),
有的話,可以啟用它,並把你要提升NAT類型的主機IP地址設置好。
(一般建議有“Full Cone”、“uPnP”等,就不要開"DMZ”了,除非你是PS4/XBox這類游戲主機要提升NAT類型)
3、在Windows上把以下三個服務設置為自動啟動,並啟動該服務:
一般這三個服務都會被奇虎360等帶啟動項優化的軟件當做無用啟動項被“優化”成禁止啟動。
怎么手動設置為自動啟動,並啟動,詳情問 → 度娘
Function Discovery Provider Host
Function Discovery Resource Publication
SSDP Discovery
4、在 Windows 防火牆,放行你需要提升NAT類型的軟件或者游戲程序(EXE程序或者UWP程序),
如果你不會放行,也可以直接關閉 Windows 防火牆。(一般不推薦這樣做,還是老話,不懂問“度娘”)
第4步很重要,這步沒做,等於其它的全是在做無用功。
5、如果你的設備是通過電腦共享網絡的形式上網的,建議把這個服務也打開:UPnP Device Host
以上,能弄的都弄了,這樣你的網絡環境就會越好,甚至NAT1都沒有問題。
這是我通過以上設置,進行NAT穿透+公網IP一枚,測得的結果:
妥妥的NAT1
最后附上NAT類型測試工具:
NAT類型測試.zip (490.51 KB, 下載次數: 6388)
P.S.:
1、如果能找運營商要到外網IP,這是最好的,沒有公網IP的話可以打電話給客服,
說“我家的寬帶怎么沒有公網IP啊,我需要在家里安裝遠程監控,沒有公網IP的話不行,如果不給我公網IP,我只好退寬帶換別家的了。”
態度強硬點,最好一開始就把客服的工號也要了,說完上面的,再補上“不給就投訴你。”;
2、還有一種最笨的就是直接電腦撥號上網,Windows 直接把防火牆關了,只要你的是公網IP,妥妥的基本都是NAT1;
3、如果要不到公網IP,能提升到NAT2,這樣也很不錯了;
4、如果你是要提升PS4/XBox這類游戲主機的NAT類型,建議以上能做的都做了。