本发明涉及通信技术领域,尤其涉及一种Portal认证方法及装置。
背景技术:
门户(Portal)认证通常也称为Web认证,一般将Portal认证网站称为门户网站。当用户需要使用互联网中的受限资源时,需要登录到特定站点进输入用户名、密码等认证凭据进行接入认证,在认证通过后才可以使用互联网资源。
SDN(Software Defined Network,软件定义网络)的核心思想是将网络设备的控制层面与转发层面分离,以实现通过SDN控制器对网络流量的灵活控制。随着SDN中支持OpenFlow协议的交换机大规模的应用,逐渐代替了传统网络架构,因此如何将传统网络中的Portal认证与SDN相结合成为亟待解决的问题。
技术实现要素:
有鉴于此,本发明提供一种Portal认证方法及装置来解决现有技术在SDN中无法实现portal认证的问题。
具体地,本发明是通过如下技术方案实现的:
本发明提供一种Portal认证方法,所述方法应用于SDN中的portal控制器,所述方法包括:
接收openflow交换机上送的与第一重定向流表相匹配的数据流,所述第一重定向流表是由openflow控制器根据portal控制器下发的重定向策略生成后下发给openflow交换机的,用于指导openflow交换机将入接口为用户接入的接口且报文类型为预设类型的数据流上送到portal控制器;
发起对所述数据流的源端进行认证,在认证通过时,记录所述源端的认证信息,并下发转发策略给openflow控制器,以使openflow控制器根据所述转发策略生成第二重定向流表并下发至openflow交换机,用于指导openflow交换机将源IP地址为所述源端的IP地址的数据流上送到openflow控制器,所述第二重定向流表的优先级大于所述第一重定向流表的优先级;
接收openflow控制器发送的认证查询请求,所述认证查询请求是openflow控制器在接收到所述openflow交换机上送的与所述第二重定向流表相匹配的数据流后发送的;
当本地存在所述源端的认证信息时,发送认证通过通知给openflow控制器,以由openflow控制器生成从所述源端至与所述第二重定向流表相匹配的数据流的目的端的转发流表并发送到openflow交换机,指导openflow交换机根据所述转发流表对匹配的数据流进行转发。
进一步的,发起对所述数据流的源端进行认证包括:
判断所述数据流是否访问本地的HTTP页面,如果否,将本地的认证页面发送给源端;
获取源端在认证页面输入的认证信息;
发起对所述认证信息的认证。
进一步的,当本地不存在所述源端的认证信息时,所述方法还包括:
发送认证未通过通知给openflow控制器,以由openflow控制器通知openflow交换机删除所述第二重定向流表。
本发明还提供另一种Portal认证方法,所述方法应用于SDN中的openflow控制器,所述SDN中还包括portal控制器,所述方法包括:
接收portal控制器下发的重定向策略,根据所述重定向策略生成第一重定向流表并下发至openflow交换机,所述第一重定向流表用于指导openflow交换机将入接口为用户接入的接口且报文类型为预设类型的数据流上送到portal控制器;
接收portal控制器下发的转发策略,根据所述转发策略生成第二重定向流表并下发至openflow交换机,所述转发策略为portal控制器在发起对所述数据流的源端进行认证,并在认证通过时记录所述源端的认证信息后发送的,所述第二重定向流表用于指导openflow交换机将源IP地址为所述源端的IP地址的数据流上送到openflow控制器,所述第二重定向流表的优先级大于所述第一重定向流表的优先级;
接收openflow交换机上送的与所述第二重定向流表相匹配的数据流,向portal控制器发送认证查询请求;
接收portal控制器在本地存在所述源端的认证信息时发送的认证通过通知,生成从所述源端至与所述第二重定向流表相匹配的数据流的目的端的转发流表并发送到openflow交换机,指导openflow交换机根据所述转发流表对匹配的数据流进行转发。
进一步的,所述方法还包括:
接收portal控制器在本地不存在所述源端的认证信息时发送的认证未通过通知;
通知openflow交换机删除所述第二重定向流表。
基于相同的构思,本发明还提供一种Portal认证装置,所述装置应用于SDN中的portal控制器,所述装置包括:
第一接收单元,用于接收openflow交换机上送的与第一重定向流表相匹配的数据流,所述第一重定向流表是由openflow控制器根据portal控制器下发的重定向策略生成后下发给openflow交换机的,用于指导openflow交换机将入接口为用户接入的接口且报文类型为预设类型的数据流上送到portal控制器;
下发单元,用于发起对所述数据流的源端进行认证,在认证通过时,记录所述源端的认证信息,并下发转发策略给openflow控制器,以使openflow控制器根据所述转发策略生成第二重定向流表并下发至openflow交换机,用于指导openflow交换机将源IP地址为所述源端的IP地址的数据流上送到openflow控制器,所述第二重定向流表的优先级大于所述第一重定向流表的优先级;
第二接收单元,用于接收openflow控制器发送的认证查询请求,所述认证查询请求是openflow控制器在接收到所述openflow交换机上送的与所述第二重定向流表相匹配的数据流后发送的;
通知发送单元,用于当本地存在所述源端的认证信息时,发送认证通过通知给openflow控制器,以由openflow控制器生成从所述源端至与所述第二重定向流表相匹配的数据流的目的端的转发流表并发送到openflow交换机,指导openflow交换机根据所述转发流表对匹配的数据流进行转发。
进一步的,所述下发单元,具体用于:
判断所述数据流是否访问本地的HTTP页面,如果否,将本地的认证页面发送给源端;获取源端在认证页面输入的认证信息;发起对所述认证信息的认证。
进一步的,所述通知发送单元,还用于当本地不存在所述源端的认证信息时,发送认证未通过通知给openflow控制器,以由openflow控制器通知openflow交换机删除所述第二重定向流表。
本发明还提供另一种Portal认证装置,所述装置应用于SDN中的openflow控制器,所述SDN中还包括portal控制器,所述装置包括:
第一接收单元,用于接收portal控制器下发的重定向策略,根据所述重定向策略生成第一重定向流表并下发至openflow交换机,所述第一重定向流表用于指导openflow交换机将入接口为用户接口且报文类型为预设类型的数据流上送到portal控制器;
第二接收单元,用于接收portal控制器下发的转发策略,根据所述转发策略生成第二重定向流表并下发至openflow交换机,所述转发策略为portal控制器在发起对所述数据流的源端进行认证,并在认证通过时记录所述源端的认证信息后发送的,所述第二重定向流表用于指导openflow交换机将源IP地址为所述源端的IP地址的数据流上送到openflow控制器,所述第二重定向流表的优先级大于所述第一重定向流表的优先级;
认证查询单元,用于接收openflow交换机上送的与所述第二重定向流表相匹配的数据流,向portal控制器发送认证查询请求;
通知接收单元,用于接收portal控制器在本地存在所述源端的认证信息时发送的认证通过通知,生成从所述源端至所述数据流的目的端的转发流表并发送到openflow交换机,指导openflow交换机根据所述转发流表对匹配的数据流进行转发。
进一步的,所述通知接收单元,还用于接收portal控制器在本地不存在所述源端的认证信息时发送的认证未通过通知,并通知openflow交换机删除所述第二重定向流表。
由此可见,本发明可以通过在SDN中部署portal控制器,通过portal控制器下发重定向策略至SDN中的openflow控制器,使openflow控制器控制openflow交换机上传匹配的数据流给portal控制器,并在接收openflow交换机上送的数据流后,发起对所述数据流的源端进行认证,在认证通过时,记录所述源端的认证信息,并下发转发策略给openflow控制器,使openflow控制器控制openflow交换机上传匹配的数据流给openflow控制器;然后接收openflow控制器发送的认证查询请求,并当本地存在所述源端的认证信息时,发送认证通过通知给openflow控制器以由openflow控制器生成从所述源端至所述数据流的目的端的转发表项。因此,本发明可以在SDN中单独部署用于实现portal认证的portal控制器,并协同openflow控制器完成portal认证的接入,从而实现SDN中的portal认证。
附图说明
图1是本发明一种示例性实施方式中的一种Portal认证方法的处理流程图;
图2是本发明一种示例性实施方式中的另一种Portal认证方法的处理流程图;
图3本发明一种示例性实施方式中的Portal认证交互流程图;
图4a本发明一种示例性实施方式中的Portal认证装置所在portal控制器的硬件结构图;
图4b本发明一种示例性实施方式中的一种Portal认证装置的逻辑结构图;
图5a本发明一种示例性实施方式中的Portal认证装置所在openflow控制器的硬件结构图;
图5b本发明一种示例性实施方式中的另一种Portal认证装置的逻辑结构图。
具体实施方式
为了解决现有技术存在的问题,本发明提供一种Portal认证方法及装置,可以通过在SDN中部署portal控制器,通过portal控制器下发重定向策略至SDN中的openflow控制器,使openflow控制器控制openflow交换机上传匹配的数据流给portal控制器,并在接收openflow交换机上送的数据流后,发起对所述数据流的源端进行认证,在认证通过时,记录所述源端的认证信息,并下发转发策略给openflow控制器,使openflow控制器控制openflow交换机上传匹配的数据流给openflow控制器;然后接收openflow控制器发送的认证查询请求,并当本地存在所述源端的认证信息时,发送认证通过通知给openflow控制器以由openflow控制器生成从所述源端至所述数据流的目的端的转发表项。因此,本发明可以在SDN中单独部署用于实现portal认证的portal控制器,并协同openflow控制器完成portal认证的接入,从而实现SDN中的portal认证。
请参考图1,是本发明一种示例性实施方式中的一种Portal认证方法的处理流程图,所述方法应用于SDN中的portal控制器,所述方法包括:
步骤101、接收openflow交换机上送的与第一重定向流表相匹配的数据流,所述第一重定向流表是由openflow控制器根据portal控制器下发的重定向策略生成后下发给openflow交换机的,用于指导openflow交换机将入接口为用户接入的接口且报文类型为预设类型的数据流上送到portal控制器。
在本实施例中,portal控制器会向所述openflow控制器下发重定向策略,其中包括匹配项和动作项,匹配项包括openflow交换机上用于用户接入的入接口和报文类型(即,预设类型,例如,IPv4或IPv6),动作项包括改写出接口为openflow交换机上与portal控制器相连的接口,以及改写目的IP为portal控制器的IP地址。
openflow控制器可以根据该重定向策略生成第一重定向流表下发至openflow交换机,用于指导openflow交换机在确定数据流的入接口和报文类型与该匹配项匹配时,按照动作项将数据流的出接口改写为openflow交换机上与portal控制器相连的接口,将数据流的目的IP地址改写为portal控制器的IP地址,之后将数据流转发至portal控制器。
步骤102、发起对所述数据流的源端进行认证,在认证通过时,记录所述源端的认证信息,并下发转发策略给openflow控制器,以使openflow控制器根据所述转发策略生成第二重定向流表并下发至openflow交换机,用于指导openflow交换机将源IP地址为所述源端的IP地址的数据流上送到openflow控制器,所述第二重定向流表的优先级大于所述第一重定向流表的优先级。
在收到openflow交换机上送的与所述第一重定向流表相匹配的数据流后,portal控制器会发起对所述数据流的源端进行认证,即,先判断所述数据流是否访问本地的HTTP页面,如果是,则按照本地已有的认证策略进行处理,例如放行或禁止;如果否,再将本地的认证页面发送给源端;然后获取源端在认证页面输入的认证信息,并发起对所述认证信息的认证,即,将认证信息发送给认证服务器进行认证。在这里,portal控制器与认证服务器之间的交互流程与传统portal认证过程中portal服务器与认证服务器之间的交互流程相同,在此不再详述。
在认证通过时,portal控制器会记录所述源端的认证信息,并下发转发策略给openflow控制器,以使openflow控制器根据所述转发策略生成第二重定向流表下发至openflow交换机,所述第二重定向流表的优先级大于所述第一重定向流表的优先级。具体来说,所述第二重定向流表中可以包括该源端的IP地址,也就是该数据流的源IP地址,以使openflow交换机收到数据流后,若该数据流的源IP地址匹配该第二重定向流表中的IP地址时,可以确定该数据流来自所述源端,因此可以将该数据流转发至openflow控制器。
在认证未通过时,不做任何处理。
步骤103、接收openflow控制器发送的认证查询请求,所述认证查询请求是openflow控制器在接收到所述openflow交换机上送的与所述第二重定向流表相匹配的数据流后发送的。
在本实施例中,当所述openflow交换机收到与所述第二重定向流表相匹配的数据流时,可以将所述数据流上送至所述openflow控制器;当openflow控制器收到openflow交换机发送的所述数据流后,会获取该数据流携带的认证信息,例如源IP地址和源MAC地址,从而向portal控制器发送认证查询请求,用于查询所述数据流的源端是否通过认证。
步骤104、当本地存在所述源端的认证信息时,发送认证通过通知给openflow控制器,以由openflow控制器生成从所述源端至与所述第二重定向流表相匹配的数据流的目的端的转发流表并发送到openflow交换机,指导openflow交换机根据所述转发流表对匹配的数据流进行转发。
portal控制器获取该认证查询请求后,查询本地已记录的认证信息,确定所述数据流携带的认证信息(即,所述数据流的源端的认证信息)是否存在于本地已记录的认证信息中。当本地存在述数据流携带的认证信息时,portal控制器发送认证通过通知至openflow控制器,以使openflow控制器生成从所述源端至所述数据流的目的端的转发流表并发送到openflow交换机,来指导openflow交换机根据所述转发流表对匹配的数据流进行转发。在这里,openflow交换机针对首次收到与第二重定向流表相匹配的数据流,会进行复制,一份上送给openflow控制器,一份本地保存,待收到openflow控制器下发的转发流表时,依据转发流表进行转发。
至此,图1所示的Portal认证流程结束。
此外,当本地不存在所述源端的认证信息时,通常可以认为该源端未通过认证,但是在特殊情况下,例如portal控制器上的源端认证信息被管理员强制删除或意外丢失时,portal控制器也查不到源端的认证信息,为了保证用户可以正常访问外网,portal控制器可以发送认证未通过通知给openflow控制器,由openflow控制器通知openflow交换机删除所述第二重定向流表,以使openflow交换机无法根据该第二重定向流表上传数据流给openflow控制器,但openflow交换机仍可以根据第一重定向流表上送数据流,对源端重新进行portal认证。
请参考图2,是本发明一种示例性实施方式中的一种Portal认证方法的处理流程图,所述方法应用于SDN中的openflow控制器,所述SDN中还包括portal控制器,所述方法包括:
步骤201、接收portal控制器下发的重定向策略,根据所述重定向策略生成第一重定向流表并下发至openflow交换机,所述第一重定向流表用于指导openflow交换机将入接口为用户接入的接口且报文类型为预设类型的数据流上送到portal控制器。
步骤202、接收portal控制器下发的转发策略,根据所述转发策略生成第二重定向流表并下发至openflow交换机,所述转发策略为portal控制器在发起对所述数据流的源端进行认证,并在认证通过时记录所述源端的认证信息后发送的,所述第二重定向流表用于指导openflow交换机将源IP地址为所述源端的IP地址的数据流上送到openflow控制器,所述第二重定向流表的优先级大于所述第一重定向流表的优先级。
步骤203、接收openflow交换机上送的与所述第二重定向流表相匹配的数据流,向portal控制器发送认证查询请求。
步骤204、接收portal控制器在本地存在所述源端的认证信息时发送的认证通过通知,生成从所述源端至与所述第二重定向流表相匹配的数据流的目的端的转发流表并发送到openflow交换机,指导openflow交换机根据所述转发流表对匹配的数据流进行转发。
本实施例中,当portal控制器在本地未查到所述源端的认证信息,可以向所述openflow控制器发送认证未通过通知,openflow控制器接收该通知时,可以通知openflow交换机删除所述第二重定向流表,从而使源端重新进行portal认证。
为使本发明的目的、技术方案及优点更加清楚明白,下面结合图3的Portal认证交互流程对本发明的具体实施方案作进一步地详细说明。
步骤301、portal控制器下发重定向策略到openflow控制器。
在本实施例中,portal控制器与openflow控制器之间可以使用TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)等进行通信。
步骤302、openflow控制器生成第一重定向流表,下发到openflow交换机。
openflow控制器会根据重定向策略生成第一重定向流表,具体如下:
匹配项:入接口为openflow交换机上用于用户接入的接口;报文类型为IPv4或IPv6;
动作项:改写出接口为openflow交换机上与portal控制器相连的接口;改写目的IP为portal控制器的IP地址。
步骤303、openflow交换机收到用户的第一数据流时,判断该第一数据流是否与第一重定向流表匹配,若匹配,则将第一数据流转发到portal控制器。
步骤304、portal控制器判断第一数据流是否访问本地的HTTP页面,在判断为否时,重定向到本地的认证页面。
步骤305、portal控制器将用户在认证页面上输入的认证信息与认证服务器进行认证。
步骤306、在用户通过认证时,则记录用户的认证信息(即,第一数据流的源端的认证信息)。
所述认证信息可以包括源端的IP地址和MAC地址。
步骤307、portal控制器向openflow控制器下发转发策略,该转发策略中包括源端的IP地址。
步骤308、openflow控制器依据转发策略生成第二重定向流表,并下发到openflow交换机,指导openflow交换机将源IP地址为所述源端的IP地址的数据流上送到openflow控制器,该第二重定向流表的优先级高于第一重定向流表。
步骤309、openflow交换机收到用户的第二数据流时,判断该第二数据流是否与第二重定向流表匹配,若匹配,则将第二数据流转发到openflow控制器。
步骤310、openflow控制器将该第二数据流携带的认证信息上送到portal控制器。
步骤311、portal控制器查询该第二数据流携带的认证信息是否在本地已记录的认证信息中,若是,则转步骤312;若否,则转步骤313。
步骤312、portal控制器向openflow控制器发送所述源端已通过认证的通知,使openflow控制器生成正常的转发流表并下发到openflow交换机,以使后续用户的数据流在openflow交换机中匹配到所述正常的转发流表后,可以被openflow交换机正常转发。
步骤313、portal控制器向openflow控制器发送所述源端未通过认证的通知,使openflow控制器通知openflow交换机删除第二重定向流表。
基于相同的构思,本发明还提供一种Portal认证装置,该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本发明的数据流控制装置作为一个逻辑意义上的装置,是通过其所在装置的CPU将存储器中对应的计算机程序指令读取后运行而成。
请参考图4a是本发明一种示例性实施方式中的Portal认证装置所在portal控制器的硬件结构图;所述装置应用于所述装置应用于SDN中的portal控制器,该装置基本运行环境包括CPU,存储器以及其他硬件。从逻辑层面上来看,该软件安装装置400的逻辑结构如图4b所示,其中该装置400包括:
第一接收单元401,用于接收openflow交换机上送的与第一重定向流表相匹配的数据流,所述第一重定向流表是由openflow控制器根据portal控制器下发的重定向策略生成后下发给openflow交换机的,用于指导openflow交换机将入接口为用户接入的接口且报文类型为预设类型的数据流上送到portal控制器;
下发单元402,用于发起对所述数据流的源端进行认证,在认证通过时,记录所述源端的认证信息,并下发转发策略给openflow控制器,以使openflow控制器根据所述转发策略生成第二重定向流表并下发至openflow交换机,用于指导openflow交换机将源IP地址为所述源端的IP地址的数据流上送到openflow控制器,所述第二重定向流表的优先级大于所述第一重定向流表的优先级;
第二接收单元403,用于接收openflow控制器发送的认证查询请求,所述认证查询请求是openflow控制器在接收到所述openflow交换机上送的与所述第二重定向流表相匹配的数据流后发送的;
通知发送单元404,用于当本地存在所述源端的认证信息时,发送认证通过通知给openflow控制器,以由openflow控制器生成从所述源端至与所述第二重定向流表相匹配的数据流的目的端的转发流表并发送到openflow交换机,指导openflow交换机根据所述转发流表对匹配的数据流进行转发。
可选的,所述下发单元402,具体用于:
判断所述数据流是否访问本地的HTTP页面,如果否,将本地的认证页面发送给源端;获取源端在认证页面输入的认证信息;发起对所述认证信息的认证。
可选的,所述通知发送单元404,还用于当本地不存在所述源端的认证信息时,发送认证未通过通知给openflow控制器,以由openflow控制器通知openflow交换机删除所述第二重定向流表。
请参考图5a是本发明一种示例性实施方式中的Portal认证装置所在服务器设备的硬件结构图;所述装置应用于SDN中的openflow控制器,所述SDN中还包括portal控制器。该装置基本运行环境包括CPU,存储器以及其他硬件。从逻辑层面上来看,该软件安装装置500的逻辑结构如图5b所示,其中该装置500包括:
第一接收单元501,用于接收portal控制器下发的重定向策略,根据所述重定向策略生成第一重定向流表并下发至openflow交换机,所述第一重定向流表用于指导openflow交换机将入接口为用户接口且报文类型为预设类型的数据流上送到portal控制器;
第二接收单元502,用于接收portal控制器下发的转发策略,根据所述转发策略生成第二重定向流表并下发至openflow交换机,所述转发策略为portal控制器在发起对所述数据流的源端进行认证,并在认证通过时记录所述源端的认证信息后发送的,所述第二重定向流表用于指导openflow交换机将源IP地址为所述源端的IP地址的数据流上送到openflow控制器,所述第二重定向流表的优先级大于所述第一重定向流表的优先级;
认证查询单元503,用于接收openflow交换机上送的与所述第二重定向流表相匹配的数据流,向portal控制器发送认证查询请求;
通知接收单元504,用于接收portal控制器在本地存在所述源端的认证信息时发送的认证通过通知,生成从所述源端至所述数据流的目的端的转发流表并发送到openflow交换机,指导openflow交换机根据所述转发流表对匹配的数据流进行转发。
可选的,所述通知接收单元504,还用于接收portal控制器在本地不存在所述源端的认证信息时发送的认证未通过通知,并通知openflow交换机删除所述第二重定向流表。
由此可见,本发明可以通过在SDN中部署portal控制器,通过portal控制器下发重定向策略至SDN中的openflow控制器,使openflow控制器控制openflow交换机上传匹配的数据流给portal控制器,并在接收openflow交换机上送的数据流后,发起对所述数据流的源端进行认证,在认证通过时,记录所述源端的认证信息,并下发转发策略给openflow控制器,使openflow控制器控制openflow交换机上传匹配的数据流给openflow控制器;然后接收openflow控制器发送的认证查询请求,并当本地存在所述源端的认证信息时,发送认证通过通知给openflow控制器以由openflow控制器生成从所述源端至所述数据流的目的端的转发表项。因此,本发明可以将SDN中单独部署用于实现portal认证的portal控制器,并协同openflow控制器完成portal认证的接入,从而实现SDN中的portal认证。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。