NAT
在計算器網絡中,網絡地址轉換(Network Address Translation,縮寫為NAT),也叫做網絡掩蔽或者IP掩蔽(IP masquerading)
是一種IP數據包在通過路由器或防火牆時,重寫來源IP地址或目的IP地址的技術。這種技術被普遍使用在有多台主機但只通過一個公有IP地址訪問因特網的私有網絡中。它是一個方便且得到了廣泛應用的技術。
當然,NAT也讓主機之間的通信變得復雜,導致了通信效率的降低。
NAT有三種類型:靜態NAT(Static NAT)、動態地址NAT(Pooled NAT)、網絡地址端口轉換NAPT(Network Address Port Translation)=端口地址轉換(PortAdressTranslation,PAT)(早期叫PAT,后來改為NAPT,多了個P,被分類為NAT一種...)
靜態NAT設置起來最為簡單和最容易實現的一種,內部網絡中的每個主機都被永久映射成外部網絡中的某個合法的地址。當一個內部主機必須被作為一個固定的外部地址訪問時,通過靜態NAT實現。
動態NAT則是在外部網絡中定 義了一系列的合法地址(地址池),采用動態分配的方法映射到內部網絡。動態NAT轉換的工作過程是這樣的,當有一個內部主機需要訪問外網時,從公用IP地址池中取出一個可用的地址分配給該主機使用。當通信完成后,所獲取的公用IP地址也被釋放回地址池中。外部公用IP在被分配給一個內部主機通信使用時,該地址不能再次被分配給其他內部主機使用。
動態地址NAT只是轉換IP地址,它為每一個內部的IP地址分配一個臨時的外部IP地址,主要應用於撥號,對於頻繁的遠程聯接也可以采用動態NAT。當遠程用戶聯接上之后,動態地址NAT就會分配給他一個IP地址,用戶斷開時,這個IP地址就會被釋放而留待以后使用。
PAT/NAPT(Network Address Port Translation),即網絡端口地址轉換,NAPT是把內部地址(IP+端口)映射到外部網絡的一個IP地址的不同端口上(路由防火牆等網關IP+端口)。NAPT可將多個內部地址映射為一個合法公網地址,但以不同的協議端口號與不同的內部地址相對應,也就是<內部地址+內部端口>與<外部地址+外部端口>之間的轉換。NAPT普遍用於接入設備中,它可以將中小型的網絡隱藏在一個合法的IP地址后面。
NAPT與動態地址NAT不同,它將多個內部連接映射到外部網絡中的一個單獨的IP地址上,同時在該地址上加上一個由NAT設備選定的TCP端口號。即在NAT路由器中存儲一張NAT轉換表(NAT translation table),表中記錄了<內部地址+內部端口>與<外部地址+外部端口>的對應關系。當外部報文到達NAT路由器時,它們都有相同的IP,該路由器就通過過NAT轉換表尋找源IP地址
在Internet 中使用NAPT時,所有不同的信息流看起來好像來源於同一個IP地址。這個優點在小型辦公室內非常實用,通過從ISP處申請的一個IP地址,將多個連接通 過NAPT接入Internet。實際上,許多SOHO遠程訪問設備支持基於PPP的動態IP地址。這樣,ISP甚至不需要支持NAPT,就可以做到多個 內部IP地址共用一個外部IP地址上Internet,雖然這樣會導致信道的一定擁塞,但考慮到節省的ISP上網費用和易管理的特點,用NAPT還是很值 得的。
動態/靜態NAT都是一對一的轉換,而NAPT是一對多的轉換...
動態NAT一般比較少,一般用靜態NAT/動態PAT比較多...
NAT的特點是在NAT網關上建立一個NAT映射表,里面記錄了每個公網IP對應的私網IP的轉換。局限是公網IP數量有限...
NAT包括靜態NAT和動態NAT 還有就是NATP(PAT)
靜態NAT是一對一,一個內網ip對一個公網ip
動態NAT是一對一,有外網ip池,用完了釋放,可重復利用
PAT是一對多(內網IP+端口,映射到外部路由防火牆等網關IP+端口)
端口映射(虛擬服務器)
端口映射一般指的是讓外網訪問內網機器...
例如:通過路由器上網的,輸入192.168.1.2可以訪問內部網站,但外部客戶就看不到...
端口映射是將一台主機的內網IP+端口映射成一個外網P+端口,當用戶訪問提供映射端口主機的某個端口時,服務器將請求轉移到本地局域網內部提供這種特定服務的主機;
外網要訪問你這個內網主機,目的地址就是公網IP和代表你的端口號(這里也涉及一個映射回去的問題,也就是端口映射)
端口映射比如你訪問163網頁用的是80端口,實際上在163那邊可能是個負載均衡設備開放的80端口,而在負載均衡下面的服務器提供網頁訪問的端口可能是8080
端口映射很像是PAT...端口映射是在端口映射表上弄的,PAT是隨機使用內部端口及外部網關端口發送訪問請求都是隨機的(確切地說是不固定,以及可空閑,只在發送時使用),數據返回時也使用該臨時通道;而端口映射是固定維持一條通道上,綁定了內部端口到外部網關端口...
PAT都是動態的(網關分配一段端口區間來提供內網訪問外網需求)...(內網各機器各程序開放端口發起訪問請求,然后數據包提交到網關,進行過濾和監控,並生成一個隨機外部端口發送到外網...類似臨時通道...),端口映射的級別大於PAT(端口被占用的話...)
DMZ主機與端口映射有什么區別嗎?
端口映射只是映射指定的端口,DMZ相當於映射所有的端口,並且直接把主機暴露在網關中,比端口映射方便但是不安全
DMZ:就相當於DNAT(Destination NAT),只對目的IP地址做地址轉換。也就是說,收到目的IP為自己WAN口的包,統統轉發給內網的某個IP(你所配置),當然轉發的過程中,對目的IP做了NAT。
在 "轉發規則" 里面的 "DMZ主機" 里面,填入內部網主機IP即可...端口映射是"虛擬服務器"
端口映射:針對某些特定的包進行DNAT。這里跟傳統的SNAT有些類似,要檢測5元組(源IP,目的IP,協議類型,源端口,目的端口),只是做NAT的時候,是針對目的IP做NAT,而不是源IP。
外網訪問內網(內網穿透)
端口映射,或花生殼NAT-DDNS等(固定域名,動態ip解析),還有其他各種映射工具(PortTunnel,Nat123,RineTD;ssh轉發,Holder;ftp等反向代理穿透)
高級進階:https://blog.csdn.net/zbgjhy88/article/details/55289785
禁止公司電腦訪問外網
1.只在電腦配置時候給限定機器僅配置IP地址即可,其他網關、dns不配置。
2.可以通過網管軟件實現,如網路崗。
3.如果是智能交換機,可以進入超級終端配置路由即可。或者防火牆...
NAT穿透方法
目前常用的針對UDP的NAT 穿透(NAT Traversal)方法主要有:STUN、TURN、ICE、uPnP等。其中ICE方式由於其結合了STUN和TURN的特點,所以使用最為廣泛。針對TCP的NAT穿透技術目前仍為難點。實用的技術仍然不多。
uPnp。對於NAT穿越技術,http://www.wildlee.org/2010_12_1227.html這篇文件可以看一看。
一些現在常用的技術:
ALG(應用層網關):它可以是一個設備或插件,用於支持SIP協議,主要類似與在網關上專門開辟一個通道,用於建立內網與外網的連接,也就是說,這是一種定制的網關。更多只適用於使用他們的應用群體內部之間。
UpnP:它是讓網關設備在進行工作時尋找一個全球共享的可路由IP來作為通道,這樣避免端口造成的影響。要求設備支持且開啟upnp功能,但大部分時候,這些功能處於安全考慮,是被關閉的。即時開啟,實際應用效果還沒經過測試。
STUN(Simple Traversalof UDP Through Network):這種方式即是類似於我們上面舉例中服務器C的處理方式。也是目前普遍采用的方式。但具體實現要比我們描述的復雜許多,光是做網關Nat類型判斷就由許多工作,RFC3489中詳細描述了。
TURN(Traveral Using Relay NAT):該方式是將所有的數據交換都經由服務器來完成,這樣NAT將沒有障礙,但服務器的負載、丟包、延遲性就是很大的問題。目前很多游戲均采用該方式避開NAT的問題。這種方式不叫p2p。
ICE(Interactive Connectivity Establishment):是對上述各種技術的綜合,但明顯帶來了復雜性。
(轉)部分源自此處,以及網絡...
https://www.cnblogs.com/vincently/p/4620167.html
更高級進階...
NAT原理與NAT穿透
https://blog.csdn.net/byxdaz/article/details/52785697