一种云平台中计算节点实现服务流量同源同宿的方法与流程
- 国知局
- 2024-08-19 14:21:00
本发明属于云计算领域中iaas平台的虚拟网络,尤其涉及一种云平台中计算节点实现服务流量同源同宿的方法。背景技术:::1、在公有云环境中,一些有状态的服务(如lb/vpce)通常要求用户经过该服务节点的请求到达后端虚拟实例后,后端虚拟实例的响应也需要转发到相同服务节点,从而能够保证请求和响应都能命中同一会话,从而避免响应转发到服务集群其他节点,对应会话未同步过来而将响应丢弃。如图1,用户请求访问云平台对外提供的服务(如lb),请求转发到服务集群中的某个节点(如图1中的host1),然后将该请求转发到云内的后端虚拟实例vm。后端虚拟实例的响应请求根据其宿主机的同源同宿的功能将响应转发到请求来时的服务集群节点(host1),根据请求建立的会话信息将响应转发到用户客户端。2、当前实现相同功能的技术主要有以下几种:3、(1)将服务集群(如图1中service1_cluster1)中的不同节点做成主备集群,用户请求转发到服务集群节点的主节点,由于数据报文overlay的目的为虚拟实例,所以其转发的目的位置也确定(即虚拟实例的宿主机)。当请求到达目的虚拟实例后,虚拟实例回复给用户的响应报文在虚拟实例宿主机上,宿主机根据数据报文overlay的报文五元组或三元组信息进行hash,随机转发给服务集群中的某个节点,该节点可能是主节点也可能是备节点。当该节点为备节点,且响应对应的会话未同步过来时,将响应报文转发给主节点,然后命中对应请求的会话,将响应报文转发给用户。然而由于集群区分了主备,集群承载的总负载受限,同时如果响应转发给了会话未同步的备节点,会多一次转发。而且方案实现起来较复杂;4、(2)在服务集群的上游,将用户流量转发给集群中某个节点的对应关系上报给某个集中服务,如请求1转发到服务集群中的host1的关系:<请求1的报文五/三元组信息及目的地址的宿主节点ip信息、host1的ip地址信息>。集中服务将该关系信息下发给目的虚拟实例所在的宿主计算节点,然后计算节点收到响应数据包后根据下发的关系信息将响应报文转发到相应的服务集群host节点。这会造成后端虚拟实例所在的宿主节点配置可能会滞后于响应回复到达的时间,同时不支持集群上的服务修改用户请求报文五/三元组的场景。技术实现思路1、为解决公有云中计算节点转发用户网络数据需要支持同源同宿以及公有云有状态服务集群服务处理的同一请求和响应均需转发到在该会话的服务集群或物理服务节点的问题,本发明提供了一种云平台中计算节点实现服务流量同源同宿的方法,包括:2、当服务集群上线,为所述服务集群分配地址不重叠的集群地址,并基于所述集群地址为服务集群中的节点分配服务ip地址;3、所述服务集群中的节点上线后,基于region管理平台服务自动分配对应服务的服务地址;4、用户访问云平台上虚拟实例的请求,并将所述请求发送到服务集群并调度到节点,经所述节点进行处理后将数据包转发出去,同时将对应服务的指定mac地址填充到数据报文overlay的源mac地址中;5、宿主机上的控制器提前通过region管理平台服务拉取不同服务集群的特定信息,并将所述特定信息转换为ovs的openflow流表信息预下发给虚拟交换机;6、请求报文到达虚拟实例所在的宿主节点后,根据报文源mac匹配特定集群服务的流表信息,然后建立请求与报文underlay的源ip地址信息;7、当虚拟实例的响应报文到达宿主节点后,在虚拟交换机中根据数据报文overlay的目的ip地址匹配所述特定信息,根据建立的请求与报文underlay的源ip地址信息封装vxlan tunnel报文,发送回服务集群。8、优选地,为所述服务集群分配地址不重叠的集群地址,并基于所述集群地址为服务集群中的节点分配服务ip地址的过程包括:9、分别为每个服务集群分配一段cidr和v6cidr,且不同服务集群的地址不重叠;同时再为每个服务集群分配一个特定的mac地址;10、基于所述cidr和v6cidr为集群中的节点分配overlay ip地址,11、然后将服务集群的id及对应的cidr、v6cidr及mac地址注册到region管理平台服务中进行持久化。12、优选地,基于region管理平台服务自动分配对应服务的服务地址的过程包括:13、所述服务集群中的节点上线后,从region管理平台服务中占用一个由region管理平台服务自动分配的对应服务的ipv4及ipv6地址,同时获取对应服务的mac地址并保存到本地;当所述服务集群中的节点下线,回收ipv4及ipv6地址。14、优选地,用户访问云平台上虚拟实例的请求通过向虚拟实例发送请求报文,所述请求报文为vxlan tunnel报文。15、优选地,所述将对应服务的指定mac地址填充到数据报文overlay的源mac地址的过程中:16、数据报文overlay的源ip为节点的服务ip地址;17、所述节点的服务ip地址为region管理平台服务自动分配的ipv4或ipv6地址。18、优选地,所述特定信息包括特定mac信息、特定cidr信息、特定v6cidr信息;19、underlay的目的ip为虚拟实例所在的宿主节点ip;20、underlay的源ip地址为服务集群节点的物理网卡ip地址或者无状态服务集群的vip。21、优选地,经所述节点进行处理的过程包括:22、当用户的请求经过服务集群后,所述服务集群继续修改用户请求的报文,并建立会话信息;23、所述会话信息在用户响应报文到达时按会话信息还原用户修改前的报文信息;24、所述服务集群修改完后发送给计算节点的报文格式为:25、|data-binding-nic-mac|host-mac|host-ipv4|data-binding-nic-ipv4|sport|4789|26、|vxlan-header(vm所在vpc的vni)|27、|vm-mac|service-allocated-mac|service-allocated-host-ipv4|vm-ipv4|sport|dport|28、|data|29、其中,vni为虚拟实例所在vpc的vni;30、service-allocated-mac为服务集群特定的mac地址;31、service-allocated-host-ipv4为host从服务集群cidr中分配的一个ipv4地址。32、优选地,将所述特定信息转换为ovs的openflow流表信息预下发给虚拟交换机的过程包括:33、当计算节点收到数据流量后,通过ovs上的vxlan口进入table=0流表,基于设计的流表流转,l3 lookup根据不同服务集群的特定mac地址及cidr区分服务,进入homologous流表;34、所述homologous流表记录数据报文中目的虚拟实例所在vpc的vni及发送报文的源地址,然后转给diapatcher流表处理。35、优选地,请求报文到达虚拟实例所在的宿主节点后,根据报文源mac匹配特定集群服务的流表信息包括第一服务集群署形式、第二服务集群署形式;36、所述第一服务集群署形式为:按两个集群进行部署,每个集群对计算节点侧提供一个vip,基于用户请求串行通过集群中的每个节点实现每个集群中的服务器节点状态相同,使用户请求能够随意调度到某个同一集群中的某个服务中,也能够按vpc将用户请求调度到服务的不同集群;37、所述第二服务集群署形式为:提供一个集群在计算节点侧不提供vip,直接将集群中节点的数据口ip与计算节点三层互通,使用户请求能够调度到集群中的不同物理服务节点。38、优选地,当虚拟实例的响应报文到达宿主节点后,在虚拟交换机中根据数据报文overlay的目的ip地址匹配所述特定信息,根据建立的请求与报文underlay的源ip地址信息封装vxlan tunnel报文,发送回服务集群的过程包括:39、所述虚拟实例收到请求对请求报文进行响应,响应数据包按照设计流表到达dispatcher流表后,所述diapatcher流表根据目的地址识别发送的服务请求目的地,然后转发到homologous流表;40、homologous同源同宿流表根据请求入时记录的信息,设置封装vxlan tunnel所需要的信息,从vxlan口封装vxlan tunnel报文发送出去,使响应数据包发送目的地与请求来时的一致,实现同源同宿。41、本发明有益效果如下:42、本发明通过在计算节点虚拟交换机上设计流表对不同有状态集群服务发送的数据报文实现同源同宿功能。同时也设计实现该功能计算节点与服务集群节点,计算节点与云平台region管理平台服务的相互作用过程,并给出了相应步骤以及数据访问的流量路径。本发明方案主要优点如下:43、在计算节点上用户响应流量能实时的根据请求流量记录的信息将响应流量发送给请求来时的服务集群或服务集群物理服务节点。而无需通过管理平台下发,进而出现可能未及时获取相关信息导致响应转发到请求来时的集群或节点的情况。44、本发明在有状态的服务集群修改用户请求报文数据四层信息后也能够实现同源同宿功能。当前第1页12当前第1页12
本文地址:https://www.jishuxx.com/zhuanli/20240819/274825.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表