计费方法及网络接入服务器的制作方法

文档序号:7741844阅读:212来源:国知局
专利名称:计费方法及网络接入服务器的制作方法
技术领域
本发明涉及计费技术领域,具体涉及计费方法及网络接入服务器。
背景技术
一般地,用户都是通过网络接入服务器(NAS,Network Access Server)的认证 接入因特网,NAS再通过远程认证拨号用户服务(RADIUS,RemoteAuthentication Dial In User krvice)协议,在RADIUS服务器上对用户进行认证,将用户的计费信息发送到 RADIUS服务器上进行计费。如图1所示,RADIUS报文的结构如下Code 代码字段,1字节,用于说明RADIUS报文的类型;Identifier 标识字段,1字节,用于匹配请求与回复;Length 长度字段,2字节,指明了包括编码、标识符、长度、鉴别码和属性域在内 的数据包的长度;Authenticator 鉴别码字段,16 字节;Attributes 属性域字段。其中,Identifier字段用于区分NAS发送的请求和RADIUS服务器回应的应答。 NAS每发送一个RADIUS请求报文(不包括重发的报文),都将Identifier值增1,这样每个 请求报文的Identifier是不相同的,RADIUS服务器根据Identifier字段就可以区分出不 同的请求报文,RADIUS服务器回应请求报文时,将请求报文中的Identifier值放到应答报 文中,这样NAS就可以根据应答报文中的Identifier得知该应答是针对哪个请求报文的应 答。为了保证可靠性,如图2所示,对于一个NAS通常配置两个RADIUS服务器,分别作 为主、备服务器。具体实现主要有两种一、NAS先向主RADIUS服务器进行用户认证,认证通过后,向主RADIUS服务器发送 计费报文,当NAS和主RADIUS服务器之间不通或者主RADIUS服务器断掉(DOWN)时,NAS在 一定数目的计费报文得不到主RADIUS服务器的回应时,强制用户下线,并重新在备RADIUS 服务器上对用户进行认证,认证通过后,向备RADIUS服务器发送计费报文。这种方法的缺点是当NAS和主RADIUS服务器之间不通或者主RADIUS服务器断 掉时,NAS强制用户下线,这样会使得用户业务异常中断,降低了用户体验。二、NAS向主RADIUS服务器进行用户认证,认证通过后,向主、备RADIUS服务器广 播计费报文。这种方法的缺点是兼容性较差,因为=RADIUS服务器在用户没有通过认证的情 况下通常是不会处理计费报文的,且当主、备RADIUS服务器的软件不相同时,由于软件使 用的数据库系统、数据的存储单元等可能不相同,要实现两类数据库间的备份很困难,从而 降低了计费可靠性。

