有时,当您更改网络地址转换 (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命令清除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转换。通过删除接口上的 ip nat inside 或 ip nat outside 命令执行此操作。然后清除转换表,并更改配置。
按照以下步骤使用此解决方案:
使用 no ip nat {inside | outside}命令禁用将来的转换。
使用 clear ip nat translation 命令清除 IP NAT 转换。
更改 NAT 配置。
恢复 NAT {inside | outside}个参数,带ip nat {inside | outside}配置命令。
此解决方案包括终止造成NAT路由器创建转换的数据流。可以通过访问发送或禁用信息包的设备实现,也可以通过在NAT路由器上创建入局访问控制列表,拒绝来自发送信息包的源流量实现。有关过滤数据包的详细信息,请参阅配置 IP 服务。
此技术说明已经演示了由于转换表激活的动态NAT转换导致不能更改NAT配置的几种解决方法。也许还有其他方式,但无论如何,NAT转换表必须清楚更改NAT配置之前,由NAT配置导致的所有动态转换。有关 NAT 相关问题的故障排除详细信息,请参阅验证 NAT 操作和基本 NAT 故障排除。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
10-Aug-2005 |
初始版本 |