目录

简介

Cisco IOS XE平台上的CEF行为

检查CEF邻接

观察到的常见现象

结论

简介

本文档介绍基于Cisco IOS® XE的设备上的思科快速转发(CEF)功能。与其他思科路由器不同，基于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子系统进行编程，该QFP子系统在思科聚合服务路由器(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表使用全部100万条路由进行更新。

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秒，您会看到具有100万个前缀的完全更新的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场景可视为此平台的预期行为，因为设备需要几秒钟来更新所有软件模块中的前缀。