本文描述如何排除Cat8000平台上的NAT問題。
思科建議您瞭解以下主題:
有關這些主題的詳細資訊,請參閱:
本檔案中的資訊是根據Cisco IOS軟體。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
NAT 拓撲此日誌消息表示裝置嘗試為NAT(例如為動態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負載。Gatekeeper快取中的條目會相對較快地超時,從而允許在網路條件發生變化且流現在可接受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表是否包含受影響流的轉換條目。
該折算現存在並反映:
更正內部本地
correct inside global
正確的外部地址
正確的協定和埠對映
解釋:
不存在轉換條目
重點關注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.使用Packet Capture(資料包捕獲)驗證受影響的資料包。
此問題中的資料包捕獲提供了對通過裝置的資料包流和處理過程的詳細可視性,從而能夠識別資料包是被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網守功能增強功能的思科版本。這些增強功能支援源IP地址和目標IP地址的快取,並允許配置快取大小。可以在全域性配置模式下使用命令調整快取記憶體大小:
ip nat settings gatekeeper-size <value>
該值必須是二的冪,建議以接近預設設定的大小開頭。調整快取大小後,監視快取的命中數和未命中數,以確保最佳效能和資源利用率。
增加快取大小可以減少快取未命中次數並提高NAT處理效率,但它也會消耗量子流處理器(QFP)上的額外記憶體。 因此,在仔細監測下,可逐漸進行調整。
這些建議旨在最佳化NAT網守效能,並減少由NAT和非NAT資料流混合引起的潛在問題。
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
3.0 |
06-Jul-2026
|
初始版本 — 需要更新並重新發佈 |
1.0 |
12-Jun-2026
|
初始版本 |