本发明实施例涉及数据通讯技术领域,特别涉及一种认证信息通讯的系统及方法。
背景技术:
在sdn网络改造中,现有认证交互是通过websocket进行通信交互认证,控制器通过restapi调用websocket接口,将交互信息下发到accel-ppp进行认证管理,并通过文件的方式保存认证结果,websocket需要实时监控认证文件更改,并触发控制器api传入认证结果。
然而,发明人发现,websocket与accel-ppp之间需要构建有效的响应机制,基于效率和速度的考虑websocket通讯中间件所处的位置需要尽可能的位于accel-ppp侧;这就导致了在对整体服务进行分布式布局以及业务编排时产生影响,从而导致认证效率的瓶颈集中在认证服务器的配置与数量,无法发挥accel-ppp的高性能特性。
技术实现要素:
本发明实施方式的目的在于提供一种基于消息集群服务器的信息通讯系统,能够提高整个系统的信息交互速度,增加业务处理能力。
为解决上述技术问题,本发明的实施方式提供了一种信息通讯系统,其用于在sdn网络中进行认证消息的通讯,所述系统包括:消息生产平台、消息消费平台和消息集群平台;其中,所述消息生产平台用于对认证消息按照预定格式进行封装,以得到封装后的认证消息,并发送给所述消息集群平台,所述封装后的认证消息具有消息类型;所述消息集群平台用于根据预先设置的消息类型和消息地址的对应关系,将所述封装后的认证消息存储在与所述消息类型对应的消息地址(topic)中;所述消息消费平台用于对所述消息集群平台中的各消息地址进行监听,当监听到任一消息地址中存储了所述封装后的认证消息时,获取所述封装后的认证消息并进行处理。
本发明的实施方式还提供了一种信息通讯方法,其用于在sdn网络中进行认证消息的通讯,该方法包括:消息生产平台用于对认证消息按照预定格式进行封装,以得到封装后的认证消息,并发送给消息集群平台,所述封装后的认证消息具有消息类型;所述消息集群平台用于根据预先设置的消息类型和消息地址的对应关系,将所述封装后的认证消息存储在与所述消息类型对应的消息地址中;消息消费平台用于对所述消息集群平台中的各消息地址进行监听,当监听到任一消息地址中存储了所述封装后的认证消息时,获取所述封装后的认证消息并进行处理。
本发明的实施方式相对于现有技术而言,对需要通讯的信息进行深度封装,将信息封装成具有统一格式的消息后进行传输,能够大大简化信息的交互流程,提高交互效率。另外,本发明的实施方式还通过消息集群服务器来存储数据,并对数据进行精准分类,从而提高整个系统的信息交互速度。
在一些实施方式中,所述消息生产平台为控制器,所述消息消费平台为网络接入服务器,则所述认证消息的消息类型包括:认证请求类型、确认类型、用户下线类型、踢出用户类型中的至少一种,其中,所述确认类型为认证确认类型。
在另一些实施方式中,所述消息生产平台为网络接入服务器,所述消息消费平台为控制器,所述认证消息的消息类型包括:ip分配类型和确认类型中的至少一种,其中,所述确认类型包括:下线确认类型和踢出确认类型。
较佳地,所述控制器为sdn控制器,所述网络接入服务器为accel-ppp。
另外,所述封装后的认证消息中携带所述用户终端对应的用户识别信息;所述用户识别信息包括:用户id、隧道编号、接入类型、连接id、用户名、ip地址中的一个或多个。
较佳地,所述预定格式为json格式。
在一些实施方式中,所述消息集群平台包括kafka服务器,所述多个消息地址包括:vni,其用于存储所述用户的id信息;ack,其用于存储确认类型的认证消息;userauth,其用于存储认证请求类型的认证消息;ipassign,其用于存储ip分配类型的认证消息;offline,其用于存储用户下线类型的认证消息;及kickoff,其用于存储踢出用户类型的认证消息。
本实施方式结合kafka中间件的灵活性以及其日志系统,增加对认证数据的接收以及精准分类,针对不同交互类型定义不同的topic,实现对认证的分类,提高网络接入服务器的认证处理速度。
本发明的实施方式还提供了一种信息通讯系统,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述信息通讯方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述信息通讯方法。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式的信息通讯系统的示意图;
图2是根据本发明第二实施方式的信息通讯方法的流程示意图;
图3是根据本发明第三实施方式的信息通讯方法的流程示意图;
图4是根据本发明第四实施方式的信息通讯方法的流程示意图;
图5是根据本发明第五实施方式的信息通讯方法的流程示意图;
图6是根据本发明第六实施方式的信息通讯系统的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明涉及一种信息通讯系统,用于在sdn网络中进行认证消息的通讯,所述系统包括:消息生产平台、消息消费平台和消息集群平台;其中,所述消息生产平台用于对认证消息按照预定格式进行封装,以得到封装后的认证消息,并发送给所述消息集群平台,所述封装后的认证消息具有消息类型;所述消息集群平台用于根据预先设置的消息类型和消息地址(topic)的对应关系,将所述封装后的认证消息存储在与所述消息类型对应的消息地址中;所述消息消费平台用于对所述消息集群平台中的各消息地址进行监听,当监听到任一消息地址中存储了所述封装后的认证消息时,获取所述封装后的认证消息并进行处理。
在信息通讯的某一阶段,所述消息生产平台为控制器,所述消息消费平台为网络接入服务器;在这种情况下,认证消息的流向是从控制器到网络接入服务器,所述认证消息的消息类型包括:认证请求类型、确认类型、用户下线类型、踢出用户类型中的至少一种,其中,所述确认类型为认证确认类型。
在信息通讯的另一阶段,所述消息生产平台为网络接入服务器,所述消息消费平台为控制器;在这种情况下,认证消息的流向是从网络接入服务器到控制器,所述认证消息的消息类型包括:ip分配类型和确认类型中的至少一种,其中,所述确认类型包括:下线确认类型和踢出确认类型。
本实施方式的核心在于,结合消息集群平台的灵活性以及其日志系统,通过消息集群平台来接收数据,并对数据进行精准分类,即:针对不同交互类型定义不同的消息地址(topic),从而提高整个系统的信息交互速度。下面对本实施方式的信息通讯系统的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
图1是根据本发明第一实施方式的信息通讯系统100的示意图。参见图1,信息通讯系统100包括:控制器110、网络接入服务器120,及连接于控制器110和网络接入服务器120之间的消息集群平台130。
控制器110包括第一消息生产器111和第一消息处理器112。网络接入服务器120包括第二消息生产器121和第二消息处理器122。较佳地,控制器110为sdn控制器,网络接入服务器120为accel-ppp。
第一消息生产器111用于将第一认证消息按照预定格式进行封装,以得到封装后的第一认证消息,并将封装后的第一认证消息发送给消息集群平台130,其中,所述封装后的第一认证消息具有第一消息类型。
消息集群平台130用于根据预先设置的消息类型和消息地址的对应关系,将所述封装后的第一认证消息存储在与所述消息类型对应的消息地址中。
第二消息处理器122用于对消息集群平台130中的各消息地址进行监听,当监听到任一消息地址中存储了所述封装后的第一认证消息时,获取所述封装后的第一认证消息并进行处理。
第二消息生产器121用于将第二认证消息按照所述预定格式进行封装,以得到封装后的第二认证消息,并将封装后的第二认证消息发送给消息集群平台130,其中,所述封装后的第二认证消息具有第二消息类型。
消息集群平台130用于根据预先设置的消息类型和消息地址的对应关系,将所述封装后的第二认证消息存储在与所述消息类型对应的消息地址中。
第一消息处理器112用于对消息集群平台130中的各消息地址进行监听,当监听到任一消息地址中存储了所述封装后的第二认证消息时,获取所述封装后的第二认证消息并进行处理。
对认证消息进行封装的步骤包括对原来的认证消息中的关键信息进行提取,然后,将这些关键信息放入一定的数据结构中,以形成某种特定的格式。较佳地,所述预定格式为json格式。
在一些实施例中,所述封装后的认证消息中携带所述用户终端对应的用户识别信息所,用户识别信息包括:用户id、隧道编号、接入类型、连接id、用户名、ip地址中的一个或多个;每个所述用户识别信息由字段名称和相应的数值构成。其中,用户id的字段名称为uuid,其通过哈希(hash)生成,用于标识用户信息;隧道编号的字段名称为vni,其表示网络接入服务器与虚拟交换机(ovs)之间的隧道编号;接入类型的字段名称为type,其表示用户接入的协议类型;连接id的字段名称为sessionid,其为认证过程的唯一id,用于标识同一认证过程;用户名的字段名称为username;ip地址的字段名称为ipv4或ipv6,可根据ip地址的版本来选择。
本发明的实施例采用自定义字段对需要通讯的信息进行深度封装,将信息封装成具有统一格式的消息后进行传输,能够大大简化信息的交互流程,提高交互效率。
如前所述,控制器110发送给消息集群平台的第一认证消息具有第一消息类型,该第一消息类型可能为认证请求类型、确认类型、用户下线类型、踢出用户类型中的至少一种,其中,所述确认类型为认证确认类型。网络接入服务器120发送给消息集群平台的第二认证消息具有第二消息类型,该第二消息类型可能为ip分配类型和确认类型中的至少一种,其中,所述确认类型包括:下线确认类型和踢出确认类型。通过发送和处理不同消息类型的认证消息可实现用户上线认证、用户下线、主动踢出用户等操作。
消息集群平台130包括分别对应于多个消息类型的多个消息地址(topic),消息集群平台130用于根据第一消息类型和第二消息类型将第一消息和第二消息分别存储于相应的topic中。
较佳地,消息集群平台130为kafka,所述多个topic包括:vni、ack、userauth、ipassign、offline、kickoff;其中,vni用于存储所述用户id信息,ack用于存储确认类型的认证消息,如:认证确认类型、下线确认类型、踢出确认类型;userauth用于存储认证请求类型的认证消息;ipassign用于存储ip分配类型的认证消息;offline用于存储用户下线类型的认证消息;kickoff用于存储踢出用户类型的认证消息。kafka包括多个broker,该多个broker之间共享topic,topic的partitions设置为2n个。设置kafka为自平衡模式,保证所有的broker均能够保存topic的数据。
本发明的实施例结合kafka中间件的灵活性以及其日志系统,增加对数据的接收以及精准分类,针对不同交互类型定义不同的topic,能够有效提高数据处理的速度。本实施方式利用kafka消息集群实现控制层与数据层之间的隔离,保证在控制器侧进进行控制数据的交互,认证信息通过封装后的数据进行传输,从而将认证过程统一化,集中化,简化认证交互流程,提高认证效率。
值得注意的是,控制器110和网络接入服务器120均可包括多个消息生产器和多个消息处理器,因而,可实现多用户同时认证,对各业务进行并行处理,从而进一步提高网络接入服务器的系统利用率。
本发明还涉及一种信息通讯方法,其用于在sdn网络中进行认证消息的通讯,所述方法包括:消息生产平台用于对认证消息按照预定格式进行封装,以得到封装后的认证消息,并发送给消息集群平台,所述封装后的认证消息具有消息类型;所述消息集群平台用于根据预先设置的消息类型和消息地址的对应关系,将所述封装后的认证消息存储在与所述消息类型对应的消息地址中;消息消费平台用于对所述消息集群平台中的各消息地址进行监听,当监听到任一消息地址中存储了所述封装后的认证消息时,获取所述封装后的认证消息并进行处理。在信息通讯的某一阶段,所述消息生产平台为控制器,所述消息消费平台为网络接入服务器;在这种情况下,所述认证消息的消息类型包括:认证请求类型、确认类型、用户下线类型、踢出用户类型中的至少一种,其中,所述确认类型为认证确认类型。在信息通讯的另一阶段,所述消息生产平台为网络接入服务器,所述消息消费平台为控制器;在这种情况下,所述认证消息的消息类型包括:ip分配类型和确认类型中的至少一种,其中,所述确认类型包括:下线确认类型和踢出确认类型。下面对本实施方式的信息通讯方法的实现细节进行具体的说明。
根据本发明第二实施方式的信息通讯方法的流程示意图图如2所示,参见图2,信息通讯方法200包括步骤201-206,下面对各步骤进行具体说明。
步骤201:控制器将第一认证消息按照预定格式进行封装,以得到封装后的第一认证消息,并将封装后的第一认证消息发送给消息集群平台。其中,封装后的第一认证消息具有第一消息类型;第一消息类型可能为:认证请求类型、认证确认类型、用户下线类型、踢出用户类型。
步骤202:消息集群平台根据预先设置的消息类型和topic的对应关系,将封装后的第一认证消息存储在与其消息类型对应的topic中。
步骤203:网络接入服务器对消息集群平台中的各topic进行监听,当监听到任一topic中存储了封装后的第一认证消息时,获取封装后的第一认证消息并进行处理。
步骤204:网络接入服务器将第二认证消息按照所述预定格式进行封装,以得到封装后的第二认证消息,并将封装后的第二认证消息发送给消息集群平台。其中,所述封装后的第二认证消息具有第二消息类型,第二消息类型可能为:ip分配类型、下线确认类型和踢出确认类型。
步骤205:消息集群平台根据预先设置的消息类型和消息topic的对应关系,将封装后的第二认证消息存储在与其消息类型对应的topic中。
步骤206:控制器对消息集群平台中的各topic进行监听,当监听到任一topic中存储了封装后的第二认证消息时,获取封装后的第二认证消息并进行处理。
在一些实施例中,所述预定格式为json格式。在一些实施例中,所述封装后的认证消息中携带所述用户终端对应的用户识别信息;所述用户识别信息包括:用户id、隧道编号、接入类型、连接id、用户名、ip地址中的一个或多个。
与现有技术相比,本发明实施方式,通过消息集群平台来接收数据,并对数据进行精准分类从而提高整个系统的信息交互速度;另外,本实施例还采用自定义字段将需要通讯的信息封装成具有统一格式的消息后进行传输,能够大大简化信息的交互流程,提高交互效。
图3是根据本发明第三实施方式的信息通讯方法300的流程示意图,该实施方式涉及使用图2所示实施方式中信息交互方法来实现用户上线认证的操作。参见图3,信息通讯方法300包括步骤301-309,下面对各步骤进行具体说明。
步骤301:控制器将来自虚拟交换机(ovs)的认证请求消息按照预定格式进行封装,以得到封装后的认证请求消息,并将封装后的认证请求消息发送给消息集群平台。
步骤302:消息集群平台将封装后的认证请求消息存储在topic:userauth中。
步骤303:网络接入服务器从topic:userauth读取封装后的认证请求消息,并根据封装后的认证请求消息进行认证处理。
步骤304:在认证成功后,网络接入服务器将ip分配消息按照所述预定格式进行封装,以得到封装后的ip分配消息,并将所述封装后的ip分配消息发送给消息集群平台。
步骤305:消息集群平台将封装后的ip分配消息存储在topic:ipassign中。
步骤306:控制器从topic:ipassign读取封装后ip分配消息,对封装后的ip分配消息进行解析。
步骤307:控制器将认证确认消息按照所述预定格式进行封装,以得到封装后的认证确认消息,并向消息集群平台发送封装后的认证确认消息。
步骤308:消息集群平台将封装后的认证确认消息存储在topic:ack中。
步骤309:网络接入服务器在监听到封装后的认证确认消息后,根据消息集群平台topic:vni中的用户id信息判定用户是否为合法用户,并在用户为合法用户的情况下,网络接入服务器认定用户上线。在一些实施例中,认定用户上线的同时可通知计费系统。
上述实施方式具体涉及利用消息集群平台实现用户的上线认证的方法。该方法对用户的认证信息进行深度封装,将认证过程下放到ovs以及控制器中,实现控制面与数据面的分隔,保证在控制器侧进进行控制数据的交互,从而使认证过程统一化,集中化,简化认证交互流程,提高认证效率。
图4是根据本发明第四实施方式的信息通讯方法400的流程示意图;该实施方式涉及使用图2所示实施方式中信息交互方法来实现用户的下线操作。参见图4,信息通讯方法400包括步骤401-406,下面对各步骤进行具体说明。
步骤401:当用户下线时,控制器将下线消息按照预定格式进行封装,以得到封装后的用户下线消息,并将封装后的用户下线消息发送给消息集群平台。
步骤402:消息集群平台将封装后的用户下线消息存储在topic:offline中。
步骤403:网络接入服务器在监听到封装后的用户下线消息后,进行上网状态清除操作;其中,上网清除操作具体可包括:对用户进行ip地址的释放、结算、认证信息清除等操作。
步骤404:网络接入服务器将下线确认消息按照所述预定格式进行封装,以得到封装后的下线确认消息,并将封装后的下线确认消息发送到消息集群平台。
步骤405:消息集群平台将所述封装后的下线确认消息存储在topic:ack中。
步骤406:控制器在监听到所述封装后的下线确认消息后,向ovs发送流表删除指令,以使ovs将指定的流表删除。
图5是根据本发明第五实施方式的信息通讯方500的流程示意图;该实施方式涉及使用图2所示实施方式中信息交互方法来实现主动踢出用户的操作。参见图5,信息通讯方法500包括步骤501-505,下面对各步骤进行具体说明。
步骤501:当用户需要被踢出时,控制器将踢出用户消息按照预定格式进行封装,以得到封装后的踢出用户消息,并将封装后的踢出用户消息发送给消息集群平台。
步骤502:消息集群平台将所述封装后的踢出用户消息存储在topic:kickoff中。
步骤503:网络接入服务器在监听到所述封装后的踢出用户消息后,根据topic:vni中的用户id信息进行上网状态清除操作;其中,上网清除操作具体可包括:对用户进行ip地址的释放、结算、认证信息清除等操作。
步骤504:网络接入服务器将踢出确认消息按照所述预定格式进行封装,以得到封装后的踢出确认消息,且将所述封装后的踢出确认消息发送至消息集群平台。
步骤505:消息集群平台将所述封装后的踢出确认消息存储在topic:ack中。
值得注意的是,针对不同的用户,上述用户上线认证、下线操作及踢出操作可同时进行,本发明的信息通讯系统可对多个业务进行并行处理。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第六实施方式涉及一种信息通讯系统,如图6所示,包括至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行上述的信息通讯方法。
其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。
处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时、外围接口、
电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述信息通讯方法。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
1.一种信息通讯系统,其特征在于,用于在sdn网络中进行认证消息的通讯,所述系统包括:消息生产平台、消息消费平台和消息集群平台;其中,
所述消息生产平台用于对认证消息按照预定格式进行封装,以得到封装后的认证消息,并发送给所述消息集群平台,所述封装后的认证消息具有消息类型;
所述消息集群平台用于根据预先设置的消息类型和消息地址的对应关系,将所述封装后的认证消息存储在与所述消息类型对应的消息地址中;
所述消息消费平台用于对所述消息集群平台中的各消息地址进行监听,当监听到任一消息地址中存储了所述封装后的认证消息时,获取所述封装后的认证消息并进行处理。
2.根据权利要求1所述的信息通讯系统,其特征在于,所述消息生产平台为控制器,所述消息消费平台为网络接入服务器,则所述认证消息的消息类型包括:认证请求类型、确认类型、用户下线类型、踢出用户类型中的至少一种,其中,所述确认类型为认证确认类型。
3.根据权利要求1所述的信息通讯系统,其特征在于,所述消息生产平台为网络接入服务器,所述消息消费平台为控制器,所述认证消息的消息类型包括:ip分配类型和确认类型中的至少一种,其中,所述确认类型包括:下线确认类型和踢出确认类型。
4.根据权利要求2或3所述的信息通讯系统,其特征在于,所述控制器为sdn控制器,所述网络接入服务器为accel-ppp。
5.根据权利要求1所述的信息通讯系统,其特征在于,所述封装后的认证消息中携带所述用户终端对应的用户识别信息;所述用户识别信息包括:用户id、隧道编号、接入类型、连接id、用户名、ip地址中的一个或多个。
6.根据权利要求1所述的信息通讯系统,其特征在于,所述预定格式为json格式。
7.根据权利要求1所述的信息通讯系统,其特征在于,所述消息集群平台包括kafka服务器,所述多个消息地址包括:
vni,其用于存储所述用户的id信息;
ack,其用于存储确认类型的认证消息;
userauth,其用于存储认证请求类型的认证消息;
ipassign,其用于存储ip分配类型的认证消息;
offline,其用于存储用户下线类型的认证消息;及
kickoff,其用于存储踢出用户类型的认证消息。
8.一种信息通讯方法,其特征在于,用于在sdn网络中进行认证消息的通讯,所述方法包括:
消息生产平台用于对认证消息按照预定格式进行封装,以得到封装后的认证消息,并发送给消息集群平台,所述封装后的认证消息具有消息类型;
所述消息集群平台用于根据预先设置的消息类型和消息地址的对应关系,将所述封装后的认证消息存储在与所述消息类型对应的消息地址中;
消息消费平台用于对所述消息集群平台中的各消息地址进行监听,当监听到任一消息地址中存储了所述封装后的认证消息时,获取所述封装后的认证消息并进行处理。
9.一种信息通讯系统,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求8中所述的信息通讯方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求8中所述的信息通讯方法。
技术总结