一、静态NAT配置
思科NAT 有三种类型:静态NAT、动态NAT 和端口地址转换PAT(NAPT)。
项目拓扑如图8-15所示。前期准备按照拓扑图配置网络设备和计算机的地址,并设置路由器时钟频率(具体操作略)。
1.项目步骤
1配置路由器R1提供NAT服务。
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network 202.96.1.0
R1(config-router)#network 192.168.1.0
R1(config)#ip nat inside source static 192.168.1.2 202.96.1.1 !配置静态NAT 映射
R1(config)#interface f0/0
R1(config-if)#ip nat inside !配置NAT 内部接口
R1(config)#interface s0/1/0
R1(config-if)#ip nat outside !配置NAT 外部接口
2配置路由器R2。
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#no auto-summary
R2(config-router)#network 202.96.1.0
R2(config-router)#network 2.0.0.0
2.项目调试
该命令可以查看地址翻译的过程。
在PC1 和PC2 上Ping 2.2.2.2(路由器R2 的环回接口),此时应该是通的,路由器R1的输出信息如下:
R1#debug ip nat
*Mar 4 02:02:12.779: NAT*: s=192.168.1.1->202.96.1.3, d=2.2.2.2 [20240]
*Mar 4 02:02:12.791: NAT*: s=2.2.2.2, d=202.96.1.3->192.168.1.1 [14435]
......
*Mar 4 02:02:25.563: NAT*: s=192.168.1.2->202.96.1.4, d=2.2.2.2 [25]
*Mar 4 02:02:25.579: NAT*: s=2.2.2.2, d=202.96.1.4->192.168.1.2 [25]
......
以上输出表明了NAT 的转换过程。首先把私有地址“192.168.1.1”和“192.168.1.2”分别转换成公网地址“202.96.1.3”和“202.96.1.4”访问地址“2.2.2.2”,然后回来的时候把公网地址“202.96.1.3”和 “202.96.1.4”分别转换成私有地址“192.168.1.1”和 “192.168.1.2”。
该命令用来查看NAT 表。静态映射时,NAT 表一直存在。
R1#show ip nat translations
Pro Inside global Inside local Outside local Outside global
202.96.1.3 192.168.1.1 --- ---
202.96.1.4 192.168.1.2 --- ---
以上输出表明了内部全局地址和内部局部地址的对应关系。
二、动态NAT
项目拓扑如图8-15 所示。前期准备按照拓扑图配置网络设备和计算机的地址,并设置路由器时钟频率(具体操作略)。
1.项目步骤
1配置路由器R1提供NAT服务。
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network 202.96.1.0
R1(config-router)#network 192.168.1.0
R1(config)#ip nat pool NAT 202.96.1.3 202.96.1.100 netmask 255.255.255.0
!配置动态NAT 转换的地址池
R1(config)#ip nat inside source list 1 pool NAT
!配置动态NAT 映射
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
!允许动态NAT 转换的内部地址范围
R1(config)#interface f0/0
R1(config-if)#ip nat inside
R1(config-if)#interface s0/1/0
R1(config-if)#ip nat outside
2配置路由器R2。
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#no auto-summary
R2(config-router)#network 202.96.1.0
R2(config-router)#network 2.2.2.0
2.项目调试
在PC1 上访问2.2.2.2(路由器R2 的环回接口)的WWW 服务,在PC2 上分别telnet 和ping 2.2.2.2(路由器R2 的环回接口),调试结果如下:
R1#debug ip nat
IP NAT debugging is on
R1#clear ip nat translation * //清除动态NAT 表
*Mar 4 01:34:23.075: NAT*: s=192.168.1.1->202.96.1.4, d=2.2.2.2 [19833]
*Mar 4 01:34:23.087: NAT*: s=2.2.2.2, d=202.96.1.4->192.168.1.1 [62333]
......
*Mar 4 01:28:49.867: NAT*: s=192.168.1.2->202.96.1.3, d=2.2.2.2 [62864]
*Mar 4 01:28:49.875: NAT*: s=2.2.2.2, d=202.96.1.3->192.168.1.2 [54062]
......
*Feb 22 09:02:59.075: NAT: translation failed (A), dropping packet s=192.168.1.2 d=2.2.2.2
R1#show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 202.96.1.4:1721 192.168.1.1:1721 2.2.2.2:80 2.2.2.2:80
--- 202.96.1.4 192.168.1.1 --- ---
icmp 202.96.1.3:3 192.168.1.2:3 2.2.2.2:3 2.2.2.2:3
tcp 202.96.1.3:14347 192.168.1.2:14347 2.2.2.2:23 2.2.2.2:23
--- 202.96.1.3 192.168.1.2 --- ---
以上信息表明当PC1 和PC2 第一次访问“2.2.2.2”地址的时候,NAT 路由器R1 为主机PC1 和PC2 动态分配两个全局地址“202.96.1.4”和“202.96.1.3”,在NAT 表表中生成两条动态映射的记录,同时会在NAT 表中生成和应用向对应的协议和端口号的记录(过期时间为60 秒)。在动态映射没有过期(过期时间为86400 秒)之前,再有应用从相同主机发起时,
NAT路由器直接查NAT表,然后为应用分配相应的端口号。
该命令用来查看NAT转换的统计信息。
R1#show ip nat statistics
Total active translations: 5 (0 static, 5 dynamic; 3 extended)
有5个转换是动态转化。
Outside interfaces:
Serial0/1/0 !NAT 外部接口
Inside interfaces:
fastEthernet0/0 !NAT 内部接口
Hits: 54 Misses: 6
CEF Translated packets: 60, CEF Punted packets: 5
Expired translations: 12 !NAT 表中过期的转换
Dynamic mappings: !动态映射
-- Inside Source
[Id: 1] access-list 1 pool NAT refcount 2
pool NAT: netmask 255.255.255.0 !地址池名字和掩码
start 202.96.1.3 end 202.96.1.100 !地址池范围
type generic, total addresses 98, allocated 2 (2%), misses 0
!共98 个地址,分出去2 个
Queued Packets: 0
三、PAT 配置
项目拓扑如图8-15所示。前期准备按照拓扑图配置网络设备和计算机的地址,并设置路由器时钟频率(具体操作略)。
1.项目步骤
1配置路由器R1提供NAT服务。
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network 202.96.1.0
R1(config-router)#network 192.168.1.0
R1(config)#ip nat pool NAT 202.96.1.3 202.96.1.100 netmask 255.255.255.0
R1(config)#ip nat inside source list 1 pool NAT overload !配置PAT
R1(config)#access-list 1 permit 192.168.1.0 0.0.0.255
R1(config)#interface f0/0
R1(config-if)#ip nat inside
R1(config-if)#interface s0/1/0
R1(config-if)#ip nat outside
2配置路由器R2。
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#no auto-summary
R2(config-router)#network 202.96.1.0
R2(config-router)#network 2.2.2.0
2.项目调试
在PC1 上访问2.2.2.2(路由器R2 的环回接口)的WWW服务,在PC2上分别telnet和ping 2.2.2.2(路由器R2的环回接口),调试结果如下:
*Mar 4 01:53:47.983: NAT*: s=192.168.1.1->202.96.1.3, d=2.2.2.2 [20056]
*Mar 4 01:53:47.995: NAT*: s=2.2.2.2, d=202.96.1.3->192.168.1.1 [46201]
......
*Mar 4 01:54:03.015: NAT*: s=192.168.1.2->202.96.1.3, d=2.2.2.2 [20787]
*Mar 4 01:54:03.219: NAT*: s=2.2.2.2, d=202.96.1.3->192.168.1.2 [12049]
......
R1#show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 202.96.1.3:1732 192.168.1.1:1732 2.2.2.2:80 2.2.2.2:80
icmp 202.96.1.3:4 192.168.1.2:4 2.2.2.2:4 2.2.2.2:4
tcp 202.96.1.3:12320 192.168.1.2:12320 2.2.2.2:23 2.2.2.2:23
以上输出表明进行PAT 转换使用的是同一个IP 地址的不同端口号。
Total active translations: 3 (0 static, 3 dynamic; 3 extended)
Outside interfaces:
Serial0/1/0
Inside interfaces:
fastEthernet0/0
Hits: 762 Misses: 22
CEF Translated packets: 760, CEF Punted packets: 47
Expired translations: 19
Dynamic mappings:
-- Inside Source
[Id: 2] access-list 1 pool NAT refcount 3
pool NAT: netmask 255.255.255.0
start 202.96.1.3 end 202.96.1.100
type generic, total addresses 98, allocated 1 (1%), misses 0
Queued Packets: 0