重构网络:SDN架构与实现
  • 推荐1
  • 收藏6
  • 浏览2.7K

重构网络:SDN架构与实现

李呈 (作者) 

  • 书  号:978-7-121-31042-3
  • 出版日期:2017-03-24
  • 页  数:268
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:张春雨
身处SDN发展浪潮,笔者真切地感受到了这场技术革命的到来。为了自我总结,也为了帮助他人,因此决定写这本书。
本书首先介绍了SDN的定义、SDN出现的原因、SDN发展的历史和标志性事件、SDN南向协议、SDN控制平面和数据平面等理论知识。然后进一步介绍了如何从零开始搭建SDN实验环境及SDN与网络虚拟化的结合等SDN应用案例内容。最后梳理了SDN对学术界和工业界产生的影响,探讨了我们该如何应对这场SDN变革。此外,附录中两篇拟人化的故事还从感性的角度对SDN进行了介绍。
本书适合SDN初学者和进阶者。希望本书的内容能够给读者带来一些帮助,成为SDN学习者相互讨论、学习的舞台。
奇点来临,软件定义网络更定义未来,巨变之下虚拟化|SDWAN如何落地
推荐序
如今,距离我的那本《深度解析SDN》一书出版已经过去了三年时间,在这短短的三年中,SDN领域发生了翻天覆地的变化。一大批Startup公司在这个领域崭露头角,甚至久已没有新鲜血液的交换芯片领域也出现了新的身影。各个传统巨头也纷纷推出了形态各异的SDN产品,不仅仅是网络设备商,还包括一些传统的IT厂商。更重要的是,以网络虚拟化、SDWAN等为代表的典型SDN应用纷纷落地。SDN时代已经到来!
但是对于很多人来说,很多问题仍然看不清楚,到底什么是SDN?市场上那么多SDN产品,哪些是真的,哪些是假的?SDN到底能够解决哪些传统网络解决不了的问题?SDN能够全面取代传统网络吗?传统网络应该如何向SDN网络逐步迁移?哪些场景是适合SDN的典型场景?这些是每一个网络从业者和最终用户都非常关心的市场层面的问题。而在技术层面,同样有很多富有争议的问题。OpenDaylight或者ONOS,甚至是其他一个什么控制器,谁会胜出?OpenFlow前途命运如何?标准南向接口是否是SDN应该追求的方向?控制是否真的应该完全从转发面分离?可编程的P4是网络未来的方向吗?是否应该有及是否会有真正的SDN交换芯片出现?
我跟本书作者杨泽卫和李呈都有数面之缘并都有过交流,也看过不少他们两个人写的文章,两个人都从不同的层面上对SDN做了不少卓有成效的研究和实践工作。他们能把工作学习过程中的所见所思所做总结出来,帮助读者来寻找上述问题的答案,不得不说是一件幸事。读者是否能找到所有的答案并不重要,甚至他们的观点是否全部都正确也并不重要,重要的是,读者可以从他们的工作中系统地学习SDN相关知识,并从中得到启发,引出更多的思考,这就是他们这本书最大的意义。

张卫峰
盛科网络SDN白牌交换机 CTO


