目录

简介

先决条件

要求

使用的组件

规则

问题说明

解决方案

使用 clear ip nat translation 命令

禁用路由器上的 NAT

终止引起转换的通信流

摘要

相关信息

简介

有时，当您更改网络地址转换 (NAT) 配置时，您会收到这些消息：

- Dynamic mapping in use, cannot remove

- 动态映射正在使用中，是否要删除所有条目？

- %Pool outpool in use, cannot destroy

本文档介绍当您在控制台上收到这些消息时如何更改 NAT 配置。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

问题说明

当信息包通过内部接口的IP NAT和外部接口的IP NAT时，动态NAT在表里创建有效转换条目，反之亦然。使用 show ip nat translation 命令可查看此动态 NAT 条目。当删除以下任一现有动态NAT配置时，Cisco IOS®软件会检查转换表中是否存在任何现有活动NAT转换：

- no ip nat pool name

- no ip nat {inside | outside}source {list {access-list-number | name}池名称[overload] | static local-ip global-ip}

R2(config) #no ip nat inside source route-map NAT interface serial 2/0 overload

Dynamic mapping in use, do you want to delete all entries? [no]: yes

如果转换条目匹配，则在控制台上会分别返回 %Dynamic Mapping in Use, Cannot remove 消息或 %Pool outpool in use, cannot destroy 消息。

解决方案

您收到这些错误信息是因为您正试图更改NAT配置，而该配置对创建存在于转换表的动态转换起着作用。为了在这种情况下更改NAT配置，在更改被接受之前，您需要清除正在使用的转换表。有时候这不容易，因为用路由器配置NAT可能不断接收在表里创建转换的信息包。这种情况可能迅速发生，以致于您没有时间更改配置。

使用 clear ip nat translation 命令

此解决方案包括使用clear ip nat translation命令清除IP NAT转换，然后由于激活NAT数据流，必须在任何新的NAT条目迅速装置到转换表前替换NAT配置。要执行此操作，请创建包含以文本格式编写的配置命令的脚本。例如：

clear ip nat translation *

config terminal

no ip nat pool old pool name

ip nat pool new pool

.......

拥有脚本之后，将脚本剪切并粘贴到路由器启用模式 (Router#) 中。

注意：这可能需要多次尝试，因为在清除转换后，路由器仍可能创建转换。

禁用路由器上的 NAT

此解决方案涉及在路由器上禁用NAT，因此它不能再创建更多NAT转换。通过删除接口上的 ip nat inside 或 ip nat outside 命令执行此操作。然后清除转换表，并更改配置。

按照以下步骤使用此解决方案：

1. 使用 no ip nat {inside | outside}命令禁用将来的转换。

2. 使用 clear ip nat translation 命令清除 IP NAT 转换。

3. 更改 NAT 配置。

4. 恢复 NAT {inside | outside}个参数，带ip nat {inside | outside}配置命令。

终止引起转换的通信流

此解决方案包括终止造成NAT路由器创建转换的数据流。可以通过访问发送或禁用信息包的设备实现，也可以通过在NAT路由器上创建入局访问控制列表，拒绝来自发送信息包的源流量实现。有关过滤数据包的详细信息，请参阅配置 IP 服务。

摘要

此技术说明已经演示了由于转换表激活的动态NAT转换导致不能更改NAT配置的几种解决方法。也许还有其他方式，但无论如何，NAT转换表必须清楚更改NAT配置之前，由NAT配置导致的所有动态转换。有关 NAT 相关问题的故障排除详细信息，请参阅验证 NAT 操作和基本 NAT 故障排除。

相关信息

- 配置网络地址转换：入门指南

- NAT 支持页

- 技术支持和文档 - Cisco Systems