实现白名单功能的方法及发送设备和接收设备 【技术领域】
本发明实施例涉及在线计费技术,尤其涉及一种实现白名单功能的方法及发送设备和接收设备。
背景技术
计费触发功能(Charging Trigger Function,CTF)实体是第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)定义的逻辑实体,在计费相关网元中承担检测、收集、记录计费信息并上报的功能。在线计费应用中,CTF实体可以根据在线计费系统(Online Charging System,OCS)下发的配额控制用户业务访问。RFC4006定义了OCS检测到用户剩余最后一份配额时,将通过最后单元指示(Final Unit Indication,FUI)信元向CTF实体下发白名单,指示CTF实体控制用户可以正常访问白名单内的服务器及阻塞访问其他服务器。FUI信元的格式如下:
Final-Unit-Indication::=<AVP Header:430>
{Final-Unit-Action}=2(RESTRICT_ACCESS)
或者,{Final-Unit-Action}=1(REDIRECT)
*[Restriction-Filter-Rule]
*[Filter-Id]
[Redirect-Server]
当Final-Unit-Action值为RESTRICT_ACCESS或REDIRECT时,表明OCS指示CTF实体使用白名单功能。白名单既可以通过FUI中的“Restriction-Filter-Rule”属性值对(Attribute Value Pair,AVP)动态下发,也可以通过Filter-Id来激活CTF实体本地配置的过滤规则(FilterRule)。无论是“Restriction-Filter-Rule”AVP还是本地配置的Filter Rule,其中的白名单只包含允许用户业务访问的服务器的层3/4信息,例如,源和目的IP地址、协议号、源和目的端口号、传输控制协议(Transport Control Protocol,TCP)标识等。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:由于服务器的IP地址是可以动态变化的,而运营商又无法获知某一服务器在下一刻的变化的IP地址,因此,运营商无法在IP地址动态变化时下发有效的白名单,导致白名单功能无法部署。
【发明内容】
本发明实施例是提供一种实现白名单功能的方法及发送设备和接收设备,可以使运营商下发有效的白名单,实现白名单功能的可部署。
一方面,本发明实施例提供了一种实现白名单功能的方法,包括:
接收在线计费系统OCS发送的最后单元指示FUI,根据所述FUI获取属于白名单的服务器的应用层信息;
对用户设备发送的业务报文进行深层报文解析DPI处理,得到所述业务报文的应用层信息;
当所述业务报文的应用层信息与所述属于白名单的服务器的应用层信息匹配时,允许所述用户设备访问所述业务报文的应用层信息对应的服务器。
另一方面,本发明实施例提供了一种实现白名单功能的方法,包括:
将第一信息添加在最后单元指示FUI中,所述第一信息用于使计费触发功能CTF实体获取属于白名单的服务器的应用层信息;
将所述FUI发送给CTF实体,以使得所述CTF实体根据所述FUI进行应用层信息匹配以实现白名单功能。
一方面,本发明实施例提供了一种接收设备,包括:
获取模块,用于接收在线计费系统OCS发送的最后单元指示FUI,根据所述FUI获取属于白名单的服务器的应用层信息;
处理模块,用于对用户设备发送的业务报文进行深层报文解析DPI处理,得到所述业务报文的应用层信息;
匹配模块,用于当所述业务报文的应用层信息与所述属于白名单的服务器的应用层信息匹配时,允许所述用户设备访问所述业务报文的应用层信息对应的服务器。
另一方面,本发明实施例提供了一种发送设备,包括:
添加模块,用于将第一信息添加在最后单元指示FUI中,所述第一信息用于使计费触发功能CTF实体获取属于白名单的服务器的应用层信息;
发送模块,用于将所述FUI发送给CTF实体,以使得所述CTF实体根据所述FUI进行应用层信息匹配以实现白名单功能。
由上述技术方案可知,本发明实施例通过获取属于白名单的服务器的应用层信息,可以避免动态变化的IP地址引起的无法部署有效的白名单的问题,实现白名单功能的可部署。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例的方法流程示意图;
图2为本发明第二实施例的方法流程示意图;
图3为本发明第三实施例地方法流程示意图;
图4为本发明第四实施例的方法流程示意图;
图5为本发明第五实施例的方法流程示意图;
图6为本发明第六实施例的方法流程示意图;
图7为本发明第七实施例的接收设备的结构示意图;
图8为本发明第八实施例的发送设备的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明第一实施例的方法流程示意图,包括:
步骤11:CTF实体接收OCS发送的FUI,根据该FUI获取属于白名单的服务器的应用层信息。
其中,本发明实施例中的应用层信息可以为应用层协议,例如,包括但不限于超文件传输协议(Hyper Text Transfer Protocol,HTTP)或者实时流传输协议(Real Time Streaming Protocol,RTSP),也可以为其他的应用层信息,例如,包括但不限于统一资源定位符(Uniform Resource Locator,URL)、user-agent字段或者method字段。
以URL为例,FUI中可以携带属于白名单的服务器的URL,此时,CTF实体可以直接在FUI中获取属于白名单的服务器的URL;或者,FUI中还可以携带激活信息,该激活信息用于激活CTF实体中预先配置的包含属于白名单的服务器的URL的过滤规则,此时,CTF实体可以从该过滤规则中获取属于白名单的服务器的URL。
由于服务器的URL是固定的,而不是如IP地址一样动态变化的,因此,根据URL可以得到有效的白名单。
步骤12:CTF实体对用户设备发送的业务报文进行深层报文解析(DeepPacket Inspection,DPI)处理,得到该业务报文的应用层信息。
其中,DPI是一种深层解析协议,可以获取报文的应用层信息。由于通常的报文解析只能得到报文的五元组:源和目的IP地址、源和目的端口号及协议号,为了得到高层信息,需要进行DPI。
步骤13:当该业务报文的应用层信息与获取的属于白名单的服务器的应用层信息匹配时,CTF实体允许该用户设备访问该业务报文的应用层信息对应的服务器。
即,当业务报文的应用层信息属于根据FUI获取的应用层信息时,允许用户访问属于白名单中的服务器,实现白名单功能。
本实施例通过获取属于白名单的服务器的应用层信息,通过匹配报文的应用层信息和白名单中的服务器的应用层信息,可以实现白名单功能的有效部署。
第一实施例是从CTF实体侧进行的描述,对应的,从OCS侧描述如下:
图2为本发明第二实施例的方法流程示意图,包括:
步骤21:OCS将第一信息添加在FUI中,该第一信息用于使CTF实体获取属于白名单的服务器的应用层信息。
其中,第一信息可以为包含属于白名单的服务器的应用层的信息;或者,第一信息也可以为激活信息,该激活信息用于激活CTF实体中预先配置的包含属于白名单的服务器的应用层的过滤规则。
步骤22:OCS将该FUI发送给CTF实体,以使得该CTF实体根据该FUI进行应用层信息匹配以实现白名单功能。CTF实体可以根据FUI中的第一信息获取属于白名单的服务器的应用层信息,进而,通过DPI用户发送的业务报文,对业务报文的应用层信息与得到的应用层信息进行匹配,实现白名单功能。
本实施例通过将使CTF实体获取属于白名单的服务器的应用层的信息携带在FUI中,可以使CTF实体根据应用层信息进行相应匹配,实现白名单功能的有效部署。
在实施时,FUI中可以直接携带属于白名单的服务器的应用层信息;也可以在FUI中携带激活信息,在CTF实体中预先配置属于白名单的服务器的应用层信息,使得CTF实体在接收到激活信息后,获取预先配置的属于白名单的服务器的应用层信息。而不论是直接携带还是激活预设的规则,都可以通过新增或者扩展的方式。下面分别描述:
图3为本发明第三实施例的方法流程示意图,本实施例以在FUI中携带属于白名单的服务器的应用层信息,且该应用层信息是通过扩展现有的AVP,如“Restriction-Filter-Rule”,来携带为例。参见图3,本实施例包括:
步骤31:OCS将属于白名单的服务器的应用层信息携带在FUI中扩展的AVP中,例如,携带在扩展的Restriction-Filter-Rule中。之后,OCS将上述的AVP“Restriction-Filter-Rule”携带在FUI中。进一步地,还可以将表明CTF实体使用白名单功能的AVP“Final-Unit-Action”携带在FUI中。
具体地,FUI的格式如下:
Final-Unit-Indication::=<AVP Header:430>
{Final-Unit-Action}=2(RESTRICT_ACCESS)
或者,{Final-Unit-Action}=1(REDIRECT)
*[Restriction-Filter-Rule]
[Redirect-Server]
其中,Restriction-Filter-Rule中包含属于白名单的服务器的应用层信息,以应用层信息为URL为例,例如,Restriction-Filter-Rule中包含URL-1和URL-2。
步骤32:OCS将上述的FUI下发给CTF实体。
步骤33:CTF实体从该FUI的扩展的AVP,例如,Restriction-Filter-Rule中获取属于白名单的服务器的应用层信息。例如,得到URL-1和URL-2。
其中,CTF实体可以是首先根据FUI中的Final-Unit-Action得知需要使用白名单功能,之后再进行从该FUI的Restriction-Filter-Rule中获取属于白名单的服务器的URL的步骤。
步骤34:CTF实体接收用户设备发送的业务报文,并对接收的业务报文进行DPI,得到业务报文的应用层信息。
步骤35:CTF实体判断接收的业务报文的应用层信息与从FUI中获取的应用层信息是否匹配,若是,执行步骤36,否则,执行步骤37。
例如,当一业务报文的应用层信息为URL-1时,则得到判断结果为匹配。当一业务报文的应用层信息为URL-2时,也得到判断结果为匹配;而当一业务报文的应用层信息既不为URL-1,也不为UR1-2时,则得到判断结果为不匹配。
步骤36:CTF实体允许该业务报文对服务器的访问。
步骤37:CTF实体阻止该业务报文对服务器的访问。其中,当Final-Unit-Action的值为REDIRECT时,还需要进一步进行重定向。
本实施例中,属于白名单的服务器的应用层信息是通过扩展现有的AVP“Restriction-Filter-Rule”携带在FUI中的。本实施例通过在FUI中携带属于白名单的服务器的应用层信息,可以下发有效的白名单,实现白名单的可部署。
图4为本发明第四实施例的方法流程示意图,本实施例以在FUI中携带属于白名单的服务器的应用层信息,且该应用层信息是通过新增AVP来携带为例。参见图4,本实施例包括
步骤41:OCS将属于白名单的服务器的URL携带在FUI中的新增的AVP中。同时,OCS也可以将表明CTF实体使用白名单功能的AVP“Final-Unit-Action”携带在FUI中。
具体地,FUI的格式如下:
Final-Unit-Indication::=<AVP Header:430>
{Final-Unit-Action}=2(RESTRICT_ACCESS)
或者,{Final-Unit-Action}=1(REDIRECT)
*[Restriction-Filter-Rule]
*[Application-Information]
[Redirect-Server]
其中,Application-Information中包含属于白名单的服务器的应用层信息,其中,应用层信息可以为应用层协议,例如,包括但不限于HTTP或者RTSP,也可以为其他的应用层信息,例如,包括但不限于URL、user-agent字段或者method字段。以应用层信息为URL为例,例如,Application-Information中包含URL-1和URL-2。
步骤42:OCS将上述的FUI下发给CTF实体。
步骤43:CTF实体从该FUI中的新增的AVP,例如“Application-Information”,中获取属于白名单的服务器的应用层信息。例如,得到URL-1和URL-2。
其中,CTF实体可以是首先根据FUI中的Final-Unit-Action得知需要使用白名单功能,之后再进行从该FUI中获取属于白名单的服务器的应用层信息的步骤。
步骤44:CTF实体接收用户设备发送的业务报文,并对接收的业务报文进行DPI,得到业务报文的应用层信息。
步骤45:CTF实体判断接收的业务报文的应用层信息与从FUI获取的应用层信息是否匹配,若是,执行步骤46,否则,执行步骤47。
例如,当一业务报文的应用层信息为URL-1时,则得到判断结果为匹配。当一业务报文的应用层信息为URL-2时,也得到判断结果为匹配;而当一业务报文的应用层信息既不为URL-1,也不为UR1-2时,则得到判断结果为不匹配。
步骤46:CTF实体允许该业务报文对服务器的访问。
步骤47:CTF实体阻止该业务报文对服务器的访问。其中,当Final-Unit-Action的值为REDIRECT时,还需要进一步进行重定向。
本实施例中,属于白名单的服务器的应用层信息是通过新增的AVP“Application-Information”携带在FUI中的。本实施例通过在FUI中携带属于白名单的服务器的应用层信息,可以下发有效的白名单,实现白名单的可部署。
图5为本发明第五实施例的方法流程示意图,本实施例以在FUI中携带的激活信息为对现有AVP扩展后的AVP为例。此时,该激活信息激活的过滤规则为对现有过滤规则的扩展。参见图5,本实施例包括:
步骤51:OCS将激活信息携带在FUI中。同时,OCS也可以将表明CTF实体使用白名单功能的AVP“Final-Unit-Action”携带在FUI中。
具体地,FUI的格式如下:
Final-Unit-Indication::=<AVP Header:430>
{Final-Unit-Action}=2(RESTRICT_ACCESS)
或者,{Final-Unit-Action}=1(REDIRECT)
*[Filter-Id]
[Redirect-Server]
其中,Filter-Id为激活信息。
步骤52:OCS将上述的FUI下发给CTF实体。
步骤53:CTF实体根据该FUI中携带的激活信息,获取预先配置的扩展的过滤规则,该过滤规则中包含属于白名单的服务器的应用层信息。例如,过滤规则中包含URL-1和URL-2。
其中,CTF实体可以是首先根据FUI中的Final-Unit-Action得知需要使用白名单功能,之后再进行上述的根据激活信息获取过滤规则的步骤。
步骤54:CTF实体从该扩展的过滤规则中得到属于白名单的服务器的应用层信息,例如,得到URL-1和URL-2。
步骤55-58:与步骤34-37对应相同。
本实施例中,是通过扩展现有的过滤规则,使得预设的过滤规则中包含属于白名单的服务器的应用层信息。因此,当采用AVP“Filter-Id”激活上述的过滤规则后,可以从该过滤规则中得到属于白名单的服务器的应用层信息。本实施例通过在FUI中携带用于触发CTF实体获取预先配置的属于白名单的服务器的应用层信息的激活信息,可以下发有效的白名单,实现白名单的可部署。
图6为本发明第六实施例的方法流程示意图,本实施例以在FUI中携带的激活信息为新增的AVP为例。此时,该激活信息激活的过滤规则为新增的过滤规则。参见图6,本实施例包括:
步骤61:OCS将新增的激活信息携带在FUI中。同时,OCS也可以将表明CTF实体使用白名单功能的AVP“Final-Unit-Action”携带在FUI中。
具体地,FUI的格式如下:
Final-Unit-Indication::=<AVP Header:430>
{Final-Unit-Action}=2(RESTRICT_ACCESS)
或者,{Final-Unit-Action}=1(REDIRECT)
*[Filter-Id]
*[Rule-Id]
[Redirect-Server]
其中,Rule-Id为新增的激活信息。
步骤62:OCS将上述的FUI下发给CTF实体。
步骤63:CTF实体根据该FUI中携带的新增的激活信息,获取预先配置的过滤规则,该过滤规则中包含属于白名单的服务器的应用层信息。例如,过滤规则中包含URL-1和URL-2。
其中,CTF实体可以是首先根据FUI中的Final-Unit-Action得知需要使用白名单功能,之后再进行上述的根据激活信息获取过滤规则的步骤。
步骤64:CTF实体从该过滤规则中得到属于白名单的服务器的应用层信息,例如,得到URL-1和URL-2。
步骤65-68:与步骤34-37对应相同。
本实施例中,是通过新增的AVP“Rule-Id”激活包含属于白名单的服务器的应用层信息的过滤规则,得到属于白名单的服务器的应用层信息。本实施例通过在FUI中携带用于触发CTF实体获取预先配置的属于白名单的服务器的应用层信息的激活信息,可以下发有效的白名单,实现白名单的可部署。
上述图3-6分别示出了扩展AVP、新增AVP、扩展过滤规则和新增过滤规则这四种实现方式,可以理解的是,在实际应用中,也可以将上述实现方式之间进行组合或者与现有实现方式进行组合,只要满足条件之一即可访问属于白名单的服务器。例如,在FUI中既携带扩展的Restriction-Filter-Rule,又携带扩展的Filter-Id,当某一业务报文中的应用层信息与扩展的Restriction-Filter-Rule中的应用层信息相同,或者,与扩展的Filter-Id激活的过滤规则中的应用层信息相同时,则该业务报文可以访问对应的服务器。又例如,在FUI中既携带新增的Application-Information,又携带现有的Restriction-Filter-Rule,当某一业务报文中的应用层信息与扩展的Application-Information中的应用层信息相同,或者,该业务报文中的IP地址与现有的Restriction-Filter-Rule中的IP地址相同时,则该业务报文可以访问对应的服务器。
图7为本发明第七实施例的接收设备的结构示意图,包括获取模块71、处理模块72和匹配模块73;获取模块71用于接收OCS发送的FUI,根据该FUI获取属于白名单的服务器的应用层信息;处理模块72用于对用户设备发送的业务报文进行DPI处理,得到该业务报文的应用层信息;匹配模块73用于当该业务报文的应用层信息与该属于白名单的服务器的应用层信息匹配时,允许该用户设备访问该业务报文的应用层信息对应的服务器。
其中,获取模块71可以包括第一单元711或者第二单元712;该第一单元711用于从该FUI中直接获取属于白名单的服务器的应用层信息;该第二单元712用于接收到该FUI中携带的用于激活预先配置的过滤规则的激活信息后,从该预先配置的过滤规则中获取属于白名单的服务器的应用层信息。
其中,该预先设置的过滤规则为对现有过滤规则扩展后的过滤规则,或者为新增的过滤规则。
其中,应用层信息可以为应用层协议,例如,包括但不限于HTTP或者RTSP,也可以为其他的应用层信息,例如,包括但不限于URL、user-agent字段或者method字段。
上述模块的具体功能可以参见方法实施例,不再赘述。
本实施例通过获取属于白名单的服务器的应用层信息,通过匹配报文的应用层信息和白名单中的服务器的应用层信息,可以实现白名单功能的有效部署。
图8为本发明第八实施例的发送设备的结构示意图,包括添加模块81和发送模块82;添加模块81用于将第一信息添加在FUI中,该第一信息用于使CTF实体获取属于白名单的服务器的应用层信息;发送模块82用于将该FUI发送给CTF实体,以使得该CTF实体根据该FUI进行应用层信息匹配以实现白名单功能。
其中,该添加模块81包括第三单元811或者第四单元812;该第三单元811用于将包含属于白名单的服务器的应用层信息的AVP添加在FUI中;该第四单元812用于将激活信息添加在FUI中,该激活信息用于使CTF实体获取预先配置的过滤规则,该过滤规则中包含属于白名单的服务器的应用层信息。
其中,该包含属于白名单的服务器的应用层信息的AVP为对现有AVP扩展后的AVP,或者为新增的AVP。或者,该激活信息为对现有AVP扩展后的AVP,或者为新增的AVP。
其中,应用层信息可以为应用层协议,例如,包括但不限于HTTP或者RTSP,也可以为其他的应用层信息,例如,包括但不限于URL、user-agent字段或者method字段。
上述模块的具体功能可以参见方法实施例,不再赘述。
本实施例通过将使CTF实体获取属于白名单的服务器的应用层的信息携带在FUI中,可以使CTF实体根据应用层信息进行相应匹配,实现白名单功能的有效部署。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。