Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解 NETCONF Perl 客户端和脚本示例

运行 Junos OS 的设备支持 NETCONF XML 管理协议,使客户端应用程序可请求和更改设备上配置信息。NETCONF 协议对配置数据和远程过程调用使用基于扩展标记语言 (XML) 的数据编码。通过瞻博网络 NETCONF Perl API,熟悉 Perl 编程语言的编程人员可创建自己的 Perl 应用程序,以管理在 NETCONF 上运行Junos OS设备的操作。

注意:

在 Junos OS 16.1 之前,每个 Junos OS 版本都包含一个与版本相关的新版本的 NETCONF Perl 客户端。从 Junos OS 版本 16.1 开始,NETCONF Perl 客户端独立于版本,托管在 GitHub 和 CPAN 上,可以管理运行 Junos OS 版本的任何设备。NETCONF Perl 分发中与版本相关的版本的模块和示例脚本不同于 GitHub 和 CPAN 上托管的与版本无关的版本。

本节包含以下主题:

NETCONF Perl 客户端模块

表 1 汇总了 NETCONF Perl 库的独立于版本版本的模块。该模块提供了一种面向对象的接口,可用于在运行 Junos OS 的设备上与 NETCONF 服务器进行通信,并允许您轻松地连接到设备、建立 NETCONF 会话,以及执行操作和配置请求。 Net::Netconf::Manager 客户端应用程序仅直接调用 Net::Netconf::Manager 对象。当客户端应用程序创建对象时,它提供设备名称和登录名称,以在 Manager 访问设备时使用。登录名称用于确定客户端应用程序在设备上的访问级别。

表 1:NETCONF Perl 模块

模块

描述

Access

根据实例 Access 化对象时指定的访问方法类型创建一个对象。模块负责呼叫方法,以与目标主机的 NETCONF 服务器建立会话,以及建立会话后与服务器 connect() 交换 hello 数据包。

Constants

声明所有 NETCONF 常量。

Device

对运行 Junos OS 的设备支持的 NETCONF API 实施面向对象的接口。此类对象表示设备连接的本地端,使用 NETCONF 协议与客户端通信。

EzEditXML

可促进操作和配置请求的 XML 文档的开发。

该模块用作基本库,但Junos OS CLI特定功能来处理配置,对应于 CLI 命令: 、 、 XML::LibXML deleteactivate deactivate insert rename

Manager

实例化并返回 NETCONF 或 Junos XML Device 对象,具体取决于请求的服务器。

SAXHandler

基于 SAX 的解析器,用于解析来自 NETCONF 服务器的响应。

SSH

提供实例的 SSH Net::Netconf::Access 访问,并管理与目标主机的 SSH 连接。管理 SSH 连接的底层机制基于 OpenSSH。

Trace

提供跟踪级别,并基于请求的调试级别实现跟踪。

注意:

以下模块是 NETCONF Perl 客户端的独立于版本版本的新增模块: EzEditXML

在 NETCONF Perl 客户端的独立于版本的版本中卸下了以下模块: TransformPluginsVersion

客户端应用程序还可以利用公共域中的 Perl 模块来简化 NETCONF Perl 客户端应用程序的开发。由于 NETCONF 使用基于 XML 的数据编码,客户端应用程序可使用许多处理 XML 数据的 Perl 模块。

您可以使用 NETCONF Perl 客户端创建 Perl 应用程序,以连接到设备、建立 NETCONF 会话并执行操作。客户端与设备的 NETCONF 服务器通过 NETCONF Perl API 通信涉及以下步骤:

  • 在运行 SSHv2 的设备的客户端应用程序和 NETCONF 服务器之间建立 NETCONF Junos OS。

  • 创建对应于请求的 RPC,然后向 NETCONF 服务器发送这些请求。

  • 从 NETCONF 服务器接收和处理 RPC 回复。

脚本示例

NETCONF Perl 分发包括一个示例目录,其中包含以下示例脚本,说明了如何使用模块执行各种功能。有关运行脚本的说明,请参阅位于 https://github.com/Juniper/netconf-perl 的 NETCONF Perl GitHub 存储库中的README https://github.com/Juniper/netconf-perl

  • diagnose_bgp/diagnose_bgp.pl— 展示如何监控设备状态和诊断问题。该脚本从完整组配置数据中提取和显示有关设备未建立边界网关协议 (BGP) 对等方的信息BGP的信息。

  • get_chassis_inventory/get_chassis_inventory.pl— 演示如何使用预定义的查询从设备请求信息。示例脚本使用 选项调用查询,以请求与 Junos XML 请求和 CLI get_chassis_inventory detail <get-chassis-inventory><detail/></get-chassis-inventory> 操作模式命令相同的信息 show chassis hardware detail

  • edit_configuration/edit_configuration.pl— 演示如何配置设备,其中加载包含使用 Junos XML 标记元素格式的配置数据。分发包含示例配置文件 config.xml;但是,在调用脚本时,可以在命令行上指定不同的配置文件。

版本历史记录表
释放
描述
16.1
从 Junos OS 版本 16.1 开始,NETCONF Perl 客户端独立于版本,托管在 GitHub 和 CPAN 上,可以管理运行 Junos OS 版本的任何设备。NETCONF Perl 分发中与版本相关的版本的模块和示例脚本不同于 GitHub 和 CPAN 上托管的与版本无关的版本。