前言:我所在地区移动的宽带不能下发IPV6 DHCP-PD前缀,经过无数次的折腾实践,终于找到了路由器无PD前缀下发公网IPV6地址的方法。该方法全网首发仅此一家

环境:
中国移动 公众宽带
OpenWrt R21.10.1 pppoe拨号
第一步:SSH到OpenWrt
可以使用PuTTY也可以使用web管理后台已有的TTYD终端
第二步:用VIM/VI新建一个shell脚本写入如下内容并保存
(不晓得怎么用vi/vim的同志快去问问度娘)
emmm还是贴个链接吧:jianshu.com/p/58345e068471

关于hotplug详见:[OpenWrt Wiki] 热插拔 openwrt.org/zh/docs/guide-user/base-system/hotplug
vim /etc/hotplug.d/iface/99-ipv6
#!/bin/sh
[ "$ACTION" = ifup ] || exit 0
[ "$INTERFACE" = wan ] || exit 0
#sleep 18s 从我的粗略测试来看,有没有这一行都能正常获得我们想要的效果
uci set network.globals.ula_prefix="$(ip -6 route show | grep default | sed -e 's/^.*from //g' | sed 's/ via.*$//g')"
uci commit network
/sbin/ifup lan 第三步:赋予我们刚刚创建的shell脚本执行权限
chmod a+x /etc/hotplug.d/iface/99-ipv6 到这里我们的主要内容就结束啦,快重启路由器试试效果吧。
其它相关设定:

上图设定不是唯一的,不同设定有差别。
参考文章:
cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html linux sed命令详解 - ggjucheng - 博客园 (cnblogs.com)
cnblogs.com/jsp1256/p/7599686.html Pandorabox等类OpenWrt的路由器 实现后端设备接入IPV6(中继代理+NAT) - jsp1256 - 博客园 (cnblogs.com)
openwrt.org/zh/docs/guide-user/base-system/hotplug [OpenWrt Wiki] 热插拔