netconf協議最早被作為網管協議被提出來的,與SNMP網管協議相比較:
SNMP的優勢在於網絡設備的監測,在大規模網管應用中有很大不足,正是針對這種不足之處,提出了NETCONF協議
一:NETCONF協議
NETCONF協議雖然是多個SDN控制支持的南向協議,但是他無法指導交換機進行數據轉發,它與OF-Config OVSDB協議類似,是一種網絡設備的配置管理協議
(一)功能
NETCONF是新一代網管協議;網絡配置協議NETCONF(Network Configuration Protocol)提供一套管理網絡設備的機制
(二)版本發展
(三)NETCONF其他特點
區分配置數據和狀態數據,提供不同的操作進行數據的增刪改查。
--配置數據(configuration data):對網絡設備進行配置的數據;
--狀態數據(state data):反映設備狀態的數據
存在多個配置數據庫
Running數據庫代表目前在設備上運行的配置,這個配置數據庫一般提供持久化操作的指令。例如思科交換機可以通過copy命令將當前的running配置保持到startup配置,用於設備重啟后的配置恢復
NETCONF可以支持candidate,就相當於多了一個閑置的練手數據庫,可以在candidate配置數據庫上進行反復配置,直到得到想要的結果,然后用commit操作將candidate的配置覆蓋running配置數據庫
另外可以通過copy-config命令將running配置覆蓋startup配置數據庫。
(四)NETCONF協議分層
NETCONF傳輸層
當一個安全連接建立后,客戶端和服務端會通過hello消息,進行一次NETCONF消息交互
NETCONF 消息層(采用RPC協議)
采用基於RPC的通訊機制; RPC是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議 • <rpc>:請求 • <rpc-reply>:響應
再交換過hello消息后,NETCONF客戶端向服務端發送rpc消息對服務端的設備進行配置管理,服務端對每個rpc請求發送rpc-reply進行回應
NETCONF操作層(NETCONF核心)
提供對數據庫信息的獲取、配置、復制和刪除等功能
NETCONF內容層
描述了網絡管理所涉及的配置數據: <running/> <candidate/> <startup/>
使用YANG語言進行建模,YANG具有以下特點:
層級樹形結構
可以直接映射到XML
可讀性好,易學習
可復用、可擴展
二:操作模擬
(一)get-config
控制器通過RPC請求,獲取交換機的配置信息,
從RPC請求的XML文檔可以看出,<RPC>標簽標識消息層的rpc請求,get-config標簽代表操作層的操作。running標簽說明操作的對象是running數據庫
從RPC響應的xml文檔可以查看,所獲取的交換機的datapath-id,所連接的控制器角色,ip和端口號等信息
(二)edit-config
edit-config操作對目標數據庫進行編輯,操作的屬性主要包括 create replace replace merge delete
(三)copy-config
創建或替換整個配置數據庫
如果目標存在, 則覆蓋;否則,創建一個新的庫
(四)delete-config
<running> 配置數據庫不能被刪除