03.04 「詳解」網絡地址轉換-NAT

隨著Internet的發展和網絡應用的增多,IPv4地址枯竭已經成為制約網絡發展的瓶頸。儘管IPv6可以從根本上解決IPv4地址空間不足的問題,但目前眾多的網絡設備和網絡應用仍是基於IPv4的,因此在IPv6廣泛應用之前,一些過渡技術的使用是解決這個問題的主要技術手段。

NAT 英文全稱 “Network Address Translation”,中文意思是“網絡地址轉換”,它是一個 IETF(Internet Engineering Task Force, Internet 工程任務組) 標準,允許一個整體機構以一個公用 IP(Internet Protocol)地址出現在 Internet上。

顧名思義,它是一種把內部私有網絡地址(IP 地址)翻譯成合法網絡 IP 地址的技術。因此NAT 在一定程度上,能夠有效的解決公網地址不足的問題。


NAT 主要可以實現以下幾個功能:

數據偽裝:

可以將內網數據包中的地址信息更改成統一的對外地址信息,不讓內網主機直接暴露在因特網上,保證內網主機的安全。同時,該功能也常用來實現共享上網。

端口轉發:

當內網主機對外提供服務時,由於使用的是內部私有 IP 地址,外網無法直接訪問。因此,需要在網關上進行端口轉發,將特定服務的數據包轉發給內網主機(外網主動訪問內網的情況,外網用戶必須要知道訪問那個端口可以跳到要訪問的主機上)。

負載均衡:

目的地址轉換 NAT 可以重定向一些服務器的連接到其他隨機選定的服務器。

失效終結:

目的地址轉換 NAT 可以用來提供高可靠性的服務。如果一個系統有一臺通過路由器訪問的關鍵服務器,一旦路由器檢測到該服務器當機,它可以使用目的地址轉換 NAT 透明的把連接轉移到一個備份服務器上。

透明代理:

NAT 可以把連接到因特網的 HTTP 連接重定向到一個指定的 HTTP 代理服務器以緩存數據和過濾請求。一些因特網服務提供商就使用這種技術來減少帶寬的使用而不用讓他們的客戶配置他們的瀏覽器支持代理連接。


NAT 有三種類型:


靜態NAT

靜態NAT是指將內網IP轉換為公網IP時,內網IP和外網IP的映射關係是一對一的永久映射,可以實現外部網絡對內部服務器的訪問。

原理圖如下所示,內部IP(192.168.1.1)永久映射為外部公網IP(200.1.1.100)。

「詳解」網絡地址轉換-NAT

動態NAT

動態NAT是指將內網IP轉換為公網IP時,IP地址是不確定的,也就是說,只要指定哪些內網IP可以進行轉換,以及用哪些合法公網IP作為外部地址,就可以動態的將一個內網IP地址映射到公網IP地址池中的一個公網IP。當可用的合法IP地址略少於網絡內部計算機數量時,可以使用動態地址NAT。

原理圖如下所示,內部IP(192.168.1.1)動態映射為公網IP地址池中(200.1.1.100~200.1.1.110)的一個外部公網IP(200.1.1.100)。

「詳解」網絡地址轉換-NAT

網絡地址端口轉換NAPT

網絡地址端口轉換NAPT是業界使用最廣泛的NAT類型,指將多個內網IP動態轉換為同一個公網IP,使用不同的端口號來區分不同的主機。

原理圖如下所示,內部IP(192.168.1.1)動態映射為公網IP地址池中(200.1.1.100~200.1.1.110)的一個外部公網IP(200.1.1.100)。內網端口1066映射為外網端口1024。

「詳解」網絡地址轉換-NAT

結語

可以看出 NAT 這技術是工作在較為底層的網絡協議上,操作的是數據包,當然網絡的分層也僅僅是邏輯上的概念,所以 NAT 技術你既可以使用物理硬件來做,例如路由器之類;也可以是應用軟件來做,例如各種代理軟件,不用死板的認為涉及到數據包的處理就得是硬件乾的活。

當然,具體到 NAT,因為它的功用性,一般是在物理層面做的,例如路由器上,畢竟它的主要作用就是讓多臺電腦使用一個共用 IP 來上網。

如果你使用過虛擬機,大概也能理解你可以給虛擬機設置 NAT 上網方式,這樣你的主機就相當於一個 NAT 設備了,這樣就不需要其他的物理設備。

無論你幾個主機使用一個 IP,只要用路由器,總是繞不開 NAT,因為你的網絡肯定要分內網和外網,你連上路由器分配的就是一個內網地址,這樣你發的所有數據包源地址都是一個內網地址,所以必須要 NAT,除非你是直接懟了 WAN 口的網線,用寬帶撥號上網。


分享到:


相關文章: