基于openflow的SDN技术

 

一、SDN研究背景:逻辑控制和数据转发分离

  1. 软件定义网络(software-defined networking, 简称 SDN)技术

答:分离了网络的控制平台和数据平面,为研发网络新应用和未来互联网技术提供了一种新的解决方案。

 

      2.路由器

a.传统的路由器:只能通过命令行接口(command-line interface,简称CLI)等方式对外开放少量功能,难以在阵势的网络中实验和部署新型网络体系结构和网络技术。

(传统的路由器,导致当前网络中大量部署的网络设备和网络协议也将在相当长一段时间内,延续现有的网络体系结构)

b.新型的路由器:(可编程虚拟化)为了解决现有的TCP/IP体系结构面临的诸多难题,世界各国已经大规模的开展未来互联网的研究,研究未来互联网体系结构首先考虑的是网络核心设备路由器的重新设计和部署,允许用户自定义路由器功能模块,实现适应未来互联网发展的新型协议功能。

 

     3.SDN研究背景:逻辑控制与数据转发分离

1. 传统因特网把控制逻辑和数据转发紧耦合在网络设备上,导致网络控制平面管理复杂化,也使得网络控制层面新技术的更新和发展很难直接部署在现有网络上,灵活性和扩展性很难适应网络的飞速发展.

2. 网络的控制转发分离架构提出由专有设备来部署高层策略,网络设备在高层策略指导下进行数据转发,减少了网络设备 承载的诸多复杂功能,提高了网络新技术和新协议实现和部署的灵活性和可操作性

 

      4. SDN典型的工作包括:ForCES、4D架构、RCP、SANE和Ethane

ForCES(forwarding and control element separation)----基于开发可编程思想的网络体系结构

①组成:将网络元素分为控制件(control element,简称CE)和转发件(forwarding element,FE)

②优点:用ForCES协议来实现各部件的协同和交互,以提高网络的可管控功能,增强网络部署的灵活性和有效性。

③缺点:主要研究工作在于理论创新和功能建模,并没有面向真实网络的部署和实践。

 

4D架构(decision, dissemination,discovery,data)

①背景:针对当前网络的逻辑决策平面 和 分布式的硬件设备结合过紧的问题。于是Greenberg等人重新设计了互联网控制和管理结构。

②在4D架构下,决策平面通过全局网络视图做出网络控制决策,并直接下发到数据平面;

i.分发平面:在决策平面和路由器之间建立可靠的通信通道;

ii.发现平面:负责发现网络中的物理组件,并为决策平面提供构建网络视图的基本信息

iii.数据平面:实现数据转发功能

                                      基于openflow的SDN技术_第1张图片

③ 优点:这种架构有助于实现健壮、安全的网络,便于对异构网络进行有效管理。

 

RCP(routing control platform)-----基于AS结构的逻辑中央平台

①背景:针对内部边界网关协议扩展性不强和容易造成协议不稳定、路由回路等缺点。     注:内部边界网关协议(internal border gateway protocol,简称iBGP)

②干了些啥: 部署路由控制服务器集中收集路由信息和AS内部拓扑结构信息,为AS范围内的路由器做出BGP路由决策。

③ 优缺点:通过实现的原型系统验证了控制转发分离建构的可行性,与4D架构的设计思想相比,RCP仅仅实现了BGP路由策略的集中管控,它在逻辑控制平面功能上还是有很大的拓展空间的。

 

SANE ---面向企业网的管理架构

①目标:主要是面向企业网的安全管理。

②干了写啥:在链路层和IP层之间定义了一个可以管理所有链接的保护层,所有路由和接入控制决策都通过这个保护层由一台逻辑中央服务器进行控制。

③优缺点:以安全控制为重点,还没有实现复杂的路由决策,同时也没有经过大规模的测试,实际部署起来还是比较困难的。

 

Ethane---面向企业网的管理架构

①在Ethane网络中,两个主要部件是:

      I. 中央控制器: 实现网络主机认证、IP分配和产生交换机流表等基本功能,是整个网络的控制决策层。

      II Ethane交换机:根据控制器部署的流表进行报文转发,是一个简单的、哑的数据转发单元。

