新書推薦:
《
朋党之争与北宋政治·大学问
》
售價:NT$
454.0
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:NT$
403.0
《
以爱为名的支配
》
售價:NT$
286.0
《
台风天(大吴作品,每一种生活都有被看见的意义)
》
售價:NT$
245.0
《
打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!)
》
售價:NT$
301.0
《
新时代硬道理 广东寻路高质量发展
》
售價:NT$
352.0
《
6S精益管理实战(精装版)
》
售價:NT$
458.0
《
异域回声——晚近海外汉学之文史互动研究
》
售價:NT$
500.0
|
編輯推薦: |
如果你想要学习或者构建一个现代化的云原生数据中心网络,或者想简单验证一下你对现代云原生数据中心网络的一些想法,那么这本书正是你所需要的。不管你是在搭建一个多租户的私有云,还是一个运行机器学习的网络,或者一个企业数据中心,本书作者都介绍了必要的步骤,以帮助你设计费用合理、高容量、易于管理、敏捷且可靠的数据中心。
本书是网络架构师、数据中心运营人员,以及网络和容器化应用开发人员的理想之选。书中有机地结合了理论知识与实践操作,介绍了构建和运维一个健壮的、可扩展的网络基础设施所需的架构和协议。本书将以一种厂商中立的方式来介绍网络设计。如果你对开放网络感兴趣,这本书也包含了许多使用FRR和Ansible等开源软件的示例。
|
內容簡介: |
本书包括如下内容:Clos拓扑结构。网络解耦。网络操作系统选择。路由协议选择。容器网络。网络虚拟化和EVPN。网络自动化。
|
關於作者: |
Dinesh G. Dutt有二十年网络行业经验,在思科公司从事企业和数据中心网络工作期间,他曾经为思科的大型交换机设计过许多ASIC芯片。他近的工作是Cumulus Networks公司的首席科学家。
[美] 迪内希·G. 杜特(Dinesh G. Dutt) 著
赵化冰 范彬 丁亮 译
资深解决方案工程师秦军作推荐序
秦军,从事网络技术领域多年,在物理交换机产品、SDN解决方案、云数据中心网络架构方向有丰富的技术积累。
译者介绍
赵化冰,腾讯云工程师,主要从事云原生相关的产品研发和开源相关工作。
范彬,从事云计算、容器产品研发多年。对的内核和网络技术一直保有学习热情。
丁亮,从事云计算开源网络项目,智能网卡和GPU等加速硬件的集成和开发工作。
|
目錄:
|
目录
前言1
第1章为什么需要一个新的网络架构9
应用程序网络的洗牌10
世纪之交的网络设计13
桥接的魅力15
构建可扩展的桥接网络18
接入?C汇聚?C核心网络架构设计带来的问题22
不可扩展性23
复杂性24
失效域25
不可预测性25
缺乏灵活性26
缺乏敏捷26
背后的故事27
小结28
第2章Clos:新世界的网络拓扑29
Clos拓扑介绍30
深入探讨Clos拓扑32
同类设备的使用32
路由作为基本的互连模式33
Clos拓扑中的收敛比35
互连链路速率36
一些现实的限制37
细粒度的故障域39
扩展Clos拓扑40
比较两种三层模型43
应用与网络模型的匹配43
数据中心扩建44
Clos拓扑的影响44
重新思考故障和排错45
布线45
简化的库存管理45
网络自动化45
Clos网络的一些实践46
交换机之间使用多链路46
spine交换机只用于连接47
使用框式交换机作为spine交换机48
主机连接模式49
小结50
参考文献50
第3章网络的解耦51
网络解耦52
为什么网络解耦如此重要54
成本控制55
避免供应商锁定55
特性标准化55
网络解耦可行的原因56
网络解耦之后网络操作的差异57
采购与支持57
首次启动58
开放网络安装程序环境58
网络解耦领域中的厂商:硬件厂商61
转发芯片61
ODM厂家62
CPU63
各种标准组织63
关于网络解耦的一些常见的不实说法63
网络解耦领域的一些实践65
小结66
参考文献66
第4章网络操作系统的选择67
网络设备的新需求68
软件定义网络和OpenFlow的兴起69
SDN和OpenFlow更多详细信息70
OpenFlow面临的问题72
OVS74
SDN和OpenFlow对网络解耦的影响75
NOS设计模型76
交换机网络状态的存储位置78
交换芯片的编程80
API85
不同答案背后的原因85
用户接口86
NOS模型与云原生NOS需求进行比较88
NOS还能做什么93
小结93
参考文献93
第5章路由协议的选择95
路由概述96
路由表查找的原理97
如何选择路由99
路由表条目的类型100
RIB和FIB101
路由协议概述105
距离矢量协议与链路状态协议106
距离矢量协议解析106
链路状态协议解析108
总结距离矢量与链路状态路由交换110
比较距离矢量和链路状态协议110
链路状态和距离矢量协议的扩展110
距离矢量和链路状态协议中的多路径111
没有消息就是好消息112
链路状态和距离矢量协议中的传播延迟112
多协议支持113
无编号接口114
路由配置的复杂度115
Clos网络中的路由协议117
链路或节点失效时的链路状态与距离矢量协议118
Clos网络中的路由汇总121
安全与保障122
双向转发检测123
数据中心对路由协议的需求124
基本需求124
进阶需求125
一些少见的或前瞻性的需求125
为你的网络选择路由协议126
小结127
参考文献127
第6章网络虚拟化129
什么是网络虚拟化130
网络虚拟化在数据中心的应用131
强制将流量路由到特定路径上131
需要二层网络互联的应用程序133
云133
交换机的管理网络和数据网络的分离133
网络虚拟化模型134
服务抽象:二层或者三层134
内嵌虚拟网络与Overlay虚拟网络135
网络隧道:构建Overlay虚拟网络的基础136
网络隧道的优点138
网络隧道的缺点139
数据中心的网络虚拟化141
VLAN141
VRF142
VXLAN142
其他网络虚拟化解决方案144
虚拟网络数量的实际限制145
包头中虚拟网络ID字段的大小145
硬件限制145
控制面和软件的可扩展性146
部署模式146
网络虚拟化的控制协议147
虚拟控制面和物理控制面之间的关系148
集中式控制模型148
基于协议的控制模型149
供应商对网络虚拟化的支持149
商业芯片149
软件150
标准150
举例说明VXLAN的桥接和路由150
VXLAN桥接示例:H1到H5153
VXLAN和路由:H1到H6156
VXLAN桥接和路由的总结159
小结160
第7章容器网络161
容器介绍162
命名空间163
虚拟以太网接口166
深入容器网络168
单主机容器网络169
多主机容器网络175
比较不同容器的网络解决方案179
Kubernetes网络180
小结182
第8章多播路由183
多播路由的概述184
多播路由要解决的问题186
构建多播树187
多播路由协议188
PIM稀疏模式190
汇合点190
建立多播分发树191
多RP和MSDP201
数据中心的PIM-SM202
小结205
第9章数据中心的边缘207
问题所在207
连接模型208
为什么要连接到外部世界?208
外部连接的带宽要求208
将Clos拓扑连接到外部世界209
边缘的路由211
服务212
混合云连接214
小结218
第10章网络自动化219
什么是网络自动化220
谁需要网络自动化221
网络自动化是否意味着要学习编程222
为什么网络自动化很难223
IP地址和接口的问题225
规模226
网络协议配置的复杂性227
缺乏编程入口228
传统网络操作系统的限制228
网络开发者该如何促进网络自动化?229
网络自动化工具229
网络自动化实践232
Ansible概述234
Inventory236
Playbooks237
临时命令242
使Playbooks结构化243
典型的网络自动化发展历程245
广受称赞的文件复制操作246
自动化不依赖于设备的配置247
为路由和接口配置创建模板248
更多的模板和roles250
一些来自网络自动化同行的观察253
验证网络配置255
单一的正确网络状态的来源255
网络自动化时代的变更提交/回滚256
Vagrant和网络测试257
自动化核验259
小结260
参考文献260
第11章网络可观测性261
什么是可观测性?262
网络可观测性的现状263
SNMP的渐渐破灭263
网络可观测性的逐个设备检查法265
为什么网络的可观测很难?266
数据中心网络可观测性特征266
可观测性的分解268
遥测机制268
我们收集什么?268
我们怎么收集?270
我们什么时候收集?271
存储数据271
使用多个数据源272
告警和仪表盘273
小结274
参考文献274
第12章反思网络设计275
标准化的、简易的构建模块276
故障:只见树木不见森林278
二层故障模型和三层故障模型的比较279
简单故障和复杂故障的比较279
处理升级280
追求更少281
正确的架构如何提供帮助282
特性集本质论282
云原生网络设计原则的限制283
小结284
第13章部署OSPF285
为什么选择OSPF?286
需要解决的问题287
确定链接状态的泛洪域288
已编号与无编号OSPF289
IPv6支持290
VRF支持290
在服务器上运行OSPF的要求290
OSPF路由类型291
OSPF计时器294
OSPF配置解析297
二层Clos拓扑中的Leaf-Spine配置:IPv4297
二层Clos拓扑中的Leaf-Spine配置:IPv6306
三层Clos拓扑的OSPF配置309
配置运行OSPF的服务器:IPv4309
OSPF中的路由汇总314
OSPF和升级314
实践315
小结316
第14章数据中心中的BGP317
BGP基本概念318
BGP协议概述318
BGP对等连接319
BGP状态机320
自治系统编号321
BGP能力321
BGP属性,团体和扩展团体321
BGP路径计算322
多协议支持324
BGP消息324
使BGP适应数据中心326
eBGP与iBGP326
eBGP:独自飞行327
私有ASN327
BGP的ASN编号方案327
多路径选择330
BGP的收敛时间331
小结332
第15章部署BGP333
核心的BGP配置概念333
二层Clos拓扑的传统配置:IPv4335
PeerGroup339
路由策略341
为数据中心提供合理的默认配置347
无编号BGP:消除麻烦的接口IP地址348
任何名字的remote-as350
如何在BGP中使用无编号接口351
FRR中BGP配置的终观察357
路由协议栈对无编号BGP的支持358
小结358
配置IPv6358
BGP和VRF359
与主机上的BGP发言者建立对等连接362
BGP和升级365
AS_PATHPrepend365
GRACEFUL_SHUTDOWNcommunity365
Max-MED366
实践366
小结367
第16章数据中心中的EVPN369
为什么EVPN如此流行?370
网络虚拟化控制平面必须解决的问题371
VTEP在何处?372
是否是一个协议统治所有?372
iBGP特征373
Underlay和Overlay协议的分离375
使用单一eBGP375
支持虚拟网络路由的BGP组件376
路由标识符(RD)377
路由目标(RT)378
FRR中RD和RT的使用379
EVPN路由类型379
处理BUM的通信选择380
EVPN和桥接381
采用入口复制方式的EVPN桥接382
采用Underlay网络的路由多播方式的EVPN桥接384
处理MAC地址迁移388
支持双归属主机390
主机?C交换机互连模型392
双连接主机的VXLAN模型392
交换机对等选项393
处理链接故障394
避免重复的多目的地数据帧395
ARP/ND抑制396
EVPN和路由398
集中式与分布式路由398
对称与非对称路由399
路由通告399
VRF的使用400
在大型网络中部署EVPN400
小结402
第17章部署网络虚拟化403
配置场景403
设备本地配置405
单一eBGP会话408
OSPF用于Underlay网络,iBGP用于Overlay网络417
allowas-in与ASN分离422
PIM/MSDP配置423
服务器主机上的EVPN427
实践427
小结428
第18章核验网络配置429
核验网络状态431
系统核验432
核验线缆连接434
接口配置的核验441
路由配置的核验446
核验OSPF配置447
核验BGP配置456
剥离私有ASN465
核验网络虚拟化471
应用网络的核验477
数据平面的核验479
小结480
第19章尾声481
作者介绍483
封面介绍483
|
內容試閱:
|
前言
云飘进我的生活,没有带来雨水或迎来暴风雨,但为落日天空增添了颜色。
—RabindranathTagore,流浪鸟
无论是对于本书的读者,还是作为这本书的作者来说,云原生数据中心网络都是一个相当大的话题,因此让我们先从一些容易的内容开始。
这是一本为数据中心构建一个健壮的、可扩展的网络基础架构的书。如果你是网络架构师或网络运营人员,想要了解、构建或验证数据中心的想法,那么这本书适合你。如果你是数据中心运营人员,不仅负责网络,还负责计算和存储,并且希望了解的数据中心网络设计思想,这本书也适合你。如果你是网络开发人员,希望查找一些网络相关的零碎信息或口头知识,这本书同样适合你。
更准确地说,这是一本关于云原生类型的数据中心网络设计的书。如果搜索“云原生”,你会发现它通常与微服务应用程序设计以及Linux操作系统相关联,并且依赖许多开源代码,这些只是实现云原生的方法而已。云原生的终目的是构建健壮、敏捷、可扩展的应用程序,使企业能够和这个瞬息万变的世界保持同步。当云原生的理念应用于网络时,则意味着以健壮、灵活、可扩展和高效的操作方式来构建符合应用程序和业务需求的网络。
我选择“云原生”这个词是为了强调将云原生理念应用于创建网络上。即使你构建的网络规模达不到Amazon或Google的网络规模,在创建网络时你也需要考虑以下
一些特征:价格合理、高性能、易于管理、敏捷且可靠。本书将涉及所有这些特征。
本书不仅适合部署微服务应用程序的人们。无论你使用的是容器、虚拟机,还是裸金属服务器,都喜欢使用Kubernetes部署微服务应用,构建一个可靠且可预测的网络是每个人都渴望的事情。
不管过去我是否为厂商工作,我都不想借此书达到推动任何厂商发布新功能的目的。如果你看到反映厂商的示例或文字,那仅仅是因为我对厂商或工具熟悉,而不是打广告。偏见总是容易蔓延开来,如果你发现书中哪些地方会产生此类异议,请告诉我,我会纠正它们。我很坦率地承认我是开源工具的拥护者,我相信可以通过开源的方式构建更好的系统。
读者对象
如前所述,本书不仅面对网络架构师、网络运维人员,而且面向网络应用的应用开发人员。阅读本书所需的基础知识并不多,只需要知道什么是TCP/IP和什么是套接字。本书理论结合实践,将理论应用于搭建数据中心。本书重点不仅是像教科书那样只介绍技术信息,而是始终关注于设计数据中心的技术的应用。本书不会涵盖与数据中心网络无关的方面,例如,物理位置选择、电源和散热选择、物理布局等。
本书结构
本书分为三个部分:
架构
前两章介绍体系架构。开始将描述新的架构的需求以及新的网络架构。
技术
接下的九章将涵盖各种技术,体系架构就好比“骨骼”,这些技术共同为架构添加“血和肉”。这些技术可以指导我们选择采用的协议以及架构设计,从而构建真实的网络。
实践
其余的章节将涵盖体系结构中使用的技术的实践。在很大程度上,涵盖了网络配置和验证,包括将“少而精”的理念应用于网络配置。
这些章节的另一个重点是我希望能将计算和网络两个不同的领域结合起来,两者的结合使得数据中心工程师和架构师成为“文艺复兴时期的男女”,文艺复兴时期的人们知识渊博又有深度,可以从纷繁复杂的信息中找到有价值的内容。随着网络解耦的出现,Linux操作系统(OS)开始具有强大网络功能,应用程序也更加趋于采用分布式架构。随着高质量的开源路由套件的出现,网络和计算人为的隔离不再存
在。我们可以设计更新的解决方案,使计算和网络更优雅地结合在一起并有效运行。
本书章节有限,很多内容没有涉及,包括安全性、IS-IS(IntermediateSystemtoIntermediateSystem)、新的路由协议(我们真的需要这些新的协议吗),以及一些高级的主题,例如:数据中心互连,网络分析等。对此我深表歉意,因为我的时间、精力以及本书篇幅有限。同时,我担心太多内容可能会使你失去耐心。
本书使用的软件
为了保持“云原生”关键原则,本书的示例,配置片段等都将使用受人拥护且广泛使用的开源软件。这样也可以使本书做到与供应商无关。本书主要使用以下四个开源软件:
?Linux内核,作为网络操作系统,版本为4.18或更高。
?FRR,IP路由协议组件,主要版本为7.1。
?Ansible,自动化工具,版本为2.8。
?Vagrant,用于在笔记本电脑上模拟网络拓扑,显示运行代码,版本为v2.2.5。同时,我会使用Vagrant的libvirt库扩展,快速搭建大型网络。
我已经将自己笔记本电脑上运行的软件提交到GitHub上,我的笔记本电脑配置是Intel的i7-8550U处理器,16GB内存和16GBswap空间。包括Vagrant用来模拟Clos网络拓扑,还有Ansible等。这些软件通常运行正常,但是有时在打开某些浏览器选项时,软件运行会变慢。
如果书中的代码与GitHub库中的代码之间存在差异,以能正常工作的代码为准。
我使用CumulusLinux发行版作路由器。我使用Ubuntu版本16.04作服务器。我还提供了Arista的EOS(ExtensibleOperatingSystem)一些配置,主要是因为Arista提供了Vagrant,可以使用EOS和Vagrant构建网络,但遗憾的是在Arista4.20.0F版本之后才提供。
欢迎随时提供你真实的反馈。
所有的示例都可以从GitHub上下载,这些代码采用GPLv2许可认证。
排版约定
本书使用以下排版约定:
斜体(Italic)
表示新术语、URL、Email、文件名及文件扩展名。
等宽字体(ConstantWidth)
表示程序片段,以及正文中出现的变量、函数名、数据库、数据类型、环境变量、语句和关键字等。
粗体等宽字体(Constantwidthbold)
表示命令或其他由用户直接输入的文本。
斜体等宽字体(ConstantWidthItalic)
表示应当被用户提供的值,或上下文决定的值所替换的文本。
使用示例代码
本书的示例代码、练习等补充材料可以到https://github.com/ddutt/cloud-native-datacenter-networking下载。
本书的目的是帮助你的工作。一般来说,你可以在自己的程序或者文档中使用本书提供的示例代码。除非你要复制大量的代码,你不必联系我们获得使用许可。例如,从书中摘抄几行代码编写程序就不需要获得许可。销售或分销OReilly书中的示例代码则需要获得许可。引用本书中的示例代码回答问题无需要获得许可。将本书中的大量示例代码附加到你的产品文档中则需要获得许可。
代码引用不要求注明出处,但如果你这么做,我们深表感激。出处格式一般包括标题、作者,出版社和ISBN。例如:“CloudNativeDataCenterNetworkingbyDineshG.Dutt(O’Reilly).Copyright2020DineshG.Dutt,978-1-492-04560-1”。
如果你觉得代码示例的使用不合理或不符合许可权限,请随时联系我们:permissions@oreilly.com。
O’Reilly在线学习平台(O’ReillyOnlineLearning)
近40年来,O’ReillyMedia致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们有一群独家专家和创新者,他们通过图书、文章、会议和在线学习平台分享知识和技术。O’Reilly的在线学习平台提供按需访问的直播培训课程、详细的学习路径、交互式编程环境,以及由O’Reilly和其他200多家出版社出版的书籍和视频。详情请访问http://oreilly.com。
联系我们
任何有关本书的意见或疑问,请按照以下地址联系出版社。
美国:
O’ReillyMedia,Inc.
1005GravensteinHighwayNorth
Sebastopol,CA95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
O’Reilly的每一本书都有专属网页,你可以在那里找到关于本书的相关信息,包括勘误表、示例代码及其他信息。本书的网址是:https://oreil.ly/cloud-native-data-center-networking
对于本书的评论或技术性问题,请发送电子邮件到:bookquestions@oreilly.com
要了解O’Reilly图书、培训课程、会议和新闻的信息,请访问以下网站:http://www.oreilly.com
我们的Facebook:http://facebook.com/oreilly。
我们的Twitter:http://twitter.com/oreillymedia。
我们的YouTube:http://www.youtube.com/oreillymedia。
致谢
写这本书比我想象的要难。跑马拉松并不像跑10公里那样容易,类似地,写几百页的书也不像写几十页的书那样简单。我曾有过两次写几十页书的经历,与这次相差甚远。我非常感谢在撰写本书过程中得到众多互动和反馈。
本书的编辑AndyOram,也是我前两本书的合作伙伴。如果没有你编辑润色工作,本书读起来不会像现在这样有趣。你的批注总会给我的写作带来意想不到的乐趣。你一直伴随着我完成这本书的写作。无论是周末还是晚上,当我需要你的帮助时,你总会立刻提供帮助,推敲出正确的词或删除一些啰嗦的地方。让我印象深的是,即使在午夜发送的电子邮件,你也几乎总会立即回复。并且,本书包括一首你创作的网络的诗,我深感荣幸和心怀感激。
感谢对本书进行审阅的伙伴AnthonyMiloslavsky,感谢你对整本书广度而周到的反馈,使这本书变得更好。DonaldSharp,感谢你对许多章节的反馈,如果没有你,多播这一章根本不可能完成。SeanCavanaugh,由于你的审阅和建议,自动化这一章变得比之前更好。CurtBrune,感谢你对ONIE(开放网络安装环境)部分的宝贵反馈。我亲爱的朋友SilvanoGai,也是我职业上的榜样,感谢你对书中部分章节做的详细讨论以及对许多章节初稿的审阅。Grazieditutto,miocaroamico,欣赏你们的知识和人品。
RoopaPrabhu,DavidAhern,VivekVenkataraman,DanielWalton,WilsonKok,PurnaBendale,RamaDarbha和EricPulvino,感谢大家在这本书编写过程中解答我的许多问题,感谢在Cumulus中与你们共事,曾经的笑声、眼泪以及共同的经历让我难忘。PeteLumbis,感谢你和我心灵共鸣,虽然也会与我开玩笑,但总会鼓励我继续前进。ChristianFranke和DonSlice,感谢你们帮助我解答有关IS-IS和OSPF的问题。我的挚友Shrijeet,我时刻会想起你,我要感谢你的地方太多。
同时,非常感谢Microsoft的BartDworak,感谢SeanCavanaugh花了很多时间跟我介绍你在网络自动化方面的经验,让我完成了自动化这一章的内容。感谢Barak
Gafni对我之前《数据中心EVPN》一书提供了反馈,用于帮助修正和阐明EVPN和网络虚拟化这些章的一些要点。LincolnDale,感谢你对Arista问题的回复。感谢Narayan,如果没有NarayanDesai邀请我出席SRECon2016,并做网络入门演讲,我将不会编写这本书。演讲得到积极的反馈,所以O’Reilly出版社邀请我撰写本书。在Cisco和Cumulus工作期间,我学习了很多网络、数据包的知识和如何与人相处,并且有机会与一些聪明的人一起工作。我特别感谢的两个人是Cisco的TomEdsall和Cumulus的JRRivers。
感谢开源社区所做的所有出色工作。Emacs,我使用的开源编辑器软件,已有25年以上的历史,我曾经用它写了整本书。Linux社区,我从Linux0.99版本起,就把Linux作为我主要的桌面系统,我记得我曾经花了整整一天的时间来下载SlackwareLinux软盘。这是很久之前的事情了,Ubuntu已经使Linux的使用体验变得流畅。除此以外,我还使用了HashiCorp的Vagrant和Ansible团队的Ansible。
感谢我的父母一直对我的写作以及其他方面的鼓励和支持。感谢Shanthala使我无后顾之忧。Maya,感谢你耐心等待我完成这本书。我期待有一天可以将你的漫画加入我的书中。是的,这将很吸引眼球。
|
|