基于DPDK的URL认证的重定向系统与方法技术方案

技术编号:16400788 阅读:50 留言:0更新日期:2017-10-17 20:54
本公开提供了一种基于DPDK的URL认证的重定向系统,该系统在部署的DPDK环境下运行,包括:控制网关,该控制网管包括DPDK库,该控制网关用于基于DPDK库接收并解析及转发用户端发送的报文:当用户端已经被授权登录时,基于DPDK库转发报文,使用户直接连接外网;当用户端未被授权登录且用户端与控制网关处于已连接状态时,将重定向URL添加到回复报文并基于DPDK库转发至用户端。控制网关通过调用DPDK库直接从网卡即硬件上获取二层报文或发送报文,避免了内存的拷贝,节约了数据处理时间,提高了计算机性能。

Redirection system and method of URL authentication based on DPDK

The invention provides a redirection system authentication of URL based on DPDK, the system is running in the DPDK environment, the deployment includes a control gateway, the control network including the DPDK library, the library for the DPDK control gateway receives and parses and message forwarding based on user terminal sends: when a user terminal has been authorized to sign. DPDK Library Based on packet forwarding, the user is connected directly outside the network; when the user is not authorized to log in and end user terminal and the gateway control is in the connected state, will be added to the reply messages and redirect URL forwarding to the user terminal based on the DPDK library. The control gateway acquires two layers of messages or send messages directly from the network card, namely the hardware, by calling the DPDK library, avoids copying the memory, saves the data processing time, and improves the computer performance.

