首页> 中国专利> 经由AAA协议批量传送授权变化数据

经由AAA协议批量传送授权变化数据

摘要

总体上描述了经由AAA协议批量传送授权变化数据技术,其中,在订户已经成功认证并初始授权之后,因为授权的变化而执行传送。在一个示例中,这些技术涉及一种方法,包括由服务提供商网络的RADIUS服务器确定服务提供商网络的订户已经订阅的服务的授权变化数据。所述方法还包括由RADIUS服务器生成在RADIUS服务器和充当RADIUS客户端的网络接入服务器之间形成事务的RADIUS消息。所述RADIUS消息在网络接入服务器提供服务之前向网络接入服务器提供所有授权变化数据。所述方法还包括由RADIUS服务器将RADIUS消息输出到网络接入服务器。

著录项

  • 公开/公告号CN112866405A

    专利类型发明专利

  • 公开/公告日2021-05-28

    原文格式PDF

  • 申请/专利权人 瞻博网络公司;

    申请/专利号CN202110156366.8

  • 申请日2017-12-29

  • 分类号H04L29/08(20060101);H04W12/08(20210101);H04L29/06(20060101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人王红艳

  • 地址 美国加利福尼亚

  • 入库时间 2023-06-19 11:06:50

说明书

本申请是申请号为201711488631.2、申请日为2017年12月29日发明名称为“经由AAA协议批量传送授权变化数据”的中国专利申请的分案申请。

优先权要求

本申请要求于2017年3月30日提交的美国专利申请No.15/474,285的权益,其全部内容通过引用结合于此。

技术领域

本发明涉及计算机网络,更具体地,涉及计算机网络内的订户认证、授权和计费(AAA)。

背景技术

网络服务提供商通常部署一个或多个服务器,来管理向一个或多个订户提供服务的网络的认证、授权和计费(AAA)功能。服务器通常用于与客户端通信的协议是远程认证拨号用户服务(RADIUS)协议。在2000年6月在Network Working Group of the InternetEngineering Task Force(IETF),Request for Comments 2865的Carl Rigney等人的“Remote Authentication Dial In User Server(RADIUS)”中,描述了RADIUS协议,其全部内容通过引用结合于此(在下文中称为“RFC 2865”)。通常用于启动授权变化(CoA)的RADIUS协议的扩展是RADIUS的动态授权扩展。在2008年1月在Network Working Group ofthe Internet Engineering Task Force(IETF),Request for Comments 5176的MurtazaChiba等人的“Dynamic Authorization Extensions to Remote Authentication Dial InUser Server(RADIUS)”中,描述了RADIUS的动态授权扩展,其全部内容通过引用结合于此(在下文中称为“RFC 5176”)。

在已经初始认证和授权的订户的CoA期间,服务器可以使用RADIUS协议来提供一个或多个服务。为了提供服务,服务器可以提供服务配置数据(也可以称为“授权变化数据”、“CoA数据”或简称为“授权数据”)。位于订户和服务器之间的路由器可以使用服务配置数据来提供服务,从而允许订户利用该服务来接入服务提供商网络。

在一些情况下,订户可能订阅了大量服务,这导致服务器必须传送超出RADIUS协议设置的限制的服务配置数据,例如,最大分组尺寸为4096字节。为了发送所有的服务配置数据,服务器可以将服务配置数据分成多个部分,经由不同的RADIUS消息发送每个部分。为了接收具有服务配置数据的下一部分的下一个RADIUS消息,路由器可以单独处理服务配置数据的每个部分,并且确认成功提供了由经由当前RADIUS消息发送的服务配置数据的部分所指定的服务。

路由器因此可以在提供由服务配置数据(针对当前RADIUS消息中的CoA)的该部分指定的服务的某个子集与接收下一个RADIUS消息之间进行迭代,直到已经接收并应用了所有的服务配置数据。这种迭代可能是低效的,因为路由器可能在比较复杂的提供过程和等待接收下一个RADIUS消息之间转换。

发明内容

总体上描述了经由AAA协议(例如,远程认证拨号用户服务(RADIUS)协议)批量传送授权变化(CoA)数据的技术。而不是要求路由器在接收到CoA数据的下一部分之前单独处理CoA数据的每个部分,服务器可以发送具有部分CoA数据的多个RADIUS消息。服务器可以经由多个RADIUS消息中的最后一个RADIUS消息来指示已经发送了所有CoA数据。响应于该指示,路由器然后可以基于所有CoA数据执行提供过程,由此允许路由器执行一次提供过程,而不是在提供对服务器的响应的确认与等待下一个RADIUS消息之间进行迭代。

在一个示例中,这些技术涉及一种方法,包括:由服务提供商网络的RADIUS服务器确定服务提供商网络的订户已经订阅的多个服务的CoA数据。所述方法还包括由RADIUS服务器生成在RADIUS服务器和充当RADIUS客户端的网络接入服务器之间形成事务的多个RADIUS消息。所述多个RADIUS消息在网络接入服务器提供所述多个服务之前向网络接入服务器提供所有CoA数据。所述网络接入服务器位于由所述订户部署的用于接入所述多个服务的订户接入装置与所述RADIUS服务器之间的中间。所述方法还包括由所述RADIUS服务器将所述多个RADIUS消息输出到所述网络接入服务器。

在另一示例中,这些技术涉及一种为服务提供商网络提供认证、授权和计费服务的服务器。所述服务器包括:一个或多个处理器,其耦接到存储器;以及RADIUS模块。所述RADIUS模块被配置为:确定服务提供商网络的订户订阅的多个服务的CoA数据;并且生成在RADIUS服务器和充当RADIUS客户端的网络接入服务器之间形成事务的多个RADIUS消息。所述多个RADIUS消息在网络接入服务器提供所述多个服务之前向网络接入服务器提供所有CoA数据。所述网络接入服务器位于由所述订户部署的用于接入所述多个服务的订户接入装置与所述RADIUS服务器之间的中间。所述RADIUS模块还被配置为将所述多个RADIUS消息输出到所述网络接入服务器。

在另一示例中,这些技术涉及一种方法,包括:由与服务提供商网络的订户相关联并充当RADIUS客户端的网络接入服务器从服务提供商网络的RADIUS服务器接收在RADIUS服务器和网络接入服务器之间形成事务的多个RADIUS消息,以提供用于在网络接入服务器处提供所述多个服务的CoA数据。所述网络接入服务器位于由所述订户部署的用于接入所述多个服务的订户接入装置与所述RADIUS服务器之间的中间。响应于确定已经接收到用于在所述网络接入服务器处提供所述多个服务的所有CoA数据,所述方法还包括由所述网络接入服务器提供所述多个服务。

在另一示例中,这些技术涉及一种为服务提供商网络提供认证、授权和计费服务的服务器。所述服务器包括:一个或多个处理器,其耦接到存储器;以及RADIUS模块,其与服务提供商网络的订户相关联并且充当RADIUS客户端。所述RADIUS模块被配置为从服务提供商网络的RADIUS服务器接收在RADIUS服务器和服务器之间形成事务的多个RADIUS消息,以提供用于在服务器处提供所述多个服务的CoA数据。所述服务器位于由所述订户部署的用于接入所述多个服务的订户接入装置与所述RADIUS服务器之间的中间。响应于确定已经接收到用于在所述网络接入服务器处提供所述多个服务的所有CoA数据,所述RADIUS模块被配置为提供所述多个服务。

在附图和下面的描述中阐述了这些技术的一个或多个方面的细节。这些技术的其他特征、目的和优点将从说明书和附图以及权利要求中显而易见。

附图说明

图1是示出根据本公开中描述的技术的各个方面的具有支持授权变化数据的批量传送的远程访问拨号用户服务(RADIUS)服务器的网络系统的框图;

图2详细示出了根据本公开中描述的技术的各个方面的支持授权变化数据的批量传送的示例RADIUS服务器;

图3详细示出了根据本公开中描述的技术的各个方面的充当支持授权变化数据的批量传送的RADIUS客户端的示例网络接入服务器;

图4是示出根据本公开中描述的技术的各个方面的支持授权变化数据的批量传送的RADIUS服务器的示例操作模式的流程图;

图5是示出根据本公开中描述的技术的各个方面的充当支持授权变化数据的批量传送的RADIUS客户端的网络接入服务器的示例操作模式的流程图;

图6是示出根据本公开中描述的授权数据的批量传送的技术的各个方面形成的示例授权变化(CoA)请求的框图。

具体实施方式

图1是示出根据本公开中描述的技术的各个方面的具有支持授权变化(CoA)数据20的批量传送的远程用户服务拨号接入(RADIUS)服务器的网络系统的框图。在这个示例中,网络系统2包括经由宽带网络网关10(“BNG 10”)耦接到接入网4的服务提供商(SP)网络12。虽然图1示出了被配置为与RADIUS服务器一起操作的BNG 10,但是应当理解,BNG10可以是任何类型的网络接入服务器。

SP网络12支持可用于由订户装置6A-6N(统称为“订户装置6”)请求并使用的一个或多个基于分组的服务。作为示例,SP网络12可以提供互联网接入、批量数据传送、网络语音协议(VoIP)、互联网协议电视(IPTV)、短消息服务(SMS)、无线应用协议(WAP)服务、远程登录或客户专用服务。SP网络12可以包括例如局域网(LAN)、广域网(WAN)、互联网、虚拟LAN(VLAN)、企业LAN、层3虚拟专用网(VPN)、由同样操作接入网4的网络服务提供商操作的互联网协议(IP)内联网、企业IP网络或其某个组合。在各种示例中,SP网络12可以连接到公共WAN、互联网或其他网络。SP网络12执行诸如IP(IPv4和/或IPv6)、X.25或点对点协议(PPP)等一个或多个分组数据协议(PDP),以启用SP网络12服务的基于分组的传输。

SP网络12(网络服务提供商)的管理员可以部署BNG 10,以用作SP网络12所提供的服务的网关。因此,BNG 10是在提供对SP网络12的接入的装置内的装置或部件(例如,电路板或服务卡)。例如,BNG 10可以表示和/或包含向企业LAN提供拨号或虚拟专用网络(VPN)服务的网络接入服务器、将来自一个或多个接入节点(例如,数字用户线路接入复用器(DSLAM)、DSL接入、光纤到户(FTTH)无源光网络(PON)、接入等)的输出聚合到SP网络12的更高速上行链路的远程接入服务器(或者宽带远程接入服务器)或者宽带服务路由器、向SP网络12提供无线物理层接入的无线接入点(WAP),或使用其他基于LAN(例如,以太网)的技术来向SP网络12提供有线物理层接入的交换机。BNG 10可以包括实现用于用户管理的分散控制平面的一个或多个服务卡。

订户装置6经由接入网4连接到BNG 10,以接收至SP网络12服务(用于由订户装置6托管的应用程序)的连接。每个订户装置6可以表示例如工作站、台式计算机、膝上型计算机、蜂窝或其他移动装置、个人数字助理(PDA)、游戏机、电视机顶盒、智能电话、平板电脑或能够经由无线和/或有线连接接入计算机网络的任何其他装置。每个订户装置6可以与订户(例如,人)相关联。可替代地,接入由SP网络12提供的服务的应用程序可以称为“用户代理”。在这个示例中,任何订户装置6可以连接到BNG 10,以接入SP网络12。NBN 10向诸如RADIUS服务器14等上游装置呈现不同的控制平面IP地址。

网络服务提供商(或管理SP网络12的其他实体)运行或者在一些情况下租用接入网4的元件,以在订户装置6和BNG 10之间提供分组传输。接入网4可以包括宽带接入网、蜂窝接入网、无线LAN、公共交换电话网络(PSTN)或其他类型的接入网。在包括蜂窝接入网(作为接入网4)的网络系统2的示例中,BNG 10可以表示移动网关,例如,网关通用分组无线服务(GPRS)服务节点(GGSN)、接入网关(aGW)或分组网关(P-GW)。接入网4可以包括将接入网(例如,DSLAM)的元件划分为逻辑上不同的网络的多个服务虚拟LAN(SVLAN)。因此,不同的订户装置6可以使用不同的SVLAN连接到BNG 10。

接入网4的元件可以支持诸如互联网协议(IP)、帧中继、异步传输模式(ATM)、以太网、点对点协议(PPP)、以太网点对点协议(PPPoE)、GPRS隧道协议(GTP)和虚拟局域网(VLAN)相关协议等各种协议中的任何一个或多个,以及其他。使用这些协议中的任何一个或多个,订户装置6中的任何一个可以向BNG 10呈现认证证书,以请求接入SP网络12服务。例如,订户装置6A可以向BNG 10广播诸如用户名和密码等证书,以请求接入由SP网络12提供的服务。订户装置6可以使用例如PPP密码认证协议(PAP)认证请求分组向BNG 10广播证书。

BNG 10由网络服务提供商(或其他管理实体)配置为RADIUS客户端,以引导BNG 10将认证、授权和计费(AAA)功能外包给指定的RADIUS服务器14,RADIUS服务器14是接收和处理由BNG 10发送的连接请求或计费消息或者在订户连接之后发起对订户授权的变化的装置。认证是验证订户身份的过程。授权是确定经过认证的订户是否接入SP网络12及其形成的过程。计费是例如为订户进行计费和监控而生成会话统计和持续时间的记录的过程。

当BNG 10接收在接入SP网络12服务的请求中的来自订户的认证数据时,BNG 10向RADIUS服务器14发送包含属性18的RADIUS协议接入请求,属性18为例如,订户用户名和密码、BNG 10(例如,“BNG-ID”)的标识符、BNG 10网络地址以及订户正在接入的端口ID。如果RADIUS服务器14包括订户的配置记录并且认证证书是正确的,则RADIUS服务器14向BNG 10返回RADIUS协议接入接受消息。如果未找到匹配或者发现认证证书有问题,则服务器返回接入拒绝消息。BNG 10然后建立或终止用户的连接。然后,BNG 10可以将计费信息转发给RADIUS服务器14,以用文件证明事务(document the transaction)。RADIUS服务器14可以存储或转发该信息,以支持所提供的服务的计费。

在一些示例中,RADIUS服务器14可以将某个AAA功能外包给一个或多个后端服务器,例如,认证服务器22、外部数据库24和远程RADIUS服务器26。在图1中用虚线示出这些后端服务器,以在各种示例中,指示RADIUS服务器14可以或不可以使用由后端服务器提供的AAA服务。认证服务器22是诸如RSA SecurID系统、结构化查询语言或轻量目录访问协议(LDAP)数据库服务器或者归属位置寄存器等后端认证服务器,其以列表存储订户账户(subscriber accounts)和订户账户属性,该列表可以被RADIUS服务器14检查,以验证认证证书,并由RADIUS服务器14查询,以获得包含订户的授权和连接参数信息的订户账户属性。在一些情况下,认证服务器22代表RADIUS服务器14验证认证证书。外部数据库24是RADIUS服务器14可用于存储计费信息的后端数据库。在某些情况下,RADIUS服务器14是远程RADIUS服务器26的代理服务器。

RADIUS服务器14针对由BNG 10建立的相应订户会话在会话记录中存储(例如,在内部或者使用外部数据库24)会话信息。会话记录包括在RADIUS请求消息(诸如RADIUS计费请求和/或接入请求消息)中的从BNG 10接收的信息。例如,由BNG 10建立的会话的会话记录可以包括订户用户名、唯一地识别到RADIUS服务器14的BNG 10的BNG标识符值、BNG 10网络地址(例如,IPv4或IPv6地址)、唯一地识别BNG 10上的会话的计费会话标识符(例如,在RFC 2866中描述的“Acct-Session-Id”)和计费信息(例如,用于会话的输入或输出八位字节/分组、定时信息)。

RADIUS服务器14可以使用RADIUS消息16来发起BNG 10处的服务变化。即,不是BNG10从RADIUS服务器14请求服务配置数据,RADIUS服务器14可以将服务配置数据“推送”到BNG 10,而不需要来自BNG 10的请求。包含在RADIUS消息16请求中的每个CoA可以是原子的(atomic)。例如,RADIUS消息16可以包括不依赖于先前或将来的CoA请求的CoA请求。如图所示,RADIUS消息16的每个RADIUS消息可以包括一个或多个属性18。一个或多个属性18的示例可以包括但不限于半径标准属性、供应商特定属性(VSA)以及其他属性。

在已初始认证和授权的订户的CoA期间,RADIUS服务器14可以使用RADIUS协议来提供一个或多个服务。在一些示例中,订户可以具有数百或数千个服务。在这个示例中,每个服务可以使用100-200个字节。因此,订户的授权或订户的CoA请求可能超过40k字节。然而,在一些实施例中,RADIUS消息(例如,RADIUS分组)可以包含最多4096个字节,这小于订户的CoA的40k字节。

根据本公开中描述的技术,RADIUS服务器14可以确定SP网络12的订户已订阅的多个服务的CoA数据20。例如,在已初始认证和授权的订户的CoA期间,RADIUS服务器14可以为SP网络12的订户确定更新的一组服务。RADIUS服务器14可以生成在RADIUS服务器14和充当RADIUS客户端的网络接入服务器之间形成事务(transaction)的多个RADIUS消息。例如,RADIUS服务器14可以生成在RADIUS服务器14和BNG 10之间形成事务的RADIUS消息16。RADIUS服务器14可以将多个RADIUS消息输出到网络接入服务器。例如,RADIUS服务器14可以将RADIUS消息16输出到BNG 10(其可以表示网络接入服务器的一个示例)。

BNG 10可以位于由订户部署的用于接入多个服务的订户接入装置和RADIUS服务器14之间的中间位置。例如,如图1所示,BNG 10可以位于由订户部署的用于接入由SP网络12提供的多个服务的订户装置6A和RADIUS服务器14之间的中间位置。

RADIUS服务器14可以生成RADIUS消息16,以在BNG 10提供多个服务中的任何服务之前向网络接入服务器提供CoA的全部CoA数据20。例如,并非使用RADIUS消息16的单个RADIUS消息提供一些CoA数据20以允许BNG 10提供一些CoA数据20所对应的多个服务中的一些服务,RADIUS服务器14可以向BNG 10输出到BNG 10的RADIUS消息16的所有RADIUS消息。在这个示例中,当BNG 10确定BNG 10已经通过RADIUS消息16接收到所有CoA数据20时,BNG 10仅针对CoA提供多个服务。

即,RADIUS服务器14通过输出具有属性18的RADIUS消息16来启动事务,所述属性18指示由公共事务标识符属性标识的具有多个CoA请求的批量事务。RADIUS服务器14使用属性18来指示批量事务的结束。指示批量事务的属性18可以包括但不限于预定义的事务结束值(例如,4294967295或0xFFFFFFFF十六进制)、指示符(例如,标志)或等同技术或等同技术的组合。例如,RADIUS服务器14可以通过将RADIUS消息16的特定RADIUS消息中的属性18设置为预定义的事务结束值(例如,4294967295或0xFFFFFFFF十六进制)来使用属性18指示批量事务的结束。以这种方式,BNG 10可以通过解析RADIUS消息16来确定CoA数据20的批量事务的开始,以确定指示事务是包括多个CoA请求的批量事务的属性18。BNG 10可以通过解析RADIUS消息16来确定批量事务的结束,以确定具有属性18的RADIUS消息,所述属性18指示预定义的最后一个CoA请求或对应于批量事务的结束的事务结束值(例如,明确地表示事务结束的0xFFFFFFFF或等同值或指示符(标志))。

图2详细示出了根据本公开中描述的技术的各个方面的支持CoA数据20的批量传送的示例RADIUS服务器14。RADIUS服务器14包括控制单元30和网络接口32。在图1的网络系统2的上下文中,描述了RADIUS服务器14的操作。

RADIUS服务器14的控制单元30提供用于执行模块的操作环境,在所示示例中,这些模块包括网络接口34、验证模块35、授权模块44、计费模块46和管理接口48。控制单元30可以包括一个或多个处理器(未示出),包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效集成或离散逻辑电路以及这些部件的任何组合,以执行实现在本文描述的功能的模块。在这个示例中,控制单元30还包括计算机可读存储介质,以存储配置数据36、用户简档数据库40(被示为“用户简档DB40”)以及计费数据库42(被示为“计费DB 42”)数据结构,其可以包括例如平面文件、数据库、表格、树和/或列表。

管理员50表示网络服务提供商实体(例如,人或软件代理),该实体调用管理接口48,以使用配置数据36的配置数据和用户简档数据库40的用户简档配置RADIUS服务器14。管理接口48可以呈现诸如基于网络的或其他图形用户接口(GUI)或命令行接口(CLI)等前端接口,以允许管理员50输入配置数据。管理接口48可以呈现LDAP配置接口,用于从用户简档数据库40配置和检索用户简档。管理接口48还可以执行简单网络管理协议,以使管理员50能够进行监视和配置。

管理员50调用管理接口48,以将RADIUS客户端信息添加到RADIUS服务器14的每个客户端(例如,图1的BNG 10中的每一个)的配置数据36。任何BNG 10的RADIUS客户端信息可以包括BNG网络地址和用于验证RADIUS服务器14与BNG 10之间的通信的RADIUS共享密钥。

用户简档数据库40存储订户的用户简档。用户简档可以包括对应的订户用户名和密码和/或其他认证证书以及用户的授权和/或连接参数。在一些示例中,用户简档数据库40是RADIUS服务器14向其发出认证和授权请求以接收认证指示(例如,接受或拒绝)以及授权和/或连接参数的远程数据库。

计费数据库42存储作为RADIUS计费服务器操作的RADIUS服务器14的订户计费信息。计费数据库42可以包括SQL数据库。在一些示例中,计费数据库42是RADIUS服务器14向其发出查询以添加或修改订户计费信息的远程数据库。

网络接口卡32通过网络链路与连接到网络接口卡32的BNG 10交换携带有RADIUS协议消息的网络分组。网络接口卡32与控制单元30的网络接口34交换网络分组。用户数据报协议(UDP)数据报携带RADIUS协议消息。网络接口34实现网络堆栈,以接收发送到分配给RADIUS的端口的UDP消息,并且以RADIUS协议请求分组的形式,向授权模块44和计费模块46提供应用数据,用于在通过验证模块35验证RADIUS协议消息之后进行处理。类似地,网络接口34使用网络堆栈将RADIUS回应分组封装在UDP数据报中,以由网络接口卡32输出到BNG10。

示例RADIUS协议请求分组包括由RADIUS客户端发送的接入请求消息以及由RADIUS客户端发送的计费请求消息,接入请求消息用于请求订户连接的认证和授权,计费请求消息用于指定已经由RADIUS客户端建立的订户连接的计费信息。网络接口34将每个RADIUS协议请求分组提供给验证模块35,验证模块35通过确认RADIUS协议请求分组中包含的请求认证者指定用于RADIUS协议请求消息的源网络地址的共享密钥来执行分组的RADIUS客户端验证。如果RADIUS客户端验证失败,则默认忽略/丢弃分组。在RADIUS客户端验证成功时,验证模块35将RADIUS协议请求消息传送给授权模块44(在接入请求消息的情况下)或计费模块46(在计费请求消息的情况下)。

通过查询用户简档数据库40以获得订户请求接入的证书,并通过试图根据证书验证订户,授权模块44处理来自BNG 10的接入请求消息。如果授权失败,则授权模块44向BNG10返回接入拒绝消息。如果授权成功,则授权模块44向BNG 10返回接入接受消息。

除了订户用户名和证书之外,接入请求消息还包括一个或多个属性18。具体地,接入请求消息包括至少一个宽带网络网关(BNG)标识符(例如,BNG标识符值和/或BNG-IP地址值),并且在一些情况下,可以包括Acct-Session-Id以及其他属性。当接入请求消息包括Acct-Session-Id并且授权成功时,授权模块44在一些情况下可以针对BNG 10建立的授权会话、通过在计费数据库42中创建会话记录来访问会话记录。

根据所描述的技术,在订户已经初始认证和授权之后,授权模块44可以使用CoA来修改订户授权。具体地,为了修改订户授权,授权模块44可以生成RADIUS消息16的每个RADIUS消息,以包括标识符属性,该标识符属性指示用于批量事务(用于处理CoA)的RADIUS消息16中的相应RADIUS消息的顺序。例如,在一组四个RADIUS消息中,CoA数据20可以将用于批量事务的第一个RADIUS消息的标识符属性设置为‘1’,将用于批量事务的第二RADIUS消息的标识符属性设置为‘2’,将用于批量事务的第三RADIUS消息的标识属性设置为‘3’,依此类推。

更具体地,例如,授权模块44可以生成RADIUS消息16的每个RADIUS消息,以包括在值上递增地改变的Bulk-CoA-Identifier属性。例如,对于一系列CoA请求中的每个CoA请求,授权模块44可以生成具有递增值的RADIUS消息16的每个RADIUS消息。在一些情况下,对于一系列CoA请求中的每个CoA请求,授权模块44可以生成具有递减值的RADIUS消息16的每个RADIUS消息。

应当理解的是,授权模块44可以生成RADIUS消息16的每个RADIUS消息,以包括大于1的值的变化。例如,在一组四个RADIUS消息中,CoA数据20可以将第一个RADIUS消息的标识符属性设置为‘1’,将第二个RADIUS消息的标识符属性设置为‘3’,将第三RADIUS消息的标识符属性设置为‘5’,依此类推。

还应当理解的是,相同的值可以用于跨越不同订户会话的批量CoA请求或用于相同订户会话的新事务(经由新的Bulk-CoA-Transaction-Id属性值)。例如,CoA数据20可以将针对第一订户会话的第一个RADIUS消息的标识符属性设置为‘1’,并将针对第二订户会话的第一个RADIUS消息的标识符属性设置为‘1’。在一些情况下,CoA数据20可以将针对订户的第一事务会话的第一个RADIUS消息的标识符属性设置为‘1’,并将针对订户的第二事务会话的第一个RADIUS消息的标识符属性设置为‘1’。

授权模块44可以生成RADIUS消息16的每个RADIUS消息,以包括标识符属性,该标识符属性指示RADIUS消息16的相应RADIUS消息是否是多个服务的最后一个RADIUS消息。例如,在一组四个分组中,CoA数据20可以将第四分组的标识符属性设置为‘0xFFFFFFFF’。

授权模块44可以响应于订户的CoA来生成RADIUS消息16。例如,管理员50可以改变已经初始认证和授权的订户的服务,并且推送包含CoA数据的RADIUS消息16以用于在BNG10处提供一个或多个服务。如在本文使用的,在BNG 10处提供服务可以包括在BNG 10处提供新服务和/或在BNG 10处再次提供现有服务。

图3是更详细地示出被配置为执行本公开中描述的批量授权数据传送技术的各个方面的路由器52的示例的框图。路由器52可以表示图1的示例中所示的BNG 10的一个示例。路由器52可以表示执行路由功能以通过网络路由数据单元的任何网络装置。路由器52可以路由被称为分组的特定类型的数据单元,并且因此,可以称为“基于分组的路由器”。

此外,路由器52可以实现诸如互联网协议(IP)等第三层(L3)协议或网络层协议(其中,L3指的是开放系统互连(OSI)模型的L3),并且根据第三层信息路由分组。因此,路由器52也可以称为“第三层路由器”、“网络层路由器”或“IP路由器”。

另外,路由器52可以表示宽带网络网关(BNG)其也可以称为宽带远程接入服务器(BRAS)的示例。路由器52充当BNG 10可以汇聚来自接入网4的用户会话,并且相对于用户会话,执行策略管理和IP服务质量(QoS)。

如图3所示,路由器52包括控制单元57。控制单元57可以包括执行软件指令(例如,用于定义软件或计算机程序)的一个或多个处理器(图3中未示出),该软件指令存储到计算机可读介质(同样未在图3中示出),例如,存储装置(例如,磁盘驱动器或光盘驱动器)或存储器(例如,闪存、随机存取存储器或RAM)或任何其他类型的易失性或非易失性存储器,该计算机可读介质存储指令,以使可编程处理器执行本文描述的技术。作为对一个或多个处理器的替代或者除了一个或多个处理器以外,控制单元57还可以包括专用硬件,例如,一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用处理器(ASSP)、一个或多个现场可编程门阵列(FPGA)或专用硬件的一个或多个示例前述示例的任何组合,用于执行本文描述的技术。

控制单元57可以分成两个逻辑“平面”或物理“平面”,以包括第一控制或路由平面58A和第二数据或转发平面58B。即,控制单元57可以实现两个单独功能,例如,路由和转发功能,在逻辑上,例如,作为在相同的一组硬件部件上执行的单独的软件实例,或在物理上,例如,作为单独的物理专用硬件部件(其可以称为“分组转发引擎”,缩写为“PFE”),所述单独的物理专用硬件部件静态地以硬件实现功能或者动态地执行软件或者计算机程序来实现功能。

控制单元57的控制平面58A可以执行路由器52的路由功能。在这方面,控制平面58A可以表示控制单元57的硬件和/或软件,其实现可以通过其确定路由信息60的路由协议(图3中未示出)。路由信息60可以包括定义诸如SP网络12等网络的拓扑结构的信息。控制平面58A可以解决由路由信息60定义的拓扑,以通过SP网络12选择或确定一个或多个路由。控制平面58A然后可以用这些路由更新数据平面58B,其中,数据平面58B将这些路由保持为转发信息62。转发或数据平面58B可以表示根据转发信息62转发网络业务的控制单元57的硬件(例如,上述PFE)和/或软件。

控制平面58A还可以包括以上关于图1的BNG 10描述的方式实现RADIUS协议的RADIUS模块64。换言之,RADIUS模块64可以代表订户装置6与RADIUS服务器14接口,以对订户装置6接入SP网络12进行认证、授权、计费和发起CoA。

数据平面58B可以包括RADIUS重定向模块66。RADIUS重定向模块66可以表示软件和/或硬件模块,其检查输入网络业务以确定该输入网络业务是否表示RADIUS消息。在一些情况下,RADIUS重定向模块66可以包括在转发ASIC(代表PFE)内、或在基于输入网络业务的报头过滤业务的数据平面58B的其他部件内、或在数据平面58B可以用于将特定类型的网络业务与其他类型的网络业务区分开来的任何其他类似机构内编程的逻辑。

RADIUS重定向模块66可以例如包括在数据平面58B内编程的一个或多个过滤器,该过滤器监听分配给RADIUS通信的一个或多个端口,例如,UDP端口1812和1813或UDP端口1645和1646。RADIUS重定向模块66可以包括监听这些RADIUS端口的一个过滤器,并且基于在这些端口上接收到业务,RADIUS重定向模块66可以确定RADIUS通信发送到的地址。RADIUS重定向模块66可以将RADIUS消息16转发给控制单元57。

如在图3中进一步所示,路由器52包括接口卡(IFC)68A-68N,接口卡(IFC)68A-68N分别经由入站网络链路70A-70N(“入站网络链路70”)和出站网络链路72A-72N(“出站网络链路72”)接收和发送分组流或网络业务。IFC 68通常经由多个接口端口(未示出)耦接到网络链路70、72,并经由路径74A-74N(“路径74”)中相应的一个转发和接收来自控制单元57的分组和控制信息。通常由控制单元57为IFC 68的每个物理接口分配唯一标识符,并且可以将具有唯一标识符的多个逻辑接口分配给每个物理接口,其中,每个逻辑接口表示为用于不同网络业务的不同输入或输出接口。这些逻辑接口可以表示VLAN,并且可以给每个VLAN分配唯一VLAN标签。

路由器52可以包括具有用于容纳一组卡(包括IFC 68)的多个槽的底架(图3中未示出)。每个卡可以插入到底架的相应槽中,用于经由总线、背板或其他电通信机构将卡可通信地耦接到控制单元57。

首先,RADIUS重定向模块66可以确定输入网络业务表示的是RADIUS消息16的RADIUS消息,并且将RADIUS消息输出到RADIUS模块64。RADIUS模块64确定是否已经接收到用于在路由器52处提供多个服务的所有CoA数据20。

根据本公开中描述的技术,RADIUS模块64不是单独地提供RADIUS消息16的每个RADIUS消息,而是确定路由器52是否接收到所有RADIUS消息16。响应于确定已接收到CoA的CoA数据20(其在路由器52处提供多个服务),RADIUS模块64在路由器52处提供多个服务。以这种方式,可以以批量方式提供RADIUS消息16,以向路由器52提供包含在RADIUS消息16中的CoA数据20指示的所有服务,从而减少了提供路由器52的次数(a time to provisionrouter)。

RADIUS模块64可以处理包括在RADIUS消息16中的每个CoA请求,一次处理一个,并且经受限于任何验证检查的初始轻量处理。通常可以推迟针对非批量CoA请求执行的任何其他处理(例如,服务提供和提交),直到接收到该序列中的最后一个CoA请求。一旦初始地进行处理(initially processed),RADIUS模块64可以用CoA-Nack或CoA-Ack进行响应。如本文所使用的,CoA-Nack可以包括一个或多个会话标识属性(例如,Acct-Session-Id)、错误原因(设置为404(无效请求))、来自CoA请求的Bulk-CoA-Transaction-Id和Id和Bulk-CoA-Identifier、Action-Reason、另一属性或者一个或多个属性的组合。RADIUS模块64可以使用Action-Reason属性来使Error-Cause属性有资格提供关于CoA请求的状态的更多细节。RADIUS模块64可以使用Action-Reason结合Error-Cause,以将相关联的CoA请求定义为逻辑CoA-Ack(成功)、可逆故障或不可恢复的故障。针对CoA请求的初始处理,RADIUS模块64可以生成Action-Reason,以包含值“被执行的初始处理”(initial processingperformed),该值可以指示临时ACK,在处理最后一个CoA请求后提供成功的服务并提交。

如上所注意到的,响应于在CoA请求中的服务的初始验证期间由路由器52检测到的错误,RADIUS模块64可以生成具有Action-Reason属性的CoA-Nack。RADIUS模块64可以推迟报告错误,直到接收到最后一个CoA请求。换言之,RADIUS模块64可以推迟报告RADIUS消息16的任何RADIUS消息中的错误,直到接收到RADIUS消息16的最后一个RADIUS消息。因此,授权模块44可以继续发送该序列中的剩余CoA请求。检测到的第一个不可恢复的错误可能是经由在针对最后一个CoA请求的CoA-Nack中的Action-Reason属性报告的错误。换言之,RADIUS模块64可以经由在针对RADIUS消息16的最后一个RADIUS消息的CoA-Nack中的Action-Reason属性报告不可恢复的错误。注意,可能存在稍后在本文件中描述的一些错误情况,其中,检测到的错误可能不被推迟到最后一个CoA请求,而是在针对引起错误的CoA请求的CoA-Nack响应中进行报告。

一旦接收到最后一个CoA请求,如果RADIUS模块64检测到在该序列中位于即时CoA请求之前的任何CoA请求中的验证错误,则可以发出具有Action Reason属性(报告错误)的CoA-Nack。换言之,如果RADIUS模块64在RADIUS消息16的任何先前的RADIUS消息中检测到验证错误,则RADIUS模块64可以发出具有Action-Reason属性(报告出错字符串)的CoA-Nack。否则,RADIUS模块64可以开始创建和/或从这序列中的CoA请求中移除服务,包括提交配置。所述不同的RADIUS模块64可以基于RADIUS消息16提供一个或多个服务。所有服务激活的意图可以是作为单个安装来应用。在安装服务时,可能会应用正常的RADIUS重试语义(retry semantics)。响应的语义可以与单个非批量的CoA请求的语义匹配。即,在服务安装之前或者在检测到不可恢复的错误(导致具有Action-Reason属性的CoA-Nack反映检测到的错误)之前,不会发出CoA响应。换言之,RADIUS模块64可以不向RADIUS服务器14输出确认,直到成功提供RADIUS消息16的所有服务或者RADIUS模块64检测到不可恢复的错误。如果RADIUS服务器14在安装服务的同时重试最后一个CoA请求,则RADIUS模块64可以利用具有Action-Reason属性的CoA-Nack报告“正在进行”来响应。

RADIUS模块64可以限制订户可允许的聚合服务的数量,并因此限制订户的批量CoA事务中允许的服务的数量,以确保不超过该限制。当在接收到最后一个CoA请求之前达到订户的最大服务限制时,RADIUS模块64可以中止批量CoA请求,并利用具有Action-Reason属性的CoA-Nack指示“超出服务限制”来响应。作为回应,RADIUS服务器14可以停止发送用于该事务的其他的CoA请求并清除(clean-up)。注意,可以针对该事务的已接收到的所有后续CoA请求(包括最后一个请求)提供该CoA-Nack响应。此外,可以维持在该批量CoA事务之前针对订户会话存在的所有服务。例如,假设订户限于1000个服务,并且订户已经有980个服务,并且RADIUS模块64接收到以下CoA请求事务元组(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier),每个CoA请求包含10个服务:(11,1)、(11,2)、(11,3),RADIUS模块64可以用CoA Nack(11,3,Error-Cause=404,Action-Reason=“超出服务限制”)来响应。在这个示例中,响应于进一步接收到以下CoA请求事务(11,4),RADIUS模块64可以用CoANack(11,4,Error-Cause=404,Action-Reason=“超出服务限制”)来响应。在这个示例中,响应于进一步接收到对于该事务(11,0xFFFFFFFF)的最后一个CoA请求,RADIUS模块64可以利用CoA-Nack(11,4,Error-Cause=404,Action-Reason=“超出服务限制”)来响应。以这种方式,RADIUS模块64可以维持在该批量CoA事务之前的现有的980个服务。

RADIUS模块64可以基于每个CoA请求将包含多个服务这一假设来限制跨越(spanning)批量CoA事务的CoA请求的数量。当在接收到最后一个CoA请求之前达到该限制时,RADIUS模块64可以中止批量CoA请求并利用具有Action-Reason属性的CoA-Nack指示“超出批量请求消息限制”来响应。作为回应,RADIUS服务器14可以停止发送用于该事务的其他的CoA请求并清理。注意,可以针对该事务的接收到的所有后续CoA请求提供该CoA-Nack响应。而且,RADIUS模块64可以维持在该批量CoA事务之前针对订户会话存在的所有服务。

例如,假设每个批量CoA事务限制的最大CoA请求是75,RADIUS模块64可以接收具有以下CoA请求事务元组(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier)的77个CoA请求的批量CoA事务:(210,1)、(210,2)、(210,3)、...(210,75)、(210,76),RADIUS模块64可以用CoA Nack(210,76,Error-Cause=404,Action-Reason=“超出批量请求消息限制”)来响应。在这个示例中,响应于进一步接收到以下CoA请求事务(210,77),RADIUS模块64可以用CoA Nack(210,77,Error-Cause=404,Action-Reason=“超出批量请求消息限制”)来响应。在这个示例中,响应于进一步接收到针对该事务(210,0xFFFFFFFF)的最后一个CoA请求,RADIUS模块64可以用CoA Nack(210,0xFFFFFFFF,Error-Cause=404,Action-Reason=“超出批量请求消息限制”)来响应。

在接收到序列中的最后一个CoA请求消息之前,响应于接收到具有重复的Bulk-CoA-Identifier的CoA请求,RADIUS模块64可以执行以下内容:如果标识符与在该序列中的最近处理的非最后一个Bulk-CoA-Identifier匹配,则RADIUS模块64可以确定接收到的CoA请求是重复请求。如果已经处理该CoA请求,则RADIUS模块64可以利用具有Action-Reason属性“执行的初始处理”的CoA-Nack进行响应(假设先前的CoA-Nack丢失)。如果CoA请求正在进行,则RADIUS模块64可以基于延迟是暂时的并且延迟是初始处理最小这一假设,静默地丢弃重复的CoA请求。

例如,RADIUS模块64接收相同订户的以下CoA请求事务元组(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier):(10,1)并用CoA Nack(10,1,Error-Cause=404,Action-Reason=“执行的初始处理”)来响应,接收(10,2)并且用CoA Nack(10,2,Error-Cause=404,Action-Reason=“执行的初始处理”)来响应,并且接收(10,2)<假设丢失(10.2)的先前的CoA-Nack>并且用CoA Nack(10,2,Error-Cause=404,Action-Reason=“执行的初始处理”)来响应。在一些示例中,RADIUS模块64接收相同订户的以下CoA请求事务元组(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier):(10,1)并用CoA Nack(10,1,Error-Cause=404,Action-Reason=“执行的初始处理”)来响应,接收(10,2)<初始处理正在进行>,并且再次接收(10,2)<由RADIUS模块64静默丢弃>并且用CoA Nack(10,2,Error-Cause=404,Action-Reason=“执行的初始处理”)来响应。如果最后一个CoA请求处理正在进行并且接收到重复的最后一个CoA请求,则RADIUS模块64可以利用具有Action-Reason属性的CoA-Nack指示“正在进行”来进行响应。否则,RADIUS模块64可能已经完成了CoA请求处理,并且RADIUS模块64可以利用具有Action-Reason属性的CoA-Nack指示操作的结果(对于成功情况,“服务激活”)来进行响应。

例如,RADIUS模块64接收相同订户的以下CoA请求事务元组(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier):(27,1),(27,2),(27,3)...(27,0xFFFFFFFF),RADIUS模块64可以在接收到最后一个CoA请求(27,0xFFFFFFFF)时开始服务安装。在这个示例中,响应于进一步接收到以下CoA请求事务(27,0xFFFFFFFF),RADIUS模块64可以用CoANack(27,0xFFFFFFFF,Error-Cause=404,Action-Reason=“正在进行中”)来响应。在这个示例中,响应于在服务安装完成之后进一步接收到以下CoA请求事务(27,0xFFFFFFFF),RADIUS模块64可以利用CoA Nack(27,0xFFFFFFFF,Error-Cause=404,Action-Reason=“服务激活”)来响应。

如果CoA请求中的批量CoA标识符小于该序列中最近处理的批量CoA标识符,则该标识符可以暗示该RADIUS是不同步的。RADIUS模块64可能不验证是否实际上接收到具有该较小的、不期望的Bulk-CoA-Identifier的CoA请求,并且可能在没有响应的情况下丢弃CoA请求。这可以强制RADIUS服务器14用新的事务id重新排序(replay the sequence)(或断开订户)。甚至当接收到最后一个CoA请求并且事务完成(例如,成功或不成功)以执行以下要求:相同订户的下一个事务使用与先前不同的Bulk-CoA-Transaction-Id时,该语义也可以适用。响应于使用相同的Bulk-CoA-Transaction-Id,RADIUS模块64可以确定Bulk-CoA-Transaction-Id是针对订户的先前事务的回复,并因此丢弃。

例如,RADIUS模块64接收相同订户的以下CoA请求事务元组(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier):(10,100),RADIUS模块64可以用CoA Nack(10,100,Error-Cause=404,Action-Reason=“执行的初始处理”)来响应。在这个示例中,响应于进一步接收到以下CoA请求事务(10,101),RADIUS模块64可以用CoA Nack(10,101,Error-Cause=404,Action-Reason=“执行的初始处理”)来响应。在这个示例中,响应于进一步接收到以下CoA请求事务(10,102),RADIUS模块64可以用CoA Nack(10,102,Error-Cause=404,Action-Reason=“执行的初始处理”)来响应。在这个示例中,响应于进一步接收到以下CoA请求(10,101),RADIUS模块64可以静默地丢弃该CoA请求。在这个示例中,响应于进一步接收到以下CoA请求(10,50),RADIUS模块64可以静默地丢弃该CoA请求。注意,当接收到具有小于最近处理的标识符的批量CoA标识符的CoA请求时,RADIUS模块64可以使用定时器来检测在未重置的序列中的下一个或最后一个CoA请求的接收。

对于批量CoA事务,可以使用定时器(例如,30秒)来检测在该序列中的下一个或最后一个CoA请求的接收。一旦针对非最后一个CoA请求发出CoA响应,定时器启动。如果定时器到期,则RADIUS模块64可以确定当前的Bulk-CoA-Transaction-Id是无效的,并且来自针对该事务的先前的CoA请求的所有服务可以经受清除。如果RADIUS服务器14继续发送CoA请求或者使用相同的Bulk-CoA-Transaction-Id从头开始重新发送CoA请求序列,则RADIUS模块64可以利用具有Action-Reason属性的CoA-Nack向属于这个无效事务的每个CoA请求指示“CoA请求超时”来进行响应。

例如,RADIUS模块64接收以下CoA请求事务元组(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier):(1,1),(1,2),(1,3)超时30秒。在这个示例中,可能禁止恢复或重新发送事务。例如,响应于接收到以下CoA请求(1,4)(例如,恢复),RADIUS模块64可以用CoANack(1,4,Error-Cause=404,Action-Reason=“CoA请求超时”)来响应。例如,响应于接收到以下CoA请求(1,1)(例如,重新发送),RADIUS模块64可以用CoA Nack(1,1,Error-Cause=404,Action-Reason=“CoA请求超时”)来响应。在一些情况下,响应于接收到以下最后一个CoA请求(1,0xFFFFFFFF),RADIUS模块64可以用CoA Nack(1,0ffffffffff,Error-Cause=404,Action-Reason=“CoA请求超时”)来响应。

响应于超时,可以期望RADIUS服务器14使用不同的Bulk-CoA-Transaction-Id值来重新发送事务。例如,RADIUS模块64可以接收(2,1),(2,2),(2,3),(2,4),(2,5),(2,0xFFFFFFFF),以重新发送并完成CoA请求事务元组。

对于批量CoA事务,如果在第一个CoA请求之后但在接收到该序列中的最后一个CoA请求之前发起注销(例如,由RADIUS服务器14发起的,由路由器52管理性地发起的,订户发起的RADIUS CoA断开请求等),则RADIUS模块64可以中止批量CoA事务。对于在注销开始之后接收到的任何CoA请求,RADIUS模块64可以利用具有Action-Reason属性的CoA-Nack指示“正在注销”来进行响应。

例如,RADIUS模块64接收相同订户的以下CoA请求事务元组(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier):(222,1)、(222,2)、(222,3),并以CoA Nack(222,3,Error-Cause=404,Action-Reason=“执行的初始处理”)来进行响应。在这个示例中,RADIUS服务器14发起RADIUS断开连接消息。在这个示例中,RADIUS模块64然后接收CoA请求事务元组(222,4)并且输出CoA Nack(222,4,Error-Cause=404,Action-Reason=“正在注销”)。

如果Bulk-CoA-Transaction-Id或Bulk-CoA-Identifier属性是无效值(例如,0),或者这两个属性中的一个不存在,则RADIUS模块64可以丢弃CoA请求,而不需要响应。如果事务正在进行中,则丢弃的CoA请求不会阻止事务继续并完成(即,效果是好像没有接收到CoA请求)。

图4是示出根据本公开中描述的技术的各个方面的支持批量传送CoA数据20的RADIUS服务器14的示例操作模式的流程图。相对于图2的RADIUS服务器14描述示例操作模式。

管理接口48认证充当与订户相关联的RADIUS客户端的网络接入服务器(102)。例如,响应于验证从图1的BNG 10接收的认证数据,管理接口48对BNG 10进行认证。授权模块44为SP网络12的订户订阅的CoA的多个服务确定CoA数据20(104)。在初始认证和授权订户之后,授权模块44生成在RADIUS服务器和网络接入服务器之间形成事务的RADIUS消息(106)。例如,授权模块44生成图1的RADIUS消息16,这些消息在图1的RADIUS服务器14和BNG10之间形成事务。授权模块44将多个RADIUS消息输出或“推送”到网络接入服务器,该网络接入服务器对多个RADIUS消息中的每个RADIUS消息执行验证检查(108)。例如,授权模块44将RADIUS消息16输出到图1的BNG 10,BNG 10对RADIUS消息16的每个RADIUS消息执行验证检查。

图5是示出根据本公开中描述的技术的各个方面的被配置为支持CoA数据20的批量传送的路由器52的示例操作模式的流程图。相对于图3的路由器52,描述示例操作模式。

RADIUS模块64首先使用RADIUS服务器14进行认证(202)。在订户初始认证和授权之后,通过对RADIUS消息16的每个RADIUS消息执行验证检查并向RADIUS服务器14输出成功接收的指示,RADIUS模块64从RADIUS服务器14接收RADIUS消息16(204)。响应于确定已经接收到用于在RADIUS模块64处提供多个服务的所有CoA数据20,RADIUS模块64针对使用RADIUS消息16的COA提供多个服务(206)。

图6是示出根据本公开中描述的批量授权数据传送技术的各个方面形成的示例CoA请求的框图。如图所示,图6包括可以表示图1所示的RADIUS消息16的一个示例的RADIUS消息316A-H(在下文中,“RADIUS消息316”)。

RADIUS消息316的每个RADIUS消息包括相应的CoA事务ID302A-H(统称为“CoA事务ID 302”),其是与一系列相关的CoA请求(作为事务)相关联的通用标识符或标签。这个属性可能是一个非零的四字节整数。可以保留值0。或者,这个属性可能是一个字符串。

当经由批量CoA配置订户会话时,该序列中的每个RADIUS消息316(例如,CoA请求)可以恰好包含CoA事务ID 302的一个实例。对于跨越给定订户会话的批量CoA事务的所有CoA请求,CoA事务ID 302的值可以相同。例如,如图6所示,RADIUS消息316A-D包括指示第一事务“1”的CoA事务ID 302A-D。在这个示例中,RADIUS消息316E-H包括指示第二事务“2”的CoA事务ID 302E-H。

RADIUS服务器14可以对CoA事务ID 302所指示的每个批量CoA事务使用单调递增的数字,但是BNG 10不会强制实施。唯一的要求是使用唯一值来识别相同订户会话的两个连续的批量-CoA事务。然而,对于不同的订户会话,相同的值可以用于批量CoA事务。而且,对于给定的订户会话,该值可以重复,只要不是连续的(因此,可以允许事务id顺序1、2、1)。

RADIUS消息316的每个RADIUS消息可以包括相应的批量CoA ID 304A-H(统称为“批量CoA ID 304”)。批量CoA ID 304可以指定每个RADIUS消息316(例如,CoA请求消息)的唯一标识符,该RADIUS消息316是由批量CoA事务ID 302指定的同一事务的一部分。该属性是非零的四字节整数。可以保留值0。

当经由批量CoA配置订户会话时,该序列中的每个CoA请求可以被配置为精确地包含批量CoA ID 304的一个实例,CoA ID 304指定一个比事务的先前CoA请求的值大于1的值。由于批量CoA ID值表示顺序,所以可以使用递增或递减的顺序,使得保留一个单个值以表示最后一个CoA请求,其中,递增的顺序是在全文在描述的更传统的方法。因此,针对给定事务的CoA请求的批量CoA ID 304可以表示递增的一序列数字(其中,单调增加的数字是自然的语义,但不是强制的)。序列中的最后一个CoA请求可以使用诸如0xFFFFFFFF等保留值,作为表示事务结束的方式。例如,如6图所示,具有值‘3’的批量CoA ID 304C从具有值‘2’的批量CoA ID 304B单调递增。在这个示例中,具有值‘2’的批量CoA ID 304B从具有值‘1’的批量CoA ID 304A单调递增。此外,由RADIUS消息316D指示的最后一个CoA请求具有值为“0xFFFFFFFF”的批量CoA ID 304D,作为将由批量CoA事务ID 302D指示的第一事务(表示为‘1’)的结束的方式。

相同的一系列值可以用于不同订户会话的批量CoA事务。而且,对于给定的订户会话,这些值可以重复。例如,如图6所示,由批量CoA ID 304E(具有由批量CoA ID 302E指示的第二事务的值‘2’)重复批量CoA ID 304A(具有由批量CoA ID 304A指示的第一事务的值‘1’)。

因此,CoA请求可以表示为给定订户会话的唯一标识符(元组)(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier),其具有唯一的会话标识符(例如,Acct-Session-ID)。例如,针对包含四个单独的CoA请求的给定订户会话的批量CoA事务可以编号如下:(1,1)、(1,2)、(1,3)和(1,0xFFFFFFFF)。例如,如图6所示,RADIUS消息316A-D可以均包括CoA事务ID 302(其指示‘1’)以表示第一唯一会话标识符。在这个示例中,RADIUS消息316A-D可以包括由以下指示的四个单独的CoA请求:批量CoA ID 304A,指示值‘1’;批量CoA ID 304B,指示值‘2’;批量CoA ID 304C,指示值‘3’;以及批量CoA ID 304D,指示值‘0xFFFFFFFF’。

针对同一订户会话的下一个批量CoA事务可以如下编号:(2,1),(2,2),(2,3),...,(2,0xFFFFFFFF)。例如,如图6所示,RADIUS消息316E-H可以均包括CoA事务ID 302(其指示‘2’)以表示第二唯一事务标识符。在这个示例中,RADIUS消息316E-H可以包括由以下各项指示的三个单独的CoA请求:批量CoA ID 304E,指示值‘1’;批量CoA ID 304F,指示值‘2’;批量CoA ID 304G,指示值‘3’;以及批量CoA ID 304H,指示值‘0xFFFFFFFF’。

本文描述的一些批量CoA机制可以与非批量CoA机制向后兼容,使得非批量CoA意味着在CoA请求消息之间不存在关系,并且因此,可以在CoA请求边界上执行服务创建或删除。

因此,本文描述的非批量和批量CoA可以均用于配置相同的订户。除了新属性(例如,CoA事务ID 302和批量CoA ID 304)之外,包含在单独的CoA请求消息中的属性通常可以与在订户会话被配置为一系列非批量CoA请求消息的情况下可以使用的消息匹配。这意味着每个CoA请求可以包含会话标识属性(例如,Acct-Session-Id)以及用于创建或删除不同的订户服务的一个或多个属性。此外,用于创建或删除订户服务的所有属性的请求可以包含在同一(例如,单个)CoA请求消息内。Bulk-CoA-Transaction-Id和Bulk-CoA-Identifier属性(例如,批量CoA事务ID 302和批量CoA ID 304)可以包括在每个CoA请求中,以将其作为单个事务进行关联。

如果接收到具有与先前的CoA请求所建立的批量CoA事务Id值不同的批量CoA事务Id值(例如,批量CoA事务ID 302)的CoA请求,则BNG10可以中止当前事务并清除来自先前CoA请求的所有服务。对于这个中止的事务,可能不会提供CoA回应。转换到新的事务id(例如,CoA事务ID 302)可能意味着将由RADIUS服务器14执行完整的重新发送。

例如,BNG 10接收针对同一订户的以下CoA请求事务元组(Bulk-CoA-Transaction-Id,Bulk-CoA-Identifier)(例如,CoA事务ID 302和批量CoA ID 304):(1,12),(1,13),(2,11),(2,12),(2,13),(2,14),(2,0×FFFFFFFFF)。元组(2,11)可以触发中止事务id=1的订户会话。换言之,BNG10可响应于接收(2,11)而中止第一事务,因为由批量CoA事务Id(例如,CoA事务ID 302)指示的事务改变为指示第二事务,而没有第一事务结束的指示(例如,批量CoA ID 304指示‘0xFFFFFFFF’)。在这个示例中,相反的,BNG 10可以将事务id=2的批量CoA应用于订户。

响应于接收到包含值0xFFFFFFFF的RADIUS消息(例如,CoA请求),该RADIUS消息具有批量CoA标识符属性(例如,批量CoA ID 304),当服务处理和安装(或卸载)完成时(成功或其他),BNG 10可以用CoA-Ack或CoA-Nack进行响应,CoA-Ack或CoA-Nack可以包括:会话标识属性(例如,Acct-Session-Id);Error-Cause(设置为404(无效请求))-仅CoA-Nack;以及来自CoA请求的Bulk-CoA-Transaction-Id和Bulk-CoA-Identifier属性。注意,Bulk-CoA-Identifier具有值0xFFFFFFFF。对于CoA-Nack,包括反映批量CoA操作的状态的ActionReason属性。

当BNG 10检测到不可恢复的错误(例如,不会被RADIUS视为逻辑CoA-Ack)时,BNG10可以从批量CoA回滚(清除)服务。在重试之前(例如,固定在服务格式或配置中),不可恢复的错误可能需要BNG 10以外的某种订户干预。BNG 10可以维持事务id映射,直到Bulk-CoA-Transaction-Id改变。一旦解决了错误,可以使用新的事务ID重试批量CoA。

可以类似地处理可逆的错误。区别在于,RADIUS服务器14可以在不需要订户干预的情况下立即重试。注意,重试意味着使用新的Bulk-CoA-Transaction-Id重新发送整个批量CoA请求,以允许BNG 10保持一致的错误语义。

本文中描述的技术可以用硬件、软件、固件或其任何组合来实现。被描述为模块、单元或部件的各种特征可以在集成逻辑装置中一起实现,或者单独作为离散但可互操作的逻辑装置或其他硬件装置实现。在一些情况下,电子电路的各种特征可以被实现为一个或多个集成电路装置,例如,集成电路芯片或芯片组。

如果以硬件实施,则本公开可以涉及一种设备,例如,处理器或集成电路装置,例如,集成电路芯片或芯片组。可替换地或另外,如果以软件或固件实现,则可以至少部分地通过包括指令的计算机可读数据存储介质来实现这些技术,所述指令在执行时促使处理器执行上述方法中的一种或多种。例如,计算机可读数据存储介质可以存储这种指令,以供处理器执行。

计算机可读介质可以形成可以包括封装材料的计算机程序产品的一部分。计算机可读介质可以包括诸如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光学数据存储介质等计算机数据存储介质。在一些示例中,制品可以包括一个或多个计算机可读存储介质。

在一些示例中,计算机可读存储介质可以包括非暂时性介质。术语“非暂时性”可以指示没有在载波或传播信号中体现存储介质。在某些示例中,非暂时性存储介质可以存储可以随时间变化(例如,在RAM或高速缓存中)的数据。

代码或指令可以是由处理电路执行的软件和/或固件,所述处理电路包括一个或多个处理器,例如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)或其他等效的集成或离散逻辑电路。因此,本文所使用的术语“处理器”可以指任何前述结构或适合于实施本文所描述的技术的任何其他结构。另外,在一些方面中,可以在软件模块或硬件模块内提供在本公开中描述的功能。

