Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解 Junos YANG 模块

瞻博网络使用 YANG 模型发布 Junos 设备的架构,其中包含配置和操作状态数据、操作命令以及 Junos 扩展。以下各节讨论本机 Junos YANG 模块。

Junos YANG 模块概述

瞻博网络提供的 YANG 模块可定义运行 Junos OS 的设备和运行 Junos OS 演化版的设备的配置层次结构、操作命令和状态数据以及 YANG 扩展和类型。从 Junos OS 17.2 版开始,YANG 模块特定于某个设备系列。 表 1 概述了不同设备系列的标识符,并指出了每个系列中包含的平台。从 Junos OS 演化版 23.4R2 开始,所有 Junos OS 演化版平台都使用 junos 设备系列标识符。

表 1:Junos 设备系列

设备系列标识符

Junos OS 平台

Junos OS 演化版平台

朱诺斯

ACX 系列
EX 系列(某些平台)
MX 系列
PTX 系列

ACX 系列
PTX 系列
QFX 系列(23.4R2 及更高版本)

Junos-ES

J 系列
LN 系列
SRX 系列

Junos-EX

EX 系列(某些平台)

Junos-QFX

QFX 系列

QFX 系列(23.2 及更早版本)

注意:

同一系列中的不同平台可能归类为不同的设备系列。在运行 Junos OS 演化版 23.4R1 及更早版本的设备上,以及运行 Junos OS 的设备上,您可以通过在设备上执行 show system information 操作模式命令或 <get-system-information/> RPC 来验证特定设备的家族。 Family 命令输出中的字段值或 <os-name> RPC 回复中的元素表示设备系列。

从 Junos OS 17.4R1 版开始,配置 YANG 模块被拆分为一个根模块,根模块由多个较小的模块进行增强。此外,本机 Junos YANG 模块对模块的名称、文件名和命名空间使用新的命名约定。模块名称和文件名包括设备系列以及模块中的架构所属的配置或命令层次结构的区域。模块文件名还包括修订日期。 表 2 汇总了 Junos 设备原生的 YANG 模块,并标识了使用不同模块名称的版本。

注意:

不需要特定于系列的架构且所有平台通用的模块使用 junos 设备系列作为模块的名称、文件名和命名空间。

表 2:瞻博网络原生 YANG 模块

Junos YANG 模块

描述

模块名称

释放

配置模块

定义 Junos 配置层次结构的架构。

从 Junos OS 17.4R1 版开始,配置 YANG 模块被拆分为一个根模块 (family-conf-root),该根模块由多个较小的模块进行扩充。

configuration

14.2 至 17.3

family-conf-hierarchy

17.4R1 及更高版本

作战指挥模块

表示操作命令层次结构和定义操作模式命令的远程过程调用 (RPC) 的模块集合组。命令层次结构的不同区域有单独的模块。

juniper-command

16.1 到 17.3

family-rpc-hierarchy

17.4R1 及更高版本

junos-state 状态模块 用于操作状态数据的精选 YANG 模块集。 junos-state-area 22.2R1 及更高版本

genstate 状态模块

定义操作状态的 YANG 数据模型。这些模型通过 gNMI subscribe RPC 公开 show 命令数据的子集。这些 genstate 模块包括一个顶级根模块,该模块由每个操作状态区域的模块增强。

junos-genstate-root-tag

24.2R1 及更高版本(Junos OS 演化版)

DDL 扩展模块

包含 Junos 设备的数据定义语言 (DDL) 语句。

此模块包括 和 must must-message 关键字,用于标识使用特殊关键字的配置层次结构约束。该模块还包括自定义 RPC 中所需的语句。

junos-extension

15.1 到 17.3

junos-common-ddl-extensions

17.4R1 及更高版本

ODL 扩展模块

包含输出定义语言 (ODL) 语句,可用于为 Junos 设备上执行的 RPC 创建和自定义格式化的 ASCII 输出。

junos-extension-odl

16.1 到 17.3

junos-common-odl-extensions

17.4R1 及更高版本

元数据批注扩展模块

定义配置操作的元数据批注。

注释在 RFC 7952 通过 YANG 定义和使用元数据中定义。

junos-configuration-metadata

22.2R1 及更高版本(Junos OS 演化版)

类型模块

包含 YANG 类型的定义。

junos-common-types

17.4R1 及更高版本

为了支持不同版本中不同设备家族的 YANG 模块,下载的模块按设备家族进行组织,每个模块的名称、文件名和命名空间反映了模块中的架构所属的设备家族。

有关获取模块的信息,请参阅 下载和生成 Junos YANG 模块

有关模块命名空间的信息,请参阅 了解 Junos YANG 模块命名空间和前缀

