E N D
RADIUS协议 1.0
引入 • RADIUS 是Remote Authentication Dial In User Service 的简称。最初设计用来管理使用串口和调制解调器的大量分散用户。RADIUS 协议规定了NAS与RADIUS 服务器之间如何传递用户信息和记账信息:RADIUS服务器负责接收用户的连接请求,完成验证,并把传递服务给用户所需的配置信息返回给NAS。NAS和RADIUS之间的验证信息的传递是通过密钥的参与来完成的。用户的密码加密以后才在网络上传递,以避免用户的密码在不安全的网络上被窃取。RADIUS通过建立一个唯一的用户数据库,存储用户名,用户的密码来进行验证; 存储传递给用户的服务类型以及相应的配置信息来完成授权。
学习目标 • 熟悉掌握RADIUS协议原理与报文流程 学习完本课程,您应该能够: • 掌握RADIUS报文结构 • 熟悉掌握RADIUS常用报文及常用属性 • 能使用调试信息排除RADIUS相关故障
课程内容 第一章 RADIUS协议原理与报文流程 第二章 RADIUS报文结构 第三章 RADIUS常用报文及常用属性 第四章 RADIUS故障排除
第一章 RADIUS协议原理与报文流程 • RADIUS协议原理 • RADIUS报文流程
RADIUS设计的组网结构 IPOX/PPPOX/Wlan等 BAS Lsw2 Lsw2 城域网/光纤 Lsw2 Lsw2
RADIUS原理 • 客户端/服务器模式 在这个模型中,NAS/BAS服务器相于用户是服务器端,相于RADIUS服务器是客户端,其作用就是把用户的认证信息提取后封装为标准的RADIUS报文,并送到RADIUS服务器处理。RADIUS服务器根据NAS/BAS服务器送来的用户名和密码进行验证,并对用户的访问权限进行授权,同时NAS/BAS统计用户使用网络的信息(时间、流量)并送给RADIUS进行计费处理。
RADIUS报文流程(完整PAP) Radius Client Bas Authentication_Req Code=1 Code=2(3) Authentication_Ack Code=4(start) Code=5 Code=4(real) Code=5 …… logout_Req Code=4(stop) Code=5 logout_Ack
RADIUS报文流程(CHAP) Radius Client Bas Challenge_request challenge Authentication_request Code=1 Code=2(3) Authentication_Ack …… 计费过程同上一张
RADIUS报文流程(RADIUS产生挑战字) Radius Client Bas Challenge_request challenge Authentication_request Code=1 Code=11(access-challenge) challenge Authentication_request Code=1 Code=2(3) Authentication_Ack 计费过程同前
第二章 RADIUS报文结构 • RADIUS协议栈结构 • RADIUS报文结构
RADIUS协议栈结构 RADIUS
RADIUS报文说明 • Code,8bit,用以标识RADIUS报文的类型 • Identifier,8bit,用以匹配请求包和响应包 • Length,16bit,标识报文的长度 • Authenticator,32bit,用以验证报文的合法性 • Attribute,不定长,TLV格式,属性具体内容
第三章 RADIUS常用报文及属性 • RADIUS常用报文 • RADIUS属性介绍
常用RADIUS报文介绍 Code 1 Access- request 认证请求 2 Access- accept 认证通过 3 Access- reject 认证拒绝 4 Accounting-request 计费请求 5 Accounting-response 计费响应 11 Access-challenge 挑战请求
其它属性介绍 本页属性以MA5200 R007版本为例介绍了RADIUS所有属性,不同产品在属性的定义上 可能不同,具体请参考各产品的定义!
RADIUS+1.0/1.1协议 • RADIUS+1.0/1.1协议报文格式及报文类型同RADIUS协议相同,只不过对报文属性的定义和支持上面有所不同,如connect_id等,具体格式的定义请参考各产品的RADIUS属性说明文档!
Extended RADIUS Practices 这是对报文类型的扩展定义,目前在 MA5200里支持的是40-45,参考RFC2882 • 6 Accounting Status • 7 Password Request • 8 Password Ack • 9 Password Reject • 10 Accounting Message • 21 Resource Free Request • 22 Resource Free Response • 23 Resource Query Request • 24 Resource Query Response • 25 Alternate Resource Reclaim Request • 26 NAS Reboot Request • 27 NAS Reboot Response 29 Next Passcode 30 New Pin 31 Terminate Session 32 Password Expired 33 Event Request 34 Event Response 40 Disconnect Request 41 Disconnect Ack 42 Disconnect Nak 43 Change Filters Request 44 Change Filters Ack 45 Change Filters Nak 50 IP Address Allocate 51 IP Address Release
Dynamic Authorization Extensions to RADIUS • COA=Change-of-Authorization Messages • DM=Disconnect Message Radius Bas Radius Bas Code=40 Code=43 Code=41(42) Code=44(45) Radius通过此属性切 断一个指定的用户 Radius通过此属性动态 修改一个指定的用户的 权限
第四章 RADIUS故障处理 • RADIUS实际报文分析 • RADIUS常见故障及处理
RADIUS常见故障 (1) • RADIUS报文无响应:设备发出code=1/4的报文,没有收到这些报文的响应 协议类型不一致 属性不识别 端口不一致 路由不可达 密钥不正确 响应超时 RADIUS地址错误 请求或响应报文丢失 RADIUS未配置对应的NAS-IP,或与报文中的IP地址不一致
RADIUS常见故障 (2) • RADIUS认证失败,收到code=3的拒绝报文 [RADIUS Debug]Receive:IP=[218.106.145.163],Code=[3],Length=[112] (T=1670014(s):13) [18 Reply-Message ] [44] [Error code 30:You have no time use network] RADIUS拒绝时一般都会在18号属性中带回明确拒绝原因,如果有时没有带回明确原因如:authentication fail with unknown reasons,则需要联系RADIUS配合检查。
RADIUS常见故障 (3) • RADIUS属性不识别,RADIUS已经响应CODE=2报文,但我们不识别此属性 [RADIUS Debug]Receive raw packet is: (T=1665482(s):42) 029900 50b8 ab 42 7d aa 80 5b e0 af f9 15 70 7b f0 99 af 1c 06 00 00 07 08 1a 0c 00 00 07 db 01 06 00 20 00 00 1a 0c 00 00 07 db 02 06 00 20 00 00 1a 02 00 00 07 db 04 06 00 20 00 00 1a 0c 00 00 07 db 05 06 00 20 00 00 08 06 ff ff ff fe
RADIUS常见故障理(4) • RADIUS下发属性不生效 RADIUS未下发 两端定义格式不一致
RADIUS常见故障 (5) • RADIUS出现up/down告警,根本原因是RADIUS报文没有响应 协议类型不一致 属性不识别 端口不一致 路由不可达 密钥不正确 响应超时 RADIUS地址错误 请求或响应报文丢失 RADIUS未配置对应的NAS-IP,或与报文中的IP地址不一致
RADIUS问题解决思路 • 确认配置(RADIUS没有响应)和网络正常 • 检查配置、PING测试路由网络是否正常 • 分析报文 • 根据RADIUS流程分析调试信息,是否有异常 • 协调RADIUS • 一般RADIUS问题都需要协调RADIUS配合检查,除非从调试信息能定位出确认的问题原因。 • 必要时抓包 • 对于一些问题如RADIUSUP/DOWN等,需要知道报文在网络上传输的时间,此时就只有通过抓包来确认;