发明内容
本发明提供计费方法及NAS,以提高用户业务可靠性和计费可靠性。本发明的技术方案是这样实现的一种计费方法,为每个NAS设置至少两台RADIUS服务器,其中一台为主RADIUS 服务器,其它为备RADIUS服务器,且所有RADIUS服务器上的用户配置相同,且NAS为所有 RADIUS服务器设置同一个Identifier计数器,该方法包括NAS发现用户上线,向主RADIUS服务器发送针对该用户的认证请求报文,并保存 该认证请求报文,在接收到主RADIUS服务器的认证通过报文时,将保存的认证请求报文发 送给所有备RADIUS服务器;NAS在向主RADIUS服务器发送针对该用户的计费更新报文的同时,向所有备 RADIUS服务器发送相同的计费更新报文,所有计费更新报文中的Identifier字段值相同, 在预设时长内,NAS只要接收到任一 RADIUS服务器回应的应答报文,则允许用户继续在线。所述NAS在向主RADIUS服务器发送计费更新报文的同时,向所有备RADIUS服务 器发送相同的计费更新报文之后进一步包括 NAS在第一预设时长内未接收到主RADIUS服务器、也未接收到任何备RADIUS服务 器返回的应答报文,则按照预设重发规则,向所有RADIUS服务器重复发送所述计费更新报 文,若在预设第二时长内,仍未接收到任何RADIUS服务器返回的应答报文,则强制用户下线。所述在预设时长内,NAS只要接收到任一 RADIUS服务器回应的应答报文,则认为 计费正常包括NAS在预设时长内,第一次接收到针对所述计费更新报文的应答报文,对该应答报 文进行处理,后续接收到针对所述计费更新报文的应答报文,直接将该应答报文丢弃。所述将保存的认证请求报文发送给所有备RADIUS服务器包括向所有备RADIUS服务器发送预设次数的认证请求报文。所述NAS将保存的认证请求报文发送给所有备RADIUS服务器之后、在向主RADIUS 服务器发送计费更新报文的同时,向所有备RADIUS服务器发送相同的计费更新报文之前 进一步包括NAS向主RADIUS服务器发送计费开始报文,在接收到主RADIUS服务器返回的计费 应答报文后,按照预设重发规则,向所有备RADIUS服务器重复发送计费开始报文;或者进一步包括NAS按照预设重发规则,同时向主RADIUS服务器和所有备 RADIUS服务器重复发送计费开始报文。所述NAS只要接收到任一 RADIUS服务器回应的应答报文,则允许用户继续在线之 后进一步包括针对所述用户的计费结束,NAS按照预设重发规则,同时向主RADIUS服务器和所 有备RADIUS服务器重复发送计费结束报文。一种NAS,该NAS至少对应两台RADIUS服务器,其中一台为主RADIUS服务器,其它 为备RADIUS服务器,且所有RADIUS服务器上的用户配置相同,且NAS为所有RADIUS服务 器设置同一个Identifier计数器,该NAS包括认证模块,发现用户上线,向主RADIUS服务器发送针对该用户的认证请求报文,并保存该认证请求报文,在接收到主RADIUS服务器的认证通过报文时,将保存的认证请求 报文发送给所有备RADIUS服务器;计费模块,在向主RADIUS服务器发送计费更新报文的同时,向所有备RADIUS服务 器发送相同的计费更新报文,所有计费更新报文中的Identifier字段值相同,在预设时长 内,NAS只要接收到任一 RADIUS服务器回应的应答报文,则认为计费正常。所述计费模块进一步用于,在向所有备RADIUS服务器发送相同的计费更新报文 之后,若在第一预设时长内未接收到主RADIUS服务器、也未接收到任何备RADIUS服务器返 回的应答报文,则按照预设重发规则,向所有RADIUS服务器重复发送所述计费更新报文, 若在预设第二时长内,仍未接收到任何RADIUS服务器返回的应答报文,则强制用户下线。所述计费模块进一步用于,在计费开始时,向主RADIUS服务器发送计费开始 报文,在接收到主RADIUS服务器返回的计费应答报文后,按照预设重发规则,向所有备 RADIUS服务器重复发送计费开始报文;或者,在计费开始时,按照预设重发规则,同时向主RADIUS服务器和所有备 RADIUS服务器重复发送计费开始报文。所述计费模块进一步用于,在计费结束时,按照预设重发规则,同时向主RADIUS 服务器和所有备RADIUS服务器重复发送计费结束报文。与现有技术相比,本发明中,为每个NAS设置至少两台RADIUS服务器,所有RADIUS 服务器上的用户配置相同,且对于一个用户,NAS先向主RADIUS服务器发起针对该用户的 认证请求报文,并保存该认证请求报文,在认证通过后,NAS向所有备RADIUS服务器发送该 认证请求报文,之后,NAS同时向所有RADIUS服务器发送同一计费更新报文,这样,只要NAS 与一个RADIUS服务器的连接正常,NAS就可以收到应答报文,从而NAS就会允许用户继续 在线,提高用户业务可靠性;同时,只要NAS与一个RADIUS服务器的连接正常,用户的计费 信息就不会丢失,从而保证了计费可靠性。且,本发明不需要增加任何私用的属性,不需要 对现有RADIUS服务器作任何修改,实现成本较低。