②干了写啥:在SANE的基础上进行了功能扩展,将安全管理决策添加到网络管理当中,扩充了中央控制器的管理功能,实现了更细粒度的流表转发策略。

③优缺点:Ethane实现了OpenFlow交换机和中央控制器的大部分功能,奠定了OpenFlow的技术基础。

 

    4.  分组交换网络硬件的设计思想

⑴背景:目前日益增长的带宽需求。现有的路由器包含了报文转发决策的功能,复杂性过高,而导致的灵活性、有效性不够。

⑵怎么做呢: 简化硬件转发功能,用软件来实现转发决策。软硬件之间应该相互独立,硬件只需要缓存这些决策,而专注于报文的转发。

⑶缺点:硬件与软件之间的交互和速度匹配需要考虑实际的硬件性能和网络流量的大小,报文处理在硬件中的匹配率将影响到软件的实际性能。

  优点:这种软硬件功能分离的思想,进一步明确了软件层做决策硬件层控制分组转发的设计思路。

 

      5. 上文中体现出的思想:逻辑控制和数据转发分离的架构

⑴作用:简化了网络管理和配置操作,有利于异构网络的融合和创新应用的部署。

⑵挑战:如逻辑控制平面的功能集中化和可扩展性问题、逻辑决策的实时响应和一致性问题、逻辑控制单元的失效引发的容错和恢复机制问题。还有一点就是,这些控制转发架构的相关研究主要集中于理论上,缺少实验部署。

 

      6. OpenFlow技术(在上述工作的基础上)

⑴是什么 : OpenFlow指的是SDN控制平面和数据平面之间多种通信协议之一。实际上,OpenFlow以其良好的灵活性、规范性已被看作SDN通信协议事实上的标准,类似于TCP/IP协议作为互联网的通信准则。

⑵优点 :基于OpenFlow的SDN技术打破了传统网络的分布式架构,颠覆了传统网络的运行模式。

  缺点:还需要满足新的技术和市场的需求

 

二、基于OpenFlow的SDN关键组件及架构

1、OpenFlow最初作为SDN原型提出时候,主要由OpenFlow交换机、控制器两部分组成。

   OpenFlow交换机:

⑴功能:主要是负责数据转发功能。

⑵主要技术细节:流表(flow table)、安全通道(secure channel)、OpenFlow(OpenFlow protocol)

              基于openflow的SDN技术_第2张图片

  ①流表构成交换机的处理单元,每个流表由许多流表项组成,流表项则代表转发规则。

  ②流表项由三部分组成:匹配字段、计数器、操作

  ③安全通道:连接OpenFlow交换机和控制器,控制器通过这个接口,控制器通过这个接口,按照OpenFlow协议规定的格式来配置和管理OpenFlow交换机。

④OpenFlow交换机一共有两个版本,都部署于Linux系统:

     基于用户空间的软件OpenFlow交换机操作简单,便于修改,但性能较差。

      基于内核空间的软件OpenFlow交换机速度较快,同时提供了虚拟机功能

 

 2、控制器

⑴    NOS:网络操作系统(network operating system)

NOX:是OpenFlow网络中对网络实现可编程控制的中央执行单元。实际上,这里的NOS指的是SDN概念中的控制软件。

 

⑵在基于NOX的OpenFlow网络中,NOX是控制核心,OpenFlow交换机是操作实体,图3。

运行在NOX上的应用程序通过调用网络视图中的全局数据,进而操作 OpenFlow 交换机来对整个网络进行管理和控制.

从 NOX 控制器完成的功能来看,NOX 实现了网络基本的管控功能, 为OpenFlow 网络提供了通用 API 的基础控制平台, 但在性能上并没有太大的优势,未能提供充分的可靠性和灵活性来满足可扩展的需求.

NOX目前已经作为 OpenFlow 网络控制器平台实现的基础和模板

                           基于openflow的SDN技术_第3张图片

基于FlowVisor的OpenFlow虚拟化

目的:解决多控制器对OpenFlow交换机的控制共享问题,同时满足网络 虚拟化的现实需求