前言
SDN(Software-Defined Networking,软件定义网络)起源于斯坦福大学Nick McKeown教授的Clean Slate项目,其目标是重新定义网络体系结构(Reinvent the Internet),诞生至今已经快十年。作为一种新的网络体系结构,SDN已经掀起了一场网络变革的技术浪潮,对网络学术界和工业界的发展都产生了巨大的冲击:OpenFlow的论文至今已经被引用4951次;开源SDN控制器平台OpenDaylight已经发布了5个版本,拥有超过600多名开发者,完成了超过30000多次代码更新;开源社区OSS(Open Source SDN)也已经发布了20多个来自开发者的开源SDN项目;传统网络设备厂商和运营商都在面向SDN重建自己的产品体系,大多数SDN初创公司都在各自领域交付成熟的产品方案。而作为学习者的我们,也需要做好准备,迎接这场技术变革。
但是学习和研究SDN绝非易事。虽然我们每天都能接触到大量的SDN学习资料,但对于初入SDN领域的学生和工程师而言,仍然会不知所措。比如,关于SDN定义的描述就有多种解读:开源组织ONF(开放网络基金会)的Open SDN,业界厂商的Vendor SDN,甚至还有SDx(Software Defined Everything)的概念。这些概念哪一种才是正确的?此外,SDN发展至今诞生了众多不同类型的开源项目:SDN网络模拟器、SDN软件交换机、网络虚拟化平台、SDN控制器测试工具和OpenFlow交换机测试工具等。如何去学习它们?如果有一本书能提供清晰的SDN学习路线:梳理SDN的定义、SDN发展历程、SDN关键技术和典型应用案例,同时又介绍如何从零开始实践SDN,这将会对SDN初学者入门和进阶者学习SDN提供有效的帮助。
带着这种想法,我们在一年多之前开始编写这本书。本以为依靠学习SDN过程中积累的知识和书写博客的经历,就可以轻而易举地完成本书,但事实却大相径庭。从2015年7月确定本书目录开始,我们每周至少进行一次沟通,直至2016年5月才陆续完成本书初稿。后续又花费了大量的时间修改初稿,有些章节甚至几经易稿,修改超过二十多次。面对SDN这样一个新的技术领域,我们非常谨慎地去选择合适的内容。在写作上,我们努力引用原始技术资料,并在此基础上进行剖析,得出观点和结论。我们希望本书不但能帮助入门者梳理SDN领域的知识体系,而且能帮助进阶者挖掘SDN领域更深层次的信息,在成为SDN专业人士之路上贡献我们的一臂之力。
本书包括8章内容和2个小故事。第1章从SDN最初的定义出发,讨论了SDN出现的原因,详细介绍了SDN的发展历史和标志性事件。第2章详细介绍了现有的SDN南向协议,它是决定SDN架构可编程能力的关键,也是当下SDN厂商方案竞争的一个焦点。第3章从发展历程、系统架构和使用方式3个方面详细介绍了5个典型的开源SDN控制器。第4章从OpenFlow数据平面开始,深入讨论了现有的SDN数据平面模型,并引出一个非常重要的SDN数据平面概念“通用可编程数据平面”。第5章介绍了从零开始实现SDN所需要掌握的诸多开源工具,帮助读者快速入门SDN实践。第6章讨论了现有的SDN应用案例,重点介绍了SDN在数据中心网络和WAN网络两个成熟市场的应用。第7章介绍了网络虚拟化的发展现状,以及SDN与网络虚拟化结合的相关产品。第8章作为本书最后一章,梳理了SDN对学术界和工业界产生的影响,讨论了我们应该如何应对SDN这场变革。书籍附录部分还有《我是一个SDN控制器》和《我是一个SDN交换机》2篇拟人化的SDN文章供读者阅读。希望这2个小故事能让读者对SDN有感性的认识。
本书的1、4、6、8章由杨泽卫完成,2、3、5、7章和2个技术故事由李呈完成。本书内容是我们学习SDN过程中的总结,其目标读者是SDN初学者和进阶学习者。我们相信:一本技术书籍的生命力更加体现在后期读者的反馈上,它不仅仅是手边的纸质手册,更像是一个互动交流的学习平台,一个可以让作者和读者一起探讨SDN的平台。此外,由于作者水平有限,在书籍内容的编写上难免会有疏漏,观点难免有失偏颇,也恳请读者批评指正。
我们衷心地感谢那些帮助我们完成本书的人们。首先我们要感谢对方,我们一起完成了一本技术书籍。在写作的过程中,我们有过观点探讨时的针锋相对,也有过迷茫懈怠时的相互鼓励,也正因为如此,才能顺利地完成这本书。其次我们要感谢本书的策划编辑张春雨先生,没有他的支持,也就没有本书的诞生。最后我们要感谢我们的家人和师长。感谢在本书写作过程中给予我们启发和帮助的人。谢谢你们!

杨泽卫、李呈
2017年2月5日

目录

