`
wkh818
  • 浏览: 11666 次
  • 性别: Icon_minigender_1
  • 来自: 呼和浩特
社区版块
存档分类
最新评论

Radius rfc 3576 实现DM 功能(JAVA)

阅读更多
  近期公司做一个项目,动态将用户从BAS踢下线及动态修改用户带宽。
由于里面涉及到Radius 3576协议,找了一些资料 如下:
A:中断消息(DM)

   为了中断NAS上的用户会话,中断请求报文由RADIUS服务器发送。并丢弃所有关
   联会话的上下文。中断请求报文发送到UDP端口3799,and identifies the NAS

   +----------+   Disconnect-Request     +----------+
   |          |   <-------------------- |          |
   |    NAS   |                          | RADIUS |
   |          |   Disconnect-Response    | Server |
   |          |   ---------------------> |          |
   +----------+                          +----------+

   NAS回应由RADIUS服务器发送的中断请求报文,如果所有的关联会话上下文被丢
   弃并且用户会话不再连接,NAS回应Disconnect-ACK报文,如果NAS不能中断会
   话和丢弃所有的关联会话上下文,NAS则发送Disconnect-NAK报文。如果
   Disconnect-Request报文中包含值为“Authorize Only”的Service-Type属
   性,则NAS必须(MUST)回应Disconnect-NAK报文,Disconnect-ACK报文必须不
   能(MUST NOT)发送。如果Disconnect-Request报文中包含不支持的
   Service-Type属性,则NAS必须(MUST)回应Disconnect-NAK报文,该报文可以
   (MAY)包含值为“Unsupported Service”的Error-Cause属性。
   Disconnect-ACK报文可以(MAY)包含值为6(Admin-Reset)的
   Acct-Terminate-Cause属性(属性类型49,定义在[RFC2866])。

B:更改授权消息(CoA)

   CoA-Request报文包含了动态更改会话授权的信息。通常使用在更改数据过滤
   上。数据过滤可以是关于入口或者出口的,在额外的标识属性(标识入口或者
   出口的??)中发送,在3章节描述。使用的端口和报文格式(在2.3节描述)
   和Disconnect-Request消息相同。

   下列属性可以(MAY)在CoA-Request报文中发送:

   Filter-ID (11) - 表示应用在会话中的数据过滤列表的名称。

   +----------+      CoA-Request         +----------+
   |          | <--------------------   |          |
   |   NAS    |                          | RADIUS |
   |          |     CoA-Response         | Server |
   |          |   ---------------------> |          |
   +----------+                          +----------+

   NAS在回应由RADIUS服务器发送的CoA-Request报文时,如果NAS能够成功地更改
   用户会话的授权信息。NAS发送CoA-ACK报文。如果请求不成功时发送CoA-NAK报
   文。如果CoA-Request报文中包含值为“Authorize Only”的Service-Type属
   性,则NAS必须(MUST)回应CoA-NAK报文,CoA-ACK报文必须不能(MUST NOT)
   发送。如果CoA-Request报文中包含不支持的Service-Type属性,则NAS必须
   (MUST)回应CoA-NAK报文,该报文可以(MAY)包含值为“Unsupported
   Service”的Error-Cause属性。

需要注意的一点就是,在向NAS 发DM 40Radius包时,创建Authonticator 进行MD5一定要进行清零操作。

3576 Radius Package:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      | Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                         Authenticator                         |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Attributes ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-


example:
protected byte[] create2866RequestAuthonticator(String sharedSecret, int packetLength, byte[] attributes){
MessageDigest md5 = getMd5Digest();
byte [] requestAuthenticator = new byte [16];
              
        for (int i = 0; i < 16; i++){
            requestAuthenticator[i] = 0;
        }
        md5.reset();
       
        md5.update((byte)getPacketType());
        md5.update((byte)getPacketIdentifier());
        md5.update((byte)(packetLength >>);
        md5.update((byte)(packetLength & 0xff));
        md5.update(requestAuthenticator, 0, requestAuthenticator.length);
        md5.update(attributes, 0, attributes.length);
        md5.update(sharedSecret.getBytes());
                                                                                                                 
        return md5.digest();
     }

分享到:
评论

相关推荐

    RFC3576中文版

    RADIUS协议[RFC2865]中定义,不支持不请自来的数据包从RADIUS服务器发送到网络接入服务器(NAS)。 然而,有许多实例中,这是值得需要的进行会话的特征,而不需要变更的NAS发起了交流。例如,它可能是所需要的功能...

    radius协议-rfc2865

    radius协议rfc2865 Remote Authentication Dial In User Service (RADIUS) This document describes a protocol for carrying authentication, authorization, and configuration information between a Network ...

    RFC2865 RADIUS 中文

    本文档描述了一种在希望对它的连接进行认证的网络接入服务器与共享认证服务器之间传送认证、授权和配置信息的一种协议。 应用提示 这篇备忘录说明的是RADIUS协议。

    RFC2685 RADIUS 中文版

    radius协议的rfc中文版,翻译相当好,有需求的同志们可以下载

    java连接RFC综合例子,java调用sap例子,泛微E8,E9调用SAP RFC例子

    非常实用的例子,一看就会,最近使用java连接RFC,把这个例子保存,以后方便查看。

    RFC4568源码实现JAVA

    https://github.com/ibauersachs/sdes4j Implementation of RFC4568: Session Description Protocol (SDP) Security Descriptions for Media Streams for Java.

    RFC 2617中文版(HTTP Digest Authentication)

    RFC2617描述了HTTP Digest Authentication,这个是中文版,根据原英文版进行了校正,并重新排版。

    (RADIUS)rfc2139文档

    (RADIUS)rfc2139文档,是radius协议的英文原格式

    (RADIUS)rfc2138文档

    (RADIUS)rfc2138文档,是radius协议的英文原格式

    HTTP digest RFC2671规范 加密实现(JAVA)

    NULL 博文链接:https://fengjianrong.iteye.com/blog/2379764

    Java 调用 SAP RFC 案例

    Java 调用 SAP RFC 案例,附博客地址,SAP RFC开发一步一步 http://blog.csdn.net/iberr/article/details/40895453

    java调用sap rfc说明

    包括示例代码,代码说明,所需要的资源(sapjco.jar)文件。

    RFC中文文档-txt

    RFC1 主机软件 RFC2 主机软件 RFC3 文档规范 RFC4 网络时间表 RFC6 与 Bob Kahn 会话 ...RFC2618 RADIUS 身份验证客户端管理系统库(MIB) RFC2629 用XML 写I-Ds 和 RFC文档 RFC2633 S/多用途网际邮件扩充协议(MIME)...

    java使用jco调用rfc案例

    java使用jco调用rfc案例 如何传递不同类型参数 解析对应的返回格式

    RFC2617中文文档

    RFC2617中文 Word文档 很详细

    中文版RFC,共456

    RFC1 主机软件 RFC2 主机软件 RFC3 文档规范 RFC4 网络时间表 RFC6 与 Bob Kahn 会话 ...RFC2618 RADIUS 身份验证客户端管理系统库(MIB) RFC2629 用XML 写I-Ds 和 RFC文档 RFC2633 S/多用途网际邮件扩充协议(MIME)...

    RFC2866(RADIUS)(中文)

    该文档是标准的RFCradius协议-2866

    radius:rfc2865协议(radius协议)的部分实现

    属性厂商列表定义域radius/radiuscliradius的客户端实现radius/radiussrvradius服务端的实现radius/radiusfradius报文的快速解包实现 不进行某些rfc2865规定的校验radius/radiusiptv基于radius协议的iptv协议实现...

    radiusserver:RFC 2865 子集的 Java 实现

    半径服务器 子集java 实现。 用 Eclipse 开发。 怎么跑? ant run

    SIP.rar_RFC3621SIP _java sip _sIP-C_sip

    本文将按照RFC3261逐步的介绍SIP协议,介绍了c和C++语言的实现,分析了osip库的使用和实现。 第一章 概述 一 概述 SIP协议是一个基于应用层的会话控制协议。它可以创建、修改、终止多媒体会话(会议),也可以...

Global site tag (gtag.js) - Google Analytics