除上述以外或者作为上述的替代,描述了以下实施例。任何以下实施例中描述的特征可以与本文描述的任何实施例一起使用。

示例1.一种方法,包括:由用于服务提供商网络的远程认证拨号用户服务(RADIUS)服务器确定服务提供商网络的订户订阅的多个服务的授权变化数据;由RADIUS服务器生成在RADIUS服务器和充当RADIUS客户端的网络接入服务器之间形成事务的多个RADIUS消息,其中,所述多个RADIUS消息在网络接入服务器提供所述多个服务之前向网络接入服务器提供所有授权变化数据,所述网络接入服务器位于由所述订户部署的用于接入所述多个服务的订户接入装置与所述RADIUS服务器之间;并且由所述RADIUS服务器将所述多个RADIUS消息输出到所述网络接入服务器。

示例2.根据示例1所述的方法,其中,所述多个RADIUS消息中的每个消息包括指示所述多个RADIUS消息中的相应RADIUS消息的顺序的标识符属性。

示例3.根据示例1-2的任何组合所述的方法,其中:所述多个RADIUS消息中的每个RADIUS消息包括标识符属性,所述标识符属性指示所述多个RADIUS消息中的相应RADIUS消息是否是终止事务的用于所述多个服务的最后一个RADIUS消息;并且所述网络接入服务器被配置为响应于接收到最后一个RADIUS消息而提供多个服务。

