一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种私有云内基于SRv6的SFC实现方法及装置与流程

2022-10-13 06:54:00 来源:中国专利 TAG:

一种私有云内基于srv6的sfc实现方法及装置
技术领域
1.本发明涉及it云计算技术领域,尤其涉及一种私有云内基于srv6的sfc实现方法及装置。


背景技术:

2.为满足用户的业务数据安全、稳定等需求,提供各种基础保障或增值优化服务,在传统网络中,经常使用业务功能节点(如负载均衡、防火墙等)实现服务供应。但这些业务功能节点往往与网络拓扑和硬件资源耦合紧密,各个业务功能节点均为专用的设备形态且部署繁杂。当开通新业务或业务流程发生变更时,需要更改网络拓扑,甚至改造和升级网络设备,对周边的支撑系统也会有影响。随着近年来云计算网络的普及、虚拟化技术的成熟和应用,网络功能动态加载,资源按需分配,业务灵活开通等特点明显加强,而服务供应也必不可少,如果还使用传统网络的服务供应部署方式,已无法满足新时代云计算网络灵活多变的组网特点,更无法满足客户多种多样的业务需求。因此,服务链sfc技术被提出,该技术从满足客户业务数据安全、稳定等需求角度出发,更契合新时代网络特点,使业务功能灵活性得到更大的发挥。
3.但是,现有技术中云内sfc方案都是使用ipv4基于策略路由或者静态路由的方式,通过nsh标准化服务链技术实现,这些方案仍存在一定程度的限制,配置时需要根据流量的转发路径,基于每条业务流,依次在各个业务节点上逐跳配置。当sfc服务链扩容时,其配置复杂度也随之几何上升。由此可见,现有方案操作复杂,可扩展性差,不利于sfc的落地推广。


技术实现要素:

