netconf协议最早被作为网管协议被提出来的,与SNMP网管协议相比较:
SNMP的优势在于网络设备的监测,在大规模网管应用中有很大不足,正是针对这种不足之处,提出了NETCONF协议

一:NETCONF协议

NETCONF协议虽然是多个SDN控制支持的南向协议,但是他无法指导交换机进行数据转发,它与OF-Config OVSDB协议类似,是一种网络设备的配置管理协议

(一)功能

NETCONF是新一代网管协议;网络配置协议NETCONF(Network Configuration Protocol)提供一套管理网络设备的机制

(二)版本发展

(三)NETCONF其他特点

区分配置数据和状态数据,提供不同的操作进行数据的增删改查。

--配置数据(configuration data):对网络设备进行配置的数据;
--状态数据(state data):反映设备状态的数据

存在多个配置数据库

Running数据库代表目前在设备上运行的配置,这个配置数据库一般提供持久化操作的指令。例如思科交换机可以通过copy命令将当前的running配置保持到startup配置,用于设备重启后的配置恢复
NETCONF可以支持candidate,就相当于多了一个闲置的练手数据库,可以在candidate配置数据库上进行反复配置,直到得到想要的结果,然后用commit操作将candidate的配置覆盖running配置数据库
另外可以通过copy-config命令将running配置覆盖startup配置数据库。

(四)NETCONF协议分层

NETCONF传输层

当一个安全连接建立后,客户端和服务端会通过hello消息,进行一次NETCONF消息交互

NETCONF 消息层(采用RPC协议)

采用基于RPC的通讯机制; RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议
• <rpc>:请求
• <rpc-reply>:响应
再交换过hello消息后,NETCONF客户端向服务端发送rpc消息对服务端的设备进行配置管理,服务端对每个rpc请求发送rpc-reply进行回应

NETCONF操作层(NETCONF核心)

提供对数据库信息的获取、配置、复制和删除等功能

NETCONF内容层

描述了网络管理所涉及的配置数据:
 <running/>
 <candidate/>
 <startup/>
使用YANG语言进行建模,YANG具有以下特点:
 层级树形结构
 可以直接映射到XML
 可读性好,易学习
 可复用、可扩展

二:操作模拟

(一)get-config

控制器通过RPC请求,获取交换机的配置信息,
从RPC请求的XML文档可以看出,<RPC>标签标识消息层的rpc请求,get-config标签代表操作层的操作。running标签说明操作的对象是running数据库
从RPC响应的xml文档可以查看,所获取的交换机的datapath-id,所连接的控制器角色,ip和端口号等信息

(二)edit-config

edit-config操作对目标数据库进行编辑,操作的属性主要包括 create replace replace merge delete

(三)copy-config

创建或替换整个配置数据库
如果目标存在, 则覆盖;否则,创建一个新的库

(四)delete-config

<running> 配置数据库不能被删除

软件定义网络基础---NETCONF协议的更多相关文章

  1. 软件定义网络基础---OF-Config协议

    交换机与控制器继续通信前,是需要对其功能.特性以及资源进行配置才能进行工作,这些配置是如何实现的?是由专门的配置协议指导完成的 一:OF-Config协议 是OpenFlow交换机管理配置协议,是Op ...

  2. 软件定义网络基础---OpenFlow协议

    一:OpenFlow协议概述 OpenFlow协议为控制器与交换机之间的通信,提供了一种开放标准的方式.OpenFlow交换机通过安全通道与控制器进行信息交互 二:OpenFlow消息类型 (一)co ...

  3. 软件定义网络基础---SDN控制平面

    一:SDN控制平面 一个或多个SDN控制器组成,是网络的大脑.  对底层网络交换设备进行集中管理,状态监测.转发决策以及处理和调 度数据平面的流量:  通过北向接口向上层应用开放多个层次的可编程能 ...

  4. 软件定义网络基础---OpenFlow概述

    一:OpenFlow概述 二:交换机模型架构 (一)OpenFlow构架三个组成成分 三:OpenFlow 1.0版本 自OpenFlow1.0发布以来,目前已经有多个版本的OF规范版本被发布 四:O ...

  5. 网络基础 HTTP协议之http url简介

    HTTP协议之http url简介 by:授客 QQ:1033553122 http url简介 http url通过http协议,用于定位网络资源,是一种特殊类型的URI(统一资源定位) http_ ...

  6. 软件定义网络基础---REST API的设计规范

    一:REST API的设计 REST API是基于HTTP协议进行设计的,由HTTP动词+URI组成 (一)HTTP动词 (二)资源的原型 文档(Document): 文档是资源的单一表现形式: 集合 ...

  7. 软件定义网络基础---OpenFlow流表

    一:流表 (一)流的概念 我们把同一时间经过同一网络中,具有某种共同特征或属性的数据,抽象为一个流 比如:我们将访问同一个地址的数据视为一个流 流一般是由网络管理员定义的,可以根据不同的流执行不同的策 ...

  8. 软件定义网络基础---SDN数据平面

    主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数 ...

  9. 软件定义网络基础---SDN的核心思想

    一:SDN包含的核心思想:解耦,抽象,可编程 二:解耦 (一)SDN网络解耦思想 解耦是指将控制平面和数据平面进行分离,主要为了解决传统网络中控制平面和数据平面在物理上紧耦合导致的问题 控制平面和数据 ...

随机推荐

  1. 0025SpringMVC的几种响应方式

    本文主要涉及到一下几种响应方式: 1.返回字符串2.返回void3.返回ModelAndView4.转发关键字forward和重定向关键字redirect返回字符串5.ajax调用返回json 具体实 ...

  2. 十七.protobuf在rpc中的使用

    关于protobuf在rpc中的使用,设计到gRPC,相关内容待续....

  3. React navtive

    http://www.linuxidc.com/Linux/2015-09/123239.htm

  4. django 第四天模板渲染

    今日内容 一.模板渲染 语法 {{ 变量 }} {% 逻辑 %} 1.变量 取列表中的第几个元素,用索引 <p>{{ namelist.2 }}</p> 取字典中的第几个元素用 ...

  5. Linux 用户和用户组管理之 修改用户名和用户组;修改用户密码

    一.用户账号包括(查看已经存在的账号 | 添加用户账号 |  修改用户账号 | 删除用户账号) 查看存在的账号: more /etc/passwd #或者是 awk -F':' '{ print $1 ...

  6. (3)Angular的开发

    Angular CLI是一个命令行界面工具 创建项目.添加文件以及执行一大堆开发任务,比如测试.打包和发布 Angular CLI 功能与常用参数 使用Angular CLI 高效构建angular ...

  7. (16)打鸡儿教你Vue.js

    博客: Hexo搭建个性博客 https://hexo.io/zh-cn/ 快速.简洁且高效的博客框架 超快速度 Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染. 支持 Mar ...

  8. 《挑战30天C++入门极限》理解C++面向对象程序设计中的抽象理论

        理解C++面向对象程序设计中的抽象理论 很多书在一开始就开始学习josephus问题,为了让大家前面学起来较为容易我把前面涉及到此问题的地方都故意去掉了,现在我们已经学习过了结构体和类,所以放 ...

  9. 用vue做todolist

    <template> <div class="hello"> <div style="height:25px;line-height:25p ...

  10. Javascript正则RegExp对象replace方法替换url参数值

    看别的博客有用eval执行正则表达式的写法, //替换指定传入参数的值,paramName为参数,replaceWith为新值 function replaceParamVal(paramName,r ...