使用 Junos XML 协议提交并同步冗余控制平面上的配置
路由引擎驻留在控制平面内。对于单机箱配置,有一个控制平面。在冗余系统中,有两个控制平面,即主平面和备用平面。在多机箱配置中,控制平面包括所有具有相同路由引擎名称的路由引擎。例如,所有主路由引擎都驻留在 主 控制平面内,而所有备份路由引擎都驻留在 备份 控制平面内。
提交配置会向设备引擎应用新配置。在多机箱配置中,一旦对配置的更改提交到系统,该更改将使用分布功能传播到整个控制平面。
在冗余架构中,您可以发出命令, synchronize
将新配置提交到主控制平面和备份控制平面。发出此命令后,会将当前配置保存到两个设备路由引擎,并将新配置提交到两个控制平面。在多机箱系统上,一旦配置在两个平面上提交,分布功能就会跨两个平面分发新配置。有关路由引擎冗余的更多信息,请参阅 Junos OS 高可用性用户指南。
在具有冗余控制平面的多机箱架构中,同步两个平面与在整个每个平面上分布配置之间存在差异。仅在同一机箱内的路由引擎之间发生同步。完成此同步后,新配置将作为单独的分配功能分发给其他机箱控制平面内的所有其他路由引擎。
由于同步发生在两个独立的控制平面上,因此同步配置仅在冗余路由引擎架构上有效。此外,必须在每个路由、交换或安全平台上定义 re0 和 re1 配置组。有关配置组的更多信息,请参阅 CLI 用户指南。
如果在非冗余路由引擎系统上发出 synchronize
命令,则 Junos XML 协议服务器将提交一个控制平面上的配置。
有关同步临时配置数据库的信息,请参阅 使用 NETCONF 或 Junos XML 协议提交和同步临时配置数据。有关同步候选配置的更多信息,请参阅以下部分:
同步两个路由引擎上的候选配置
要同步冗余路由引擎系统上的候选配置或专用副本,客户端应用将空 <synchronize/>
标记括在 <commit-configuration>
内并 <rpc>
标记元素:
<rpc> <commit-configuration> <synchronize/> </commit-configuration> </rpc>
Junos XML 协议服务器在发出标记的路由引擎(称为本地路由引擎)上验证配置的 <synchronize/>
语法正确性,将配置复制到远程路由引擎并验证其语法正确性,然后在两个路由 引擎上提交配置。
Junos XML 协议服务器将响应封装在和<commit-results>
标记元素中<rpc-reply>
。它会为每个路由引擎上的每项操作发出单独的<routing-engine>
标记元素:
如果语法检查在路由引擎上成功,则
<routing-engine>
标记元素将包含标记<commit-check-success/>
和<name>
标记元素,标记元素报告检查成功(re0 或 re1)的路由引擎的名称:<routing-engine> <name>(re0 | re1)</name> <commit-check-success/> </routing-engine>
如果配置不正确,
<xnm:error>
则标记元素将包含错误说明。如果提交操作在路由引擎上成功,则
<routing-engine>
标记元素将包含标记<commit-success/>
和<name>
标记元素,标记元素报告提交操作 成功通过的路由引擎的名称:<routing-engine> <name>(re0 | re1)</name> <commit-success/> </routing-engine>
如果提交操作失败,
<xnm:error>
标记元素将包含错误说明。故障的最常见原因是配置中的语义或语法错误。
以下示例说明如何在两个路由引擎上提交和同步候选配置。