FlowVisor在控制器和OpenFlow交换机之间实现了基于OpenFlow的网络虚拟层,使得 硬件转发平面能够被多个逻辑网络切片(slice)共享,每个网络切片拥有不同的转发逻辑策略.在这种切片模式下,多个控制器能够同时管理一台交换机,多个网络实验能够同时运行在同一个真实网络中,网络管理者能够并 行地控制网络,因此网络正常流量可以运行在独立的切片模式下,从而保证正常流量不受干扰(如下图4)

                        基于openflow的SDN技术_第4张图片

⑷表 1 列举了当前广受关注的 OpenFlow 网络控制器的研究背景和主要技术特点. 

基于openflow的SDN技术_第5张图片

 

3.   OpenFlow实现了SDN可编程网络的思想,代表了SDN技术的实现原型和部署实例。

但是从整个SDN架构来看,OpenFlow 特指控制平面和数据平面的某一种通信协议。

⑴图5描述了 SDN 架构的逻辑视图,主要分为基础设施层、控制层和应用层.

①基础设施层:表示网络的底层转发设备,包含了特定的转发面抽象(如 OpenFlow 交换 机中流表的匹配字段设计)

②中间的控制层:集中维护网络状态,并通过南向接口(控制和数据平面接口,如 OpenFlow)获取底层基础设施信息,同时为应用层提供可扩展的北向接口。

 

这种软件模式的优势

①在SDN的这种3层架构下,通过软件来实现集中控制,使得网络具备集中协调点,因而能够通过软件形式达到最优性能,从而加速网络创新周期。

②SDN降低了网络复杂度,使得网络设备从封闭走向开放

③底层的网络设备能够专注于数据转发而使得功能简化,有效降低网络构建成本。

                     基于openflow的SDN技术_第6张图片

 

三、基于 OpenFlow 的 SDN 面临的问题和解决思路

       SDN转发平面的设计问题。

              OpenFlow交换机作为SDN转发平面抽象的实际载体,SDN转发平面功能的逐渐扩展,意味着OpenFlow交换机结构设计的复杂化。

       控制平面的可扩展性。

OpenFlow 设计之初,仅需通过单控制器来实现网络的管控功能。随着网络规模的增大和业务需求的增加,需要研究控制平面的可扩展性解决方案,即多控制器解决方案.

而控制单元的数量和它们之间网络状态(包括拓扑、传输能力、路由限制等)的协同和交互应该如何实现, 以保证网络状态的一致性和可扩展性,还需要进行大量深入的研究

       SDN控制逻辑的一致性

        虽然控制平面能够将控制逻辑集中部署到整个网络,但是数据平面转发设备仍然是一个分布式系统。控制逻辑的先后配置顺序以及控制平面和数据平面之间可能存在的时延,将难以保证控制逻辑更新的一致性,有可能造成网络出现断路、丢包、环路等现象。

       运作模式和演讲趋势问题

              OpenFlow自身设计标准的不稳定性和转发设备硬件的复杂化趋势也为OpenFlow的演讲趋势带来了不确定性。

 

3.1

OpenFlow 规约 0.8.9 版只支持初的十元组,

0.9版 增加了 VLAN 优先级

1.0 版增加了 IP 服务类型

1.1 版增加了元数据(metadata)、MPLS 标签和 MPLS 流量类别这 3 个字段

1.2 版和 1.3 版,列出了需要实现的 13 个字段和可选实现的众多字段,前 13 个字段里包含 IPv6 字段.

可以看出,为了实现功能的扩展,流表项的匹配长度一直在增加.路由器通常利用TCAM来检索路由器转发表,从而获得下一跳地址.

传统的转发表匹配字段长度一般以IPv4的32位为主,而OpenFlow规约1.0版里的十二元组长度为250 比特左右,OpenFlow1.1版里则长达356比特.在增加了IPv6之后,流表项将更长.这种不断扩充的转发平面抽象, 将极大地增加硬件成本.OpenFlow1.1 版提出了多级流表和流水线结构,

通过分域多级流表查询来压缩流表空间,在一定程度上减少 OpenFlow 交换机中 TCAM 资源的消耗,从而给报文的匹配操作增加了足够的灵活性

 

3.2制约 SDN 控制平面可扩展性的主要原因有以下几点:

(1)流的细粒度处理需求使得控制器需要响应更多的流请求事件。

