IP位址隻有32位,最多隻有42.9億個位址,還要去掉保留位址、多點傳播位址,能用的位址隻有36億左右,但是當下有數以萬億的主機,沒有這麼多IP位址怎麼辦,後面有了IPv6,但是當下IPv4還是主流,利用IPv4怎麼滿足這麼多主機的IP位址呢?答案就是NAT,NAT技術使公司、機構以及個人産生以及區域網路,然後在各個區域網路的邊界WAN端口使用一個或多個公網的IPv4進行一對多轉換
NAT使用基于session的轉換規則
TCP/UDP :私有Host的Ipv4 + port <======> NAT公網的Ipv4 + port
ICMP :私有Host的Ipv4 + sessionID <======> NAT公網的Ipv4 + sessionID
NAT是 Network Address Translation 網絡位址轉換的縮寫。
NAT是将私有IP位址通過邊界路由轉換成外網IP位址,在邊界路由的NAT位址轉換表記錄下這個轉換映射記錄,當外部資料傳回時,路由使用NAT技術查詢NAT轉換表,再将目标位址替換成内網使用者IP位址。
RFC1918規定了三塊專有的位址,作為私有的内部組網使用:
A類:10.0.0.0—10.255.255.255 10.0.0.0/8
B類:172.16.0.0—172.31.255.255 172.16.0.0/12
C類:192.168.0.0—192.168.255.255 192.168.0.0/16
這三塊私有位址本身是可路由的,隻是公網上的路由器不會轉發這三塊私有位址的流量;當一個公司内部配置了這些私有位址後,内部的計算機在和外網通信時,公司的邊界路由會通過NAT或者PAT技術,将内部的私有位址轉換成外網IP,外部看到的源位址是公司邊界路由轉換過的公網IP位址,這在某種意義上也增加了内部網絡的安全性。
假設一種場景,公司對外的有兩個公網IP位址是 191.4.4.1/191.4.4.2,有兩台主機A和B,區域網路位址分别是192.168.1.2和192.168.1.3
靜态NAT就是一對一映射,内部有多少私有位址需要和外部通信,就要配置多少外網IP位址與其對應,并不節省外網IP,是以一般不用
動态NAT是在路由器上配置一個外網IP位址池,當内部有計算機需要和外部通信時,就從位址池裡動态的取出一個外網IP,并将他們的對應關系綁定到NAT表中,通信結束後,這個外網IP才被釋放,可供其他内部IP位址轉換使用,這個DHCP租約IP有相似之處。
這是最常用的NAT技術,也是IPv4能夠維持到今天的最重要的原因之一,它提供了一種多對一的方式,對多個内網IP位址,邊界路由可以給他們配置設定一個外網IP,利用這個外網IP的不同端口和外部進行通信。
本文轉自 sshpp 51CTO部落格,原文連結:http://blog.51cto.com/12902932/1924613,如需轉載請自行聯系原作者