服务器之家

服务器之家 > 正文

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

时间:2021-11-04 09:26     来源/作者:华为云开发者社区

【原理介绍】

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

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

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

【开发流程介绍】

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

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

【网元配置】

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

?
1
2
3
4
5
6
7
8
9
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:

?
1
pip install ncclient

2.Python引用ncclient:

?
1
from ncclient import manager

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#建立连接
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:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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

以上就是解读python基于netconf协议获取网元的数据的详细内容,更多关于python的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/huaweiyun/p/14046476.html

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部