目录
- 【原理介绍】
- 【开发流程介绍】
- 【网元配置】
- 【python代码示例】
- 【总结】
【原理介绍】
通过NETCONF,网管能够用可视化的界面统一管理网络中的设备,并且安全性高、可靠性强、扩展性强。如下图所示,网管与网络中的所有交换机之间建立NETCONF会话,用户即可在网管提供的可视化界面上对网络中的所有交换机进行统一的管理,提高网络运维效率。
网管通过NETCONF对设备进行管理组网图
【开发流程介绍】
首先进行网元的配置开通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:
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=EDOC1100168803AZJ11174docid=EDOC1100168803lang=zhv=03tocLib=EDOC1100168803AZJ11174tocV=03id=ZH-CN_CONCEPT_0139427194tocURL=resources%2525252Fsoftware%2525252Fnev8r10_vrpv8r16%2525252Fuser%2525252Fvrp%2525252Ffeature_0003993139.htmlp=tfe=1ui=3keyword=netconf%2525252525u539f%2525252525u7406
以上就是解读python基于netconf协议获取网元的数据的详细内容,更多关于python的资料请关注脚本之家其它相关文章!
您可能感兴趣的文章:- 浅谈对Python变量的一些认识理解
- 教你利用Python破解ZIP或RAR文件密码
- Python协程asyncio模块的演变及高级用法
- python基于socketserver实现并发,验证客户端的合法性
- Python进阶之高级用法详细总结
- python3 如何使用 goto 跳转执行到指定代码行
- 如何用python抓取B站数据
- python print()函数的end参数和sep参数的用法说明
- python实现某考试系统生成word试卷