一种基于微服务架构的报文处理方法和装置与流程

文档序号:15818097发布日期:2018-11-02 22:50阅读:443来源:国知局
一种基于微服务架构的报文处理方法和装置与流程

本申请涉及通信领域,尤其是一种基于微服务架构的报文处理方法和装置。

背景技术

bras(broadbandremoteaccessserver,宽带远程接入服务器)是面向宽带网络应用的接入网关,主要完成两方面功能。一是网络承载功能:用于终结用户设备的pppoe(point-to-pointprotocoloverethernet,以太网承载的点对点协议)/ipoe(internetprotocoloverethernet,以太网承载的网际互联协议)连接、汇聚用户流量;二是控制实现功能:用于实现认证、计费、地址分配等功能。

当有大量用户设备接入时,单个bras可能无法为所有用户设备提供服务,从而需要增加bras的数量,由多个bras共同为所有用户设备提供服务。

但是,在上述方式下,是通过增加bras的方式进行扩容,扩容成本较高,从bras的采购到bras的部署,时间周期冗长,业务开通需要很长时间。当接入的用户设备数量减少时,部署多个bras会造成资源浪费,资源利用率低。



技术实现要素:

本申请提供一种基于微服务架构的报文处理方法,应用于宽带远程接入服务器bras,所述bras包括mirco-bras容器和多种业务类型的业务处理容器,所述mirco-bras容器用于实现所述bras的用户接入功能,包括:

所述mirco-bras容器在获取到待处理的报文后,确定与所述报文对应的业务类型,并确定与所述业务类型对应的业务处理容器;

所述mirco-bras容器将所述报文发送给所述业务处理容器,以使所述业务处理容器对所述报文执行与所述业务类型对应的处理。

本申请提供一种基于微服务架构的报文处理装置,应用于宽带远程接入服务器bras,所述bras包括mirco-bras容器和多种业务类型的业务处理容器,所述mirco-bras容器用于实现所述bras的用户接入功能,包括:

确定模块,用于当所述mirco-bras容器获取到待处理的报文后,确定与所述报文对应的业务类型,并确定与所述业务类型对应的业务处理容器;

发送模块,用于将报文从mirco-bras容器发送到所述业务处理容器;

处理模块,用于当所述业务处理容器接收到所述报文后,则通过所述业务处理容器对所述报文执行与所述业务类型对应的处理。

基于上述技术方案,本申请实施例中,采用容器虚拟化技术,将bras划分成mirco-bras容器和业务处理容器(如认证客户端容器、dhcp服务器容器、数据转发容器等),从而可以针对容器进行扩容或者缩容。在大量用户设备接入时,可以对容器进行扩容,从而满足大量业务的需求,快速开通业务,避免扩容成本较高、时间周期冗长等问题。在接入的用户设备数量减少时,可以对容器进行缩容,从而节省存储和计算等资源,提高资源利用率,避免资源浪费等问题。由于容器占用的资源更少,单个容器的映像比较小,因此,针对容器进行版本升级时,可以缩小版本升级的影响范围,提升版本升级的速度。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1是本申请一种实施方式中的应用场景示意图;

图2是本申请一种实施方式中基于微服务架构的报文处理方法的流程图;

图3是本申请一种实施方式中基于微服务架构的报文处理装置的结构图;

图4是本申请一种实施方式中的bras的硬件结构图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例提出一种基于微服务架构的报文处理方法,应用于bras,所述bras可以包括但不限于mirco-bras容器和多种业务类型(例如认证类型、地址分配类型、数据转发类型等)的业务处理容器,例如,针对认证类型的认证客户端容器、针对地址分配类型的dhcp(dynamichostconfigurationprotocol,动态主机配置协议)服务器容器、针对数据转发类型的数据转发容器。此外,bras还可以包括负载均衡容器、数据库容器等,对此不做限制。

如图1所示,为本申请实施例的应用场景示意图。其中,用户设备可以为虚拟机、pc(personalcomputer,个人计算机)、手机、主机、移动终端等;认证服务器可以为aaa(authenticationauthorizationaccounting,认证授权计费)服务器,radius(remoteauthenticationdialinuserservice,远程用户拨号认证系统)服务器等;管理编排平台可以为mano(managementandorganization),用于对bras上的各容器进行管理和控制,例如,可以通过netconf(networkconfigurationprotocol,网络配置协议)协议对bras上各容器进行管理和控制。

在一个例子中,基于bras的业务能力(如bras具有认证能力、地址分配能力、数据转发能力、数据存储能力等),可以采用容器虚拟化技术将bras划分成多个容器,这些容器包括但不限于mirco-bras容器、认证客户端容器、dhcp服务器容器、数据转发容器、负载均衡容器、数据库容器等,通过这些容器之间的交互,可以实现bras的业务能力。参见图1所示,每种类型的容器均可以为一个或多个,如mirco-bras容器的数量可以为一个或多个、认证客户端容器的数量可以为一个或多个,以此类推,对各类型容器的数量不做限制。