4.针对现有技术中存在的问题,本发明实施例提供一种私有云内基于srv6的sfc实现方法及装置。
5.本发明实施例提供一种私有云内基于srv6的sfc实现方法,包括:接收到sfc服务链的业务配置信息时,根据所述业务配置信息生成对应的业务链规则,并将所述业务链规则发送至ovs, ovs依据所述业务链规则生成服务链信息表并生成对应的datapath流表;基于所述业务配置信息中的第一业务节点,发送对应的数据包至ovs,并检测所述数据包是否满足预设的sfc封装要求,所述sfc封装要求包括:所述数据包是否命中所述datapath流表、是否需要sfc、是否命中所述服务链信息表;当所述数据包满足预设的sfc封装要求时,对所述数据包进行sfc封装,包括:根据服务链信息表中的sid信息封装srh报文头、根据所述业务配置信息中的下一跳信息封装ipv6报文头;将封装后的数据包根据所述下一跳信息发送至第二业务节点,所述第二业务节点的ovs对所述数据包进行识别,包括:所述数据包是否包含ipv6报文头、是否包含srh报文
头、并查询数据包内五元组是否命中所述服务链信息表;当所述识别结果通过时,根据ipv6报文头中的目的地址判断所述第二业务节点是否为目的地址,当所述第二业务节点为目的地址时,对所述数据包进行解包转发至所述目的地址对应的vpc的vport。
6.在其中一个实施例中,所述方法还包括:获取所述数据包中的关键字段,查询所述datapath流表中是否包含所述关键字段的记录;若所述datapath流表中包含所述关键字段的记录,获取所述关键字段的action,判断所述action是否需要执行sfc操作;若所述action需要执行sfc操作,获取五元组信息,并依据所述五元组信息查看所述服务链信息表是否包含对应记录,若包含五元组信息的对应记录,则获取服务链信息表中对应的sid信息。
7.在其中一个实施例中,所述方法还包括:若所述datapath流表中不包含所述关键字段的记录,将所述数据包上传至用户态;用户态获取所述数据包中的关键字段,查询openflow流表中是否包含所述关键字段的的记录;所述若所述datapath流表中包含所述关键字段的记录,获取所述关键字段的action,包括:若所述openflow流表中包含所述关键字段的记录,获取所述关键字段的action。
8.在其中一个实施例中,所述方法还包括:将所述openflow流表中与所述关键字段对应的规则下发至内核态,生成对应的datapath流表。
9.在其中一个实施例中,所述方法还包括:当所述第二业务节点不为目的地址时,将ipv6报文中的目的地址修改为所述第二业务节点的下一跳节点,并对srh中的指针和剩余跳数进行更新;所述对所述数据包进行解包转发至所述目的地址对应的vpc的vport,包括:对所述数据包进行解包转发至第二业务节点的下一跳节点对应的vpc的vport。
10.在其中一个实施例中,所述sfc服务链中的业务类型,包括:负载均衡、防火墙、网页安全、过滤器。
11.本发明实施例提供一种私有云内基于srv6的sfc实现装置,包括:接收模块,用于接收到sfc服务链的业务配置信息时,根据所述业务配置信息生成对应的业务链规则,并将所述业务链规则发送至ovs,ovs依据所述业务链规则生成服务链信息表并生成对应的datapath流表;发送模块,用于基于所述业务配置信息中的第一业务节点,发送对应的数据包至ovs,并检测所述数据包是否满足预设的sfc封装要求,所述sfc封装要求包括:所述数据包是否命中所述datapath流表、是否需要sfc、是否命中所述服务链信息表;封装模块,用于当所述数据包满足预设的sfc封装要求时,对所述数据包进行sfc封装,包括:根据服务链信息表中的sid信息封装srh报文头、根据所述业务配置信息中的下
一跳信息封装ipv6报文头;识别模块,用于将封装后的数据包根据所述下一跳信息发送至第二业务节点,所述第二业务节点的ovs对所述数据包进行识别,包括:所述数据包是否包含ipv6报文头、是否包含srh报文头、并查询数据包内五元组是否命中所述服务链信息表;解包模块,用于当所述识别结果通过时,根据ipv6报文头中的目的地址判断所述第二业务节点是否为目的地址,当所述第二业务节点为目的地址时,对所述数据包进行解包转发至所述目的地址对应的vpc的vport。
12.在其中一个实施例中,所述装置还包括:查询模块,用于获取所述数据包中的关键字段,查询所述datapath流表中是否包含所述关键字段的记录;判断模块,用于若所述datapath流表中包含所述关键字段的记录,获取所述关键字段的action,判断所述action是否需要执行sfc操作;查看模块,用于若所述action需要执行sfc操作,获取五元组信息,并依据所述五元组信息查看所述服务链信息表是否包含对应记录,若包含五元组信息的对应记录,则获取服务链信息表中对应的sid信息。
13.本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述私有云内基于srv6的sfc实现方法的步骤。
14.本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述私有云内基于srv6的sfc实现方法的步骤。
15.本发明实施例提供的一种私有云内基于srv6的sfc实现方法及装置,接收到sfc服务链的业务配置信息时,根据业务配置信息生成对应的业务链规则,并将业务链规则发送至ovs, ovs依据业务链规则生成服务链信息表并生成对应的datapath流表;基于业务配置信息中的第一业务节点,发送对应的数据包至ovs,并检测数据包是否满足预设的sfc封装要求,sfc封装要求包括:数据包是否命中所述datapath流表、是否需要sfc、是否命中服务链信息表;当数据包满足预设的sfc封装要求时,对数据包进行sfc封装,包括:根据服务链信息表中的sid信息封装srh报文头、根据业务配置信息中的下一跳信息封装ipv6报文头;将封装后的数据包根据下一跳信息发送至第二业务节点,第二业务节点的ovs对数据包进行识别,包括:数据包是否包含ipv6报文头、是否包含srh报文头、并查询数据包内五元组是否命中服务链信息表;当识别结果通过时,根据ipv6报文头中的目的地址判断第二业务节点是否为目的地址,当第二业务节点为目的地址时,对数据包进行解包转发至所述目的地址对应的vpc的vport。这样能够通过基于srv6在云内实现sfc的方法,用户仅通过下发sfc路径信息并关联需要服务的对话,就可方便快捷地在云上使用sfc,并且流量不受部署节点的影响,可以做到在云内随处使用sfc功能。由于方案使用了ipv6,当网络规模扩大时,该方案依然适用,且因为srv6自带地址列表的特性,优化了云寻址等功能,大大提高了速度和性能。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1为本发明实施例中一种私有云内基于srv6的sfc实现方法的流程图;图2为本发明另一实施例中一种私有云内基于srv6的sfc实现方法的流程图;图3为本发明另一实施例中一种私有云内基于srv6的sfc实现方法的另一流程图;图4为本发明实施例中一种私有云内基于srv6的sfc实现装置的结构图;图5为本发明实施例中电子设备结构示意图。
具体实施方式
18.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.图1为本发明实施例提供的一种私有云内基于srv6的sfc实现方法的流程示意图,如图1所示,本发明实施例提供了一种私有云内基于srv6的sfc实现方法,包括:步骤s101,接收到sfc服务链的业务配置信息时,根据所述业务配置信息生成对应的业务链规则,并将所述业务链规则发送至ovs,ovs依据所述业务链规则生成服务链信息表并生成对应的datapath流表。
20.具体地,接收到针对sfc服务链(service function chain服务链)的业务配置信息时,其中,sfc服务链中的业务类型可以包括但不限于负载均衡、防火墙、网页安全、过滤器等业务,然后,业务系统的控制面可以根据业务配置信息生成对应的业务链规则,并将业务链规则发送至ovs(open 可以vswitch 开源的虚拟交换机,ovs依据业务链规则生成对应的服务链信息表,比如五元组信息等,并生成对应的datapath流表(ovs的内核态流表)。
21.步骤s102,基于所述业务配置信息中的第一业务节点,发送对应的数据包至ovs,并检测所述数据包是否满足预设的sfc封装要求,所述sfc封装要求包括:所述数据包是否命中所述datapath流表、是否需要sfc、是否命中所述服务链信息表。
22.具体地,基于业务配置信息中的第一业务节点,即业务初始节点,生成对应的业务数据包发送至ovs的虚拟机端口,其中,业务数据包内容可以vpc(virtual private cloud私有云)的sfc信息生成,ovs的虚拟机端口中的srv6-sfc识别模块接收到数据包后,检测数据包是否满足预设的sfc封装要求,其中,sfc封装要求依次包括:数据包是否命中所述datapath流表、是否需要sfc、是否命中服务链信息表,需要依次满足3项封装需求,具体包括:获取数据包中的关键字段,查询datapath流表中是否包含关键字段的记录,其中,关键字段可以包括ip字段等信息;若datapath流表中包含关键字段的记录,获取关键字段的action,判断action是否需要执行sfc操作;若action需要执行sfc操作,获取五元组信息,并依据五元组信息查看服务链信息表是否包含对应记录,若包含五元组信息的对应记录,则获取服务链信息表中对应的sid信息。
23.步骤s103,当所述数据包满足预设的sfc封装要求时,对所述数据包进行sfc封装,
包括:根据服务链信息表中的sid信息封装srh报文头、根据所述业务配置信息中的下一跳信息封装ipv6报文头。
24.具体地,当数据包满足预设的sfc封装要求时,将数据包发送至ovs的srv6-sfc处理模块,封装过程包括:从vpc(virtual private cloud私有云)的数据,将依据五元组命中的服务链信息表中的路由信息列表进行sfc封包操作,srv6-sfc处理模块将依序压入sid信息到srh中,然后将下一跳目的地址封装到ipv6报文头中,形成“ipv6-srh-payload”报文,最后转发到下一跳对应的端口。
25.步骤s104,将封装后的数据包根据所述下一跳信息发送至第二业务节点,所述第二业务节点的ovs对所述数据包进行识别,包括:所述数据包是否包含ipv6报文头、是否包含srh报文头、并查询数据包内五元组是否命中所述服务链信息表。
26.具体地,将封装后的数据包根据下一跳信息发送至第二业务节点,第二业务节点的ovs中物理端口接收到数据包,则通过ovs的srv6-sfc识别模块对数据包进行识别,识别过程依次包括:数据包是否包含ipv6报文头、是否包含srh报文头、并查询数据包内五元组是否命中服务链信息表。
27.步骤s105, 当所述识别结果通过时,根据ipv6报文头中的目的地址判断所述第二业务节点是否为目的地址,当所述第二业务节点为目的地址时,对所述数据包进行解包转发至所述目的地址对应的vpc的vport。
28.具体地,当数据包的识别结果通过时,将数据包发送至srv6-sfc处理模块,srv6-sfc处理模块检测ipv6报文头中的目的地址判断第二业务节点是否为目的地址,第二业务节点为目的地址时,对数据包进行解包转发至所述目的地址对应的vpc的vport(视窗配置表),即说明当前sid是业务路径信息中的最后一个,则解封ipv6、srh等报文头,将数据包发送到对应的vpc所对应的vport上。
29.另外,当第二业务节点不为目的地址时,将ipv6报文中的目的地址修改为第二业务节点的下一跳节点,即将ipv6报文头目的地址更新为下一跳的sid值,并对srh中的指针和剩余跳数进行更新,然后将报文转发到下一跳对应的vport上。
30.本发明实施例提供的一种私有云内基于srv6的sfc实现方法,接收到sfc服务链的业务配置信息时,根据业务配置信息生成对应的业务链规则,并将业务链规则发送至ovs, ovs依据业务链规则生成服务链信息表并生成对应的datapath流表;基于业务配置信息中的第一业务节点,发送对应的数据包至ovs,并检测数据包是否满足预设的sfc封装要求,sfc封装要求包括:数据包是否命中所述datapath流表、是否需要sfc、是否命中服务链信息表;当数据包满足预设的sfc封装要求时,对数据包进行sfc封装,包括:根据服务链信息表中的sid信息封装srh报文头、根据业务配置信息中的下一跳信息封装ipv6报文头;将封装后的数据包根据下一跳信息发送至第二业务节点,第二业务节点的ovs对数据包进行识别,包括:数据包是否包含ipv6报文头、是否包含srh报文头、并查询数据包内五元组是否命中服务链信息表;当识别结果通过时,根据ipv6报文头中的目的地址判断第二业务节点是否为目的地址,当第二业务节点为目的地址时,对数据包进行解包转发至所述目的地址对应的vpc的vport。这样能够通过基于srv6在云内实现sfc的方法,用户仅通过下发sfc路径信息并关联需要服务的对话,就可方便快捷地在云上使用sfc,并且流量不受部署节点的影响,可以做到在云内随处使用sfc功能。由于方案使用了ipv6,当网络规模扩大时,该方案依
然适用,且因为srv6自带地址列表的特性,优化了云寻址等功能,大大提高了速度和性能。
31.在另一实施例中,私有云内基于srv6的sfc实现方法可能存在业务配置信息中的第一业务节点中的ovs第一次接收到数据包时(“第一次接收到数据包时”或“接收数据包且数据包没有命中datapath流表时”)的情况,如图2、图3所示,若datapath流表中不包含关键字段的记录,将数据包上传至用户态;用户态获取数据包中的关键字段,查询openflow流表中是否包含关键字段的的记录;并且根据openflow流表中包含所述关键字段的记录,获取关键字段的action,后续步骤与上述实施例中的处理步骤相同,并在对数据包进行解包转发至所述目的地址对应的vpc的vport之后,将所述openflow流表中与所述关键字段对应的规则下发至内核态,生成对应的datapath流表。
32.图4为本发明实施例提供的一种私有云内基于srv6的sfc实现装置,包括:接收模块s201、发送模块s202、封装模块s203、识别模块s204、解包模块s205,其中:接收模块s201,用于接收到sfc服务链的业务配置信息时,根据所述业务配置信息生成对应的业务链规则,并将所述业务链规则发送至ovs, ovs依据所述业务链规则生成服务链信息表并生成对应的datapath流表。
33.发送模块s202,用于基于所述业务配置信息中的第一业务节点,发送对应的数据包至ovs,并检测所述数据包是否满足预设的sfc封装要求,所述sfc封装要求包括:所述数据包是否命中所述datapath流表、是否需要sfc、是否命中所述服务链信息表。
34.封装模块s203,用于当所述数据包满足预设的sfc封装要求时,对所述数据包进行sfc封装,包括:根据服务链信息表中的sid信息封装srh报文头、根据所述业务配置信息中的下一跳信息封装ipv6报文头。
35.识别模块s204,用于将封装后的数据包根据所述下一跳信息发送至第二业务节点,所述第二业务节点的ovs对所述数据包进行识别,包括:所述数据包是否包含ipv6报文头、是否包含srh报文头、并查询数据包内五元组是否命中所述服务链信息表。
36.解包模块s205,用于当所述识别结果通过时,根据ipv6报文头中的目的地址判断所述第二业务节点是否为目的地址,当所述第二业务节点为目的地址时,对所述数据包进行解包转发至所述目的地址对应的vpc的vport。
37.在一个实施例中,装置还可以包括:查询模块,用于获取所述数据包中的关键字段,查询所述datapath流表中是否包含所述关键字段的记录。
38.判断模块,用于若所述datapath流表中包含所述关键字段的记录,获取所述关键字段的action,判断所述action是否需要执行sfc操作。
39.查看模块,用于若所述action需要执行sfc操作,获取五元组信息,并依据所述五元组信息查看所述服务链信息表是否包含对应记录,若包含五元组信息的对应记录,则获取服务链信息表中对应的sid信息。
40.关于私有云内基于srv6的sfc实现装置的具体限定可以参见上文中对于私有云内基于srv6的sfc实现方法的限定,在此不再赘述。上述私有云内基于srv6的sfc实现装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
41.图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)301、存储器(memory)302、通信接口(communications interface)303和通信总线304,其中,处理器301,存储器302,通信接口303通过通信总线304完成相互间的通信。处理器301可以调用存储器302中的逻辑指令,以执行如下方法:接收到sfc服务链的业务配置信息时,根据业务配置信息生成对应的业务链规则,并将业务链规则发送至ovs, ovs依据业务链规则生成服务链信息表并生成对应的datapath流表;基于业务配置信息中的第一业务节点,发送对应的数据包至ovs,并检测数据包是否满足预设的sfc封装要求,sfc封装要求包括:数据包是否命中所述datapath流表、是否需要sfc、是否命中服务链信息表;当数据包满足预设的sfc封装要求时,对数据包进行sfc封装,包括:根据服务链信息表中的sid信息封装srh报文头、根据业务配置信息中的下一跳信息封装ipv6报文头;将封装后的数据包根据下一跳信息发送至第二业务节点,第二业务节点的ovs对数据包进行识别,包括:数据包是否包含ipv6报文头、是否包含srh报文头、并查询数据包内五元组是否命中服务链信息表;当识别结果通过时,根据ipv6报文头中的目的地址判断第二业务节点是否为目的地址,当第二业务节点为目的地址时,对数据包进行解包转发至所述目的地址对应的vpc的vport。
42.此外,上述的存储器302中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
43.另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:接收到sfc服务链的业务配置信息时,根据业务配置信息生成对应的业务链规则,并将业务链规则发送至ovs, ovs依据业务链规则生成服务链信息表并生成对应的datapath流表;基于业务配置信息中的第一业务节点,发送对应的数据包至ovs,并检测数据包是否满足预设的sfc封装要求,sfc封装要求包括:数据包是否命中所述datapath流表、是否需要sfc、是否命中服务链信息表;当数据包满足预设的sfc封装要求时,对数据包进行sfc封装,包括:根据服务链信息表中的sid信息封装srh报文头、根据业务配置信息中的下一跳信息封装ipv6报文头;将封装后的数据包根据下一跳信息发送至第二业务节点,第二业务节点的ovs对数据包进行识别,包括:数据包是否包含ipv6报文头、是否包含srh报文头、并查询数据包内五元组是否命中服务链信息表;当识别结果通过时,根据ipv6报文头中的目的地址判断第二业务节点是否为目的地址,当第二业务节点为目的地址时,对数据包进行解包转发至所述目的地址对应的vpc的vport。
44.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其
中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
45.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
46.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献