目录
第1章 SDN重塑网络 ......................................................................................... 1
1.1 SDN是什么 ...................................................................................................... 1
1.2 为什么需要SDN .............................................................................................. 4
1.3 网络可编程探索之路 ....................................................................................... 6
1.4 SDN发展历史 ................................................................................................ 10
1.5 SDN重塑网络 ................................................................................................ 15
1.6 本章小结 ......................................................................................................... 16
参考资料.................................................................................................................. 16
第2章 SDN南向协议 ....................................................................................... 21
2.1 SDN南向协议简介 ........................................................................................ 21
2.2 狭义SDN南向协议 ....................................................................................... 23
2.3 广义SDN南向协议 ....................................................................................... 30
2.3.1 OF-Config ............................................................................................ 31
2.3.2 OVSDB ................................................................................................ 34
2.3.3 NETCONF ........................................................................................... 36
2.3.4 OpFlex.................................................................................................. 38
2.3.5 XMPP ................................................................................................... 39
2.3.6 PCEP .................................................................................................... 40
2.4 完全可编程南向协议 ..................................................................................... 41
2.4.1 POF ...................................................................................................... 41
2.4.2 P4 ......................................................................................................... 46
2.5 SDN南向协议标准之战 ................................................................................ 53
2.6 本章小结 ......................................................................................................... 55
参考资料.................................................................................................................. 55
第3章 SDN控制平面 ....................................................................................... 57
3.1 SDN控制平面简介 ........................................................................................ 57
3.2 SDN开源控制器 ............................................................................................ 59
3.2.1 NOX/POX ............................................................................................ 59
3.2.2 Ryu ....................................................................................................... 63
3.2.3 Floodlight ............................................................................................. 68
3.2.4 OpenDaylight ....................................................................................... 72
3.2.5 ONOS ................................................................................................... 78
3.3 选择SDN控制器 ........................................................................................... 85
3.3.1 评价控制器的要素 .............................................................................. 85
3.3.2 选择正确的控制器 .............................................................................. 89
3.4 SDN控制平面发展趋势 ................................................................................ 91
3.5 本章小结 ......................................................................................................... 96
参考资料.................................................................................................................. 97
第4章 SDN数据平面 ....................................................................................... 99
4.1 SDN数据平面简介 ........................................................................................ 99
4.2 通用可编程转发模型 ................................................................................... 101
4.2.1 通用硬件模型 .................................................................................... 103
4.2.2 通用处理指令 .................................................................................... 112
4.2.3 小结 ................................................................................................... 115
4.3 探索通用可编程数据平面 ........................................................................... 116
4.4 SDN数据平面的发展趋势 .......................................................................... 120
4.4.1 发展历史............................................................................................ 120
4.4.2 白盒交换机 ........................................................................................ 123
4.5 本章小结 ....................................................................................................... 125
参考资料................................................................................................................ 126
第5章 从零开始实践 ...................................................................................... 129
5.1 Mininet实践 ................................................................................................. 129
5.1.1 Mininet简介 ...................................................................................... 130
5.1.2 Mininet系统架构 .............................................................................. 130
5.1.3 Mininet安装 ...................................................................................... 132
5.1.4 Mininet示例 ...................................................................................... 134
5.2 Open vSwitch实践 ....................................................................................... 140
5.2.1 OVS简介 ........................................................................................... 141
5.2.2 OVS架构 ........................................................................................... 141
5.2.3 OVS安装 ........................................................................................... 142
5.2.4 OVS示例 ........................................................................................... 144
5.3 Ryu实践 ....................................................................................................... 150
5.3.1 Ryu简介 ............................................................................................ 150
5.3.2 Ryu架构 ............................................................................................ 151
5.3.3 Ryu安装 ............................................................................................ 152
5.3.4 Ryu示例 ............................................................................................ 153
5.4 网络虚拟化平台实践 ................................................................................... 162
5.4.1 OpenVirteX简介 ............................................................................... 162
5.4.2 OpenVirteX架构 ............................................................................... 163
5.4.3 OpenVirteX安装 ............................................................................... 164
5.4.4 OpenVirteX示例 ............................................................................... 165
5.4.5 其他网络虚拟化产品 ........................................................................ 170
5.5 其他工具 ....................................................................................................... 170
5.5.1 Cbench简介 ...................................................................................... 171
5.5.2 OFTest简介 ....................................................................................... 173
5.5.3 Wireshark简介 .................................................................................. 174
5.5.4 发包工具简介 .................................................................................... 175
5.6 本章小结 ....................................................................................................... 177
参考资料................................................................................................................ 177
第6章 SDN应用案例 ..................................................................................... 179
6.1 SDN在数据中心网络的应用 ...................................................................... 179
6.1.1 面临的问题 ........................................................................................ 179
6.1.2 现有商业方案 .................................................................................... 181
6.2 SDN在WAN中的应用 ............................................................................... 187
6.2.1 面临的问题 ........................................................................................ 187
6.2.2 现有商业方案 .................................................................................... 189
6.3 其他领域的应用 ........................................................................................... 192
6.3.1 SDN在园区网中的应用 ................................................................... 193
6.3.2 SDN在局域网中的应用 ................................................................... 195
6.3.3 SDN在蜂窝网络中的应用 ............................................................... 195
6.4 本章小结 ....................................................................................................... 197
参考资料................................................................................................................ 197
第7章 SDN与网络虚拟化 .............................................................................. 200
7.1 网络虚拟化 ................................................................................................... 200
7.1.1 为什么需要虚拟化技术 .................................................................... 201
7.1.2 网络虚拟化 ........................................................................................ 203
7.2 SDN与网络虚拟化 ...................................................................................... 208
7.2.1 SDN与网络虚拟化 ........................................................................... 208
7.2.2 SDN实现网络虚拟化 ....................................................................... 209
7.3 网络虚拟化产品 ........................................................................................... 213
7.3.1 开源产品............................................................................................ 214
7.3.2 商业产品............................................................................................ 220
7.4 未来研究方向 ............................................................................................... 223
7.5 本章小结 ....................................................................................................... 225
参考资料................................................................................................................ 225
第8章 SDN浪潮 ............................................................................................ 227
8.1 SDN对学术界的影响 .................................................................................. 227
8.2 SDN对工业界的影响 .................................................................................. 231
8.3 如何应对SDN的变革 ................................................................................. 234
8.4 SDN浪潮 ...................................................................................................... 238
8.5 本章小结 ....................................................................................................... 238
参考资料................................................................................................................ 239
附录A 我是一个SDN控制器 .......................................................................... 243
附录B 我是一个SDN交换机 .......................................................................... 250

