通过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
建议使用第三方库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>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理