备用NAP服务器RADIUS无线身份验证不通过,无线控制器时常Active / Block切换故障实例分析

前言+环境拓扑:

最近公司新加了1台H3C WX6103无线控制器,用2台配成高可用,防止单点故障,我们的RAIDUS身份验证服务器也是只有1台,领导让我加1台作为备用RADIUS服务器,无线控制器可用配置一主多从个RADIUS服务器,实现热切换,即主RADIUS挂点的时候,备用RADIUS服务器可用接管用户身份验证的工作,整个环境的大概逻辑拓扑如下,我只画了1台无线控制器,对本文分析并无影响。

大概逻辑结构:

无线控制器配置:

由于现在企业中使用2008R2和2012已经成为主流,再使用2003系统已经不太适合,这里我选择了08R2,拓扑右上角这台NAP服务器就是我负责搭建的,搭建过程很简单不啰嗦了,参考已有的2003 IAS配置下RADIUS客户端IP、连接请求策略、网络策略。由于我们使用的是微软的身份验证方案,和AD集成,所以身份验证方式选择了PEAP-MSChap v2,它要求验证服务器端必须安装证书,可以和企业CA申请也可以自签名证书。

环境测试+故障现象:

配置好了NAP服务器后,接下来进入测试环节,我们的测试方案是:停止主验证服务器10.0.5.20上的RADIUS服务,测试此时无线客户端可否连接上无线,可以连接表示备用RADIUS服务器生效,用户身份验证成功,但是结果很遗憾,当主服务器刚停服务之后的一段时间内,无线确实是可以连接上的,可是过一段时间后便连接不上了。

当无线连接不上时,我们要考虑得问题是:

1.到底是无线控制器出了问题,还是备用RADIUS服务器出了问题?

2.为什么一会可以连接上无线(通过身份验证),一会又不行?

3.Windows日志里有什么报错没有?

4.无线控制器上显示的服务器状态是怎样变化的?有无日志可供参考。

这是我们排错所需要了解的问题,接下来我们开始分析和排错。

排错环节:

首先,我们先对NAP服务器进行验证,因为服务器是我搭建的,我不认为我哪里出了错,我对自己还是非常有信心的,下面我们来验证下NAP服务器的RADIUS验证,这里我使用了一个模拟工具RadEapTest 2.6,它可以帮我们模拟出一个NAS,同时可以让我们自己编写一个验证方案,包含身份验证方式,用户名密码等,模拟出这样的一个RADIUS Access-Request请求报文,同时可以完成后续的交互过程,完成身份认证的模拟,这个过程我测试是成功的,这证明故障时刻备用服务器可以成功进行身份验证。进一步证明,故障时刻我们观看Windows安全日志,并未发现有任何身份验证请求过来,既无身份验证成功的,也无身份验证失败的,通过简单的逻辑判断,我们可以基本认定:故障时刻,备用NAP服务器并未受到RADIUS Access-Request请求报文,即无线控制器并未将用户的验证请求转给备用NAP服务器,但是从服务器是没问题的。

整个身份验证过程有3个实体,用户、无线控制器、RADIUS服务器(以下简称主/从服务器),现在RADIUS服务器已经排除了,接下来我们再来看看无线控制器。

由于我对无线控制器不太熟,这块是H3C厂商工程师负责的,我只会敲dis radius sch查看服务器状态:Active/Block,这里我观察到,Second Auth Server时常会由Active变为Block,过段时间会变回Active,这时我需要知道的是:什么情况会触发Active变为Block,什么时候会变回Active?

经过在H3C网站上查找资料和咨询H3C工程师,得出以下结论:当主从服务器都是Active状态时,当主服务器Block后,无线控制器会把身份验证请求转给从服务器,当从服务器无法验证用户请求,从服务器就会变为block状态,当Active变为Block后,无线控制器会启动一个“恢复激活状态的时间”,默认是5分钟,5分钟后,状态自动变回Active,如此反复,也就是说是定时恢复,而不是检测恢复。

查到这里,问题已经已经确定,是因为Active/Block不定时切换状态引起的,但我们似乎还是没找到无线控制器状态为什么变化,Active变为Block,H3C的工程师也没分析出是什么原因,这时候我们要使用一些更深层的手段了,通过RADIUS协议和抓包来分析,任何事情都有它的本质,我们一起进入底层一探究竟。

关于RADIUS协议,我参考了这篇文章:,详细介绍了RADIUS报文格式、类型、和身份验证过程。

协议看过了,我们开始抓包,我们抓包要有目的,我需要抓到什么样的包?我需要抓到的是:无线控制器从服务器由Active变为Block这个过程,到底发生了什么?无线控制器给了我的从服务器一个什么的报文,服务器有没有给他回复,给他回复了什么,才导致的状态的变化,好了,开始吧!

先在从服务器上启动Wireshark,抓包并启动过滤条件ip.addr==10.1.156.1只看从无线控制器发过的包,此时无线控制上看到的服务器状态是双Active,然后我等他变为block,这里我还有个一个一直没想明白的问题,从服务器既然是从服务器,那么主服务器不挂,从服务器怎么可能收到RADIUS请求呢?这个问题我们抓包分析后再解释。

分析过程:

1.第一幅图,,在No.4039号包,我们看到从服务器收到了1个RADIUS Request请求,id 是100,通过我们刚才学习RADIUS协议得知,此时从服务器应该回复一个Access-Challenge报文,我们仔细观察id是101、102、103…的包,可以看到从服务器都有给无线控制器回复Access-Challenge报文,唯独id 100没有回复,并且在第二幅图中,我们看到了id是100的重复请求报文,在整个抓包的过程,我都没有看见id 100的回复报文,大概在收到2951号包的9秒钟之后,开始抓不到RADIUS报文了,我猜这时无线控制器已经显示从服务器block了,结果也确实如我所料。

2.我们再来看看从服务器的温都死安全日志,我们筛选一下时间,把时间锁定在这9秒钟(范围稍微放大一点,可能会略有点时间差),按时间升序排列。

你发现一种巧合了吗?没错,第一个审核失败对应抓包里的4039号包,第二、三个审核失败对应4215和4235号包。我们再来看看这几个审核失败的日志,到底记录了什么。

这3个审核失败都是这个原因,“网络策略服务器从网络访问服务器接收的 RADIUS 请求消息格式不对。”

这个时候我想到的是百度、谷歌、微软technet里搜索这个错误解决办法,但是很遗憾没有找到。

生活不会永远都困难;祝你爱情蜜甜,事业大进步

备用NAP服务器RADIUS无线身份验证不通过,无线控制器时常Active / Block切换故障实例分析

相关文章:

你感兴趣的文章:

标签云: