接口名{ unit x { ip{ address x.x.x.x mask x.x.x.x } } }
当然实际上他们的yang model 要比这个复杂的多,比如juniper还有family 这个层级这里就是举一个例子 但是对于上层用户管理来说,他只用填逻辑口号,接口名,地址以及ip版本就可以了,他不需要知道具体到底实际的配置长啥样了,因为有可能及其复杂233. 是不是感觉很完美了,这样NFV可以让服务提供商随意换设备了,底层是思科华为还是juniper没啥所谓,反正只要有yang model我们就知道到底怎么配一台机器了。 XML呢,刚说过netconf是一种协议,它实际是个服务器,接受客户端发来的请求来配置自己,所以每台设备上都有一个netconf server,这里的信息交互就是用xml来实现的,所以yang model其实就是一种描述XML结构的模型。 好了,继续向下说到restconf了,这要从rest api说起,需要读者有一点web开发的知识。什么是rest api呢? 说白了这是一种利用HTTP协议来做RPC的办法。我们做NFV呢往往会有一个dashboard,管理员可以利用这个dashboard来配置他想要的功能,这个dashboard很多时候都是一个web application,web application有很多好处,比如客户端可以轻松跨平台,只要有浏览器就行。轻松远程接入等等好处。现代的很多web application往往是这样的结构 一个前端,可以理解为客户端,一个后端,往往就是一个web service了。而REST api就是web service的一种。这里不具体展开了,没有几千字是说不完的。 那么rest api 往往是这样工作的接受一个json格式的数据,然后根据请求的方法和url do something。 我们关注NFV,简单设计一个NFV的dashboard无非就是让用户能去配置机器嘛, 最简单的结构无非就是这样
dashboard | | config | web service | | config + yang | netconf client | |request XML | | device
这个restconf的作用就在web service 那一层,简单的讲就是怎么把你发来的config和所请求的yang映射到一个URL上的,有了这个URL就能把yang model的数填了,填完了你就有对应的设备的配置结构了,然后根据这个在生成xml就可以把请求发到对应的设备上配置啦。