Java NetConf 使用

article/2025/11/10 2:45:26

1. 参考资料

工具包GIT地址 : https://github.com/Juniper/netconf-java

使用教程 : https://www.juniper.net/documentation/cn/zh/software/junos/netconf-java-toolkit/topics/task/netconf-java-toolkit-program-creating-and-executing.html

2. 下载&编译工具包

在这里插入图片描述

# 1. 下载git地址中的工具包到本地, 用IDEA打开处理
- 此处为v2.1.1版本 
- https://github.com/Juniper/netconf-java/releases# 2. 添加maven配置, 打包处理, 配置如下
- 将如下配置 到maven 的plugin中 解决不能将依赖打进来的问题
- 生成的jar包保存 `netconf-java-2.1.1.6-SNAPSHOT-jar-with-dependencies.jar`
<!-- Maven Assembly Plugin -->
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.4.1</version><configuration><!-- get all project dependencies --><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><!-- bind to the packaging phase --><phase>package</phase><goals><goal>single</goal></goals></execution></executions>
</plugin>

3. 添加jar包到自己的类路径

# 在自己的项目中将该打包好的jar包右键选择 As a library

4. 编写工具类 NetconfUtils

# 编写该工具类
- NetconfUtils
import net.juniper.netconf.Device;
import net.juniper.netconf.NetconfException;
import net.juniper.netconf.XML;public class NetconfUtils {private static final String HOSTNAME = "10.10.10.10";private static final String USERNAME = "admin";private static final String PASSWORD = "123456";private static final int NETCONF_PORT = 830;/*** 要发送的xml报文 例如:* <get>* <filter type="subtree">* <users xmlns="http://netconfcentral.org/ns/user">* <user>* <name>admin</name>* </user>* </users>* </filter>* </get>** @param xmlContent* @return*/public static XML send(String xmlContent) throws NetconfException {Device device = null;XML xmlReply = null;try {device = Device.builder().hostName(HOSTNAME).userName(USERNAME).password(PASSWORD).port(NETCONF_PORT).strictHostKeyChecking(false).hostKeysFileName(null).build();device.connect();xmlReply = device.executeRPC(xmlContent);device.close();} catch (Exception e) {e.printStackTrace();throw new NetconfException("报文发送失败");} finally {if (null != device) {device.close();}}return xmlReply;}public static XML send(String deviceHOSTNAME, String deviceUSERNAME, String devicePASSWORD, int deviceNETCONFPORT, String xmlContent) throws NetconfException {Device device = null;XML xmlReply = null;try {device = Device.builder().hostName(deviceHOSTNAME).userName(deviceUSERNAME).password(devicePASSWORD).port(deviceNETCONFPORT).strictHostKeyChecking(false).hostKeysFileName(null).build();device.connect();xmlReply = device.executeRPC(xmlContent);device.close();} catch (Exception e) {e.printStackTrace();throw new NetconfException("报文发送失败");} finally {if (null != device) {device.close();}}return xmlReply;}}

5. 使用Test

使用之前打开对应设备的netconf功能

@Slf4j
public class TestMain {/*** 非启动Spring框架时取消slf4J的日志显示*/static {LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();List<Logger> loggerList = loggerContext.getLoggerList();loggerList.forEach(logger -> {logger.setLevel(Level.ERROR);});}@Testpublic void test() throws NetconfException {XML send = NetconfUtils.send("<get>\n" +"<filter type=\"subtree\">\n" +"<users xmlns=\"http://netconfcentral.org/ns/user\">\n" +"<user>\n" +"<name>admin</name>\n" +"</user>\n" +"</users>\n" +"</filter>\n" +"</get>");System.out.println(send);}}

结果

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" last-modified="2022-04-28T14:54:59Z" message-id="2"><data><users xmlns="http://netconfcentral.org/ns/user"><user><name>admin</name><password>$1$ROky/q82$GKYA8rTVFVyYjLb8Sh27E1</password><description/><group-id>Super</group-id></user></users></data>
</rpc-reply>

