路由器冒充Radius引故障
2017-11-07
故障现象
近日,某同事在用宽带拨号上网的过程中出现691拨号错误代码,登录Radius服务器查看该用户的账号,发现并没有到期。笔者用了自己的账号和密码测试了一下,发现也是宽带拨号691错误。网络拓扑结构如图1所示。
图1 网络拓扑结构
故障分析
常见的691故障原因是用户的账户或者密码输入错误,或用户的账户到期,用户在使用时未正常退出而造成用户账号驻留。笔者前期排查排除了用户账号密码错误及账户到期的原因。那是不是Radius认证系统出现问题了呢?
Radius即远程用户拨号认证系统,是目前应用最广泛的AAA协议。由于Radius协议认证机制灵活,在现代通信得到了广泛应用,笔者单位宽带上网业务中,也是使用了Radius服务器进行宽带上网的认证。
Radius协议的交互原理是,当用户输入用户名和口令时,Radius客户端也就是我们网络中的BRAS就会根据获取的用户名和口令,向Radius服务器发送认证请求包。Radius服务器将该用户信息与Users数据库信息进行对比分析,如果认证成功,则将用户的权限信息以认证响应包的方式发送给BRAS。如果认证失败,则返回拒绝认证的响应包。BRAS根据接收到的认证结果接入或拒绝用户。如果可以接入用户,则BRAS向Radius服务器发送计费开始请求包。Radius服务器返回计费开始响应包。当BRAS向Radius服务器发送计费停止请求包时,Radius服务器就返回计费结束响应包。
分析了Radius协议的交互原理,那是否是Radius服务器在交互过程中,出现问题引发了故障呢?登录Radius服务器进行抓包测试,报文中Radius服务器与BRAS交互正常,排除了Radius认证系统发生故障的可能性。
接下来排查BRAS是否产生相关故障。BRAS是宽带远程接入服务器,它是面向宽带网络应用的新型接入网关,主要完成两方面功能,一是网络承载功能:负责终结用户的PPPoE连接、汇聚用户的流量;二是控制实现功能:与认证系统、计费系统和客户管理系统及服务策略控制系统相配合实现用户接入的认证、计费和管理。BRAS是通过Radius协议与Radius服务器相互通信。笔者单位根据网络需求,办公用户统一在gd域名下,以便实现更好的网络管理。以往遇到过地址池满导致的691拨号错误。是不是地址池满了?笔者登录所带用户的BRAS查看gd域名的用户地址池使用情况。要执行的命令如下:
show submanage ippool used-rate domain gd
//查看gd域名的地址池使用率
由图2可知,该地址池总数量为2045,使用率为33.69%,用户地址充足。由于以往处理的故障中也有License限制导致宽带拨号691错误,于是登录BRAS查看 License信 息,BRAS的License是通常被厂商作为网络设备某些功能的限制和扩展,show license是查看设备的软件使用范围授权。
show license
//查看BRAS License信息
由图3可知,License为48000,当前用户数是20176,整机支持的最大用户上线数量是256000,说明不是License限制的问题。
图2 gd域名下地址池利用率
图3 BRAS上的License信息
Show online-failedrecord user-name jnfgs123
//根据用户名,查看用户上线失败的记录
从中没有发现用户jnfgs123上线失败的记录信息,说明不是BRAS上的故障,根据网络拓扑,我们往下排查,定位到办公网交换机。
笔者采用Wireshark进行抓包分析,Wireshark是一个网络封包分析软件。仔细分析Wireshark撷取的封包能够帮助笔者对于网络行为有更清楚的了解。笔者在拨号的同时抓包,然后再进行过滤,目的是撷取PPPoE协议的相关报文,从而对故障进行定位。从报文中发现本机MAC地址发送认证请求给另一个MAC地址,该地址返回jnfgs123的用户名为not user的响应包给本机地址,拒绝认证本机用户。我们发现该地址与BRAS无关,根据网络拓扑分析,定位故障原因来自办公网交换机。
故障解决
定位故障原因在办公网交换机后,登录交换机,查找MAC地址的来源。使用以下命令来实现:
Show mac-addresstable | include 8081.00ff.be81
//查找MAC地址来源
查找到该MAC地址来自0/0/2端口,然后去排查了办公网交换机的这个端口,追根溯源,找到了是一台设置了上网控制认证功能的路由器,该台路由器冒充Radius服务器,对用户进行上网认证。关闭该路由器的上网控制认证功能后,故障得到解决。
经验总结
此次的691故障排查,从Radius服务器、BRAS以及办公网交换机三个方面着手,最后确定为设置上网认证功能的路由器冒充Radius服务器引发的故障。排查中学习和应用了Radius协议、PPPoE原 理、Radius与BRAS之间的交互过程、路由器的上网认证功能等相关知识,受益匪浅。笔者在以往的网络维护过程中,只注重问题是否解决,忽略了对于网络知识的深入研究。通过不断地学习,并针对此次网络的处理思路进行及时总结,逐步提高分析故障原因的能力,相信以后解决网络故障会事半功倍,为提高用户良好的上网体验打下坚实的基础。