BGP路由快把内存灌满怎么办?华为优雅降级三档刹车保住整机
本文整理自华为官方发布的典型配置案例,命令与步骤均按原始文档呈现,供现场实施参考。
路由器跑BGP有个隐蔽的风险点:业务量大、配置出错等场景下设备内存占用率本来就偏高,如果BGP还在源源不断接收新路由,内存可能被一路推到耗尽——结局是进程或单板复位,甚至整机重启,全网路由抖一遍。华为BGP优雅降级就是给这种情况准备的分级刹车:内存快速增长时,设备按档位依次采取路由学习降速、停止学习路由、熔断邻居等动作,在少影响业务的前提下把内存占用率拉回合理区间,避免整机重启这类严重事件。
三档阈值怎么分工
先看设备怎么划分内存状态:占用率超过预警阈值(缺省70%)进入预警态;超过危险阈值(缺省85%)进入危险态;超过异常阈值(缺省90%)进入异常态。三个档位对应越来越重的手段——预警态BGP学习路由降速、控制内存增长;危险态下若BGP内存占用排进前三,只更新和删除路由,停止从邻居学习新路由(涉及IPv4、IPv6、VPNv4、VPNv6地址族,其他地址族不受影响);长时间处于危险态且过了逃生时间就开始熔断邻居,按邻居学习路由里次优路由的占比排序,占比高的先熔断;全部熔断后一段时间仍处于危险态,则触发BGP所在进程或单板重启。
配置的前提有两个:BGP基本功能已经配好,并且通过memory-usage reliability switch on命令开启了内存过载可靠性开关。
危险态的命令清单
进入系统视图:
system-view
危险态时让BGP丢弃从邻居新收到的路由(如果还要连带处理VPN实例与VPNv4/VPNv6地址族之间交叉的新路由,带include参数):
bgp memory-usage danger-threshold discard new-route
bgp memory-usage danger-threshold discard new-route include { vrf-import-route | vrf-export-route }*
官方特别提醒:这条命令可能影响路由学习、伤及业务,要谨慎启用。
再配危险态逃生时间——BGP占用排前三且过了指定时长就开始熔断邻居,熔断完仍降不下来则复位进程:
bgp memory-usage danger-threshold escape timeout time [ minute ]
这条同样可能波及IGP、路由管理等业务,官方给出了反悔口:执行bgp memory-usage danger-threshold escape disable可以让设备在危险态不做逃生动作。
豁免与反悔口
可选一:危险态下超过指定时间未UP的对等体不再允许建立(缺省72小时):
bgp memory-usage danger-threshold not-allow-connect [ escape time time-value ]
可选二:给关键业务邻居发豁免牌。进入BGP视图后,指定某个邻居在设备内存处于危险态时不断连,保住关键业务不中断:
bgp as-number
peer { peerIpv4Addr | peerIpv6Addr | groupName } low-memory exempt
可选三:危险态BGP邻居会拒收新路由,若有必须放行的前缀(比如总部核心网段),挂上前缀列表做豁免:
ipv4-family unicast
prefix low-memory exempt ip-prefix prefix-filter-name
注意:配了豁免后,已经被拒收的路由不会自动回来,需要执行refresh bgp重新刷新才能恢复。
怎么确认刹车在工作
盯内存占用率曲线:接近85%时BGP路由学习停住、内存不再被新路由推高,回落到危险态以下后逐邻居恢复学习,就说明分级动作如期生效。调试期建议把三个阈值按设备实际内存规格复核一遍,别让缺省值和现实业务量错位。
内存防护这类配置平时看不见存在,出事时决定的是整机重启还是平稳降级。给承载大路由表的设备做巡检时,顺手核对优雅降级与豁免清单是值得养成的习惯。欢迎搜索关注贵州诚鑫致达科技,获取更多设备稳定性运维的实操经验。
企业存储选型参考|贵州诚鑫致达
做备份容灾一体机方案,群晖机型参考:DP7400 · DP520 · DP320。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。
服务区域|贵州诚鑫致达
贵州群晖NAS、贵阳存储、数据备份、信创云盘或 IT 集成服务,可联系贵州诚鑫致达科技,服务范围覆盖贵州全省各市州。贵州县域市场:县城及乡镇企业存储、办公网络与监控存储。