簡介
本文描述虛擬介面(NAT NVI)的網路地址轉換導致CPU使用率高的情況。NAT NVI設計為允許虛擬路由轉發(VRF)情景之間的NAT,但已發現在非VRF場景中部署。
使用非VRF NAT NVI的IP輸入高CPU
在其中一些非VRF場景中,NAT NVI可能導致進程交換,而由於IP Input進程以及吞吐量降低而導致高CPU。當NAT NVI與介面過載或包含本地介面子網內的IP地址的NAT池一起完成時,會看到進程交換。發生這種情況時,由於IP Input進程的原因,show process cpu sorted命令會顯示高使用率。
Router#show process cpu sorted
CPU utilization for five seconds: 84%/37%; one minute: 30%; five minutes: 11%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
112 189988000 137290092 1383 45.91% 13.97% 4.05% 0 IP Input
show ip cef switching statistics feature顯示由於目的地為我們的封包而產生的點數大量增加:
Router#show ip cef switching statistics
Reason Drop Punt Punt2Host
RP LES Packet destined for us 0 1402039546 0
RP LES Total 0 1402039546 0
All Total 0 1402039546 0
解決方案
將NAT NVI替換為傳統NAT(ip nat inside或ip nat outside),如下所示:
1.為動態和靜態條目新增新的傳統NAT語句。
(config)#ip nat inside source list 100 interface GigabitEthernet0/0 overload
2.將ip nat inside或ip nat outside新增到NAT介面。
(config)#interface gigabitethernet0/0
(config-if)#ip nat inside
(config)#interface gigabitethernet0/1
(config-if)#ip nat outside
3.從所有介面刪除ip nat enable。
(config)#interface gigabitethernet0/0
(config-if)#no ip nat enable
(config)#interface gigabitethernet0/1
(config-if)#ip nat enable
4.刪除動態和靜態NAT NVI條目。這可能需要使用「forced」關鍵字來刪除當前正在使用的條目。
(config)#no ip nat source list 100 int gigabitEthernet 0 overload
附註:NAT NVI配置指南可在此處找到以供參考。