首页>参考读物>计算机科学与技术>计算机网络

基于YANG的可编程网络:用YANG、NETCONF、RESTCONF和gNMI实现网络自动化架构
作者 : [美]贝诺特·克莱斯(Benoît Claise),[美]乔·克拉克(Joe Clarke),[美]简·林德布拉德(Jan Lindblad) 著
译者 : 闫林 王卫斌 张茂鹏 毛磊 胡捷 等译
出版日期 : 2021-09-17
ISBN : 978-7-111-69127-3
定价 : 149.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 418
开本 : 16
原书名 : Network Programmability with YANG: The Structure of Network Automation with YANG, NETCONF, RESTCONF, and gNMI
原出版社: Pearson Education Inc.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

整个网络行业正面临着自动化的压力,以实现规模化和更快的发展,本书介绍如何利用YANG来释放网络自动化的力量,提供了通用的术语、模型,以及对用例和工具的认识,以便能够进行有效地交流。通过提供丰富的背景、案例以及解释“为什么”和提供大量动手实践的机会,本书旨在为网络专业人士以及整个行业的发展提供帮助。

图书特色

WU

图书前言

目标和方法
整个网络行业正面临着用自动化实现规模化和更快发展的压力。本书介绍如何利用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模块的诸多建议。

上架指导

计算机\网络

封底文字

通信网络的IT化、自动化和云化是网络发展的重要方向。本书是该方向系统化技术阐述的专业书籍,一本实操性强的工具书。本书强调模型驱动的API,以及运用新的底层传输协议,理论结合实践,帮助我们构建可编程的网络,实现网络自动化管理。无论你是网络管理员、软件开发工程师、DevOps工程师,还是OSS架构师,本书都可以成为你依赖的工具。
—— 冯俊兰
Linux网络基金会董事会主席,中国人工智能产业发展联盟副理事长
中国移动首席科学家、人工智能与智慧运营研发中心总经理

YANG、NETCONF、RESTCONF和gRPC/gNMI等是软件定义网络的关键技术,这些技术正在推动网络管理的变革。这本书的诞生正当其时。本书指导读者建立一套基于数据模型驱动的可以自动化管理的网络,是YANG领域的重要专著。
—— 龙姝明
陕西理工大学教授

在网络技术快速发展的今天,本书紧跟时代,全面分享了新的基于YANG的建模语言,深入研究了NETCONF、RESTCONF和gNMV/gRPC等传输协议,帮助网络运维人员、模块开发工程师、网络架构师、软件架构师从多个角度了解模型、元数据和相关工具,既有理论,又重实践,帮助你高效构建一个软件定义的、自动化管理的网络架构,满足业务快速发展的需求。本书是本领域的权威专著,帮助你成为值得信赖、受人敬重的网络专家。
—— 李银松
深圳市通信学会常务副理事长

本书是一本非常权威、极有价值的“基于YANG的可编程网络”专业学习资料。本书用通俗易懂的语言把复杂的技术原理和作者丰富的实践经验娓娓道来,逻辑严谨,内容深入浅出,还有大量完整代码实例,每章都提供了丰富的学习资料及专家访谈,能扩展你的眼界和知识范围,帮助你掌握YANG、NETCONF、RESTCONF和gNMI等相关技术,是网络技术领域不可多得的佳作。
—— 王津银
优维科技CEO、互联网运维技术专家

基础设施即代码推动了众多行业的云化转型,一个可编程的网络——网络设施即代码,将推动网络的云化转型,使云网融合成为热点。本书系统介绍了基于YANG的可编程网络相关技术的发展,包括基本原则、原理、框架、方法和技巧等,有大量案例和专家最佳实践分享,能帮助你快速建立软件定义的自动化管控的网络基础设施,动态满足业务需求,充分释放网络的价值。
—— 智 锦
杭州云霁科技有限公司CEO,资深IT运维和云计算专家

译者序

