猜你喜欢
云数据中心网络与SDN:技术架构与实现

云数据中心网络与SDN:技术架构与实现

书籍作者:张晨 ISBN:9787111591214
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2562
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
全书讲解了4个方面的内容。1.对SDDCN的背景知识进行介绍,主要包括传统的数据中心网络和SDN,并对SDDCN的顶层设计进行概括性的介绍。2.对SDDCN的典型的商用、开源方案进行具体的分析,包括技术背景、架构设计以及各方案的横向测评。对于一些开源的SDDCN解决方案还会深入地剖析其代码实现。3.从学术界的角度出发,对SDDCN未来的发展方向进行展望。4.对与SDDCN的外延技术进行分析,如容器网络和数据平面技术等。
前言
前  言 Preface为什么要写这本书这本书的写作前前后后花了两年多的时间,我曾无数次地想过会有那么一个周末的下午,洋洋洒洒地写着前言,每念及于此,总有一种激扬文字、挥斥方遒的感觉。到了这一天,酝酿多时后坐在桌前,先是写了一些行业点评,虽然气势磅礴但不够接地气,反反复复地修改却始终没能令自己满意。最后想着,反正写前言就是在和读者聊天,也没有必要给书里的内容扣个大大的帽子,倒不如来说说情怀、谈谈理想,就当是给自己这几年的青春做一个注脚吧。
最开始其实并没有写书的打算,做研究的动力一方面是来源于对网络技术的兴趣与热爱,另一方面,坦白讲,那个时候在数据中心网络这块想到了一些新的点子,希望能够借着SDN的东风把想法做成实打实的产品。于是,最初是带着做调研的想法,开始对云数据中心SDN的技术与产品进行梳理。没有想到的是,这调研一做竟是两年多的时间,这两年里既看到了很多原来自己并不了解的技术,数次感叹于知识海洋的广袤无垠,也目睹了自己的一些想法被别人进行了变现,无奈地明白做产品需要分秒必争。
确立写书的想法是在2016年,实际上当时SDN圈子的风潮已经开始从云数据中心转向了企业级广域网,各路厂商、创业公司和媒体都已经开始围着SDWAN的概念在转了。和业界的一些同行聊过之后,其中有一部分人认为云数据中心的网络已经没什么值得研究的了。听多了类似的说法,给我个人的感觉是:SDN的出现既让网络这个圈子变得时髦,又让圈子里的人变得浮躁。于是,我决定把调研的内容写成一本书,希望能够使读者了解到,数据中心SDN在技术上还远远没有达到标准化,在产品上还有较大的提升空间,很多同行仍然在全力地投身于相关技术的演进和产品的迭代中。跟随先进的理念固然重要,但是踏踏实实地做事才是行业能够得以长久发展的关键。
本书还有另外一个出发点,是由于传统网络与SDN的纠葛长久以来都没能真正化解开来,很多人还是抱着非此即彼的错误观点。因此本书在介绍各个SDN技术和产品的时候,都会力争把控制和转发的逻辑说清楚,能分析到数据包处理流程这个层面的,都会加以详细分析。这么做的目的,是希望读者能够明白SDN虽然改变了网络的交付模式,但是API远远不是SDN的全部,网络架构本身的设计仍然是不可动摇的技术基础。另外,在一些情况下,SDN并不是解决问题的最好方式,因此本书还介绍了一些非SDN的数据中心网络技术,希望能够帮助读者拓宽技术视野,打开新的研究思路。
成书的过程中,最大的感悟是新技术发展得太快,很多章节的内容都不得不多次进行更新与修订。ICT的融合为传统的通信行业带来了前所未有的机遇,同时也要求我们能够调整好学习的心态。回顾这两年多的时间,几乎每日每夜都把自己泡在了各种各样的资料中,读了厂商不计其数的产品手册和技术文档,一行一行地去啃开源平台的代码,其中不乏很多有价值的内容,但由于成书时间与篇幅上的限制未能在书中进行介绍,多少还是有些遗憾吧。
同时,伴随着知识的逐步丰富,我也更加真切地体会到了个人的渺小。学习永无止境,不忘初心,方得始终,在探索技术的路上愿与诸君共勉。
本书特色本书涉及云数据中心网络很多块的内容,主要包括传统技术、商用SDN方案、开源SDN方案以及相关的学术论文,覆盖了目前绝大部分的主流技术以及一些其他较为新颖的技术,是目前市面上少数能够切入SDN某一个具体行业应用场景,并对相关技术和产品进行系统性介绍的书籍之一。
实际上,把本书中每一块的内容拿出来都能单独写一本书。不过,为了让读者能够通过一本书,迅速并全面地掌握这些块内容,因此在写作的过程中就不得不去抠每一句话,甚至每一个字和词,力争简短、清晰、准确地呈现出核心的技术内容。如果相关行业的技术宽度为100,每种技术的深度为100,本书希望能够同时在宽度和深度上达到80+的水平,做到“样样通”而“样样不松”。
同时,为了能够捋顺这些五花八门的技术间的关系,行文过程中还对部分技术的产生背景与演进历程进行了介绍,希望读者在读过本书后,做到既能“知其然”,又能“知其所以然”。
读者对象CTO、CIO数据中心架构师SDN架构师SDN产品经理SDN研发人员高校与科研院所网络研究人员其他对网络技术感兴趣的人员如何阅读本书阅读本书前,需要读者对传统网络技术和SDN基础知识有一定的了解。
第1章会对云数据中心网络演进的技术主线进行介绍,主要包括从3-Tier架构向Leaf-Spine架构的演进、从xSTP向大二层的演进、从传统网络向SDN的演进,以及传统网络的最新进展等内容。第1章可以看作本书的背景知识,用于引出后面章节对于数据中心SDN的介绍,讲述的过程中会以技术特征为分类依据,介绍厂商相关的私有技术与产品,以及IEEE、IETF相关的技术标准。第1章中所介绍的一些技术目前已经退出了历史舞台,为了保证讲述的完整性仍然保留了相关的介绍,读者可以有选择地进行阅读。
第2章将以杂谈的形式对SDN的本质进行论述,包括转发与控制分离、网络可编程以及集中式控制,并对SDN在IT层面的设计思路进行了总结。通过第2章的内容,希望可以帮
目录
Contents?目  录
技术审校
本书赞誉
前言
第1章 云数据中心网络演进 1
1.1 传统的3-Tier架构 1
1.2 设备“多虚一”——虚拟机框 2
1.2.1 Cisco VSS 2
1.2.2 Juniper VC与H3C IRF 4
1.3 高级STP欺骗——跨设备链路聚合 4
1.3.1 Cisco vPC 4
1.3.2 Juniper MC-LAG和Arista M-LAG 6
1.4 变革3-Tier——向Leaf-Spine演进 6
1.5 初识大二层 9
1.6 插叙——虚拟机的接入 10
1.6.1 VEB 10
1.6.2 Cisco VN-TAG 11
1.6.3 VEPA 12
1.6.4 VEB性能优化 13
1.7 消除STP——Underlay L2MP 14
1.7.1 TRILL 15
1.7.2 SPB 17
1.8 Cisco私有的大二层——FabricPath 19
1.8.1 整体设计 19
1.8.2 控制与转发过程分析 21
1.8.3 其他技术细节 25
1.9 Juniper私有的大二层——QFabric 25
1.9.1 整体设计 26
1.9.2 集中式的控制机制 29
1.9.3 控制与转发过程分析 30
1.10 Brocade私有的大二层——VCS 32
1.10.1 整体设计 33
1.10.2 控制与转发过程分析 33
1.10.3 其他技术细节 35
1.11 跨越数据中心的二层——DCI优化 36
1.11.1 Cisco OTV 36
1.11.2 HUAWEI EVN与H3C EVI 38
1.12 端到端的二层——NVo3的崛起 39
1.12.1 VxLAN 39
1.12.2 NvGRE 41
1.12.3 STT 42
1.12.4 Geneve 43
1.13 新时代的开启——SDN入场 45
1.14 Overlay最新技术——EVPN 46
1.14.1 传统网络对SDN的反击 46
1.14.2 组网与数据模型 47
1.14.3 控制信令的设计 48
1.15 Underlay最新技术——Segment Routing 55
1.15.1 SID与Label 56
1.15.2 控制与转发机制 57
1.15.3 SDN 2.0? 60
1.16 本章小结 62
第2章 杂谈SDN 63
2.1 SDN与传统网络——新概念下的老问题 63
2.2 转控分离——白盒的曙光 66
2.2.1 芯片级开放 68
2.2.2 操作系统级开放 71
2.2.3 应用级开放 75
2.2.4 机箱级开放 76
2.2.5 白盒的“通”与“痛” 77
2.3 网络可编程——百家争鸣 78
2.3.1 芯片可编程 78
2.3.2 FIB可编程 80
2.3.3 RIB可编程 83
2.3.4 设备配置可编程 85
2.3.5 设备OS和控制器可编程 88
2.3.6 业务可编程 88
2.4 集中式控制——与分布式的哲学之争 89
2.4.1 在功能上找到平衡点 90
2.4.2 在扩展性和可用性上找到平衡点 91
2.5 回归软件本源——从N到D再到S 94
2.5.1 模块管理 94
2.5.2 模块间通信 95
2.5.3 接口协议适配 96
2.5.4 数据库 97
2.5.5 集群与分布式 98
2.5.6 容器与微服务 99
2.6 本章小结 100
第3章 SDDCN概述 101
3.1 需求 101
3.1.1 自动化与集中式控制 101
3.1.2 应用感知 103
3.2 整体架构 105
3.2.1 实现形态 105
3.2.2 功能设计 107
3.3 关键技术 107
3.3.1 网络边缘 107
3.3.2 网络传输 110
3.3.3 服务链 112
3.3.4 可视化 115
3.3.5 安全 117
3.3.6 高可用 120
3.4 本章小结 122
第4章 商用SDDCN解决方案 123
4.1 VMware NSX 123
4.1.1 从NVP到NSX 124
4.1.2 NVP控制平面设计 125
4.1.3 NVP数据平面设计 125
4.1.4 NVP转发过程分析 126
4.1.5 NSX-V整体架构 128
4.1.6 NSX-V管理平面设计 129
4.1.7 NSX-V控制平面设计 130
4.1.8 NSX-V数据平面设计 132
4.1.9 NSX-V转发过程分析 132
4.1.10 NSX-MH与NSX-T 139
4.2 Cisco ACI 140
4.2.1 整体架构 141
4.2.2 管理与控制平面设计 142
4.2.3 数据平面设计 145
4.2.4 转发过程分析 152
4.2.5 议ACI与SDN 154
4.3 Cisco VTS 155
4.3.1 整体架构 156
4.3.2 管理与控制平面设计 158
4.3.3 数据平面设计 159
4.4 Juniper Contrail 162
4.4.1 整体架构 164
4.4.2 管理与控制平面设计 167
4.4.3 数据平面设计 173
4.4.4 转发过程分析 175
4.5 Nuage VCS 176
4.5.1 整体架构 178
4.5.2 管理平面设计 179
4.5.3 控制平面设计 179
4.5.4 数据平面设计 180
4.6 Arista EOS与CloudVison 181
4.6.1 整体架构 183
4.6.2 管理与控制平面设计 185
4.6.3 数据平面设计 187
4.7 HUAWEI AC-DCN 187
4.7.1 整体架构 187
4.7.2 管理平面设计 189
4.7.3 控制平面设计 189
4.7.4 数据平面设计 193
4.8 Bigswitch BCF与BMF 194
4.8.1 整体架构 195
4.8.2 BCF控制平面设计 196
4.8.3 BMF控制平面设计 201
4.8.4 数据平面设计 205
4.9 Midokura Midonet 207
4.9.1 整体架构 207
4.9.2 控制平面设计 210
4.9.3 数据平面设计 213
4.10 PLUMgrid ONS 217
4.10.1 整体架构 217
4.10.2 数据平面设计 219
4.10.3 控制平面设计 221
4.10.4 转发过程分析 222
4.11 Plexxi Switch与Control 225
4.11.1 整体架构 225
4.11.2 数据平面设计 227
4.11.3 控制平面设计 229
4.12 Pluribus 230
4.12.1 Server Switch设计 231
4.12.2 Netvisor设计 232
4.12.3 再议数据中心SDN 235
4.13 本章小结 236
第5章 开源SDDCN:OpenStack Neutron的设计与实现 237
5.1 网络基础 237
5.1.1 网络结构与网络类型 238
5.1.2 VLAN网络类型中流量的处理 239
5.2 软件架构 242
5.2.1 分布式组件 242
5.2.2 Core Plugin与Service Plugin 243
5.3 WSGI与RPC的实现 245
5.3.1 Neutron Server的WSGI 245
5.3.2 Neutron Plugin与Neutron Agent间的RPC 247
5.4 虚拟机启动过程中网络的相关实现 248
5.4.1 虚拟机的启动流程 248
5.4.2 Nova请求Port资源 250
5.4.3 Neutron生成Port资源 250
5.4.4 Neutron将Port相关信息通知给DHCP Agent 252
5.4.5 DHCP Agent将Port相关信息通知给DHCP Server 252
5.4.6 Nova拉起虚拟机并通过相应的Port接入网络 252
5.5 OVS Agent的实现 253
5.5.1 网桥的初始化 253
5.5.2 使能RPC 255
5.6 OVS Agent对Overlay L2的处理 256
5.6.1 标准转发机制 256
5.6.2 arp_responder 258
5.6.3 l2_population 260
5.7 OVS Agent对Overlay L3的处理 261
5.7.1 标准转发机制 261
5.7.2 DVR对东西向流量的处理 262
5.7.3 DVR对南北向流量的处理 267
5.8 Security-Group与FWaaS 268
5.8.1 Neutron-Security-Group 268
5.8.2 FWaaS v1 269
5.8.3 FWaaS v2 269
5.9 LBaaS 270
5.9.1 LBaaS v1 270
5.9.2 LBaaS v2 271
5.9.3 Octavia 271
5.10 TaaS 272
5.11 SFC 274
5.12 L2-Gateway 275
5.13 Dynamic Routing 277
5.14 VPNaaS 279
5.15 Networking-BGPVPN与BagPipe 280
5.15.1 Networking-BGPVPN 280
5.15.2 BagPipe 280
5.16 DragonFlow 282
5.17 OVN 287
5.18 本章小结 290
第6章 开源SDDCN:OpenDaylight相关项目的设计与实现 291
6.1 架构分析 291
6.1.1 AD-SAL架构 292
6.1.2 MD-SAL架构 293
6.1.3 YANG和YANG-Tools 294
6.1.4 MD-SAL的内部设计 294
6.1.5 MD-SAL的集群机制 296
6.1.6 其他 298
6.2 OpenFlow的示例实现 298
6.2.1 OF交换机的上线 299
6.2.2 l2switch获得PacketIn 301
6.2.3 l2switch下发PacketOut和FlowMod 302
6.3 OpenStack Networking-ODL 303
6.3.1 v1 303
6.3.2 v2 304
6.4 Neutron-Northbound的实现 306
6.4.1 对接Networking-ODL 306
6.4.2 RESTful请求的处理示例 306
6.5 Netvirt简介 307
6.5.1 OVSDB-Netvirt和VPNService的合并 307
6.5.2 Genius 309
6.6 Netvirt-OVSDB-Neutron的实现 311
6.6.1 net-virt分支 311
6.6.2 net-virt-providers分支 317
6.7 Netvirt-VPNService的实现 321
6.7.1 elanmanager 323
6.7.2 vpnmanager 326
6.8 SFC的实现 328
6.8.1 sfc-openflow-renderer分支 328
6.8.2 sfc-scf-openflow分支 335
6.9 VTN Manager的实现 336
6.9.1 neutron分支 337
6.9.2 implementation分支 339
6.10 本章小结 342
第7章 开源SDDCN:ONOS相关项目的设计与实现 343
7.1 架构分析 343
7.1.1 分层架构 344
7.1.2 分层架构的实现 345
7.1.3 模块的开发 347
7.1.4 分层架构存在的问题 347
7.1.5 数据存储与集群 348
7.1.6 其他 349
7.2 OpenFlow的示例实现 349
7.2.1 OF交换机的上线 350
7.2.2 fwd获得PacketIn 352
7.2.3 fwd下发PacketOut和FlowMod 356
7.3 ONOSFW的实现 359
7.3.1 vtnmgr分支 359
7.3.2 sfcmgr分支 363
7.4 SONA的实现 365
7.4.1 openstacknode分支 366
7.4.2 openstacknetworking分支 368
7.5 CORD简介 371
7.5.1 R-CORD的架构 372
7.5.2 R-CORD的控制与转发机制 373
7.6 本章小结 376
第8章 学术界相关研究 377
8.1 拓扑 377
8.1.1 FatTree 377
8.1.2 VL2 379
8.1.3 DCell 380
8.1.4 FiConn 382
8.1.5 BCube 384
8.1.6 MDCube 385
8.1.7 CamCube 387
8.2 路由 388
8.2.1 Seattle 388
8.2.2 FatTree 391
8.2.3 VL2 393
8.2.4 PortLand 396
8.2.5 SecondNet 400
8.2.6 SiBF 401
8.2.7 SPAIN 402
8.2.8 WCMP 404
8.2.9 OF-based DLB 406
8.2.10 Flowlet与CONGA 406
8.2.11 Hedera 408
8.2.12 DevoFlow 409
8.2.13 MicroTE 409
8.2.14 Mahout 410
8.2.15 F10 410
8.2.16 DDC 411
8.2.17 SlickFlow 412
8.2.18 COXCast 413
8.2.19 Avalanche 415
8.3 虚拟化 416
8.3.1 NetLord 416
8.3.2 FlowN 418
8.3.3 FlowVisor 420
8.3.4 ADVisor 421
8.3.5 VeRTIGO 423
8.3.6 OpenVirteX 424
8.3.7 CoVisor 426
8.4 服务链 427
8.4.1 pSwitch 427
8.4.2 FlowTags 428
8.4.3 Simple 430
8.4.4 StEERING 432
8.4.5 OpenSCaaS 434
8.4.6 SPFRI 435
8.5 服务质量 437
8.5.1 NetShare 437
8.5.2 Seawall 438
8.5.3 GateKeeper 439
8.5.4 El