1. 程式人生 > >【轉載】網路地址轉換(NAT)和埠對映

【轉載】網路地址轉換(NAT)和埠對映

  1. 網路地址轉換(NAT)

1.1 NAT的應用場景

(1)應用場景:允許將私有IP地址對映到公網地址,以減緩IP地址空間的消耗

①需要連線Internet,但主機沒有公網IP地址

②更換了一個新的ISP,需要重新組織網路時,可使用NAT轉換

③需要合併兩個具有相同網路地址的內網

(2)NAT的優缺點

優點 缺點
①節約合法的公網IP地址 ①地址轉換產生交換延遲,也就是消耗路由器效能。
②減少地址重疊現象 ②無法進行端到端的IP跟蹤
③增加連線Internet的靈活性 ③某些應用無法在NAT的網路中執行
④增加內網的安全性

1.2 NAT的型別

(1)靜態NAT

指將內部網路的私有IP地址轉換為公有IP地址,IP地址對是一對一的,即兩個地址的對映關係己繫結死了。某個私有IP地址只轉換為某個公有IP地址,藉助於靜態轉換,可以實現外部網路對內部網路中某些特定裝置(如伺服器)的訪問。

(2)動態NAT

①指將內部網路的私有IP地址轉換為公用IP地址時,IP地址對是不確定的,而是隨機的。所有被授權訪問上Internet的私有IP地址可隨機轉換為任何指定的合法IP地址池中一個IP地址。如果地址池的IP地址做對映用完了,剩餘的內網計算機將不能再訪問外網(本質上,也是一對一的關係,只不過這種關係是動態繫結的!)。

②當要與外界進行通訊的內部節點,如果還沒有建立轉換對映,邊緣路由器將會動態的從公網IP地址池中選擇IP對內部地址進行轉化。每個轉換條目在連線建立時動態建立,而在連線終止時會被回收。因此,外網的計算機不能訪問內網的計算機(因為對映關係是內網計算機發起且連線終止時就回收了!)。

③動態NAT,一般用在當內部網路中只有少數節點與外界建立連線的場合時,因為只有少數的內部地址需要被轉化成全域性地址,可以減少對合法地址的需求。

(3)PAT

①這是最流行的NAT配置型別,實際上是動態NAT的一種形式,它對映多個私有網IP地址到一個公網IP地址,通過使用不同的埠來區分內網主機,被稱為埠地址轉換(PAT,Port Address Translation)。(見後面實驗部分的分析,怎麼用埠區分內網主機?)

②使用PAT時,internet的主機無法訪問內網主機。如果需要這種訪問,則需要做埠對映(注意,埠對映和埠地址轉換PAT是兩個概念!PAT是使得多個內網主機可以通過一個公網IP同時訪問Internet,而埠對映則可以讓internet主機訪問內網主機!見後面《埠對映》的內容)

  1. 實現網路地址轉換

2.1 配置靜態NAT

(1)網路拓撲
對映關係:PCx(10.0.0.y)對映到131.107.0.y;
在這裡插入圖片描述

(2)靜態NAT對映資料包轉換過程

在這裡插入圖片描述

①PC0訪問Internet的Server,資料包經CPE路由器,根據配置的靜態對映,資料包的源地址被131.107.0.2地址替換。

②Server向131.107.0.2傳送返回的資料包,在進入內網時,根據靜態對映表,將會使用PC0的IP地址替換資料包的目標地址(10.0.0.2)。

(3)在CPE路由器上配置靜態對映表

//1. 靜態NAT
Router#conf t
Router(config)#access-list 12 permit 192.168.1.0 0.0.0.255 //定義ACL,只允許192.168.1.0/24網段
Router(config)#line vty 0 15  //進入VTY虛介面,0和15分別表示起始和結束的vty的0-15號介面。
Router(config-line)#access-class 12 in  //將編號為12的ACL繫結到vty
Router(config-line)#

CPE#conf t
CPE(config)#ip nat inside source static 10.0.0.2 131.107.0.2
CPE(config)#ip nat inside source static 10.0.0.3 131.107.0.3
CPE(config)#ip nat inside source static 10.0.0.4 131.107.0.4
CPE(config)#ip nat inside source static 10.0.0.5 131.107.0.5
CPE(config)#ip nat inside source static 10.0.0.6 131.107.0.6
CPE(config)#interface fastEthernet 0/1
CPE(config-if)#ip nat inside                //指定該介面為NAT的內部埠
CPE(config-if)#ex
CPE(config)#interface serial 0/0
CPE(config-if)#ip nat outside               //指定該介面為NAT的外網埠
CPE(config-if)#ex
CPE(config)#exit
CPE#debug ip nat                            //讓路由器顯示NAT資訊