图1为RADIUS报文的结构示意图;图2为现有的RADIUS服务器备份组网图;图3为本发明实施例提供的计费方法流程图;图4为本发明实施例提供的NAS的结构示意图。
具体实施例方式下面结合附图及具体实施例对本发明再作进一步详细的说明。图3为本发明实施例提供的计费方法流程图,如图3所示,其具体步骤如下步骤301 为每个NAS设置至少两台RADIUS服务器,其中一台为主RADIUS服务器, 其它都为备RADIUS服务器,且主、备RADIUS服务器上保存的用户配置都相同;同时NAS为 所有RADIUS服务器设置一个全局Identifier计数器。主、备RADIUS服务器上保存的用户配置相同,则就会使得若一个用户能通过主 RADIUS服务器的认证,则也能通过所有备RADIUS服务器的认证。
6
NAS为所有RADIUS服务器设置一个全局Identifier计数器,这样,NAS只需根据 Identifier字段值匹配请求和应答报文,而不需要关心接收到的报文的源地址和端口。步骤302 :NAS检测到用户上线,发现主、备RADIUS服务器的状态都为激活 (Active),则将用户名和密码携带在认证请求报文中发送给主RADIUS服务器,同时保存该 认证请求报文。这里,NAS和用户间的认证协议可以采用口令验证协议(PAP, PasswordAuthentication Protocol),也可以采用挑战握手认证协议(CHAP, ChallengeHandshake Authentication Protocol)。步骤303 =NAS接收主RADIUS服务器返回的认证通过报文,则将步骤302保存的认 证请求报文分别发送给各备RADIUS服务器。由于主、备RADIUS服务器上保存的用户配置相同,则这里,NAS将认证请求报文发 送给各备RADIUS服务器后,必然会收到各备RADIUS服务器返回的认证通过报文。为了防止发送给备RADIUS服务器的认证请求报文丢失,NAS可以按照预设规则 重发该报文,并在发送完毕后,删除保存的认证请求报文。同时,由于NAS已经接收到主 RADIUS服务器针对该认证请求报文的应答报文了,因此NAS接收到备RADIUS服务器对认证 请求报文的应答报文时,直接丢弃该应答报文即可。若NAS接收到主RADIUS服务器返回的认证拒绝报文,或者在预设时长内未收到主 RADIUS服务器的应答报文,则删除步骤302保存的认证请求报文。任一 RADIUS服务器在向NAS返回认证通过报文时,都会保存用户的上线信息包 括用户名、上线时刻等。步骤304 =NAS向主RADIUS服务器发送用户的计费开始报文,同时保存该计费开始 报文。步骤305 =NAS接收主RADIUS服务器返回的计费开始响应报文,则将步骤304保存 的计费开始报文分别发送给各备RADIUS服务器。由于计费开始报文是计费开始的标志,对计费过程非常重要,因此,这里,若NAS 在预设等待时长内未收到主RADIUS服务器返回的计费开始响应报文,则按照预设重发规 则,向主RADIUS服务器重复发送计费开始报文。同时,为了保证备RADIUS服务器能够收到 计费开始报文,NAS也可按照预设重发规则,向各备RADIUS服务器重复发送计费开始报文。或者,步骤304 305也可替换为NAS按照预设重发规则,同时向主RADIUS服务 器和所有备RADIUS服务器重复发送用户的计费开始报文。任一 RADIUS服务器接收到计费开始报文,会记录用户的计费信息如计费开始时刻等。步骤306 =NAS定时向主RADIUS服务器发送用户的计费更新报文,同时,将该计费 更新报文发送给各备RADIUS服务器。发送给主、备RADIUS服务器的计费更新报文的内容(包括Identifier)是完全相 同的,不同的是目的地址和端口信息。步骤307 对于每一个发出的计费更新报文,NAS判断是否在第一预定时长内接收 到任何一个RADIUS服务器返回的应答报文,若是,执行步骤308 ;否则,执行步骤309。任一 RADIUS服务器在返回应答报文时,都会更新用户的计费信息如计费时长等。步骤308 :NAS判断是否计费结束,若是,执行步骤312 ;否则,返回步骤306。步骤309 =NAS按照预设重发规则,重复向所有RADIUS服务器发送当前计费更新报 文。步骤310 重发完毕,NAS判断是否在第二预设时长内接收到任何一个RADIUS服务 器返回的应答报文,若是,返回步骤308;否则,执行步骤311。步骤311 =NAS确定与所有RADIUS服务器的连接都中断,则强制用户下线,转至步 马聚312ο当NAS与所有RADIUS服务器的连接都正常时,因为所有RADIUS服务器回应的应 答报文是相同的,NAS只会处理最先收到的应答报文,只要收到一个应答报文,就认为该计 费更新报文已经被回应,即,只要收到一个匹配计费更新报文中的Identifier的应答报 文,该应答报文无论是主RADIUS服务器还是备RADIUS服务器回应的,NAS都认为该计费更 新报文得到了回应,再收到具有同样Identifier的应答报文,NAS直接丢弃即可。计费更新报文的应答(Accounting-response)报文的结构如下Code 1字节,取值为5,表示报文类型为计费应答报文;Identifier 1字节,取值与对应的计费更新报文相同;Length 2字节,取值为固定值20 ;Authenticator 16个字节,为NAS和RADIUS服务器相互认证的字段;Authenticator = MD5(Code+Identifier+Length+RequestAuth+Attributes+Sec ret)其中,MD5为算法名称,Code、Identifier、Length为计费应答报文中的字段值; RequestAuth为对应的计费更新报文中的Authenticator字段值;一般地,计费应答报文是 不需要Attributes字段的,如果有Attribute字段,则由于所有RADIUS服务器的配置相 同,因此,所有RADIUS服务器针对同一计费更新报文的应答报文中的Attribute字段值相 同Jecret为NAS和所有RADIUS服务器的共享密钥。这样,所有RADIUS服务器针对同一 计费更新报文的应答报文中的Authenticator字段值相同可见,针对同一计费更新报文,不同RADIUS服务器回应的应答报文中的各字段值 是完全相同的。步骤312 =NAS向所有RADIUS服务器发送计费结束报文。由于计费结束报文是计费结束的标志,对计费过程也很重要,因此,这里,NAS可以 按照预设重发规则,向所有RADIUS服务器重复发送计费结束报文。本发明实施例中,发出计费更新报文后,NAS只要接收到与该计费更新报文的 Identifier匹配的任何一个应答报文,就认为该计费更新报文已被回应,即NAS可以不关 心应答报文是来自哪个RADIUS服务器的,其依据如下首先,RADIUS协议中未规定接收到的应答报文的源地址必须是对应请求报文的目 的地址。是否关心接收到的应答报文的源地址,有以下两种实现方式一、不关心应答报文的源地址,此时,NAS可将Identifier字段设置为全局共享, 即,NAS只设置一个全局Identifier计数器,且,RADIUS服务器同时向所有RADIUS服务器 发送计费更新报文,报文中的Identifier字段值相同,这样,每同时发送一次计费更新报
8文,更改一次Identifier计数器的值,且,NAS在匹配请求和应答时,只需考虑应答报文的 Identifier字段值,而不需考虑应答报文的源地址即=RADIUS服务器的地址。二、关心应答报文的源地址,此时,NAS可针对每个RADIUS服务器设置一个 Identifier计数器,向一个RADIUS服务器发送报文时,只更改该服务器对应的Identifier 计数器的值,且,由于每个RADIUS服务器的Identifier计数器是独立的,因此,在匹配请求 和应答时,还需考虑应答报文的源地址即=RADIUS服务器的地址。可见,由于步骤301中,NAS设置了一个全局Identif ier计数器,且,向所 有RADIUS服务器同时发送计费更新报文,报文中的Identifier字段值相同,这样,所 有RADIUS服务器回应的应答报文的Identifier字段值也相同,从而NAS只需要根据 Identifier字段值来匹配请求和应答报文,而不需要关心应答报文的源地址。从图3所示流程可以看出,由于NAS同时向所有RADIUS服务器发送计费更新报 文,报文中的Identifier字段值相同,这样,只要NAS与一个RADIUS服务器的连接正常, NAS就可以收到应答报文,从而NAS就不会强制用户下线,只有在NAS与所有RADIUS服务 器的连接都中断时,NAS才会强制用户下线,这样就保证了用户业务不会异常中断;同时, 只要NAS与一个RADIUS服务器的连接正常,用户的计费信息就不会丢失,从而保证了计费 可靠性。另外,由于所有RADIUS服务器上的用户配置相同,且NAS会向所有RADIUS服务器 发起用户认证过程,因此,所有RADIUS服务器都会对用户的上线和计费信息进行同步和备 份。图4为本发明实施例提供的NAS的结构示意图,如图4所示,该NAS至少对应两台 RADIUS服务器,其中一台为主RADIUS服务器,其它为备RADIUS服务器,且所有RADIUS服务 器上的用户配置相同,且NAS为所有RADIUS服务器设置同一个Identifier计数器,该NAS 主要包括认证模块41和计费模块42,其中认证模块41 发现一用户上线,向主RADIUS服务器发送针对该用户的认证请求报 文,并保存该认证请求报文,在接收到主RADIUS服务器的认证通过报文时,将保存的认证 请求报文发送给所有备RADIUS服务器,向计费模块42发送计费指示。计费模块42 接收认证模块41发来的计费指示,向主RADIUS服务器发送计费开 始报文,在收到主RADIUS服务器返回的应答报文后,向所有备RADIUS服务器发送计费开 始报文;定时向主RADIUS服务器和所有备RADIUS服务器同时发送计费更新报文,同时发 送的所有计费更新报文中的Identifier字段值相同,在预设时长内,NAS只要接收到任一 RADIUS服务器回应的应答报文,则认为计费正常;计费结束时,同时向主RADIUS服务器和 所有备RADIUS服务器发送相同的计费结束报文。计费模块42进一步用于,在向主RADIUS服务器和所有备RADIUS服务器同时发 送计费更新报文之后,若在第一预设时长内未接收到主RADIUS服务器、也未接收到任何备 RADIUS服务器返回的应答报文,则按照预设重发规则,向所有RADIUS服务器重复发送所述 计费更新报文,若在预设第二时长内,仍未接收到任何RADIUS服务器返回的应答报文,则 强制用户下线。以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的 精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种计费方法,其特征在于,为每个网络接入服务器NAS设置至少两台远程认证拨 号用户服务RADIUS服务器,其中一台为主RADIUS服务器,其它为备RADIUS服务器,且所有 RADIUS服务器上的用户配置相同,且NAS为所有RADIUS服务器设置同一个Identifier计 数器,该方法包括NAS发现用户上线,向主RADIUS服务器发送针对该用户的认证请求报文,并保存该认 证请求报文,在接收到主RADIUS服务器的认证通过报文时,将保存的认证请求报文发送给 所有备RADIUS服务器;NAS在向主RADIUS服务器发送针对该用户的计费更新报文的同时,向所有备RADIUS服 务器发送相同的计费更新报文,所有计费更新报文中的Identifier字段值相同,在预设时 长内,NAS只要接收到任一 RADIUS服务器回应的应答报文,则允许用户继续在线。
2.如权利要求1所述的方法,其特征在于,所述NAS在向主RADIUS服务器发送计费更 新报文的同时,向所有备RADIUS服务器发送相同的计费更新报文之后进一步包括NAS在第一预设时长内未接收到主RADIUS服务器、也未接收到任何备RADIUS服务器返 回的应答报文,则按照预设重发规则,向所有RADIUS服务器重复发送所述计费更新报文, 若在预设第二时长内,仍未接收到任何RADIUS服务器返回的应答报文,则强制用户下线。
3.如权利要求1所述的方法,其特征在于,所述在预设时长内,NAS只要接收到任一 RADIUS服务器回应的应答报文,则认为计费正常包括NAS在预设时长内,第一次接收到针对所述计费更新报文的应答报文,对该应答报文进 行处理,后续接收到针对所述计费更新报文的应答报文,直接将该应答报文丢弃。
4.如权利要求1所述的方法,其特征在于,所述将保存的认证请求报文发送给所有备 RADIUS服务器包括向所有备RADIUS服务器发送预设次数的认证请求报文。
5.如权利要求1所述的方法,其特征在于,所述NAS将保存的认证请求报文发送给所 有备RADIUS服务器之后、在向主RADIUS服务器发送计费更新报文的同时,向所有备RADIUS 服务器发送相同的计费更新报文之前进一步包括NAS向主RADIUS服务器发送计费开始报文,在接收到主RADIUS服务器返回的计费应答 报文后,按照预设重发规则,向所有备RADIUS服务器重复发送计费开始报文;或者进一步包括NAS按照预设重发规则,同时向主RADIUS服务器和所有备RADIUS服 务器重复发送计费开始报文。
6.如权利要求1所述的方法,其特征在于,所述NAS只要接收到任一RADIUS服务器回 应的应答报文,则允许用户继续在线之后进一步包括针对所述用户的计费结束,NAS按照预设重发规则,同时向主RADIUS服务器和所有备 RADIUS服务器重复发送计费结束报文。
7.一种NAS,其特征在于,该NAS至少对应两台RADIUS服务器,其中一台为主RADIUS 服务器,其它为备RADIUS服务器,且所有RADIUS服务器上的用户配置相同,且NAS为所有 RADIUS服务器设置同一个Identifier计数器,该NAS包括认证模块,发现用户上线,向主RADIUS服务器发送针对该用户的认证请求报文,并保 存该认证请求报文,在接收到主RADIUS服务器的认证通过报文时,将保存的认证请求报文 发送给所有备RADIUS服务器;计费模块,在向主RADIUS服务器发送计费更新报文的同时,向所有备RADIUS服务器发 送相同的计费更新报文,所有计费更新报文中的Identifier字段值相同,在预设时长内, NAS只要接收到任一 RADIUS服务器回应的应答报文,则认为计费正常。
8.如权利要求7所述的NAS,其特征在于,所述计费模块进一步用于,在向所有备 RADIUS服务器发送相同的计费更新报文之后,若在第一预设时长内未接收到主RADIUS服 务器、也未接收到任何备RADIUS服务器返回的应答报文,则按照预设重发规则,向所有 RADIUS服务器重复发送所述计费更新报文,若在预设第二时长内,仍未接收到任何RADIUS 服务器返回的应答报文,则强制用户下线。
9.如权利要求7或8所述的NAS,其特征在于,所述计费模块进一步用于,在计费开始 时,向主RADIUS服务器发送计费开始报文,在接收到主RADIUS服务器返回的计费应答报文 后,按照预设重发规则,向所有备RADIUS服务器重复发送计费开始报文;或者,在计费开始时,按照预设重发规则,同时向主RADIUS服务器和所有备RADIUS服 务器重复发送计费开始报文。
10.如权利要求7或8所述的NAS,其特征在于,所述计费模块进一步用于,在计费结束 时,按照预设重发规则,同时向主RADIUS服务器和所有备RADIUS服务器重复发送计费结束 报文。
全文摘要
本发明公开了计费方法及网络接入服务器。为每个NAS设置至少两台RADIUS服务器,所有RADIUS服务器的用户配置相同,NAS为所有RADIUS服务器设置同一Identifier计数器;NAS发现用户上线,向主RADIUS服务器发送针对该用户的认证请求报文,保存该认证请求报文,在收到主RADIUS服务器的认证通过报文时,将保存的认证请求报文发送给所有备RADIUS服务器;NAS在向主RADIUS服务器发送计费更新报文的同时,向所有备RADIUS服务器发送相同的计费更新报文,在预设时长内,NAS只要接收到任一RADIUS服务器回应的应答报文,则允许用户继续在线。本发明提高了用户业务和计费可靠性。
文档编号H04L29/06GK102148688SQ201010109558
公开日2011年8月10日 申请日期2010年2月9日 优先权日2010年2月9日
发明者雷鸣春 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1