(2) 接入控制、负载均衡、资源迁移等新型应用需求逐渐增加到控制平面当中,控制器需要对日趋复杂的管控功能进行有效的整合,这进一步增加了控制平面的处理开销.

(3) 传统分布式网络设备仅根据局部的路由信息来实现路由转发,而控制平面需要维护全局的网络状态信息,这也使得控制平面的可扩展性不仅需要考虑性能的需求,而且要考虑网络状态的一致性.

(4) 在网络规模增大、数据平面转发设备数量增多的环境下,单控制器设备可能难以满足性能需求。

 

       3.2.1 针对当前基于流的网络对控制器依赖过重的实际场景,DIFANE结合了主动和被动两种安装流表的方式,将流量保持在数据平面,从而减小控制器负载。

DIFANE首先在 OpenFlow 交换机中选出权威交换机(authority switch),每个权威交换机管理一定区域内的 OpenFlow 交换机。控制器主动将分区规则安装到所有的 OpenFlow 交换机上,并根据全局网络信息主动在权威交换机上安装权威规则。

当普通交换机产生新的数据流时,它根据自身的分区规则直接和自己分区内的权威交换机进行通信。由于权威交换机已提前部署了权威规则,因而可以向普通交换机安装缓存规则,同时,直接将请求数据转发给目的地而无须再返回给源交换机,从而去掉了传统流请求建立过程中数据包经过控制器的往返时延,也减少了控制器需要实时处理的控制流,如图所示

基于openflow的SDN技术_第7张图片

 

在 DIFANE 系统中,由于权威交换机能够管理普通交换机的流建立请求,因此,控制器仅需要管理整个网络的区域划分和权威交换机的流触发规则。

DIFANE 的区域划分根据流空间(flow space)定义,而流空间则根据具体的流表项来划分,一般由 7 个字段组成(源和目的IP 地址、MAC 地址、端口号,协议),形成七维流空间.以图 7 的二维流空间(F1,F2)为例。

F1 和 F2 分别代表源 IP 地址和目的 IP 地址,范围为 0~15,即(F1=F2=[0,15])。

规则 R2 表示所有源 IP 地址为 1、目的 IP 地址为 0~7 的数据包。

在图 7 中,控制器将整个网络划分为4个区域。具体的划分规则将根据实际区域的规则类型和范围来决定.

                                 基于openflow的SDN技术_第8张图片

   3.2.2 DevoFlow

1、解决的问题:

当前的OpenFlow交换机流建立过程和统计信息收集过程将会消耗大量数据平面和控制平面之间的带宽,无法满足高性能网络的性能需求。减小 OpenFlow 交换机和控制器的信息交互

2、DevoFlow 采取了两种方式:规则复制和局部操作

   规则复制方式:

包含通配符的流表项中“操作”字段上增加了CLONE标志,如果该标志清零,则匹配该流表 项的报文按正常情况处理;如果该标志被置位,则直接根据匹配报文建立精确匹配的微流,从而细化每一条微流的统计信息。由于带通配符的流表项一般由硬件TCAM实现,而精确匹配的流表项由软件实现,因而同时也减少了TCAM 资源的消耗。

在这种方式下,OpenFlow 交换机只需提前安装带有通配符的流表项,即可大量减少同控制器的报文交互,同时节省硬件资源开销

   局部操作方式:包括多路径支持和快速重路由。

①多路径支持是指为 OpenFlow 交换机中可复制的通配符流表项提供多个可能的输出端口,DevoFlow 根据概率分布将报文输出到特定端口中,而不是采用传统的等价多路径路由方式(ECMP)。

②快速重路由给 OpenFlow 交换机指定了1 条到多条备用路径,从而在链路失效时立即转用备用路径,而不是转发给控制器。

 

   3.2.3 HyperFlow

在 HyperFlow 中,每个控制器将订阅数据信道、控制信道和自身信道。

数据信道:接受域内网络和应用程序事件

控制信道:接受针对特定控制器的事件、控制器自身的网络状态信息

  自身信道:控制器的状态信息

HyperFlow[35]通过部署多台控制器来 管理OpenFlow交换机,在每台控制器能够同步全网络视图的同时,只需要管理特定区域中的OpenFlow交换机

