校园网下 ikuai 路由器 IPv6 配置
Abstract
本文主要解决了在校园网环境下,ikuai 路由器无法使用 DHCPv6 和中继模式的进行局域网内终端设备 v6 地址分配的问题,重点在于校园网未提供 DHCPv6-PD。
1 前情提要
校园网内提供 IPv6 地址,但是接上 ikuai 的路由器就不能使用了,导致如果希望连接部分 v6 的网站,只能拔了网线用校园网,很是头疼。
之前折腾过好几次都没有成功,这次借着 Codex 分析了一下原因,给 ikuai 提交了工单,很快解决了。发现主要的问题在与校园网未提供 DHCPv6-PD。
2 问题分析
2.1 问题表现
原配置中,WAN 与 LAN 都使用 IPv6 中继模式:
- WAN 能获得公网 IPv6
/128地址和网关; - 路由器自身能够访问公网 IPv6;
- LAN 终端能够通过 SLAAC 获得
2403:ac00:2023:ab::/64内的公网地址和默认路由; - 但 LAN 终端访问任意公网 IPv6 均失败。
典型测试结果:
- 路由器通过
adsl_3Ping240c::6666:4/4 成功,0% 丢包; - LAN 终端 Ping 公网 IPv6:100% 丢包;
- LAN 终端绕过 DNS 直接访问 IPv6 HTTPS:连接超时;
- 电脑直接拨号或使用其他路由器时,IPv6 正常。
排查中还完成了以下测试:
- 重启 WAN/LAN IPv6 中继,无改善;
- 重拨 PPPoE,无改善;
- 更换另一条独立账号的 PPPoE 线路作为中继,无改善;
- 切换 DHCPv 6 客户端模式,只获得链路本地地址,无法取得 PD 前缀;
- 未发现 IPv6 ACL 阻断规则。
因此问题不在校园网上游、终端、DNS 或某一条 PPPoE 线路,而在 LAN 到 WAN 的 IPv6 中继转发/回程阶段。
2.2 中继模式失效原因
校园网上游只提供单个 /64,没有下发可供路由器继续划分的 DHCPv 6-PD 前缀。WAN 端实际获得的是 /128 地址,而 LAN 终端需要复用同一个上游 /64。此前的现象说明地址下发和默认路由建立成功,但上游无法正确找到 LAN 终端,或者路由器未能正确代理/转发邻居发现与返回流量。于是出现“终端有公网 IPv6 地址,但不能通信”的假连通状态。
2.3 DNS 问题
IPv6 数据面恢复后,传统 DNS 查询仍出现异常:
- A 记录可以正常返回;
- AAAA 查询返回
NOERROR,但答案为空; - 对不同 DNS 服务器进行 UDP 和 TCP 53 查询,结果相同;
- 查询耗时接近 0 ms,表现为路径中的设备主动返回空 AAAA;
- 通过 HTTPS 的 DoH 查询可以正常获得 AAAA 记录。
这说明传统 DNS 53 端口路径存在 AAAA 过滤或劫持,而不是网站没有 IPv6,也不是路由器勾选了“禁止 AAAA 解析”。
3 解决方案
- WAN 继续获取校园网公网 IPv6;
- LAN 使用固定 ULA 地址段
fc00:6aa1:3659:1::/64; - 路由器自动将 LAN 的 ULA 流量转换到 WAN 公网 IPv6,行为相当于 IPv6 源 NAT(NAT 66);
- DNS 从传统 UDP 模式切换至 DoH,绕过传统 DNS 路径对 AAAA 记录的过滤。
LAN 改用 fc00:6aa1:3659:1::/64 后,终端不再假装直接位于校园网的公网 /64 中。所有 LAN 终端都先把流量交给路由器,路由器再使用 WAN 的公网 IPv6 地址进行源地址转换。这样做绕过了原中继模式最容易出错的部分:
- 上游只需要识别路由器自身的公网 IPv6;
- 上游无需学习每台 LAN 终端的 IPv6 邻居项;
- 返回流量先到路由器,再由转换状态映射回内网终端;
- 不再依赖跨 PPPoE/LAN 的 NDP 代理是否正确工作。
将 DNS 加速模式改为 DoH 后,路由器通过 HTTPS 查询 DNS,传统 DNS 过滤不再生效。验证时,向路由器 192.168.1.1 查询 www.cloudflare.com 已正常返回两条 AAAA 记录。
4 配置备份
4.1 WAN IPv6
| 项目 | 当前值 |
|---|---|
| 配置名称 | CFWAN_1 |
| 外网接口 | adsl_3 |
| 接入方式 | 中继模式 |
| WAN 公网地址 | 2403:ac00:2023:ab:…/128 |
| IPv6 网关 | 上游 fe80::/64 链路本地网关 |
| DHCPv 6-PD | 未获取到前缀 |
4.2 LAN IPv6
| 项目 | 当前值 |
|---|---|
| 配置名称 | CFLAN_1 |
| 内网接口 | lan1 |
| 配置类型 | 静态配置 |
| LAN 地址 | fc00:6aa1:3659:1::1/64 |
| DHCPv 6 | 开启 |
| DHCPv 6 模式 | 无状态 + 有状态 |
| 租期 | 120 分钟 |
| RA 通告绑定 | 未开启 |
| IPv6 DNS 下发开关 | 未开启 |
4.3 DNS
| 项目 | 当前值 |
|---|---|
| DNS 加速服务 | 开启 |
| DNS 加速模式 | DoH |
| DoH 地址 | https://doh.pub/dns-query |
| 禁止 AAAA 解析 | 关闭 |
| 强制客户端 DNS 代理 | 关闭 |
| 缓存老化时间 | 300 秒 |
| DNS 反向代理 | 保留原有规则 |