就是它!一个能让网工失业的协议!!!( 二 )


NETCONFServer收到Client的请求后会进行数据解析 , 然后给NETCONFClient返回响应 。
当设备发生故障或其他事件时 , NETCONFServer利用Notification机制主动将设备的告警和事件通知给Client , 向Client报告设备的当前状态变化 。 NETCONF基本会话建立过程
NETCONF协议使用RPC通信模式 , NETCONFClient和Server之间使用RPC机制进行通信 。 Client必须和Server成功建立一个安全的、面向连接的会话才能进行通信 。 Client向Server发送一个RPC请求 , Server处理完用户请求后 , 给Client发送一个回应消息 。
就是它!一个能让网工失业的协议!!!
文章图片
NETCONF基本会话建立过程
NETCONF会话建立和关闭的基本流程如下:
Client触发NETCONF会话建立 , 完成SSH连接建立 , 并进行认证与授权 。
Client和Server完成NETCONF会话建立和能力协商 。
Client发送一个或多个请求给Server , 进行RPC交互(鉴权) 。 例如:
修改并提交配置 。
查询配置数据或状态
对设备进行维护操作 。
Client关闭NETCONF会话 。
SSH连接关闭 。 NETCONF的协议框架NETCONF协议框架
NETCONF协议采用了分层结构 。 每层分别对协议的某一方面进行包装 , 并向上层提供相关服务 。
分层结构使每层只关注协议的一个方面 , 实现起来更简单 , 同时使各层之间的依赖、内部实现的变更对其他层的影响降到最低 。
就是它!一个能让网工失业的协议!!!
文章图片
NETCONF协议框架
NETCONF协议划分为四层:由低到高分别为安全传输层、消息层、操作层和内容层 。
安全传输层
提供了客户端和服务器之间的通信路径 。 NETCONF协议可以使用任何符合基本要求的传输层协议承载 。
NETCONF传输层首选推荐SSH协议 , XML信息通过SSH协议承载 。 当前华为支持SSH协议作为NETCONF协议的承载协议 。
消息层
提供一种简易的不依赖于传输层 , 生成RPC和通知消息框架的通信协议 。
客户端把RPC请求封装在一个<rpc>元素内 , 发送给服务器;服务器把请求处理的结果封装在一个<rpc-reply>元素内 , 回应给客户端 。
操作层
定义一组基本的操作 , 作为RPC的调用方法 , 可以使用XML编码的参数调用这些方法 。
内容层
由管理数据内容的数据模型定义 。 目前主流的数据模型有Schema模型、YANG模型等 。
Schema是为了描述XML文档而定义的一套规则 。 设备通过Schema文件向网管提供配置和管理设备的接口 。 Schema文件类似于SNMP的MIB文件 。
YANG是专门为NETCONF协议设计的数据建模语言 。 客户端可以将RPC操作编译成XML格式的报文 , XML遵循YANG模型约束进行客户端和服务器之间通信 。 NETCONF报文结构
一个完整的NETCONFYANG请求报文结构如下图所示 。
就是它!一个能让网工失业的协议!!!
文章图片
NETCONFYANG请求报文结构图
XML作为NETCONF协议的编码格式 , 用文本文件表示复杂的层次化数据 , 即支持使用传统的文本编译工具 , 也支持使用XML专用的编辑工具读取、保存和操作配置数据 。
更详细的报文字段含义可参见NETCONF报文格式 。
NETCONF通信模式
Client的RPC请求和Server的回应消息全部使用XML编码 , XML编码的<rpc>和<rpc-reply>元素提供独立于传输层协议的请求和回应消息框架 。 如下为一些基本的RPC元素:
<rpc>
<rpc>元素是用来封装NETCONFClient发送给NETCONFServer的请求 。
<rpc-reply>