使用 NETCONF 更换候选配置
在与运行 Junos OS 的设备的 NETCONF 会话中,客户端应用程序可以使用新数据替换整个候选配置或开放配置数据库中的所有数据,或者回滚到之前的配置或救援配置。
如果客户端应用程序发出 Junos XML 协议 <open-configuration>
操作,以便在加载配置数据之前打开特定配置数据库,则 Junos OS 会在开放配置数据库上执行请求的操作。否则,操作在候选配置上执行。
以下部分讨论如何更换候选配置或开放配置数据库中的配置数据。更换数据之后,客户端应用程序必须提交配置,使其成为设备上的活动配置。
使用<copy-config>来更换配置
更换整个候选配置或开放配置数据库中的所有数据的一种方法是使用此<copy-config>
操作。该<target>
标记将标记括起来<candidate/>
表示新配置数据将替换开放配置数据库中的数据(如果客户端应用程序在执行<copy-config>
操作之前发布了 Junos XML 协议<open-configuration>
操作),或者如果没有开放数据库,则替换候选配置中的数据。
该<source>
元素包含该<url>
元素,该元素指定包含新配置数据的文件名。当配置数据格式化为 Junos XML 标记元素时,将属性设置<url>
format
为xml
或省略属性。当配置数据格式化为 CLI 配置语句时,请将格式属性设置<url>
为 text
。
<rpc> <copy-config> <target> <candidate/> </target> <source> <url format="(xml | text)"> <!-- location specifier for file containing the new configuration --> </url> </source> </copy-config> </rpc> ]]>]]>
使用<edit-config>替换配置
更换整个候选配置或开放配置数据库中所有数据的另一种方法是使用<edit-config>
该操作并将编辑配置模式replace
设置为全局变量。应用程序包括<default-operation>
标记元素中的<edit-config>
标记元素replace
,如 NETCONF 会话中的“设置编辑配置模式”中所述。该<target>
标记将标记括起来<candidate/>
表示新配置数据将替换开放配置数据库中的数据(如果客户端应用程序在执行<edit-config>
操作之前发布了 Junos XML 协议<open-configuration>
操作),或者如果没有开放数据库,则替换候选配置中的数据。
要指定新配置数据,应用程序包含 <config>
包含数据的或 <config-text>
标记元素,或者包含一个 <url>
标记元素,用于命名包含 NETCONF 会话中所讨论的数据和格式配置数据的文件。
<rpc> <edit-config> <target> <candidate/> </target> <default-operation>replace</default-operation> <!-- EITHER --> <config> <configuration> <!-- Junos XML configuration data --> </configuration> </config> <!-- OR --> <config-text> <configuration-text> <!-- configuration data in text format --> </configuration-text> </config-text> <!-- OR --> <url> <!-- location specifier for file containing changes --> </url> </edit-config> </rpc> ]]>]]>
回滚到先前提交的配置
运行 Junos OS 的设备存储最近提交的配置和之前的多达 49 个配置的副本,具体取决于平台。您可以回滚到任何存储的配置。当配置更改导致不可取的结果,并且您希望恢复为已知工作配置时,这会很有用。回滚配置类似于在设备上进行配置更改的过程,但您无需加载配置数据,而是执行回滚,从而将整个候选配置替换为先前提交的配置。
从 Junos OS 版本 18.1R1 开始,NETCONF 应用程序可以执行 <rollback-config>
RPC,用先前提交的配置替换候选配置或开放配置数据库中的所有数据。要回滚配置,应用程序会将元素与子元素一起<index>
发出<rollback-config>
,后者指定了上一配置中加载的数字索引。有效值为 0(对于最近提交的配置为零),比之前存储的配置数量少一个(最大为 49)。
NETCONF 应用程序还可使用带有rollback
属性的 Junos XML 协议<load-configuration>
操作回滚配置。
例如,要以 1 的回滚索引加载配置,客户端应用程序将发出以下 RPC:
<rpc> <rollback-config> <index>1</index> </rollback-config> </rpc> ]]>]]>
NETCONF 服务器表示负载操作成功, <rollback-config-results>
方法是返回其 RPC 回复中的和 <ok/>
元素。
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.1R1/junos"> <rollback-config-results> <ok/> </rollback-config-results> </rpc-reply> ]]>]]>
如果负载操作成功,客户端应用程序必须提交配置才能使其成为设备上的活动配置。如果服务器在加载回滚配置时遇到错误,则会返回一个 <rpc-error>
元素并提供有关错误的信息。
将候选配置替换为援救配置
救援配置允许您定义已知工作配置或具有随时可恢复的已知状态的配置。如果设备配置和备份配置文件在修复后损坏,则需要恢复为已知配置或作为最后手段时,您可使用救援配置。创建救援配置时,设备将最近提交的配置保存为援救配置。
从 Junos OS 版本 18.1R1 开始,NETCONF 应用程序可以执行 <rollback-config>
RPC,以将候选配置或开放配置数据库中的所有数据替换为设备的救援配置。要加载救援配置,应用程序将发出 <rollback-config>
元素和 <rescue/>
儿童标记。在加载设备之前,救援配置必须存在于设备上。
NETCONF 应用程序还可使用带有rescue
属性的 Junos XML 协议<load-configuration>
操作加载救援配置。
例如,要加载救援配置,客户端应用程序将发出以下 RPC:
<rpc> <rollback-config> <rescue/> </rollback-config> </rpc> ]]>]]>
NETCONF 服务器表示负载操作成功, <rollback-config-results>
方法是返回其 RPC 回复中的和 <ok/>
元素。
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:junos="http://xml.juniper.net/junos/18.1R1/junos"> <rollback-config-results> <ok/> </rollback-config-results> </rpc-reply> ]]>]]>
如果负载操作成功,客户端应用程序必须提交配置才能使其成为设备上的活动配置。如果救援配置不存在,或者服务器在加载配置数据时遇到其他错误,则会返回一个 <rpc-error>
元素并提供有关错误的信息。