示例4.根据示例1-3中的任何组合所述的方法,其中,所述RADIUS服务器响应于所述订户的授权变化而生成所述多个RADIUS消息。

示例5.根据示例1-4中的任何组合所述的方法,其中,将所述多个RADIUS消息输出到所述网络接入服务器包括:所述RADIUS服务器向所述网络接入服务器输出所述多个RADIUS消息中的第一个RADIUS消息;并且响应于接收到来自所述网络接入服务器的接收到所述第一个RADIUS消息的指示,所述RADIUS服务器向所述网络接入服务器输出所述多个RADIUS消息中的第二个RADIUS消息。

示例6.根据示例1-5中的任何组合所述的方法,其中,所述多个RADIUS消息中的每个消息包括指示所述事务为具有多个授权变化请求的批量事务的批量授权变化事务标识符属性。

示例7.一种为服务提供商网络提供认证、授权和计费服务的服务器,所述服务器包括:一个或多个处理器,其耦接到存储器;以及远程认证拨号订户服务(RADIUS)模块,其被配置为:确定服务提供商网络的订户订阅的多个服务的授权变化数据;生成在RADIUS服务器和充当RADIUS客户端的网络接入服务器之间形成事务的多个RADIUS消息,其中,所述多个RADIUS消息在网络接入服务器提供所述多个服务之前向网络接入服务器提供所有授权变化数据,所述网络接入服务器位于由所述订户部署的用于接入所述多个服务的订户接入装置与所述RADIUS服务器之间;并且将所述多个RADIUS消息输出到所述网络接入服务器。