【技术实现步骤摘要】
基于DPDK的URL认证的重定向系统与方法
本公开涉及通信网络
,尤其涉及一种基于数据平面开发套件(DataPlaneDevelopmentKit,简称DPDK)的URL认证重定向的系统及方法。
技术介绍
随着网络技术的普及和发展,网络使用愈来愈频繁,为了保障网络的安全,同时也为网络应用提供身份认证、访问控制等安全服务,有必要建立用户和网络的信誉服务系统。而且,面对日益增长的庞大网络流量,网关需要处理的数据量也越来越大,流量的实时处理性能要求越高。通常URL认证重定向系统包括访问的第三方系统和重定向URL服务器。第三方系统一般是用户将要访问的地址,重定向URL服务器是第三方系统重定向指向的地址。此架构下,该系统部署需要有个第三方系统的接入,而且只有用户访问才会出现重定向,因此该重定向系统适用于基于网页到网页的重定向。但是针对于网络登录,尤其是计费网关类的使用,重定向系统需要透明接入,同时要求当用户端打开浏览器的时候,弹出登录页面以便于用户上网的身份认证。因此需要一种基于网关的URL认证重定向系统来实现。目前,基于网关实现的URL认证重定向系统是通过Linux内核实现,但是由于内核本身没有针对大流量情景进行专门优化,比如频繁地网卡中断会降低CPU使用率等,导致内核处理大流量数据性能一般,当网络使用频繁,数据量很大的时候,性能受限,因此寻求一个适用于常见硬件平台同时性能优异的开发技术成为必然。公开内容(一)要解决的技术问题本公开提供了一种基于DPDK的URL认证的重定向系统及方法,以至少部分解决以上所提出的技术问题。(二)技术方案根据本公开的一个方面,提供了一种基于DPDK的URL认证的重定向系统,该系统在部署的DPDK环境下运行,包括:控制网关,该控制网管包括DPDK库,该控制网关用于基于DPDK库接收并解析及转发用户端发送的报文:当用户端已经被授权登录时,基于DPDK库转发报文,使用户直接连接外网;当用户端未被授权登录且用户端与控制网关处于已连接状态时,将重定向URL添加到回复报文并基于DPDK库转发至用户端。在本公开一些实施例中,所述DPDK库包括:接收函数模块,用于直接从网卡接口读取完整链路层报文,存储在DPDK结构体变量rte_mbuf中,并调用读取函数模块读取二层、三层、四层报文信息;读取函数模块,用于处理由DPDK结构体变量rte_mbuf传入的接收数据,并分别将IP类型、二层、三层、四层头部指针传入相应的头指针结构体变量。在本公开一些实施例中,所述DPDK库还包括:处理函数模块,用于解析所述接收函数模块读取的报文信息,并对报文信息进行处理,获得需要发送的报文信息;发送函数模块,用于将通过所述处理函数模块获得的报文通过发送网卡接口发送出去。在本公开一些实施例中,所述的重定向系统还包括:WebPortal服务器,连接到控制网关,作为用户端重定向时访问的URL地址的服务器,当用户端未被授权登录且用户端与控制网关处于未连接状态,需要重定向时,提供网页供用户进行登录,并判断用户登录是否成功,同时将登录结果发送至控制网关。在本公开一些实施例中,控制网关中包括:自定义结构体变量gtable,存储已授权的用户端IP,以及自定义结构体变量conn_item,存储尚未授权用户IP连接信息。根据本公开的另一个方面,提供了一种基于DPDK的URL认证的重定向方法,所述方法包括如下步骤:步骤A,控制网关获取用户发送的TCP请求连接报文,调用DPDK库的接收函数直接从网卡获取二层数据,并用DPDK库的处理函数解析报文信息;步骤B,判断用户是否授权,若该用户尚未授权,则进行报文重定向,则转至步骤C;若用户已授权,则直接转发报文;步骤C,判断用户连接状态,若用户状态为未连接,则控制网关伪装成目的IP与用户IP进行三次握手,当握手成功后,该用户IP标记为已连接状态;若用户状态为已连接,转至步骤D;步骤D,握手成功后,当控制网关接收到用户端再次发送http请求报文后,判断该用户IP为已连接状态,将重定向的URL添加至回复报文中发送至用户端;步骤E,控制网关得到报文后转发,用户端访问WebPortal服务器,到指定的URL页面并登录,若登录成功,WebPortal服务器将登录结果返回至控制网关,此时控制网关标记该用户IP为已授权状态。在本公开一些实施例中,所述步骤B中,当控制网关分析接收报文的源IP时,首先在gtable中查找,判断是否该所接收的用户IP是否处于已授权状态。在本公开一些实施例中,执行所述步骤B过程中,在用户为已授权状态下,当用户超时未传输或者会话超时后,则清除gtable中的用户授权信息。在本公开一些实施例中,判断用户是否超时,由该重定向系统中的计时器计算,当用户上一次发消息的时间加上超时时间超过了现在的时间,表示用户会话已超时,用户的会话超时时间和可以由系统灵活设置。在本公开一些实施例中,在所述步骤C中进一步包括,当控制网关伪装成目的IP与用户端进行TCP三次握手时,TCP握手的状态信息存储在conn_item中,包括目的IP及源IP,完全建立成功后在conn_item中将该用户IP设置为已连接状态。在本公开一些实施例中,连接状态又分为:TCP_LISTEN,TCP_SYN_RECV,TCP_ESTABLISHED和TCP_CLOSED:当用户IP第一次发送报文,控制网关将该用IP置为TCP_LISTEN状态,并添加至conn_item中;伪装成目的IP组建成TCP握手回复报文发送至用户IP,此时将用户IP置为TCP_SYN_RECV;当用户IP发送TCP握手确认,控制网关将该用户IP状态置为TCP_ESTABLISHED,表示连接成功;当用户IP超时未发送数据或者发送断开请求,控制网关回复用户IP并置为TCP_CLOSED。在本公开一些实施例中,在所述步骤E中进一步包括:控制网关将重定向URL附在报文后发送至源IP,直至源IP合法登录后,控制网关将该源IP记录在gtable中,表示该源IP处于已授权状态,URL重定向地址也可以由系统指定;控制网关在用户访问重定向URL地址时作转发作用,用户端与WebPortal服务器首先进行TCP三次握手,握手成功后,用户获取到URL页面并进行登录,若用户成功登录则将该用户IP标记为已授权状态。在本公开一些实施例中,执行所述步骤A~D过程中,若用户端发送释放连接给上述的目的IP,则控制网关伪装成目的IP与该用户四次挥手断开TCP连接,挥手的状态保存在存储用户连接信息的conn_item中。在本公开一些实施例中,执行所述步骤A~D过程中,若用户端超时未发送消息给上述目的IP,则控制网关将该用户连接信息标记从conn_item中删除。(三)有益效果从上述技术方案可以看出,本公开基于DPDK的URL认证重定向的系统及方法至少具有以下有益效果其中之一:(1)通过引入DPDK来实现URL认证重定向,使得控制网关在收发报文和处理性能上明显提高,在收发报文时,控制网关通过调用DPDK的收发函数直接从网卡即硬件上获取二层报文或发送报文,绕过Linux内核直接和硬件进行交互,避免了内存的拷贝,节约了数据处理时间,提高了计算机性能;(2)控制网关通过监控接收报文的源IP本文档来自技高网...
基于DPDK的URL认证的重定向系统与方法