http://chatgpt.dhexx.cn/article/IbyGkHjJ.shtml

相关文章

ComNet

1 ComNet 简介 ComNet设计的核心思想就是用深度神经网络来代替OFDM接收机&#xff0c;和FC-DNN类似。但是最大的不同之处&#xff0c;对接收机进行细化&#xff0c;将接收机分为了为信道估计子网和信号检测子网。每个子网由一个DNN构造&#xff0c;使用现有的简单、传统的解决…

「Python 网络自动化」NETCONF —— Python 使用 NETCONF 管理配置 H3C 网络设备

「Python 网络自动化」系列文章总目录 Nornir 中文手册——基于 Nornir3.0 官方文档的不完全翻译 文章目录 NETCONF 简单介绍NETCONF 协议结构NETCONF 报文结构请求报文格式报文回复格式 NETCONF 配置数据库NETCONF 支持的操作 实验操作基础环境配置网络环境设备配置代码环境 …

OF-CONFIG和NETCONF协议

一、OF-CONFIG协议 1.1 OF-CONFIG设计需求 1.1.1 实现对OF v1.3.1协议设备进行配置的设计需求 1.1.2 实现操作运维的设计需求 1.1.3交换机管理协议需求 1.2 OF-CONFIG协议的数据模型 1.3 OF-CONFIG的传输协议 二、NETCONF协议 2.1 NETCONF协议相对SNMP协议的优点 2.2 …

netconf是啥

netconf是啥 1 历史路由器配置方法&#xff1a;2 问题来了3 解决4 Netconf 是什么参考 1 历史路由器配置方法&#xff1a; 传统路由器配置方法中&#xff0c;以路由器来看&#xff0c;那就要去官网上查看文档&#xff0c;学习产品文档&#xff0c;然后在交换机上输入命令&…

从NETCONF/YANG看网络配置自动化

阅读冗长的NETCONF/YANG的RFC文档是相当乏味枯燥的&#xff0c;结合开发实践&#xff0c;本文试图删其繁&#xff0c;撮其要&#xff0c;给出NETCONF/YANG的轮廓和要点。 引子 NETCONF和YANG的目的是以可编程的方式实现网络配置的自动化&#xff0c;从而简化和加快网络设备和服…

SDN之NETCONF Call Home

本文主要内容都来自于今年二月发布的RFC8071 - NETCONF Call Home and RESTCONF Call Home&#xff0c;该RFC从2015年4月提出到最终发布一共修改了17个版本&#xff0c;其间修改内容可以点击查看详细内容。 介绍 NETCONF Call Home支持两种安全传输网络配置协议分别是Secure …

NETCONF原理

NETCONF简介 网络配置协议NETCONF&#xff08;Network Configuration Protocol&#xff09;提供一套管理网络设备的机制&#xff0c;用户可以使用这套机制增加、修改、删除网络设备的配置&#xff0c;获取网络设备的配置和状态信息。通过NETCONF协议&#xff0c;网络设备可以提…

NETCONF YANG原理

NETCONF YANG原理 网络管理技术背景NETCONF协议介绍YAGN建模语言介绍RESTCONF协议 网络管理技术背景 前言 对于设备的配置管理&#xff0c;工程师更习惯使用CLI命令行的方式与设备交互。该方式简单直接&#xff0c;便于理解。但是在网络自动化领域&#xff0c;CLI方式与设备交…

NetConf Brower使用

1.下载MG-SOFT NETCONF Browser Professional Edition 官方地址 2. 安装MG-SOFT NETCONF Browser 下一步下一步操作即可。 3.连接设备 打开的时候选择Continue即可&#xff0c;无须license。 点击File->Connect ,如下&#xff1a; 输入设备用户名称&#xff1a; 这…

Netconf协议学习笔记

Netconf简介 网络配置协议NETCONF&#xff08;Network Configuration Protocol&#xff09;提供一套管理网络设备的机制&#xff0c;用户可以使用这套机制增加、修改、删除网络设备的配置&#xff0c;获取网络设备的配置和状态信息。通过NETCONF协议&#xff0c;网络设备可以提…

