服务冗余守护程序
服务冗余守护程序概述
服务冗余守护程序简介
服务冗余守护程序 (srd) 提供可配置的事件,可决定何时在具有 MS-MPC 和 MS-MIC 的 MX 系列路由器上的多个网关之间实现冗余。这使您能够根据受监视的事件管理主要角色切换。您可以根据受监控的事件配置冗余,包括:
链接事件。
FPC 和 PIC 重新启动。
路由协议守护程序 (rpd) 终止并重新启动。
对等网关事件,包括获取或释放主要角色或广播警告的请求。
服务冗余守护程序组件
以下可配置组件控制 srd 处理:
Redundancy Event— 一种受监视的关键事件,触发 srd 获取或释放冗余对等方的主要角色,或触发仅警告事件,以及添加或删除信号路由。受监视的事件包括接口或链路关闭事件、rpd 事件以及从对等方获取或释放主要角色事件。
Redundancy Policy— 定义发生冗余事件时采取的一组操作的策略。可用的操作包括获取或释放主要角色,以及添加或删除信号路由。
Redundancy Set— 一个或多个具有一个或多个通用冗余策略的服务集的集合。冗余集适用于两个或多个系统网关。只有一个网关是主网关,并且对等方随时处于备用状态。冗余策略定义当 srd 检测到触发事件时要对冗余集采取的操作。
Redundancy Group— 冗余集和冗余组之间存在一对一关系。一个冗余集只能是一个冗余组的一部分。
Signal routes— srd 根据主要角色状态更改添加或删除的静态路由。
Routing Policies— 配置为使用条件
if-route-exists
根据是否存在信号路由通告路由的策略。VRRP (Virtual Router Redundancy Protocol) route tracking— TA 标准 Junos OS VRRP 功能,但可选 srd 组件,用于跟踪配置中包含的路由实例的路由表中是否存在可访问路由,并根据跟踪路由的可访问性动态更改 VRRP 组的优先级,从而触发新的主路由器选择。要跟踪的路由是信号路由。
服务冗余守护程序约束
以下约束适用于 srd 处理配置:
冗余集和冗余组之间存在一对一关系。一个冗余集只能是一个冗余组的一部分。
一个冗余策略只能是一个冗余集的一部分,但一个冗余集可以有多个冗余策略。例如,冗余集 RS1 可以包括冗余策略 RP1 和 RP2。冗余策略 RP1 和 RP2 不能包含在 RS1 以外的冗余集中。
一个冗余事件只能是一个冗余策略的一部分,但一个冗余策略可以有多个冗余事件。例如,冗余策略 RP1 可以包括冗余事件 RE1 和 RE2。冗余事件 RE1 和 RE2 不能包含在 RP1 以外的冗余策略中。
一个受监控的接口或链路只能是一个冗余事件的一部分,但一个冗余事件可以有多个受监控的接口。
一个服务集只能是一个冗余集的一部分,但一个冗余集可以有多个服务集。
如果网关 1(配置了较低 IP 地址的机箱)是主机箱,并且您在其上停用 SRD,则会切换到网关 2。如果网关 2(配置了较高 IP 地址的机箱)是主机箱,并且您在其上停用 SRD,则不会发生切换。
特定的冗余集只能在一个网关上处于活动状态,但并非所有冗余集都必须在同一网关上处于活动状态。例如,冗余集 A 可以在网关 1 上处于活动状态,而冗余集 B 在网关 2 上处于活动状态。
服务冗余守护程序操作
srd 的运行方式如下:
srd 在路由引擎上运行。它会持续监控配置的冗余事件。
检测到冗余事件时,srd:
添加或删除冗余策略中指定的信号路由。
将服务切换到下一个首选备用网关。
根据需要更新有状态同步角色。
由此产生的路由更改会导致:
连接到此路由的路由策略以不同的方式通告路由。
VRRP 来更改播发的优先级。
总结一下切换过程:
发生严重事件。
SRD 添加或删除信号路由。
路由策略以不同的方式播发路由。VRRP 更改公布优先级。
服务切换到下一个首选备用网关。
有状态同步会相应更新。
路由优先级的顺序必须与服务主要角色的顺序匹配。
配置服务冗余守护程序
在配置 srd 处理之前,我们建议您熟悉 为 MC-LAG 配置 ICCP,其中介绍了能够交换主角色和备用角色的网关之间的对等关系。
您可以使用以下配置语句:
-
redundancy-policy
在[edit policy-options]
层次结构级别 -
redundancy-event
在[edit event-options]
层次结构级别 -
redundancy-set
在[edit services]
层次结构级别
发生配置的冗余事件时要执行的操作在冗余策略中定义。冗余策略与冗余集相关联;它们类似于与服务集关联的规则。冗余集通过冗余组 ID 与冗余组关联。冗余组详细信息由底层机箱间通信协议守护程序 (iccpd) 配置定义。服务集和冗余集通过服务集配置中的语句进行 redundancy-sets
关联。
在下面的过程中,配置了冗余策略并与冗余策略关联的冗余事件。冗余策略与冗余集相关联,以采取主要角色释放或主要角色获取的适当操作。如果事件与执行主要角色释放操作的策略相关联,srd 将检查冗余对等方的状态是就绪还是已警告。如果备用数据库处于警告状态,则主要角色释放操作将失败。您可以还原运行状况检查并手动执行发布主要角色操作。
要在任何情况下释放主要角色,您可以将策略操作 release-mastership-force
配置为或在操作 CLI 中使用该 request services redundancy-set redundancy-set redundancy-event redundancy-event trigger force
命令。即使您的配置指定了 release-mastership-force
该选项, request services redundancy-set redundancy-set redundancy-event redundancy-event trigger force
使用 CLI 命令优先,并且将释放主要角色。同样,如果使用具有获取主要角色操作的策略配置了冗余事件,则 srd 会检查本地冗余集状态。在等待状态下,除非使用 request services redundancy-set redundancy-set redundancy-event redundancy-event trigger force
CLI 命令,否则操作将失败。我们建议您确定运行状况检查失败的原因,并采取措施纠正失败。之后,当冗余集状态返回到 STANDBY 时,此主要角色更改操作将成功。
特定的冗余集只能在一个网关上处于活动状态,但并非所有冗余集都必须在同一网关上处于活动状态。例如,冗余集 A 可以在网关 1 上处于活动状态,而冗余集 B 在网关 2 上处于活动状态。
要配置 srd,请按建议的顺序执行以下配置任务。显示了主要角色可能会更改的两个网关的配置。
配置冗余事件
要配置冗余事件:
配置冗余策略
服务冗余策略指定由受监视的冗余事件触发的操作。
要配置冗余策略:
以下示例演示了如何为两个对等网关配置冗余策略:
user@gateway1# edit policy-options redundancy-policy ACQU_MSHIP_POL redundancy-events ACQU_MSHIP_MANUAL_EV then [edit policy-options redundancy-policy ACQU_MSHIP_POL redundancy-event ACQU_MSHIP_MANUAL_EV then] user@gateway1# set acquire-mastership add-static-route 10.45.45.0/24 receive routing-instance SGI-PRIVATE user@gateway1# top user@gateway1# edit policy-options redundancy-policy RELS_MSHIP_POL redundancy-events PEER_MSHIP_ACQU_EV then [edit policy-options redundancy-policy RELS_MSHIP_POL redundancy-events PEER_MSHIP_ACQU_EV then] user@gateway1# set release-mastership-force delete-static-route 10.45.45.0/24 receive routing-instance SGI-PRIVATE
user@gateway2# edit policy-options redundancy-policy RELS_MSHIP_POL redundancy-events PEER_MSHIP_ACQU_EV then [edit policy-options redundancy-policy ACQU_MSHIP_POL redundancy-events ACQU_MSHIP_MANUAL_EV then] user@gateway2# set release-mastership-force add-static-route 10.45.45.0/24 receive routing-instance SGI-PRIVATE user@gateway2# top user@gateway2# edit policy-options redundancy-policy ACQU_MSHIP_POL redundancy-events PEER_MSHIP_RELS_EV then [edit policy-options redundancy-policy ACQU_MSHIP_POL redundancy-events PEER_MSHIP_RELS_EV then] user@gateway2# set acquire-mastership delete-static-route 10.45.45.0/24 receive routing-instance SGI-PRIVATE user@gateway2# top user@gateway2# edit policy-options redundancy-policy WARN_POL redundancy-events WARN_EV then [edit policy-options redundancy-policy WARN_POL redundancy-events WARN_EV then] user@gateway2# set broadcast-warning
配置冗余集和组
通过在服务冗余组的配置中使用相同的冗余组 ID,SRD 使用的冗余组 ID 通过现有 ICCP 配置层次结构与为 ICCP 守护程序 (iccpd) 配置的冗余组 ID 相关联。
iccp { local-ip-addr 10.1.1.1; peer 10.2.2.2 { redundancy-group-id-list 1; liveness-detection { minimum-interval 1000; } } }
要配置冗余集:
配置支持冗余的路由策略
要配置支持冗余的路由策略,请执行以下操作:
配置服务集
为服务集指定有状态的服务同步。
[edit] user@gateway1# set services service-set service-set-name redundancy-set-id redundancy-set
例如:
[edit] user@gateway1# set services service-set CGN4_SP-7-0-0 redundancy-set-id 1
使用服务冗余守护程序脚本查看和更改网关的状态
您可以通过运行服务冗余守护程序 (srd) 脚本来确定网关的状态,禁用或启用网关上的所有接口,或者从网关中提取与服务相关的 MIB 信息。
在使用这些脚本之前,必须启用它们:
启用 srd 脚本。
[edit] user@host# set system scripts op file sdg-inservice.slax user@host# set system scripts op file sdg-oos.slax user@host# set system scripts op file services-oids.slax user@host# set system scripts op file srd-status.slax user@host# set system scripts op max-datasize 512m
以根用户身份使用 srd 脚本: