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