其中,容器虚拟化技术可以通过虚拟化操作系统的方式,来管理代码和应用程序,将更多的计算工作负载塞入到bras,每个容器内都包含一个独享的完整用户环境空间。docker技术和rocket技术是容器技术的主要代表,因此,可以在bras内创建多个docker容器(即通过docker技术实现的容器)/rocket容器(即通过/rocket技术实现的容器),并使用这些docker容器/rocket容器实现mirco-bras容器、认证客户端容器、dhcp服务器容器、数据转发容器、负载均衡容器、数据库容器等。docker容器/rocket容器与虚拟机类似,但是与虚拟机相比,docker容器/rocket容器占用的资源更少,其启动效率更高。

其中,本文中的容器,可以是在bras上虚拟出的,也可以是在bras的虚拟机上虚拟出的,对此容器的载体不做限制。而且,上述bras可以是一个独立的物理设备(即硬件形式的物理bras设备),如具有bras业务处理能力的服务器;也可以是软件形式的虚拟设备(可以部署在一个或者多个物理设备上),如运行于x86服务器的具有bras业务处理能力的虚拟资源。当然,上述过程只是介绍了bras的两种表现形式,对此不做限制。

其中,每个容器就相当于一个微服务,例如,mirco-bras容器是用于实现用户接入功能的微服务,认证客户端容器是用于实现认证功能的微服务,dhcp服务器容器是用于实现地址分配功能的微服务,数据转发容器是用于实现数据转发功能的微服务,负载均衡容器是用于实现负载均衡功能的微服务,数据库容器是用于实现数据存储功能的微服务。微服务是采用一组服务的方式来构建一个应用,服务独立部署在不同进程中,不同服务通过轻量级交互机制来通信。

而且,mirco-bras容器实现用户接入功能的过程,可以是微服务实例实现用户接入功能,即mirco-bras容器的处理由微服务实例实现。同理,认证客户端容器实现认证功能的过程,可以是微服务实例实现认证功能,即认证客户端容器的处理由微服务实例实现,以此类推,本文以容器的处理为例进行说明。

其中,mirco-bras容器用于实现bras的用户接入功能,可以通过与其它容器配合,完成bras的所有功能,是bras的各容器交互的桥梁,能够管理和控制其它容器,能够与其它容器交互,是bras的主体容器。例如,mirco-bras容器与认证客户端容器配合,实现对用户设备的认证;mirco-bras容器与dhcp服务器容器配合,实现对用户设备的地址分配;mirco-bras容器与数据转发容器配合,实现对用户设备的数据报文的转发;mirco-bras容器与数据库容器配合,实现用户设备的会话信息的存储、用户设备是否已经通过认证的查询。

当bras包括多个mirco-bras容器时,则这些mirco-bras容器还可以形成mirco-bras容器集群。若不对mirco-bras容器集群内的mirco-bras容器数量进行限制,则所有mirco-bras容器均属于同一个mirco-bras容器集群,可以在该mirco-bras容器集群内增加新的mirco-bras容器,即进行扩容处理,也可以从该mirco-bras容器集群中删除mirco-bras容器,即进行缩容处理。

若对mirco-bras容器集群内的mirco-bras容器数量进行限制,则可以包括多个mirco-bras容器集群,每个mirco-bras容器集群内的mirco-bras容器数量不超过上限,如6个。当mirco-bras容器集群1包括6个mirco-bras容器后,若需要增加新的mirco-bras容器,则创建mirco-bras容器集群2,在mirco-bras容器集群2增加新的mirco-bras容器,直到mirco-bras容器集群2包括6个mirco-bras容器,若需要增加新的mirco-bras容器,则创建mirco-bras容器集群3,以此类推。若需要删除mirco-bras容器,则可以从mirco-bras容器集群3删除mirco-bras容器,直到mirco-bras容器集群3没有mirco-bras容器,删除mirco-bras容器集群3,若需要删除mirco-bras容器,则可以从mirco-bras容器集群2中删除mirco-bras容器,以此类推。

当包括多个mirco-bras容器集群时,则每个mirco-bras容器集群包括多个mirco-bras容器,每个mirco-bras容器集群对应一个认证客户端容器,不同mirco-bras容器集群对应不同的认证客户端容器。而且,当对mirco-bras容器集群进行扩容时,则对认证客户端容器进行扩容;当对mirco-bras容器集群进行缩容时,则对认证客户端容器进行缩容。当只包括一个mirco-bras容器集群时,则该mirco-bras容器集群可以对应一个或者多个认证客户端容器。

此外,mirco-bras容器集群内的mirco-bras容器能够独立扩容或者缩容。

其中,认证客户端容器用于实现bras的认证功能,例如,认证客户端容器可以与mirco-bras容器、认证服务器等进行配合,实现对用户设备的认证。

其中,dhcp服务器容器用于实现bras的地址分配功能,例如,dhcp服务器容器可以与mirco-bras容器进行配合,实现对用户设备的地址分配。

