此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍基于Cisco IOS® XE的设备上的思科快速转发(CEF)功能。与其他思科路由器不同,基于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子系统进行编程,该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邻接表,以获取有关邻接前缀的所有第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场景可视为此平台的预期行为,因为设备需要几秒钟来更新所有软件模块中的前缀。