(4)驗證:PCO主機ping 202.99.160.2,同時觀察CPE路由器顯示的NAT資訊(要事先debug ip NAT開啟這個功能!)。同時,由於配置了靜態對映,外網的計算機可能通過訪問131.107.0.6直接訪問內網的WebServer的網站。

2.2 配置動態NAT

(1)網路拓撲
在這裡插入圖片描述

(2)在路由器上配置動態NAT

//1. 在CPE路由器上配置動態NAT
CPE>en
CPE#config t
//定義ACL,如果內網有多個網段需要NAT,則需要在ACL都新增上
CPE(config)#access-list 10 permit 10.0.0.0 0.0.0.255
//指定公網地址池:名稱為mypool,起始和結束地址以及子網掩碼
CPE(config)#ip nat pool mypool 131.107.0.1 131.107.0.3 netmask 255.255.255.0
//將公網地址池與ACL繫結
CPE(config)#ip nat inside source list 10 pool mypool
CPE(config)#interface serial 0/0
CPE(config-if)#ip nat outside    //指定S0/0為NAT的外網介面
CPE(config-if)#ex
CPE(config)#interface fastEthernet 0/1
CPE(config-if)#ip nat inside     //指定f0/1為NAT的內網介面
CPE(config-if)#exit
CPE(config)#exit

//2. 在路由器上檢視NAT配置狀態
CPE#show ip nat statistics 

//3. 檢視NAT地址轉換資訊(要先從內網ping外網主機)
CPE#show ip nat translations

//4. 清轉轉換表中的NAT條目
CPE#clear ip nat translations *

(3)驗證:讓pc0、pc1、pc2、pc3四臺計算機同時ping 202.99.160.2。(只有3臺能ping通,因為地址池只有3個公網IP可被拿來對映!)

2.3 配置PAT

(1)網路拓撲圖(與前面例相同)
在這裡插入圖片描述
(2)埠地址轉換(PAT):源埠的替換
在這裡插入圖片描述

①假設PC0和PC1都是使用1723埠訪問外網的Server。如果資料包只做地址轉換(即埠不轉換),那麼返回的資料目標地址都是131.107.0.1,目標埠都是1723,路由器就沒有辦法確定這個資料包應傳送給PC0還是PC1。

②如果使用一個公網IP地址讓很多內網計算機訪問Internet,必須由路由器對訪問Internet的資料包進行統一的源埠替換,將源埠替換成不同的端口出去(如4000、4001),這樣路由器就可以根據返回的資料包目標埠確定資料包應該轉發給哪一個內網計算機,這就是埠地址轉換的原理!

(3)在路由器上配置PAT

//1. 在CPE路由器上配置PAT
CPE>en
CPE#config t
//將內網需要PAT出去的網段新增到ACL中
CPE(config)#access-list 10 permit 10.0.0.0 0.0.0.255
//新增公網IP地址池(名稱為mypool,前後IP一樣,即只有一個公網IP)。
CPE(config)#ip nat pool mypool 131.107.0.1 131.107.0.1 netmask 255.255.255.0
//將公網地址池與ACL繫結(注意overload引數會啟用PAT)
CPE(config)#ip nat inside source list 10 pool mypool overload
CPE(config)#interface serial 0/0
CPE(config-if)#ip nat outside    //指定NAT的外網介面
CPE(config-if)#ex
CPE(config)#interface fastEthernet 0/1
CPE(config-if)#ip nat inside     //指定NAT的內網介面
CPE(config-if)#ex
CPE(config)#ex
CPE#show ip nat statistics     //檢視NAT配置狀態
Total translations: 0 (0 static, 0 dynamic, 0 extended)
Outside Interfaces: Serial0/0
Inside Interfaces: FastEthernet0/1
Hits: 0  Misses: 0
Expired translations: 0
Dynamic mappings:
-- Inside Source
access-list 10 pool mypool refCount 0
 pool mypool: netmask 255.255.255.0
       start 131.107.0.1 end 131.107.0.1
       type generic, total addresses 1 , allocated 0 (0%), misses 0
CPE#

(4)驗證:使用內網中的任何一臺主機都可以ping通internet上的server。

2.4 配置埠對映