本书勘误

印次
  • 页码:全书  •  行数:  •  印次: 1

    全书中所有出现的“SDN南向协议”改为“SDN南向编程接口”。

    刘恩惠 提交于 2017/7/13 13:45:24
    张春雨 确认于 2017/7/13 14:01:56
  • 页码:1  •  行数:10  •  印次: 1

    ONRC(OpenFlow Network Research Center)
    应为
    ONRC(Open Networking Research Center)

    warestar 提交于 2017/4/21 21:40:00
    张春雨 确认于 2017/4/24 14:51:11
  • 页码:3  •  行数:第4段  •  印次: 1

    第4段这一整段描述改为:
    “北向接口是 SDN 控制器与网络应用之间的开放接口,它为SDN应用提供通用的开放编程接口。”

    刘恩惠 提交于 2017/7/13 13:55:50
    张春雨 确认于 2017/7/13 14:00:45
  • 页码:37  •  行数:9  •  印次: 1  •  修订印次: 3

    “变成” 应为 “编程”

    bwsd_nj 提交于 2017/9/28 15:52:29
    张春雨 确认于 2017/10/16 10:28:57
  • 页码:92  •  行数:7  •  印次: 1

    删除掉“的粉墨登场”。

    刘恩惠 提交于 2017/7/13 13:57:17
    张春雨 确认于 2017/7/13 14:00:30