示例8.根据示例7所述的服务器,其中,所述多个RADIUS消息中的每个消息包括指示所述多个RADIUS消息中的相应RADIUS消息的顺序的标识符属性。

示例9.根据示例7至8中的任何组合所述的服务器,其中:所述多个RADIUS消息中的每个RADIUS消息包括标识符属性,所述标识符属性指示所述多个RADIUS消息中的相应RADIUS消息是否是终止事务的用于所述多个服务的最后一个RADIUS消息;并且所述网络接入服务器被配置为响应于接收到最后一个RADIUS消息而提供多个服务。

示例10.根据示例7至9中的任何组合所述的服务器,其中,所述RADIUS服务器响应于所述订户的授权变化而生成所述多个RADIUS消息。

示例11.根据示例7至10中的任何组合所述的服务器,其中,为了将所述多个RADIUS消息输出到所述网络接入服务器,所述RADIUS模块被配置为:向所述网络接入服务器输出所述多个RADIUS消息中的第一个RADIUS消息;并且响应于接收到来自所述网络接入服务器的接收到所述第一个RADIUS消息的指示,向所述网络接入服务器输出所述多个RADIUS消息中的第二个RADIUS消息。

示例12.根据示例7至11中的任何组合所述的服务器,其中,所述多个RADIUS消息中的每个消息包括指示所述事务为具有多个授权变化请求的批量事务的批量授权变化事务标识符属性。