其中,数据转发容器用于实现bras的数据转发能力,例如,数据转发容器可以与mirco-bras容器进行配合,实现对用户设备的数据报文的转发。具体的,数据转发容器可以在本地存储转发表(如静态配置的转发表和/或动态学习的转发表),并可以基于本地存储的所述转发表对数据报文进行转发处理。

其中,数据库容器用于实现bras的数据存储能力,例如,数据库容器可以与mirco-bras容器进行配合,实现用户设备的会话信息的存储、用户设备是否已经通过认证的查询。对于mirco-bras容器、认证客户端容器、dhcp服务器容器、负载均衡容器等来说,可以是无状态的容器,即数据并不保存在这些容器,而数据库容器可以是有状态的容器,即数据可以保存在数据库容器。也就是说,对于mirco-bras容器、认证客户端容器、dhcp服务器容器、负载均衡容器来说,可以将相关数据存储到数据库容器,而不是将数据保存在本容器。

由于mirco-bras容器、认证客户端容器、dhcp服务器容器、负载均衡容器并未存储相关数据,因此,对mirco-bras容器、认证客户端容器、dhcp服务器容器、负载均衡容器进行缩容时,不需要对mirco-bras容器、认证客户端容器、dhcp服务器容器、负载均衡容器中进行数据迁移,直接删除mirco-bras容器、认证客户端容器、dhcp服务器容器、负载均衡容器,实现快速缩容。

而且,由于mirco-bras容器、认证客户端容器、dhcp服务器容器、负载均衡容器并未存储相关数据,因此,mirco-bras容器不需要将自身存储的数据发送给其它mirco-bras容器,避免不同mirco-bras容器之间的数据交互。同理,认证客户端容器不需要将自身存储的数据发送给其它认证客户端容器,以此类推。因此,上述方式可以消除容器之间的通信,避免消耗大量传输资源。

其中,负载均衡容器用于实现bras的负载均衡功能,例如,当存在大量的mirco-bras容器时,负载均衡容器可以将报文均衡发送给每个mirco-bras容器,以在每个mirco-bras容器之间实现负载均衡。由于可以对负载均衡容器进行扩容和缩容,从而可以增强负载均衡容器的业务处理能力和转发能力。

在一个例子中,根据实际业务的需要,可以单独对mirco-bras容器进行扩容和缩容,可以单独对认证客户端容器进行扩容和缩容,可以单独对dhcp服务器容器进行扩容和缩容,可以单独对数据转发容器进行扩容和缩容,可以单独对负载均衡容器进行扩容和缩容,可以单独对数据库容器进行扩容和缩容。

其中,bras在接收到管理编排平台发送的扩容命令后,则可以根据该扩容命令创建新的mirco-bras容器或者业务处理容器;该扩容命令是管理编排平台监控到mirco-bras容器资源或者业务处理容器资源大于第一阈值时发送的。bras在接收到管理编排平台发送的缩容命令后,则可以根据该缩容命令删除已有的mirco-bras容器或者业务处理容器;该缩容命令是管理编排平台监控到mirco-bras容器资源或者业务处理容器资源小于第二阈值时发送的。

其中,管理编排平台可以监控mirco-bras容器的资源信息(例如,cpu(centralprocessingunit,中央处理器)资源、内存资源、在线用户数量等);若mirco-bras容器的资源大于第一阈值,则说明mirco-bras容器的业务压力较大,因此,管理编排平台可以向bras发送扩容命令,以使bras根据该扩容命令创建新的mirco-bras容器;若mirco-bras容器的资源小于第二阈值,则说明mirco-bras容器的业务压力较小,因此,管理编排平台可以向bras发送缩容命令,以使bras根据该缩容命令删除已有的mirco-bras容器。

当然,管理编排平台在接收到针对mirco-bras容器的扩容命令(如用户输入的扩容命令)后,也可以向bras发送扩容命令。此外,管理编排平台在接收到针对mirco-bras容器的缩容命令(如用户输入的缩容命令)后,也可以向bras发送缩容命令。对此触发bras进行扩容或者缩容的时机不做限制。

管理编排平台可以监控认证客户端容器的资源信息;若认证客户端容器的资源大于第一阈值,则说明认证客户端容器的业务压力较大,因此,管理编排平台可以向bras发送扩容命令,以使bras根据该扩容命令创建新的认证客户端容器;若认证客户端容器的资源小于第二阈值,则说明认证客户端容器的业务压力较小,因此,管理编排平台可以向bras发送缩容命令,以使bras根据该缩容命令删除已有的认证客户端容器。对于dhcp服务器容器、数据转发容器、负载均衡容器、数据库容器等,其处理过程类似,在此不再重复赘述。

在上述实施例中,第一阈值和第二阈值均可以根据经验进行配置,但是,第一阈值可以大于第二阈值,例如,第一阈值可以为90%,第二阈值可以为30%。

