目录

简介

先决条件

要求

使用的组件

背景信息

配置

网络图

配置

验证

故障排除

摘要

相关信息

简介

本文档介绍使用ip nat outside source static 命令和NAT进程生成的IP数据包的配置。

先决条件

要求

Cisco 建议您了解以下主题：

- NAT：本地和全局定义

使用的组件

本文档中的信息以运行 Cisco IOS® 软件版本 12.2(27) 的 Cisco 2500 系列路由器为准。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息

本文档提供了使用 ip nat outside source static 命令的配置示例，并简要介绍了 NAT 过程中 IP 数据包所发生的情况。考虑以本文档中的网络拓扑为例。

配置

注意：使用命令查找工具查找有关本文档使用的命令的其他信息。只有思科注册用户才能访问内部工具和信息。

网络图

本文档使用此网络设置。

网络图

当您发出从路由器2514W Loopback1接口发往路由器2501E Loopback0接口的ping时，会发生以下情况：

- 在路由器2514X的外部接口(S1)上，ping数据包显示源地址(SA)为172.16.89.32，目的地址(DA)为172.16.68.1。

- NAT将SA转换为外部本地地址172.16.68.5(对应于在路由器2514X上配置的ip nat outside source static命令)。

- 然后，路由器2514X检查其路由表，查找通往172.16.68.1的路由。

- 如果该路由不存在，路由器 2514X 会丢弃数据包。在本例中，路由器2514X通过指向172.31.1.0的静态路由，拥有一个指向172.16.68.1的路由。 它将数据包转发给目标。

- 路由器2501E在其传入接口(E0)上看到该数据包，SA为172.16.68.5，DA为172.16.68.1。

- 它向172.16.68.5发送互联网控制消息协议(ICMP)应答。如果它没有路由，则会丢弃这个数据包。

- 但是，在本例中，它有（默认）路由。

- 因此，它会向路由器2514X发送应答数据包，SA为172.16.68.1，DA为172.16.68.5。

- 路由器2514X会看到该数据包，并检查通往172.16.68.5地址的路由。

- 如果该路由器没有这样一个路由，就会发送一个 ICMP 不可达的应答作为响应。

- 在本例中，它有一个指向 172.16.68.5 的路由（由于静态路由）。

- 因此，它会将数据包转换回 172.16.89.32 地址，并将数据包转发出其外部接口 (S1)。

配置

本文档使用以下配置：

- 路由器 2514W

- 路由器 2514X

- 路由器 2501E

路由器 2514W

hostname 2514W

!

!--- Output suppressed.

interface Loopback1

ip address 172.16.89.32 255.255.255.0

!

interface Ethernet1

no ip address

no ip mroute-cache

!

interface Serial0

ip address 172.16.191.254 255.255.255.252

no ip mroute-cache

!

!--- Output suppressed.

ip classless

ip route 0.0.0.0 0.0.0.0 172.16.191.253

!--- Default route to forward packets to 2514X.

!

!--- Output suppressed.

路由器 2514X

hostname 2514X

!

!--- Output suppressed.

ip nat outside source static 172.16.89.32 172.16.68.5

!--- Outside local address.

!

!--- Output suppressed.

interface Ethernet1

ip address 172.31.192.202 255.255.255.0

ip nat inside

!--- Defines Ethernet 1 as a NAT inside interface.

no ip mroute-cache

no ip route-cache

!

interface Serial1

ip address 172.16.191.253 255.255.255.252

no ip route-cache

ip nat outside

!--- Defines Serial 1 as a NAT outside interface.

clockrate 2000000

!

!--- Output suppressed.

ip classless

ip route 172.31.1.0 255.255.255.0 172.31.192.201

ip route 172.31.16.0 255.255.255.0 172.16.191.254

!--- Static routes for reaching the loopback interfaces

!--- on 2514E and 2514W.

!

!--- Output suppressed.

路由器 2501E

hostname rp-2501E

!

!--- Output suppressed.

interface Loopback0

ip address 172.16.68.1 255.255.255.0

!

interface Ethernet0

ip address 172.31.192.201 255.255.255.0

!

!--- Output suppressed.

ip classless

ip route 0.0.0.0 0.0.0.0 172.31.192.202

!--- Default route to forward packets to 2514X.

!

