员工或访客无法接入企业网络时,管理员可使用抓包工具查看认证请求、响应和返回结果,初步定位异常环节。本文介绍常用工具的选择、抓包操作和结果查看方法,适用于飞连 802.1X 和 Portal 网络准入等场景。
选择抓包工具
根据需要观察的认证环节和设备系统选择工具。查看终端与网络设备之间的认证交互时,在故障终端上抓包;查看网络设备与认证服务之间的交互时,在对应的 RADIUS 节点上抓包。选定工具后,按下文对应章节完成操作。
网络准入涉及 EAPOL、VLAN、RADIUS、Portal、DHCP、DNS、HTTP/HTTPS 等协议。排查时也可能需要查看 ARP、ICMP、TCP、TLS 和 UDP 报文。
使用 Wireshark
Wireshark 是开源的图形化网络协议分析工具,支持解析多种协议和查看报文封装结构,兼容 .pcap 和 .pcapng 文件。Windows 下依赖 Npcap,Linux 和 macOS 下依赖 libpcap。
安装工具
抓取报文
打开 Wireshark,在开始界面选择用于此次入网的网卡。例如,排查无线入网问题时,选择连接目标 Wi-Fi 的无线网卡。需要同时观察多个网卡时,可按以下方式多选。选择后启动抓包,再在故障终端上重新执行入网操作,等待问题再次出现。
- Windows/Linux:按住 Ctrl 键并单击多个网卡。
过滤和查看报文
抓包后,可在 Display Filter 中输入过滤条件,从报文列表中筛选与故障相关的流量。例如,输入 eapol 查看 802.1X 认证报文,或使用下面的 IP、端口条件缩小查看范围。输入正确时,输入框变为绿色,按回车或单击 Apply 生效;输入框变为红色时,需先修正语法。选中目标报文后,查看其源地址、目的地址、协议及报文详情。
保存抓包文件
问题再次出现后,停止抓包,将此次抓取的报文保存为 .pcap 或 .pcapng 文件。记录故障发生时间,便于后续在报文中定位对应的入网操作。需要继续分析时,可使用 Wireshark 打开已保存的文件,再按上面的过滤方法查看。
使用 Microsoft Network Monitor
Microsoft Network Monitor 是 Windows 图形化抓包工具,支持 Windows 网络事件和协议解析。在 Windows 无线网卡 802.1X 认证场景中,可使用它捕获 EAP 报文。
安装工具
抓取报文
以管理员权限打开 Microsoft Network Monitor,在 Select Networks 中选择用于此次入网的网卡。排查无线 802.1X 认证问题时,选择连接目标 Wi-Fi 的无线网卡。若未显示网卡信息,请先检查是否以管理员权限运行工具。
单击 New Capture 新建抓包,再单击 Start 开始抓包。
开始抓包后,在故障终端上重新执行一次入网操作,例如连接员工 Wi-Fi,等待问题再次出现。抓包过程中如需临时暂停,可单击 Pause;问题复现后,单击 Stop 停止抓包,再查看并保存此次抓取的报文。
过滤和查看报文
停止抓包后,在 Display Filter 中输入过滤条件,筛选与此次认证相关的报文。查看无线网卡的 802.1X EAP 报文时,输入 eapol 并应用过滤条件。选中报文列表中的目标报文,查看其协议和详细字段,再结合本文末尾的认证结果说明判断当前观察到的交互。
保存抓包文件
单击 Save As,选择文件保存位置并填写文件名,保存此次抓包结果。同时记录故障发生时间,以便将抓包文件与 RADIUS 日志中的同一次认证对应起来。
使用 tcpdump
tcpdump 是基于 libpcap 的开源命令行抓包工具,支持 BPF 过滤语法。可实时查看报文,也可保存为 .pcap 文件后导入 Wireshark 分析。
安装并验证工具
在需要抓包的服务器上打开终端,根据 Linux 发行版执行对应的安装命令。安装完成后,运行 tcpdump --version;能正常显示版本信息,即可继续执行抓包命令。若已安装 tcpdump,可直接检查版本,无需重复安装。
抓取报文
在需要抓包的 RADIUS 节点上执行命令。先使用 -D 查看可用网卡,再通过 -i 指定抓包网卡,并根据目标 AC 地址、协议和端口设置过滤规则。以下命令使用 sudo 运行,请确保具备相应抓包权限。
以下示例涵盖 RADIUS 认证与计费、Portal 认证和 ICMP 报文。选择与问题场景对应的命令,将示例 AC 地址、端口和保存路径替换为实际值后执行。抓包启动后,在故障终端上重新执行入网操作,等待问题再次出现,以便捕获此次认证的请求和响应。
查看和保存报文
需要实时查看报文时,使用上面带 -evvnn 的示例,观察终端输出的源地址、目的地址及协议详情。需要保存报文时,在开始抓包前使用 -w 指定文件路径,例如 /tmp/a.pcap。问题复现后,在运行 tcpdump 的终端中按 Ctrl+C 停止抓包,再读取文件或将其导入 Wireshark 分析。
若要在命令行中查看已保存的报文,使用 -r 指定文件。以下命令读取 /tmp/a.pcap 并以数字形式显示地址和端口;实际操作时,请替换为自己的文件路径:
判断认证结果
完成抓包后,先根据故障发生时间找到对应的认证报文,确认是否观察到请求、响应和最终结果,再决定下一步检查方向。终端侧和 RADIUS 节点侧能观察到的报文不同,应结合抓包位置、对应时间的 RADIUS 日志及网络设备配置分析。
查看 802.1X 认证报文
在终端侧使用 eapol 过滤认证报文,查看 EAP-Request、EAP-Response 以及最终的 EAP-Success 或 EAP-Failure。在 RADIUS 节点侧查看网络设备发来的 Access-Request 及服务器返回的 Access-Challenge、Access-Accept 或 Access-Reject。
EAP-Success、Access-Accept 表示认证通过;EAP-Failure、Access-Reject 表示认证失败。若只观察到部分请求或响应,先记录缺失的交互环节,再结合日志排查原因。
查看 Portal 认证报文
使用飞连 Portal Server 时,重点查看终端是否向 Portal Server 提交认证信息、Portal Server 是否向 AC 发出 REQ_AUTH、AC 是否发起 RADIUS 认证,以及后续的 ACK_AUTH 和 AFF_ACK_AUTH。示例端口为 TCP 9100、UDP 2000,以及员工认证 UDP 1812 或访客认证 UDP 3812。
若 Wireshark 无法解析 Portal 协议,可使用 portal.lua 插件;访客 UDP 3812 报文无法识别为 RADIUS 时,可通过 Decode As 指定解析协议。插件、配置步骤及截图请参见Portal 认证(员工/访客)入网失败。 ACK_AUTH 的 ErrCode=0 表示认证成功,其他取值需结合具体错误码和日志分析。若已认证成功但仍无法访问网络,应进一步核对下发权限及网络侧的访问情况。
结合日志确认结果
在对应 RADIUS 节点的 radius.event.log 中,按故障发生时间查找 user conn report,并结合账号等信息确认是否为此次认证记录。查看其中的 connResult:
- 1 表示认证成功。若认证及权限下发正常,但终端仍无法入网,请联合网络管理员或设备厂商检查网络侧问题。
- 2 表示认证失败。结合此次认证的具体错误日志继续排查。
- 3 表示认证降级。检查动态控制策略,确认是否触发了限制性处置。
若仍无法定位,请保存故障时间(精确到分钟)、影响范围、已执行的检查及结果、对应的 RADIUS 日志和抓包文件,提供给技术支持。