在另一个例子中,根据实际业务的需要,可以单独对dhcp服务器容器、数据转发容器、负载均衡容器、数据库容器进行扩容和缩容。但是,mirco-bras容器集群与认证客户端容器的扩容/缩容方式是:当对mirco-bras容器集群进行扩容时,则对认证客户端容器进行扩容;当对mirco-bras容器集群进行缩容时,则对认证客户端容器进行缩容;以使认证客户端容器的数量与mirco-bras容器集群的数量相同,每个认证客户端容器对应一个mirco-bras容器集群。

在一个例子中,每个mirco-bras容器可以具有唯一的ip地址(如一个或者多个ip地址,即mirco-bras容器具有的每个ip地址都是唯一的,这些ip地址可以是管理ip地址、也可以是业务ip地址等),每个认证客户端容器可以具有唯一的ip地址(如一个ip地址),每个dhcp服务器容器可以具有唯一的ip地址(如一个ip地址),每个数据转发容器可以具有唯一的ip地址(如一个ip地址),每个负载均衡容器可以具有唯一的ip地址(如一个ip地址),每个数据库容器可以具有唯一的ip地址(如一个ip地址)。基于各个容器的ip地址,则mirco-bras容器可以与每个负载均衡容器分别建立连接,mirco-bras容器可以与每个认证客户端容器分别建立连接,mirco-bras容器可以与每个dhcp服务器容器分别建立连接,mirco-bras容器可以与每个数据转发容器分别建立连接,mirco-bras容器可以与每个数据库容器分别建立连接。

其中,对于上述连接的类型,可以是vxlan(virtualextensiblelocalareanetwork,可扩展虚拟局域网)隧道连接、gre(genericroutingencapsulation,通用路由封装)隧道连接、或者其它类型的连接,对此连接类型不做限制,且对连接建立过程不做限制。此外,容器之间的连接,可以是两个容器直接连接,也可以是两个容器通过虚拟交换机(bras内虚拟出的用于连接所有容器的交换机)连接。例如,mirco-bras容器与负载均衡容器直接连接,或者,所有容器均连接到虚拟交换机,mirco-bras容器通过虚拟交换机与负载均衡容器连接。

在后续过程中,两个容器之间传输报文的过程,就是使用这两个容器之间的连接来传输所述报文,例如,mirco-bras容器可以通过连接(即mirco-bras容器与负载均衡容器之间的连接)将报文发送给负载均衡容器,以此类推。

在上述应用场景下,参见图2所示,为本申请实施例中提出的基于微服务架构的报文处理方法的流程图,该方法可以应用于bras,该方法可以包括:

步骤201,mirco-bras容器在获取到待处理的报文后,可以确定与该报文对应的业务类型,并确定与该业务类型对应的业务处理容器。

其中,该业务类型可以包括但不限于认证类型、地址分配类型、数据转发类型等。该业务处理容器可以包括但不限于针对认证类型的认证客户端容器、针对地址分配类型的dhcp服务器容器、针对数据转发类型的数据转发容器。

针对“mirco-bras容器确定与该报文对应的业务类型,并确定与该业务类型对应的业务处理容器”的过程,可以包括但不限于如下情况:若该报文是认证请求报文,则mirco-bras容器可以确定与该报文对应的业务类型是认证类型,并可以确定与该认证类型对应的是认证客户端容器;或者,若该报文是dhcp请求报文,则mirco-bras容器可以确定与该报文对应的业务类型是地址分配类型,并可以确定与该地址分配类型对应的是dhcp服务器容器;或者,若该报文是数据报文,mirco-bras容器可以确定与该报文对应的业务类型是数据转发类型,并可以确定与该数据转发类型对应的是数据转发容器;或者,若该报文是计费请求报文,则mirco-bras容器可以确定与该报文对应的业务类型是认证类型,并可以确定与该认证类型对应的是认证客户端容器。

步骤202,mirco-bras容器将该报文发送给业务处理容器,以使所述业务处理容器对该报文执行与本业务处理容器的业务类型对应的处理。

在一个例子中,针对“业务处理容器对该报文执行与本业务处理容器的业务类型对应的处理”的过程,可以包括:认证客户端容器在接收到认证请求报文后,将该认证请求报文发送给认证服务器;认证客户端容器接收认证服务器返回的针对该认证请求报文的认证成功报文或者认证失败报文,并将认证成功报文或者认证失败报文发送给mirco-bras容器;或者,dhcp服务器容器在接收到dhcp请求报文后,为用户设备分配ip地址,并向mirco-bras容器发送携带所述ip地址的dhcp响应报文;或者,数据转发容器在接收到数据报文后,利用数据报文的目的地址查询转发表,并根据转发表的查询结果发送数据报文;或者,认证客户端容器在接收到计费请求报文后,将该计费请求报文发送给认证服务器;认证客户端容器接收认证服务器返回的针对该计费请求报文的计费响应报文,并将计费响应报文发送给mirco-bras容器。