示例13.一种方法,包括:由与服务提供商网络的订户相关联并充当远程认证拨号用户服务(RADIUS)客户端的网络接入服务器从服务提供商网络的RADIUS服务器接收在RADIUS服务器和网络接入服务器之间形成事务的多个RADIUS消息,以提供用于在网络接入服务器处提供所述多个服务的授权变化数据,所述网络接入服务器位于由所述订户部署的用于接入所述多个服务的订户接入装置与所述RADIUS服务器之间;并且响应于确定已经接收到用于在所述网络接入服务器处提供所述多个服务的所有授权变化数据,由所述网络接入服务器提供所述多个服务。

示例14.根据示例13所述的方法,其中,所述多个RADIUS消息中的每个消息包括指示所述多个RADIUS消息中的相应RADIUS消息的顺序的标识符属性,所述方法还包括:由所述网络接入服务器基于所述多个RADIUS消息中的相应RADIUS消息的顺序,确定是否已经接收到用于在所述网络接入服务器处提供所述多个服务的所有授权变化数据。

示例15.根据示例13-14中的任何组合所述的方法,其中,所述多个RADIUS消息中的每个RADIUS消息包括标识符属性,所述标识符属性指示所述多个RADIUS消息中的相应RADIUS消息是否是终止事务的用于所述多个服务的最后一个RADIUS消息,所述方法还包括:响应于接收到最后一个RADIUS消息,所述网络接入服务器确定是否已经接收到用于在所述网络接入服务器处提供所述多个服务的所有授权变化数据。