!--- Output suppressed.

验证

注意：只有思科注册用户才能访问内部工具和信息。

使用思科CLI分析器查看对show命令输出的分析。 思科CLI分析器(OIT)支持多种show命令。

如以下输出所示，使用show ip nat translations命令可以检查转换项：

2514X#show ip nat translations

Pro Inside global      Inside local       Outside local      Outside global

--- ---                ---                172.16.68.5        172.16.89.32

2514X#

故障排除

本示例使用NAT转换调试和IP数据包调试来演示NAT过程。

注意：由于debug命令会生成大量输出，因此请仅在IP网络上的流量较低时才使用这些命令，以免系统中的其他活动受到负面影响。

注意：使用debug命令之前，请参阅有关Debug命令的重要信息。

此输出是在从路由器2514W loopback1接口地址(172.16.89.32)到路由器2501 E loopback0接口地址(172.16.68.1)进行ping的同时，在路由器2514X上同时使用debug ip packet和debug ip nat命令的结果。

此输出显示到达路由器2514X的外部接口的第一个数据包。源地址 172.16.89.32 被转换为 172.16.68.5。ICMP 数据包被转发往 Ethernet1 接口外的目标。

5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [171]

5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed

via RIB

5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,

len 100, forward

5d17h:     ICMP type=8, code=0

以下输出显示了来自 172.16.68.1，目标地址为 172.16.68.5（已转换为 172.16.89.32）的返回数据包。生成的ICMP数据包从Serial1接口转发出去。

5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed

via RIB

5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [171]

5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,

len 100, forward

5d17h:     ICMP type=0, code=0

ICMP 数据包的交换继续进行。此 debug 输出的 NAT 过程与上一个输出的 NAT 过程相同。

5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [172]

5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed

via RIB

5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,

len 100, forward

5d17h:     ICMP type=8, code=0

5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed

via RIB

5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [172]

5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,

len 100, forward

5d17h:     ICMP type=0, code=0

5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [173]

5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed

via RIB

5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,

len 100, forward

5d17h:     ICMP type=8, code=0

5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed

via RIB

5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [173]

5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,

len 100, forward

5d17h:     ICMP type=0, code=0

5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [174]

5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed

via RIB

5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,

len 100, forward

5d17h:     ICMP type=8, code=0

5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed

via RIB

5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [174]

5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,

len 100, forward

5d17h:     ICMP type=0, code=0

5d17h: NAT: s=172.16.89.32->172.16.68.5, d=172.16.68.1 [175]

5d17h: IP: tableid=0, s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), routed

via RIB

5d17h: IP: s=172.16.68.5 (Serial0), d=172.16.68.1 (Ethernet0), g=172.31.192.201,

len 100, forward

5d17h:     ICMP type=8, code=0

5d17h: IP: tableid=0, s=172.16.68.1 (Ethernet0), d=172.16.68.5 (Serial0), routed

via RIB

5d17h: NAT: s=172.16.68.1, d=172.16.68.5->172.16.89.32 [175]

5d17h: IP: s=172.16.68.1 (Ethernet0), d=172.16.89.32 (Serial0), g=172.16.191.254,

len 100, forward

5d17h:     ICMP type=0, code=0

摘要

当数据包从外部传输到内部时，首先进行转换，然后检查目标的路由表。

当信息包从里向外传输时，路由表首先检查目的地，然后进行转换。

有关详细信息，请参阅 NAT 运行顺序。

请注意IP数据包中用于上述每个命令时需要转换的部分。此表包含指南：

命令

操作

ip nat outside source static

- 转换从外部传输到内部的 IP 数据包的源。

- 转换从内部传输到外部的 IP 数据包的目标。

ip nat inside source static

- 转换从内部传输到外部的 IP 数据包的源。

- 转换从外部传输到内部的 IP 数据包的目标。

这些指导原则表明，转换数据包的方法不只一种。根据您的特定需求，确定如何定义NAT接口（内部或外部），以及在转换前后路由表包含哪些路由。请记住，数据包被转换的部分取决于数据包传输的方向，以及您配置 NAT 的方式。

相关信息

- 使用 ip nat outside source list 命令的示例配置

- 配置网络地址转换

- NAT IP寻址服务

- 思科技术支持和下载