在一个例子中,mirco-bras容器在接收到认证成功报文后,还可以在数据库容器的在线表中创建用户设备的会话表项,将用户设备的mac地址记录到所述会话表项中,并标记用户设备已经通过认证。mirco-bras容器在接收到dhcp响应报文后,还可以将用户设备的ip地址记录到所述会话表项中。

进一步的,mirco-bras容器在获取到待处理的数据报文后,可以查询数据库容器的在线表中是否存在与所述数据报文的源地址对应的会话表项;如果否,则丢弃所述数据报文;如果是,则将所述数据报文发送给数据转发容器。

在一个例子中,mirco-bras容器在接收到认证成功报文后,若数据库容器的在线表中已经存在用户设备的会话表项,即该用户设备已经通过认证,则该mirco-bras容器还可以生成该用户设备的转发表,转发表可以如路由表、mac表等,对此生成方式不做限制。然后,mirco-bras容器可以将转发表发送给转发芯片,该转发表用于指导转发芯片发送数据报文;或者,可以将该转发表发送给数据转发容器,该转发表用于指导该数据转发容器发送数据报文。

其中,bras的转发方式可以包括但不限于软转发和硬转发两种。

若bras是硬转发,则mirco-bras容器在生成转发表后,可以将该转发表发送给转发芯片,这样,若转发芯片接收到数据报文,就可以直接利用该转发表发送该数据报文,而不再将该数据报文发送给mirco-bras容器。

若bras是软转发,则mirco-bras容器在生成转发表后,可以将该转发表发送给数据转发容器,且bras不存在用于转发数据报文的转发芯片,这样,mirco-bras容器可以接收到数据报文。mirco-bras容器在接收到数据报文后,就确定与数据报文对应的业务类型是数据转发类型,并确定与数据转发类型对应的数据转发容器,然后将数据报文发送给数据转发容器。数据转发容器在接收到数据报文后,利用数据报文的目的地址查询转发表,并发送数据报文。

在一个例子中,在mirco-bras容器获取到待处理的报文之前,负载均衡容器在接收到用户设备发送的报文后,可以根据负载均衡算法和报文携带的特征信息(如vlan(virtuallocalareanetwork,虚拟局域网)、qinq、目的ip地址等),从多个mirco-bras容器中选择用于处理所述报文的mirco-bras容器,并将所述报文发送给选择的mirco-bras容器。进一步的,mirco-bras容器就可以获取到待处理的报文,例如,mirco-bras容器可以直接将接收到的报文确定为待处理的报文,或者,可以利用接收到的报文生成待处理的报文。

其中,在认证过程中,用户设备发送的报文可以是认证报文、arp报文、dhcp报文等,对此报文类型不做限制。这样,mirco-bras容器接收到的报文可以是认证报文、arp报文、dhcp报文,若当前还未对用户设备进行过认证,则mirco-bras容器可以根据接收到的报文生成认证请求报文(如radius协议的认证请求报文或者aaa协议的认证请求报文),这个认证请求报文也就是待处理的报文,因此,对应的业务类型可以为认证类型。

在地址分配过程中,用户设备发送的报文可以是dhcp报文,mirco-bras容器接收到的报文可以是dhcp报文,且mirco-bras容器将接收到的dhcp报文确定为待处理的报文,因此,对应的业务类型可以为地址分配类型。

在数据转发过程中,用户设备发送的报文可以是数据报文,mirco-bras容器接收到的报文可以是数据报文,且mirco-bras容器将接收到的数据报文确定为待处理的报文,因此,对应的业务类型可以为数据转发类型。

基于上述技术方案,本申请实施例中,采用容器虚拟化技术,将bras划分成mirco-bras容器、认证客户端容器、dhcp服务器容器、数据转发容器、负载均衡容器、数据库容器,从而可以针对容器进行扩容或者缩容。在大量用户设备接入时,可以对容器进行扩容,满足大量业务的需求,快速开通业务,避免扩容成本较高、时间周期冗长等问题。在接入的用户设备数量减少时,可以对容器进行缩容,节省存储和计算等资源,提高资源利用率,避免资源浪费等问题。由于容器占用的资源更少,且单个容器的映像比较小,因此,针对容器进行版本升级时,可以缩小版本升级的影响范围,并提升版本升级的速度。

以下结合具体应用场景,对上述基于微服务架构的报文处理方法进行详细说明。在本应用场景下,以用户设备采用ipoe接入方式为例,则该方法包括:

步骤a1、用户设备向bras发送dhcp-discover(发现)报文。

步骤a2、bras的物理网卡在接收到dhcp-discover报文后,若bras只存在一个负载均衡容器,则可以将该dhcp-discover报文发送给该负载均衡容器,若bras存在多个负载均衡容器,则可以从多个负载均衡容器中选择一个负载均衡容器,并将dhcp-discover报文发送给选择的负载均衡容器。

