本文档介绍如何排除Cat8000平台上的NAT问题。
Cisco 建议您了解以下主题:
有关这些主题的详细信息,请参阅:
本文档中的信息基于Cisco IOS软件。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
NAT 拓扑此日志消息表示设备尝试为NAT分配IP地址,例如为动态NAT或PAT转换分配IP地址,但分配不成功。当配置的NAT池中没有剩余可用的地址或端口时,通常会发生这种情况。
常见原因包括:
· NAT池已用尽(所有可用IP地址或端口都在使用中)。
· NAT配置没有足够的地址或资源来满足当前的转换请求。
%NAT-6-ADDR_ALLOC_FAILURE: Address allocation failed; pool 2 may be exhausted [2] port range: NA, non-PATable: NO, for ALG: NO, input intf: GigabitEthernet0/0/3, mapping-id: 1,
created by pkt: src_ip 192.0.2.13 dst_ip 192.x.x.40 src_port 0 dst_port 0 proto 1
步骤1.检验NAT池以确认地址转换范围。
NAT_R1#show ip nat pool platform
Dump NAT pool config
ID: 2, Name: NAT_Pool, Type: Generic, Mask: 255.255.255.240
Flags: Unknown, Acct name:
Address range blocks: 1
Start: 203.0.113.3, End: 203.0.113.5
Last stats update: 07/31 13:08:43.708061785
Last refcount value: 3
步骤2.检验NAT转换表并确定当前活动的转换数。
NAT_R1#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 203.0.113.3 192.0.2.10 --- ---
--- 203.0.113.5 192.0.2.12 --- ---
--- 203.0.113.4 192.0.2.11 --- ---
icmp 203.0.113.5:0 192.0.2.12:0 198.51.100.30:0 198.51.100.30:0
icmp 203.0.113.3:0 192.0.2.10:0 198.51.100.10:0 198.51.100.10:0
icmp 203.0.113.4:0 192.0.2.11:0 198.51.100.20:0 198.51.100.20:0
Total number of translations: 6
步骤3.检验NAT统计信息中是否出现丢弃。此结果将指示传入流量需要转换,但由于NAT分配问题而发生丢弃。
NAT_R1#show ip nat statistics
Total active translations: 6 (0 static, 6 dynamic; 3 extended)
Outside interfaces:
GigabitEthernet0/0/4
Inside interfaces:
GigabitEthernet0/0/3
Hits: 11094661606 Misses: 10
Reserved port setting disabled provisioned no
Expired translations: 1412
Dynamic mappings:
-- Inside Source
[Id: 2] access-list 1 pool NAT_Pool refcount 6 <---- Translations count
pool NAT_Pool: id 2, netmask 255.255.255.240
start 203.0.113.3 end 203.0.113.5
type generic, total addresses 3, allocated 3 (100%), misses 3559386331
nat-limit statistics:
max entry: max allowed 0, used 0, missed 0
In-to-out drops: 3559337007 Out-to-in drops: 0 <---- drops from in to out
Pool stats drop: 0 Mapping stats drop: 0
Port block alloc fail: 0
IP alias add fail: 0
Limit entry add fail: 0
NAT_R1#
步骤4.从平台的角度,检查QFP数据路径NAT统计信息,以确定这些丢弃是否与观察到的问题相对应。
NAT_R1#show platform hardware qfp active feature nat datapath stats
Counter Value
------------------------------------------------------------------------
number_of_session 3
udp 0
tcp 0
icmp 3
non_extended 3
statics 0
static_net 0
entry_timeouts 1
hits 585149
misses 0
cgn_dest_log_timeouts 0
ipv4_nat_alg_bind_pkts 0
ipv4_nat_alg_sd_not_found 0
ipv4_nat_alg_sd_tail_not_found 0
ipv4_nat_rx_pkt 154
ipv4_nat_tx_pkt 18791285989
<snip>
ipv4_nat_non_natted_in2out_pkts 144
ipv4_nat_non_nated_out2in_pkts 0
<snip>
ipv4_nat_cfg_rcvd 8
ipv4_nat_cfg_rsp 9
Subcode#14 ADDR_ALLOC_FAIL 5216959285
步骤5.验证当前条目数并比较maxhost_count和maxhost_himark值:
NAT_R1#show platform hardware qfp active feature nat datapath limit
maxhost_limit 131072 maxhost_count 5 maxhost_fail 0 maxhost_himark 7
total limit entries 0 hash tbl 0x0 max entries 0 limit_chunk 0x0 allvrf limit 0
acl limit 0 acl count 0 acl fail 0 acl_id 0x0
此日志中的详细信息提供所记录事件和运行状态的全面说明:
NAT池中的可用地址数量范围为3到5。当NAT表中保留非活动转换时,会出现一些问题,这会阻止其他流量进行转换。这是预期行为,因为默认NAT转换超时为24小时。要解决此问题,请配置ip nat translation timeout命令以在此操作后清除NAT表需要清除的非活动转换。
NAT_R1(config)#ip nat translation timeout 10800
NAT_R1(config)#end
NAT_R1#clear ip nat translation *
NAT_R1#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 203.0.113.5 192.0.2.11 --- ---
--- 203.0.113.4 192.0.2.10 --- ---
icmp 203.0.113.4:0 192.0.2.10:0 198.51.100.10:0 198.51.100.10:0
icmp 203.0.113.5:0 192.0.2.11:0 198.51.100.20:0 198.51.100.20:0
Total number of translations: 4
NAT网守功能旨在通过保护NAT引擎不处理非NAT流量来增强路由器性能。当非NAT数据包通过启用NAT的接口时,它们通常会进行大量查找,然后NAT会确定不需要转换。此进程在量子流处理器(QFP)上占用了CPU资源。 网守通过维护非NAT流的小型缓存来缓解这种情况,这些数据包一旦被识别就可以绕过NAT引擎,从而减少CPU负载。网守缓存中的条目会相对较快地超时,因此NAT引擎会在网络条件发生变化时重新评估流量,并且流量现在可接受NAT。
当在同一接口上处理混合NAT和非NAT流量时,此机制有助于优化资源利用率并提高整体系统效率。网守的缓存大小可配置为容纳非NAT流量,默认值基于平台。当NAT接口上存在大量非NAT流量时,建议调整缓存大小。
总之,NAT网守:
·保护NAT引擎免于不必要的非NAT流处理。
·维护非NAT流的缓存以允许它们绕过NAT处理。
·对缓存条目使用超时以允许重新评估流。
·帮助降低QFP上的CPU使用率。
·支持可配置的缓存大小,以便根据流量模式优化性能。
典型症状包括:
步骤1.在故障窗口期间检验NAT统计信息。
此步骤确认:
NAT_R1#show ip nat statistics
Total active translations: 29477 (736 static, 28741 dynamic; 28741 extended)
Outside interfaces:
GigabitEthernet1
Inside interfaces:
GigabitEthernet2, GigabitEthernet3
Hits: 32525856687 Misses: 293948584
Expired translations: 293549953
Dynamic mappings:
-- Inside Source
[Id: 1] route-map INTERNET_PAT interface GigabitEthernet1 refcount 25
nat-limit statistics:
max entry: max allowed 0, used 0, missed 0
In-to-out drops: 0 Out-to-in drops: 867
Pool stats drop: 0 Mapping stats drop: 0
Port block alloc fail: 0
IP alias add fail: 0
Limit entry add fail: 0
NAT_R1#show ip nat statistics | sec Misses
Hits: 32525856687 Misses: 293948584
NAT_R1#show ip nat statistics | sec Misses
Hits: 32527039444 Misses: 293952367
NAT_R1#show ip nat statistics | sec Misses
Hits: 32527308509 Misses: 293953221
NAT_R1#
一节对输出中的相关信息提供了详细说明。
NAT统计信息显示未命中计数器的计数增加,但增加的模式与正常的动态NAT/PAT会话创建模式相同。
在所观察到的间隔内:
点击量从32,525,856,687增加到32,527,308,509
增量:1,451,822
未命中数从293 948 584增加到293 953 221
增量:4,637
这反映了同期每多出1次未命中,大约增加313次命中。在动态NAT/PAT环境中,当数据包在表中已存在匹配转换之前到达时,会发生未命中。一旦创建了转换,该流的后续数据包将计为命中数。根据此行为,所观察到的丢失事件增加与正在进行的会话创建和正常的转换变动一致。
步骤2.检验NAT表中是否存在转换。过滤准确受影响流量的输出(如果适用)。
此步骤确认路由处理器(RP)NAT表是否包含受影响流的转换条目。
该折算存在并反映:
正确的内部本地
更正内部全局
正确的外部地址
正确的协议和端口映射
解释:
不存在转换条目
重点关注NAT匹配、ACL、路由映射或资源分配。
转换存在,但流量仍然失败
转到QFP验证步骤。
这是工作流中最重要的分支之一。
NAT_R1#show ip nat translations verbose
Pro Inside global Inside local Outside local Outside global
icmp 203.0.113.2:3157 192.0.2.2:3157 x.x.x.x:3157 x.x.x.x:3157
create: 06/19/26 05:36:53, use: 06/19/26 05:36:53, timeout: 00:00:45
RuleID : X
Flags: unknown
ALG Application Type: NA
WLAN-Flags: unknown
Mac-Address: 0000.0000.0000 Input-IDB: GigabitEthernet2
entry-id: 0xe8a48090, use_count:1
In_pkts: X In_bytes: 44, Out_pkts: X Out_bytes: X
Output-IDB: GigabitEthernet1
步骤3.检验转换是否已在QFP中编程
此步骤确认RP中可见的转换是否也在转发硬件路径中编程。
NAT_R1#show platform hardware qfp active feature nat datapath gateout
Gatekeeper on
<snip>
sip 192.0.2.35 dip x.x.x.x vrf 0 ts 0xcdd07450 idx 10268
sip 192.0.2.67 dip x.x.x.x vrf 0 ts 0xcdd072de idx 44104
sip 198.51.100.12 vrf 0 cnt 225 ts 0x1b393b5 idx 56738
sip 198.51.100.89 dip x.x.x.x vrf 0 ts 0xcdd071b2 idx 59429 <---------------- Affected Host
| 0xcdd07450 |内部QFP时间戳/年龄值(十六进制)。
| idx | 10268 |内部入口表索引。
| cnt | 225 |该入口对象的内部活动/引用计数。在某些条目类型上可见。
|条目1 | sip 192.0.2.35 dip x.x.x.x vrf 0 ts 0xcdd07450 idx 10268 |源192.0.2.35的元组特定网关条目指向VRF 0中的目标x.x.x.x。
|条目2 | sip 192.0.2.67 dip x.x.x.x vrf 0 ts 0xcdd072de idx 44104 |源192.0.2.67的元组特定网关条目,指向VRF 0中的组播目标x.x.x.x。
|条目3 | sip 198.51.100.12 vrf 0 cnt 225 ts 0x1b393b5 idx 56738 | VRF 0中源主机导向的网关条目198.51.100.12,内部活动/参考计数为225。
|条目4 | sip 198.51.100.89 dip x.x.x.x vrf 0 ts 0xcdd071b2 idx 59429 |源198.51.100.89的元组特定网关条目,指向VRF 0中的目标x.x.x.x。
输出确认设备上启用了NAT数据路径网守功能。它还显示,受影响的源地址198.51.100.89在QFP NAT网关表中作为与VRF 0中的目标流关联的一个元组特定条目存在。
这表示源自198.51.100.89的流量到达QFP数据路径中的NAT转换创建路径,并由网守进程进行内部跟踪。ts和idx值是该网关条目的内部QFP引用。
此输出不确认是否已为受影响的流成功安装完全NAT转换。它仅确认该源/目标元组存在内部网守状态。
对于报告的间歇性行为,相关观察是198.51.100.89在问题窗口期间在网闸中可见,该窗口将故障域与NAT数据路径网守或转换安装阶段对齐,而不是完全没有来自受影响主机的流量。
步骤4.检查NAT网守统计信息。
缓存未命中率快速增加表示未将非NAT转换流添加到缓存。这种情况会提高量子流处理器(QFP)的利用率。
NAT_R1#show platform hardware qfp active feature nat datapath gateout activity
Gatekeeper on
def mode Size 8192, Hits 448492109001, Miss 53295038401, Aged 149941327 Added 603614728 Active 1899
NAT_R1#show platform hardware qfp active feature nat datapath gateout activity
Gatekeeper on
def mode Size 8192, Hits 191540578459, Miss 3196566091, Aged 1365537 Added 9 Active 7
步骤5.在QFP级别验证丢弃。
检查与NAT相关的丢弃计数器
NAT_R1#show platform hardware qfp active statistics drop
Last clearing of QFP drops statistics : never
-------------------------------------------------------------------------
Global Drop Stats Packets Octets
-------------------------------------------------------------------------
NatIn2out 1701 174437
NatOut2in 4838 267167
NAT_R1#show platform hardware qfp active statistics drop
Last clearing of QFP drops statistics : never
-------------------------------------------------------------------------
Global Drop Stats Packets Octets
-------------------------------------------------------------------------
NatIn2out 8039 823998
NatOut2in 26427 1461299
NAT_R1#show platform hardware qfp active statistics drop
Last clearing of QFP drops statistics : never
-------------------------------------------------------------------------
Global Drop Stats Packets Octets
-------------------------------------------------------------------------
NatIn2out 12498 1281045
NatOut2in 41211 2278842
在观察到的行为期间,NatIn2out和NatOut2in QFP丢弃计数器持续增加,表示内部到外部和外到内部NAT转换路径中的数据包持续丢弃。
步骤6.使用数据包验证捕获受到影响的数据包。
此问题中的数据包捕获提供了对通过设备的数据包流和处理的详细可视性,从而能够识别数据包是被NAT转换还是绕过,并帮助隔离NAT网守相关问题的根本原因。这有助于有针对性地排除故障和验证配置更改。
ip access-list extended TAC
permit ip host 198.51.100.89 <destination IP >
permit ip <destination IP > host 198.51.100.89
debug platform condition ipv4 access-list TAC both
debug platform packet packet 128 fia-trace circular
debug platform packet-trace copy packet both
debug platform condition start
debug platform condition stop
注意:本文档不深入介绍数据包捕获。有关数据包捕获的详细信息,请参阅本文档:数据路径数据包跟踪功能 — 数据包捕获
根据数据包捕获分析,发现NAT进程丢弃了受影响的主机流量。具体而言,捕获的数据包与任何现有NAT转换条目或访问控制列表(ACL)中定义的子网都不匹配。 这表示数据包不受NAT转换的约束,也不受已配置的ACL的允许,这可能是导致连接问题的原因。进一步调查可以侧重于检验NAT转换规则和ACL配置,以确保正确处理受影响的流量。
NAT_R1#show platform packet-trace packet 122 decode
Packet: 122 CBUG ID: 650
Summary
Input : GigabitEthernet1
Output : GigabitEthernet2
State : FWD
Timestamp
Start : 6725512391055 ns (07/01/2026 16:56:32.593082 UTC)
Stop : 6725512441820 ns (07/01/2026 16:56:32.593133 UTC)
Path Trace
Feature : IPV4(Input)
Input : GigabitEthernet1
Output : GigabitEthernet2
Source : 198.51.100.89
Destination : <remote Host>
Protocol : 6 (TCP)
SrcPort : 16130
DstPort : 1560
<snip>
Feature : NAT
Direction : OUT to IN
Action : FWD
FWD-POINT : GATEKEEPER_BLOCKED
VRF : 2
Feature: IPV4_NAT_INPUT_FIA
Entry : Input - 0x700140f0
Input : GigabitEthernet1
Output : <unknown>
Lapsed time : 8970 ns
<snip>
Packet Copy In
<snip>
ARPA
Destination MAC : aaaa.bbbb.cccc
Source MAC : bbbb.bbbb.aaaa
<snip>
Packet Copy Out
<snip>>
Found the issue to be gatekeeper:
Feature: NAT
Direction : IN to OUT
Action : FWD
FWD-POINT : GATEKEEPER_BLOCKED
Cisco建议将NATed和非NATed流量分离到不同的接口或设备,以防止与NAT网守功能相关的问题。这种分离有助于避免同一接口上混合流量类型导致的过度处理。
此外,Cisco建议升级到包含NAT网守功能增强功能的Cisco版本。这些增强功能可同时缓存源和目标IP地址,并允许配置缓存大小。可以在全局配置模式下使用命令调整缓存大小:
ip nat settings gatekeeper-size <value>
值必须是2的幂,建议以接近默认设置的大小开头。调整缓存大小后,监控缓存命中与未命中以确保最佳性能和资源利用率。
增加缓存大小可以减少缓存未命中次数并提高NAT处理效率,但它也会消耗量子流处理器(QFP)上的额外内存。 因此,在仔细监测下可逐渐进行调整。
这些建议旨在优化NAT网守性能,并减少由NAT和非NAT流量混合产生的潜在问题。
| 版本 | 发布日期 | 备注 |
|---|---|---|
3.0 |
06-Jul-2026
|
初始版本 — 需要更新并重新发布 |
1.0 |
12-Jun-2026
|
初始版本 |