12 
虚拟仿真──配置思科 NAT 服务

一、静态NAT配置

思科NAT 有三种类型:静态NAT、动态NAT 和端口地址转换PAT(NAPT)。

项目拓扑如图8-15所示。前期准备按照拓扑图配置网络设备和计算机的地址,并设置路由器时钟频率(具体操作略)。

图8-15 静态NAT 配置

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.项目调试

(1)debug ip nat。

该命令可以查看地址翻译的过程。

在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”。

(2)show ip nat translations。

该命令用来查看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 的环回接口),调试结果如下:

(1)debug ip nat。
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]

......
提示
如果动态NAT 地址池中没有足够的地址作动态映射,则会出现类似下面的信息,提示NAT 转换失败,并丢弃数据包。
*Feb 22 09:02:59.075: NAT: translation failed (A), dropping packet s=192.168.1.2 d=2.2.2.2
(2)show ip nat translations。
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表,然后为应用分配相应的端口号。

(3)show ip nat statistics。

该命令用来查看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的环回接口),调试结果如下:

(1)debug ip nat。
*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]

......
(2)show ip nat translations。
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 地址的不同端口号。

(3)show ip nat statistics。
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