NAT(Network Address Tranlation )——解決IPV4地址短缺之道的方法初識

什麼是NAT

NAT作爲一種減輕IPv4地址空間耗盡速度的方法,最早出現在Cisco IOS 11.2版本中。

它有什麼用?

  1. IP地址不足;這種通過使用少量的公有IP地址代表較多的私有IP地址的方式,將有助於減緩可用的IP地址空間的枯竭。
  2. 隱藏內部網絡;NAT不僅能解決了lP地址不足的問題,而且還能夠有效地避免來自網絡外部的攻擊,隱藏並保護網絡內部的計算機。NAT 之內的 PC 聯機到 Internet 上面時,他所顯示的 IP 是 NAT 主機的公共 IP,所以Client端的PC當然就具有一定程度的安全了,外界在進行 portscan(端口掃描) 的時候,就偵測不到源Client 端的 PC 。
  3. 能夠處理地址重複情況,避免了地址的重新編號,增加了編址的靈活性。
  4. 可以使多個使用TCP負載特性的服務器之間實現基本的數據包負載均衡。

NAT的實現原理

NAT的原理是,在路由器中維護一張映射表,該表如下表所示:

Protocol Inside Local IP(Address:Port) Inside Global IP(Adress:Port Outside Global IP(IP Address:Port)
TCP 10.1.1.1:80 10.1.1.127:80 172.20.7.3:3058
TCP 10.1.1.2:80 10.1.1.127:80 172.21.7.3:4371
TCP 10.1.1.3:80 10.1.1.127:80 172.20.7.3:3062

在局域網內部網絡中使用內部地址,而當內部節點要與外部網絡進行通訊時,就在路由器(可以理解爲出口,打個比方就像院子的門一樣)處,將內部地址替換成公用地址(不同端口進行標誌),從而在外部公網(internet)上正常使用,NAT可以使多臺計算機共享Internet連接,這一功能很好地解決了公共 IP地址緊缺的問題。

補充知識:內部、外部IP地址

雖然內部地址可以隨機挑選,但是通常使用的是下面的 地址:10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168.255.255。NAT將這些無法在互聯網上使用的保留IP地址翻譯成可以在互聯網上使用的合法IP地址。而全 局地址,是指合法的IP地址,它是由NIC(網絡信息中心)或者ISP(網絡服務提供商)分配的地址,對外代表一個或多個內部局部地址,是全球統一的可尋 址的地址。

它的不足是什麼?

  1. 由於NAT要在邊界路由器上進行地址的轉換,增大了傳輸的延遲。
  2. 由於NAT改動了IP地址,失去了跟蹤端到端IP流量的能力。當出現惡意流量時,會使故障排除和流量跟蹤變的更加棘手。
  3. 不支持一些特定的應用程序。如早期版本的MSN。
  4. 增大了資源開銷。處理NAT進程增加了CPU的負荷,並需要更多內存來存儲NAT表項。

它的種類和特點

NAT的實現方式有三種,即靜態轉換Static Nat、動態轉換DynamicNat和端口多路複用OverLoad。

靜態轉換
靜態轉換是指將內部網絡的私有IP地址轉換爲公有IP地址,IP地址對是一對一的,是一成不變的,某個私有IP地址只轉換爲某個公有IP地址。藉助於靜態轉換,可以實現外部網絡對內部網絡中某些特定設備(如服務器)的訪問。

動態轉換
動態轉換是指將內部網絡的私有IP地址轉換爲公用IP地址時,IP地址是不確定的,是隨機的。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作爲外部地址時,就可以進行動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少於網絡內部的計算機數量時。可以採用動態轉換的方式。

端口多路複用(Port address Translation,PAT)
是指改變外出數據包的源端口並進行端口轉換,即端口地址轉換(PAT,Port Address Translation).採用端口多路複用方式。內部網絡的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節約IP地址資源。同時,又可隱藏網絡內部的所有主機,有效避免來自internet的攻擊。因此,目前網絡中應用最多的就是端口多路複用方式。

應用級網關 ALG(Application Level Gateway)
ALG(Application Level Gateway),即應用程序級網關技術:傳統的NAT技術只對IP層和傳輸層頭部進行轉換處理,但是一些應用層協議,在協議數據報文中包含了地址信息。爲了使得這些應用也能透明地完成NAT轉換,NAT使用一種稱作ALG的技術,它能對這些應用程序在通信時所包含的地址信息也進行相應的NAT轉換。例如:對於FTP協議的PORT/PASV命令、DNS協議的 “A” 和 “PTR” queries命令和部分ICMP消息類型等都需要相應的ALG來支持。

它要怎麼用?

這種方法需要在專用網連接到因特網的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫做NAT路由器,它至少有一個有效的外部全球IP地址。這樣,所有使用本地地址的主機在和外界通信時,都要在NAT路由器上將其本地地址轉換成全球IP地址,才能和因特網連接。


在面試中被問到了,沒有回答出來,因此蒐集資料並總結一下,但是並沒有實際實踐過,記錄在此,留待以後深入。

如果需要更加深入地瞭解,可以參考這篇文章:https://blog.csdn.net/u013597671/article/details/74275852

參考文章:https://blog.csdn.net/houdong/article/details/1515337
https://zhidao.baidu.com/question/7162175.html
http://www.jb51.net/softjc/42802.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章