NETCONF、RESTCONF和YANG

目录 一、NETCONF、RESTCONF和YANG是之间什么关系&#xff1f; 二、Netconf简介 2.1、一般使用工具&#xff1a;MG-Soft 简介 三、Netconf YANG 原理与实践 3.1、NETCONF协议 3.2、YANG建模语言 3.3、RESTCONF协议 网管协议&#xff1a; SNMP&#xff08;基于UDP&#…

NETCONF--从NETCONF/YANG看网络配置自动化

阅读冗长的NETCONF/YANG的RFC文档是相当乏味枯燥的&#xff0c;结合开发实践&#xff0c;本文试图删其繁&#xff0c;撮其要&#xff0c;给出NETCONF/YANG的轮廓和要点。 引子 NETCONF和YANG的目的是以可编程的方式实现网络配置的自动化&#xff0c;从而简化和加快网络设备和服…

Netconf

Netconf属于软件定义网络的管理和控制协议。 ETCONF协议&#xff0c;由RFC 6241定义&#xff0c;用以替代命令行界面(command line interface, CLI)、简单网络管理协议(Simple Network Management Protocol, SNMP)以及其它专有配置机制。管理软件可以使用NETCONF协议将配置数据…

NetConf简介之一篇文章读懂NetConf

一、背景 有的人早上不起床刷手机&#xff0c;有的人起床之后再卫生间刷手机&#xff0c;有的人在上班的地铁上刷手机&#xff0c;有的人在下班之后的班车上刷手机&#xff0c;有的人在晚上不睡觉刷手机。这其中有许多离不开技术&#xff0c;其中有一个技术就是网络。 网络互…

NETCONF协议详解

目录 目录概述NETCONF11协议详解 1 安全传输层2 消息层 21 hello 211 几种常用的能力 22 rpc和rpc-reply23 notification 3 操作层 31 get32 get-config33 edit-config34 copy-config35 delete-config36 lock37 unlock38 close-session39 kill-session 4 内容层 标准地图相关网…

netconf简介

简介 根据rfc6241 Network Configuration Protocol (NETCONF)介绍&#xff0c;netconf协议提供一种简单的机制&#xff0c;通过该机制网络设备进行管理。协议可以是设备对外提供一套完整并且规范的配置接口&#xff0c;管理者可以通过这些标准接口对设备进行配置操作。 netconf…

五、南向接口协议(四)——NetConf协议

文章目录 1 什么是NetConf协议2 NetConf协议的其他特点3 NETCONF协议框架3.1 NETCONF传输层3.2 NETCONF消息层&#xff08;采用RPC协议&#xff09;3.3 NETCONF操作层&#xff08;NETCONF核心&#xff09;3.4 NETCONF内容层 4 操作举例4.1 <get-config>4.2 <edit-conf…

Netconf网络配置协议讲解

目录 什么是Netconf 为什么要提出Netconf 数据的类别 传统网络配置协议 Netconf配置协议 Netconf协议架构 安全传输层 消息层 操作层 内容层 Netconf配置设备流程 通过Python进行Netconf配置 Restconf 什么是Netconf NETCONF&#xff08;Network Configuration Pr…

netconf协议

最近项目中要用到netconf协议也和设备之间进行连接&#xff0c;学习一下netconf协议并且记录下来 一&#xff1a;什么是netconf netconf协议也可以叫做网络配置协议&#xff0c;它提供了一套管理网络设备的机制&#xff0c;用户可以使用这套机制增加&#xff0c;修改&#xff0…

neq的问题

最近做一个项目&#xff0c;用的tp5&#xff0c;刚开始上手&#xff0c;就给我出现了一个莫名其妙的问题&#xff1b; 也不算是错误&#xff0c;看代码 我根据这个条件去用select查询数据库的数据&#xff0c;然后居然只给我返回一条数据&#xff0c;我以为是我的查询语句写错…