新冠肺炎疫情的来袭冲击了人们正常的生产生活秩序:更多的网络会议取代了出差开会;更多的居家办公取代了现场办公;许多人无法回到家乡,只能通过视频聊天化解相思之苦。随着新技术浪潮的来临,智慧城市、智慧医疗、智能工厂、智慧家庭、智能汽车等由憧憬逐渐变为现实。这一切都离不开安全、可靠的网络。
软件定义网络的时代已然来临,它的发展离不开一系列技术的创新。YANG、NETCONF、RESTCONF和gRPC/gNMI等帮助我们实现网络的可编程性,助力我们用模型驱动的API和协议来实现网络自动化,以便更安全、更快捷、更可靠、更灵活地满足业务需求。
SDN相关技术在我国有广泛的应用。我们第一次看到备受尊敬的SDN技术开拓者Beno?t Claise、Joe Clarke和Jan Lindblad创作的这本书时,立刻被它全面的知识覆盖、深入的技术剖析和丰富的实践案例所吸引,它不愧是YANG技术领域公认的扛鼎之作。我们非常荣幸能够将它翻译成中文版而分享给更多的读者!
本书的翻译团队共七人,除了我之外,还有王卫斌、张茂鹏、毛磊、胡捷、杜江云和李成元。团队成员都是网络通信领域的资深专家,其中王卫斌老师是网络领域顶尖的专家,他的参与让我们如虎添翼。
为了确保译稿的质量,我们追根溯源,查阅了大量国内外文献,团队成员紧密合作,进行了多轮交叉校对,付出了极大的努力。我们利用休息时间进行了翻译工作,这离不开各自家人的理解和支持,在此向各位团队成员的家人表示由衷的感谢!
在翻译的过程中,我们得到了机械工业出版社华章分社刘锋编辑的帮助,以及中兴通讯股份有限公司的领导和相关部门同事的大力支持,在此一并表示感谢!
我们的翻译难免有缺陷和不足,欢迎广大读者不吝赐教:yan.lin2@zte.com.cn。

闫林
2021年8月23日

推荐序

传统网络世界是水平开放的,每个网元都可以和周边网元进行互联。网络在垂直方向上却是“相对封闭”的,在垂直方向开发和部署业务应用相对困难。而在计算机的世界里,不仅水平开放,同时也垂直开放,从下到上有硬件、驱动、操作系统、编程平台、应用软件等,程序员可以很方便地开发和部署各种应用。2009年美国斯坦福大学CLean?State研究组提出了软件定义网络(Software?Defined?Network,SDN),它是一种新型网络创新架构,可通过软件编程的形式定义和控制网络,被认为是网络领域的一场变革,也极大地推动了互联网的发展。SDN将整个网络的垂直方向变得开放、标准、可编程,让人们更容易、更高效地管控网络资源。要实现SDN,离不开一套全新的技术解决方案。YANG模型和NETCONF、RESTCONF以及gRPC/gNMI等协议为实现网络可编程性铺就了前行之路。
YANG(Yet Another Next Generation)数据建模语言功能强大,支持定义列表、字典甚至复杂的数据结构,还支持约束、枚举、引用导入、版本管理、命名空间等。YANG模型用结构化语言描述了网络世界,在新的网管协议(NETCONF、RESTCONF、gRPC、gNMI等)的基础上定义了数据结构。因此,我们可以通过多种方式对网元进行方便灵活、安全可控的操作,这些都是基于数据结构良好的YANG模型来实现网络设备编程。这就是网络可编程之路—未来的网络是模型驱动的编程,即基于模型的可编程网络。
SDN的发展如火如荼,YANG和NETCONF、RESTCONF以及gRPC/gNMI的演进速度也很快,学习和掌握它们并非易事。本书的诞生正当其时,不仅全面介绍了YANG和NETCONF、RESTCONF、gRPC/gNMI等技术的最新发展,还提供了实用的技巧和大量实践案例,方便你全面深入地掌握这些知识,协助你用模型驱动的API和协议来实现网络自动化的全部功能。本书的问世是一件幸事,必将推动SDN在中国的普及和发展。

陈新宇
中兴通讯股份有限公司副总裁
2021年8月22日

