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