网络编程
位置:首页>> 网络编程>> Python编程>> 解读python基于netconf协议获取网元的数据

解读python基于netconf协议获取网元的数据

作者:华为云开发者社区  发布时间:2023-06-29 20:26:23 

标签:python,netconf,网元

【原理介绍】

通过NETCONF,网管能够用可视化的界面统一管理网络中的设备,并且安全性高、可靠性强、扩展性强。如下图所示,网管与网络中的所有交换机之间建立NETCONF会话,用户即可在网管提供的可视化界面上对网络中的所有交换机进行统一的管理,提高网络运维效率。

网管通过NETCONF对设备进行管理组网图

解读python基于netconf协议获取网元的数据

【开发流程介绍】

首先进行网元的配置开通netconf协议相关篇配置,然后编写python调用netconf模块:

解读python基于netconf协议获取网元的数据

【网元配置】

登录ne40e的管理口,按照如下命令配置,配置说明参见上面图示中网元配置


system-view
aaa
local-user netconf001 password irreversible-cipher Root@123
local-user netconf001 service-type ssh
local-user netconf001 user-group manage-ug
ssh user netconf001
ssh user netconf001 authentication-type password
ssh user netconf001 service-type all
snetconf server enable

默认netconf的端口是SSH端口22,也可以用如下命令修改为其他端口:

protocol inbound ssh port 830

【python代码示例】

建议使用第三方库ncclient实现netconf的调用:

1.安装ncclient:


pip install ncclient

2.Python引用ncclient:


from ncclient import manager

3.Python通过netconf的get能力获取网元的接口状态信息:


#建立连接
conn = manager.connect(host="10.10.10.10", port=22,
                                   username="netconf001", password="Root@123",
                                   hostkey_verify=False,
                                   device_params={'name': 'huawei'},
                                   allow_agent=False,
                                   look_for_keys=False)
#设定获取端口的状态信息(down或者up)
message = '''<ifm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0">
                 <interfaces>
                     <interface>
                         <ifName/>
                         <ifDynamicInfo>
                             <ifPhyStatus/>
                             <ifLinkStatus/>
                         </ifDynamicInfo>
                     </interface>
                 </interfaces>
             </ifm>'''
#get调用
ret = conn.get(("subtree", message ))
#打印返回的信息
print(ret)

4.返回信息参加如下样例,可以看到端口GigabitEthernet0/0/0是up:


<?xml version="1.0" encoding="UTF-8"?>
<rpc-reply message-id="urn:uuid:ec1e9c29-5ff6-4582-8880-e887ceb8c512" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
 <data>
   <ifm xmlns="http://www.huawei.com/netconf/vrp" format-version="1.0" content-version="1.0">
     <interfaces>
       <interface>
         <ifName>GigabitEthernet0/0/0</ifName>
         <ifDynamicInfo>
           <ifPhyStatus>up</ifPhyStatus>
           <ifLinkStatus>up</ifLinkStatus>
         </ifDynamicInfo>
       </interface>
     </interfaces>
   </ifm>
 </data>
</rpc-reply>

【总结】

基于以上流程和华为ne40的netconf功能介绍,可以实现配置获取,配置下发等相关操作,用于企业网络自动化开发。

ne40e的netconf相关资料参见链接:https://support.huawei.com/hedex/hdx.do?lib=EDOC1100168803AZJ11174&docid=EDOC1100168803&lang=zh&v=03&tocLib=EDOC1100168803AZJ11174&tocV=03&id=ZH-CN_CONCEPT_0139427194&tocURL=resources%2525252Fsoftware%2525252Fnev8r10_vrpv8r16%2525252Fuser%2525252Fvrp%2525252Ffeature_0003993139.html&p=t&fe=1&ui=3&keyword=netconf%2525252525u539f%2525252525u7406

来源:https://www.cnblogs.com/huaweiyun/p/14046476.html

0
投稿

猜你喜欢

  • 当“ 页面重构工程师 ”这个职位的面试官也蛮长一段时间了,跟前两年比起来,总的来说来应聘的同学能力在很大程度上有了提高,记得两年前的一场招聘
  • 当然可以,我们使用强大的fso对象来获取文件夹的大小请敲入如下代码即可:<%Set MyFileSize =&nb
  • 首先澄清一个应用场景问题。研究(1)中指出,对于结构复杂的网站,不少设计师们喜欢采用960固定宽度布局。但要注意的是,960并不是万能钥匙,
  • 平时我们获取事件对象一般写法如下:function getEvent(event) {    return e
  • 在按钮旁边加文字1.打开editor/js/ 两个js文件fckeditorcode_gecko.js fckeditorcode_ie.j
  • 初学ASP,程序是能勉强写出来了,但若每进行一次网站页面的改版,所有的源程序都将进行一次移植手术。为此所耗费的人力精力不计其数,甚至一不小心
  • 七夕节简介每年农历七月初七这一天是我国汉族的传统节日七夕节。因为此日活动的主要参与者是少女,而节日活动的内容又是以乞巧为主,故而人们称这天为
  • 您可以将SQL Server 数据库引擎升级到 SQL Server 2008。SQL Server 安装程序只需最少的用户干预就可升级 S
  • 昨天晚上睡觉前突然想到的,在此记一笔。传统方式以前我们做文章系统或新闻发布系统的时候,做文章内链(标签)的时候,通常是通过以下方式来实现的:
  • 设置MySQL数据同步(单向&双向)由于公司的业务需求,需要网通和电信的数据同步,就做了个MySQL的双向同步,记下过程,以后用得到
  • 这篇论坛文章(赛迪网技术社区)根据网友的个人实践扼要的讲解了将MySQL 5.0下的数据导入到MySQL 3.23中的具体方法及步骤,详细内
  •     使用库元素必须首先在DW中正确建立站点。 库被设计用来使重复性的工作更快、更容易并尽可能地无差错。 任
  • 对url进行编码在服务器端我们可以使用asp中的server.urlencode,很方便实现。如:<% ss="asp之家欢
  • 1、查看数据库中有哪些用户? select username from all_users;2、查看数据库中有哪些DBA用户? select
  • 与大多数可以面向对象的编程语言不一样, PHP 是同时支持面向过程和面向对象的编程方式, PHP 开发者可以在面向过程和面向对象二者中自由选
  • 书    名:细节决定交互设计的成败国际书号:ISBN 978-7-121-08232-0作 &nb
  • 英文原文:http://www.usabilitypost.com/2009/04/15/8-characteristics-of-succ
  • 这个类主要解决在类型转换时,如果直接使用类型转换函数,会因为变量为空或者格式不对而导致程序报错,而这种报错在大多数情况下是允许的.例如要转换
  • 前几天玩了玩Google的Map API,感觉还不错,很简单。但凡有过任何编程经验的同学,看完以下的教程,都可以在10分钟内掌握它的主要功能
  • ASP中查询数据库记录写入XML文件示例,把下面代码保存为Asp_XML.asp运行即可:    &
手机版 网络编程 asp之家 www.aspxhome.com