图书目录

推荐序
译者序
前言
致谢
作者简介
技术审校者简介
第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章 自动化与数据模型、相关元数据及工具一样好:面向网络架构师和运维人员242
7.1 导言242
7.2 了解YANG模块的结构243
7.3 使用YANG Catalog查找合适的模块246
7.3.1 YANG Search247
7.3.2 模块树248
7.3.3 模块(元数据)详细信息249
7.3.4 使用YANG Suite从节点迁移到RPC和脚本252
7.4 与设备交互256
7.4.1 NETCONF工具256
7.4.2 RESTCONF工具274
7.4.3 遥测工具279
7.4.4 商业产品284
专家访谈285
与Einar Nilsen-Nygaard的问答285
小结288
注释288
第8章 自动化与数据模型、相关元数据及工具一样好:面向模块作者290
8.1 导言290
8.2 设计模块290
8.2.1 向他人学习291
8.2.2 编译和验证模块293
8.2.3 测试模块294
8.2.4 共享模块的元数据300
8.3 理解模块的影响302
专家访谈303
与William Lupton的问答303
小结304
注释305
第9章 自动化与数据模型、相关元数据及工具一样好:面向应用开发人员306
9.1 导言306
9.2 与YANG模块合作307
9.2.1 集成YANG Catalog元数据307
9.2.2 嵌入pyang310
9.2.3 pyang插件312
9.2.4 利用libyang解析YANG315
9.3 与网络互动317
9.3.1 使用ncclient的NETCONF317
9.3.2 使用libnetconf2的NETCONF客户端和服务器321
9.3.3 与RESTCONF服务器交互322
9.4 YANG语言的原生化323
9.4.1 YDK323
9.4.2 pyangbind327
专家访谈330
与Radek Krej?í的问答330
小结330
注释331
第10章 使用NETCONF和YANG332
10.1 导言332
10.2 故事情节333
10.3 自上而下的服务模型334
10.4 自下而上的设备模板340
10.5 连接点的服务逻辑342
10.6 在设备上设置NETCONF345
10.7 发现设备上的内容347
10.8 管理服务352
10.9 管理器与设备的同步358
10.10 全网范围事务362
专家访谈369
与Kristian Larsson的问答369
小结372
第11章 YANG模型设计373
11.1 导言373
11.2 建模策略373
11.2.1 入门373
11.2.2 你就是四星级将军374
11.3 YANG建模技巧375
11.3.1 命名模块375
11.3.2 发布模块376
11.3.3 选择YANG标识符377
11.3.4 接受空配置377
11.3.5 使用leafref378
11.3.6 注意XPath特性379
11.3.7 枚举和其他379
11.3.8 选择主键380
11.3.9 空类型和布尔类型382
11.3.10 重用分组382
11.3.11 偏离标准YANG模块382
11.3.12 瞬态配置和其他依赖项383
11.3.13 增强YANG模型383
11.3.14 anyxml和anydata类型384
11.4 常见的YANG错误384
11.4.1 不明确的optional leaf384
11.4.2 缺失范围385
11.4.3 过度使用字符串385
11.4.4 错误的字符串模式386
11.4.5 无效的空配置387
11.4.6 使用约束时出现的误解388
11.4.7 缺少简单的约束389
11.4.8 误入歧途390
11.4.9 断开连接的多键leafref391
11.4.10 一个/任何一个/所有混合在一起394
11.4.11 XPath表达式的性能395
11.5 向后兼容性396
11.5.1 规则与保持相关性397
11.5.2 工具399
专家访谈399
与Andy Bierman的问答399
小结401
参考资料402

教学资源推荐
作者: [印度] B.S. 马努基(B.S.Manoj) 阿布舍克·查克拉博蒂(Abhishek Chakraborty) 拉胡尔·格(Rahul Singh) 著
作者: 王志文,陈妍,夏秦
作者: 陈庆章 王子仁 主编 王英姿 宦若虹 毛科技 参编
作者: 陈鸣 李兵 雷磊 编著
参考读物推荐