NAT的實現方式有三種,即靜態轉換Static Nat、動態轉換Dynamic Nat和端口多路復用OverLoad。
靜態轉換是指內部本地地址一對一轉換成內部全局地址,相當內部本地的每一臺PC都綁定了一個全局地址。一般用于在內網中對外提供服務的服務器。?[3]
動態轉換是指將內部網絡的私有IP地址轉換為公用IP地址時,IP地址是不確定的,是隨機的,所有被授權訪問上Internet的私有IP地址可隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行動態轉換。動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少于網絡內部的計算機數量時。可以采用動態轉換的方式。
端口多路復用(Port address Translation,PAT)是指改變外出數據包的源端口并進行端口轉換,即端口地址轉換(PAT,Port Address Translation).采用端口多路復用方式。內部網絡的所有主機均可共享一個合法外部IP地址實現對Internet的訪問,從而可以最大限度地節約IP地址資源。同時,又可隱藏網絡內部的所有主機,有效避免來自internet的攻擊。因此,網絡中應用最多的就是端口多路復用方式。
當有多臺設備訪問互聯網時,一般向ISP申請一個IP,然后通過路由器構建一個局域網讓所有設備上網,這種使用的技術叫做NAT。
一、靜態轉換
搭建拓撲結構(外網的設備不要設置網關):
由于外網的設備不知道局域網的存在,此時PC0無法ping通PC1:
通過NAT的靜態轉換,分別為192.168.0.1和192.168.0.2設置外網IP,其對應關系如下:
192.168.0.1 | 10.0.0.2 |
192.168.0.2 | 10.0.0.3 |
操作步驟如下:
現在當外網的PC想要訪問192.168.0.1,可以通過10.0.0.2訪問:
查看nat表:
二、動態NAT
搭建如下拓撲:
對路由器進行如下配置:
相關說明
- 定義內部網絡中允許訪問外部網絡的訪問控制列表:
Router(config)#access-list acl表號 permit或deny 網絡號 子網掩碼反碼
進行如下配置:
ping外網測試:
查看轉換表:
三、PAT
繪制拓撲結構:
配置PAT:
打開路由器debug功能:
ping外網:
查看路由器debug日志,方括號內為端口號:
可以看到,內網公用一個IP地址,但是不同的設備通過不同的端口訪問互聯網。
四、端口映射實戰
在日常生活中,我們通常連接的網絡都是局域網,在局域網內搭建的服務器外網常常無法訪問,那么我們可以通過端口映射,使得外網可以訪問內網服務器。
搭建如下的拓撲結構并設置IP地址,右邊的設備IP地址不要設置:
開啟DHCP服務器:
無線路由器默認為DHCP獲取IP地址,這里可以看到路由器的IP地址是10.0.0.4:
右邊的服務器請求IP:
右邊的PC2請求IP:
PC2可以ping PC1:
但是PC0和PC1無法訪問右側的服務器,因為他再內網里面,下面通過端口映射,使得PC0和PC1可以訪問右側的服務器,對無線路由器進行以下配置:
PC0和PC1都可以訪問右側的服務器(注意,這里的IP地址是路由器的IP地址,路由器把這個端口數據轉發到了服務器):