一种基于SDN的跨域服务协商方案
2018-09-21刘泽宇沈苏彬
刘泽宇,沈苏彬
(南京邮电大学 计算机学院,江苏 南京 210003)
1 概 述
除了尽力而为的互联网之外,支持不同服务等级的流量差异化和专业化服务也是一个值得研究的问题。然而,现有的互联网是静态和不灵活的,因此,网络的配置和服务提供仍然是挑战。
随着大量网络设备和服务的出现,服务提供商面临越来越多的业务问题,同时,端用户对服务质量的期望随着个人和家庭设备的普及以及流量的类型的变化而变化[1]。实时和流媒体娱乐内容已经取代了点对点作为互联网流量的主要贡献者。在线视频观看通过尽力而为的网络来保持服务体验质量仍然是一个挑战[2]。同时连接互联网的家用设备数量的快速增长增加了峰值负荷和接入链路的拥挤程度,越来越多的服务提供商通过引入SLA(服务等级约定)技术来确保用户满意度。文中通过引入SDN技术实现多域间服务协同,以提高服务质量。
当今的互联网和电信网都是联邦式控制结构[3],也就是划分为多个不同的管理域。这样,就必须侧重多个不同管理域的SDN技术研究,管理域间的协商包括:SP(服务提供商)与NP(网络提供商)间的协商和不同NP之间的协商。协商的内容有:业务的验证、授权和业务性能数据的获得[4]。
因此,每个NP的业务管理应该具有提供业务验证、授权和获取性能数据的相应接口,供SP调用。根据接口用于不同管理域间的特点,该接口采用Web Service实现。
SLA[5]即服务等级约定,是服务提供商和用户对所提供的服务及其优先权以及在服务提供和使用过程中各自的责任和义务等方面达成的约定。SLA的实质就是一种建立在服务提供商和最终消费用户之间以及提供商和提供商之间的服务契约。
SLA技术既可以帮助服务提供商针对不同用户群推出合适的产品和服务,使现有的IT设施发挥出最佳水平并从中受益,又能通过质量报告等形式满足用户的知情权,提高用户的感知度。由此可见,SLA对服务提供商和服务消费者双方都有很多益处,将会有越来越多的服务提供商向用户提供SLA。
ONF(open networking foundation,开放网络基金会)提出将SDN架构分为三层,其中数据层由各个与控制决策机构解耦的转发节点互联而成,控制层由单个或多个逻辑上集中的控制器组成,应用层直接面向用户为它们提供所需的业务功能。应用可编程接口不仅可以提供上层应用调用,也可以通过控制层内其他网络控制单元的调用,使得其他网络控制单元可以转发并不与某个网络控制单元直接连接的应用可编程调用[6-7]。
利用SDN中流表可定制[8]的特点,结合策略控制系统/控制器,网络中可便利地实现对QoS的灵活定制,并基于控制器对资源的统一管理快速实现用户/业务的带宽控制。
SDN架构要求定义统一的应用层和控制层间接口,提供开放的API,使得用户通过服务界面订购或请求对网络资源的使用与分配,服务提供商则按照用户意愿或管控要求自动将所需资源配置给用户的业务流程[9]。
SDN采用的集中控制机制,可以实现对底层网络设备的统一管理,统一配置甚至是自动配置,能减少配置错误,保证网络安全。同时,也从架构上提供了统一认证的基础[10]。
SDN架构中,控制层提供了丰富的开放的API接口。通过这些API接口,第三方应用可以直接调用抽象后的网络资源,无需了解底层网络实现的细节,从而提升了网络服务和能力,优化了网络的计算、存储等资源。
(1)问题分析。
在现有的网络运营模式中,SP、NP和用户并存[11]。SP、NP都属于服务提供者,用户是最终消费者。SP、NP的分离打破了传统的网络运营模式,符合下一代互联网发展的趋势,也迎合用户的个性化业务需求。然而SP的独立运营需要NP的支持,一个服务提供商可能是另一个服务提供商的用户,进而形成一个服务链并导致运营管理方式的不同;不同NP由于其服务能力及运营管理方式的不同,对外提供的网络服务能力也各不相同;SP和端用户又可能位于不同的NP管理范围内,上述原因使得端到端的服务保障愈趋复杂。
(2)主要思路。
文中的主要思想是每个用户能够选择网络运营商请求服务,该服务是在接入/汇聚网络中处理的任何信息(视频、数据),这就意味着服务提供商能够对网络运营商施加一些要求。比如,视频点播或视频会议等某些服务的传送需要服务提供商的支持来确保一定的QoS。
重点是使用OpenFlow技术对方案进行实现。OpenFlow是一种面向流的技术,其中网络控制功能与分组转发分离。在这种情况下,控制器可以通过定义转发表来控制数据包的转发。
通过使用视频流和文件传输作为两个用例,首先开发域间管理架构和相关的API,允许服务提供商动态地请求特定的流量通道,即视频流可以在指定的持续时间内具有专用带宽的快速通道,而大型文件传输则利用慢通道,利用非时间关键流量的弹性,为宽带链路上的其他流量提供更好的性能。通过开源的SDN平台,模拟真实流量跟踪来评估方法的有效性,在测试台中进行实验,仿真运行应用程序,以演示用户的服务请求如何从方案中受益。
2 方案设计
在实际的端到端业务链中,会包含多种实体,如服务提供商(service provider,SP)、网络提供商(network provider,NP)以及端用户。随着不断的发展和成熟,SP和NP将承担更多的业务管理功能。为了完成域间服务需要提供商解决一个问题:提供商之间的服务约定。当服务建立之后与NP一起完成对端用户的端到端QoS的业务协商、配置和性能管理等功能。因此,域间协商的概念不再局限于传统的NP之间,SP与NP以及NP之间也应该建立高效的协商机制。
服务提供商和用户之间的基本关系如图1所示,SLA的实质就是一种建立在服务提供商和最终消费用户之间以及提供商和提供商之间的服务契约。
图1 服务提供商-用户关系
提供商选择机制允许用户在访问网络并请求服务之前自主决定他们想要使用的网络运营商。该机制是由扫描阶段和安装阶段组成的2层服务发现机制[12]。首先用户根据其当前位置扫描可用网络运营商列表,然后根据运营商的身份或每个运营商可提供的服务,用户选择其中一个,并启动安装阶段。在此步骤中,用户根据所选的网络运营商来请求一个2层配置[13]。最后,用户设备创建一个新的虚拟接口配置参数,如MAC地址。
提供商选择机制最终的结果是在客户端创建一个新的虚拟网络接口,并提供适当的配置,以便访问网络提供商。
为了将此选择机制与OpenFlow集成,需要对相关业务进行详细描述。当客户新的扫描请求进入OpenFlow交换机时,如果匹配不成功,会把数据包传送到控制器,控制器检查以太网类型(被标识为选择协议)。然后,控制器进入学习过程并注册与客户端相关联的物理端口。在这一点上,来自网络运营商的服务器必须先在控制器上注册。
服务提供商必须在请求服务时对其客户进行认证,并对网络运营商施加一系列要求以成功提供服务。基本思想是:在对客户进行成功认证之后,服务提供商生成描述所请求服务的一组简档。然后将这些配置文件提交给网络运营商,检查全部要求是否可以实现,在肯定的情况下,网络运营商必须建立服务的路径并使用相关的访问控制规则配置边缘节点。
在流量区分的解决方案中,使用基于前缀的转发方法。使用这种方法,通过检查MAC地址的前缀,流量可以容易地与其网络运营商相关联,因此提供商选择机制至关重要。一旦用户配置一个网络运营商新的MAC地址,那么该接口产生的流量就由该网络运营商处理。
如果由某个边缘节点租用的所有MAC地址具有相同的前缀,则可以使用单个转发规则来识别边缘节点后用户的流量,从而减少核心的流表节点。通过这样的解决方案,可以为每个网络运营商提供完整的VLAN范围,从而简化网络管理和提供商间的协议。
基于上述研究,文中提出一种用于在接入链路上创建快速和慢速通道的系统架构,并概述了主要架构,详细阐述了特殊通道的机制。
图2显示了一个接入网拓扑。事件的操作流程如下:用户将内容请求(例如视频链接点击或文件传输命令)发送到SP,SP生成描述所请求服务的一组简档,然后将这些配置文件通过REST接口[14]提交给NP中的控制器,以便为此服务分配资源。
图2 域间协商网络拓扑
接下来,详细描述API,文中考虑两个用例来开发API。快速通道的API详细设计方案:(a)显示身份:请求服务实体的身份;(b)服务类型:类型字段表示正在请求的服务。在这种情况下是最小的带宽保证;(c)流元组:包括源和目标地址、传输协议以及源和目标端口号,用于标识流(符合OpenFlow规范);(d)带宽:流请求的带宽(Mbps);(e)持续时间:请求带宽的持续时间(以秒为单位)。
例如:{type:minbw,nwsrc:10.10.7.31/32,nwdst:10.10.5.18/32,proto:6,sprt: 8080,dprt:22400,bw:7600}。在这种情况下,服务器从10.10.7.31:8080(服务器)到10.10.5.18:22400(客户端)的路径上为TCP请求最小带宽为7.6 Mbps的快速通道。
慢速通道的API详细技术方案:(a)显示身份:请求服务实体的身份;(b)服务类型:这种情况下是批量传输;(c)流元组:包括源和目标地址、传输协议以及源和目标端口号,用于标识流;(d)大小:传输的数据量以兆字节为单位;(e)截止时间:请求带宽的持续时间。
例如:{type:bulk,nwsrc:10.10.7.31/32,nwdst:10.10.5.18/32,proto:6,sprt:24380,dprt:20,len: 1800000,deadline:3600}。在这种情况下,服务器通过TCP从10.10.7.31:24380到10.10.5.18:20的路径请求传输1.8 GB的数据。最后期限参数表示传输可能需要1小时。
慢速通道API用于非时间关键的文件数据传输,NP可以利用弹性为带宽敏感流(例如视频流)和延迟敏感流(例如网页浏览)提供方便。最低带宽保证,由NP按照其所需的速率定期设置,以满足其最后的期限。文中方法是一直保持工作状态(即不浪费空闲容量),响应于需求的变化,并且不需要任何客户端的变化。
3 平台的实现
本节重点介绍OpenFlow相关技术实现问题。如前所述,在OpenFlow中,将进入OpenFlow交换机的每个数据分组与流表进行比较,如果没有先前定义的规则匹配,则将数据分组封装并传输到控制器。一旦数据到达控制器,就对其进行分析,以确定应该做什么,并创建新的流表规则来处理数据分组。
图3为平台实现的高级视图,显示了控制器中主要模块以及模块之间的交互。其中OpenFlow协议用于在交换机和控制器之间交换信息。
图3 平台视图
控制器中的功能模块可以处理两种不同类型的流量。提供商选择处理器用来接收选择控制数据包并插入转发规则,使其能够实现在用户和提供商选择服务器之间进行交换数据。另一方面,流量处理器接收数据包,并插入在用户和认证/授权服务器之间启用服务流量的转发规则。该模块还具有与授权服务器的接口,以接收最终的授权决定,其中携带用于插入/删除新的转发规则的访问控制规则。最后,基于前缀的数据转发决策模块负责数据平面。遵循基于前缀的转发方法,转发目的MAC地址的前3个字节,而不是整个地址。完整的方法依赖于以前的控制在访问网络之前,由选择机制向最终用户分发本地管理的MAC地址。
成功验证后,授权进行。在此步骤中,授权服务器确定客户是否被允许访问所请求的服务,并生成描述服务和关联参数的配置文件。需要此配置文件用于控制访问和设置连接。首先,需要一个新的与控制器相连的通信通道,与数据包从OpenFlow交换机发送到控制器的机制相反,在这种情况下,需要一个授权服务器,为此,在控制器上启用了基于REST的Web服务。因此,一旦授权服务器生成配置文件,就会实现并启动一个新的REST,配置文件会以JSON格式传输到控制器。一旦JSON配置文件进入控制器,它就会被解析为所需的参数,从而激活从客户端到服务的访问。
4 验证和分析
实验环境搭建:使用开源的OpenDayLight控制器开发模块,使用视频和文件传输服务器生成的JSON配置文件来调用API。成功调用API之后,会在OpenFlow交换机上安装流表以指导流量沿着所需的路径。交换机采用64位Linux PC机作为数据层转发设备,具有6个以太网端口。支持200 Mbps的吞吐量。交换机具有默认的尽力而为的FIFO(先进先出)队列,并为控制器中每个流创建了单独队列。
图4显示验证环境,证明了方案的可行性。有两个用户(用户A和用户B),两个服务提供商(服务1和服务2)和两个网络提供商(网络1和网络2),同时建立了四个不同的设置。首先用户A通过提供商选择机制选择网络1,创建了一个新的虚拟接口,并具有从网络1委托的MAC地址。然后,用户A通过请求服务处理器连接服务1。成功授权后,路径1由控制器配置,接着用户A到服务1的流量可以启用。然后用户A再次使用提供商选择机制来选择网络2,用户A就具备两个虚拟接口,每个网络提供商各一个。通信使用新的虚拟接口,用户A启动新的服务处理器来请求与服务2的新连接,最后启用了网络2的路径。类似的过程发生在用户B,用户B也有两个虚拟接口,一个来自网络1,另一个来自网络2,用户分别连接服务1和服务2。
图4 验证实验
通过以上的实验部署,所有数据包都必须由控制器处理,基于SDN集中控制机制,模拟了实际流量。使用参数α作为可用于使用特殊通道的程度,并使用平均意见得分(mean opinion score,MOS)评估服务质量[15]。表1展示了服务质量如何取决于α。
表1 视频传输和文件传输性能
表1中显示低速视频服务一般都能获得3.24正常的性能,而高速率视频服务可以看到明显的区别。α=0时,特殊通道被禁用,导致视频不可观看;α=1时,快速通道配置可以成功为此服务分配带宽。而文件传输在慢速通道下也能达到相同的效果。实验显示在多管理域的情况下,通过快速通道和慢速通道的服务请求,可以为服务提供商提供有效和灵活的网络资源管理。
5 结束语
文中提出的域间服务协同方案,可以使客户在向服务提供商请求服务之前选择要使用的网络运营商。服务提供商可以根据服务请求生成配置文件,然后将配置文件通过REST接口提交给NP中的控制器,有选择地实现快速或慢速通道。基于SDN的集中控制特点实现了针对域间服务协同的特殊通道创建机制。通过模拟实际服务请求,显示通过域间服务协同技术可以减少流表转发次数并改善服务质量。