其中,针对“从多个负载均衡容器中选择一个负载均衡容器”的过程,可以包括:随机从多个负载均衡容器中选择一个负载均衡容器,或者,采用hash(散列)算法从多个负载均衡容器中选择一个负载均衡容器,对此不做限制。

步骤a3、负载均衡容器在收到dhcp-discover报文后,若bras只存在一个mirco-bras容器,则将dhcp-discover报文发送给该mirco-bras容器,若bras存在多个mirco-bras容器,从多个mirco-bras容器中选择一个mirco-bras容器,将dhcp-discover报文发送给选择的mirco-bras容器。

其中,针对“负载均衡容器从多个mirco-bras容器中选择一个mirco-bras容器”的过程,可以包括:负载均衡容器可以随机从多个mirco-bras容器中选择一个mirco-bras容器,或者,负载均衡容器可以采用负载均衡算法(如hash算法等)从多个mirco-bras容器中选择一个mirco-bras容器,对此不做限制。

在采用负载均衡算法从多个mirco-bras容器中选择一个mirco-bras容器时,负载均衡容器可以根据dhcp-discover报文携带的特征信息(如vlan、qinq、目的ip地址等),从多个mirco-bras容器中选择一个mirco-bras容器。例如,对目的ip地址和mirco-bras容器数量进行取余处理,根据取余结果选择一个mirco-bras容器,例如,若取余结果为0,则选择第一个mirco-bras容器,若取余结果为2,则可以选择第二个mirco-bras容器,以此类推。

步骤a4、mirco-bras容器在接收到dhcp-discover报文后,生成认证请求报文(即待处理的报文是该认证请求报文)。其中,该认证请求报文可以包含用户信息,如dhcp-discover报文中的clientid选项、源mac地址等。

步骤a5、mirco-bras容器确定与该认证请求报文对应的业务类型是认证类型,然后,可以确定与该认证类型对应的业务处理容器是认证客户端容器。

步骤a6、若bras只存在一个认证客户端容器,则mirco-bras容器将认证请求报文发送给该认证客户端容器,若bras存在多个认证客户端容器,则mirco-bras容器从多个认证客户端容器中选择(如随机选择或者采用hash算法选择)一个认证客户端容器,将认证请求报文发送给选择的认证客户端容器。

步骤a7、认证客户端容器在接收到认证请求报文后,将认证请求报文发送给认证服务器,以使认证服务器根据该认证请求报文对用户设备进行认证,对此认证过程不做限制。其中,认证结果可以为认证通过或者认证不通过。

步骤a8、认证客户端容器接收认证服务器返回的认证成功报文(认证通过时发送,携带针对用户设备的授权信息,如acl策略、qos策略、计费策略等)或者认证失败报文(认证不通过时发送),后续以接收到认证成功报文为例。

在一个例子中,由于存在多个认证客户端容器,因此,认证服务器在返回认证成功报文时,可以将该认证成功报文返回给向本认证服务器发送认证请求报文的认证客户端容器。为了实现这一过程,认证客户端容器在向认证服务器发送认证请求报文时,还可以在该认证请求报文中携带本认证客户端容器的ip地址,以使认证服务器根据该ip地址将认证成功报文返回给本认证客户端容器。

在一个例子中,每个认证客户端容器均可以单独与认证服务器建立一个连接,这样,认证客户端容器可以通过该连接将上述认证请求报文发送给认证服务器,且认证服务器可以通过该连接将认证成功报文返回给认证客户端容器。

步骤a9、认证客户端容器将认证成功报文发送给mirco-bras容器。

在一个例子中,由于存在多个mirco-bras容器,因此,认证客户端容器在返回认证成功报文时,可以将该认证成功报文返回给向本认证客户端容器发送认证请求报文的mirco-bras容器,即用户设备上线的mirco-bras容器。

步骤a10、mirco-bras容器在接收到认证成功报文后,在数据库容器的在线表中创建用户设备的会话表项,并将认证成功报文携带的用户设备的mac地址、授权信息等内容记录到该会话表项中,并标记该用户设备已经通过认证。

步骤a11、mirco-bras容器将dhcp-discover报文(即dhcp请求报文)确定为待处理的报文,确定与dhcp-discover报文对应的业务类型是地址分配类型,并确定与地址分配类型对应的业务处理容器是dhcp服务器容器。

步骤a12、若bras只存在一个dhcp服务器容器,则mirco-bras容器将dhcp-discover报文发送给该dhcp服务器容器,若bras存在多个dhcp服务器容器,则mirco-bras容器从多个dhcp服务器容器中选择一个dhcp服务器容器,并将dhcp-discover报文发送给选择的dhcp服务器容器。

其中,mirco-bras容器可以采用随机选择或者采用hash算法选择等方式,从多个dhcp服务器容器中选择一个dhcp服务器容器,对此不做限制。

