目錄
- 【原理介紹】
- 【開發流程介紹】
- 【網元配置】
- 【python代碼示例】
- 【總結】
【原理介紹】
通過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:
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=EDOC1100168803AZJ11174docid=EDOC1100168803lang=zhv=03tocLib=EDOC1100168803AZJ11174tocV=03id=ZH-CN_CONCEPT_0139427194tocURL=resources%2525252Fsoftware%2525252Fnev8r10_vrpv8r16%2525252Fuser%2525252Fvrp%2525252Ffeature_0003993139.htmlp=tfe=1ui=3keyword=netconf%2525252525u539f%2525252525u7406
以上就是解讀python基于netconf協議獲取網元的數據的詳細內容,更多關于python的資料請關注腳本之家其它相關文章!
您可能感興趣的文章:- 淺談對Python變量的一些認識理解
- 教你利用Python破解ZIP或RAR文件密碼
- Python協程asyncio模塊的演變及高級用法
- python基于socketserver實現并發,驗證客戶端的合法性
- Python進階之高級用法詳細總結
- python3 如何使用 goto 跳轉執行到指定代碼行
- 如何用python抓取B站數據
- python print()函數的end參數和sep參數的用法說明
- python實現某考試系統生成word試卷