XJTU校园网 IPv6 + OpenWrt 折腾实录:从“以为没有IPv6”到“其实已经通了”
📌 背景
在校园网环境下使用 OpenWrt(ImmortalWrt)拨号上网时,遇到了一个非常迷惑的问题:
- Windows 直连 PPPoE:IPv6 正常
- OpenWrt PPPoE:IPv6 看似失败
- 路由器日志:odhcp6c 一直 pending
- 实际访问:IPv6 ping 通
整个过程非常反直觉。
🔍 初始现象
OpenWrt 状态:
ifstatus wan6显示:
"up": false,
"pending": true接口上只有:
fe80::xxxx/128没有公网 IPv6。
同时 Windows 直拨 PPPoE:
2001:250:1001:2500:xxxx/64正常获取 IPv6。
🧪 关键误判点1:以为没有 IPv6
最初判断是:
校园网可能不支持 IPv6 或仅支持 IPv4 PPPoE
但实际:
- Windows IPv6 正常
- PPPoE IPv6CP 正常
说明:
👉 校园网 IPv6 是存在的
🧪 关键误判点2:以为是 DHCPv6 问题
OpenWrt 配置:
wan6:
proto dhcpv6
reqprefix auto日志:
odhcp6c: pending
No response于是怀疑:
- DHCPv6 不通
- PD 不支持
⚡ 真正关键发现
PPP IPv6CP 实际是成功的
local LL address fe80::1846:...
remote LL address fe80::b643:...说明:
IPv6CP ✔
PPPoE IPv6链路 ✔但没有 PD(前缀委派)
最终确认:
学校不给 Prefix Delegation(PD)🧠 真相1:Windows 是 SLAAC 方式拿 IPv6
Windows PPPoE 后:
2001:250:1001:2500:98f0:2d5:20f2:622e并且:
IPv6 = MAC 派生 IID说明:
👉 使用 SLAAC(RA)
🧠 真相2:OpenWrt 卡在 DHCPv6 PD
OpenWrt 默认:
请求 IA_NA + IA_PD但校园网:
只给 SLAAC(RA)
不给 PD导致:
wan6 = pending🛠️ 关键修复
修改:
uci set network.wan6.reqprefix='no'
uci commit network重启网络后:
2001:250:1001:2500:955b:28:c9a0:e3a/64成功出现在 PPPoE 接口上。
🧾 最终网络状态
WAN
2001:250:1001:2500::/64 ✔
IPv6CP ✔
SLAAC ✔LAN
fd1e:929:bc09::/64(ULA)
无公网 IPv6⚠️ 关键限制
校园网 IPv6 特点:
- ✔ 提供 /64 公网 IPv6
- ✔ 支持 SLAAC
- ❌ 不提供 PD(Prefix Delegation)
- ❌ 不适合传统 OpenWrt 自动 IPv6 分配
💡 结论
❗ 不是“没有 IPv6”
而是:
IPv6 是“终端型分配”,不是“路由器型分配”
🧭 网络模型总结
Windows直拨:
PPPoE → SLAAC → IPv6 ✔
OpenWrt默认:
PPPoE → DHCPv6-PD → ❌失败
OpenWrt修正后:
PPPoE → SLAAC → IPv6 ✔🚀 延伸(可作为下一篇)
如果继续优化,可以进入下一阶段:
- NAT66
- NDP Proxy
- /64 内网 IPv6 分发
- IPv6-only LAN
- 双栈分流策略
🧩 一句话总结
校园网 IPv6 不是没有,而是“不给你 PD,只给你一个 /64,让你自己用 SLAAC 玩”。
如果你愿意,我可以帮你把下一篇也直接写好👇:
- 《OpenWrt 如何在 /64 校园网下实现全屋 IPv6(NAT66 vs NDP Proxy 对比)》
- 或者做成 GitHub blog 直接可发布版本(含标题 + SEO + 图示结构)