论文笔记——A Survey of SDN
论文概况
https://ieeexplore.ieee.org/abstract/document/6739370
IEEE Communications Surveys & Tutorials
Volume 16 Issue 3
摘要
本文综述了可编程网络的最新进展,重点介绍了SDN。我们提供了可编程网络的历史视角,从早期的想法到最近的发展。然后介绍了SDN网络的体系结构和OpenFlow标准,讨论了当前基于SDN的协议和服务的实现和测试的替代方案,考察了当前和未来的SDN应用,并探讨了基于SDN模式的有前景的研究方向。
1 引言
传统网络出现的问题:网络管理和性能调优困难,网络僵化。
可编程网络具有革命性,比如软件定义网络,网络设备成为简单的包转发设备,可以通过开放的接口进行编程。
第二节:早期可编程网络
第三节:SDN及其体系结构,以及OpenFlow协议。
第四节:开发和测试SDN的平台和工具。
第五节:在数据中心和无线网络的应用。
第六节:面临的挑战和未来发展的方向。
2 早期可编程网络
描述了一些SDN和OpenFlow概念的前身,在早期的一些项目中已经有了关于可编程网络和数控平面分离的思想。
3 SDN体系结构
路由器和交换机通常是封闭的系统,只有很少的提供给供应商的接口。适配新版本的协议(比如Ipv6)非常困难,更不用说部署全新的协议和服务。网络僵化效应主要是由于设备的数据和控制平面紧密耦合,新的app或功能的部署需要直接实现在物理设施中。解决网络僵化的一个手段是使用中间设备,比如CDN(内容交付网络)。
软件定义网络将转发硬件和控制逻辑分离,可以更容易地部署新协议和应用程序。
A 当前SDN架构
目前有两种SDN架构:ForCES和OpenFlow
- ForCES将单个设备中的控制元素与转发元素分开,意图实现在单一网络设备中将转发硬件与第三方控制相结合。它定义了两个逻辑实体,转发元素FE和控制元素CE,它们通过ForCES协议通信,FE负责使用底层硬件来提供每个数据包的处理。CE执行控制和信令功能。ForCES还有一个重要功能块LFB(逻辑功能块),它安装在FE上,通过CE进行控制,实现FE的配置和数据包处理。
- OpenFlow完全将控制平面从网络设备上剥离,转发设备基于流表进行转发,流表控制着转发规则。没有匹配流表时按照“table-miss”流表项执行相应的动作,比如丢弃、转发给控制器。控制平面与转发平面通过OpenFlow协议进行通信,远程控制器可以添加、删除或更新交换机的流表项。
- ForCES和OpenFlow的模型不同,但是可以实现相似的功能。
- OpenFlow得到了各界的大力支持,以至于被认为是SDN的官方标准。
B 转发设备
底层网络中,转发设备有路由器、交换机、无线接入点等。但是在SDN中,控制逻辑和算法都由控制器维护,基本转发硬件均被称为switches——交换机。
规则空间是OpenFlow可扩展性的瓶颈,在尊重网络策略和约束的同时,优化使用规则空间来服务于一定数量的流条目是一个具有挑战性和重要的课题。
C 控制器
单个控制器能够处理惊人数量的新流请求,并且应该能够管理除最大的网络之外的所有网络。
交换机控制延迟对网络的整体行为有重大影响,因为每个交换机在从控制器收到插入流表中适当规则的消息之前不能转发数据。这个间隔可能会随着链路延迟而增加,并显著影响网络应用程序的性能。
控制建模对网络的可扩展性影响很大。
集中式和分布式:软件定义的网络可能具有集中式或分布式的控制平面。OpenFlow允许多个控制器连接到一台交换机上,这将允许备份控制器在出现故障时接管。软件定义的网络还可以具有一定程度的逻辑去中心化,具有多个逻辑控制器。
粒度控制:传统网络的基本元素是包。在软件定义网络中,网络元素是远程控制的,开销是由数据平面和控制平面之间的通信引起的。控制器对每个包做决策会增加额外的延迟,对流的第一个包所做的决策可以应用于该流的所有后续包,通过将流分组可以进一步减少开销。
被动控制和主动控制:这部分没看懂 P1624。
D 南向接口:控制器——交换机
OpenFlow本身就是控制器——交换机交互的一种实现。
E 北向接口:控制器——服务
目前还没有公认的针对北向交互的标准,而且它们更有可能在特定应用程序的特殊基础上实现。
F 标准化工作
4 SDN开发工具
A 仿真和仿真工具
mininet,NS-3
B 可用软交换机平台
C 实体交换机
目前在商品网络硬件中实现的SDN主要技术是OpenFlow标准。
D 可用控制器平台
其中有两个特殊用途的控制器:Flowvisor、RouteFlow
Flowvisor:充当交换机和多个控制器之间的透明代理,它能够创建网络片,将每个片的控制委托给不同的控制器,促进了片之间的隔离。
RouteFlow:它由一个OpenFlow控制器应用程序、一个独立的服务器和一个虚拟网络环境组成,它可以复制物理基础设施的连接并运行IP路由引擎。路由引擎根据所配置的路由协议(如OSPF、BGP),将转发信息库(FIB)生成到LinuxIP表中。
E 代码验证和调试
NICE:自动化的测试工具,用于通过模型检查和符号执行来帮助发现OpenFlow程序中的bug。
Anteater:试图检查数据平面中存在的网络不变量,如连通性或一致性。这种方法的主要优点是它与协议无关;它还将捕获由错误的交换机固件或与控制平面通信不一致而导致的错误。
VeriFlow:进一步提出了一个驻留在控制器和转发元素之间的实时验证工具。能够停止在到达网络之前会导致异常行为的规则。
OFRewind:允许以不同的粒度记录网络事件(控制和数据),然后再回放以重现特定的场景,从而提供定位和排除导致网络异常的事件的机会。
ndb:为SDN实现了断点和数据包回溯。
STS:是一个由软件定义的网络故障排除模拟器。它是用python编写的,并且依赖于POX。它模拟了给定网络中的设备,允许进行测试用例,并识别产生给定错误的输入集。
5 SDN应用
A 企业网络
校园网也算是特殊的企业网络。适当的管理在企业环境中至关重要,SDN可以通过编程方式执行和调整网络策略,以及帮助监控网络活动和调整网络性能。使用SDN实现的中间设备包括NAT,防火墙,负载平衡器和网络访问控制。对于更复杂的中间设备,直接实现导致性能下降,可以使用SDN提供统一控制和管理。
B 数据中心
在大规模数据中心中能源消耗有很重要的成本,ElasticTree是一种电源管理器,利用SDN来寻找满足当前流量条件的最小功率网络的子集。B4是谷歌提出的SDN概念应用于数据中心环境中的实际例子,它是一个连接谷歌全球数据中心的广域网。B4被证明是高效的,而且工作经验表明,控制平面到数据平面通信和硬件编程开销造成的瓶颈是今后工作中需要考虑的重要问题。
C 基于基础设施的无线接入网
OpenRoads:设想了一种软件定义蜂窝网络。
Odin:在企业无线局域网环境中引入了可编程性,它在控制器上构建一个访问点抽象,将关联状态与物理访问点分离,实现主动移动管理和负载平衡。
OpenRadio:专注于部署可编程无线数据平面,在PHY和MAC层而不是第三层,提供灵活性,旨在提供一个模块化接口,能够处理使用不同协议的流量子集,基于决策平面和转发平面分离的思想,操作员可以表示由处理平面模块(如FFT模块、维特比解码等)组装而来的决策平面规则和相应的动作。
D 光网络
将SDN和OpenFlow标准应用于光传输网络的好处包括:提高光传输网络控制和管理灵活性,支持部署第三方管理和控制系统,以及通过利用虚拟化和SDN部署新的服务。
文献[88]-[93]
E 家庭和小型企业
随着低成本网络设备的广泛可用性,这些环境变得越来越复杂和普遍,对更仔细的网络管理和更严格的安全性的需求也相应地增加了。但是,在每个家庭和办公室都有一个专门的网络管理员是不现实的。
Calvert建议将控制器作为“家庭网络数据记录器”,创建可用于故障排除或其他目的日志。
Feamster建议外包第三方专家,通过远程控制可编程交换机和分布式网络监控和推理算法,来检测可能的安全问题。
文献[94]-[97]
5 研究所面临的挑战和未来的发展方向
A 控制器和交换机设计
可扩展性、性能、鲁棒性、安全性
DIFANE:流被主动推到交换机上,试图减少向控制器的请求数量。
Devoflow:建议处理交换机中的短寿命流和控制器中的长寿流,以减少流设置延迟和控制器开销。
[28]:主张用一系列规则匹配记录来替换ASIC上的计数器,并在CPU中处理它们,以允许高效访问计数器。
FLARE:专注于“深度可编程网络”的新型网络节点模型,它为数据平面、控制平面以及它们之间的接口提供了可编程性。
为了提高可扩展性,特别是为了可靠性和鲁棒性,人们已经认识到逻辑集中的控制器必须是物理分布的。
B 软件定义互联网
目前许多关于SDN的工作都是在单个管理域的上下文中检查或提出解决方案。然而,那些管理本质上是分散的环境,比如互联网,需要一个逻辑分布的控制平面。
C 控制器——服务交互
目前南向接口定义的相当好,但是北向接口却没有统一的标准,一种可能的解释是,北向接口完全是在软件中定义的,而南向接口必须支持硬件实现。
如果我们认为控制器是一个“网络操作系统”,那么应该有一个明确定义的接口,应用程序可以访问底层硬件(交换机),与其他应用程序共存和交互,并利用系统服务(例如拓扑发现、转发),而不需要应用程序开发人员知道控制器的实现细节。
此外,北向的API应该允许应用程序对同一流应用不同的策略(例如,通过目的地进行转发和通过源IP进行监控)。
D 虚拟化和云服务
E 以信息为中心的网络
信息中心网络(ICN)是针对未来互联网架构提出的一种新的范式,它旨在提高内容交付的效率和内容可用性。他们的驱动动机是,当前的互联网是信息驱动的,但网络技术仍然专注于基于位置的寻址和主机对主机的通信的想法。通过提出一种处理命名数据而不是命名主机的体系结构,内容分发可以直接实现到网络结构中,而不是依赖于目前用于将内容映射到单个位置的复杂映射、可用性和安全机制。
ICN中信息处理和转发的分离与SDN中数据平面和控制平面的解耦相一致。然后,问题就变成了如何将ICN和SDN结合起来。
F 异构网络支持
未来网络面临的一个主要挑战是资源的有效利用;在无线多跳自组网中尤其如此,因为可用的无线容量本质上是有限的。这是由于许多因素,包括共享物理介质的使用、无线信道损坏和受管理基础设施的缺乏。自组织网络缺乏专用资源,而且连接性的变化使容量共享变得困难。底层网络的异构特性(例如,物理介质、拓扑结构、稳定性)和节点(例如,缓冲区大小、功率限制、移动性)在考虑路由和资源分配时也增加了另一个重要的因素。
迄今为止的SDN技术,如OpenFlow,主要针对基于基础设施的网络。它们促进了一种不适合在无基础设施环境中出现的分散、中断和延迟级别的集中控制机制。虽然之前的工作已经研究了SDN在无线环境中的使用,但其范围主要集中在基于基础设施的部署。
7 结束语
在本文中,我们提供了一个可编程网络的概述,并在此背景下,考察了软件定义网络(SDN)的新兴领域。我们来看看可编程网络的历史,从早期的想法到最近的发展。我们特别详细描述了SDN体系结构以及OpenFlow[2]标准。我们介绍了当前的SDN实现和测试平台,并检查了基于SDN范式开发的网络服务和应用程序。最后,我们讨论了SDN所支持的未来发展方向,从支持异构网络到信息中心网络(ICN)。
语句摘录
As a result, network management and performance tuning is quite challenging and thus error-prone.
因此,网络管理和性能调优非常具有挑战性,所以很容易出错。
Because of its huge deployment base and the fact it is considered part of our society’s critical infrastructure (just like transportation and power grids), the Internet has become extremely difficult to evolve both in terms of its physical infrastructure as well as its protocols and performance.
由于其庞大的部署基础,且被视为我们社会关键基础设施(就像交通和电网)的一部分,所以互联网在其物理基础设施、协议和性能方面的发展已经变得极其困难。
As SDN becomes more widely adopted and protocols such as OpenFlow are further defined, new solutions are proposed and new challenges arise.
随着SDN被广泛采用,并且OpenFlow等协议被进一步定义,新的解决方案被提出,新的挑战出现.
The Internet has revolutionized the way we, as individuals and as a society, live, work, conduct business, socialize, get entertainment, etc. As a result, the Internet is now considered part of our society’s critical infrastructure much like the power, water, and transportation grids.
互联网已经彻底改变了我们作为个人和社会、生活、工作、做生意、社交、获得娱乐等方面的方式。因此,互联网现在被认为是我们社会关键基础设施的一部分,就像电力、水和交通电网一样。