(1)PAT存在的的問題:通過配置PAT,只能實現內網主機使用公網IP地址訪問internet,但internet的主機無法訪問內網主機(如內網的WebServer),這時可以通過埠對映來解決這一問題。

(2)網路拓撲圖

在這裡插入圖片描述

(3)在路由器上配置埠對映

//1. 在CPE路由器上配置埠對映
CPE>en
CPE#conf t
//靜態埠對映
CPE(config)#ip nat inside source static tcp 10.0.0.5 80 131.107.0.1 80
CPE(config)#ip nat inside source static tcp 10.0.0.6 80 131.107.0.1 81
CPE(config)#ip nat inside source static tcp 10.0.0.4 25 131.107.0.1 25
CPE(config)#ip nat inside source static tcp 10.0.0.4 110 131.107.0.1 110
CPE(config)#interface fastEthernet 0/1
CPE(config-if)#ip nat inside     //指定NAT的內網介面
CPE(config-if)#ex
CPE(config)#interface serial 0/0
CPE(config-if)#ip nat outside    //指定NAT的外網介面
CPE(config-if)#ex
CPE(config)#

(4)驗證:通過internet上的PC5訪問內網的WebServer、郵件伺服器。

  1. 在Windows上實現網路地址轉換和埠對映

3.1 在Windows Server 2003上配置網路地址轉換

(1)網路拓撲圖
在這裡插入圖片描述

(2)實驗環境

①Win2003_NATServer有兩張網絡卡,其中連線內網的網絡卡(名稱改為:inner):172.16.0.1/24(不用寫閘道器),連線外網的網絡卡(名稱改為:outer):192.168.1.4/24,預設閘道器:192.168.1.1。

②內網中WebServer伺服器:172.16.0.3/24,預設閘道器:172.16.0.1

(3)設定NAT

①“控制面板”→“管理工具”→“路由和遠端訪問”→“配置並啟用路由和遠端訪問” →“自定義配置”→“NAT和基本防火牆”
在這裡插入圖片描述

②新增連線到內網網絡卡介面:在左側樹狀節點中選擇“NAT/基本防火牆”→“新增介面”→選擇內網網絡卡,名稱為“inner”→介面型別為“專用介面連線到專用網路”。

③新增連線到外網網絡卡的介面:“NAT/基本防火牆”→“新增介面”→選擇外網網絡卡,名稱為“outer”→介面型別為“專用介面連線到專用網路”。(至此,內網計算機可以訪問internet的計算機了!)

④可以為“inner”介面或“outer”介面啟用防火牆:如選中“inner”介面→“屬性”→在“靜態資料包篩選器”的“入站篩選器”或“出站篩選器”中進行設定。

⑤如果不要NAT轉換而是採用路由器轉發,則需要在Router1路由器上新增到172.16.0.0/24的網段的下一段給192.168.1.4,否則內網資料包可以出去,但響應資料包沒辦法回來。而在NAT下內網計算機之所以能被轉發,是因為內網IP到Router1時,都被轉成了192.168.1.4,回來時通過NAT又被轉成內網地址(172.16.0.x)了,所以資料包的收發都沒問題。

(4)設定埠對映,讓外網的計算機可以訪問內網的WebServer伺服器(172.16.0.3)

①在“NAT/基本防火牆”中選擇“outer”介面→“屬性”→“服務和埠”→“新增”,然後寫上“傳入埠”、“專用網址”和“傳出埠”。(傳入和傳輸是針對outer介面來講的)
在這裡插入圖片描述
  ②在pc0上用瀏覽器訪問172.16.0.3伺服器上的網站。但要讓interner上算機也可以訪問內網的Web伺服器,還需要在Router1將相應的埠對映到192.168.1.4(具體操作見前面的《埠對映》部分)。

3.2 在Windows XP上配置連線共享和埠對映

(1)網路拓撲圖
在這裡插入圖片描述

(2)網路設定

①在宿主機上將WLAN網絡卡的連線共享給VMNet2網絡卡。(這相當宿主機成為一臺簡單的PAT/NAT伺服器,將來自於內網的地址轉發為外網IP,或者反之)
在這裡插入圖片描述

②重新設定VMNet2網絡卡IP為10.0.0.1/24(注意:作為內網閘道器的網絡卡,本身不要寫閘道器!)

③將內網計算機的預設閘道器設定為10.0.0.1,這樣就可以訪問Internet了。
轉自 https://www.cnblogs.com/5iedu/p/7376543.html