python如何通过netconf协议获取网元的数据
小编给大家分享一下python如何通过netconf协议获取网元的数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
对于网络运维(也就是网管)而言,统一管理网络中的设备是其最主要的需求,netconf协议就是为此而生的。使用netconf协议,我们可以通过交换机对网元(也就是网内的计算机单元)进行管理,提高网络运维的效率。
【原理介绍】通过NETCONF,网管能够用可视化的界面统一管理网络中的设备,并且安全性高、可靠性强、扩展性强。如下图所示,网管与网络中的所有交换机之间建立NETCONF会话,用户即可在网管提供的可视化界面上对网络中的所有交换机进行统一的管理,提高网络运维效率。
网管通过NETCONF对设备进行管理组网图。
【开发流程介绍】首先进行网元的配置开通netconf协议相关篇配置,然后编写python调用netconf模块
【网元配置】登录ne40e的管理口,按照如下命令配置,配置说明参见上面图示中网元配置
system-viewaaalocal-usernetconf001passwordirreversible-cipherRoot@123local-usernetconf001service-typesshlocal-usernetconf001user-groupmanage-ugsshusernetconf001sshusernetconf001authentication-typepasswordsshusernetconf001service-typeallsnetconfserverenable
默认netconf的端口是SSH端口22,也可以用如下命令修改为其他端口:
protocol inbound ssh port 830
【python代码示例】建议使用第三方库ncclient实现netconf的调用:
1.安装ncclient:
pipinstallncclient
2.Python引用ncclient:
fromncclientimportmanager
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='''<ifmxmlns="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:
<?xmlversion="1.0"encoding="UTF-8"?><rpc-replymessage-id="urn:uuid:ec1e9c29-5ff6-4582-8880-e887ceb8c512"xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><data><ifmxmlns="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>
以上是“python如何通过netconf协议获取网元的数据”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。