目 录
致谢
关于RFC6241中文翻译
1. 介绍
1.1 术语
1.2 协议概述
1.3 能力
1.4 配置和状态数据的分离
2. 传输协议要求
2.1. 面向连接的操作
2.2. 身份验证,完整性和机密性
2.3. 强制性传输协议
3. XML注意事项
3.1. 命名空间
3.2. 文件类型声明
4. RPC模型
4.1. < rpc >元素
4.2. < rpc-reply > 元素
4.3. < rpc-error > 元素
4.4. < ok > 元素
4.5. 流水线
5. 配置模型
5.1. 配置数据存储
5.2. 数据建模
6. 子树过滤
6.1. 概述
6.2. 子树过滤器
6.3. 子树过滤处理
6.4. 子树过滤示例
7. 协议操作
7.1. < get-config >
7.2. < edit-config >
7.3. < copy-config >
7.4. < delete-config >
7.5. < lock >
7.6. < unlock >
7.7. < get >
本文档使用 书栈(BookStack.CN) 构建
- 2 -
7.8. < close-session >
7.9. < kill-session >
8. 能力
8.1. 能力交换(Capabilities Exchange)
8.2. 可写入运行能力(Writable-Running Capability)
8.3. 候选配置能力(Candidate Configuration Capability)
8.4. 确认提交能力(Confirmed Commit Capability)
8.5. 回滚错误能力(Rollback-on-Error Capability)
8.6. 验证能力(Validate Capability)
8.7. 独特的启动能力(Distinct Startup Capability)
8.8. URL能力(URL Capability)
8.9. XPath功能(XPath Capability)
9. 安全考虑
10. IANA考虑事项
11. 贡献者
12. 致谢
13. 参考
附录
附录A.NETCONF错误列表
附录B.NETCONF消息层的XML Schema
附录C.用于NETCONF协议操作的YANG模块
附录D.能力模板
附录E.使用NETCONF配置多个设备
附录F. 基于RFC4741的变更
Changelog
本文档使用 书栈(BookStack.CN) 构建
- 3 -
致谢
致谢
当前文档 《RFC 6241 (Network Configuration Protocol (NETCONF))中文》 由 进击
的皇虫 使用 书栈(BookStack.CN) 进行构建,生成于 2019-05-06。
书栈(BookStack.CN) 仅提供文档编写、整理、归类等功能,以及对文档内容的生成和导出工
具。
文档内容由网友们编写和整理,书栈(BookStack.CN) 难以确认文档内容知识点是否错漏。如果
您在阅读文档获取知识的时候,发现文档内容有不恰当的地方,请向我们反馈,让我们共同携手,将知
识准确、高效且有效地传递给每一个人。
同时,如果您在日常工作、生活和学习中遇到有价值有营养的知识文档,欢迎分享到 书栈
(BookStack.CN) ,为知识的传承献上您的一份力量!
如果当前文档生成时间太久,请到 书栈(BookStack.CN) 获取最新的文档,以跟上知识更新换
代的步伐。
内容来源:Tony Deng https://github.com/tonydeng/rfc6241-zh
文档地址:http://www.bookstack.cn/books/rfc6241-zh
书栈官网:http://www.bookstack.cn
书栈开源:https://github.com/TruthHun
分享,让知识传承更久远! 感谢知识的创造者,感谢知识的分享者,也感谢每一位阅读到此处的
读者,因为我们都将成为知识的传承者。
本文档使用 书栈(BookStack.CN) 构建
- 4 -
关于RFC6241中文翻译
前言
本文档是RFC6241 - Network Configuration Protocol (NETCONF)的中文翻译版本。
本文主要内容都来自于2011年6月发布的RFC6241 - Network Configuration Protocol
(NETCONF),该RFC从2009年3月提出到最终发布一共修改了10个版本,其间修改内容可以点击查看详
细内容。
摘要
本文档中定义的网络配置协议( NETCONF )提供了安装,操作和删除网络设备配置的机制。它使用基
于可扩展标记语言( XML )的数据编码来处理配置数据以及协议消息。 NETCONF 协议操作被实现
为远程过程调用( RPCs )。这个文件废弃了RFC 4741 - NETCONF Configuration
Protocol。
本备忘录的状态
这是一个互联网标准跟踪文件。
本文档是 Internet工程任务组(IETF) 的产品。它代表了IETF社区的共识。已经接受公众评议,并
获得 互联网工程指导组(IESG) 的批准。有关 Internet 标准的更多信息,请参阅RFC 5741的第2
部分。
关于本文档的当前状态,任何勘误,以及如何提供反馈的信息可以在http://www.rfc-
editor.org/info/rfc6241上获得。
在线阅读
可以通过GitBook或者Github来在线阅读。
本文档使用 书栈(BookStack.CN) 构建
- 5 -
关于RFC6241中文翻译
也可以下载ePub或者PDF版本。
项目源码
项目源码存放于Github上,见https://github.com/tonydeng/rfc6241-zh。
本文档使用 书栈(BookStack.CN) 构建
- 6 -
1. 介绍
1. 介绍(Introduction)
NETCONF 协议定义了一个简单的机制,通过它可以管理网络设备,可以检索配置数据信息,并且可以
上传和操作新的配置数据。该协议允许设备公开一个完整的,正式的应用程序编程接口( API )。应
用程序可以使用这个直接的 API 来发送和接收完整的和部分的配置数据集。
NETCONF 协议使用远程过程调用( RPC )范例。客户端使用XML编码RPC [W3C.REC-xml-
20001006],并使用安全的面向连接的会话将其发送到服务器。服务器以 XML 编码回复。请求和响
应的内容在 XML DTD 或 XML 模式或两者中都有充分的描述,使双方都能识别强加在交换上的语法
约束。
NETCONF 的一个关键方面是它允许管理协议的功能密切地反映设备的本地功能。这降低了实施成本,
并且允许及时访问新功能。另外,应用程序可以访问设备本地用户界面的语法和语义内容。
NETCONF允许客户端发现服务器支持的一组协议扩展。这些“功能”允许客户调整其行为以利用设备暴露
的特征。能力定义可以非中心化的方式轻松扩展。标准和非标准功能可以用语义和句法严谨来定义。能
力在第8节讨论。
NETCONF协议是自动配置系统中的一个构建模块。 XML 是交换的通用语言,为分层内容提供了灵活
但完全指定的编码机制。 NETCONF 可以与基于 XML 的转换技术(如 XSLT [W3C.REC-xslt-
19991116])配合使用,以提供用于自动生成完整和部分配置的系统。系统可以查询一个或多个数据库
以获取有关网络拓扑,链接,策略,客户和服务的数据。这些数据可以使用一个或多个 XSLT 脚本从
面向任务的,独立于供应商的数据模式转换成特定于供应商,产品,操作系统和软件版本的形式。结果
数据可以通过 NETCONF 协议传递给设备。
本文件中的 “ MUST “, “ MUST NOT “, “ REQUIRED “, “ SHALL “, “ SHALL NOT “,
“ SHOULD “, “ SHOULD NOT “, “ RECOMMENDED “, “ MAY “和” OPTIONAL “ 按RFC2119
中的描述进行解释。
本文档使用 书栈(BookStack.CN) 构建
- 7 -
1.1 术语
1.1 术语
候选配置数据存储( candidate configuration datastore ):一种配置数据存储,可以在不
影响设备当前配置的情况下进行操作,并且可以提交给正在运行的配置数据存储。并非所有设备
都支持候选配置数据存储。
功能( capability ):基本 NETCONF 规范的补充功能。
客户端( client ):调用服务器上的协议操作。另外,客户端可以订阅从服务器接收通知。
配置数据( configuration data ):将系统从其初始默认状态转换为当前状态所需的一组可写
数据。
数据存储( datastore ):存储和访问信息的概念性地方。例如,可以使用文件,数据库,闪存
位置或其组合来实现数据存储。
配置数据存储( configuration datastore ):数据存储包含将设备从其初始默认状态转换到
所需操作状态所需的全套配置数据。
消息( message ):通过会话发送的协议元素。消息是格式良好的XML文档。
通知( notification ):服务器发起的消息,指示某个事件已被服务器识别。
协议操作( protocol operation ): NETCONF 协议中使用的特定远程过程调用。
远程过程调用( RPC ):通过交换 和 消息来实现。
运行配置数据存储( running configuration datastore ):配置数据存储,保存设备上当前
处于活动状态的完整配置。正在运行的配置数据存储始终存在。
服务器( server ):执行由客户端调用的协议操作。另外,服务器可以发送通知给客户端。
会话( session ):客户端和服务器使用安全的面向连接的会话交换消息。
启动配置数据存储区( startup configuration datastore ):配置数据存储区,用于存放启
动时由设备加载的配置。 仅在将启动配置数据存储区与正在运行的配置数据存储区分开的设备上
出现。
状态数据( state data ):系统上不是配置数据的附加数据,如只读状态信息和收集的统计数
据。
用户( user ):客户端的身份验证。 客户端的身份验证通常被称为 NETCONF 用户名。
本文档使用 书栈(BookStack.CN) 构建
- 8 -