解讀python基于netconf協(xié)議獲取網(wǎng)元的數(shù)據(jù)
【原理介紹】
通過(guò)NETCONF,網(wǎng)管能夠用可視化的界面統(tǒng)一管理網(wǎng)絡(luò)中的設(shè)備,并且安全性高、可靠性強(qiáng)、擴(kuò)展性強(qiáng)。如下圖所示,網(wǎng)管與網(wǎng)絡(luò)中的所有交換機(jī)之間建立NETCONF會(huì)話,用戶即可在網(wǎng)管提供的可視化界面上對(duì)網(wǎng)絡(luò)中的所有交換機(jī)進(jìn)行統(tǒng)一的管理,提高網(wǎng)絡(luò)運(yùn)維效率。
網(wǎng)管通過(guò)NETCONF對(duì)設(shè)備進(jìn)行管理組網(wǎng)圖
【開(kāi)發(fā)流程介紹】
首先進(jìn)行網(wǎng)元的配置開(kāi)通netconf協(xié)議相關(guān)篇配置,然后編寫(xiě)python調(diào)用netconf模塊:
【網(wǎng)元配置】
登錄ne40e的管理口,按照如下命令配置,配置說(shuō)明參見(jiàn)上面圖示中網(wǎng)元配置
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
默認(rèn)netconf的端口是SSH端口22,也可以用如下命令修改為其他端口:
protocol inbound ssh port 830
【python代碼示例】
建議使用第三方庫(kù)ncclient實(shí)現(xiàn)netconf的調(diào)用:
1.安裝ncclient:
pip install ncclient
2.Python引用ncclient:
from ncclient import manager
3.Python通過(guò)netconf的get能力獲取網(wǎng)元的接口狀態(tài)信息:
#建立連接 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) #設(shè)定獲取端口的狀態(tài)信息(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調(diào)用 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>
【總結(jié)】
基于以上流程和華為ne40的netconf功能介紹,可以實(shí)現(xiàn)配置獲取,配置下發(fā)等相關(guān)操作,用于企業(yè)網(wǎng)絡(luò)自動(dòng)化開(kāi)發(fā)。
ne40e的netconf相關(guān)資料參見(jiàn)鏈接: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協(xié)議獲取網(wǎng)元的數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于python的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 淺談對(duì)Python變量的一些認(rèn)識(shí)理解
- 教你利用Python破解ZIP或RAR文件密碼
- Python協(xié)程asyncio模塊的演變及高級(jí)用法
- python基于socketserver實(shí)現(xiàn)并發(fā),驗(yàn)證客戶端的合法性
- Python進(jìn)階之高級(jí)用法詳細(xì)總結(jié)
- python3 如何使用 goto 跳轉(zhuǎn)執(zhí)行到指定代碼行
- 如何用python抓取B站數(shù)據(jù)
- python print()函數(shù)的end參數(shù)和sep參數(shù)的用法說(shuō)明
- python實(shí)現(xiàn)某考試系統(tǒng)生成word試卷
相關(guān)文章
基于Python編寫(xiě)一個(gè)刷題練習(xí)系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了如何基于Python語(yǔ)言編寫(xiě)一個(gè)簡(jiǎn)單的刷題練習(xí)系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-02-02Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情
這篇文章主要介紹了Python 調(diào)用 C++ 傳遞numpy 數(shù)據(jù)詳情,文章主要分為兩部分,c++代碼和python代碼,代碼分享詳細(xì),需要的小伙伴可以參考一下,希望對(duì)你有所幫助2022-03-03一個(gè)簡(jiǎn)單的python程序?qū)嵗?通訊錄)
這篇文章主要分享了用python實(shí)現(xiàn)的一個(gè)通訊錄實(shí)例,學(xué)習(xí)python的朋友可以參考下2013-11-11python讓圖片按照exif信息里的創(chuàng)建時(shí)間進(jìn)行排序的方法
這篇文章主要介紹了python讓圖片按照exif信息里的創(chuàng)建時(shí)間進(jìn)行排序的方法,涉及Python操作圖片exif獲取信息的技巧,需要的朋友可以參考下2015-03-03Ubuntu 16.04 LTS中源碼安裝Python 3.6.0的方法教程
最近Python 3發(fā)布了新版本Python 3.6.0,好像又加入了不少黑魔法!由于暫時(shí)不能使用 apt-get 的方式安裝 Python 3.6,所以還是直接編譯源碼安裝吧。下面這篇文章就介紹了在Ubuntu 16.04 LTS中源碼安裝Python 3.6.0的方法教程,需要的朋友可以參考下。2016-12-12

Matplotlib控制坐標(biāo)軸刻度間距與標(biāo)簽實(shí)例代碼

詳解Windows下PyCharm安裝Numpy包及無(wú)法安裝問(wèn)題解決方案