强制同步提交操作
如果第二个路由引擎的候选配置锁定,则同步操作将失败。如果发生同步故障,最好确定故障原因,采取纠正措施,然后再次同步两个路由引擎。但是,如有必要,您可以使用 <force-synchronize/>
命令覆盖锁定的配置并强制同步。
使用 force-synchronize
命令时,对配置的任何未提交更改都将丢失。
要强制同步,请将空 <synchronize/>
和 <force-synchronize/>
标记括在 <rpc>
和 <commit-configuration>
标记元素中:
<rpc> <commit-configuration> <synchronize/> <force-synchronize/> </commit-configuration> </rpc>
在多机箱环境中,同一机箱上的路由引擎之间会发生同步。同步发生后,配置更改将使用分布功能传播到每个控制平面。如果在分配配置期间锁定了一个或多个路由引擎,则分布,因此同步将失败。您需要清除远程机箱中的错误,然后再次运行 synchronize
命令。
以下示例说明如何在两个路由引擎平面上强制进行同步:
客户端应用 |
Junos XML 协议服务器 |
<rpc> <commit-configuration> <synchronize/> <force-synchronize/> </commit-configuration> </rpc> |
|
<rpc-reply xmlns:junos= "http://xml.juniper.net/junos/9.010/junos"> <commit-results> <routing-engine junos:style="show-name"> <name>re0</name> <commit-check-success/> </routing-engine> <routing-engine junos:style="show-name"> <name>re1</name> <commit-success/> </routing-engine> <routing-engine junos:style="show-name"> <name>re0</name> <commit-success/> </routing-engine> </commit-resuls> </rpc-reply> |
将候选配置与其他操作同时同步
该 <synchronize/>
标记可以与标记元素中 <commit-configuration>
可能发生的其他标记元素组合在一起。Junos XML 协议服务器会检查、复制和提交配置,并发出与标记本身使用时相同的响应标记元素 <synchronize/>
。以下部分介绍了可能的组合。
验证两个路由引擎上的配置
要检查两个路由引擎上本地配置的语法正确性而不提交,应用程序将<synchronize/>
和<check/>
标记元素括在和<rpc>
标记元素中<commit-configuration>
:
<rpc> <commit-configuration> <synchronize/> <check/> </commit-configuration> </rpc>
该 <force-synchronize/>
标记不能与 <check/>
标记元素组合。
有关验证配置的更多信息,请参阅 使用 Junos XML 协议验证配置语法。
安排指定时间的同步
为了在未来的指定时间对两个路由引擎提交配置,应用程序将<synchronize/>
和<at-time>
标记元素括在和<rpc>
标记元素中<commit-configuration>
:
<rpc> <commit-configuration> <synchronize/> <at-time>time</at-time> </commit-configuration> </rpc> <rpc> <commit-configuration> <force-synchronize/> <at-time>time</at-time> </commit-configuration> </rpc>
<at-time>
与标记元素本身发出一样,Junos XML 协议服务器会立即验证语法正确性,当它实际在每个路由引擎上执行提交操作时,不会发出其他标记元素。
同步配置但需要确认
要在两个路由引擎上提交候选配置,但需要确认提交成为永久提交,应用程序将以下两个<synchronize/>
<confirmed/>
标记元素括在和<rpc>
标记元素中<commit-configuration>
:<confirm-timeout>
:
<rpc> <commit-configuration> <synchronize/> <confirmed/> [<confirm-timeout>minutes</confirm-timeout>] </commit-configuration> </rpc>
相同的回滚最后期限适用于两个路由引擎,并且可以通过在首次发出标记元素的<synchronize/>
<confirmed/>
路由引擎上再次发出和(可选)<confirm-timeout>
标记元素来同时在两个引擎上扩展。
该 <force-synchronize/>
标记不能与 <confirmed/>
and <confirm-timeout>
标记元素组合。
有关已确认提交操作的更多信息,请参阅 仅在使用 Junos XML 协议确认后提交候选配置。
记录有关已同步配置的消息
要在每个路由引擎上成功提交时同步配置并记录日志消息,应用程序会将<synchronize/>
和<log/>
标记元素括在和<rpc>
标记元素中<commit-configuration>
:
<rpc> <commit-configuration> <synchronize/> <log>message</log> </commit-configuration> </rpc> <rpc> <commit-configuration> <force-synchronize/> <log>message</log> </commit-configuration> </rpc>
提交操作会按照上述或<force-synchronize/>
标记说明进行<synchronize/>
。每个路由引擎的消息都会记录在该路由引擎维护的提交历史记录日志中。有关日志记录的更多信息,请参阅使用 Junos XML 协议记录有关提交操作的消息。