示例16.根据示例13-15中的任何组合所述的方法,其中,所述RADIUS服务器响应于所述订户的授权变化而生成所述多个RADIUS消息。

示例17.根据示例13-16中的任何组合所述的方法,其中,接收所述多个RADIUS消息包括:由所述网络接入服务器接收所述网络接入服务器的所述多个RADIUS消息中的第一个RADIUS消息;确定所述第一个RADIUS消息是否包含错误;并且响应于确定所述第一个RADIUS消息不包含错误,由所述网络接入服务器向所述RADIUS服务器输出来自所述网络接入服务器的接收到所述第一个RADIUS消息的指示,其中,响应于接收到来自所述网络接入服务器的接收到所述第一个RADIUS消息的指示,所述RADIUS服务器向所述网络接入服务器输出所述多个RADIUS消息中的第二个RADIUS消息。

示例18.根据示例13-17中的任何组合所述的方法,还包括:响应于确定未接收到用于在所述网络接入服务器处提供所述多个服务的所有授权数据,避免提供所述多个服务中的服务。

示例19.根据示例13-18中的任何组合所述的方法,其中,所述多个RADIUS消息中的每个消息包括指示所述事务为具有多个授权变化请求的批量事务的批量授权变化事务标识符属性。

示例20.根据示例13-19中的任何组合所述的方法,其中,接收所述多个RADIUS消息包括:由所述网络接入服务器从所述RADIUS服务器接收所述多个RADIUS消息中的第一个RADIUS消息;并且响应于确定在定时器到期之前所述网络接入服务器未接收到所述多个RADIUS消息中的第二个RADIUS消息,所述网络接入服务器向所述RADIUS服务器输出中止所述事务的指示。

