1. 為什么存在RESTCONF?
Web應(yīng)用程序可以通過集成NETCONF協(xié)議庫,構(gòu)建NETCONF客戶端并向NETCONF服務(wù)端發(fā)送RPC消息,其結(jié)構(gòu)圖如下所示:
既然NETCONF可以集成在Web應(yīng)用程序中完成網(wǎng)絡(luò)設(shè)備的配置,那為何又要制定RESTCONF協(xié)議呢?Web應(yīng)用程序是構(gòu)建在HTTP協(xié)議之上的,而NETCONF不滿足這一點。所以,Web應(yīng)用程序如何以一種原生的方式訪問網(wǎng)絡(luò)設(shè)備內(nèi)的配置數(shù)據(jù)、狀態(tài)數(shù)據(jù)、RPC操作和事件通知,就需要一種標(biāo)準(zhǔn)機制來實現(xiàn)。
RESTCONF(https://tools.ietf.org/html/rfc8040)正是這種標(biāo)準(zhǔn)機制,它是一種基于HTTP [RFC7230]的協(xié)議,用于配置YANG版本1[RFC6020]中定義的數(shù)據(jù)或YANG版本1.1[RFC7950],使用網(wǎng)絡(luò)配置協(xié)議(NETCONF)[RFC6241]的數(shù)據(jù)存儲概念。因此,其以HTTP作為傳輸協(xié)議,使用 YANG語言來定義數(shù)據(jù)結(jié)構(gòu),并使用NETCONF定義數(shù)據(jù)存儲。
簡單地說,RESTCONF是RESTFUL風(fēng)格的協(xié)議,采用統(tǒng)一接口的方式實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的操作,也就是可以使用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對應(yīng)的北向接口RESTCONF的流表請求下發(fā)實例:
①URL地址:
②請求方法:POST。
③請求BODY體:
2. NETCONF和RESTCONF的關(guān)系
RESTCONF是一種RESTFUL風(fēng)格的協(xié)議,使用GET、POST、PUT、DELETE等方法實現(xiàn)與NETCONF同等的操作。
RESTCONF不是NETCONF的替代品。RESTCONF提供了Web應(yīng)用層級的抽象,便于Web應(yīng)用開發(fā)人員實現(xiàn)網(wǎng)絡(luò)資源的配置。
RESTCONF可以使用JSON和XML兩種數(shù)據(jù)格式,NETCONF完全基于XML的格式,但開發(fā)人員更喜歡的是JSON而不是XML。
RESTCONF不提供數(shù)據(jù)庫的加鎖操作和數(shù)據(jù)庫備份等功能。NETCONF在復(fù)雜功能的場景下,仍發(fā)揮重要價值。
3. RESTCONF的應(yīng)用
在NETCONF和RESTCONF的協(xié)議棧下,其網(wǎng)絡(luò)配置應(yīng)用程序的粗略圖大致上如下圖所示:
-
Web
+關(guān)注
關(guān)注
2文章
1287瀏覽量
71477 -
RPC
+關(guān)注
關(guān)注
0文章
111瀏覽量
11904 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3337瀏覽量
59048
發(fā)布評論請先 登錄
評論