1. 為什么存在RESTCONF?
Web應用程序可以通過集成NETCONF協議庫,構建NETCONF客戶端并向NETCONF服務端發送RPC消息,其結構圖如下所示:
既然NETCONF可以集成在Web應用程序中完成網絡設備的配置,那為何又要制定RESTCONF協議呢?Web應用程序是構建在HTTP協議之上的,而NETCONF不滿足這一點。所以,Web應用程序如何以一種原生的方式訪問網絡設備內的配置數據、狀態數據、RPC操作和事件通知,就需要一種標準機制來實現。
RESTCONF(https://tools.ietf.org/html/rfc8040)正是這種標準機制,它是一種基于HTTP [RFC7230]的協議,用于配置YANG版本1[RFC6020]中定義的數據或YANG版本1.1[RFC7950],使用網絡配置協議(NETCONF)[RFC6241]的數據存儲概念。因此,其以HTTP作為傳輸協議,使用 YANG語言來定義數據結構,并使用NETCONF定義數據存儲。
簡單地說,RESTCONF是RESTFUL風格的協議,采用統一接口的方式實現網絡數據的操作,也就是可以使用GET、DELETE、PATCH、POST和PUT方法來查詢和修改資源。消息放在Body體中,格式可以是XML或JSON,具體是XML還是JSON,通過以下方式指定:
一個簡單的流表:
table=1,tun_id=100,dl_dst=00:00:00:00:aa:01,actions=output:1對應的北向接口RESTCONF的流表請求下發實例:
①URL地址:
②請求方法:POST。
③請求BODY體:
2. NETCONF和RESTCONF的關系
RESTCONF是一種RESTFUL風格的協議,使用GET、POST、PUT、DELETE等方法實現與NETCONF同等的操作。
RESTCONF不是NETCONF的替代品。RESTCONF提供了Web應用層級的抽象,便于Web應用開發人員實現網絡資源的配置。
RESTCONF可以使用JSON和XML兩種數據格式,NETCONF完全基于XML的格式,但開發人員更喜歡的是JSON而不是XML。
RESTCONF不提供數據庫的加鎖操作和數據庫備份等功能。NETCONF在復雜功能的場景下,仍發揮重要價值。
3. RESTCONF的應用
在NETCONF和RESTCONF的協議棧下,其網絡配置應用程序的粗略圖大致上如下圖所示:
-
Web
+關注
關注
2文章
1268瀏覽量
69609 -
RPC
+關注
關注
0文章
111瀏覽量
11548 -
應用程序
+關注
關注
38文章
3289瀏覽量
57815
發布評論請先 登錄
評論