左图中整个OpenFlow网络仅有1台控制器,因此跨域的服务请求将产生额外的时延,同时对控制器 性能造成影响;

右图在每个域内都部署 1 台~多台控制器,控制器之间通过消息的发布-订阅模式来来传输网络事件。

基于openflow的SDN技术_第9张图片

  HyperFlow优缺点

优点:在NOX上的应用程序方式实现,实现过程简单,只需要对NOX进行少量的修改。

缺点:①在保证控制带宽和限定网络延迟的情况下,HyperFlow 能够处理的网络事件小于 1 000 次/秒,性能还不够高。

②适用于网络状态事件更新不频繁、对网络状态一致性要求不高的网络。

 

3.3.4 Onix

Onix提出了一整套面向大规模网络的分布式 SDN 部署方案.Onix 网络架构主要由物理网络基础设施、网络连接基础设施、Onix 和网络控制逻辑这 4 部分 组成,如图 9 所示

①物理网络基础设施允许 Onix 读写网络状态;

②网络连接基础设施提供 Onix 和物理网络基础设施之间的通信连接;

③Onix采用分布式架构向上层控制逻辑提供网络状态的编程接口;

④网络控制逻辑则通过Onix 提供的API 来决策网络行为.

网络信息库(network information base,简称 NIB)用于维护网络全局的状态,Onix的设计关键就在于维护NIB 的分发机制,从而保证整个网络状态信息的一致性

基于openflow的SDN技术_第10张图片

Onix主要通过3种策略来实现控制平面的可扩展性:

(1) 分区。随着网络规模的增大,与HyperFlow相似,数据转发平面必须由不同的控制器进行分区管理。Onix 通过不同的实例管理每个域,并根据 NIB 来配置数据平面。

(2) 聚合。整个Onix网络将形成一个分层的拓扑结构,每个Onix实例需要维护本分区的路由决策,分区间的路由决策则由 Onix 实例构成的集群共同决策。

在网络规模增大、网络事件更新频繁的情况下,顶层的控制逻辑将无法完全匹配网络事件的更新速度。为此,Onix 实例需要知道本域内的拓扑情况。而将其余的 Onix 实例管理的网络看作是一个聚合的逻辑结点.

(3)一致性和稳定性。根据不同的网络需求,Onix 提供两种方式来实现 NIB 的更新分发机制:带复制的事务性数据库模式和 DHT 模式。前者适用于网络事件更新缓慢、对稳定性和一致性要求较高的网络;后者适用于网络事件更新频繁、对网络可用性要求较高的网络.

 

3.3.5 Devolved controller

 HyperFlow 和 Onix 并未针对控制器如何分区提出具体的分区算法.鉴于多路径区域划分问题在图论中是 NP 难问题,Devolved controller针对多控制器管控区域划分问题提出了两种启发式算法:路径-分区算法(path- partition approach)和分区-路径算法(partition-path approach),如图 10 所示

 

 

四.  基于OpenFlow的SDN应用

4.1 面向校园网的部署

    为学校的科研人员构建流一个可以部署网络新协议和新算法的创新平台,并实现了基本的网络管理和安全控制功能。

   Plug-n-Serve:设计了一种新型的面向无结构网络的负载均衡算法,向系统中动态添加和移除计算资源,增加了请求的传输率,改变了每个请求的CPU和网络负载,最终实现了网络的负载均衡。

   OpenRoads:利用OpenFlow和SNMP在异构无线网络中实现了网络虚拟划分和移动管理,简化了网络管控的方法。

   Resonance:在校园内部署的一整套OpenFlow网络动态接入控制系统,通过在高层部署安全策略和分布式监控推断系统,实现了更细粒度的分布式安全接入功能。

 

4.2 面向数据中心的部署

背景:由于数据中心的数据流量大,交换机层次管理结构复杂,服务器和虚拟机需要快速配置和数据迁移。如果不能在庞大的服务器机群中进行高效的寻址和数据传输,则容易造成网络拥塞和性能瓶颈。

将OpenFlow交换机部署到数据中心网络,可以实现高效寻址、优化传输路径、负载均衡等功能,从而进一步提高数据交换的效率,增加数据中心的可控性。

