简介
本文档介绍使用ip nat outside source static命令和NAT进程产生的IP数据包的配置。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中的信息以运行 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.16.68.1的路由,该路由到172.31.1.0。 它将数据包转发给目标。
- 路由器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 |
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.
|
验证
注意:只有思科注册用户才能访问内部工具和信息。
使用Cisco CLI分析器查看对show命令输出的分析。 Cisco 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操作时,同时在Router 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数据包中用于上述每个命令时转换的部分。此表包含指南:
这些指导原则表明,转换数据包的方法不只一种。根据您的特定需求,您需要确定如何定义NAT接口(内部或外部),以及路由表在转换前后包含哪些路由。请记住,数据包被转换的部分取决于数据包传输的方向,以及您配置 NAT 的方式。
相关信息