目录
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
本文档简要概述了OSPF/IS-IS和BGP路由的一些已建立的最佳实践建议。这些建议并不代表思科验证设计,在任何特定操作环境中部署时都需要适当关注和关注。阅读它们时应结合相关产品的配置指南和技术文档,这些文档应更详细地描述如何实施这些最佳实践建议。 本文档对特定产品的配置指南和技术文档的参考仅用作示例。请参阅特定产品的配置指南和技术文档。
本文档概述了一些已建立的最佳实践和建议,用于构建由IOS XR路由平台提供支持的简化、高效和可扩展网络。本文档重点介绍IOS XR中提供的特定实施技术和功能支持选项,以帮助自定义OSPF/IS-IS和BGP部署。
RFC 2328中定义的OSPF协议是用于在单个自治系统内分发路由信息的IGP。与其他协议相比,OSPF具有多种优势,但创建可扩展的容错网络需要适当的设计。
有关OSPF的详细信息,请参阅:
■ OSPF技术说明:
https://www.cisco.com/c/en/us/support/docs/ip/open-shortest-path-first-ospf/7039-1.html#anc13
■令参考: https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/711x/routing/configuration/guide/b-routing-cg-asr9000-711x/implementing-ospf.html?dtid=osscdc000283
■层级:分层网络模型是设计可靠网络基础架构的有用高级工具,有助于将复杂的网络设计问题分解成更小、更易于管理的区域。
■模块化:通过将网络中的各种功能拆分为模块,网络设计更加简单。思科已确定了多个模块,包括企业园区、服务模块、数据中心和互联网边缘。
■恢复能力:网络在正常和异常情况下均可用。正常状况包括预期流量、模式和计划事件(如维护窗口)。异常情况包括硬件或软件故障、极端流量负载、异常流量模式、拒绝服务(DoS)事件以及其他计划内或计划外事件。
■灵活性:能够修改网络部分、添加新服务或增加容量,而无需进行大规模的叉车式升级(即更换主要硬件设备)。
作为一般最佳实践,网络部署应该考虑网络的“跨度”,以包含特定边界内的路由和域内路由器需要转发的相关路由。有效地使用OSPF区域有助于减少链路状态通告(LSA)和网络中发送的其他开销流量。创建层次结构的优点之一是,此方法有助于确保每个路由器需要维护的拓扑数据库的大小易于管理,并且符合路由器的内存配置文件。
OSPF只支持几千条路由。在高级别上,OSPF“区域”是网络中任何路由器都知道该区域中其他每个路由器的路由能力的部分。这样可以在任何设备出现问题时快速收敛,但会降低可扩展性。因此,服务提供商核心中使用OSPF来提供所有核心设备之间的基本级连接,并且所有核心设备都配置在同一OSPF区域内。这是“基础”网络的标准设计。
相比之下,BGP所承载的路由远远多于大多数IGP,如OSPF。将BGP路由重分发到类似OSPF的IGP中的相关风险。如果服务提供商需要将BGP路由重分发到IGP域以供任何使用案例使用,则需要由服务提供商通过自主系统边界路由器(ASBR)的正确过滤和在接收路由器上配置的过载保护对其进行管理。如果BGP重分发未过滤到OSPF,则ASBR中的每个OSPF设备将开始接收远远超出其同时处理能力的路由。例如,默认情况下,Cisco IOS XR路由器仅允许10,000个BGP路由重分发到OSPF。当BGP路由重新分发到IGP时,根据IGP设计,IGP域内的所有路由器可能会收到这些路由。根据OSPF协议RFC,任何重分发到OSPF的外部路由都必须分发到OSPF区域中的所有路由器。
一般而言,只有在没有其它选项可获知由重分发功能提供的可达性路由时,才应以精心计划的方式进行重分发。
作为一般惯例,您应该:
■避免重分发
■ 避免在IGP域中传送路由
■实施BGP以实现外部可达性
使用过载保护(max-lsa)配置管理从BGP重分配到OSPF的前缀的规模。这是防止大量路由泄露到OSPF域的唯一保护。如果重分发到单个OSPF区域,您应实施多层保护以防止路由重分发。
以下是一些可用于防止路由重分发的选项:
■使用ACL进行重分发过滤
■重分发限制 — 全局设置,用于防止重分发超过特定数量的路由。如果删除过滤器,全局重分发限制是第二道防线,将保护核心。
■OSPF区域中的所有设备上的Max-LSA配置 — 如果上述各项中提到的保护失败,则强制接收路由器拒绝传入的过量LSA。
OSPF链路状态数据库过载保护功能在OSPF级别提供一种机制,以限制给定OSPF进程的非自生成LSA的数量。如果网络中的其他路由器配置错误,它们可能会生成大量LSA,例如将大量前缀重分发到OSPF。此保护机制有助于防止路由器接收许多LSA,从而导致CPU和内存不足。
以下是功能的工作原理:
■ 启用此功能后,路由器会对所有接收的(非自生成)LSA数量进行计数。
■ 达到配置的阈值时,将记录错误消息。
■ 当超过已配置的最大接收的LSA数时,路由器将停止接受新的LSA。
max-lsa <max-lsa-count> <%-threshold-to-log-warning> ignore-count <ignore-count-value> ignore-time <ignore-time-in-minutes> reset-time <time-to-reset-ignore-count-in-minutes>
如果收到的LSA计数在一分钟后大于配置的max数,则OSPF进程将关闭所有邻接关系并清除OSPF数据库。此状态称为ignore state。在此状态下,将忽略在属于OSPF实例的所有接口上接收的所有OSPF数据包,并且不会在接口上生成OSPF数据包。在配置的忽略时间(默认值为5分钟)内,OSPF进程保持忽略状态。ignore-time到期后,OSPF进程将恢复正常运行并在所有接口上建立邻接关系。
如果OSPF实例从ignore状态返回后,LSA计数超过max数,则OSPF实例可以在其正常状态和忽略状态之间无休止地振荡。为了防止这种无限振荡,OSPF实例会计算其处于忽略状态的次数。此计数器称为ignore-count。如果ignore-count(default ignore-count为5)超过其配置值,则OSPF实例将永久保持为ignore状态。
您必须发出clear ospf命令以将OSPF实例恢复为正常状态。如果LSA计数在reset-time关键字配置的时间段内未再次超过最大值,则ignore-count将重置为零。
如果使用warning-only关键字,则OSPF实例永远不会进入忽略状态。当LSA计数超过maximum时,OSPF进程会记录错误消息,并且OSPF实例会在其正常状态操作中继续。
max-lsa没有默认值。仅当特别配置限制时,才会检查该限制。
配置max-lsa后,其他参数可以具有默认值:
■ default %-threshold-to-log-warning - 75%
■ default ignore-count-value - 5
■ default ignore-time-in-minutes - 5分钟
■ default time-to-reset-ignore-count - 10分钟
以下示例展示如何配置OSPF实例以接受VRF V1中的12000个非自生LSA和1000个非自生LSA。
RP/0/RSP0/CPU0:router# configure
RP/0/RSP0/CPU0:router(config)# router ospf 0
RP/0/RSP0/CPU0:router(config-ospf)# max-lsa 12000
RP/0/RSP0/CPU0:router(config-ospf)# vrf V1
RP/0/RSP0/CPU0:router(config-ospf)# max-lsa 1000
以下示例展示如何显示OSPF实例的当前状态。
RP/0/RSP0/CPU0:router# show ospf 0
Routing Process "ospf 0" with ID 10.0.0.2
NSR(无间断路由)已禁用
Supports only single TOS(TOS0) routes
Supports opaque LSA
它是区域边界路由器
允许的最大非自生成LSA数12000
当前非自生成LSA 1的数量
警告消息阈值75%
Ignore-time 5分钟, reset-time 10分钟
Ignore-count allowed 5, current ignore-count 0
BGP地址系列使BGP成为“多协议”路由协议。强烈建议您了解如何使用地址系列创建易于实施和管理的可扩展拓扑。通过使用地址系列,运营商可以为不同的技术(例如EVPN、组播等)创建不同的拓扑。
有关BGP的详细信息,请参阅BGP配置指南:https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/bgp/76x/b-bgp-cg-ncs5500-76x/implementing-bgp.html
服务提供商网络中的BGP融合对于满足客户构建恢复能力和容错网络的期望非常重要。默认情况下,BGP的保持连接计时器为60秒,保持计时器为180秒。所有这一切都意味着BGP的收敛速度将非常缓慢,除非支持协议可提供帮助。BFD双向转发(BFD)是此类协议,旨在帮助客户端协议更快收敛。使用BFD,协议可以在数秒内收敛。
■ 本指南提供BFD的概念和配置信息:https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/routing/76x/b-routing-cg-ncs5500-76x/implementing-bfd.html
■本白皮书以服务提供商为中心,介绍如何在Cisco NCS 5500和Cisco Network Convergence System 500系列路由器上使用BFD实现快速融合:https://xrdocs.io/ncs5500/tutorials/bfd-architecture-on-ncs5500-and-ncs500/
■ 有关在捆绑包接口上使用BFD和实施多路径和多跳BFD的深入探讨,请参阅https://xrdocs.io/资料库。
慢速对等体是无法跟上更新组中路由器在较长时段(以分钟为单位)内生成更新消息的速率的对等体。当更新组中存在慢速对等体时,等待传输的格式化更新数量就会累积。达到缓存限制时,组没有更多配额来格式化新邮件。要格式化新消息,必须使用慢速对等体传输某些现有消息,然后将其从缓存中删除。组的其余成员比慢速对等体快,并且已完成格式化消息的传输,即使可能有新修改的BGP网络等待通告或退出,也不会发送任何新消息。当一个对等体消耗更新较慢时,阻止组中所有对等体的格式设置的效果是“对等体速度较慢”的问题。
导致BGP表发生重大变化(例如连接重置)的事件可能会导致更新生成速率出现短暂峰值。在此类事件期间临时落后但在该事件不被视为慢速对等体后快速恢复的对等体。对于标记为慢速的对等体,它必须在更长的时间内(大约几分钟)无法保持生成的更新的平均速率。
BGP缓慢对等体可能是由以下原因导致的:
■数据包丢失或到对等体的链路上的高流量。
■ BGP对等体可能在CPU方面负载过重,因此无法以所需的速度为TCP连接提供服务。
■ 在这种情况下,必须检查平台硬件功能和提供的负载。
■ BGP连接的吞吐量问题
■ 有关BGP慢速对等体检测的更多信息,请参阅:https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/bgp/76x/b-bgp-cg-ncs5500-76x/implementing-bgp.html#concept_ir5_j4w_p4b
以下是一些管理慢速对等体的缓解措施和最佳实践:
■端到端QoS,在拥塞期间为BGP控制平面流量保留带宽。
■ 使用BGP PMTUD和/或TCP MSS设置使用正确和适当的MSS/MTU值。
■使用正确的硬件,并最大程度地减少与硬件相关的路由数量。
从版本7.1.2开始,思科IOS XR默认启用慢速对等体检测。较慢的对等体是接收和处理入站BGP更新以及确认发送到发送方的更新的较慢的对等体。如果较慢的对等体与其他对等体参与同一更新组,则可能会减慢所有对等体的更新过程。在此版本中,当IOS XR检测到慢速对等体时,它将创建一个包含特定对等体详细信息的系统日志。
对于BGP前缀,使用BGP前缀独立收敛(PIC)实现快速收敛,其中BGP计算备用最佳路径和主最佳路径,并将两条路径作为主路径和备用路径添加到路由表中。
如果BGP下一跳远程路由变得不可达,BGP会立即使用BGP PIC切换到备用路径,而不是在故障后重新计算路径。
如果BGP下一跳远程PE处于活动状态,但存在路径故障,IGP TI-LFA FRR会处理到备用路径的快速重新融合,并且BGP会更新远程PE的IGP下一跳。
BGP PIC在VRF地址系列下配置,以便在远程PE不可达时快速收敛VPN前缀。
有关BGP前缀独立融合的详细信息,请参阅:
https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/bgp/76x/b-bgp-cg-ncs5500-76x/bgp-pic.html
BGP Flowspec(简而言之)功能允许您接收IPv4/IPv6流量规范(源X、目标Y、协议UDP、源端口A等)以及需要通过BGP更新对该流量执行的操作(例如丢弃、管制或重定向)。在BGP更新内
部,Flowspec匹配标准由BGP NLRI表示,BGP扩展社区代表这些操作。
路由器收到Flowspec并在适用的线卡中进行编程后,这些线卡上的所有活动L3端口将开始根据Flowspec规则处理入口流量。
有关实施BGP FlowSpec的详细信息,请参阅:
■ BGP FlowSpec白皮书:https://xrdocs.io/ncs5500/tutorials/bgp-flowspec-on-ncs5500/
当在远程对等站点的出站策略发生变化时,路由器开始接收的前缀超过对等路由器的资源可以处理的前缀,同时保护资源或转发这些外部前缀的内部BGP对等体时,最大前缀功能非常有用。此类资源开销可能会造成中断。
BGP maximum-prefix功能对从给定地址系列的邻居接收的前缀数量施加最大限制。默认情况下,只要收到的前缀数量超过配置的最大数量,BGP会话就会向邻居发送停止通知,会话就会终止。一个跨越maximum-prefix的地址系列将关闭整个BGP会话,影响该BGP会话中启用的所有其他地址系列。
此功能通常用于外部BGP对等体,以保护服务提供商的内部基础设施。它充当保护栏,防止本地或远程邻居上配置错误可能导致路由器资源耗尽。强烈建议配置maximum-prefix以防止可能触发路由表泛洪的本地或远程错误配置。这还可以防御前缀解汇聚攻击。
应在所有eBGP路由器上明确启用BGP最大前缀配置,以限制它应该从特定邻居接收的前缀数量,无论是客户还是对等AS。建议操作员配置额外前缀的可接受范围,以便在仔细评估可用系统内存后系统可以保持这些范围。应该注意的是,没有一种大小适合所有可能应用到所有路由器的配置,应根据设备在网络中的角色仔细调整阈值。例如,如果要在IBGP邻居上配置BGP最大前缀,则路由反射器上配置的邻居的最大前缀值必须低于路由反射器客户端上配置的邻居的最大前缀值。路由反射器汇聚从多个对等路由器接收的前缀,然后将完整表重新通告给路由反射器客户端。因此,路由反射器会向其客户端通告比从每个对等体接收的前缀更多的前缀。类似地,对等路由器也可以向路由反射器重新通告比它从每个外部对等体接收更多的前缀。
总之,建议仔细检查并配置在生产设备上达到最大前缀阈值时要采取的相应操作。maximum-prefix命令选项的某些属性说明如下:
%ROUTING-BGP-5-ADJCHANGE_DETAIL : neighbor 10.10.10.10 Down — 已收到BGP通知,已达到最大前缀数(VRF:默认;AFI/SAFI:1/1、1/128、2/4、2/128、1/133、2/133)(AS:65000)"
%ROUTING-BGP-5-NBR_NSR_DISABLED_STANDBY :由于对等体超过最大前缀限制(VRF:默认值),在备用RP上的邻居10.10.10.10上禁用了NSR
建议:在配置maximum-prefix命令时,请仔细评估以下选项:
有关详细信息,请参阅路由配置指南,如下所示:
以下列表提供一般最佳实践和建议的概述,无特定顺序列出:
■系统一般健康状态的网络审计。从配置审核开始,按顺序从接口配置到路由和服务。
■制定监控策略。虽然SNMP是标准实践,但请考虑使用流遥测部署更稳健且描述性更强的技术。有关在IOS XR路由器上实施遥测的最佳实践建议,请参阅以下白皮书:https://xrdocs.io/telemetry/
以下是OSPF的一般最佳实践和建议:
■ 为OSPF的区域内路由实施路由汇总。
■ 将OSPF内的路由器ID显式配置为启用了OSPF的环回地址之一。
■ 设计分层网络以限制用于OSPF的区域中的LSA。将某个区域的ABR数量保持在合理范围内(~3到4)。
■为OSPF或等效项实施OSPF“max-lsa”配置,以限制数据库中的LSA以有效使用系统内存。
■ 限制可从BGP分发到OSPF的最大路由数。在IOS-XR中,默认限制为10K。
■使用路由策略(RPL)将路由重分发到OSPF。
■ 如果适用,汇总区域间路由和外部第5类路由。
■必要时使用身份验证。
■ 始终使用NSF和NSR。
■在源而不是目标位置配置重分发过滤。
■使用被动接口(如果适用)。
■OSPF应只传送环回路由和路由器接口路由 — 删除任何其他BGP到OSPF重分发。
■ 考虑将每个主集线器移动到其自己的区域(NSSA)。
■ 使用BFD进行快速故障检测,而使用主动路由协议计时器。
■ 尽可能不要使用mtu-ignore命令。
■ 考虑在MPLS环境中使用IGP-LDP同步,以避免在未标记的路径上发送流量。
■ 考虑受支持的平台限制内的扩展(前缀数量、标签数量、ECMP、区域数量等)。
■ 避免在多点进行相互重分发。
■ 配置管理距离,以便通过相应域的协议或进程到达每个协议或进程的本地前缀。
■控制前缀(使用距离或前缀列表组合),以使同一前缀不会通告回始发域。
■ 虽然OSPF进程ID对路由器具有本地意义,但建议对同一OSPF域中的所有路由器使用相同的进程ID。这提高了配置一致性并简化了自动配置任务。
■为集中星型环境配置OSPF时,使用较少数量的路由器来设计OSPF区域。
■配置整个OSPF域到网络中最高带宽链路的OSPF自动开销参考带宽。
■从设计的角度,我们建议您与处于相同管理或操作控制下的域实施IGP对等,以帮助避免计划外或欺诈IGP更新在网络中传播。这应有助于提高可维护性,并在出现错误时简化故障排除。如果业务需要大型IGP域,计划在这些情况下使用BGP以限制IGP网络域中的路由数量。
■ 如果您需要端到端MPLS连接,请继续使用层次结构/分段并使用RFC3107 BGP-LU等选项或通过PCE进行域间路径计算,或者选择重分发/泄露策略作为最后手段。
■OSPF最短路径优先限制功能可用于以毫秒为间隔配置SPF调度,并可能会在网络不稳定期间延迟SPF计算。
■OSPF SPF前缀优先化功能使管理员能够在路由安装期间更快地融合重要前缀。
以下是IS-IS的一般最佳实践和建议:
■ 如果您运行的是平面单级网络,请考虑规模。将所有路由器仅配置为L2。默认情况下,路由器为L1-L2,并且默认启用从L1到L2的路由信息泄漏。这可能导致所有路由器将所有L1路由泄漏到L2,使链路状态数据库膨胀。
■ 如果运行多级(多区域)网络,请确保第3层拓扑遵循ISIS层次结构。请勿在L1区域之间创建后门链路。
■ 如果运行多级(多区域)网络,请确保L1和L2路由器通过L1和L2区域连接。这不需要它们之间的多个物理或虚拟连接;将第1层和第2层路由器之间的链路作为L1/L2电路运行。
■如果您运行多级(多区域)网络,请总结可以总结的内容 — 例如,对于MPLS,PE路由器的环回需要在区域之间传播,但基础设施链路地址不传播。
■ 如果可能,请创建并遵循适当的编址计划。这允许总结并帮助扩展。
■ 将LSP寿命设置为最多18小时。
■通过任何方式避免重分发。重分发很复杂,需要手动管理以避免路由环路。尽可能使用多区域/级别设计。
■ 如果必须使用重分发,请在重分发期间使用路由标记,并根据标记进行“分发列表位置”过滤以对其进行管理。如果可能,在重分发过程中进行汇总。
■ 尽可能将接口配置为“点对点”。这提高了协议的性能和可扩展性。
■ 请勿在高网状拓扑中使用ISIS。链路状态协议在高网状环境中表现不佳。
■ 在ISIS地址系列子模式下配置高默认度量。这样可以防止新添加的链路在未使用度量而无意中配置的情况下吸引流量。
■ 配置“log adjacency changes”以帮助进行连接故障排除。
■ 在ISIS地址系列ipv4子模式下使用“metric-style wide”。窄度量不是非常有用,不支持分段路由或flex-algo等功能。
■ 如果使用SR-MPLS TI-LFA,请记住将“ipv4 unnumbered mpls traffic-eng Loopback0”添加到配置中,以允许ISIS在需要时分配TE隧道。
■使“lsp-gen-interval”和“spf-interval”配置成为默认值,除非您确定需要更快的本地收敛。使用TI-LFA本征融合并不是很关键,因为快速重新路由将在50毫秒或更短时间内处理单个拓扑更改。
■ 如果修改“lsp-gen-interval”或“spf-interval”,请不要使用初始延迟时间短于50毫秒。
■ 在大多数情况下,“set-overload-bit”比作“max-metric”更好,因为它是快速重路由支持的原子更改。
■ 对Hello(hello-password)和LSP(lsp-password)使用加密身份验证。密钥链提供最大的灵活性,并可适
应无中断密钥滚动。
■配置“nsf cisco”以对ISIS进程重新启动和SMU安装进行无中断身份验证。尽管名称相同,但与“nsf ietf”相比,它仍可提供更好的与其他供应商的互操作性。
■ 在具有双RP的平台上,还要配置“nsr”以处理RP切换。
■使用“group”和“apply-group”模板配置重复的配置部分。这不太容易出错,而且如果需要,更容易更改。
■ 在多级网络中,请仔细考虑是否需要使用“propagate”将前缀从级别2向下泄漏到级别1。这会限制可扩展性,而且连接位提供的1级默认路由通常就足够了。
■ 如果在同一VRF中使用多个ISIS实例,请考虑为它们配置唯一的“距离”值。如果每个RIB都具有通往相同前缀的路由,这会使RIB中的路由安装更加确定性。
■ 使用BFD进行快速链路断开检测。利用BFD提供此功能,可以安全地增加ISIS hello间隔以提高可扩展性。
以下是BGP的一般最佳实践和建议:
■ 根据预期规模,使用精心调整的计时器的NSR和NSF/平稳重启。
■ 使用“always UP”环回接口(而不是IBGP对等体的物理接口)配置BGP。
■ 如果没有适当的RPL,请勿将BGP(高容量)路由重分布到IGP(相对低容量),反之亦然,这会限制从BGP重分布到IGP(OSPF/ISIS)的路由的数量。
■ 在没有经过正确测试策略(ACL)的情况下执行BGP到IGP的重分发可能会导致路由器上的资源(内存)耗尽。
■在BGP中使用汇总路由,以减小路由表大小和内存使用。在有意义的地方,聚合路由时仅使用汇总
■使用路由过滤有效地通告和接收路由,尤其是在BGP中。
■我们建议使用路由反射器(RR)和联盟来扩展网络。
■路由反射器设计注意事项包括:
■路径扩展根据客户端/非客户端的数量增加。
■在分层RR中,在同一级别使用相同的集群ID(冗余RR),以实现环路预防和扩展。
■控制BGP路径中的MTU或使用PMTUD协议自动调整BGP MSS。
■ 使用BFD或调整BGP计时器以加快故障检测。
■BGP规模取决于配置和使用案例,没有一种规模适合所有情况。您需要有一个好主意:
■路由规模
—路径扩展(使用软重新配置,将增加)
— 属性比例
■ 如果配置了添加路径,则会消耗更多内存。
■ 仔细了解BGP邻居策略:
— pass-all(特别是在边界路由器上)可能会引起大破坏,因为内存扩展将会增加。
—使用将避免RPL中正则表达式匹配的策略结构。
■使用NSR时,备用RP使用的虚拟内存将比主用内存多大约30%。如果存在备用内存,请保持考虑这一点。
■ 注意大量路由中的持续抖动(版本颠簸)。这可能会使更新生成内存保持高水位线。
■ 使用max-prefix命令保护对等体。
■ 根据扩展和收敛目标使用下一跳触发延迟参数。
■ 在网络设计中,尽量避免使用新属性。独特属性会导致包装效率低下,并导致更多BGP更新。
■ 配置网络上的多路径可能会导致转发环路。请谨慎使用。
■ 如果RR不是inline-RR(no next-hop-self),则使用table-policy避免将路由安装到rib
没有设备具有无限的资源 — 如果我们向设备发送无限数量的路由,设备必须选择其失败方式。路由器将尝试维护所有路由,直到耗尽内存限制,这可能造成所有路由协议和进程失败。
核心路由器中的每个进程都定义了“RLIMIT”。“RLIMIT”是每个进程允许使用的系统内存量。
本节介绍一些用于监视和检查BGP进程使用的系统内存的标准技术。
显示进程消耗的内存量。
RP/0/RP0/CPU0:NCS-5501#show proc memory
JID文本(KB)数据(KB)堆栈(KB)动态(KB)进程
------ ---------- ---------- ---------- ----------- ------------------------------
1150 896 368300 136 33462 lspv_server
380 316 1877872 136 32775 parser_server
1084 2092 2425220 136 31703 bgp
1260 1056 1566272 160 31691 ipv4_rib
1262 1304 1161960 152 28962 ipv6_rib
1277 4276 1479984 136 21555 pim6
1301 80 227388 136 21372 schema_server
1276 4272 1677244 136 20743 pim
250 124 692436 136 20647 invmgr_proxy
1294 4540 2072976 136 20133 l2vpn_mgr
211 212 692476 136 19408 sdr_invmgr
1257 4 679752 136 17454 statsd_manager_g
为每个进程分配允许使用的最大内存量。这被定义为限制。
RP/0/RP0/CPU0:NCS-5501#show proc memory detail
JID文本数据堆栈动态动态动态限制Shm-Tot Phy-Tot进程
============================================================================================================
1150 896K 359M 136K 32M 1024M 18M 24M lspv_server
1084 2M 2368M 136K 30M 7447M 43M 69M bgp
1260 1M 1529M 160K 30M 8192M 38M 52M ipv4_rib
380 316K 1833M 136K 29M 2048M 25M 94M解析器_server
1262 1M 1134M 152K 28M 8192M 22M 31M ipv6_rib
1277 4米1445米136K 21米1024米18米41米pim6
1301 80K 222M 136K 20M 300M 5M 33M schema_server
1276 4米1637米136K 20米1024米19米41米pim
250 124K 676M 136K 20M 1024M 9M 31M invmgr_proxy
1294 4M 2024M 136K 19M 1861M 48M 66M l2vpn_mgr
211 212K 676M 136K 18M 300M 9M 29M sdr_invmgr
1257 4K 663M 136K 17M 2048M 20M 39M statsd_manager_g
288 4K 534M 136K 16M 2048M 15M 33M statsd_manager_l
RP/0/RP0/CPU0:NCS-5501#show memory-top-consumers
############################################################################
0/0/CPU0上的最大内存消耗者(2022/Apr/13/15:54:12)
############################################################################
PID进程总数(MB)共享堆(MB)
3469 fia_driver 826 492.82 321
4091 fib_mgr 175 1094.43 155
3456 spp 130 9.68 124
4063 dpa_port_mapper 108 1.12 105
3457数据包104 1.36 101
5097 l2fib_mgr 86 52.01 71
4147 bfd_agent 78 6.66 66
4958 eth_intf_ea 66 4.76 61
4131 optics_driver 62 141.23 22
4090 ipv6_nd 55 4.13 49
############################################################################
在0/RP0/CPU0(20xx/MMM/HH:MM:SS)上使用最多的内存
############################################################################
PID进程总数(MB)共享堆(MB)
3581 spp 119 9.62 114
4352 dpa_port_mapper 106 2.75 102
4494 fib_mgr 99 7.71 90
3582数据包96 1.48 94
3684 parser_server 95 64.27 25
8144 te_control 71 15.06 55
8980 bgp 70 27.61 44
7674 l2vpn_mgr 67 23.64 48
8376 mibd_interface 65 35.28 28
系统组件有固定数量的可用内存。
RP/0/RP0/CPU0:NCS-5501#show memory summary location all
节点:node0_0_CPU0
------------------------------------------------------------------
物理内存:总共8192M(有6172M可用)
应用内存:8192M(6172M可用)
图像:4M(bootram:0M)
保留:0M,IOMem:0M,闪存:0M
共享窗口总计:2.26亿
节点:node0_RP0_CPU0
------------------------------------------------------------------
物理内存:18432共1000万(15344万可用)
应用内存:18432M(15344M可用)
图像:4M(bootram:0M)
保留:0M,IOMem:0M,闪存:0M
共享窗口总计:1.81亿
共享内存窗口提供有关系统上共享内存分配的信息。
RP/0/RP0/CPU0:NCS-5501#show memory summary detail location 0/RP0/CPU0
节点:node0_RP0_CPU0
------------------------------------------------------------------
物理内存:18432共1000万(15344万可用)
应用内存:18432M(15344M可用)
图像:4M(bootram:0M)
保留:0M,IOMem:0M,闪存:0M
共享窗口soasync-app-1:243.328K
共享窗口soasync-12:3.328K
..
共享窗口rewrite-db:272.164K
共享窗口l2fib_brg_shm:139.758K
共享窗口im_rules:384.211K
共享窗口grid_svr_shm:44.272M
共享窗口大小:86.387M
共享窗口im_db:1.306M
共享窗口总计:180.969M
分配的内存:2.337G
程序文本:127.993T
计划数据:64.479G
程序栈:2.034G
系统RAM:18432米(19327352832)
已用总量:30.88亿(3238002688)
已用私有:0米(0)
已用共享:3088米(3238002688)
您可以使用共享内存窗口检查参与者进程。
RP/0/RP0/CPU0:NCS-5501#sh shmwin spp participants list
窗口“spp”的数据:
-----------------------------
当前参与者列表:-
名称PID JID索引
spp 3581 113 0
数据包3582 345 1
ncd 4362 432 2
netio 4354 234 3
nsr_ping_reply 4371 291 4
aib 4423 296 5
ipv6_io 4497 430 6
ipv4_io 4484 438 7
fib_mgr 4494 293 8
..
snmpd 8171 1002 44
ospf 8417 1030 45
mpls_ldp 7678 1292 46
bgp 8980 1084 47
cdp 9295 337 48
RP/0/RP0/CPU0:NCS-5501#sh shmwin soasync-1参与者列表
窗口“soasync-1”的数据:
-----------------------------
当前参与者列表:-
名称PID JID索引
tcp 5584 168 0
bgp 8980 1084
内存利用率通过cXR中的系统监视器和eXR中的Resmon监控。
RP/0/RP0/CPU0:NCS-5501#show watchdog memory-state
---- node0_RP0_CPU0 ----
内存信息:
物理内存:18432.0 MB
可用内存:15348.0 MB
内存状态:正常
RP/0/RP0/CPU0:NCS-5501#
RP/0/RP0/CPU0:NCS-5501#show watchdog threshold memory default location 0/RP0/CPU0
---- node0_RP0_CPU0 ----
默认内存阈值:
次要:1843 ß MB - 10%
严重:1474 ß MB - 8%
严重:921.599 ß MB - 5%
内存信息:
物理内存:18432.0 MB
可用内存:15340.0 MB
内存状态:正常
RP/0/RP0/CPU0:NCS-5501#
RP/0/RP0/CPU0:NCS-5501(config)#watchdog threshold memory minor ?
<5-40>内存消耗量(百分比)
如果超过阈值,系统会显示警告。
RP/0/RP0/CPU0:Feb 17 23:30:21.663 UTC: resmon[425]: %HA-HA_WD-4-MEMORY_ALARM:超过内存阈值:次要(1840.000MB可用)。上一状态:正常
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USERS_INFO:系统内存的前5位使用者(1884160 Kbytes free):
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO: 0:进程名称: bgp[0],pid: 7861,堆使用情况: 12207392 kbytes。
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO:1:进程名称:ipv4_rib[0],pid:4726,堆使用情况:708784 kbytes。
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO: 2:进程名称: fib_mgr[0],pid: 3870,堆使用情况: 584072 kbytes。
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO: 3:进程名称:netconf[0],pid:9260,堆使用情况:553352 kbytes。
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO: 4:进程名称:netio[0],pid:3655,堆使用情况:253556 kbytes。
LC/0/3/CPU0:Mar 8 05:48:58.414 PST: resmon[172]: %HA-HA_WD-4-MEMORY_ALARM:超过内存阈值:严重且可用600.182MB。上一状态:正常
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USERS_WARNING:系统内存的前5位消耗者(624654 Kbytes free):
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 0:进程名称: fib_mgr[0],pid: 5375,堆使用量1014064千字节。
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 1:进程名称:ipv4_mfwd_partner[0],pid:5324,堆使用量185596千字节。
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 2:进程名称: nfsvr[0],pid: 8357,堆使用量183692千字节。
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 3:进程名称: fia_driver[0],pid: 3542,堆使用量177552千字节。
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 4:进程名称: npu_driver[0],pid: 3525,堆使用量177156千字节。
某些进程可能根据监视器内存状态采取特定操作。例如,BGP执行以下操作:
■在次要状态下,BGP停止启动新的对等体
■在严重状态下,BGP逐渐降低一些对等体。
■在严重状态下,BGP进程将关闭。
可以将进程配置为注册内存状态通知。
Show watchdog or-aware-process
由于监视器超时,用户可以禁用自动进程关闭。
监视程序重新启动内存 — hog disable
■ Cisco IOS XR博客和白皮书存储库(xrdocs.io)
■ 核心交换矩阵设计:https://xrdocs.io/design/blogs/latest-core-fabric-hld:本白皮书讨论核心主干网络的最新趋势和演变。
■对等交换矩阵设计:https://xrdocs.io/design/blogs/latest-peering-fabric-hld:此白皮书全面概述了对等设计的挑战和最佳实践建议,重点在于网络简化。
■配置指南参考:实施BGP https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/bgp/710x/b-bgp-cg-ncs5500-710x/implementing-bgp.html
7.10.1中引入NCS 5500固定端口路由器:NCS 5700固定端口路由器 在使用自治系统边界路由器(ASBR)和其他路由器的网络中,即使ASBR生成的LSA超过您配置的限制,您现在也能确保流量不会中断。这样就可以了,因为您现在既可以隔离ASBR,又可以在EXCHANGE或LOADING阶段控制邻接的持续时间。通过将ASBR与其邻居隔离,剩余的网络拓扑可以继续正常运行,而不会中断,从而有效地防止对流量产生任何负面影响。此方法还简化了恢复过程,因为仅对ASBR路由器的近邻需要手动干预。 此功能引入以下更改: CLI: · 交换计时器 YANG数据模型: · Cisco-IOS-XR-ipv4-ospf-cfg.yang · Cisco-IOS-XR-ipv4-ospf-oper.yang · Cisco-IOS-XR-um-router-ospf-cfg.yang |
|
此版本中介绍的组件包括:NCS 5500固定端口路由器;NCS 5700固定端口路由器;NCS 5500模块化路由器(NCS 5500线卡;NCS 5700线卡[模式:兼容性;本地]) 现在可以将路由器配置为自动重新建立已禁用的BGP邻居会话,因为已超过最大前缀限制。 该功能引入以下更改: CLI YANG数据模型: · openconfig-bgp-neighbor.yang的新XPath(请参阅GitHub、YANG数据模型导航器) |
|
在7.10.1版中引入:NCS 5500模块化路由器(NCS 5700线卡[模式:本机]) 现在,您可以有效地在桥接组虚拟接口(BVI)上使用BGP Flowspec来连接到包含主机设备的广播域,例如企业网络。这种支持意味着您的客户可以保护其网络免受网络威胁,例如通过BVI传入的分布式拒绝服务(DDoS)攻击。 |
|
在7.10.1版中引入:NCS 5500固定端口路由器;NCS 5700固定端口路由器;NCS 5500模块化路由器(NCS 5500线卡;NCS 5700线卡[模式:兼容性;本地]) 现在,当BGP会话在解析收到的更新消息时遇到错误时,您可以避免会话重置。此功能允许将传入更新消息作为撤消消息丢弃,因此可以实现此功能。 CLI: YANG数据模型: · openconfig-bgp-neighbor.yang的新XPaths(请参阅GitHub、YANG数据模型导航器) |
|
在7.10.1版中引入:NCS 5500固定端口路由器;NCS 5700固定端口路由器;NCS 5500模块化路由器(NCS 5500线卡;NCS 5700线卡[模式:兼容性;本地]) 通过使MPLS标签分配更加灵活,我们实现了更好的标签空间管理和硬件资源利用率。这种灵活性意味着,您现在只能将这些标签分配给那些通告给其对等路由的路由,从而确保更好的标签空间管理和硬件资源利用率。 在此版本之前,无论是否通告路由,都会完成标签分配。这导致标签空间使用效率低下。 |
|
7.10.1版本中引入:NCS 5500固定端口路由器 我们增强了直连eBGP邻居的网络安全性,确保只有来自指定eBGP邻居的数据包才能通过单个接口,从而防止IP欺骗。之所以能够做到这一点,是因为我们现在为本地数据包传输服务(LPTS)添加了一个接口标识符。LPTS根据您配置的流量类型过滤和控制数据包。 该功能引入以下内容: CLI: YANG数据模型: · Cisco-IOS-XR-um-router-bgp-cfg |
|
在7.10.1版中引入:NCS 5500模块化路由器(NCS 5700线卡[模式:本机]) 现在,您可以在网桥组虚拟接口(BVI)的环回接口上实现eBGP对等,并将递归级别从3降低到2。递归级别的这种降低通过消除在配置静态路由时使用BVI名称的需要,从而允许更快速的数据包转发和更好的网络资源利用率。 |
|
版本7.9.1中引入:边界网关协议(BGP)策略记账计量并分类从不同对等体接收的IP流量。您可以按客户识别和记录所有流量,并相应地计费。 策略记账是基于单个输入接口启用的。使用BGP策略记账,您现在可以根据流量经过的路由对流量记账。 现在,具有基于Cisco NC57的线卡和外部TCAM(eTCAM)的路由器支持此功能,并在本地模式下运行。 此功能引入以下更改: · CLI:该功能引入了hw-module fib bgppa stats-mode命令。 · YANG数据模型:Cisco-IOS-XR-um-hw-module-profile-cfg.yang的新XPath(请参阅GitHub、YANG数据模型导航器) |
|
版本7.9.1中引入:BGP对等体以不同速率处理传入的BGP更新消息。较慢的对等体是指与更新子组中的其他对等体相比,在较长的一段时间内处理传入BGP更新消息非常缓慢的对等体。 当路由经过长时间不断变化时,缓慢的对等体处理非常重要。清除队列中的过时信息并仅发送最新状态非常重要。了解是否有速度缓慢的对等体非常有用,它表示存在网络问题,例如网络管理员可以解决的持续网络拥塞或接收器不及时处理更新。 |
|
版本7.9.1中引入:给定开放最短路径优先(OSPF)进程的非自生链路状态通告(LSA)限制为500000。此保护机制可防止路由器接收多个LSA,从而防止CPU故障和内存不足,并且从此版本开始默认启用。如果您的网络中有500000个以上的LSA,请在升级到此版本或更高版本之前,使用预期的LSA扩展配置max-lsa命令。 此功能修改以下命令: · show ospf可显示重分发的前缀的最大数量。 · show ospf database database-summary detail显示每台路由器的LSA计数。 · show ospf database database-summary adv-routerrouter ID,用于显示路由器信息以及从特定路由器收到的LSA。 |
|
版本7.9.1中引入:默认情况下,给定OSPF进程的最大重分发第3类LSA前缀现在限制为100000。此机制可防止OSPF将大量前缀重新分发为第3类LSA,从而防止CPU使用率高和内存不足。 一旦达到或超过阈值,系统就会生成系统日志消息,并且不再重新分发前缀。 |
版本 | 发布日期 | 备注 |
---|---|---|
2.0 |
15-Feb-2024 |
已更新命令参考链接。 |
1.0 |
23-Jul-2022 |
初始版本 |