3.1 實驗目的
(1)理解內網共享單個IP上網的工作原理;
(2)掌握overload的使用;
(3)掌握PAT的配置;
(4)掌握靜態端口映射的配置與應用;
3.2 實驗原理
1.PAT工作原理
端口映射NAPT指除了使用IP之外,還使用端口號來建立映射。NAPT是實現多個內網主機共享一個公網IP接入的關鍵技術。NAPT建立映射需要用到傳輸層的TCP和UDP的端口號。在網絡數據傳輸中,大部分是通過端到端的連接來進行數據傳輸,因此,表示一個數據的流向除了需要IP地址外,還需要使用傳輸層的端口號。所以在NAPT的映射建立中,使用IP地址和端口號就可以區分出每一條數據連接。
NAPT的具體工作原理如圖5所示:
例如內網主機10.1.1.3,10.1.1.2都用源端口1723向外發送數據包,NAPT路由器將兩個內網地址都轉換爲唯一的全局地址222.2.1.1,爲了區分不同的數據通信,使用不同的源端口1592,1723來替換原來的端口1723。因此會建立以下映射條目:
10.1.1.3 : 1723 ßà 222.16.2.2 : 1492
10.1.1.2 : 1723 ßà 222.16.2.2 : 1723
因此,通過不同的端口號就可以區分出具體是哪一個通信。當數據發到外網時,除了替換源IP地址外,還將會替換報文的源端口。
而當路由器收到發往222.16.2.2 : 1723時,則會查找映射表,同時修改目的IP地址和目的端口號,轉換爲10.1.1.2 : 1723,因而會被轉發到主機10.1.1.2。
2.PAT的配置命令
(1)PAT的配置與其他NAT配置類似,只需要在nat命令的後面添加上overload關鍵即可,表示IP地址可以重載使用。
命令: Router(config)#ip nat inside source list 1 pool TEST_POOL ?
overload Overload an address translation
(2)PAT也可以利用外網端口IP作爲全局地址,不必指定地址池,起到節省全局IP地址的作用。
命令: Router(config)# ip nat inside source list 1 pool interface s0/0 overload
(3)如果要讓外網的主機能否訪問內網的服務器的網絡服務,如Web、FTP等,需要將
內網服務器IP、端口號和全局IP地址、端口號建立靜態映射。如下例:
命令:Router(config)#ip nat inside source static tcp 192.168.1.100 80 210.38.220.10 80
可以將內網的192.168.1.100的Web服務器映射到210.38.220.10,當外網訪問210.38.220.10
地址時,即可訪問到內網的Web服務器。
配置注意事項:
(1)不要將邊緣路由器的內部接口、外部接口弄錯;
(2)要加上能使數據包向外轉發的路由,比如默認路由;
NAT轉換時間的修改命令如下:
R1(config)#ip nat translation icmp-timeout seconds 定義ICMP 轉換的超時時間,缺省 60秒
R1(config)#ip nat translation tcp-timeout seconds 定義TCP連接轉換的超時時間,缺省爲1天
R1(config)#ip nat translation udp-timeout seconds定義UDP連接轉換的超時時間,缺省300秒
3.PAT的配置實例
網絡拓撲圖如圖9-6所示:
圖6 PAT網絡拓撲圖
地址表如表5所示:
表5 PAT網絡IP地址表
設備 | 接口 | IP地址 | 子網掩碼 |
R1 | S2/0 | 210.38.220.1 | /24 |
Fa0/0 | 192.168.1.1 | /24 | |
R2 | S2/0(DCE) | 210.38.220.2 | /30 |
F0/0 | 202.20.20.1 | /24 | |
PC1 | NIC | 192.168.1.10 | /24 |
PC2 | NIC | 192.168.1.20 | /24 |
Server1 | NIC | 192.168.1.100 | /24 |
Server2 | NIC | 202.20.20.10 | /24 |
背景說明:
PAT是在IP地址日益短缺的情況下提出的,如果一個公司內部有很多臺主機,但該公司只申請了一個合法的公網IP地址,爲了使所有內部主機都可以連接Internet網絡,可以使用PAT,使公司的所有主機能共享單一公有地址訪問外網。
另外,公司內網的服務器192.168.1.100需要向外提供Web服務,但是該服務器IP地址爲私有地址,無法被外網主機訪問,所以考慮使用靜態端口映射解決。
配置要求:使PC1、PC2通過PAT能夠訪問Server2的FTP服務,將Server1的私有地址映射爲210.38.220.10,使Server2能夠訪問Server1的Web服務。
實驗步驟:
步驟1:R1的配置。
R1(config)#int f0/0 //進入接口模式
R1(config-if)# ip address 192.168.1.1 255.255.255.0
R1(config-if)#ip nat inside //配置f0/0爲內部接口
R1(config-if)#no shutdown
R1(config-if)#int s2/0 //接入接口模式
R1(config-if)# ip address 210.38.220.1 255.255.255.0
R1(config-if)#ip nat outside //配置s2/0爲外部接口
R1(config-if)#no shutdown
R1(config-if)#ip route 0.0.0.0 0.0.0.0 S2/0 //配置默認路由。
R0(config)#access-list 1 permit 192.168.1.0 0.0.0.255 //配置匹配內網地址的ACL
//配置地址池,起始地址和結束地址相同 [或者使用接口方式配置]
R1(config)#ip nat pool TEST_POOL 210.38.220.10 210.38.220.10 netmask 255.255.255.0
// overload表示實現地址的重載
R1(config)#ip nat inside source list 1 pool TEST_POOL overload
//配置內網Web服務器的靜態端口映射, 192.168.1.100 :80 ßà210.38.220.10: 80
R1(config)#ip nat inside source static tcp 192.168.1.100 80 210.38.220.10 80
步驟2:R2的配置。
R2(config-if)#int s2/0
R2(config-if)#ip add 210.38.220.2 255.255.255.0
R2(config-if)# clock rate 64000
R2(config-if)#no shutdown
R2(config)#int f0/0
R2(config-if)#ip add 202.20.20.1 255.255.255.0
R2(config-if)#no shutdown
步驟3:服務器配置。
(1)外網Ftp服務器配置,如圖7所示。
選擇FTP服務使用綁定IP地址和確定FTP的主目錄。
圖7 FTP 服務器配置
(2)內網Web服務器配置,如圖8所示。
選擇Web服務使用綁定IP地址和確定Web的主目錄。
圖8 Web服務器配置
步驟4:結果測試。
(1)在PC1和PC2上使用訪問外網的ftp服務器。
登錄成功界面如圖9:
圖9 登陸外網FTP 服務器
(2)外網訪問內網的Web服務,如圖10所示,訪問成功。
圖10 訪問內網Web 服務器
(3)在路由器R1上查看ftp訪問的產生的映射表。
R1#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 210.38.220.10:80 192.168.1.100:80 --- ---
tcp 210.38.220.10:80 192.168.1.100:80 202.20.20.10:1025 202.20.20.10:1025
tcp 210.38.220.10:1026 192.168.1.10:1026 202.20.20.1:21 202.20.20.1:21
tcp 210.38.220.10:1027 192.168.1.10:1027 202.20.20.1:21 202.20.20.1:21
tcp 210.38.220.10:1028 192.168.1.10:1028 202.20.20.10:21 202.20.20.10:21
tcp 210.38.220.10:1025 192.168.1.20:1025 202.20.20.10:21 202.20.20.10:21
從映射表可以看到內網地址192.168.1.10和192.168.1.20都映射爲一個相同的全局地址210.38.220.10,唯一區別的但是全地址後面帶的端口號不同,說明PAT通過端口來區分不同的數據流。
(2)查看NAT的轉換數據統計結果。
R1#sh ip nat statistics
Total translations: 4 (0 static, 4 dynamic, 4 extended) //轉換的數目
Outside Interfaces: Serial2/0
Inside Interfaces: FastEthernet0/0
Hits: 25 Misses: 4
Expired translations: 0
Dynamic mappings:
-- Inside Source
access-list 1 pool TEST_POOL refCount 4
pool TEST_POOL: netmask 255.255.255.0 //地址池信息
start 210.38.220.10 end 210.38.220.10
type generic, total addresses 1 , allocated 1 (100%), misses 0