RADIUS认证、授权和计费
RADIUS概述
AAA可以通过多种协议来实现,在实际应用中,最常使用RADIUS协议。
RADIUS是一种分布式的、客户端/服务器结构的信息交互协议,能保护网络不受未授权访问的干扰,常应用在既要求较高安全性、又允许远程用户访问的各种网络环境中。该协议定义了基于UDP(User Datagram Protocol)的RADIUS报文格式及其传输机制,并规定目的UDP端口号1812、1813分别作为默认的认证、计费端口号。
RADIUS最初仅是针对拨号用户的AAA协议,后来随着用户接入方式的多样化发展,RADIUS也适应多种用户接入方式,如以太网接入等。它通过认证授权来提供接入服务,通过计费来收集、记录用户对网络资源的使用。
RADIUS协议的主要特征如下:
客户端/服务器模式
安全的消息交互机制
良好的扩展性
客户端/服务器模式
RADIUS客户端
一般位于网络接入服务器NAS(Network Access Server)上,可以遍布整个网络,负责传输用户信息到指定的RADIUS服务器,然后根据从服务器返回的信息进行相应处理(如接受/拒绝用户接入)。
设备作为RADIUS协议的客户端,实现以下功能:
支持标准RADIUS协议及扩充属性,包括RFC2865、RFC2866。
- 支持华为RADIUS扩展属性。
对RADIUS服务器状态探测功能。
计费结束请求报文的本地缓存重传功能。
RADIUS服务器主备或负载分担功能。
RADIUS服务器
一般运行在中心计算机或工作站上,维护相关的用户认证和网络服务访问信息,负责接收用户连接请求并认证用户,然后给客户端返回所有需要的信息(如接受/拒绝认证请求)。RADIUS服务器通常要维护三个数据库,如图1-6所示。
- Users:用于存储用户信息(如用户名、密码以及使用的协议、IP地址等配置信息)。
- Clients:用于存储RADIUS客户端的信息(如共享密钥、IP地址等)。
- Dictionary:用于存储RADIUS协议中的属性和属性值含义的信息。
安全的消息交互机制
RADIUS客户端和RADIUS服务器之间认证消息的交互是通过共享密钥的参与来完成的。共享密钥是一个带外传输的、客户端和服务器都知道的字符串,不需要单独进行网络传输。RADIUS报文中有一个16字节的验证字字段,它包含了对整个报文的数字签名数据,该签名数据是在共享密钥的参与下利用MD5算法计算得出。收到RADIUS报文的一方要验证该签名的正确性,如果报文的签名不正确,则丢弃它。通过这种机制,保证了RADIUS客户端和RADIUS服务器之间信息交互的安全性。另外,为防止用户密码在不安全的网络上传递时被窃取,在RADIUS报文传输过程中还利用共享密钥对用户密码进行了加密。
良好的扩展性
RADIUS报文是由报文头和一定数目的属性(Attribute)构成,新属性的加入不会破坏协议的原有实现。
RADIUS报文介绍
RADIUS报文格式
RADIUS协议是基于UDP协议的,RADIUS报文格式如图1-7所示。
- Code:长度为1个字节,用来说明RADIUS报文的类型。不同RADIUS报文的Code值不相同。例如,Code为1时表示Access-Request报文,Code为2时表示Access-Accept报文。
- Identifier:长度为1个字节,用来匹配请求报文和响应报文,以及检测在一段时间内重发的请求报文。RADIUS客户端发送请求报文后,RADIUS服务器返回的响应报文中的Identifier值应与请求报文中的Identifier值相同。
- Length:长度为2个字节,用来指定RADIUS报文的长度。超过Length取值的字节将作为填充字符而忽略。如果接收到的报文的实际长度小于Length的取值,则该报文会被丢弃。
- Authenticator:长度为16个字节,用来验证RADIUS服务器的响应报文,同时还用于用户密码的加密。
Attribute:即RADIUS属性字段,长度不定,为报文的内容主体,用来携带专门的认证、授权和计费信息,提供请求和响应报文的配置细节。Attribute可以包括多个RADIUS属性,每一个RADIUS属性都采用(Type、Length、Value)三元组的结构来表示,具体请参见RADIUS属性。
- 类型(Type):长度为1个字节,取值为1~255,用于表示RADIUS属性的编号。
- 长度(Length):长度为1个字节,表示该RADIUS属性(包括类型、长度和属性值)的长度,单位为字节。
- 属性值(Value):最大长度为253字节,表示该RADIUS属性的信息,其格式和内容由类型和长度决定。
RADIUS报文类型
目前RADIUS定义了十六种报文类型,其中认证报文类型如表1-5所示,计费报文类型如表1-6所示,RADIUS CoA/DM报文请参见RADIUS CoA/DM。
报文名称 |
说明 |
---|---|
Access-Request |
认证请求报文,是RADIUS报文交互过程中的第一个报文,用来携带用户的认证信息(例如:用户名、密码等)。认证请求报文由RADIUS客户端发送给RADIUS服务器,RADIUS服务器根据该报文中携带的用户信息判断是否允许接入。 |
Access-Accept |
认证接受报文,是RADIUS服务器对RADIUS客户端发送的Access-Request报文的接受响应报文。如果Access-Request报文中的所有属性都可以接受(即认证通过),则发送该类型报文。RADIUS客户端收到此报文后,用户才能认证通过并被赋予相应的权限。 |
Access-Reject |
认证拒绝报文,是RADIUS服务器对RADIUS客户端的Access-Request报文的拒绝响应报文。如果Access-Request报文中的任何一个属性不可接受(即认证失败),则RADIUS服务器返回Access-Reject报文,用户认证失败。 |
Access-Challenge |
认证挑战报文。EAP中继认证时,RADIUS服务器接收到Access-Request报文中携带的用户名信息后,会随机生成一个MD5挑战字,同时将此挑战字通过Access-Challenge报文发送给用户。用户使用该挑战字对用户密码进行加密处理后,将新的用户密码信息通过Access-Request报文发送给RADIUS服务器。RADIUS服务器将收到的已加密的密码信息和本地经过加密运算后的密码信息进行对比,如果相同,则该用户为合法用户。 |
报文名称 |
说明 |
---|---|
Accounting-Request(Start) |
计费开始请求报文。如果RADIUS客户端使用RADIUS模式进行计费,RADIUS客户端会在用户开始访问网络资源时,向RADIUS服务器发送计费开始请求报文。 |
Accounting-Response(Start) |
计费开始响应报文。RADIUS服务器接收并成功记录计费开始请求报文后,需要回应一个计费开始响应报文。 |
Accounting-Request(Interim-update) |
实时计费请求报文。为避免RADIUS服务器无法收到计费结束请求报文而继续对该用户计费,可以在RADIUS客户端上配置实时计费功能。RADIUS客户端定时向RADIUS服务器发送实时计费请求报文,减少计费误差。 |
Accounting-Response(Interim-update) |
实时计费响应报文。RADIUS服务器接收并成功记录实时计费请求报文后,需要回应一个实时计费响应报文。 |
Accounting-Request(Stop) |
计费结束请求报文。当用户断开连接时(连接也可以由NAS断开),RADIUS客户端向RADIUS服务器发送计费结束请求报文,其中包括用户上网所使用的网络资源的统计信息(上网时长、进/出的字节数等),请求RADIUS服务器停止计费。 |
Accounting-Response(Stop) |
计费结束响应报文。RADIUS服务器接收计费停止请求报文后,需要回应一个计费停止响应报文。 |
RADIUS认证、授权、计费流程
设备作为RADIUS客户端,负责收集用户信息(例如:用户名、密码等),并将这些信息发送到RADIUS服务器。RADIUS服务器则根据这些信息完成用户身份认证以及认证通过后的用户授权和计费。用户、RADIUS客户端和RADIUS服务器之间的交互流程如图1-8所示。
- 当用户接入网络时,用户发起连接请求,向RADIUS客户端(即设备)发送用户名和密码。
- RADIUS客户端向RADIUS服务器发送包含用户名和密码信息的认证请求报文。
RADIUS服务器对用户身份的合法性进行检验:
- 如果用户身份合法,RADIUS服务器向RADIUS客户端返回认证接受报文,允许用户进行下一步动作。由于RADIUS协议合并了认证和授权的过程,因此认证接受报文中也包含了用户的授权信息。
- 如果用户身份不合法,RADIUS服务器向RADIUS客户端返回认证拒绝报文,拒绝用户访问接入网络。
- RADIUS客户端通知用户认证是否成功。
- RADIUS客户端根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则RADIUS客户端向RADIUS服务器发送计费开始请求报文。
- RADIUS服务器返回计费开始响应报文,并开始计费。
- 用户开始访问网络资源。
- (可选)在使能实时计费功能的情况下,RADIUS客户端会定时向RADIUS服务器发送实时计费请求报文,以避免因付费用户异常下线导致的不合理计费。
- (可选)RADIUS服务器返回实时计费响应报文,并实时计费。
- 用户发起下线请求,请求停止访问网络资源。
- RADIUS客户端向RADIUS服务器提交计费结束请求报文。
- RADIUS服务器返回计费结束响应报文,并停止计费。
- RADIUS客户端通知用户访问结束,用户结束访问网络资源。
RADIUS报文重传机制
用户认证过程中,设备会发送认证请求报文到RADIUS服务器。为避免由于网络故障、时延等原因导致设备无法收到服务器的回应报文,设备在发送认证请求报文到服务器时具有超时重传超时机制,重传次数和重传间隔通过定时器进行控制。
如图1-9所示,以802.1X认证、客户端主动发起认证为例,设备收到包含客户端用户名信息的EAP报文(EAP-Response/Identity)之后,将EAP报文封装在RADIUS认证请求报文(RADIUS Access-Request)中发送给RADIUS服务器处理,同时开启重传定时器。重传定时器由重传间隔时间和重传次数构成,如果达到重传间隔时间,设备未收到RADIUS服务器的回应报文,会再次发送认证请求报文。
- 收到RADIUS服务器的回应报文。收到RADIUS服务器的回应报文后,设备会停止重传,此时设备标记RADIUS服务器的状态为Up。
- 探测到RADIUS服务器的状态为Down。设备将RADIUS服务器的状态置为Down后:
- 如果达到最大重传次数,则停止重传,RADIUS服务器的状态为Down。
- 如果还没有达到最大重传次数,设备会再重传一次认证请求报文到RADIUS服务器。相当于给状态为Down的服务器一次机会。如果收到RADIUS服务器的回应报文,停止重传,并将RADIUS服务器的状态恢复为Up;如果未收到RADIUS服务器的回应报文,也停止重传,RADIUS服务器的状态为Down。
- 达到最大重传次数。达到最大重传次数后,设备会停止重传,此时:
- 如果收到RADIUS服务器的回应报文,此时设备标记RADIUS服务器的状态为Up。
- 如果已经探测到RADIUS服务器的状态为Down,设备将服务器的状态置为Down。
- 如果没收到RADIUS服务器的回应报文也没有探测到服务器的状态为Down,此时,设备不会切换服务器的状态,服务器实际上没有响应。
服务器无响应不等同于Down状态,只有满足置Down的条件,设备才会将服务器标记为Down状态。
RADIUS服务器的状态介绍和置Down的条件请参见RADIUS服务器状态探测。
RADIUS报文重传是针对一个服务器而言的,如果RADIUS服务器模板中配置了多个服务器,整体重传时间取决于重传间隔、重传次数、RADIUS服务器的状态、服务器的个数以及选择服务器的算法。
命令 |
说明 |
---|---|
radius-server retransmit retry-times |
重传次数,默认值为3。 |
radius-server timeout time-value |
重传间隔,默认值为5秒。 |
RADIUS服务器选择机制
- RADIUS服务器主备算法(缺省配置)
- RADIUS服务器负载均衡算法
另外,RADIUS服务器的运算法则可以配置为基于单个用户的也可以配置为基于报文的。如果配置为基于单个用户的运算法则,认证阶段会保存认证服务器的信息,如果认证服务器同时也是计费服务器,则计费阶段优先向该服务器发送计费请求;如果配置为基于报文的运算法则,认证阶段不会保存认证服务器的信息,在计费阶段会重新选择计费服务器,可能存在同一个用户的认证和计费不在同一个服务器上的问题。
RADIUS服务器主备算法
主备顺序根据配置RADIUS认证服务器或RADIUS计费服务器时的权重决定,权重值较大者为主,如果权重值相同,则先配置的服务器为主。如图1-10所示,在所有状态为Up的服务器中,优先向主服务器发送认证或计费报文,如果主服务器没有回应,则向备服务器发送。
RADIUS服务器负载均衡算法
选择负载均衡算法后,设备在向服务器发送认证或计费报文时,会根据配置RADIUS认证服务器或RADIUS计费服务器时的权重来分配报文发送的服务器。如图1-11所示,RADIUS服务器1的状态为Up、权重为80,RADIUS服务器2的状态为Up、权重为20。则设备向RADIUS服务器1发送报文的概率为80/(80+20)=80%,设备向RADIUS服务器2发送报文的概率20/(80+20)=20%。
如果设备在发送报文的过程中,所有状态为Up的服务器均没有回应,此后,设备在原先为Down状态的服务器(此前没有向这部分服务器发送认证或计费报文)中,按照权重值,再发送一次报文。如果设备没有收到任何服务器的回应报文,则跳转到备份认证方式,比如本地认证。备份方式需要在认证方案中配置,如果未配置,则本次认证流程结束。
RADIUS服务器状态探测
RADIUS服务器的可用性和可维护性是用户接入认证的基本条件,当设备与RADIUS服务器之间无法通信时,RADIUS服务器不能对用户进行认证和授权。为了解决该问题,设备支持在RADIUS服务器Down时的用户逃生功能,即RADIUS服务器Down后,用户无法获取服务器授权时,仍能够具有一定的网络访问权限。
但是,RADIUS服务器Down时的用户逃生功能必须在设备将RADIUS服务器的状态标记为Down后才能启用。如果RADIUS服务器的状态没有标记为Down、设备又不能与RADIUS服务器正常通信,这会导致用户既获取不到服务器授权也不能进行逃生,进而造成用户没有任何网络访问权限。所以,设备必须及时感知到RADIUS服务器的状态,在RADIUS服务器状态为Down时,使用户能够获取逃生权限;在RADIUS服务器状态恢复Up后,用户退出逃生权限,进行重认证。
RADIUS服务器的状态
设备将RADIUS服务器的状态分为三种,三种状态的含义及出现的场景如下表所示。
状态 |
RADIUS服务器是否可用 |
出现该状态的场景 |
---|---|---|
Up |
RADIUS服务器可用 |
|
Down |
RADIUS服务器不可用 |
满足将RADIUS服务器的状态标记为Down的条件 |
Force-up(强制Up) |
在没有可用的RADIUS服务器时,会选择Force-up状态的服务器 |
dead-time定时器超时 |
RADIUS服务器的初始状态被标记为Up。在收到RADIUS认证请求报文、并且满足将RADIUS服务器的状态标记为Down的条件时,RADIUS服务器的状态被切换为Down。触发状态切换的RADIUS认证请求报文可以是用户认证过程中发送的,也可以是管理员构造的,比如执行test-aaa命令时发送的测试报文或者自动探测时发送的探测报文。
- dead-time定时器超时,将RADIUS服务器的状态由Down切换为Force-up:设备在将RADIUS服务器的状态标记为Down后就会启动dead-time定时器,该定时器定义了Down状态可持续的时长。定时器超时后,设备将服务器的状态标记为Force-up。之后,如果有新用户需要通过RADIUS方式进行认证,在没有可用的RADIUS服务器的情况下,设备会尝试和Force-up状态的服务器重新建立连接。
- 设备收到RADIUS服务器的报文,将RADIUS服务器的状态由Down切换为Up。例如,配置自动探测后,设备收到RADIUS服务器的响应报文。
将RADIUS服务器的状态标记为Down的条件
能否将一个RADIUS服务器的状态标记为Down,与以下因素有关:
- RADIUS服务器最大无响应时长(max-unresponsive-interval的取值)
- RADIUS请求报文发送的次数
- RADIUS请求报文发送的时间间隔
- RADIUS服务器的探测周期
- RADIUS服务器探测周期循环次数
- RADIUS服务器在每个探测周期内连续无响应最大次数
在RADIUS服务器状态探测过程中,将RADIUS服务器标记为Down状态。
系统启动后,RADIUS服务器状态探测定时器开始运行。从设备发送第一个RADIUS认证请求报文开始计算,如果设备一直没有收到RADIUS服务器的报文,并且在一个探测周期内满足条件:未收到RADIUS服务器报文的次数(n)大于或等于连续无响应的最大次数(dead-count),则记录一次通讯中断。在持续没有收到RADIUS服务器报文的情况下,探测周期循环几次,就在第几次记录通讯中断时将RADIUS服务器标记为Down。
如果某个探测周期未记录通讯中断,则清除之前所有的通讯中断的记录。
将长时间无响应的RADIUS服务器标记为Down状态。
在用户接入频率较低、设备收到用户认证请求报文较少、RADIUS服务器状态探测过程中将RADIUS服务器标记为Down的条件无法满足的情况下,连续两个无响应的认证请求报文的时间间隔大于max-unresponsive-interval时,RADIUS服务器被标记为Down,此机制能够确保用户获取逃生授权。
如果RADIUS服务器模板中配置了多个服务器,整体状态探测的时间与服务器的个数以及选择服务器的算法有关。当用户终端使用客户端软件进行认证时,如果终端客户端软件的超时等待时间小于所有整体状态探测时间的总和,可能导致终端客户端软件反复拨号而无法接入网络;另外如果配置了用户逃生,为了使用户能够正常加入逃生权限,也需要整体状态探测时间的总和小于终端客户端软件的超时等待时间。
相关命令请参见下表。
命令 |
说明 |
---|---|
radius-server { dead-interval dead-interval | dead-count dead-count | detect-cycle detect-cycle } |
在RADIUS服务器状态探测过程中,将RADIUS服务器的状态标记为Down的条件。
|
radius-server max-unresponsive-interval interval |
RADIUS服务器无响应的最大时长。默认为300秒。 连续两个无响应的认证请求报文的时间间隔大于max-unresponsive-interval时,则将RADIUS服务器的状态标记为Down。 |
radius-server dead-time dead-time |
RADIUS服务器Down状态可持续的时长。 dead-time:设备将RADIUS服务器的状态标记为Down后,等待设置的dead-time时间,设备会将服务器的状态设置Force-up。默认值为5分钟。 |
自动探测
RADIUS服务器的状态被标记为Down后,通过自动探测功能可以检测RADIUS服务器的可达性。
自动探测功能需要手动开启。开启自动状态探测功能只需在设备的RADIUS服务器模板视图下配置自动探测用户名和密码,在RADIUS服务器上不需要配置此自动探测用户名和密码。认证无需成功,设备能收到认证失败响应报文就能证明RADIUS服务器是正常工作的。
服务器的状态 |
是否支持自动探测 |
何时发送自动探测报文 |
服务器状态切换的条件 |
---|---|---|---|
Down状态 |
缺省支持 |
自动探测周期过后发送 |
在探测报文的超时等待时间内,如果设备收到了RADIUS服务器的报文,会将RADIUS服务器的状态标记为Up;反之,则保持RADIUS服务器的状态为Down。 |
Up状态 |
通过命令行radius-server detect-server up-server interval开启 |
自动探测周期过后发送 |
满足将RADIUS服务器的状态标记为Down的条件,则将RADIUS服务器的状态标记为Down;反之,则保持RADIUS服务器的状态为Up。 |
Force-up状态 |
缺省支持 |
立即发送 |
在超时等待时间内,如果收到RADIUS服务器的报文,设备会将RADIUS服务器的状态标记为Up;反之,则将RADIUS服务器的状态标记为Down。 |
在大型企业网络中,不建议开启对Up状态的RADIUS服务器进行自动探测的功能。这是由于如果多个NAS设备均开启该功能,RADIUS服务器在处理用户认证请求报文的同时还会收到大量周期性的探测报文,会降低RADIUS服务器的处理性能。
配置自动探测功能(命令radius-server testuser)后,dead-time定时器(命令radius-server dead-time)不生效。
自动探测相关命令请参见下表。
命令 |
说明 |
---|---|
radius-server testuser username user-name password cipher password |
开启自动探测功能:
|
radius-server detect-server interval interval |
状态为Down的RADIUS服务器的自动探测周期,默认为60秒。 |
radius-server detect-server up-server interval interval |
开启状态为Up的RADIUS服务器的自动探测功能并配置自动探测周期。探测周期默认为0秒,即不对状态为Up的RADIUS服务器进行自动探测。 |
radius-server detect-server timeout time-value |
自动探测报文的超时等待时间,默认为3秒。 |
将RADIUS服务器标记为Down后的处理
设备将RADIUS服务器的状态标记为Down之后,通过配置逃生功能,使用户能够进入逃生授权。设备探测到RADIUS服务器状态恢复为Up后,通过配置重认证功能,使用户重认证获取RADIUS服务器授权,如图1-13所示。
RADIUS服务器的状态恢复为Up后,对于802.1X认证用户和MAC认证用户,用户会退出逃生授权并进行重认证;对于Portal认证用户,用户会进入预连接授权,在用户访问网络资源时,才会触发重定向到Portal服务器进行认证。
配置自动探测功能(命令radius-server testuser)后,dead-time定时器(命令radius-server dead-time)不生效。
RADIUS服务器Down时逃生权限的配置命令以及重认证功能相关命令如下表所示。
命令 |
说明 |
---|---|
authentication event authen-server-down action authorize { vlan vlan-id | service-scheme service-scheme-name | ucl-group ucl-group-name } [ response-fail ] |
配置RADIUS服务器Down时的逃生功能。 |
authentication event authen-server-up action re-authen |
配置RADIUS服务器恢复为Up时,设备对逃生状态的用户进行重认证。 |
RADIUS CoA/DM
RADIUS CoA/DM报文
CoA/DM报文类型如表1-7所示。
报文名称 |
说明 |
---|---|
CoA-Request |
动态授权请求报文。当管理员需要更改某个在线用户的权限时(例如,管理员不希望用户访问某个网站),可以通过RADIUS服务器发送一个动态授权请求报文给RADIUS客户端,使RADIUS客户端修改在线用户的权限。 |
CoA-ACK |
动态授权请求接受报文。如果RADIUS客户端成功更改了用户的权限,则RADIUS客户端回应动态授权请求接受报文给RADIUS服务器。 |
CoA-NAK |
动态授权请求拒绝报文。如果RADIUS客户端未成功更改用户的权限,则RADIUS客户端回应动态授权请求拒绝报文给RADIUS服务器。 |
DM-Request |
用户离线请求报文。当管理员需要让某个在线的用户下线时,可以通过RADIUS服务器发送一个用户离线请求报文给RADIUS客户端,使RADIUS客户端终结用户的连接。 |
DM-ACK |
用户离线请求接受报文。如果RADIUS客户端已经切断了用户的连接,则RADIUS客户端回应用户离线请求接受报文给RADIUS服务器。 |
DM-NAK |
用户离线请求拒绝报文。如果RADIUS客户端无法切断用户的连接,则RADIUS客户端回应用户离线请求拒绝报文给RADIUS服务器。 |
交互流程
CoA(Change of Authorization)是指用户认证成功后,管理员可以通过RADIUS协议来修改在线用户的权限或对其进行重认证。CoA的报文交互流程如图1-14所示。
- RADIUS服务器根据业务信息,向设备发送CoA-Request报文,请求更改用户的授权信息。该报文中可以包括ACL规则等授权。
- 设备收到CoA-Request报文后,与设备上的用户信息匹配来识别用户。如果匹配成功,则更改用户的授权信息;如果匹配失败,则保持用户原有授权信息。
- 设备回应CoA-ACK/NAK报文。
- 如果更改成功,则设备向RADIUS服务器回应CoA-ACK报文。
- 如果更改失败,则设备向RADIUS服务器回应CoA-NAK报文。
DM(Disconnect Message)是指用户下线报文,即由RADIUS服务器主动发起的强制用户下线的报文。DM的报文交互流程如图1-15所示。
- 管理员在RADIUS服务器上强制用户下线,RADIUS服务器向设备发送DM-Request报文,请求用户下线。
- 设备收到DM-Request报文后,与设备上的用户信息匹配来识别用户。如果匹配成功,则通知用户下线;如果匹配失败,则用户保持在线。
设备回应DM-ACK/NAK报文。
- 如果用户成功下线,设备给RADIUS服务器回应DM-ACK报文。
- 如果用户未下线,设备给RADIUS服务器回应DM-NAK报文。
与用户上线授权或用户主动下线过程相比,CoA/DM的特点是请求报文是由服务器发送的,回应报文是由设备发送的,成功则回应ACK报文、失败则回应NAK报文。
会话识别
NAS设备为用户提供的每一个服务构成一个会话,会话的开头定义为首次提供服务的点,会话的结束定义为服务结束点。
- RADIUS标准属性:User-Name(1)
- RADIUS标准属性:Acct-Session-ID(44)
- RADIUS标准属性:Framed-IP-Address(8)
- RADIUS标准属性:Calling-Station-Id(31)
匹配的方式包括以下两种:
any方式
其中一个属性与设备上的用户信息进行匹配检查。识别用户所用的RADIUS属性优先级为:Acct-Session-ID(4) > Calling-Station-Id(31) > Framed-IP-Address(8)。按照优先级在请求报文中查找属性,优先找到哪个属性就用哪个属性与设备上的用户信息进行匹配,匹配成功时,设备回应ACK报文,否则回应NAK报文。
all方式
所有的属性与设备上的用户信息进行匹配检查。识别用户所用的RADIUS属性包括:Acct-Session-ID(4)、Calling-Station-Id(31)、Framed-IP-Address(8)和User-Name(1)。请求报文中以上属性都要与设备上的用户信息进行匹配,全部匹配成功时,设备回应ACK报文,否则回应NAK报文。
错误码说明
RADIUS服务器的CoA-Request报文或DM-Request报文与设备上的用户信息匹配失败时,设备会在回应的CoA-NAK报文或DM-NAK报文中通过错误码描述失败的原因。错误码介绍请参见表1-8和表1-9。
名称 |
数值 |
说明 |
---|---|---|
RD_DM_ERRCODE_MISSING_ATTRIBUTE |
402 |
请求报文中缺少关键属性,导致RADIUS属性完整性检查失败 |
RD_DM_ERRCODE_INVALID_REQUEST |
404 |
对请求报文进行属性解析时,解析失败 |
RD_DM_ERRCODE_INVALID_ATTRIBUTE_VALUE |
407 |
请求报文中包含不支持或不存在的属性,导致属性检查失败。 授权检查的内容包括:VLAN、ACL、CAR、重定向ACL编号以及基于接口的认证用户不支持授权华为RADIUS扩展属性RD_hw_URL_Flag和RD_hw_Portal_URL 可能出现的错误包括:
|
RD_DM_ERRCODE_SESSION_CONTEXT_NOT_FOUND |
503 |
会话请求失败。包括:
|
RD_DM_ERRCODE_RESOURCES_UNAVAILABLE |
506 |
其他授权失败的情况使用该错误码 |
RADIUS属性
RADIUS标准属性
协议RFC2865、RFC2866和RFC3576标准规定了RADIUS标准属性,所有主流设备厂商基本上都支持。具体请参见表1-10。
属性编号 |
属性名 |
属性类型 |
属性说明 |
---|---|---|---|
1 |
User-Name |
string |
需要进行认证的用户名。可以采用带域名的“用户名@域名”格式,也可以采用不带域名的“用户名”格式。 |
2 |
User-Password |
string |
需要进行认证的用户密码,仅对PAP(Password Authentication Protocol)认证有效。 |
3 |
CHAP-Password |
string |
需要进行认证的用户密码,仅对CHAP(Challenge Handshake Authentication Protocol)认证有效。 |
4 |
NAS-IP-Address |
ipaddr |
认证请求报文中携带的NAS的IP(Internet Protocol)地址。缺省情况下,属性值为NAS发送认证请求报文的源IP地址。可以通过命令radius-attribute nas-ip { ip-address | ap-info }修改属性值为NAS上指定的IP地址或者AP的IP地址。 |
5 |
NAS-Port |
integer |
用户接入的物理端口号,可根据实际需要转换成不同格式:
|
6 |
Service-Type |
integer |
用户申请认证的业务类型:
|
7 |
Framed-Protocol |
integer |
用户Frame类型业务的封装协议:
|
8 |
Framed-IP-Address |
ipaddr |
用户的IP地址。 |
11 |
Filter-Id |
string |
UCL组名、用户组名称或者用户的IPv4 ACL(Access Control List)号。 说明:
|
12 |
Framed-Mtu |
integer |
用户与NAS之间数据链路的MTU值。例如在802.1X的EAP(Extensible Authentication Protocol)方式认证中,NAS通过Framed-Mtu值指示Server发送EAP报文的最大长度,防止EAP报文大于数据链路MTU导致的报文丢失。 |
14 |
Login-IP-Host |
ipaddr |
管理员用户的IP地址:
|
15 |
Login-Service |
integer |
管理员用户可以使用的服务类型:
说明:
一个属性中可以包含多个服务类型。 |
18 |
Reply-Message |
string |
认证成功或拒绝消息:
|
19 |
Callback-Number |
string |
认证服务器回应的可以显示给用户的信息,例如移动电话号码等。 |
24 |
State |
string |
如果RADIUS服务器发送给设备的认证挑战报文中包含该属性值,则设备在后续的认证请求报文中必须包含相同的值。 |
25 |
Class |
string |
如果RADIUS服务器发送给NAS设备的认证接受报文中包含该属性值,则NAS在后续发送的所有计费请求报文中必须包含相同的值。 |
26 |
Vendor-Specific |
string |
厂商自定义属性,具体请参见表1-11。一个报文中可以有一个或多个私有属性,每个私有属性中可以有一个或多个子属性。 |
27 |
Session-Timeout |
integer |
在认证接受报文中,该属性表示为用户提供服务的剩余时间,单位为秒。 在认证挑战报文中,该属性表示EAP认证用户的重认证时长。 该属性的取值为0时:
说明:
该属性只对802.1X认证、MAC认证、Portal认证和PPPoE认证用户生效。 RADIUS服务器只下发该属性时,29号属性Termination-Action的默认值设置为0(强制用户下线)。 |
28 |
Idle-Timeout |
integer |
会话结束之前,允许用户持续空闲的最大时间,即用户的闲置切断时间,以秒为单位。 说明:
|
29 |
Termination-Action |
integer |
用户的业务终止方式:
说明:
该属性只对802.1X认证和MAC认证用户生效。认证点配置在VLANIF接口上的MAC认证用户不支持授权Termination-Action=1。 RADIUS服务器只下发该属性时,27号属性Session-Timeout的默认值设置为3600s(802.1X认证用户)或1800s(MAC认证用户)。 |
30 |
Called-Station-Id |
string |
NAS设备的号码信息。
|
31 |
Calling-Station-Id |
string |
客户端的号码信息,一般为用户的MAC地址。 |
32 |
NAS-Identifier |
string |
NAS设备标识。缺省情况下,属性值为NAS设备的主机名。可以通过命令radius-server nas-identifier-format { hostname | vlan-id | ap-info }修改属性值为用户的VLAN ID或AP的MAC地址。 |
40 |
Acct-Status-Type |
integer |
计费请求报文Accounting-Request的类型:
|
41 |
Acct-Delay-Time |
integer |
用于上报发送该计费报文花费的时间,单位为秒(不包括网络传输时间)。 |
42 |
Acct-Input-Octets |
integer |
对应存储上行流量数据结构的低32位,表示上行流量字节数。与RADIUS属性52(Acct-Input-Gigawords)共同组成上行流量。 流量单位必须和RADIUS服务器保持一致,可以为Byte,KByte,MByte或GByte。可以执行命令radius-server traffic-unit针对每一个RADIUS服务器设置具体单位。缺省情况下,设备以字节(Byte)作为RADIUS流量单位。 说明:
仅S5720-HI、S5730-HI、S6720-HI、S5731-H-K、S5731-H、S5731S-H、S5731-S、S5731S-S、S5732-H、S5732-H-K、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S支持该属性。 |
43 |
Acct-Output-Octets |
integer |
对应存储下行流量数据结构的低32位,表示下行流量字节数。与RADIUS属性53(Acct-Output-Gigawords)共同组成下行流量。 流量单位必须和RADIUS服务器保持一致,可以为Byte,KByte,MByte或GByte。可以执行命令radius-server traffic-unit针对每一个RADIUS服务器设置具体单位。缺省情况下,设备以字节(Byte)作为RADIUS流量单位。 |
44 |
Acct-Session-Id |
string |
计费ID,同一个连接的开始计费、实时计费和停止计费报文的连接的计费ID必须相同。 计费ID格式为:7位主机名+2位槽号+1位子卡号+2位端口号+4位外层VLAN+5位内层VLAN+6位CPU(Central Processing Unit)Tick+2位用户ID的前缀+5位用户ID。 |
45 |
Acct-Authentic |
integer |
用户的认证模式:
|
46 |
Acct-Session-Time |
integer |
用户的在线时长,以秒为单位。 说明:
当用户上线后,如果管理员对设备的系统时间进行了更改,设备计算出的用户在线时长可能存在误差。 |
47 |
Acct-Input-Packets |
integer |
上行报文的数目。 说明:
仅S5720-HI、S5730-HI、S6720-HI、S5731-H-K、S5731-H、S5731S-H、S5731-S、S5731S-S、S5732-H、S5732-H-K、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S支持该属性。 |
48 |
Acct-Output-Packets |
integer |
下行报文的数目。 |
49 |
Acct-Terminate-Cause |
string |
用户连接中断的原因:
|
52 |
Acct-Input-Gigawords |
integer |
对应存储上行流量数据结构的高32位,表示上行的流量字节数是4G(即2^32)字节的多少倍。与RADIUS属性42(Acct-Input-Octets)共同组成上行流量。 流量单位必须和RADIUS服务器保持一致,可以为Byte,KByte,MByte或GByte。可以执行命令radius-server traffic-unit针对每一个RADIUS服务器设置具体单位。缺省情况下,设备以字节(Byte)作为RADIUS流量单位。 说明:
仅S5720-HI、S5730-HI、S6720-HI、S5731-H-K、S5731-H、S5731S-H、S5731-S、S5731S-S、S5732-H、S5732-H-K、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S支持该属性。 |
53 |
Acct-Output-Gigawords |
integer |
对应存储下行流量数据结构的高32位,表示下行的流量字节数是4G(即2^32)字节的多少倍。与RADIUS属性43(Acct-Output-Octets)共同组成下行流量。 流量单位必须和RADIUS服务器保持一致,可以为Byte,KByte,MByte或GByte。可以执行命令radius-server traffic-unit针对每一个RADIUS服务器设置具体单位。缺省情况下,设备以字节(Byte)作为RADIUS流量单位。 |
55 |
Event-Timestamp |
integer |
生成计费报文的时间,以秒为单位,表示从1970年1月1日0点0分0秒以来的绝对秒数。 |
60 |
CHAP-Challenge |
string |
CHAP认证的质询字段,该质询字段是CHAP认证中由NAS生成的用于MD5(Message Digest algorithm 5)计算的随机序列。 |
61 |
NAS-Port-Type |
integer |
NAS的端口类型,用户可以在设备的接口视图下配置。默认类型是Ethernet(15)。 |
64 |
Tunnel-Type |
integer |
隧道采用的协议类型,目前仅支持取值为13,表示VLAN协议。 |
65 |
Tunnel-Medium-Type |
integer |
隧道承载媒介类型,固定为6,表示以太类型。 |
79 |
EAP-Message |
string |
用于封装EAP报文,实现RADIUS协议对EAP认证方式的支持。EAP报文长度超过253时支持封装成多个属性,一个RADIUS报文可携带多个该字段。 |
80 |
Message-Authenticator |
string |
用于对认证报文进行认证和校验,防止非法报文欺骗。 |
81 |
Tunnel-Private-Group-ID |
string |
隧道私有组标识,目前通过该属性下发用户VLAN。 说明:
授权本属性时必须同时授权属性Tunnel-Type和Tunnel-Medium-Type,并且Tunnel-Type的取值必须为13,Tunnel-Medium-Type的取值必须为6。 VLAN pool配置为无线用户的业务VLAN,如果授权VLAN在VLAN pool内,获取地址失败允许切换VLAN,如果授权VLAN不在VLAN pool内,不允许切换VLAN。 支持通过VLAN编号、VLAN描述信息、VLAN名称和VLAN Pool授权,并且授权生效顺序为:VLAN编号 > VLAN描述信息 > VLAN名称 > VLAN Pool。 其中,有线用户和无线用户都支持授权VLAN Pool,无线用户从V200R013C00版本开始支持授权VLAN Pool。 在通过VLAN Pool授权属性Tunnel-Private-Group-ID的同时,不支持通过属性HW-VoiceVlan授权Voice VLAN。否则两个属性都不会生效。 详细的注意事项请参见NAC统一模式配置注意事项。 |
85 |
Acct-Interim-Interval |
integer |
用户的实时计费间隔,以秒为单位,建议该值不要小于600秒。支持下发范围60~3932100。 |
87 |
NAS-Port-Id |
string |
用户接入的端口号,包括以下格式:
|
89 |
Chargeable-User-Identity |
string |
由服务器下发的计费标识。支持情况由命令radius-server support chargeable-user-identity [ not-reject ]配置。 |
95 |
NAS-IPv6-Address |
ipaddr |
NAS设备发送的认证请求报文中携带的设备IPv6地址。NAS-IPv6-Address可以和NAS-IP-Address同时出现在报文中。 |
96 |
Framed-Interface-Id |
string |
用户IPv6接口标识。 |
97 |
Framed-IPv6-Prefix |
ipaddr |
用户IPv6地址前缀。 |
168 |
Framed-IPv6-Address |
ipaddr |
用户的IPv6地址。 |
195 |
HW-SecurityStr |
string |
EAP透传认证时用于携带用户的安全信息。 |
华为RADIUS扩展属性
RADIUS协议具有良好的可扩展性,协议(RFC2865)中定义的26号属性(Vendor-Specific)用于设备厂商对RADIUS进行扩展,以实现标准RADIUS没有定义的功能。华为公司的RADIUS扩展属性请参见表2 华为RADIUS扩展属性。
RADIUS扩展属性中包含各个设备厂商的厂商代号Vendor-ID,华为公司的Vendor-ID是2011。
属性编号 |
属性名 |
属性类型 |
属性说明 |
---|---|---|---|
26-1 |
HW-Input-Peak-Information-Rate |
integer |
用户接入到NAS的报文峰值信息速率(Peak Information Rate),即最大能够通过的速率。整数形式,4字节,最小取值为64,单位为bit/s。HW-Input-Peak-Information-Rate必须大于等于HW-Input-Committed-Information-Rate,缺省值等于HW-Input-Committed-Information-Rate。 |
26-2 |
HW-Input-Committed-Information-Rate |
integer |
用户接入到NAS的报文承诺信息速率(Committed Information Rate),即保证能够通过的平均速率。整数形式,4字节,最小取值为64,单位为bit/s。 说明:
对用户接入到NAS的报文进行限速时,必须指定该属性。 |
26-3 |
HW-Input-Committed-Burst-Size |
integer |
用户接入到NAS的报文承诺突发尺寸(Committed Burst Size),即瞬间能够通过的承诺突发流量。整数形式,4字节,最小取值为10000,单位为bit。 |
26-4 |
HW-Output-Peak-Information-Rate |
integer |
从NAS到用户的报文峰值信息速率。整数形式,4字节,最小取值为64,单位为bit/s。HW-Output-Peak-Information-Rate必须大于等于HW-Output-Committed-Information-Rate,缺省值等于HW-Output-Committed-Information-Rate。 |
26-5 |
HW-Output-Committed-Information-Rate |
integer |
从NAS到用户的报文承诺信息速率。整数形式,4字节,最小取值为64,单位为bit/s。 说明:
对NAS到用户的报文进行限速时,必须指定该属性。 |
26-6 |
HW-Output-Committed-Burst-Size |
integer |
从NAS到用户的报文承诺突发尺寸。整数形式,4字节,最小取值为10000,单位为bit。 |
26-15 |
HW-Remanent-Volume |
integer |
剩余流量。单位为KB。 |
26-17 |
HW-Subscriber-QoS-Profile |
string |
QoS模板名称。 说明:
|
26-18 |
HW-UserName-Access-Limit |
integer |
根据用户名进行接入数限制,表示限制一个用户名接入的用户个数。0表示不允许接入,0xFFFFFFFF(4294967295)表示不进行限制,1表示一个用户名允许接入1个用户,依次类推。
说明:
仅Access-Accept报文支持携带该属性。 |
26-26 |
HW-Connect-ID |
integer |
用户连接的索引。 |
26-28 |
HW-FTP-Directory |
string |
FTP用户的初始目录。 |
26-29 |
HW-Exec-Privilege |
integer |
管理用户(例如Telnet用户)的优先级,有效值范围0~15。授权大于等于16的为无效值。 |
26-31 |
HW-Qos-Data |
string |
QoS模板名,最大长度为31字节。RADIUS服务器通过该字段下发QoS模板用于配置流量监管,QoS模板必须在设备上已存在,并已通过命令car(QoS模板视图)配置流量监管。 说明:
仅S5720-EI、S5720-HI、S5730-HI、S5731-H-K、S5731-H、S5731S-H、S5731-S、S5731S-S、S6720-HI、S5732-H-K、S5732-H、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S、S6720-EI和S6720S-EI支持该属性。 如果服务器授权上行CAR或下行CAR(相当于服务器授权RADIUS属性HW-Input-Committed-Information-Rate或HW-Output-Committed-Information-Rate),同时授权RADIUS属性HW-Qos-Data,那么仅服务器授权的上行CAR和下行CAR生效。 |
26-33 |
HW-VoiceVlan |
integer |
语音VLAN授权标记,数值为1表示授权的VLAN为Voice VLAN。与VLAN授权属性配合使用。 说明:
认证模板下配置命令authentication mode multi-share后,不支持授权Voice VLAN。 在通过VLAN Pool授权属性Tunnel-Private-Group-ID的同时,不支持通过属性HW-VoiceVlan授权Voice VLAN。否则两个属性都不会生效。 |
26-35 |
HW-ProxyRdsPkt |
integer |
RADIUS服务器是否为代理服务器:
|
26-59 |
HW-NAS-Startup-Time-Stamp |
integer |
NAS设备启动时间,从1970年1月1日0点0分0秒时开始计算(以秒为单位)。 |
26-60 |
HW-IP-Host-Address |
string |
认证和计费报文中携带的用户IP地址和MAC地址,格式为“A.B.C.D hh:hh:hh:hh:hh:hh”,IP地址和MAC地址之间必须用空格分开。 如果在认证时用户的IP地址尚未有效,则A.B.C.D设置为255.255.255.255。 |
26-61 |
HW-Up-Priority |
integer |
用户上行报文的802.1p优先级。 |
26-62 |
HW-Down-Priority |
integer |
用户下行报文的802.1p优先级。 |
26-75 |
HW-Primary-WINS |
ipaddr |
用户认证成功后,RADIUS下发的主WINS服务器地址。 |
26-76 |
HW-Second-WINS |
ipaddr |
用户认证成功后,RADIUS下发的备WINS服务器地址。 |
26-77 |
HW-Input-Peak-Burst-Size |
integer |
上行峰值尺寸,最小取值为10000,以bit/s为单位。 说明:
仅S5720-HI、S5730-HI、S6720-HI、S5731-H-K、S5731-H、S5731S-H、S5731-S、S5731S-S、S5732-H、S5732-H-K、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S支持该属性。 |
26-78 |
HW-Output-Peak-Burst-Size |
integer |
下行峰值尺寸,以bit/s为单位。最小取值为10000。 |
26-82 |
HW-Data-Filter |
string |
RADIUS服务器通过该属性将IPv4或者IPv6的ACL规则下发给用户。下发方式有两种:通过DACL组方式下发ACL规则和直接下发ACL规则。定义ACL规则的属性格式分为新旧两种,新格式与旧格式相比缩短了ACL格式的长度。通过DACL组方式下发ACL规则和直接下发ACL规则相比,能够节约ACL资源,同一DACL组内的用户共享组内的ACL资源,而直接下发ACL规则时每个用户都会占用ACL资源。 说明:
新属性格式直接下发ACL规则(中括号内的字段表示可选项) 属性格式为:$number permit/deny [ protocol ] [ direction ip-address [ port ] ] 其中各字段的含义如下:
以下为服务器上填写的属性值举例: $1 permit dst 10.0.239.192/26 $2 permit udp src any 8080 $3 permit icmp echo dst 10.1.1.1/24 $5 deny 旧属性格式直接下发ACL规则 属性格式为:acl number key1 key-value1... keyN key-valueN permit/deny。 其中各字段的含义如下: 所有关键字不区分大小写;所有关键字和(或)关键值之间用空格隔开;关键字位置顺序可以不固定;permit、deny二个关键字可位于number后或语句最后。
以下为服务器上填写的属性值举例: acl 10005 deny acl 10006 tcp-dstport 5080 permit acl 10007 dest-ip 10.11.11.2 dest-ipmask 32 permit acl 10008 dest-ip 10.11.11.3 dest-ipmask 32 udp-dstport 5070 permit acl 10009 dest-ip 11.11.11.2 dest-ipmask 32 udp-dstport 5070 udp-dstport-end 5080 deny DACL组方式下发ACL规则 DACL组内的ACL规则格式可以是新格式也可以是旧格式,推荐使用新格式。与Cisco ISE服务器对接时,ACL规则起始符使用#。 以下为服务器上填写的属性值举例: $1 dacl-group-name example $2 permit dst 10.0.239.192/26 $3 permit udp src any 8080 $4 deny |
26-135 |
HW-Client-Primary-DNS |
ipaddr |
用户认证成功后,RADIUS下发的主DNS服务器地址。 |
26-136 |
HW-Client-Secondary-DNS |
ipaddr |
用户认证成功后,RADIUS下发的备DNS服务器地址。 |
26-138 |
HW-Domain-Name |
string |
用户实际所属域的域名。不一定是用户名中的域名,可能是强制域的域名。 |
26-141 |
HW-AP-Information |
string |
无线用户认证时携带的AP的MAC,格式为H-H-H,其中H为4位的十六进制数。 说明:
仅S5720-HI、S5730-HI、S6720-HI、S5731-H-K、S5731-H、S5731S-H、S5731-S、S5731S-S、S5732-H、S5732-H-K、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S支持该属性。 |
26-142 |
HW-User-Information |
string |
RADIUS服务器为EAPoL(Extensible Authentication Protocol over LAN)用户下发的用户安全检查控制信息,通知用户需要进行哪些安全检查。 |
26-146 |
HW-User-Policy |
string |
业务方案的名称。业务方案下通常配置用户的授权信息和策略。 |
26-153 |
HW-Access-Type |
integer |
设备发送给RADIUS服务器的认证请求和计费请求报文中携带的用户接入类型。包括:
|
26-155 |
HW-URL-Flag |
integer |
是否需要用户强推URL,比如和属性HW-Portal-URL结合使用。其中:
|
26-156 |
HW-Portal-URL |
string |
用户强推URL(Uniform Resource Locator)。最大长度为247字节。 如果RADIUS服务器下发的信息匹配了设备配置的URL模板,则使用URL模板下配置的URL,否则,按RADIUS服务器下发的字符串进行推送。 |
26-157 |
HW-Terminal-Type |
string |
用户使用的终端的类型。 该属性的值通过device-type device-name命令进行配置。 |
26-158 |
HW-DHCP-Option |
string |
DHCP Option信息,按TLV(Type-Length-Value )格式封装,一个报文中可以有多个该属性分别携带不同的Option信息。 仅支持下发Option82信息。 |
26-159 |
HW-HTTP-UA |
string |
HTTP(Hypertext Transfer Protocol)报文中的User-Agent信息。 |
26-160 |
HW-UCL-Group |
integer |
UCL组索引。 说明:
该属性不支持和ACL同时授权。如果同时授权仅ACL生效。 |
26-161 |
HW-Forwarding-VLAN |
string |
通过该属性下发用户报文转发的ISP(Internet Service Provider) VLAN。 说明:
仅S5720-HI、S5730-HI、S6720-HI、S5731-H-K、S5731-H、S5731S-H、S5731-S、S5731S-S、S5732-H、S5732-H-K、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S支持该属性。 |
26-162 |
HW-Forwarding-Interface |
string |
通过该属性下发用户报文转发的出接口。 说明:
仅S5720-HI、S5730-HI、S6720-HI、S5731-H-K、S5731-H、S5731S-H、S5731-S、S5731S-S、S5732-H、S5732-H-K、S6730-H、S6730-H-K、S6730S-H、S6730-S、S6730S-S支持该属性。 |
26-163 |
HW-LLDP |
string |
LLDP信息。一个报文中可以有多个该属性分别携带不同的Option。不同的Option表示的含义如下:
|
26-166 |
HW-Acct-ipv6-Input-Octets |
integer |
上行IPv6流量字节数,单位可以为Byte、KByte、MByte或GByte。 |
26-167 |
HW-Acct-ipv6-Output-Octets |
integer |
下行IPv6流量字节数,单位可以为Byte、KByte、MByte或GByte。 |
26-168 |
HW-Acct-ipv6-Input-Packets |
integer |
上行IPv6流量包数。 |
26-169 |
HW-Acct-ipv6-Output-Packets |
integer |
下行IPv6流量包数。 |
26-170 |
HW-Acct-ipv6-Input-Gigawords |
integer |
指定IPv6上行字节数是4G的多少倍,与HW-Acct-ipv6-Input-Octets属性共同决定IPv6流量的上行字节数。 |
26-171 |
HW-Acct-ipv6-Output-Gigawords |
integer |
指定IPv6下行字节数是4G的多少倍,与HW-Acct-ipv6-Output-Octets属性共同决定IPv6流量的下行字节数。 |
26-173 |
HW-Redirect-ACL |
string |
重定向IPv4 ACL,只对匹配ACL规则的用户做重定向,可下发acl-number或acl-name。其中,acl-name必须以字符开始。 说明:
acl-number的取值范围是3000~3999(有线用户)或3000~3031(无线用户)。 认证模板下配置命令authentication mode multi-share后,不支持授权重定向ACL。 |
26-178 |
HW-IPv6-Redirect-ACL |
string |
重定向IPv6 ACL,只对匹配ACL规则的用户做重定向,可下发acl-number或acl-name。其中,acl-name必须以字符开始。 说明:
|
26-201 |
HW-User-Extend-Info |
string |
用户扩展信息。认证请求报文和计费请求报文中携带该信息,可携带多个。目前定义如下:
仅MAC认证和Portal认证支持该属性。 |
26-237 |
HW-Web-Authen-Info |
string |
Portal服务器发给RADIUS服务器的信息,设备直接透传该信息给RADIUS服务器。比如用户选择的下次登录免认证选项和时间信息,RADIUS服务器根据此信息将用户MAC保存一定的时间,下次用户登录时优选MAC认证,无需再次弹出登录页面。后续可用于EAP等复杂方式的透传认证。 |
26-238 |
HW-Ext-Specific |
string |
用户扩展属性:
说明:
在RADIUS CoA动态授权过程中,当user-command取值为1、2或3时,不支持其他授权属性。 不支持对直接转发模式下的无线用户授权user-dscp-in和user-dscp-out。 仅NAC用户支持该属性。 RADIUS服务器动态授权下发RADIUS属性HW-Ext-Specific(26-238)的user-command字段取值为2或3时,需要注意以下几点:
|
26-239 |
HW-User-Access-Info |
string |
用户上下文模板信息。 |
26-240 |
HW-Access-Device-Info |
string |
策略联动时,在认证和计费请求报文中携带接入交换机的IP地址、MAC地址、端口号等,格式为“ip=A.B.C.D;mac=XXXX-XXXX-XXXX;slot=XX;subslot=XXX;port=XXX;vlanid=XXXX”。 |
26-244 |
HW-Reachable-Detect |
string |
服务器可达性探测信息,认证报文可携带该属性,表示该报文为服务器探测报文。 |
26-247 |
HW-Tariff-Input-Octets |
string |
设备通过计费报文向服务器发送的指定费率级别流量的上行字节数,单位可以为Byte,KByte,MByte或GByte,格式为“费率级别:上行字节数;”。 |
26-248 |
HW-Tariff-Output-Octets |
string |
设备通过计费报文向服务器发送的指定费率级别流量的下行字节数,单位可以为Byte,KByte,MByte或GByte,格式为“费率级别:下行字节数;”。 |
26-249 |
HW-Tariff-Input-Gigawords |
string |
指定费率级别流量的上行字节数是4G的多少倍,与HW-Tariff-Input-Octets属性共同决定指定费率级别流量的上行字节数。 |
26-250 |
HW-Tariff-Output-Gigawords |
string |
指定费率级别流量的下行字节数是4G的多少倍,与HW-Tariff-Output-Octets属性共同决定指定费率级别流量的下行字节数。 |
26-251 |
HW-IPv6-Filter-ID |
string |
用户IPv6 ACL号。其取值范围为2000~3999(有线用户)或2000~3031(无线用户)。 说明:
|
26-253 |
HW-Framed-IPv6-Address |
ipaddr |
用户的IPv6地址。 |
26-254 |
HW-Version |
string |
设备的软件版本号。 |
26-255 |
HW-Product-ID |
string |
NAS的产品名称。 |
RADIUS属性在报文中的支持情况
- 1:表示该属性在该类型报文中一定出现一次;
- 0:表示该属性在该类型报文中一定不能出现(即使出现也不起任何作用,该属性将被丢弃);
- 0-1:表示该属性在该类型报文中可能出现一次,也可能不出现;
- 0+:表示零个或多个该属性可能出现在该类型报文中。
属性 |
Access-Request |
Access-Accept |
Access-Reject |
Access-Challenge |
---|---|---|---|---|
User-Name(1) |
1 |
0-1 |
0 |
0 |
User-Password(2) |
0-1 |
0 |
0 |
0 |
CHAP-Password(3) |
0-1 |
0 |
0 |
0 |
NAS-IP-Address(4) |
1 |
0 |
0 |
0 |
NAS-Port(5) |
1 |
0 |
0 |
0 |
Service-Type(6) |
1 |
0-1 |
0 |
0 |
Framed-Protocol(7) |
1 |
0-1 |
0 |
0 |
Framed-IP-Address(8) |
0-1 |
0-1 |
0 |
0 |
Filter-Id(11) |
0 |
0-1 |
0 |
0 |
Framed-Mtu(12) |
0-1 |
0 |
0 |
0 |
Login-IP-Host(14) |
0-1 |
0-1 |
0 |
0 |
Login-Service(15) |
0 |
0-1 |
0 |
0 |
Reply-Message(18) |
0 |
0-1 |
0-1 |
0-1 |
Callback-Number(19) |
0 |
0-1 |
0 |
0 |
State(24) |
0-1 |
0-1 |
0 |
0-1 |
Class(25) |
0 |
0-1 |
0 |
0 |
Session-Timeout(27) |
0 |
0-1 |
0-1 |
0-1 |
Idle-Timeout(28) |
0 |
0-1 |
0 |
0 |
Termination-Action(29) |
0 |
0-1 |
0 |
0-1 |
Called-Station-Id(30) |
0-1 |
0 |
0 |
0 |
Calling-Station-Id(31) |
1 |
0-1 |
0 |
0 |
NAS-Identifier(32) |
1 |
0 |
0 |
0 |
Acct-Session-id(44) |
1 |
0 |
0 |
0 |
CHAP-Challenge(60) |
0-1 |
0 |
0 |
0 |
NAS-Port-Type(61) |
1 |
0 |
0 |
0 |
Tunnel-Type(64) |
0 |
0-1 |
0 |
0 |
Tunnel-Medium-Type(65) |
0 |
0-1 |
0 |
0 |
EAP-Message(79) |
0-1 |
0-1 |
0-1 |
0-1 |
Message-Authenticator(80) |
0-1 |
0-1 |
0-1 |
0-1 |
Tunnel-Private-Group-ID(81) |
0 |
0-1 |
0-1 |
0 |
Acct-Interim-Interval(85) |
0 |
0-1 |
0 |
0 |
NAS-Port-Id(87) |
0-1 |
0 |
0 |
0 |
Chargeable-User-Identity(89) |
0-1 |
0-1 |
0 |
0 |
NAS-IPv6-Address(95) |
0-1 |
0 |
0 |
0 |
Framed-Interface-Id(96) |
0+ |
0 |
0 |
0 |
Framed-IPv6-Prefix(97) |
0+ |
0 |
0 |
0 |
HW-SecurityStr(195) |
0-1 |
0 |
0 |
0 |
HW-Input-Peak-Information-Rate(26-1) |
0 |
0-1 |
0 |
0 |
HW-Input-Committed-Information-Rate(26-2) |
0 |
0-1 |
0 |
0 |
HW-Input-Committed-Burst-Size(26-3) |
0 |
0-1 |
0 |
0 |
HW-Output-Peak-Information-Rate(26-4) |
0 |
0-1 |
0 |
0 |
HW-Output-Committed-Information-Rate(26-5) |
0 |
0-1 |
0 |
0 |
HW-Output-Committed-Burst-Size(26-6) |
0 |
0-1 |
0 |
0 |
HW-Remanent-Volume(26-15) |
0 |
0-1 |
0 |
0 |
HW-Subscriber-QoS-Profile(26-17) |
0 |
0-1 |
0 |
0 |
HW-UserName-Access-Limit(26-18) |
0 |
0-1 |
0 |
0 |
HW-Connect-ID(26-26) |
1 |
0 |
0 |
0 |
Ftp-directory(26-28) |
0 |
0-1 |
0 |
0 |
HW-Exec-Privilege(26-29) |
0 |
0-1 |
0 |
0 |
HW-Qos-Data(26-31) |
0 |
0-1 |
0 |
0 |
HW-VoiceVlan(26-33) |
0 |
0-1 |
0 |
0 |
HW-ProxyRdsPkt(26-35) |
0 |
0-1 |
0 |
0 |
HW-NAS-Startup-Time-Stamp(26-59) |
1 |
0 |
0 |
0 |
HW-IP-Host-Address(26-60) |
1 |
0 |
0 |
0 |
HW-Up-Priority(26-61) |
0 |
0-1 |
0 |
0 |
HW-Down-Priority(26-62) |
0 |
0-1 |
0 |
0 |
HW-Primary-WINS(26-75) |
0 |
0-1 |
0 |
0 |
HW-Second-WINS(26-76) |
0 |
0-1 |
0 |
0 |
HW-Input-Peak-Burst-Size(26-77) |
0 |
0-1 |
0 |
0 |
HW-Output-Peak-Burst-Size(26-78) |
0 |
0-1 |
0 |
0 |
HW-Data-Filter(26-82) |
0 |
0-1 |
0-1 |
0 |
HW-Client-Primary-DNS(26-135) |
0 |
0-1 |
0 |
0 |
HW-Client-Secondary-DNS(26-136) |
0 |
0-1 |
0 |
0 |
HW-Domain-Name(26-138) |
1 |
0 |
0 |
0 |
HW-AP-Information(26-141) |
1 |
0 |
0 |
0 |
HW-User-Information(26-142) |
0 |
0-1 |
0 |
0 |
HW-User-Policy(26-146) |
0 |
0-1 |
0 |
0 |
HW-Access-Type(26-153) |
1 |
0-1 |
0 |
0 |
HW-URL-Flag(26-155) |
0 |
0-1 |
0 |
0 |
HW-Portal-URL(26-156) |
0 |
0-1 |
0 |
0 |
HW-Terminal-Type(26-157) |
0-1 |
0 |
0 |
0 |
HW-DHCP-Option(26-158) |
0+ |
0 |
0 |
0 |
HW-UCL-Group(26-160) |
0 |
0-1 |
0 |
0 |
HW-Forwarding-VLAN(26-161) |
0 |
0-1 |
0 |
0 |
HW-Forwarding-Interface(26-162) |
0 |
0-1 |
0 |
0 |
HW-LLDP(26-163) |
0-1 |
0 |
0 |
0 |
HW-Redirect-ACL(26-173) |
0 |
0-1 |
0 |
0 |
HW-IPv6-Redirect-ACL(26-178) |
0 |
1 |
0 |
0 |
HW-User-Extend-Info(26-201) |
0-1 |
0 |
0 |
0 |
HW-Web-Authen-Info(26-237) |
1 |
0 |
0 |
0 |
HW-Ext-Specific(26-238) |
0 |
0-1 |
0 |
0 |
HW-User-Access-Info(26-239) |
1 |
0 |
0 |
0 |
HW-Access-Device-Info(26-240) |
0-1 |
0 |
0 |
0 |
HW-Reachable-Detect(26-244) |
0 |
0 |
0 |
0 |
HW-Framed-IPv6-Address(26-253) |
0-1 |
0 |
0 |
0 |
HW-Version(26-254) |
1 |
0 |
0 |
0 |
HW-Product-ID(26-255) |
1 |
0 |
0 |
0 |
MS-MPPE-Send-Key(MICROSOFT-16) |
0 |
0-1 |
0 |
0 |
MS-MPPE-Recv-Key(MICROSOFT-17) |
0 |
0-1 |
0 |
0 |
Cisco-avpair(CISCO-1) |
0 |
0-1 |
0 |
0 |
Agent-Circuit-Id(DSLFORUM-1) |
0-1 |
0 |
0 |
0 |
Agent-Remote-Id(DSLFORUM-2) |
0-1 |
0 |
0 |
0 |
属性 |
Accounting-Request (Start) |
Accounting-Request (Interim-Update) |
Accounting-Request (Stop) |
Accounting-Response (start) |
Accounting-Response(Interim-Update) |
Accounting-Response (Stop) |
---|---|---|---|---|---|---|
User-Name(1) |
1 |
1 |
1 |
0 |
0 |
0 |
NAS-IP-Address(4) |
1 |
1 |
1 |
0 |
0 |
0 |
NAS-Port(5) |
1 |
1 |
1 |
0 |
0 |
0 |
Service-Type(6) |
1 |
1 |
1 |
0 |
0 |
0 |
Framed-Protocol(7) |
1 |
1 |
1 |
0 |
0 |
0 |
Framed-IP-Address(8) |
1 |
1 |
1 |
0 |
0 |
0 |
Class(25) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
Session-Timeout(27) |
0 |
0 |
0 |
0-1 |
0-1 |
0 |
Called-Station-Id(30) 说明:
对于PPP接入认证用户,该属性非必带属性。如果认证请求报文中没有携带该属性,计费请求报文中也不会携带该属性。 |
1 |
1 |
1 |
0 |
0 |
0 |
Calling-Station-Id(31) |
1 |
1 |
1 |
0 |
0 |
0 |
NAS-Identifier(32) |
1 |
1 |
1 |
0 |
0 |
0 |
Acct-Status-Type(40) |
1 |
1 |
1 |
0 |
0 |
0 |
Acct-Delay-Time(41) |
0-1 |
1 |
1 |
0 |
0 |
0 |
Acct-Input-Octets(42) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
Acct-Session-Id(44) |
1 |
1 |
1 |
0 |
0 |
0 |
Acct-Authentic(45) |
1 |
1 |
1 |
0 |
0 |
0 |
Acct-Session-Time(46) |
0 |
1 |
1 |
0 |
0 |
0 |
Acct-Input-Packets(47) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
Acct-Output-Packets(48) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
Acct-Terminate-Cause(49) |
0 |
0 |
1 |
0 |
0 |
0 |
Acct-Input-Gigawords(52) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
Acct-Output-Gigawords(53) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
Event-Timestamp(55) |
1 |
1 |
1 |
0 |
0 |
0 |
NAS-Port-Type(61) |
1 |
1 |
1 |
0 |
0 |
0 |
NAS-Port-Id(87) |
1 |
1 |
1 |
0 |
0 |
0 |
Chargeable-User-Identity(89) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
NAS-IPv6-Address(95) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-Input-Committed-Information-Rate(26-2) |
1 |
1 |
1 |
0 |
0 |
0 |
HW-Output-Committed-Information-Rate(26-5) |
1 |
1 |
1 |
0 |
0 |
0 |
HW-Connect-ID(26-26) |
1 |
1 |
1 |
0 |
0 |
0 |
HW-IP-Host-Address(26-60) |
1 |
1 |
1 |
0 |
0 |
0 |
HW-Domain-Name(26-138) |
1 |
1 |
1 |
0 |
0 |
0 |
HW-AP-Information(26-141) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-User-Information(26-142) |
0 |
0 |
0 |
0-1 |
0-1 |
0 |
HW-Access-Type(26-153) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-Terminal-Type(26-157) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-DHCP-Option(26-158) |
0+ |
0+ |
0+ |
0 |
0 |
0 |
HW-HTTP-UA(26-159) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-LLDP(26-163) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-User-Extend-Info(26-201) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-Access-Device-Info(26-240) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-Reachable-Detect(26-244) |
0 |
0 |
0 |
0 |
0 |
0 |
HW-Tariff-Input-Octets(26-247) |
0 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-Tariff-Output-Octets(26-248) |
0 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-Tariff-Input-Gigawords(26-249) |
0 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-Tariff-Output-Gigawords(26-250) |
0 |
0-1 |
0-1 |
0 |
0 |
0 |
HW-Framed-IPv6-Address(26-253) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
MS-MPPE-Send-Key(MICROSOFT-16) |
0 |
0 |
0 |
0 |
0 |
0 |
MS-MPPE-Recv-Key(MICROSOFT-17) |
0 |
0 |
0 |
0 |
0 |
0 |
Cisco-avpair(CISCO-1) |
0 |
0 |
0 |
0 |
0 |
0 |
Agent-Circuit-Id(DSLFORUM-1) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
Agent-Remote-Id(DSLFORUM-2) |
0-1 |
0-1 |
0-1 |
0 |
0 |
0 |
属性号 |
CoA REQUEST |
CoA ACK |
CoA NAK |
DM REQUEST |
DM ACK |
DM NAK |
---|---|---|---|---|---|---|
User-Name(1) |
0-1 |
0-1 |
0-1 |
0-1 |
0-1 |
0-1 |
NAS-IP-Address(4) |
0-1 |
0-1 |
0-1 |
0-1 |
0-1 |
0-1 |
NAS-Port(5) |
0-1 |
0 |
0 |
0-1 |
0 |
0 |
Framed-IP-Address(8) |
0-1 |
0-1 |
0-1 |
0-1 |
0-1 |
0-1 |
Filter-Id(11) |
0-1 |
0 |
0 |
0 |
0 |
0 |
Session-Timeout(27) |
0-1 |
0 |
0 |
0 |
0 |
0 |
Idle-Timeout(28) |
0-1 |
0 |
0 |
0 |
0 |
0 |
Termination-Action(29) |
0-1 |
0 |
0 |
0 |
0 |
0 |
Calling-Station-Id(31) |
0-1 |
0-1 |
0-1 |
0-1 |
0-1 |
0-1 |
NAS-Identifier(32) |
0 |
0-1 |
0-1 |
0 |
0 |
0 |
Acct-Session-Id(44) |
1 |
1 |
1 |
1 |
1 |
1 |
Tunnel-Type(64) |
0-1 |
0 |
0 |
0 |
0 |
0 |
Tunnel-Medium-Type(65) |
0-1 |
0 |
0 |
0 |
0 |
0 |
Tunnel-Private-Group-ID(81) |
0-1 |
0 |
0 |
0 |
0 |
0 |
Acct-Interim-Interval(85) |
0-1 |
0 |
0 |
0 |
0 |
0 |
NAS-Port-Id(87) |
0-1 |
0 |
0 |
0-1 |
0 |
0 |
HW-Input-Peak-Information-Rate(26-1) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Input-Committed-Information-Rate(26-2) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Output-Peak-Information-Rate(26-4) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Output-Committed-Information-Rate(26-5) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Output-Committed-Burst-Size(26-6) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Subscriber-QoS-Profile(26-17) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Qos-Data(26-31) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Up-Priority(26-61) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Down-Priority(26-62) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Input-Peak-Burst-Size(26-77) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Output-Peak-Burst-Size(26-78) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Data-Filter(26-82) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-User-Policy(26-146) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-URL-Flag(26-155) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Portal-URL(26-156) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-UCL-Group (26-160) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Forwarding-VLAN(26-161) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Forwarding-Interface(26-162) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-Redirect-ACL(26-173) |
0-1 |
0 |
0 |
0 |
0 |
0 |
HW-IPv6-Redirect-ACL(26-178) |
1 |
0 |
0 |
0 |
0 |
0 |
HW-Ext-Specific(26-238) |
1 |
0 |
0 |
0 |
0 |
0 |
MS-MPPE-Send-Key(MICROSOFT-16) |
0 |
0 |
0 |
0 |
0 |
0 |
MS-MPPE-Recv-Key(MICROSOFT-17) |
0 |
0 |
0 |
0 |
0 |
0 |
Cisco-avpair(CISCO-1) |
0-1 |
0 |
0 |
0 |
0 |
0 |
Agent-Circuit-Id(DSLFORUM-1) |
0-1 |
0 |
0 |
0 |
0 |
0 |
Agent-Remote-Id(DSLFORUM-2) |
0-1 |
0 |
0 |
0 |
0 |
0 |
注意事项
VLAN授权注意事项:
服务器上配置了动态VLAN下发功能,则授权信息中含有下发的VLAN属性,设备端在接收到下发的VLAN属性后,会将用户所属的VLAN修改为下发VLAN。
授权下发的VLAN并不改变接口的配置,也不影响接口的配置。但是,授权下发的VLAN的优先级高于用户配置的VLAN,即通过认证后起作用的VLAN是授权下发的VLAN,用户配置的VLAN在用户下线后生效。
- (064)Tunnel-Type(必须指定为VLAN,或数值13)
- (065)Tunnel-Medium-Type(必须指定为802,或数值6)
- (081)Tunnel-Private-Group-ID
要通过RADIUS服务器正确下发VLAN属性,以上三个属性必须同时使用,而且Tunnel-Type及Tunnel-Medium-Type两个属性的值必须是指定的值。
RADIUS属性字典
Radius属性字典定义了华为公司自定义的私有Radius属性(包含属性号,属性名和属性类型信息)和华为的厂商ID。在华为设备与Radius服务器对接时,Radius服务器加载本属性字典文件后就可以正确识别和处理华为自定义的Radius属性,同一个厂商的不同产品,使用相同的属性编号可能代表不同的属性值,因此不能在同一个radius服务器上加载radius私有属性。
下面以安装LINUX版本为SUSE 12的freeradius服务器举例:
配置 |
步骤 |
说明 |
---|---|---|
配置本地服务器 |
获取root权限 |
在安装radius的linux服务器上获取root权限。 |
替换Radius属性字典 |
打开Radius字典的路径 |
在radius的服务器上打开路径:/usr/share/freeradius。 |
替换字典属性 |
用Radius属性字典,替换原目录下的dictionary.huawei文件,建议把原文件备份,例:dictionary.huawei.bak。 |
|
- |
检查配置结果 |
替换完成重启radius服务器,结合现场业务验证radius私有属性生效,替换成功。 |
- Radius属性字典包含了本系列所有产品支持的属性,每款产品具体支持的属性范围请参见对应产品的Radius属性列表。
- 附件为FreeRADIUS格式下的Radius属性字典。
RADIUS_Attribute.txt
RADIUS属性禁用和转换功能
不同厂商支持的RADIUS属性集不同,再加上各个厂商都有自己的私有属性,这就造成不同厂商间的RADIUS属性存在不兼容问题,进一步导致不同厂商设备之间发送的RADIUS属性相互无法解析。鉴于以上问题,在对接替换场景中经常使用RADIUS属性禁用功能和RADIUS属性转换功能。
RADIUS属性禁用功能
RADIUS服务器上定义的RADIUS属性与设备上相比,可能存在属性编号相同、名称相同、但封装的格式或内容不同的情形。此时,可以通过属性禁用功能禁用该属性,之后,设备接收到RADIUS服务器下发的该属性时,不会解析该属性;设备在发送RADIUS报文到服务器时,也不会封装该属性。
当前,设备支持禁用华为支持的RADIUS属性(即属性名称和编号华为支持),支持禁用发送的或者接收的RADIUS属性。
RADIUS属性转换功能
属性转换主要是为了兼容不同厂商RADIUS属性定义的差别。例如,华为设备通过私有属性Exec-Privilege(26-29)下发管理员用户的优先级,但某个厂商的接入设备和RADIUS服务器通过属性Login-service(15)下发管理员用户的优先级。在共用一台RADIUS服务器的情况下,用户希望华为设备能够兼容属性Login-service(15)。这种情况在华为设备上配置RADIUS属性转换,源属性为Login-service(15),目的属性为Exec-Privilege (26-29),当设备收到RADIUS认证回应报文解析到属性Login-Service(15)时,会自动当成Exec-Privilege (26-29)属性来处理。
- 对于发送方向,如果把属性A转换成属性B,那么设备在发送报文时,属性Type是B,但属性Value是按照属性A的内容与格式封装的;
- 对于接收方向,如果把属性A转换成属性B,那么设备在收到包含属性A的报文时,会把属性A的Value按照属性B的方式来解析,即配置了属性转换后,相当于收到的不是属性A,而是属性B。
设备支持在华为支持的RADIUS属性和不支持的RADIUS属性间进行转换,转换方式如表1-16所示。
其他厂家RADIUS属性Type字段长度为1个字节时,设备才支持对其进行转换。
源RADIUS属性和目的RADIUS属性的类型一致时,设备才支持对其进行转换。例如:RADIUS属性NAS-Identifier和NAS-Port-Id的类型都是string,两者支持转换;RADIUS属性NAS-Identifier和NAS-Port的类型分别是string和integer,两者不支持转换。
源RADIUS属性华为是否支持 |
目的RADIUS属性华为是否支持 |
支持转换的方向 |
对应的配置命令(RADIUS服务器模板视图) |
---|---|---|---|
支持 |
支持 |
发送、接收 |
radius-attribute translate src-attribute-name dest-attribute-name { receive | send | access-accept | access-request | account-request | account-response } * |
支持 |
不支持 |
发送 |
radius-attribute translate extend src-attribute-name vendor-specific dest-vendor-id dest-sub-id { access-request | account-request } * |
不支持 |
支持 |
接收 |
radius-attribute translate extend vendor-specific src-vendor-id src-sub-id dest-attribute-name { access-accept | account-response } * |