读者评论

  • 134页,5.1.4 mininet示例,1.搭建自定义拓扑,代码运行不成功,请问是什么问题?

    h007发表于 2022/6/2 17:58:37
  • 请教一个问题:
    已经修改了交换机流表项目上限。 sh ovs-vsctl —id=@ft create Flow_Table flow_limit=16 overflow_policy=refuse — set Bridge s1 flow_tables=0=@ft,命令没问题,交换机流表项还是最多只有3项,增加第4条记录时,会覆盖第3条,为什么?

    crqs发表于 2022/4/8 15:53:52
  • 请问一下,我想启动mininet可视化工具miniedit,但是却出现了下图中的错误,该怎么办呢?(我是通过虚拟机的方式安装的mininet,版本2.2.0)

    Homking发表于 2018/5/6 14:10:00
  • 您好,在114页关于copy-field 动作的描述是 完成任意数据包域之间的数据复制,这个不明白,是不是对于同一个数据包,把其中的某个字段内容复制到其他字段位置?还是其他含义?

    lpf发表于 2017/5/7 8:30:14
    • 读者朋友你好,你所提出的问题小编已转告本书的相关编辑,编辑近期会予以回复。

      博文小编发表于 2017/5/8 17:34:36
  • 您好,在111页第三段有个描述,“”回环接口“,一般常用的是 环回接口,不知道是笔误还是另一种描述?谢谢

    lpf发表于 2017/5/7 6:40:26
    • 读者朋友你好,你所提出的问题小编已转告本书的相关编辑,编辑近期会予以回复。

      博文小编发表于 2017/5/8 17:34:33

电子书版本

  • Epub
  • Mobi

图书类别

相关博文

  • 我们为什么需要SDN?

    我们为什么需要SDN?

    管理员账号 2017-04-19

    小编说:SDN为什么会出现?是什么原因使得学术界提出SDN?我们为什么需要SDN?如果你刚接触SDN方案时,你一定有这样的疑问。而问题的答案是:我们需要拥有更多可编程能力的网络,来支持快速增长的网络业务需求。本文选自《重构网络:SDN...

    管理员账号 2017-04-19
    726 0 0 0
  • 探索通用可编程数据平面

    探索通用可编程数据平面

    管理员账号 2017-04-24

    小编说:相比传统网络数据平面,通用可编程数据平面让网络用户可以自定义数据包的完整处理流程,实现理想的协议无关网络数据处理。作为一种理想的SDN数据平面,通用可编程数据平面还不够完善,还需要在不断的尝试中摸索前进。本文选自《重构网络:S...

    管理员账号 2017-04-24
    925 0 0 0
  • 面对SDN,我们该怎么办?

    面对SDN,我们该怎么办?

    管理员账号 2017-04-28

    回顾SDN的发展历史,可以发现:SDN作为一种新的网络体系结构,对网络学术圈和工业界都产生了深远的影响。SDN并不是昙花一现的网络技术新概念,而是一场网络领域的技术变革。 我们将如何应对这场变革:SDN初学者如何入门和进阶?网工如何...

    管理员账号 2017-04-28
    526 0 0 0

推荐用户

相关图书

ATT&CK框架实践指南

过去,入侵检测能力的度量是个公认的行业难题,各个企业得安全负责人每年在入侵防护上都投入大量费用,但几乎没有人能回答CEO 的问题:“买了这么多产品,我们的入侵防...

¥148.00

架构解密:从分布式到微服务(第2版)

吴治辉 (作者)

微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术...

 

深入理解Apache Dubbo与实战

诣极 林琳 (作者)

本书首先介绍Dubbo的简史、后续的规划和整体架构大图;接着介绍Dubbo环境配置,并基于Dubbo开发第一款应用程序;然后介绍Dubbo内置的常用注册中心的实...

¥79.00

RabbitMQ实战指南

朱忠华 (作者)

本书从消息中间件的概念和RabbitMQ的历史切入,主要阐述RabbitMQ的安装、使用、配置、管理、运维、原理、扩展等方面的细节。本书大致可以分为基础篇、进阶...

¥79.00

Spring Boot 2精髓:从构建小系统到架构分布式大系统

李家智 (作者)

Spring Boot是目前Spring技术体系中炙手可热的框架之一,既可用于构建业务复杂的企业应用系统,也可以开发高性能和高吞吐量的互联网应用。Spring ...

¥79.00

架构探险:从零开始写分布式服务框架

李业兵 李业兵 (作者)

分布式服务框架目前已经是互联网公司实现SOA服务化架构的必备基础设施,对于一般的开发而言,自己要独立实现一个分布式服务框架,还是有相当的难度的。本书围绕如何从零...