目錄

簡介

Cisco IOS XE平台上的CEF行為

檢查CEF鄰接關係

觀察到的常見現象

結論

簡介

本檔案介紹基於Cisco IOS® XE的裝置上的Cisco快速轉送(CEF)功能。與其他Cisco路由器不同，基於Cisco IOS XE的路由器不僅在硬體方面而且在軟體方面都是模組化的。由於這種性質，大多數功能和協定的行為也略有不同。您還將看到如何在基於Cisco IOS XE的裝置上維護CEF表，以及如何根據Cisco IOS XE平台上的CEF更新來管理大邊界網關協定(BGP)表。

Cisco IOS XE平台上的CEF行為

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鄰接關係

通過類似方式，您可以進一步檢查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方案可視為此平台的預期行為，因為裝置更新所有軟體模組中的字首需要幾秒鐘。