示例21.根据示例13-20中的任何组合所述的方法,其中,接收所述多个RADIUS消息包括:响应于确定所述多个RADIUS消息包括超过最大服务限制的服务数量,由所述网络接入服务器向所述RADIUS服务器输出中止所述事务的指示。

示例22.一种为服务提供商网络提供认证、授权和计费服务的服务器,所述服务器包括:一个或多个处理器,其耦接到存储器;以及远程认证拨号用户服务(RADIUS)模块,其与服务提供商网络的订户相关联并且充当RADIUS客户端,所述RADIUS模块被配置为:从服务提供商网络的RADIUS服务器接收在所述服务器和RADIUS服务器之间形成事务的多个RADIUS消息,以提供用于在网络接入服务器处提供所述多个服务的授权变化数据,所述服务器位于由所述订户部署的用于接入所述多个服务的订户接入装置与所述RADIUS服务器之间;并且响应于确定已经接收到用于在所述网络接入服务器处提供所述多个服务的所有授权变化数据,提供所述多个服务。

示例23.根据示例22所述的服务器,其中,所述多个RADIUS消息中的每个消息包括指示所述多个RADIUS消息中的相应RADIUS消息的顺序的标识符属性,所述RADIUS模块还被配置为:基于所述多个RADIUS消息中的相应RADIUS消息的顺序,确定是否已经接收到用于在所述网络接入服务器处提供所述多个服务的所有授权变化数据。