步骤a13、dhcp服务器容器在接收到dhcp-discover报文后,可以向mirco-bras容器返回dhcp-offer(提供)报文。其中,dhcp服务器容器可以将该dhcp-offer报文返回给向本dhcp服务器容器发送dhcp-discover报文的mirco-bras容器,即用户设备上线的mirco-bras容器,dhcp服务器容器也可以从多个mirco-bras容器中选择(如随机选择或者采用hash算法选择)mirco-bras容器,将dhcp-offer报文返回给选择的mirco-bras容器。

步骤a14、mirco-bras容器接收到dhcp-offer报文后,将dhcp-offer报文发送给用户设备,由用户设备向bras发送dhcp-request(请求)报文。

步骤a15、bras的物理网卡在接收到dhcp-request报文后,若bras只存在一个负载均衡容器,则可以将该dhcp-request报文发送给该负载均衡容器,若bras存在多个负载均衡容器,则可以从多个负载均衡容器中选择一个负载均衡容器,并将dhcp-request报文发送给选择的负载均衡容器。

步骤a16、负载均衡容器在收到dhcp-request报文后,若bras只存在一个mirco-bras容器,则将dhcp-request报文发送给该mirco-bras容器,若bras存在多个mirco-bras容器,从多个mirco-bras容器中选择一个mirco-bras容器,将dhcp-request报文发送给选择的mirco-bras容器。

其中,负载均衡容器从多个mirco-bras容器中选择一个mirco-bras容器的方式,与步骤a3中选择mirco-bras容器的方式类似,在此不再重复赘述。

步骤a17、mirco-bras容器将dhcp-request报文(即dhcp请求报文)确定为待处理的报文,确定与该dhcp-request报文对应的业务类型是地址分配类型,并确定与该地址分配类型对应的业务处理容器是dhcp服务器容器。

步骤a18、若bras只存在一个dhcp服务器容器,则mirco-bras容器将dhcp-request报文发送给该dhcp服务器容器,若bras存在多个dhcp服务器容器,则mirco-bras容器从多个dhcp服务器容器中选择一个dhcp服务器容器,并将dhcp-request报文发送给选择的dhcp服务器容器。

步骤a19、dhcp服务器容器在接收到dhcp-request报文后,为用户设备分配ip地址,并向mirco-bras容器返回dhcp-ack(确认)报文(即dhcp响应报文),dhcp-ack报文携带dhcp服务器容器为用户设备分配的ip地址。dhcp服务器容器可以将dhcp-ack报文返回给向本dhcp服务器容器发送dhcp-request报文的mirco-bras容器,也可以从多个mirco-bras容器中选择mirco-bras容器,将dhcp-ack报文返回给选择的mirco-bras容器。

步骤a20、mirco-bras容器在接收到dhcp-ack报文后,将dhcp-ack报文发送给用户设备,并将dhcp-ack报文携带的用户设备的ip地址记录到该用户设备对应的会话表项(该会话表项位于数据库容器的在线表)中。

在一个例子中,由于dhcp-ack报文还携带用户设备的mac地址,因此,mirco-bras容器可以通过用户设备的mac地址,从数据库容器的在线表中查询到用户设备对应的会话表项,并将用户设备的ip地址记录到该会话表项。

步骤a21、用户设备在接收到dhcp-ack报文后,从该dhcp-ack报文中解析出为本用户设备分配的ip地址,并利用该ip地址发送数据报文。

步骤a22、mirco-bras容器生成用户设备的转发表,并将该转发表发送给数据转发容器,所述转发表用于指导所述数据转发容器发送数据报文。

步骤a23、bras的物理网卡在接收到数据报文后,若存在一个负载均衡容器,将数据报文发送给该负载均衡容器,若存在多个负载均衡容器,从多个负载均衡容器中选择负载均衡容器,并将数据报文发送给选择的负载均衡容器。

步骤a24、负载均衡容器在接收到数据报文后,若只存在一个mirco-bras容器,则可以将数据报文发送给该mirco-bras容器,若存在多个mirco-bras容器,则可以从多个mirco-bras容器中选择(如随机选择或者采用hash算法选择)一个mirco-bras容器,并将数据报文发送给选择的mirco-bras容器。

步骤a25、mirco-bras容器确定与该数据报文对应的业务类型是数据转发类型,并确定与该数据转发类型对应的业务处理容器是数据转发容器。

步骤a26、mirco-bras容器通过该数据报文的源地址(如源mac地址和/或源ip地址,也就是,用户设备的mac地址和/或ip地址)查询数据库容器的在线表。若该在线表中存在与该源地址对应的会话表项,则执行步骤a27;若该在线表中不存在与该源地址对应的会话表项,则丢弃该数据报文,结束流程。

步骤a27、若存在一个数据转发容器,则mirco-bras容器将数据报文发送给该数据转发容器,若存在多个数据转发容器,则mirco-bras容器从多个数据转发容器中选择一个数据转发容器,并将数据报文发送给选择的数据转发容器。

步骤a28、数据转发容器在接收到数据报文后,利用数据报文的目的地址(如目的ip地址)查询上述转发表,并根据上述转发表的查询结果发送该数据报文。

