
RADIUS 经 F5 VIP 后真实地址回包问题分析笔记1. 结论摘要本次抓包中锐捷 S5310 交换机100.0.0.204向 F5 虚拟地址100.0.177.12发起 RADIUS/802.1X 认证请求但响应报文由后端真实地址100.0.14.1直接回给交换机。测试时交换机配置为aaa group server radius 2 server 100.0.177.12 server X.X.X.X aaa authentication dot1x default group 2其中 group 2 不包含旧配置中的 F5 后端真实地址100.0.14.1。因此本次认证能够通过不能解释为“100.0.14.1 本来就在 RADIUS 服务器列表中”。更合理的判断是锐捷 S5310 在该 dot1x/RADIUS 场景下没有强制要求响应报文源 IP 必须等于配置的 radius-server IP。 它接受了来自 100.0.14.1 的 RADIUS Access-Challenge / Access-Accept 并依据 RADIUS 协议层的 Identifier、Response Authenticator、shared secret 继续完成认证。认证结果可用但 F5/VIP 回程形态不规范。标准和更稳妥的生产形态应当让交换机看到响应源地址仍为 VIP100.0.177.12:1812 - 100.0.0.204:1812而不是100.0.14.1:1812 - 100.0.0.204:18122. 拓扑示意EAPOLRADIUS Access-Requestdst 100.0.177.12:1812负载均衡 / DNATAccess-Challenge / Access-Acceptsrc 100.0.14.1:1812dst 100.0.0.204:1812终端 / Supplicant锐捷 S5310SD53XF04-A4100.0.0.204F5 Virtual ServerVIP 100.0.177.12:1812后端 RADIUS 真实服务器100.0.14.1:1812现象请求目的地址是 VIP响应源地址是后端真实地址3. 抓包文件与对象抓包文件F:\A-工作间\A-FTP\ras_2_办公网_(2026-06-25 15_39_00 - 2026-06-25 15_43_05)_1782437338409.pcap关键地址对象地址说明交换机100.0.0.204锐捷 S5310dot1x NAS / RADIUS clientF5 VIP100.0.177.12交换机配置的 RADIUS 目标地址后端真实 RADIUS100.0.14.1抓包中实际回包源地址RADIUS 端口1812/UDP认证报文端口抓包统计类型数量方向Access-Request6100.0.0.204 - 100.0.177.12Access-Challenge3100.0.14.1 - 100.0.0.204Access-Accept3100.0.14.1 - 100.0.0.204二层 MAC 方向方向源 MAC目的 MAC交换机发往 F5/VIP9c:ce:88:51:45:d4c4:d4:38:1d:e9:02真实 RADIUS 回交换机c4:d4:38:1d:e9:029c:ce:88:51:45:d44. 抓包显示的状态Wireshark 中可见的 RADIUS 交互状态如下No.相对时间源地址目的地址RADIUS 类型IdentifierEAP 内容10.000000000100.0.0.204100.0.177.12Access-Request9EAP Response Identity20.021293689100.0.14.1100.0.0.204Access-Challenge9EAP Request MD5-Challenge30.029288125100.0.0.204100.0.177.12Access-Request10EAP Response MD5-Challenge40.050559574100.0.14.1100.0.0.204Access-Accept10EAP Success533.175688832100.0.0.204100.0.177.12Access-Request11EAP Response Identity633.200952565100.0.14.1100.0.0.204Access-Challenge11EAP Request MD5-Challenge733.207024145100.0.0.204100.0.177.12Access-Request12EAP Response MD5-Challenge833.230293763100.0.14.1100.0.0.204Access-Accept12EAP Success9203.712265689100.0.0.204100.0.177.12Access-Request13EAP Response Identity10203.713307090100.0.14.1100.0.0.204Access-Challenge13EAP Request MD5-Challenge11203.723112124100.0.0.204100.0.177.12Access-Request14EAP Response MD5-Challenge12203.724104311100.0.14.1100.0.0.204Access-Accept14EAP Success可以看到交换机每次 Access-Request 都发往100.0.177.12。每次 Access-Challenge / Access-Accept 都从100.0.14.1返回。RADIUS Identifier 是连续配对的例如id9的 Request 对应id9的 Challengeid10的 Request 对应id10的 Accept。EAP-MD5 流程完整最终出现 Access-Accept / EAP Success说明终端认证已通过。5. 抓包分析5.1 五元组现象请求方向100.0.0.204:1812 - 100.0.177.12:1812响应方向100.0.14.1:1812 - 100.0.0.204:1812如果按严格的 UDP 会话五元组反向匹配响应源地址应当是100.0.177.12。实际源地址变成100.0.14.1说明外层 IP 五元组不对称。5.2 为什么仍能认证通过本次测试配置的 RADIUS group 2 不包含100.0.14.1但认证仍然通过说明锐捷 S5310 在此场景下没有把“响应源 IP 不等于配置 server IP”作为硬失败条件。更可能的处理逻辑是1. 交换机本机 UDP 1812 收到 RADIUS 响应报文。 2. RADIUS 客户端用 Identifier 匹配 pending Access-Request。 3. 使用对应请求的 Request Authenticator 和 shared secret 校验 Response Authenticator。 4. 校验通过后继续 EAP Challenge / Accept 流程。 5. 外层源 IP 100.0.14.1 ! 100.0.177.12 没有触发丢弃。5.3 F5 侧含义该现象通常意味着以下情况之一可能原因说明后端服务器直回请求经 F5 到后端后端回交换机时绕过 F5F5 未对回程做源地址转换回包没有被转换回 VIP回程路由非对称后端 RADIUS 到交换机网段的路由不经过 F5类 DSR/nPath 设计如果是故意设计必须确认交换机和安全策略都接受这种形态生产上更建议检查 F5 Virtual Server、Pool、SNAT Automap/SNAT Pool、后端服务器默认网关和回程路由使交换机侧看到的响应源统一为 VIP。6. RFC 2865 原理依据RFC 链接https://datatracker.ietf.org/doc/html/rfc28656.1 Section 3 - Packet Format链接https://datatracker.ietf.org/doc/html/rfc2865#section-3相关内容RADIUS 报文封装在 UDP Data 字段中RADIUS 认证端口为 UDP 1812。Identifier 字段用于匹配 request 和 reply。Authenticator 字段用于认证来自 RADIUS server 的 reply。对 Access-Accept、Access-Reject、Access-ChallengeResponse Authenticator 的计算要素为Code Identifier Length 原始 Access-Request 的 Request Authenticator 响应 Attributes Shared Secret摘要算法为 MD5。注意这里没有外层 IP 源地址、目的地址、UDP 源端口、UDP 目的端口。对应 RFC 公式ResponseAuth MD5(Code ID Length RequestAuth Attributes Secret)这说明RADIUS 协议层的响应认证摘要本身不把外层 IP 源地址纳入计算。6.2 Section 4.2 - Access-Accept链接https://datatracker.ietf.org/doc/html/rfc2865#section-4.2相关内容收到 Access-Accept 后NAS 使用 Identifier 匹配一个 pending Access-Request。Response Authenticator 必须是该 pending Access-Request 的正确响应。无效报文会被静默丢弃。Access-Accept 中的 Identifier 是触发它的 Access-Request 的 Identifier 副本。本次抓包里id10的 Access-Request 对应id10的 Access-Acceptid12对应id12id14对应id14符合这一匹配逻辑。6.3 Section 4.4 - Access-Challenge链接https://datatracker.ietf.org/doc/html/rfc2865#section-4.4相关内容收到 Access-Challenge 后Identifier 字段也要匹配 pending Access-Request。Response Authenticator 必须是该 pending Access-Request 的正确响应。如果 NAS 支持 challenge/response收到有效 Access-Challenge 后会发送新的 Access-Request。本次抓包里id9的 Access-Request 对应id9的 Access-Challenge随后交换机继续发出id10的 MD5-Challenge Response说明交换机接受了该 Challenge。6.4 关于“源 IP 是否必须一致”的边界RFC 2865 定义的是 RADIUS 协议层的报文格式、Identifier 匹配和 Authenticator 校验逻辑。它没有把外层 IP 源地址写入 Response Authenticator 计算也没有明确要求 NAS 必须因为响应源 IP 不等于配置 server IP 而丢弃该响应。但是这不等于所有厂商设备都会接受这种报文。厂商实现可以额外增加源地址校验、防重放检查、会话五元组检查或安全策略。因此本次现象应表述为锐捷 S5310 当前版本/当前 dot1x 场景下实测接受了源 IP 为后端真实地址的 RADIUS 响应 从 RFC 2865 的 RADIUS 协议层校验逻辑看这在 Identifier Response Authenticator shared secret 校验通过时可以解释 但从 F5 负载均衡与生产规范角度仍建议修正为 VIP 源地址回包。7. 风险与建议7.1 风险风险说明设备兼容性风险换其他型号、其他版本、其他厂商设备后可能严格校验响应源 IP安全策略风险防火墙、IPS、会话检测设备可能认为回包源地址异常运维排障风险配置目标是 VIP但日志和抓包显示真实地址容易误判多后端风险如果 F5 后端池有多台 RADIUS源地址可能随调度变化后续功能风险Accounting、CoA、审计联动可能对源地址更敏感7.2 建议检查项F5 侧建议检查1. Virtual Server 100.0.177.12:1812 是否启用地址转换。 2. Pool member 是否包含 100.0.14.1。 3. 是否启用 SNAT Automap 或 SNAT Pool。 4. 后端 RADIUS 服务器到 93.4.19.0/24 的回程路由是否经过 F5。 5. 是否存在 DSR/nPath/透明转发类设计。交换机侧建议保留的验证命令show running-config | include radius-server|aaa group server radius|aaa authentication dot1x建议的规范目标交换机请求 100.0.0.204:1812 - 100.0.177.12:1812 交换机收到 100.0.177.12:1812 - 100.0.0.204:18128. 最终表述可用于报告中的一句话本次锐捷 S5310 终端 802.1X 认证可通过但抓包显示 RADIUS 请求发往 F5 VIP 100.0.177.12 后响应由后端真实地址 100.0.14.1 直接返回交换机。测试时交换机 RADIUS group 不包含该真实地址说明该设备在当前版本/场景下未强制校验响应源 IP 与配置 server IP 一致而是依据 RADIUS Identifier、Response Authenticator 和共享密钥完成协议层校验。该行为可解释认证成功原因但 F5 回程形态不规范建议整改为由 VIP 源地址统一回包。