示例24.根据示例22-23中的任何组合所述的服务器,其中,所述多个RADIUS消息中的每个RADIUS消息包括标识符属性,所述标识符属性指示所述多个RADIUS消息中的相应RADIUS消息是否是终止所述事务的所述多个服务的最后一个RADIUS消息,所述RADIUS模块还被配置为:响应于接收到最后一个RADIUS消息,确定是否已经接收到用于在所述网络接入服务器处提供所述多个服务的所有授权变化数据。

示例25.根据示例22-24中的任何组合所述的服务器,其中,所述RADIUS服务器响应于所述订户的授权变化而生成所述多个RADIUS消息。

示例26.根据示例22-25中的任何组合所述的服务器,其中,为了接收所述多个RADIUS消息,所述RADIUS模块还被配置为:接收至所述网络接入服务器的所述多个RADIUS消息中的第一个RADIUS消息;确定所述第一个RADIUS消息是否包含错误;并且响应于确定所述第一个RADIUS消息不包含错误,向所述RADIUS服务器输出来自所述网络接入服务器的已接收到所述第一个RADIUS消息的指示,其中,响应于接收到来自所述服务器的已接收到所述第一个RADIUS消息的指示,所述RADIUS服务器向所述服务器输出所述多个RADIUS消息中的第二个RADIUS消息。

示例27.根据示例22-26中的任何组合所述的服务器,其中,所述RADIUS模块还被配置为:响应于确定未接收到用于在所述网络接入服务器处提供所述多个服务的所有授权数据,避免提供所述多个服务中的服务。

示例28.根据示例22-27中的任何组合所述的服务器,其中,所述多个RADIUS消息中的每个消息包括指示所述事务为具有多个授权变化请求的批量事务的批量授权变化事务标识符属性。

示例29.根据示例22-28中的任何组合所述的服务器,其中,为了接收所述多个RADIUS消息,所述RADIUS模块被配置为:接收至所述网络接入服务器的所述多个RADIUS消息中的第一个RADIUS消息;并且响应于确定在定时器到期之前未接收到所述多个RADIUS消息中的第二个RADIUS消息,输出中止所述事务的指示。

示例30.根据示例22-29中的任何组合所述的服务器,其中,为了接收所述多个RADIUS消息,所述RADIUS模块被配置为:响应于确定所述多个RADIUS消息包括超过最大服务限制的服务数量,输出中止所述事务的指示。

此外,上述任何实施例中阐述的任何特定特征可以组合成所描述的技术的有益实施例。即,任何具体特征通常适用于本发明的所有实施例。已经描述了各种示例。这些和其他示例在以下权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号