提交并显示非本机 YANG 模块的配置数据
您可以将标准化或自定义 YANG 模块加载到运行 Junos OS 的设备上,以添加 Junos OS 本身不支持但可通过转换支持的数据模型。使用新数据模型扩展配置层次结构时,还必须提供一个或多个转换脚本,这些脚本提供转换逻辑以将非本机配置语法映射到 Junos OS。默认情况下,只要发出 request system yang add or request system yang update 命令将转换脚本添加到设备,就会启用转换脚本。
您可以使用为这些模型定义的语法在候选配置中配置非本机数据模型。配置第三方 YANG 数据模型对应的语句(例如 OpenConfig 或自定义 YANG 数据模型)时, 不支持 以下功能:
使用
configure batch或configure private模式在层次结构下
[edit groups]配置语句
提交配置时,转换脚本会转换这些模型的数据,并将相应的 Junos OS 配置作为检出配置中的瞬时更改提交。
从 Junos OS 16.1R2 版开始,在提交操作 leafref期间,默认情况下禁用以下 YANG 关键字的 XPath 表达式计算:、 must和 when。在 Junos OS 16.1R2 版之前,Junos OS 会评估这些关键字的约束,这可能会导致提交时间延长。
候选配置和活动配置按照这些模型定义的语法包含非本机 YANG 数据模型的配置数据。但是,由于转换后的配置数据是作为瞬时更改提交的,因此当您使用 或 show configuration等show命令查看配置时,候选配置和活动配置不会以 Junos OS 语法显式显示转换后的数据。
通过将过滤器附加到| display translation-scripts配置模式下的命令或操作模式下的命令,showshow configuration可以在候选配置或活动配置中以 Junos OS 语法显式显示转换后的数据。应用过滤器将显示继承后配置,其中包含来自所有已启用翻译脚本的已转换配置数据。
您只能将 | display translation-scripts 过滤器应用于完整的 Junos OS 配置。您无法筛选配置层次结构的子部分。
在操作模式下,发出以下命令以查看应用了转换脚本的已提交配置:
user@host> show configuration | display translation-scripts
同样,在配置模式下,发出以下命令以查看应用了翻译脚本的候选配置:
[edit] user@host# show | display translation-scripts
在此示例中被截断的输出显示完整的继承后配置,并包括非本机配置数据以及该数据的转换。
## Last changed: 2016-05-13 16:37:42 PDT
version "16.1R1;
system {
host-name host;
domain-name example.com;
...
/* Translated data */
scripts {
op {
file test.slax;
}
}
...
}
...
/* Nonnative configuration data */
myconfig:myscript {
op {
filename test.slax;
}
}
或者,通过将关键字| display translation-scripts附加到translated-config筛选器,可以仅查看与非本机 YANG 数据模型对应的层次结构的已转换部分。在操作模式下,关键字translated-config返回已提交配置中存在的非本机 YANG 数据模型的转换数据。在配置模式下,关键字translated-config返回候选配置中存在的非本机 YANG 数据模型的转换数据,其中包括已提交和未提交的配置数据。
user@host> show | display translation-scripts translated-config
system {
scripts {
op {
file test.slax;
}
}
}
候选配置反映设备上已配置但不一定提交的配置数据。在配置模式下,要在应用转换脚本之前或之后仅显示与非本机 YANG 数据模型对应的层次结构中的配置差异,请分别将 show | display translation-scripts or translated-delta 关键字附加到configured-delta命令中。在这两种情况下,XML 输出都显示已删除的配置数据,后跟新的配置数据。
例如,要按照这些数据模型定义的语法查看非本机数据模型的未提交配置更改,请在配置模式下发出 show | display translation-scripts configured-delta 命令。
[edit] user@host# show | display translation-scripts configured-delta
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/16.1R1/junos">
<configuration operation="delete">
</configuration>
<configuration operation="create">
<myscript xmlns="http://jnpr.net/yang/myscript" operation="create">
<op>
<filename>test2.slax</filename>
</op>
</myscript>
</configuration>
<cli>
<banner>[edit]</banner>
</cli>
</rpc-reply>
要查看转换为 Junos OS 语法后非本机数据模型的未提交配置更改,请在配置模式下发出 show | display translation-scripts translated-delta 命令。例如:
[edit] user@host# show | display translation-scripts translated-delta
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/R1/junos">
<configuration xmlns:junos="http://xml.juniper.net/junos/*/junos">
<system>
<scripts>
<op>
<file>
<name>test2.slax</name>
</file>
</op>
</scripts>
</system>
</configuration>
<!-- EOF -->
<cli>
<banner>[edit]</banner>
</cli>
</rpc-reply>
在配置模式下,您可以使用各种筛选器更好地了解将为非本机数据模型提交的瞬态更改。要验证将在操作期间 commit 由转换脚本作为瞬态更改提交的所有 Junos OS 语句,请在提交候选配置之前发出 show | display translation-scripts translated-config 命令。要验证仅针对已更改的配置数据提交的 Junos OS 语句,请发出 show | display translation-scripts translated-delta 命令。如果禁用包的转换脚本,则这些命令的输出不包括(设备也不会提交)已禁用转换的数据模型的相应 Junos OS 配置。
即使非本机配置数据可能在活动配置中提交,也不能保证相应的转换配置也作为瞬时更改提交。如果禁用转换,然后提交非本机配置数据,则非本机数据将存在于提交的配置中。但是,设备不会在提交操作期间将该软件包添加的数据模型中的任何语句提交相应的 Junos OS 配置语句作为瞬态更改提交,即使是在禁用转换之前提交的语句也是如此。
表 1 总结了当已提交配置和候选配置包含与非本机 YANG 数据模型对应的配置数据时,可以应用于这些配置的不同筛选器。下表指示每个筛选器的 CLI 模式,以及输出的范围和语法。通过选择不同的筛选器,您可以查看整个配置、配置的已转换部分或未提交的配置更改,并且可以查看转换脚本处理前后的配置数据。在配置模式下,这使您能够更好地确定将为非本机层次结构提交的 Junos OS 更改。
滤波器 |
模式 |
描述 |
输出的语法和格式 |
|---|---|---|---|
|
操作 |
返回完整的继承后提交配置,并包括将非本机数据转换为 Junos OS 语法的过程。 |
YANG 数据模型和 Junos OS 语法作为 ASCII 文本 |
配置 |
返回完整的继承后候选配置,并将非本机数据转换为 Junos OS 语法。 |
YANG 数据模型和 Junos OS 语法作为 ASCII 文本 |
|
|
操作 |
返回与已提交配置中的所有非原生 YANG 数据模型对应的转换数据。 |
Junos OS ASCII 文本 |
配置 |
返回候选配置中所有非原生 YANG 数据模型对应的转换数据。 |
Junos OS ASCII 文本 |
|
|
配置 |
按照该模型定义的语法,返回候选配置中与非本机 YANG 数据模型对应的未提交更改。 |
YANG 数据模型 XML |
|
配置 |
在转换为 Junos OS 语法后,返回候选配置中与非本机 YANG 数据模型对应的未提交更改。 |
Junos OS XML |
leafref期间,默认情况下禁用以下 YANG 关键字的 XPath 表达式计算:、
must和
when。在 Junos OS 16.1R2 版之前,Junos OS 会评估这些关键字的约束,这可能会导致提交时间延长。