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 + sessionIDsession
NAT是 Network Address Translation 網絡地址轉換的縮寫。
NAT是將私有IP地址經過邊界路由轉換成外網IP地址,在邊界路由的NAT地址轉換表記錄下這個轉換映射記錄,當外部數據返回時,路由使用NAT技術查詢NAT轉換表,再將目標地址替換成內網用戶IP地址。3d
RFC1918規定了三塊專有的地址,做爲私有的內部組網使用:blog
這三塊私有地址自己是可路由的,只是公網上的路由器不會轉發這三塊私有地址的流量;當一個公司內部配置了這些私有地址後,內部的計算機在和外網通訊時,公司的邊界路由會經過NAT或者PAT技術,將內部的私有地址轉換成外網IP,外部看到的源地址是公司邊界路由轉換過的公網IP地址,這在某種意義上也增長了內部網絡的安全性。
路由
假設一種場景,公司對外的有兩個公網IP地址是 191.4.4.1/191.4.4.2,有兩臺主機A和B,局域網地址分別是192.168.1.2和192.168.1.3
io
靜態NAT就是一對一映射,內部有多少私有地址須要和外部通訊,就要配置多少外網IP地址與其對應,並不節省外網IP,因此通常不用
配置
動態NAT是在路由器上配置一個外網IP地址池,當內部有計算機須要和外部通訊時,就從地址池裏動態的取出一個外網IP,並將他們的對應關係綁定到NAT表中,通訊結束後,這個外網IP才被釋放,可供其餘內部IP地址轉換使用,這個DHCP租約IP有類似之處。路由器
這是最經常使用的NAT技術,也是IPv4可以維持到今天的最重要的緣由之一,它提供了一種多對一的方式,對多個內網IP地址,邊界路由能夠給他們分配一個外網IP,利用這個外網IP的不一樣端口和外部進行通訊。im