至此,通过bras内各容器的交互,完成用户设备的上线,用户设备可以将数据报文发送给internet。此外,对于internet发送给用户设备的针对数据报文的响应报文,其处理流程与数据报文的处理流程类似,在此不再重复赘述。

上述过程是以ipoe接入方式为例的处理流程,当用户设备采用其它接入方式(如pppoe等),其处理流程与上述处理流程类似,在此不再重复赘述。

基于与上述方法同样的申请构思,本申请实施例中还提出一种基于微服务架构的报文处理装置,应用于bras,所述bras包括mirco-bras容器和多种业务类型的业务处理容器,所述mirco-bras容器用于实现所述bras的用户接入功能,如图3所示,为所述装置的结构图,所述装置可以包括:

确定模块301,用于当所述mirco-bras容器获取到待处理的报文后,确定与所述报文对应的业务类型,并确定与所述业务类型对应的业务处理容器;

发送模块302,用于将所述报文从mirco-bras容器发送到业务处理容器;

处理模块303,用于当所述业务处理容器接收到所述报文后,则通过所述业务处理容器对所述报文执行与所述业务类型对应的处理。

所述确定模块301,具体用于在确定与所述报文对应的业务类型,并确定与所述业务类型对应的业务处理容器的过程中,若所述报文是认证请求报文,则通过所述mirco-bras容器确定与所述报文对应的业务类型是认证类型,并确定与所述认证类型对应的是认证客户端容器;或者,若所述报文是dhcp请求报文,则通过所述mirco-bras容器确定与所述报文对应的业务类型是地址分配类型,并确定与所述地址分配类型对应的是dhcp服务器容器;或者,若所述报文是数据报文,则通过所述mirco-bras容器确定与所述报文对应的业务类型是数据转发类型,并确定与所述数据转发类型对应的是数据转发容器。

所述处理模块303,具体用于在通过所述业务处理容器对所述报文执行与所述业务类型对应的处理的过程中,在所述认证客户端容器接收到认证请求报文后,通过所述认证客户端容器将所述认证请求报文发送给认证服务器,接收所述认证服务器返回的认证成功报文或者认证失败报文,将所述认证成功报文或者认证失败报文发送给所述mirco-bras容器;或者,在所述dhcp服务器容器接收到dhcp请求报文后,通过所述dhcp服务器容器为用户设备分配ip地址,向所述mirco-bras容器发送携带所述ip地址的dhcp响应报文;或者,在所述数据转发容器接收到数据报文后,通过所述数据转发容器利用所述数据报文的目的地址查询转发表,根据转发表的查询结果发送数据报文。

所述处理模块303,还用于在所述mirco-bras容器接收到认证成功报文之后,则通过所述mirco-bras容器在数据库容器的在线表中创建用户设备的会话表项,并将所述用户设备的mac地址记录到所述会话表项中,并标记所述用户设备已经通过认证;在所述mirco-bras容器接收到dhcp响应报文后,通过所述mirco-bras容器将所述用户设备的ip地址记录到所述会话表项中;

所述处理模块303,还用于当所述mirco-bras容器获取到待处理的数据报文后,则查询所述数据库容器的在线表中是否存在与所述数据报文的源地址对应的会话表项;如果否,则丢弃所述数据报文;如果是,则由所述发送模块将所述数据报文从所述mirco-bras容器发送到所述数据转发容器;

所述处理模块303,还用于生成用户设备的转发表;

所述发送模块302,还用于将所述转发表发送给转发芯片,其中,所述转发表用于指导所述转发芯片发送数据报文;或者,将所述转发表发送给所述数据转发容器,所述转发表用于指导所述数据转发容器发送数据报文。

所述bras还包括负载均衡容器,所述发送模块302,还用于当所述负载均衡容器接收到用户设备发送的报文后,通过所述负载均衡容器根据负载均衡算法以及所述报文携带的特征信息,从多个mirco-bras容器中选择用于处理所述报文的mirco-bras容器,并将所述报文发送给选择的mirco-bras容器。

在一个例子中,所述基于微服务架构的报文处理装置还包括(在图中未视出):管理模块,用于在接收到管理编排平台发送的扩容命令后,根据所述扩容命令创建新的mirco-bras容器或者业务处理容器;所述扩容命令是管理编排平台监控到mirco-bras容器资源或者业务处理容器资源大于第一阈值时发送的;管理模块,用于在接收到管理编排平台发送的缩容命令后,根据所述缩容命令删除已有mirco-bras容器或者业务处理容器;所述缩容命令是管理编排平台监控到mirco-bras容器资源或者业务处理容器资源小于第二阈值时发送的。

本申请实施例中提供的bras,从硬件层面而言,其硬件架构示意图具体可以参见图4所示。包括:机器可读存储介质和处理器,其中:

机器可读存储介质:存储指令代码。

处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现上述示例公开的基于微服务架构的报文处理操作。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1