1.2 协议概述

NETCONF使用简单的基于RPC的机制来促进客户端和服务器之间的通信。 客户端可以是通常作为网络管理器的一部分运行的脚本或应用程序。 服务器通常是一个网络设备。 术语“设备(device)”和“服务器(server)”在本文档中可互换使用,“客户端(client)”和“应用(application)”也是如此。

NETCONF会话是网络管理员或网络配置应用程序与网络设备之间的逻辑连接。 设备必须至少支持一个NETCONF会话,并且应该支持多个会话。 全局配置属性可以在任何授权的会话中更改,并且效果在所有会话中都可见。 会话特定的属性只影响它们被改变的会话。

NETCONF可以从概念上分为四层,如图1所示。

  1. Layer Example
  2. +-------------+ +-----------------+ +----------------+
  3. (4) | Content | | Configuration | | Notification |
  4. | | | data | | data |
  5. +-------------+ +-----------------+ +----------------+
  6. | | |
  7. +-------------+ +-----------------+ |
  8. (3) | Operations | | <edit-config> | |
  9. | | | | |
  10. +-------------+ +-----------------+ |
  11. | | |
  12. +-------------+ +-----------------+ +----------------+
  13. (2) | Messages | | <rpc>, | | <notification> |
  14. | | | <rpc-reply> | | |
  15. +-------------+ +-----------------+ +----------------+
  16. | | |
  17. +-------------+ +-----------------------------------------+
  18. (1) | Secure | | SSH, TLS, BEEP/TLS, SOAP/HTTP/TLS, ... |
  19. | Transport | | |
  20. +-------------+ +-----------------------------------------+

图1: NETCONF协议分层(NETCONF Protocol Layers)

  1. 安全传输(Secure Transport)层提供客户端和服务器之间的通信路径。 NETCONF可以通过任何提供一组基本要求的传输协议进行分层。 第2节讨论这些要求。

  2. 消息(Messages)层为编码RPC和通知提供了一个简单的,与传输无关的成帧机制。 第4节记录RPC消息,RFC5717 - Partial Lock Remote Procedure Call (RPC) for NETCONF记录通知。

  3. 操作(Operations)层定义了一组使用XML编码参数作为RPC方法调用的基本协议操作。 第7节详细列出了基本协议操作。

  4. 内容(Content)层不在本文的范围之内。 预计将分别开展标准化NETCONF数据模型的工作。

YANG数据建模语言RFC6020 - YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)是为指定NETCONF数据模型和协议操作而开发的,涵盖了图1的操作和内容层。