基本信息
- 原书名:Software Defined Networking with OpenFlow
- 原出版社: Packt Publishing
- 作者: Siamak Azodolmolky
- 译者: 徐磊
- 丛书名: 华章程序员书库
- 出版社:机械工业出版社
- ISBN:9787111468080
- 上架时间:2014-6-13
- 出版日期:2014 年6月
- 开本:32开
- 页码:159
- 版次:1-1
- 所属分类:计算机 > 软件工程及软件方法学 > 综合

【插图】

编辑推荐
构建OpenFlow网络应用的绝佳指南,使用OpenFlow平台和开发工具的第一手经验
既深入浅出讲解OpenFlow的基本组件,又详细介绍网络应用实现的技术细节,是实际动手构建SDN的必备参考
内容简介
计算机书籍
SDN(软件定义网络)是未来网络发展的趋势,它将网络管理功能从网络设备中分离出来,使得用户可以构建简便、灵活、高度可扩展的网络。OpenFlow是第一个专为SDN设计的标准接口,是SDN概念的早期实现方案之一。我们如何利用OpenFlow构建SDN?
《软件定义网络:基于OpenFlow的SDN技术揭秘》是利用OpenFlow实际动手搭建SDN的系统实践指南。书中不仅深入浅出地讲解OpenFlow的基础知识,还详细阐述基于OpenFlow的网络应用开发、网络虚拟化、云计算中的安装与配置等具体过程。具体内容包括流的概念、流的转发、OpenFlow的功能、OpenFlow表的功能以及OpenFlow的特点和局限性;OpenFlow交换机的实现方案;OpenFlow控制器的作用及其API;环境的搭建;以学习型交换机和防火墙为例,展示网络应用开发;网络分片的获取;云计算中的OpenFlow;与OpenFlow有关的一些活跃的开源项目的概览。
《软件定义网络:基于OpenFlow的SDN技术揭秘》内容全面,既涵盖OpenFlow的基本构件,又包括利用OpenFlow实现SDN方面的内容,适合网络工程师、网络管理员、系统软件开发人员、网络应用开发人员,以及任何希望对OpenFlow有更多了解的人阅读。
作译者
目录
译者序
前 言
第1章 OpenFlow概述 / 1
1.1 理解软件定义网络—OpenFlow特色 / 2
1.2 有关SDN/OpenFlow的工作 / 4
1.3 SDN的基本构件 / 5
1.4 OpenFlow消息 / 13
1.4.1 控制器到交换机的消息 / 14
1.4.2 对称消息 / 18
1.4.3 异步消息 / 18
1.5 北向接口 / 20
1.6 本章总结 / 21
第2章 OpenFlow交换机的实现 / 23
2.1 OpenFlow参考交换机 / 24
2.1.1 异步消息 / 28
2.1.2 对称消息 / 29
2.2 硬件实现 / 29
2.3 基于软件的交换机 / 30
2.4 用Mininet搭建OpenFlow实验环境 / 32
译者序
另一方面,随着云计算业务和新型数据中心的兴起,数据中心内部、数据中心之间以及数据中心与外部网络之间的数据流量也呈现出新的特征:基于虚拟机节点的横向流量的大幅度增加、并行计算产生的高速的海量数据交换、虚拟机迁移所要求的寻址和名空间的一致性、多租户网络所要求的逻辑隔离和资源配置、上层应用对网络资源按需分配和动态化调度的要求,都使得传统的网络架构面临极大的挑战。新的应用场景呼唤一种动态的、细粒度的、可编程的、自动化的网络资源管理能力和相应的全局视图,由此催生了创新网络架构的问世。
软件定义网络(SDN)及其使能技术OpenFlow是目前业界关注的热点之一,其精髓不仅仅在于将控制平面与数据转发平面分离,还在于开放的南向接口和北向接口,更在于构建在网络抽象层上的集中控制能力和网络虚拟层上的资源配置能力;其强大功能还得益于虚拟化技术:计算虚拟化、存储虚拟化从源头和实现机制上推动了网络虚拟化的发展,三者紧密结合,相得益彰。
SDN和OpenFlow的理念和相关实践就是在上述背景下得到了迅速的发展和繁荣。从2008年美国斯坦福大学Nick McKeown教授的clean slate项目研究团队首次提出OpenFlow的概念,到2012年ONF发布SDN白皮书(Software Defined Networking:The New Norm for Networks),短短几年,SDN及OpenFlow技术已经得到长足发展,并完成了从实验平台向业务网络部署的重大跨越。2012年4月的开放网络峰会上,谷歌宣布已在其承载全球12个数据中心之间流量的内部骨干网G-scale上全面采用了OpenFlow/SDN解决方案,通过定制的OpenFlow交换机、多控制器和集中的流量工程模型,使骨干网链路的带宽利用率从30%提升到95%。2012年7月,SDN和OpenFlow技术的先驱Nicira公司以12.6亿被VMware收购。2013年4月的开放网络峰会上,eBay介绍了其采用Nicira网络虚拟化产品的云数据中心解决方案,微软也报告了Windows Azure的基于SDN架构的虚拟化网络。人们终于看到学术界和业界在重塑互联网(Reinvent the Internet)方面的努力已经开花结果。SDN和OpenFlow引领着新一代网络架构的创新发展方向已是不争的事实。
与此同时,越来越多的网络从业者、研究人员、网络开发人员和学生开始关注SND和OpenFlow技术,并开始自己的实践之旅。因此,Siamak Azodolmolky所撰写的《Software Defined Networking with OpenFlow》一书于2013年10月出版正好满足了读者的迫切需求。
就像作者所说的那样,这本书的定位是SDN与OpenFlow指南,因此,书中没有技术决策层面的宏大叙事,它更像是为即将开始SND与OpenFlow之旅的实践者提供的一幅路线图,引导读者从OpenFlow入门知识开始,由浅入深地了解SDN生态体系中的OpenFlow交换机、OpenFlow控制器,学习使用虚拟化的Mininet网络仿真工具,搭建和测试OpenFlow实验网;掌握如何通过OpenFlow控制器的北向API进行网络应用的开发;通过FlowVisor操练网络虚拟化实战;透视云计算的OpenStack 架构,探索OpenStack Neutron的云组网功能。
开源项目对SDN/OpenFlow发展的贡献是不言而喻的,除了重点介绍NOX、Floodlight、OpenDaylight、FlowVisor等主流SDN/OpenFlow开源软件及其使用,这本书还在最后一章为读者整理了一份重要的开源项目资源清单,包括OpenFlow软交换机、控制器、虚拟化工具、业务流程工具以及模拟和测试工具。因此,本书很适合作为SDN与OpenFlow实战的入门指南,衷心希望这本译作能够有助于读者的SDN/OpenFlow实践之旅。
译文中的错误和不当之处,敬请读者指正。
徐磊
2014年4月
前言
除了网络的抽象化,SDN架构也将提供一组应用编程接口(Application Programming Interface,API),使得常用网络服务的实现更为简便,这些服务涉及路由、多播、安全、访问控制、带宽管理、流量工程、QoS、能效管理以及各种策略管理等。因此,企业、网络运维人员和运营商将在可编程能力、自动化和网络管理方面获得前所未有的全新体验,使他们得以构建灵活的、高度可扩展的网络,以适应不断变化的业务需求。
OpenFlow是第一个专为SDN设计的标准接口,它提供了能够跨多种网络设备的高性能的、精细的流量控制。本书将介绍有关OpenFlow的基础知识,它是SDN概念的早期实现方案之一。首先从OpenFlow交换机和控制器讲起,然后介绍基于OpenFlow的网络应用(Net App)开发、网络虚拟化、云计算中的OpenFlow,以及与OpenFlow有关的一些活跃的开源项目的概览。如果你还觉得不过瘾,本书还会告诉你怎样利用OpenFlow构建SDN。
本书内容
第1章OpenFlow概述。介绍OpenFlow及其在SDN生态系统中的作用,以及OpenFlow在计算机网络中的工作原理。该章介绍实际动手搭建实验环境之前的预备知识,内容包括:流的概念、流的转发、OpenFlow的功能、OpenFlow表的功能以及OpenFlow的特点和局限性。
第2章OpenFlow交换机的实现。内容包括:现有的OpenFlow交换机实现方案,包括硬件和软件的实现。
第3章OpenFlow控制器。该章介绍作为OpenFlow交换机控制实体的OpenFlow控制器的作用,以及为OpenFlow网络应用(Net App)开发所提供的API(即所谓的北向接口)。
第4章环境的搭建。介绍OpenFlow交换机和控制器的各个选项,也介绍网络应用的开发环境。该章重点介绍虚拟机(VM)的安装和一些工具(如Mininet和Wireshark),这部分知识将在第5章介绍网络应用开发时用到。
第5章网络应用开发。通过网络应用样例(如学习型交换机和防火墙)的开发来展示OpenFlow如何为网络应用的开发提供通用的基础。
第6章网络分片的获取。介绍如何利用OpenFlow和FlowVisor对网络进行切分。该章将具体规划一个网络,使读者能够了解如何利用FlowVisor来配置和使用网络分片。
第7章云计算中的OpenFlow。重点是OpenFlow在云计算中的作用,并将特别介绍OpenStack的Neutron的安装和配置,Neutron是一个OpenStack的孵化项目,它为接口设备(如vNIC或称虚拟网络接口卡)之间提供网络连接层面的云服务(Network connectivity as a Service,NaaS),这种服务通过OpenStack的其他服务进行管理。
第8章开源资源。为网络工程师和网络管理人员介绍一些重要的开源项目资源,并给出资源的链接,这些资源可以用于他们的实际工作环境。这些项目包括OpenFlow软交换机、控制器、虚拟化工具、业务流程工具以及模拟和测试工具。
阅读本书前的准备
读者应具备一定水平的网络经验和知识,掌握TCP/IP、以太网及广泛的网络概念,熟悉网络日常运维工作,具有高级语言或者脚本语言(如C/C++、Java或者Python)的编程经验。如果具备一定的虚拟机和其他虚拟网络环境的经验也会有所帮助。同时,读者还需要有一台计算机,内存不小于1GB(最好大于2GB),有不少于10GB的可有硬盘空间。此外,采用速度较快的处理器将加快引导时间,采用较大的显示器有助于管理多终端窗口。当然,还需要有因特网连接,以便于下载各种实用工具和VM映像。
读者对象
尽管本书内容涵盖了OpenFlow的基本构件,以及利用OpenFlow实现SDN方面的内容,但是我们并没有把本书定位为一本参考书,而是把它作为OpenFlow和SDN的指南。网络工程师、网络管理人员、系统软件开发人员、网络应用开发人员,以及任何希望更多了解OpenFlow的人士,都可以阅读本书。
约定
在本书中,当某段代码需要引起读者注意时,我们会用粗体字表示相应的项和代码行:
在本书中,还存在如下两种体例:
警告或者重要提示放在这样的图标后。
书摘
OpenFlow概述
1.1理解软件定义网络—OpenFlow特色
1.2有关SDN/OpenFlow的工作
1.3SDN的基本构件
1.4OpenFlow消息
1.5北向接口
1.6本章总结
为了让读者更好地理解OpenFlow的功能及其组成部分,了解如何利用它开发基于OpenFlow的网络应用,有必要简单介绍一下OpenFlow及其工作原理。在真正搭建支持SDN/OpenFlow的实验和开发环境之前,本章首先介绍所需要的知识。OpenFlow可以说是SDN概念的早期实现方案之一,所以,在了解OpenFlow之前,有必要先简单介绍一下SDN以及围绕SDN所展开的工作。
1.1理解软件定义网络——OpenFlow特色
软件定义网络(Software Defined Networking,SDN)通常被认为是计算机网络领域中的创新概念,其目标是极大地简化网络控制和管理,通过网络的可编程性引导创新。通常,计算机网络的建设依赖于大量的网络设备(如交换机、路由器、防火墙等),以及在设备中嵌入实现的复杂网络协议(软件)。网络工程师负责配置各种策略,以应对各种各样的网络事件和应用场景。他们需要手工地将这些高层策略转换为低层的配置命令,这些繁杂的任务通常只能通过有限的工具完成,使得网络管理控制和性能调优任务总是带有挑战性并易于出错。
另一个网络工程师和研究人员常常提到的挑战是因特网的固化机制。庞大的因特网基础设施和它对我们生活诸多方面所带来的影响,使得因特网无论是在物理基础设施方面,还是在相关的协议及性能方面,都极难发展进步。随着因特网上新兴的强大应用越来越趋于复杂化,现有的因特网机制在应对这些新的挑战时便显得力不从心。
可编程网络的概念是作为一种促进网络进化的途径而提出的,特别是SDN,它是一种新的网络模式,把执行转发的硬件部分(例如专用的包转发引擎)从控制决策部分(如协议和控制软件)中分离出来。这种控制逻辑的迁移,使得下层网络互连基础设施能够从应用层面上抽象出来,而以前的控制逻辑是紧密集成到网络设备(如以太网交换机)中的,现在则转变为逻辑上集中的可访问的控制器。这一分离提供了一个更灵活的、可编程的、与厂商无关的、高性价比的创新网络架构。除了网络的抽象化,SDN架构也将提供一组应用编程接口(Application Programming Interface,API),使得常用网络服务的实现更为简便,这些服务涉及路由、多播、安全、访问控制、带宽管理、流量工程、QoS、能效管理以及各种策略管理等。从逻辑意义上看,SDN中的网络智能被集中到了基于软件的控制器(在控制平面)中,而网络设备变成了简单的数据包转发设备(数据平面),并可以通过开放接口对它进行编程。这种开放编程接口的早期实现之一便是OpenFlow。
将转发硬件从控制逻辑中分离出来,能够简化新型协议和应用的部署,直接进行网络的虚拟化和管理,并且能够把各种中间构件整合到软件实现的控制中。通过精简网络,简化了转发硬件和负责决策的网络控制器,而不用在错综复杂的分散的设备中去实施策略和执行协议。
负责转发功能的硬件包含以下两部分:
1. 一个包含流记录(flow entry)的流表(flow table),流记录由用于匹配当前流的规则和所采取的具体操作构成。
2. 一个传输层协议,用于与控制器进行安全传输,以传递没有记录在当前流表中的新记录。
1.2有关SDN/OpenFlow的工作
虽然OpenFlow在业界引起了极大的关注,但仍有必要指出,有关可编程网络和将控制平面与数据平面相分离的想法其实由来已久。早在1995年,开放信令工作组(Open Signaling Working Group,OPENSIG)就发起了一系列的活动,旨在使ATM、因特网和移动网络变得更加开放、广泛和可编程。这些活动进一步促进了因特网工程任务组(Internet Engineering Task Force,IETF)的一个工作组推出用于控制标记交换的通用交换机管理协议(General Switch Management Protocol,GSMP)。该工作组于2002年6月推出了GSMPv3并正式结束了其工作组活动。主动网络(Active Network)最早提出了可编程网络基础设施的思想,用于定制服务方面,然而,主动网络的概念一直没有得到足够的拥趸,主要是出于对安全和性能的担心。自2004年开始,4D项目(www.cs.cmu.edu/~4D)倡导重新设计(clean slate design)的理念,强调把路由决策逻辑与主宰网元之间交互的协议分开。4D项目的这一理念直接激发了后续的一些研究工作,如NOX(www.noxrepo.org)所提出的用于OpenFlow网络中的网络操作系统。到2006年,IETF的网络配置协议(Network Configuration Protocol)工作组提出了NETCONF,用作修改网络设备配置的管理协议。该工作组目前仍然活跃,其最新标准发布于2011年6月。IETF的转发与控制元素分离(Forwarding and Control Element Separation,ForCES)工作组目前正担纲一个与SDN并行的研究项目。此外,SDN和开放网络互联基金会(Open Networking Foundation)也与ForCES致力于同一基本目标。对于ForCES来说,随着控制元素从转发元素中分离出来,内部网络设备架构会被重新定义,但是对外仍然用单一的网元来表示两者相结合的实体。OpenFlow最直接的前身是斯坦福大学的SANE/Ethane项目(yuba.stanford.edu/sane和yuba.stanford.edu/ethane),该项目于2006年定义了用于企业网的新型网络架构。Ethane的重点是采用集中式的控制器来管理网络中的策略和安全。
开放网络互联基金会(www.opennetworking.org)是由一组网络运维人员、服务提供商和厂商最近创立的机构,是一个由业界发起的组织,致力于推广SDN和使OpenFlow协议标准化。作者写作本书时,OpenFlow规范的最新版本是1.4版,不过由于目前得到广泛实施和部署的是OpenFlow 1.1.0(Wire协议0x01),在本书中我们将只针对OpenFlow 1.1.0展开描述。