下载并生成 Junos YANG 模块

您可以通过以下方式检索 Junos OS 和 Junos OS 演化 YANG 模块:

注意:

从 Junos OS 演化版 23.4R1 开始,我们将在瞻博网络下载站点和 GitHub 上发布 Junos OS 演化版原生 Yang 模块。在早期版本中,必须在设备上生成模块。

在 Junos OS 17.1 及更早版本中,瞻博网络网站和 GitHub 上发布的用于 Junos OS 配置和命令层次结构的 YANG 模块定义了运行该 Junos OS 版本的所有设备的架构。相比之下,在本地设备上生成的 YANG 模块定义了特定于该设备的架构。特定于设备的架构包括来自本机模块的节点以及来自添加到设备的任何标准或自定义模块的节点。

从 Junos OS 17.2 版开始,Junos YANG 模块特定于设备系列,每个模块的命名空间反映了模块中的架构所属的设备系列。因此,下载包和 GitHub 存储库包括每个设备系列模块的单独目录,以及所有设备系列通用模块 的公共目录。 每个特定于家族的目录都使用其设备家族标识符作为目录名称,并包含该家族中平台上支持的配置和操作命令模块。 表 1 中定义了设备系列标识符。在运行 Junos OS 17.2 版的本地设备上生成的 YANG 模块仍定义特定于该设备的架构。

从 Junos OS 17.4R1 版开始,默认情况下,在本地设备上生成的 YANG 模块包含特定于家族的架构,这些架构在给定设备系列中的所有设备上都是相同的。要生成特定于设备的模块,请在层次结构级别配置 device-specific 配置语句 [edit system services netconf yang-modules]

表 3 汇总了针对不同 Junos OS 版本下载和生成的 YANG 模块中的架构范围。

表 3:Junos OS YANG 架构的范围

Junos OS 版本

下载模块中的架构范围

生成的模块中的架构范围

17.1 及更早版本

所有设备

装置

17.2 到 17.3

设备系列

装置

17.4R1 及更高版本

设备系列

设备系列

从 Junos OS 演化版 23.4R1 开始,我们将在瞻博网络下载站点和 GitHub 上发布 Junos OS 演化版 YANG 模块。在早期版本中,必须在设备上生成模块。

此外,从 Junos OS 23.4R1 版和 Junos OS 演化版 23.4R1 开始,我们在单个下载包和 GitHub 存储库文件夹中提供给定操作系统和版本的所有 YANG 数据模型。包和存储库文件夹包括:

  • 本机配置、状态和 RPC 数据模型

  • 该操作系统支持的 OpenConfig 配置和状态模型

  • 该操作系统支持的 IETF 型号

有关如何下载或生成 Junos OS YANG 模块的更多信息,请参阅 使用瞻博网络 YANG 模块

了解 Junos YANG 模块命名空间和前缀

在 Junos OS 17.1 版及更早版本中,Junos YANG 模块使用唯一标识符来区分每个模块的名称空间。

从 Junos OS 17.2R1 版开始,Junos YANG 模块特定于某个设备系列。为了支持给定版本中不同设备系列的不同 YANG 模块,YANG 模块使用一个命名空间,该命名空间除了包含标识符外,还包括模块名称、设备系列和 Junos OS 版本字符串。例如:

从 Junos OS 17.4R1 版开始,命名空间经过简化,包括设备系列、模块类型以及每个模块唯一的标识符,用于区分模块的命名空间与其他模块的命名空间。

以下定义适用于出现该变量的命名空间的所有版本:

device-family

模块中的架构所属设备家族的标识符,例如 junosjunos-esjunos-exjunos-qfx表 1 概述了不同的器件系列。

具有设备特定架构的模块和具有特定于系列的架构的模块都在命名空间中使用相同的设备系列标识符。

注意:

通用模块使用 junos 命名空间中的设备系列标识符,但模块对于所有设备系列都是通用的。

identifier

将模块的命名空间与其他模块的命名空间区分开来的字符串。

Junos 配置和命令模块包括一个标识符,该标识符指示模块中的架构所属的配置或命令层次结构区域。 Genstate 模块使用指示模块中操作状态区域的标识符。常见模块使用模块名称差异化符作为标识符,例如 odl-extensions

module-id

特定于模块的唯一标识符,例如 jcjrpcjejodl

module-name

例如, configuration junos-extension该文件中包含的 YANG 模块的名称或 。每个单独的 juniper-command 模块在命名空间中使用自己唯一的模块名称,例如 show-class-of-service

release

Junos OS 或 Junos OS 演化版,其中支持该模块中的架构。

type

