什么是RESTCONF?

描述

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的协议栈下,其网络配置应用程序的粗略图大致上如下图所示:

应用程序

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分