Ripcord同样实现了两种数据中心(PortLand和VL2)的路由引擎原型系统,并支持网络动态管理,增加了网络健康度监控和自动报警功能

ElasticTree设计了一个在数据中心部署的能量管理器,动态调节网络元素(链路和交换机)的活动情况,在保证数据中心的流量负载平衡的情况下,达到了节能的目的.

Hedera在PortLand的实验床上实现了一种可扩展的动态流调度系统,通过OpenFlow交换机获取流的新动态,采用全局先匹配(global first fit)的贪婪算法和模拟退火(simulated annealing)算法实现了数据中心的负载平衡

Virtue利用 OpenFlow 交换机控制网络流量,实现了数据中心内不同的虚拟机布置算法的 比较,并通过真实的数据中心和模拟器两种方式进行了实验.另外,文献[34,36]也都是在数据中心部署 OpenFlow 网络的相关研究。

 

4.3 面向网络管理的应用

   OpenFlow网络的数据流由控制器做出转发决定,使得网络管理技术在OpenFlow网络中易于实现,尤其是流量管理、负载平衡、动态路由等功能,通过配置控制器提前部署转发策略,将实现更加直观的网络管控模式。

例子:

OpenPipes实现了一个高速网络的原型系统,它可以通过硬件和软件两种方式来实现系统的功能模块,并通过OpenFlow技术实现功能模块在网络运行时的动态划分。

OpenTM利用OpenFlow控制器中的路由信息,分析了从不同交换机获取流统计数据的网络负载问题,从而构建整个网络的流量矩阵。

4.4 面向安全控制的应用

    随着OpenFlow在网络管理方面的应用日益丰富,OpenFlow的流管理功能很容易进行扩展,从而实现数据流的安全控制机制,实际上,在面向校园网的部署环境里,有很多应用都是针对安全管控的。

 

五.  总结与展望

基于OpenFlow的SDN技术还处于一个发展阶段,还有很多问题需要深入研究,下面对其未来研究重点和发展趋势进行讨论:

  1. OpenFlow标准的推进和控制软件的开发

Open Flow标准—应当以实际的功能需求和演进趋势来决定流表结构设计需要支持哪些功能。

对于核心部件控制器,其控制软件的开发将以现有的版本为基础,性能优化、易于部署、扩展性强将是主要研究目标。

     2. 基于OpenFlow实现SDN

   基于OpenFlow实现SDN,在网络中实现软硬件的分离以及底层硬件的虚拟化。

在SDN控制软件上,通过开发不同的应用程序来实现对网络的管控,将成为实现可编程网络的关键步骤。

 未来基于OpenFlow实现SDN的发展趋势:当网络配置从设备迁移到软件平台时,整个网络的逻辑管控功能将不再受限于专用硬件,而是通过一系列的软件来部署和实现。

      3. 网络管理和安全控制

   利用控制器对网络流量进行监控和调度,是实现未来互联网网络管理和安全控制功能的易行方法。

   当前,基于OpenFlow实现的网管和安全功能主要集中在接入控制、流量转发、负载均衡等方面,而在安全性机制设计、异常检测和恶意攻击防护等方面研究不够。

       4.  数据中心网络部署

   在云计算集群服务器大规模部署的今天,如何实现一个高效、稳定、可控的数据中心网络?

    Google在其数据中心全面采用基于OpenFlow的SDN技术,大幅度提高其数据中心之间的链路利用率。

      5.  面向大规模网络的部署

  真实网络面临的异构环境、性能需求、可扩展性、海量数据和域间路由等都可能成为制约面向大规模网络的部署。

  虽然Onix已经提出了一套面向较大规模真实网络的部署方案,并提出新的实现技术,但是真实网络中外部控制器是否能够真的扩展,还是一个问题。

      6.  面向未来互联网研究的部署

   在面向未来互联网的实验平台下,通过基于 OpenFlow 的 SDN 控制转发分离架构,将有利于实现新型网络控制协议和相关的网络测量机制。

在世界各国针对未来互联网设计蓬勃发展的推动下,未来互联网研究将在增加网络可控性的基础上逐渐展开,基于 OpenFlow 的SDN 技术有可能发展成为面向未来互联网的新型设计标准。

 

 

 

你可能感兴趣的:(网络)