描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111691273丛书名: 网络专业人员书库
内容简介
整个网络行业正面临着自动化的压力,以实现规模化和更快的发展,本书介绍如何利用YANG来释放网络自动化的力量,提供了通用的术语、模型,以及对用例和工具的认识,以便能够进行有效地交流。通过提供丰富的背景、案例以及解释“为什么”和提供大量动手实践的机会,本书旨在为网络专业人士以及整个行业的发展提供帮助。
目 录
推荐序
译者序
前言
致谢
作者简介
技术审校者简介
第1章 网络管理世界必须改变:
你为什么要关心这件事1
1.1 导言1
1.2 行业发生了变化:趋势是什么4
1.2.1 缩短部署时间4
1.2.2 CLI不再是标准(无法自动化的功能不应存在)5
1.2.3 硬件商品化和解耦7
1.2.4 DevOps时代9
1.2.5 软件定义网络11
1.2.6 网络功能虚拟化12
1.2.7 弹性云:按需付费13
1.2.8 数据模型驱动的管理14
1.2.9 数据模型驱动的遥测16
1.2.10 基于意图的网络17
1.2.11 软件正在吞噬世界19
1.3 现有网络管理实践和相关限制19
1.3.1 CLI:这是API吗19
1.3.2 SNMP:用于监控但不用于配置21
1.3.3 NetFlow和IPFIX:主要用于流记录27
1.3.4 syslog:无结构化数据30
1.4 数据模型是自动化的关键32
1.4.1 信息模型与数据模型的差异32
1.4.2 用不同的数据模型管理网络的挑战33
专家访谈40
与Victor Kuarsing的问答40
与Russ White的问答42
小结43
参考资料44
注释44
第2章 数据模型驱动的管理46
2.1 起因:一套新的要求46
2.2 网络管理已死,网络管理万岁49
2.3 YANG:数据建模语言50
2.4 自动化的关键?数据模型52
2.4.1 YANG和运维人员的需求53
2.4.2 良好数据模型的属性54
2.4.3 不同类型的YANG模块55
2.4.4 从MIB模块映射YANG对象56
2.5 管理架构57
2.6 数据模型驱动的管理组件58
2.7 编码(协议绑定和序列化)61
2.7.1 XML62
2.7.2 JSON62
2.7.3 Google protobuf63
2.7.4 CBOR63
2.8 服务器架构:数据存储64
2.9 协议65
2.9.1 NETCONF65
2.9.2 RESTCONF68
2.9.3 gNMI(gRPC)69
2.9.4 CoMI70
2.10 编程语言70
2.11 遥测71
2.12 使用NETCONF管理网络72
专家访谈76
与Jürgen Sch?nw?lder的问答76
小结77
参考资料77
注释78
第3章 对YANG的阐释80
3.1 导言80
3.2 描述数据世界81
3.2.1 准确描述数据84
3.2.2 将数据归类89
3.3 描述可能的事件95
3.3.1 动作和RPC95
3.3.2 通知98
3.4 区分状态数据与配置数据99
3.5 约束使事情有意义104
3.5.1 强制性和默认数据107
3.5.2 条件内容108
3.5.3 正确跟随指针109
3.5.4 不考虑模式节点112
3.6 增扩、扩展和可能的偏离122
3.6.1 扩展YANG126
3.6.2 偏离127
3.7 网络管理数据存储架构129
专家访谈132
与Martin Bj?rklund的问答132
小结134
参考资料135
第4章 对NETCONF、RESTCONF和gNMI的阐释137
4.1 导言137
4.2 NETCONF138
4.2.1 基本原理138
4.2.2 XML标签、属性和命名空间140
4.2.3 RPC机制144
4.2.4 消息框架146
4.2.5 消息概述149
4.2.6 hello消息149
4.2.7 get-config消息151
4.2.8 edit-config消息153
4.2.9 get消息157
4.2.10 RPC和动作160
4.2.11 通知161
4.2.12 更多NETCONF操作164
4.2.13 NMDA操作get-data和edit-data164
4.3 RESTCONF165
4.3.1 REST原则165
4.3.2 RESTCONF与NETCONF对比166
4.3.3 查找RESTCONF服务器URL168
4.3.4 阅读和导航RESTCONF资源169
4.3.5 使用RESTCONF创建和更新配置175
4.3.6 动作183
4.3.7 通知184
4.4 OpenConfig和gNMI186
4.4.1 gRPC187
4.4.2 gNMI CapabilityRequest187
4.4.3 gNMI GetRequest188
4.4.4 gNMI SetRequest191
4.4.5 gNMI SubscribeRequest和遥测195
4.4.6 YANG RPC、动作和通知196
专家访谈196
与Kent Watsen的问答196
小结197
参考资料198
第5章 对遥测的阐释200
5.1 导言200
5.2 数据模型驱动的遥测200
5.3 从SNMP转向遥测202
5.4 遥测的使用案例205
5.5 遥测组件205
5.5.1 架构206
5.5.2 传输讨论:监控与事件207
5.5.3 订阅类型:变动与定期208
5.5.4 拨入模式和拨出模式210
5.6 遥测标准机制210
5.6.1 NETCONF事件通知211
5.6.2 IETF YANG订阅212
5.6.3 IETF YANG Push与OpenConfig:一些历史215
5.6.4 OpenConfig流式遥测216
专家访谈216
与Alex Clemm的问答216
小结219
参考资料219
注释220
第6章 YANG数据模型在行业中的发展221
6.1 导言221
6.2 起点:IETF221
6.3 在整个行业中拥抱YANG227
6.4 OpenConfig YANG模型231
6.5 需要行业协调234
6.6 互操作性测试235
6.7 为特定功能实现一个以上的YANG模型236
专家访谈238
与Carl Moberg的问答238
小结240
参考资料240
注释240
第7章 自动化与数据模型、相关元数据及工具一样好
译者序
前言
致谢
作者简介
技术审校者简介
第1章 网络管理世界必须改变:
你为什么要关心这件事1
1.1 导言1
1.2 行业发生了变化:趋势是什么4
1.2.1 缩短部署时间4
1.2.2 CLI不再是标准(无法自动化的功能不应存在)5
1.2.3 硬件商品化和解耦7
1.2.4 DevOps时代9
1.2.5 软件定义网络11
1.2.6 网络功能虚拟化12
1.2.7 弹性云:按需付费13
1.2.8 数据模型驱动的管理14
1.2.9 数据模型驱动的遥测16
1.2.10 基于意图的网络17
1.2.11 软件正在吞噬世界19
1.3 现有网络管理实践和相关限制19
1.3.1 CLI:这是API吗19
1.3.2 SNMP:用于监控但不用于配置21
1.3.3 NetFlow和IPFIX:主要用于流记录27
1.3.4 syslog:无结构化数据30
1.4 数据模型是自动化的关键32
1.4.1 信息模型与数据模型的差异32
1.4.2 用不同的数据模型管理网络的挑战33
专家访谈40
与Victor Kuarsing的问答40
与Russ White的问答42
小结43
参考资料44
注释44
第2章 数据模型驱动的管理46
2.1 起因:一套新的要求46
2.2 网络管理已死,网络管理万岁49
2.3 YANG:数据建模语言50
2.4 自动化的关键?数据模型52
2.4.1 YANG和运维人员的需求53
2.4.2 良好数据模型的属性54
2.4.3 不同类型的YANG模块55
2.4.4 从MIB模块映射YANG对象56
2.5 管理架构57
2.6 数据模型驱动的管理组件58
2.7 编码(协议绑定和序列化)61
2.7.1 XML62
2.7.2 JSON62
2.7.3 Google protobuf63
2.7.4 CBOR63
2.8 服务器架构:数据存储64
2.9 协议65
2.9.1 NETCONF65
2.9.2 RESTCONF68
2.9.3 gNMI(gRPC)69
2.9.4 CoMI70
2.10 编程语言70
2.11 遥测71
2.12 使用NETCONF管理网络72
专家访谈76
与Jürgen Sch?nw?lder的问答76
小结77
参考资料77
注释78
第3章 对YANG的阐释80
3.1 导言80
3.2 描述数据世界81
3.2.1 准确描述数据84
3.2.2 将数据归类89
3.3 描述可能的事件95
3.3.1 动作和RPC95
3.3.2 通知98
3.4 区分状态数据与配置数据99
3.5 约束使事情有意义104
3.5.1 强制性和默认数据107
3.5.2 条件内容108
3.5.3 正确跟随指针109
3.5.4 不考虑模式节点112
3.6 增扩、扩展和可能的偏离122
3.6.1 扩展YANG126
3.6.2 偏离127
3.7 网络管理数据存储架构129
专家访谈132
与Martin Bj?rklund的问答132
小结134
参考资料135
第4章 对NETCONF、RESTCONF和gNMI的阐释137
4.1 导言137
4.2 NETCONF138
4.2.1 基本原理138
4.2.2 XML标签、属性和命名空间140
4.2.3 RPC机制144
4.2.4 消息框架146
4.2.5 消息概述149
4.2.6 hello消息149
4.2.7 get-config消息151
4.2.8 edit-config消息153
4.2.9 get消息157
4.2.10 RPC和动作160
4.2.11 通知161
4.2.12 更多NETCONF操作164
4.2.13 NMDA操作get-data和edit-data164
4.3 RESTCONF165
4.3.1 REST原则165
4.3.2 RESTCONF与NETCONF对比166
4.3.3 查找RESTCONF服务器URL168
4.3.4 阅读和导航RESTCONF资源169
4.3.5 使用RESTCONF创建和更新配置175
4.3.6 动作183
4.3.7 通知184
4.4 OpenConfig和gNMI186
4.4.1 gRPC187
4.4.2 gNMI CapabilityRequest187
4.4.3 gNMI GetRequest188
4.4.4 gNMI SetRequest191
4.4.5 gNMI SubscribeRequest和遥测195
4.4.6 YANG RPC、动作和通知196
专家访谈196
与Kent Watsen的问答196
小结197
参考资料198
第5章 对遥测的阐释200
5.1 导言200
5.2 数据模型驱动的遥测200
5.3 从SNMP转向遥测202
5.4 遥测的使用案例205
5.5 遥测组件205
5.5.1 架构206
5.5.2 传输讨论:监控与事件207
5.5.3 订阅类型:变动与定期208
5.5.4 拨入模式和拨出模式210
5.6 遥测标准机制210
5.6.1 NETCONF事件通知211
5.6.2 IETF YANG订阅212
5.6.3 IETF YANG Push与OpenConfig:一些历史215
5.6.4 OpenConfig流式遥测216
专家访谈216
与Alex Clemm的问答216
小结219
参考资料219
注释220
第6章 YANG数据模型在行业中的发展221
6.1 导言221
6.2 起点:IETF221
6.3 在整个行业中拥抱YANG227
6.4 OpenConfig YANG模型231
6.5 需要行业协调234
6.6 互操作性测试235
6.7 为特定功能实现一个以上的YANG模型236
专家访谈238
与Carl Moberg的问答238
小结240
参考资料240
注释240
第7章 自动化与数据模型、相关元数据及工具一样好
前 言
目标和方法
整个网络行业正面临着用自动化实现规模化和更快发展的压力。本书介绍如何利用YANG来释放网络自动化的力量。
自动化面临许多障碍。主要的障碍是需要网络运维人员和软硬件提供商之间达成共识。要达成共识,迫切需要做到三件事情。
,参与者需要有一种共同语言。本书提供通用的术语、模型以及对用例和工具的认识,以便参与者能够进行有效的交流。
第二,自动化并不是让计算机循环运行。网络自动化是一个非常棘手的问题,是分布式、并行、实时、高可用、性能敏感、安全敏感的核心控制问题,需要一个系统架构。该系统架构已经存在,但并不为人所知。许多经验丰富的专业人士对该系统架构的关键部分也缺少了解。本书描绘了一幅蓝图,让各方都能了解自己那一部分适合放在哪里以及如何实现共同目标。
第三,你可能听过这句话:“知道怎么做的人会被录用,而知道为什么这么做的人会成为经理”。了解选择架构的原因是了解架构本身的核心组成部分。本书提供了这个背景。
通过提供丰富的背景知识与案例,解释“为什么”,以及提供大量动手实践的机会,我们希望本书能对网络专业人士以及整个行业的发展有所帮助。
谁应该读这本书
本书为所有对网络自动化感兴趣的网络专业人员设计。无论你是网络运维人员、DevOps工程师、网络软件开发人员、网络编排工程师、NMS/OSS架构师、服务工程师或其中任何一类人员的经理,本书都是适用的。如果你希望从基于命令行界面的管理过渡到数据模型驱动的管理,如果你是需要通过某些可编程性技能来补充网络技能以确保紧跟行业发展的工程师,那么本书非常适合你。
拥有网络管理知识的人将从本书中受益匪浅。同时,想要采用与管理存储和计算相同的方式来管理网络的软件工程师也将从阅读本书中受益。
显然有不同的方法通读本书。每章开头总结目标受众和主要内容。通读该介绍有助于找到适合你的内容。随着事业的成长和不断学习,你可能会发现你将不断地回头阅读本书的其他内容。
本书的组织方式
本书可以连贯地从头读到尾。然而其设计灵活,可以跳过一些章节直接阅读你感兴趣的内容。
第1章提供NETCONF和YANG诞生的背景。
第2章从更广泛的视角介绍网络管理和自动化需求以及解决方案的层级和组件。推荐所有人阅读该章。
第3章分阶段开发用于业务用例的YANG模型,并随着解决方案的进展引入、解释新的结构。这些阶段辅以GitHub项目,想完全理解上述内容的人可将其作为实际操作素材。该章是本书的核心内容,但如果你已经开发了许多YANG模块,可以跳过该章向后阅读。另外,经验丰富的YANG开发者也可以快速浏览该章以找到一些新的有用的详述。
第4章对传输协议进行解释,研究基本操作和编码。在许多实例中对NETCONF、RESTCONF和gNMI进行介绍和对比。每个实例都可以在GitHub的配套项目中复制,供有志于动手操作实践的读者参考。
第5章涵盖遥测、自动化反馈环路机制。反馈是控制系统的重要组成部分,但遥测仍是一个正在建设的领域,现在许多解决方案尚未用到遥测。
第6章涵盖去哪里寻找YANG模型,与哪些标准定义机构合作,使用哪些工具,以及如果一个功能有多个模型该怎么做。
第7~9章都涵盖了YANG模型的元数据和工具,但从三个不同的角度进行阐述。
第7章涵盖所有人都需要使用的基本工具和模块信息。
第8章适合YANG模块作者阅读。
第9章适合自动化应用程序开发人员阅读。
第10章包含完整的自动化过程。该章从一个业务案例开始,创建一个service-YANG模型,添加一个服务实现,通过NETCONF连接一组设备,创建一个服务实例,并详细查看消息来回传递时会发生什么。然后修改并撤销服务级别更改。阅读该章的所有内容后,你会发现你已经完全理解了本书的全部内容。该章将提供良好的全方位模型驱动网络自动化概览。
第11章基于作者多年的YANG建模经验,提供包含有关如何设计和如何避免设计YANG模块的诸多建议。
整个网络行业正面临着用自动化实现规模化和更快发展的压力。本书介绍如何利用YANG来释放网络自动化的力量。
自动化面临许多障碍。主要的障碍是需要网络运维人员和软硬件提供商之间达成共识。要达成共识,迫切需要做到三件事情。
,参与者需要有一种共同语言。本书提供通用的术语、模型以及对用例和工具的认识,以便参与者能够进行有效的交流。
第二,自动化并不是让计算机循环运行。网络自动化是一个非常棘手的问题,是分布式、并行、实时、高可用、性能敏感、安全敏感的核心控制问题,需要一个系统架构。该系统架构已经存在,但并不为人所知。许多经验丰富的专业人士对该系统架构的关键部分也缺少了解。本书描绘了一幅蓝图,让各方都能了解自己那一部分适合放在哪里以及如何实现共同目标。
第三,你可能听过这句话:“知道怎么做的人会被录用,而知道为什么这么做的人会成为经理”。了解选择架构的原因是了解架构本身的核心组成部分。本书提供了这个背景。
通过提供丰富的背景知识与案例,解释“为什么”,以及提供大量动手实践的机会,我们希望本书能对网络专业人士以及整个行业的发展有所帮助。
谁应该读这本书
本书为所有对网络自动化感兴趣的网络专业人员设计。无论你是网络运维人员、DevOps工程师、网络软件开发人员、网络编排工程师、NMS/OSS架构师、服务工程师或其中任何一类人员的经理,本书都是适用的。如果你希望从基于命令行界面的管理过渡到数据模型驱动的管理,如果你是需要通过某些可编程性技能来补充网络技能以确保紧跟行业发展的工程师,那么本书非常适合你。
拥有网络管理知识的人将从本书中受益匪浅。同时,想要采用与管理存储和计算相同的方式来管理网络的软件工程师也将从阅读本书中受益。
显然有不同的方法通读本书。每章开头总结目标受众和主要内容。通读该介绍有助于找到适合你的内容。随着事业的成长和不断学习,你可能会发现你将不断地回头阅读本书的其他内容。
本书的组织方式
本书可以连贯地从头读到尾。然而其设计灵活,可以跳过一些章节直接阅读你感兴趣的内容。
第1章提供NETCONF和YANG诞生的背景。
第2章从更广泛的视角介绍网络管理和自动化需求以及解决方案的层级和组件。推荐所有人阅读该章。
第3章分阶段开发用于业务用例的YANG模型,并随着解决方案的进展引入、解释新的结构。这些阶段辅以GitHub项目,想完全理解上述内容的人可将其作为实际操作素材。该章是本书的核心内容,但如果你已经开发了许多YANG模块,可以跳过该章向后阅读。另外,经验丰富的YANG开发者也可以快速浏览该章以找到一些新的有用的详述。
第4章对传输协议进行解释,研究基本操作和编码。在许多实例中对NETCONF、RESTCONF和gNMI进行介绍和对比。每个实例都可以在GitHub的配套项目中复制,供有志于动手操作实践的读者参考。
第5章涵盖遥测、自动化反馈环路机制。反馈是控制系统的重要组成部分,但遥测仍是一个正在建设的领域,现在许多解决方案尚未用到遥测。
第6章涵盖去哪里寻找YANG模型,与哪些标准定义机构合作,使用哪些工具,以及如果一个功能有多个模型该怎么做。
第7~9章都涵盖了YANG模型的元数据和工具,但从三个不同的角度进行阐述。
第7章涵盖所有人都需要使用的基本工具和模块信息。
第8章适合YANG模块作者阅读。
第9章适合自动化应用程序开发人员阅读。
第10章包含完整的自动化过程。该章从一个业务案例开始,创建一个service-YANG模型,添加一个服务实现,通过NETCONF连接一组设备,创建一个服务实例,并详细查看消息来回传递时会发生什么。然后修改并撤销服务级别更改。阅读该章的所有内容后,你会发现你已经完全理解了本书的全部内容。该章将提供良好的全方位模型驱动网络自动化概览。
第11章基于作者多年的YANG建模经验,提供包含有关如何设计和如何避免设计YANG模块的诸多建议。
评论
还没有评论。