本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹基於Cisco IOS® XE的裝置上的Cisco快速轉送(CEF)功能。與其他Cisco路由器不同,基於Cisco IOS XE的路由器不僅在硬體方面而且在軟體方面都是模組化的。由於這種性質,大多數功能和協定的行為也略有不同。您還將看到如何在基於Cisco IOS XE的裝置上維護CEF表,以及如何根據Cisco IOS XE平台上的CEF更新來管理大邊界網關協定(BGP)表。
XE平台內的CEF表更新
在Cisco IOS XE裝置(如ASR1000)上,控制平面與轉發平面是分開的。每當需要將任何更新從控制平面傳遞到資料平面時,它都必須通過流程圖中顯示的資料流。例如,對於CEF,每當在控制平面上學習到任何字首時,此更新都會從控制平面(IOSd)傳遞到控制平面(FMAN-RP)的轉發管理器。 控制平面上的轉送管理器使用核心實用程式(如lsmpi、超傳輸(HT)連結等),以將更新傳遞到轉送平面(ESP)轉送管理器(FMAN-FP)。 轉送管理器將更新傳送到量子流處理器(QFP),該處理器對QFP微碼進行程式設計,以便最終對QFP子系統程式設計,該子系統在Cisco Aggregation Services Router(ASR)裝置中執行資料包的實際轉送。
可以使用各種命令檢查這些軟體模組中的CEF更新。這是分步進行的。
若要檢查控制平面上的CEF:
Router#show ip cef Prefix Next Hop Interface 0.0.0.0/0 no route 0.0.0.0/8 drop 0.0.0.0/32 receive 1.1.1.1/32 10.10.10.1 GigabitEthernet0/0/0 2.2.2.2/32 receive Loopback1 10.10.10.0/24 attached GigabitEthernet0/0/0 10.10.10.0/32 receive GigabitEthernet0/0/0 Router#show platform software ip rp active cef summary Forwarding Table Summary Name VRF id Table id Protocol Prefixes State ------------------------------------------------------------------------------------------------
Default 0 0 IPv4 20 OM handle: 0x404a4df8 Router#show platform software ip rp active cef detail Forwarding Table 0.0.0.0/0 -> OBJ_ADJ_NOROUTE (0), urpf: 5 Prefix Flags: Default, Default route handler OM handle: 0x404a91e8 0.0.0.0/8 -> OBJ_ADJ_DROP (0), urpf: 13 Prefix Flags: unknown OM handle: 0x404bd5e8 0.0.0.0/32 -> OBJ_ADJ_RECEIVE (0), urpf: 12 Prefix Flags: Receive OM handle: 0x404bd298 1.1.1.1/32 -> OBJ_ADJACENCY (16), urpf: 20 Prefix Flags: unknown OM handle: 0x404fec70
若要檢查轉送平面(ESP)中的CEF詳細資訊:
Router#show platform software ip fp active cef detail Forwarding Table 0.0.0.0/0 -> OBJ_ADJ_NOROUTE (0), urpf: 5 Prefix Flags: Default, Default route handler aom id: 73, HW handle: 0x4310df8 (created) 0.0.0.0/8 -> OBJ_ADJ_DROP (0), urpf: 13 Prefix Flags: unknown aom id: 90, HW handle: 0x4362cd8 (created) 0.0.0.0/32 -> OBJ_ADJ_RECEIVE (0), urpf: 12 Prefix Flags: Receive aom id: 86, HW handle: 0x4333568 (created) 127.0.0.0/8 -> OBJ_ADJ_DROP (0), urpf: 13 Prefix Flags: unknown aom id: 91, HW handle: 0x4387048 (created) 224.0.0.0/4 -> OBJ_ADJ_DROP (0), urpf: 13 Prefix Flags: unknown aom id: 92, HW handle: 0x43870d8 (created) Router#show platform software ip fp active cef summary Forwarding Table Summary Name VRF id Table id Protocol Prefixes State ------------------------------------------------------------------------------------------------ Default 0 0 IPv4 20 hw: 0x43010a8 (created)
當您在裝置上遇到CEF問題時,也可以使用這些命令。例如,雖然路由已獲知,但字首不可訪問。您可以挖掘所有模組,檢視是否正確更新了所有CEF表。
通過類似方式,您可以進一步檢查CEF鄰接表以獲取有關相鄰字首的所有第2層資訊。
若要檢查控制平面上的CEF鄰接關係:
Router#show adjacency gigabitEthernet 0/0/0 detail Protocol Interface Address IP GigabitEthernet0/0/0 10.10.10.1(11) 72772 packets, 4622727 bytes epoch 0 sourced in sev-epoch 0 Encap length 14 0062EC6B89000062EC6BEC000800 L2 destination address byte offset 0 L2 destination address byte length 6 Link-type after encap: ip ARP Router#show platform software adjacency rp active Number of adjacency objects: 4 Adjacency id: 0x10 (16) Interface: GigabitEthernet0/0/0, IF index: 8, Link Type: MCP_LINK_IP Encap: 0:62:ec:6b:89:0:0:62:ec:6b:ec:0:8:0 Encap Length: 14, Encap Type: MCP_ET_ARPA, MTU: 1500 Flags: no-l3-inject Incomplete behavior type: None Fixup: unknown Fixup_Flags_2: unknown Nexthop addr: 10.10.10.1 IP FRR MCP_ADJ_IPFRR_NONE 0 OM handle: 0x404ea1d8
您需要記下鄰接關係ID,才能檢查轉發平面中有關此特定鄰接關係的詳細資訊。在這種情況下,鄰接ID為16。
若要檢查轉發平面上的CEF鄰接關係:
Router#show platform software adjacency fp active index 16 Number of adjacency objects: 4 Adjacency id: 0x10 (16) Interface: GigabitEthernet0/0/0, IF index: 8, Link Type: MCP_LINK_IP Encap: 0:62:ec:6b:89:0:0:62:ec:6b:ec:0:8:0 Encap Length: 14, Encap Type: MCP_ET_ARPA, MTU: 1500 Flags: no-l3-inject Incomplete behavior type: None Fixup: unknown Fixup_Flags_2: unknown Nexthop addr: 10.10.10.1 IP FRR MCP_ADJ_IPFRR_NONE 0 aom id: 114, HW handle: 0x43ae148 (created)
在這裡,您可以看到CEF鄰接資訊已填充到FP上的轉發管理器(FMAN)中。FMAN FP將此資訊傳送到QFP客戶端驅動程式,該驅動程式對QFP轉發表進行程式設計,該轉發表最終將用於轉發。從上一個命令複製硬體控制代碼以檢查QFP上的轉發資訊。
Router#show pla hard qfp act feature cef-mpls adjacency handle 0x43ae148 Adj Type: : IPV4 Adjacency Encap Len: : 14 L3 MTU: : 1500 Adj Flags: : 0 Fixup Flags: : 0 Output UIDB: : Interface Name: GigabitEthernet0/0/0 Encap: : 00 62 ec 6b 89 00 00 62 ec 6b ec 00 08 00 Next Hop Address: : 10.10.10.1 Lisp Fixup HW Ptr: : 0x767b28f0 Next HW OCE Ptr: : 00000000 CM HW Ptr:: 946947588 Fixup_Falgs_2: : 0
在這裡,您知道所有鄰接表都正確更新,並且路由器已準備好轉發。然而,隔離的整個過程需要大量命令,並且需要瞭解一定級別的模組化架構。因此,為了簡化這一過程,最近引入了一個命令,它提供來自所有模組的統一資訊。
附註:對於路由表長的裝置,此命令可能需要幾分鐘才能運行。
命令是show ip cef platform detail。
對於在路由器上獲知大量字首的所有Cisco IOX XE模組化裝置,通常需要一些時間對所有轉發模組中的所有字首進行程式設計。這經常出現在位於提供商邊緣的路由器上,它們從ISP獲取完整的BGP路由表。
在技術支援中心,很少收到這樣的情況:在BGP會話啟動後,甚至在路由表中更新BGP路由後,字首仍會暫時無法訪問。一般情況下,需要20到30秒鐘,且取決於路由器平台來對這些字首執行ping。例如,以下是一個測試案例:
Pagent是一種流量生成器工具,用於將100萬條BGP路由推送到ASR1002HX路由器。
此處您會看到,即使是在裝置上學習了BGP路由並且控制平面CEF表已更新,內部網路也無法ping學習的字首數秒鐘。根據CEF討論,您顯然需要在每個軟體模組上更新CEF條目。您可以在此特定情況下看到此行為的一個後果,其中由於ESP轉發表中未更新字首而無法訪問字首。以下是ASR1002HX的一些輸出以供參考。
BGP表更新了全部一百萬條路由。
Router#show ip bgp summary BGP router identifier 1.1.1.1, local AS number 100 BGP table version is 1, main routing table version 1 1000002 network entries using 248000496 bytes of memory 1000002 path entries using 128000256 bytes of memory 100002/0 BGP path/bestpath attribute entries using 26400528 bytes of memory 100000 BGP AS-PATH entries using 5402100 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 407803380 total bytes of memory BGP activity 8355774/7355772 prefixes, 9438985/8438983 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.10.10.2 4 100 5 2 1 0 0 00:00:58 1 20.20.20.2 4 100 100002 3 1 0 0 00:01:02 1000000
雖然BGP表有100萬個字首,但轉發管理器CEF表只獲得了48613字首。
如果等待20-30秒,則會看到帶有一百萬個字首的完全更新的FP CEF表。
Router#show platform software ip fp active cef summary
Forwarding Table Summary
Name VRF id Table id Protocol Prefixes State
------------------------------------------------------------------------------------------------
Default 0 0 IPv4 48613 hw: 0x2edce98 (created)
處理基於Cisco IOS XE的模組化架構裝置轉發相關問題時,必須驗證來自所有軟體模組的轉發表相關資訊。解釋的BGP方案可視為此平台的預期行為,因為裝置更新所有軟體模組中的字首需要幾秒鐘。