1. 为什么我推荐“本地转发 + AD域认证”这套组合
先聊点实在的。很多刚接触企业无线网络的朋友,拿到H3C无线控制器(AC)和AP之后,第一反应是把所有流量都集中到AC上转发,觉得这样“统一管理、统一认证”。这种集中转发模式在小规模场景里确实省心,但当终端数量上来、视频会议和云桌面这类大流量应用变多之后,AC的转发压力会肉眼可见地变大,带宽瓶颈、漫游卡顿、AC宕机全公司断网的问题都会慢慢冒出来。
本地转发(Local Forwarding)的思路刚好反过来:AP只和AC建立控制隧道(CAPWAP隧道),负责下发配置、上报状态;而终端上网数据直接由AP通过接入交换机转发出去,不再绕道AC。这样做的好处非常直接——AC的负载大幅下降,数据路径变短,延迟和丢包都小了,即使AC出现故障,已关联的终端业务也不会立刻中断。另一个容易被忽略的点是,本地转发模式下,AC和AP之间不需要为业务流量占用隧道带宽,这对部署在分机房、跨三层组网的环境来说尤其友好。
而“集成AD域做账号认证”,解决的是另一个问题:准入控制。企业内部绝大多数账号体系都在Windows AD域里,如果无线网络能直接用AD账号做认证,员工就不需要再记一套单独的Wi-Fi密码,离职员工的账号也能随AD账户禁用而自动失去网络访问权限。把这两件事结合起来,等于同时解决了“体验”和“安全”两个核心诉求。这篇文章适合正在做企业无线网络改造、想把H3C AC从集中转发切到本地转发,并且希望用AD域账号打通无线认证的同行参考,我把从组网规划到命令行配置的完整过程都梳理了一遍。
2. 环境准备与组网规划,比敲命令更重要
很多人配置到一半发现认证不通过,回头排查才发现是网络规划阶段就埋了雷。所以我先把环境规划和前提条件放在前面说,这些没搞明白,后面配置得再漂亮也是白搭。
2.1 先搞清楚网络拓扑和VLAN划分
本地转发模式下,业务VLAN的划分直接决定数据流怎么走。以一个典型的中型企业场景为例,我建议至少规划三个VLAN:管理VLAN负责AC和AP之间的CAPWAP隧道,可以单独建一个管理网段;员工无线VLAN承载员工终端的业务数据,这个VLAN要在接入交换机上创建,并且最终能路由到公司内网和出口网关;访客VLAN如果不做隔离,后续安全审计会比较被动。
有一个细节必须注意:本地转发模式下,业务VLAN的三层接口通常不在AC上终结,而是在核心交换机上终结。AC只需要能路由到认证服务器(AD域和RADIUS服务器)即可,AP通过CAPWAP隧道从AC学到业务VLAN的映射关系后,在本地把无线报文打上对应VLAN标签,经过接入交换机进入网络。如果你把业务VLAN的子接口配在AC上,本地转发模式反而绕不回来,这是新手最容易踩的坑。
2.2 必须满足的基础条件和版本要求
这套方案能跑起来,有几个硬性前提条件,缺一个都可能导致认证失败或者漫游异常:
AD域控制器和RADIUS服务之间需要网络互通,这里说的不仅是IP通,还包括端口通。AD域认证走的是LDAP协议,默认端口是389(非加密)或636(LDAPS);如果直接在AC上做LDAP认证,AC需要能访问AD域控的这两个端口。如果采用RADIUS服务器做中转,RADIUS认证端口1812、计账端口1813要在防火墙上放通。
AC和AD域控的时间必须同步。Kerberos认证对时间偏差极其敏感,默认允许的最大偏差是5分钟,但现实中偏差超过1分钟就会稳定报错。我在生产环境里踩过这个坑,AC上电后时间默认是2015年,AD域里账号认证怎么都过不去,日志里全是时间戳错误。所以必须先配NTP,让AC和AP都同步到公司统一的NTP服务器。
AC和AP的软件版本需要确认支持本地转发和LDAP/RADIUS认证。H3C的WX系列AC,配合对应版本的Fit AP,本地转发已经是标配功能,但老版本可能存在Bug,建议升级到官网最新的稳定版本。另外,如果AP是跨三层注册的,DHCP需要下发Option 43字段来指定AC地址,这个也要提前规划好。
提示:如果你用的是H3C Cloud Lab模拟器做验证,遇到设备启动不了的情况,先检查虚拟机的CPU虚拟化是否开启、内存是否给够,建议至少分配4GB内存给AC虚拟机,这2个问题占模拟器启动失败的八成原因。
2.3 AD域侧要准备哪些对象
AD域侧的准备工作,很多人误以为只需要建好账号就行,实际上还取决于你的认证方案。H3C AC支持两种对接AD域的方式:一种是AC直接通过LDAP协议查询AD域控做认证;另一种是AC对接RADIUS服务器,由RADIUS服务器再对接AD域。两种方式各有优劣,后面我会详细对比,这里先说通用准备。
AD域控需要开启“允许匿名LDAP查询”或者为查询专门建一个服务账号。如果AC直连AD域做LDAP认证,AC需要用到管理员账号来搜索域用户,这个账号必须有“读取目录信息”的权限。安全起见,不要用域管理员账号,单独建一个svc_wifi_query之类的服务账号,密码设置为永不过期。
如果采用RADIUS中转方案,需要在RADIUS服务器(可以是Windows NPS,也可以是第三方RADIUS)上配置RADIUS客户端,也就是把AC或AP的IP地址加为RADIUS Client,并设置共享密钥。然后需要把AD域用户加入RADIUS认证的拨入权限,Windows NPS里默认是“通过NPS网络策略控制访问”,这一步漏掉的话,用户认证会直接拒绝。
3. 两种AD域对接方案的选型对比
我先说结论:如果公司有现成的RADIUS服务器,优先选RADIUS中转方案;如果网络规模和AD域规模都不大,AC直连LDAP方案更轻量。下面把两种方案放在一起详细看。
3.1 AC直连LDAP认证方案
AC直连AD域控,使用LDAP协议查询用户信息并完成认证。AC上配置LDAP服务器模板,绑定到RADIUS方案或ISP域里,用户连接Wi-Fi输入AD账号密码后,AC把用户名密码封装成LDAP bind请求发送给AD域控。
这个方案的优点是部署链路短,不需要额外部署RADIUS服务器,排障点少。缺点是AC需要保存明文密码的验证逻辑,而且如果你的认证策略比较复杂,比如需要按用户组区分不同的VLAN或带宽策略,纯LDAP方案实现起来会比较吃力。还有一个潜在问题:LDAP方式无法区分“用户密码错误”和“用户被禁用”的具体原因,排障日志里只能看到认证失败。
3.2 RADIUS中转方案(推荐)
RADIUS中转方案是目前企业里最常见的做法。AC作为RADIUS客户端,把认证请求发给RADIUS服务器;RADIUS服务器对接AD域,完成用户身份校验后返回接受或拒绝结果。H3C AC自身就支持内置RADIUS服务器功能,但IDU版本和企业版功能差异较大,我更推荐把Windows NPS(Network Policy Server)作为RADIUS服务器,因为NPS和AD域天生是一家,配置起来最顺滑。
我会在第4节和第5节分别给出两种方案的配置过程,你根据自己的环境选择合适的路径。
| 对比维度 | AC直连LDAP | RADIUS中转(NPS) |
|---|---|---|
| 部署复杂度 | 低 | 中 |
| 认证策略灵活性 | 低 | 高 |
| 日志可读性 | 一般 | 好 |
| 是否需要额外服务器 | 否 | 是 |
| 适合场景 | 小型网络(1-2台AC) | 中大型网络、多AC统一认证 |
4. AD域和RADIUS服务器侧的完整配置
这一节开始进入实操。我先按RADIUS中转方案来写,因为这是大多数生产环境的选择,AC直连LDAP的配置在第5节单独讲。
4.1 Windows NPS安装与基础配置
在Windows Server上安装NPS角色,这一步很简单,服务器管理器里添加角色和功能,勾选“网络策略和访问服务”下面的“网络策略服务器(NPS)”即可。安装完之后先不要急着配置,先把服务器加入AD域——如果NPS服务器本身不在域里,后面读取域用户信息会非常麻烦。
NPS安装完成后,需要注册到AD域中。在NPS控制台左侧右键“NPS(本地)”,选择“在Active Directory中注册服务器”,这个操作会让NPS有权限在AD域中读取用户的拨入属性。我遇到不少朋友跳过了这一步,导致后面NPS的策略永远匹配不上用户,这个注册动作很关键。
然后是配置RADIUS客户端:在NPS控制台里找到“RADIUS客户端和服务器” -> “RADIUS客户端”,右键新建。这里要填的客户端IP地址是AC的IP地址,共享密钥要设置一个足够复杂的字符串,后面AC配置里要用同一个密钥。注意,如果你有多台AC,每台AC都要添加为RADIUS客户端。
4.2 配置网络策略(Network Policy)
网络策略是NPS最核心的配置,相当于认证授权的规则引擎。我的建议是按照“先拒绝后允许”的原则来组织策略:建一个“拒绝非域用户”的策略,匹配条件设置为“Windows组 不等于 Domain Users”,验证方法选“PEAP”或“PAP/SPAP”,访问权限选“拒绝访问”。
然后建“允许域用户接入”的策略,匹配条件设置为“Windows组 等于 Domain Users”,访问权限选“访问已授予”。如果后续要不同部门分配不同VLAN,就在这个策略里配置“VLAN”属性,在“设置”选项卡的“标准”里选择“VLAN ID”,填入对应VLAN号,并设置“VLAN类型”为“未标记”或“已标记”,具体取决于你的交换机接口模式。
关于身份验证方法,NPS默认会启用EAP和PEAP,但H3C AC走RADIUS认证时,很多场景用的是PAP。为了兼容性,我会在策略里同时启用“PAP/SPAP”和“PEAP”。生产环境如果允许明文密码走无线网络,建议用PEAP或者EAP-TTLS替代PAP,毕竟安全无小事。不过,PEAP需要AC侧配置信任的CA证书,复杂度高一些,所以下面我先按PAP方式来写,保证能跑通,再提醒你后续安全加固的方向。
4.3 AD域用户拨入权限设置
如果你用的是Windows NPS,且域功能级别是2008以上,用户拨入权限默认由NPS网络策略控制,单个用户属性页里的“拨入”选项卡基本不用改。但如果你发现用户认证一直被拒绝,检查一下这个用户的拨入权限是不是被设置成了“拒绝访问”。这种情况在AD域从老版本升级过来时比较常见,老域可能默认继承“通过NPS策略控制”之外的设置。
批量设置拨入权限可以用ADSI Edit或者PowerShell,如果只有几个测试账号,直接在AD用户和计算机里改也行。我的习惯是建一个“无线接入用户”的AD组,把需要无线上网的用户全部加进这个组,NPS策略只针对这个组做匹配,这样后续人员离职调岗,只需要调整AD组成员关系,网络权限自动跟着变,不涉及NPS配置。
注意:NPS策略的匹配顺序是从上往下,第一条匹配到的策略生效。所以一定要把“拒绝”策略放在最上面,防止用户命中了后面的允许策略而绕过限制。
5. H3C AC上的核心配置全过程
AC侧的配置是整个链路里最需要细抠的部分。我会把命令和配置思路一起写,你在实际环境里根据设备型号稍作调整即可。
5.1 基础配置:NTP、RADIUS模板、ISP域
第一步是时间同步。在AC上执行如下命令:
system-view ntp-service enable ntp-service unicast-server 192.168.10.10这里192.168.10.10是你公司NTP服务器的IP,如果NTP服务器本身就是AD域控,也可以把AD域控的IP填进去。配置完成后用display ntp-service status查看同步状态,确认时钟源是“synchronized”,再继续下一步。
第二步配置RADIUS方案:
radius scheme ad_radius primary authentication 192.168.10.20 1812 primary accounting 192.168.10.20 1813 key authentication cipher Simple@123456 key accounting cipher Simple@123456 user-name-format keep-original nas-ip 192.168.10.30这里的192.168.10.20是NPS服务器地址,192.168.10.30是AC自己用于RADIUS通信的源IP地址。密钥必须和NPS里配置的共享密钥一致,否则认证包会被NPS直接丢弃。user-name-format keep-original的意思是保留用户输入的完整用户名格式,因为AD域用户可能输入“user\zhangsan”或者“zhangsan@domain.com”,格式不统一会导致查询失败。如果你能保证终端用户输入的都是纯用户名,也可以设置为without-domain,把域名剥掉再发给RADIUS服务器。
第三步配置ISP域并绑定RADIUS方案:
domain ad_domain authentication lan-access radius-scheme ad_radius authorization lan-access radius-scheme ad_radius accounting lan-access radius-scheme ad_radius这里lan-access表示局域网接入认证,无线用户属于这种接入类型。如果你还配置了Portal认证,这里会多一个Portal相关的认证方法,但我们现在做的是802.1X或者MAC认证,所以只要RADIUS即可。
5.2 WLAN服务模板配置与本地转发
创建无线服务模板,SSID建议直接命名为容易识别的名称,比如CORP-WIFI。下面是关键配置:
wlan service-template ad_wifi ssid CORP-WIFI vlan 100 client forwarding-location ac client authentication-algorithm shared quit等等,client forwarding-location ac是集中转发的配置,本地转发要改成client forwarding-location ap。有些朋友在配置模板时看到默认就是AP转发,就没在意,结果业务VLAN的网关配在AC上,导致本地转发模式下终端无法获取IP,这个前后一致性要检查清楚。
正确的本地转发配置如下:
wlan service-template ad_wifi ssid CORP-WIFI vlan 100 client forwarding-location ap client authentication-algorithm shared quit接下来配置802.1X认证:
wlan service-template ad_wifi dot1x authentication-method eap quit这里说一个容易困惑的点:dot1x authentication-method eap和dot1x authentication-method pap有什么区别?如果选择EAP中继方式,AC把802.1X的EAP报文直接封装成RADIUS Access-Request报文发给NPS,NPS和客户端之间做完整的EAP协商,这种方式更安全,但需要NPS配置证书支持PEAP;如果选择PAP,客户端密码需要以明文方式在EAP内部传输,兼容性更好但安全性差一些。要让集成AD域认证顺利跑通,我建议先按PAP方式调通,上线前再从安全角度升级到PEAP。
如果你使用的是H3C较新的版本,服务模板下可能还支持dot1x authentication-method eap-peap这类选项,以实际设备为准。
5.3 AP注册与射频配置
AP通过CAPWAP协议注册到AC后,需要把服务模板绑定到射频上:
wlan ap ap-01 model WA6320 serial-id 219801A0CNC1234567890 radio 1 service-template ad_wifi vlan 100 radio 2 service-template ad_wifi vlan 100 quit在本地转发模式下,service-template ad_wifi vlan 100这行里的VLAN是给终端分配的业务VLAN。AP会在本地把无线帧打上VLAN 100的标签发送给接入交换机。接入交换机的接口要配置为Trunk类型,放通管理VLAN和业务VLAN 100,否则AP能注册成功,但终端数据出不去。
5.4 AC直连LDAP域认证的配置方法
如果你决定不走RADIUS方案,AC直连LDAP的方式配置如下:
ldap server ad_ldap ip 192.168.10.10 port 389 version 3 login-dn cn=administrator,cn=users,dc=domain,dc=com login-password cipher Simple@123456 search-base dc=domain,dc=com quit这里的login-dn是AC用来绑定AD域控的账号DN,search-base是用户搜索的起始路径,按你的AD域名结构填写。LDAP服务器模板配置好之后,同样要在ISP域里绑定:
domain ad_domain authentication lan-access ldap-scheme ad_ldap authorization lan-access ldap-scheme ad_ldapLDAP直连方案的优点和缺点我在第3节都说了,如果你只是验证功能,用这个方案最快;如果要对接到现有NPS策略体系,还是RADIUS方案更合适。
5.5 关键命令验证配置是否正确
配置完成后,先别急着连Wi-Fi测试,在AC上执行以下命令检查:
display wlan service-template ad_wifi display radius scheme ad_radius display domain ad_domain display wlan ap all重点关注服务模板是否处于enabled状态,RADIUS方案的服务器状态是否active,AP是否R/M状态(运行/管理状态正常)。如果AP一直显示Idle或Download,优先检查AC和AP之间的管理VLAN连通性。
6. 常见问题排查与经验分享
这部分是我最想写的内容,因为配置步骤文档里都有,但排障经验真的是靠一次一次踩坑攒出来的。
6.1 认证失败的排查套路
当用户连接SSID后反复提示输入密码,或者认证直接报错,我一般按下面的顺序排查:
检查RADIUS通信是否正常。在AC上执行debugging radius packet,然后让用户重新认证一次。如果AC完全没有发出Access-Request包,说明RADIUS配置没有生效或者ISP域没绑定对;如果发出去但收不到响应,查看NPS的“RADIUS客户端”里是否添加了AC的IP,以及共享密钥是否一致。
检查NPS的事件日志。在Windows事件查看器里定位到“NPS”日志,失败的认证请求都会在这里留下记录。最常见的报错是“用户被拒绝,因为不符合网络策略”,这说明NPS策略没匹配上,回去检查策略的顺序和条件;还有一种报错是“无法建立与域控制器的连接”,这说明NPS到AD域控的LDAP通信有问题。
检查AD账号是否被锁定或禁用。这个排查点最容易忽略,尤其是设置了账户锁定阈值的域环境,用户连续输错几次密码后账号被锁,表现就是无线认证怎么都不通过。在域控上用net user username /domain查看账号状态。
6.2 本地转发模式下终端获取不到IP
这个问题在切换转发模式后非常常见。我建议按以下顺序检查:
接入交换机上对应AP下行接口的VLAN配置。AP上联口要放通管理VLAN和所有业务VLAN。AP的native VLAN必须是管理VLAN,否则AP无法获取IP地址注册到AC。
DHCP服务器位置。本地转发后,终端的DHCP请求会直接发到业务VLAN的网关,也就是核心交换机或者独立的DHCP服务器。如果DHCP服务器之前配置的是只为某个网段分配地址,要确认新规划的业务VLAN网段已经添加到DHCP作用域里。
AC上是否启用了DHCP Snooping或者IP Source Guard之类的安全功能。这些功能在某些版本下会影响AP侧地址获取,如果开关配置得不正确,终端会拿到地址但无法通信。
6.3 AD域用户登录出现“Temp账户”问题
实际运维中我碰到过一次:AD域用户用无线认证成功后,登录域里的电脑时,系统加载的是临时配置文件,桌面图标和设置全都没了,看起来像换了新用户一样。这个问题其实和无线认证本身没有直接关系,而是AD域用户配置文件损坏导致的。
常见诱因包括:用户配置文件路径错误、漫游配置文件共享权限不对、AD账号的profile属性设置异常。处理方法是:备份该用户的桌面文件和注册表配置,删除损坏的配置文件,清除注册表里ProfileList下对应的ProfileImagePath键值,然后让用户重新登录域,系统会重新生成一个干净的配置文件。
如果这种“Temp账户”问题频繁出现,优先检查所有域控之间是否完成了同步复制。本地两台AD域控做主备时,如果主域控上的用户信息没有同步到备域控,用户从备域控认证时读取到的账号属性就是不完整的,也会引发异常。用repadmin /replsummary检查域控同步状态,确保复制正常。
6.4 认证成功但无法上网的排查
这类问题比较隐蔽,因为认证环节通过,说明RADIUS交互正常,问题往往出在授权阶段。你需要在NPS网络策略里检查是否配置了下发的属性。很多情况下,我建议在策略里下发VLAN属性,保证用户认证成功后端口被动态划分到指定VLAN,而不是默认停留在初始VLAN。
另一个容易被忽略的问题是AC上的ACL或用户组授权策略。H3C AC支持在ISP域下配置authorization-attribute,如果配置了特定的ACL编号,但ACL规则本身是空的或者匹配顺序不对,就会把用户的流量全部丢弃。检查AC上是否配置了packet-filter相关的用户授权策略,确认规则内容是否有误。
无线侧还有一个常见原因:AP射频的接入密度过高。当一个AP同时接入大量终端时,H3C AC默认开启了负载均衡和频谱导航功能,新终端可能会被引导到信号更强的频段。如果这个频段的信道拥挤,用户体验到的就是“连上了但刷不动”。把radio下的client max-count调低一点,或者关闭频谱导航,做一个对比测试就能确认。
6.5 我个人的一些排障心得
做这个项目调通之后,我的体会有三点。第一,任何认证系统的排障,最先查的永远是时间对不对,其次是网络通不通,最后才是配置对不对。顺序错了,排查效率低一半。第二,改配置一定要有记录意识。AC上执行display current-configuration导出当前配置,命名成带日期的文件保存下来,万一改坏了可以快速回滚。第三,在NPS的RADIUS日志和AC的调试日志里做交叉验证,基本能把85%以上的认证问题定位出来。
7. 从能用到好用,这套方案后续还能怎么优化
当整条链路都跑通之后,你会发现这套方案真正打开了企业无线认证自动化的大门。
考虑部署多台AC做集群或者负载分担时,RADIUS方案天然支持多AC,只需要把每台AC都添加为NPS的RADIUS客户端即可。这样即使单台AC故障,其他AC能够接替认证服务。本地转发模式配合多AC组网,还能减少业务流量跨AC绕行的距离,这对跨楼宇办公的企业特别实用。
如果你有动态VLAN下发的需求,NPS策略里可以针对不同用户组下发不同的VLAN ID。这样访客用户自动划分到隔离VLAN,只能访问互联网;财务部用户划分到专网VLAN,能访问财务系统;研发部用户划分到开发网段,互相之间还可以做二层隔离。整个无线网络就从一个“大广播域”变成了一个“按身份动态划分的精细网络”。
如果后续担心无线空口安全,可以把EAP-PEAP或EAP-TLS方案升级上去。在NPS上部署企业CA证书,客户端申请证书后使用EAP-TLS做双向认证,安全性比PAP方案高好几个等级。H3C AC侧只需要把dot1x authentication-method eap配置保持即可,剩下的认证协商交给NPS和客户端完成。
我最后再分享一个小技巧:把AC的调试日志时长打开到足够大,然后配置一个自动导出日志的计划任务。遇到难以复现的无线掉线问题,直接翻历史日志的时间点,比等用户反馈再排查要快得多。这个习惯我坚持了很多年,帮我在好几个“莫名其妙的掉线”问题里找到了真正的原因——其实都是某个AP的固件有内存泄漏导致的,升级AP版本后彻底解决。