关于通信:通过python基于netconf协议获取网络中网元的配置数据助力企业网络控制自动化轻松实现

43次阅读

共计 2393 个字符,预计需要花费 6 分钟才能阅读完成。

摘要: 在当今信息化时代,大多数企业都须要网络撑持企业的 ICT 运行,晋升企业运行效率,针对企业网络中的网元设施(包含交换机,路由器,防火墙等),很多企业心愿依据本身的业务特点定制网络管理,比方能够实现网络的运行状态可视化,网络配置自动化等,如下就以华为的 NE40E 网元为例,阐明如何通过 python 基于 netconf 协定实现对于网元配置数据的获取。

【原理介绍】

通过 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:

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

【话题互动有奖】

为了促成技术交换,欢送大家积极参与话题互动有奖流动。

点击理解更多,参加话题赢取精美奖品!

正文完
 0