【技术保护点】
一种基于DPDK的URL认证的重定向系统,该系统在部署的DPDK环境下运行,包括:控制网关,该控制网管包括DPDK库,该控制网关用于基于DPDK库接收并解析及转发用户端发送的报文:当用户端已经被授权登录时,基于DPDK库转发报文,使用户直接连接外网;当用户端未被授权登录且用户端与控制网关处于已连接状态时,将重定向URL添加到回复报文并基于DPDK库转发至用户端。

【技术特征摘要】
1.一种基于DPDK的URL认证的重定向系统,该系统在部署的DPDK环境下运行,包括:控制网关,该控制网管包括DPDK库,该控制网关用于基于DPDK库接收并解析及转发用户端发送的报文:当用户端已经被授权登录时,基于DPDK库转发报文,使用户直接连接外网;当用户端未被授权登录且用户端与控制网关处于已连接状态时,将重定向URL添加到回复报文并基于DPDK库转发至用户端。2.根据权利要求1所述的重定向系统,其中,所述DPDK库包括:接收函数模块,用于直接从网卡接口读取完整链路层报文,存储在DPDK结构体变量rte_mbuf中,并调用读取函数模块读取二层、三层、四层报文信息;读取函数模块,用于处理由DPDK结构体变量rte_mbuf传入的接收数据,并分别将IP类型、二层、三层、四层头部指针传入相应的头指针结构体变量。3.根据权利要求2所述的重定向系统,其中,所述DPDK库还包括:处理函数模块,用于解析所述接收函数模块读取的报文信息,并对报文信息进行处理,获得需要发送的报文信息;发送函数模块,用于将通过所述处理函数模块获得的报文通过发送网卡接口发送出去。4.根据权利要求1所述的重定向系统,还包括:WebPortal服务器,连接到控制网关,作为用户端重定向时访问的URL地址的服务器,当用户端未被授权登录且用户端与控制网关处于未连接状态,需要重定向时,提供网页供用户进行登录,并判断用户登录是否成功,同时将登录结果发送至控制网关。5.根据权利要求1所述的重定向系统,其中,控制网关中包括:自定义结构体变量gtable,存储已授权的用户端IP,以及自定义结构体变量conn_item,存储尚未授权用户IP连接信息。6.一种基于DPDK的URL认证的重定向方法,采用如权利要求1所述的基于DPDK的URL认证重定向系统,其中,所述方法包括如下步骤:步骤A,控制网关获取用户发送的TCP请求连接报文,调用DPDK库的接收函数直接从网卡获取二层数据,并用DPDK库的处理函数解析报文信息;步骤B,判断用户是否授权,若该用户尚未授权,则进行报文重定向,则转至步骤C;若用户已授权,则直接转发报文;步骤C,判断用户连接状态,若用户状态为未连接,则控制网关伪装成目的IP与用户IP进行三次握手,当握手成功后,该用户IP标记为已连接状态;若用户状态为已连接,转至步骤D;步骤D,握手成功后,当控制网关接收到用户端再次发送http请求报文后,判断该用户IP为已连接状态,将重定向的URL添加至回复报文中发送至用户端;步骤E,控制网关得到报文后转发,用户端访问WebPortal服务器,到指定的URL页面并登录,若登录成功,WebPortal...

【专利技术属性】
技术研发人员:黄友俊李星吴建平韦翠娣
申请(专利权)人:赛尔网络有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1