H3C VCF控制器服务链技术白皮书Copyright © 2016 杭州华三通信技术有限公司版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
本文档中的信息可能变动,恕不另行通知。
目录1 概述 (1)1.1 传统网络中的业务功能 (1)1.2 SDN服务链 (1)2 SDN服务链技术 (1)2.1 报文中服务链特征的封装格式 (1)2.1.1 扩展VXLAN头中保留字段的方式 (2)2.1.2 NSH方式 (2)2.2 H3C SDN服务链 (3)2.2.1 概念介绍 (3)2.2.2 转发流程 (4)2.2.3 服务链流分类节点的类型 (5)2.2.4 服务链服务节点的类型 (5)3 H3C SDN服务链部署模式 (6)3.1 虚拟路由器VSR做网关的服务链应用 (6)3.1.1 灵活服务链模型 (6)3.1.2 OpenStack服务链模型 (6)3.2 物理网络设备做VXLAN网关的服务链应用 (7)3.2.1 灵活服务链模型 (7)3.2.2 OpenStack模型 (8)3.3 第三方安全设备服务链代理应用 (9)4 H3C SDN服务链编排 (10)4.1 OpenStack自动编排 (10)4.2 SDN控制器自动编排 (11)5 H3C SDN服务链的特点 (12)6 附录 (13)6.1 GBP (13)1 概述1.1 传统网络中的业务功能数据报文在网络中传递时,往往需要经过各种各样的业务节点,才能保证网络能够按照设计要求,提供给用户安全、快速、稳定的网络服务。
这些业务节点(Service Node)包括熟知的防火墙(FireWalls)、入侵检测(Intrusion Prevention System)、负载均衡(Load Balancing)等。
通常,网络流量需要按照业务逻辑所要求的既定顺序穿过这些业务点,才能实现所需要的安全业务。
但是,传统安全业务的部署,通常都是基于物理拓扑,通过手工配置多种策略,将安全设备串行到业务流量路径当中。
这种部署和运维的模式存在诸多问题:•网络设备之间的耦合性大,拓扑依赖严重。
新业务上线、扩容或业务发生变更时,需要手工调整整个转发路径下设备的策略,无法满足业务快速迭代、变更的需求;•数据包在业务路径中转发时,往往要经过多次分类,即多次解包、封包的过程,效率低下;•在逐渐普及的Overlay虚拟化组网中,网络设备需要越过新增的Overlay报文头对内层报文进行检测,检测方法匮乏,性能损耗也更加严重;•安全设备无法池化,扩展性差,一旦出现性能不足,通常只能更换更高端的设备;•安全设备的能力无法在多业务间共享。
在新的网络架构下,如何利用新的技术将安全业务更好的融合进来,从而提供便捷、安全的网络架构,是各方面临的难题。
1.2 SDN服务链随着Overlay网络的发展,虚拟网络和物理网络得以分离,虚拟网络承载于物理网络之上,更加抽象;而SDN技术和NFV(Network Functions Virtualization,网络功能虚拟化)技术的不断发展,也让数据中心的网络控制变得更加灵活,更具有扩展性。
在SDN Overlay数据中心中,同样需要网络服务节点提供必要的安全业务处理能力。
SDN以其控制转发分离的特性,通过对基础网络的虚拟化和逻辑抽象,通过网络的集中控制部件——SDN控制器的控制,可以引导转发流量自动穿过服务节点,从而实现拓扑无关的、灵活、便捷、高效、安全地调配转发流量到服务节点上进行安全业务的处理,从而形成SDN定义的Overlay虚拟网络中的服务链(Service Function Chaining)。
在SDN Overlay网络中,服务链可以理解为一种基于应用的业务形式。
2 SDN服务链技术2.1 报文中服务链特征的封装格式基于SDN Overlay的服务链,需要有对应的字段来标识数据报文中服务链的特征,每条Chain都有自己的标识,数据包需要携带这些特征,例如:数据包应该走哪一条服务链,服务链有几跳等等。
目前,对于数据报文中这些特征的标识,有如下两种方式。
2.1.1 扩展VXLAN头中保留字段的方式充分利用现有成熟的支持VXLAN报文的芯片,扩充其8 Bytes的VXLAN头。
H3C SDN服务链对VXLAN报文的扩展如图1所示。
图1SDN服务链对VXLAN报文的扩展扩展方式为,从VXLAN保留字段中:•取出3 Bytes作为Service Path ID,记录服务链编号,用于唯一确定一个服务链;•取出1Byte作为Order counter,当一个服务链多次进入一个主机下的不同服务点时,可以通过匹配Order counter确定是第几次进入该服务节点。
这种方式对硬件网络设备无依赖,仅需网络设备支持VXLAN即可,简单易行,且能满足绝大多数服务链定义的需求。
但是由于没有标准推广,存在一定的技术壁垒。
2.1.2 NSH方式NSH(Network Service Header,网络服务头)是专门为服务链设计的封装格式,并且在OpenDaylight的SFC项目中采用。
其封装格式如图2所示。
图2NSH封装格式从上图可以看到,NSH对VXLAN报文又进行了扩展,可以携带更多的业务信息,完成更加复杂的业务处理;扩展性较强,可以支持携带多个业务上下文信息;并且其带有Protocol Type字段,因此可以承载二层用户报文、三层用户报文,较为灵活。
NSH可以承载于VXLAN、GRE等多种Overlay封装中。
但是,由于对标准VXLAN封装又进一步扩展,所以需要硬件网络设备的芯片支持这种扩展,而新型芯片推出和扩展并非易事,需要推动芯片相关的整个产业链的认同和真正的实际需求,才有可能大规模的生产,从而降低芯片乃至整个网络架构的成本。
短期看,支持NSH的芯片尚无法大规模投产应用。
在当前形势下,H3C SDN服务链缺省使用扩展VXLAN头中保留字段的方式。
2.2 H3C SDN服务链2.2.1 概念介绍H3C SDN服务链,基于网络的核心控制部件SDN控制器——H3C VCF控制器进行部署。
VCF控制器根据租户需求,定义、创建服务链,并部署服务链上每个节点的业务逻辑。
VCF控制器将需要进入服务链处理的用户报文特征下发到接入软件/硬件VTEP,VTEP设备根据相应的报文特征将数据报文引入服务链。
H3C SDN服务链中具有如下角色:•流分类节点:原始数据报文的接入节点。
按照定义的流分类规则匹配数据报文,对报文做服务链的Overlay封装,并将其转发到服务链中处理。
•服务节点:服务节点作为资源被分配使用,它的物理位置可以是任意的、分散的,通过SDN 对服务链的定义和引流串联,完成预定义的工作。
服务节点可以是防火墙(FireWalls)、负载均衡(LoadBalance)、入侵检测(Intrusion Prevention System)等资源/资源池。
•代理节点:对于不支持服务链封装的服务节点,需要通过代理节点剥离服务链封装,再转交给服务节点处理。
•控制平面:负责管理服务链域内的设备以及创建服务链,并将服务节点的配置定义下发到相关节点上。
在H3C SDN网络中,通过VCF控制器实现。
2.2.2 转发流程图3服务链典型示意图图3中各角色及其对报文的处理方式如下:•VCF控制器:H3C SDN控制器。
作为网络资源池的唯一控制点,它控制了虚拟化网络,并且通过对虚拟网络进行抽象和编排,定义服务链特征。
VTEP和服务节点上的转发策略都由控制器下发。
•服务链流分类节点(VTEP1):原始报文通过VTEP1接入VXLAN网络,并直接进行流分类以确定报文是否需要进入服务链。
如果需要进入服务链,则为报文进行VXLAN和服务链ID封装,并转发到服务链首节点进行处理。
•服务链首节点(SF1):服务链中对报文进行处理的首个服务节点。
首节点对数据报文进行服务处理后,将数据报文继续做服务链封装并转发给服务链的下一个服务节点。
•服务链尾节点(SF2):服务链中对报文进行处理的最后一个服务节点。
尾节点对数据报文进行服务处理后,解除其服务链封装,并将报文做普通VXLAN封装后转发给目的VTEP。
如果尾节点不具备根据用户报文寻址能力,则需要将用户报文送到网关(VTEP3),网关再查询目的VTEP进行转发。
报文转发说明如下:•①⑥Native以太报文,IP(src)---->IP(dst)•② VXLAN+业务链报文,外层: IP(VTEP1)---->IP(SF1)•③ VXLAN+业务链报文,外层: IP(SF1)---->IP(SF2)•④ VXLAN报文,外层: IP(SF2)---->IP(VTEP3)•⑤ VXLAN报文,外层: IP(VTEP3)---->IP(VTEP4)具体的匹配转发流程描述如下:•VM首包上送控制器处理时,在VCF控制器上解析Packet-In报文,根据报文目的地址确定是虚拟网络内的东西向流量还是通往传统网络的南北向流量。
如果是南北向流量则将报文转发到网关设备,报文后续的处理由网关设备负责。
•如果是东西向流量,从收到的Packet-In报文中提取源端口,并根据源端口确定源subnet、network、router信息;同时根据Packet-In报文的目的IP地址获取目的VM连接的目的端口,并根据目的端口确定目的subnet、network、router信息。
•对于东西向流量,根据报文特征进行服务链匹配,首先使用源端口和目的端口的属性与服务链配置进行匹配,如果找到匹配的服务链,则下发导流流表;如果未找到匹配的服务链,则下发东西向卸载的流表项(即非服务链转发)。
•如果存在匹配的服务链,则VCF控制器会确定服务链所在VTEP的VTEP IP,并向VTEP和后续处理节点下发流表项,流表项格式如下:{Match:匹配port & vlan & 五元组的普通报文进入服务链或匹配tunnel & vni & 五元组的VXLAN报文进入服务链{Action:vni & service chain id & order counter & tunnel,指向服务链首节点所在的服务节点,order counter =1。
•当匹配到多条服务链时,按照最精确匹配的原则确定实际使用的服务链配置。
服务链特征组所支持的特征按照精确程度从低到高排序依次为:Routers, Networks, Subnets, Ports。
2.2.3 服务链流分类节点的类型H3C SDN服务链支持如下几种流分类节点:•支持服务链的vSwitch:vSwitch收到虚拟机报文后,直接做流分类;在vSwitch上进行服务链Overlay封装。