本页内容
配置平滑重启和长期平滑重启
总结 本主题介绍在 Kubernetes 编排环境中使用的瞻博网络®云原生 Contrail 网络 (CN2) 23.2 及更高版本的平稳重启和长期平稳重启 (LLGR)。
概述
在 CN2 中,每当检测到对等会话关闭时,控制节点就会删除从对等方获知的所有路由,并立即从其播发的对等方撤回路由。此事件会导致工作节点之间的流量瞬时中断。为防止出现这种情况,可以配置平稳重启和长寿命平稳重启 (LLGR)。启用这些功能可确保获知的路由不会立即删除并从播发的对等方中撤出。相反,路由将被保留并标记为过时。因此,如果会话恢复并重新学习路由,对网络的总体影响就会降至最低。
平滑重启允许正在重启的路由设备将其情况通知其相邻的邻居和对等方。LLGR 是一种机制,用于在对等方发生故障时将路由详细信息保留更长时间。LLGR 保留陈旧路由的时间比单独平稳重新启动所允许的时间长得多。使用 LLGR 时,将保留路由优先级并重新计算最佳路径。
-
平滑重启和 LLGR 支持 IPv4、IPv6 和 EVPN 2 类路由。
-
平滑重启和 LLGR 均不支持组播流量。
BGP 帮助程序模式
您可以使用 BGP 帮助程序模式,在 BGP 会话发生翻动时最大程度地减少路由流失。或者,当 BGP 对等方重新启动时,可以使用 BGP 帮助程序模式来最大程度地减少对网络的影响。如果 SDN 网关路由器正常宕机(如设备上的 rpd 崩溃或重启),这将特别有用。在此情况下,CN2 将保留从网关获知的路由,并将其通告至网络的其余部分(如适用)。为此,重新启动的路由器(在本例中为 SDN 网关)必须支持所使用的所有地址族,并配置平稳重启。
BGP 即服务 (BGPaaS) 客户端也支持 BGP 帮助程序模式。配置后,CN2 为重新启动的 BGPaaS 客户端提供 BGP 帮助程序模式。
XMPP 帮助程序模式
当启用了带有 XMPP 的 LLGR 帮助程序模式时,Contrail vRouter 数据路径代理支持通过其控制器对等方进行路由保留。当基于 XMPP 的连接丢失时,数据路径代理可以通过此路由保留保留来自 Contrail 控制器的最后一个路由路径。路由路径由代理保留,直到与其中一个 Contrail 控制器建立新的基于 XMPP 的连接。一旦 XMPP 连接启动并在预定义的持续时间内保持稳定,旧 XMPP 连接的路由路径将被清除。这种路由保留允许控制器正常运行,但在恢复与控制器的连接时会出现一些转发中断。
使用 XMPP 帮助程序模式启用平稳重启和 LLGR 时,请考虑以下事项:
-
您可以在不启用 BGP 帮助程序模式的情况下使用 XMPP 帮助程序模式启用平滑重启和 LLGR,反之亦然。
-
不应同时使用用于快速收敛的 LLGR 和 XMPP 亚秒计时器。
配置平滑重启和 LLGR
global-system-config
规范:
kubectl edit gsc default-global-system-config
每当启用或禁用 gracefulRestartParameters
时,都会 GlobalSystemConfigSpec
更新并向下推送到所有控制节点。随后,配置也会被推送到工作节点。这会导致会话(BGP 和 XMPP)翻动(会话重新启动),因为对等方正在交换新配置。因此,当对等方重新启动时,您可能会观察到流量略有下降。
下面是如何启用平滑重启和 LLGR 以及分配计时器值的示例。
Spec: gracefulRestartParameters: enable: true longLivedRestartTime: 1800 restartTime: 60 xmppHelperEnable: true bgpHelperEnable: true endOfRibTimeout: 90
在上述示例中, enable
设置为 true
以启用平滑重启和 LLGR。 bgpHelperEnable
将和 xmppHelperEnable
模式设置为 true
,以便为 BGP 和 XMPP 对等方启用帮助程序模式。
有关计时器及其相关行为的描述,请参阅 表 1 。
计时器 | 说明 |
---|---|
重启时间 | 指示 建议指定非零值。非零重置时间广告,用于从对等方获得平稳重启和长期平稳重启功能。
|
LLGR 重启时间 | 表示 longLivedRestartTime LLGR 保留陈旧路由的时间量。默认设置为 1800 秒。
当同时配置了平稳重启和 LLGR 时,LLGR 计时器的持续时间是两个计时器的总和。 |
RIB 计时器结束 | 计 当 vRouter 代理收到此配置结束消息时,EOR 计时器启动。当 EOR 计时器过期时,将从 vRouter 代理向控制节点发送一条 EOR 消息。控制节点接收此 EOR 消息,然后从其 RIB 中移除之前由 vRouter 代理播发的陈旧路由。 |
验证您的配置
要验证您的配置,请运行以下命令:
kubectl get gsc default-global-system-config -o yaml
以下输出是具有平稳重启和配置 LLGR 的 GlobalSysemConfig
.yaml 文件的示例:
kubectl get gsc default-global-system-config -o yaml apiVersion: core.contrail.juniper.net/v4 kind: GlobalSystemConfig metadata: annotations: conversion.globalsystemconfig.gracefulrestartparameters: '{"BgpHelperEnable":true,"Enable":true,"EndOfRibTimeout":90,"LongLivedRestartTime":1800,"RestartTime":60,"XmppHelperEnable":true}' core.juniper.net/description: This cluster object defines all the global Contrail configurations. This object must be unique for a Contrail deployment. core.juniper.net/display-name: Default Global System Config creationTimestamp: "2023-05-02T19:01:23Z" generation: 25 labels: back-reference.core.juniper.net/28c27a9ee0c01b57b940db85e38aef6526e506189cfa69d69b019349: BGPRouter_contrail_tmallick-k8s-ctrl-2.englab.juniper.net back-reference.core.juniper.net/31b3717b8b83c3cedd435758e30860370ff90c20542563beb1fab793: BGPRouter_contrail_tmallick-k8s-ctrl-1.englab.juniper.net back-reference.core.juniper.net/d2e220fd972a5acfc95a0cccaf8d973e97427606046a10f0b04297aa: BGPRouter_contrail_tmallick-k8s-ctrl-3.englab.juniper.net name: default-global-system-config resourceVersion: "31673" uid: 3dfaefbc-a0e5-4e14-b6b3-73d03f09bf1b spec: autonomousSystem: 64512 bgpRouterReferences: - apiVersion: core.contrail.juniper.net/v2 fqName: - default-domain - contrail - ip-fabric - default - jdoe-k8s-ctrl-1.englab.juniper.net kind: BGPRouter name: jdoe-k8s-ctrl-1.englab.juniper.net namespace: contrail uid: 698aa03c-6c5c-4e7a-bb75-b89baef75ea6 - apiVersion: core.contrail.juniper.net/v2 fqName: - default-domain - contrail - ip-fabric - default - jdoe-k8s-ctrl-2.englab.juniper.net kind: BGPRouter name: jdoe-k8s-ctrl-2.englab.juniper.net namespace: contrail uid: 8afddddb-56ad-44fb-95a5-1cfe0fc10361 - apiVersion: core.contrail.juniper.net/v2 fqName: - default-domain - contrail - ip-fabric - default - jdoe-k8s-ctrl-3.englab.juniper.net kind: BGPRouter name: jdoe-k8s-ctrl-3.englab.juniper.net namespace: contrail uid: af2f0faa-31f6-4869-8f16-ad2ba4d4c013 enable4bytesAS: true fqName: - default-global-system-config gracefulRestartParameters: bgpHelperEnable: true enable: true endOfRibTimeout: 90 longLivedRestartTime: 1800 restartTime: 60 xmppHelperEnable: true ibgpAutoMesh: true status: observation: ""