模块的类型。可能的值包括:

  • conf- 配置 YANG 模块,用于定义配置的指示区域的架构。

  • rpc- 操作命令 YANG 模块,用于定义命令层次结构指定区域中操作命令的 RPC。

  • common- 所有设备系列通用的扩展或类型模块。

  • genstate- 定义操作状态数据的 YANG 模块。

表 4 概述了不同版本中每个模块的命名空间 URI 和前缀(由模块语句 prefix 定义)。从 Junos OS 17.2 版开始,每个操作命令模块的前缀反映了该模块中包含的 RPC 的命令层次结构区域。同样,从 Junos OS 17.4R1 版开始,每个配置 YANG 模块的前缀反映了该模块中包含的配置语句层次结构。Junos YANG 扩展和类型模块使用 junos 命名空间中的设备系列标识符,但这些模块对于所有设备系列都是通用的。

表 4:Junos YANG 模块的名称空间和前缀

杨模块

释放

Namespace URI

前缀

配置模块

17.1 及更早版本

http://yang.juniper.net/yang/1.1/jc

jc

17.2 到 17.3

http://yang.juniper.net/yang/1.1/jc/configuration/device-family/release

jc

17.4R1 及更高版本

http://yang.juniper.net/device-family/conf/hierarchy

jc(根模块)

jc-hierarchy

作战指挥模块

17.1 及更早版本

http://yang.juniper.net/yang/1.1/jrpc

jrpc

17.2 到 17.3

http://yang.juniper.net/yang/1.1/jrpc/module-name/device-family/release

hierarchy

17.4R1 及更高版本

http://yang.juniper.net/device-family/rpc/hierarchy

hierarchy

junos-state 状态模块 22.2R1 及更高版本 http://yang.juniper.net/junos/state/state-area js-area

genstate 状态模型

24.2R1 及更高版本

http://yang.juniper.net/junos/genstate/root-tag

jgs(根模块)

DDL 扩展模块

17.1 及更早版本

http://yang.juniper.net/yang/1.1/je/

junos

17.2 及更高版本

http://yang.juniper.net/yang/1.1/je/junos-extension/junos/release

junos

17.4R1 及更高版本

http://yang.juniper.net/junos/common/ddl-extensions

junos

ODL 扩展模块

17.1 及更早版本

http://yang.juniper.net/yang/1.1/jodl

junos-odl

17.2 到 17.3

http://yang.juniper.net/yang/1.1/jodl/junos-extension-odl/junos/release

junos-odl

17.4R1 及更高版本

http://yang.juniper.net/junos/common/odl-extensions

junos-odl

元数据批注扩展模块

22.2R1 及更高版本

http://yang.juniper.net/junos/jcmd jcmd

类型模块

17.4R1 及更高版本

http://yang.juniper.net/junos/common/types

jt

从 Junos OS 17.2 版开始,当您在[edit system services netconf]层次结构级别配置rfc-compliant语句并在 NETCONF 会话中请求配置数据时,服务器会将元素的默认<configuration>命名空间设置为与相应 YANG 模型中相同的命名空间。例如:

更改历史记录表

功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。

释放
描述
23.4R2-EVO
从 Junos OS 演化版 23.4R2 开始,QFX 系列设备的本机 YANG 模块使用 junos 设备系列标识符,而不是 junos-qfx
23.4R1 和 23.4R1-EVO
从 Junos OS 23.4R1 版和 Junos OS 演化版 23.4R1 开始,我们在单个下载包和 GitHub 存储库文件夹中提供给定操作系统和版本的所有 YANG 数据模型。
23.4R1-EVO
从 Junos OS 演化版 23.4R1 开始,我们将在瞻博网络下载站点和 GitHub 上发布 Junos OS 演化版原生 YANG 模块。在早期版本中,必须在设备上生成模块。
22.4R1 和 22.4R1-EVO
从 Junos OS 22.4R1 版和 Junos OS 演化版 22.4R1 开始,定义 RPC 的 YANG 模块在 junos:command 随扩展发出的架构中包含扩展语句。
17.4R1
从 Junos OS 17.4R1 版开始,配置 YANG 模块拆分为一个根模块,根模块由多个较小的模块增强,本机 Junos OS YANG 模块对模块的名称、文件名和命名空间使用新的命名约定。
17.4R1
从 Junos OS 17.4R1 版开始,默认情况下,在本地设备上生成的 YANG 模块包含特定于家族的架构,这些架构在给定设备系列中的所有设备上都是相同的。
17.2R1
从 Junos OS 17.2 版开始,Junos OS YANG 模块特定于设备系列,每个模块的命名空间反映了模块中的架构所属的设备系列。
17.2R1
从 Junos OS 17.2 版开始,每个操作命令模块的前缀反映了该模块中包含的 RPC 的命令层次结构区域。