解决电信网络一段时间后ipv6丢失造成群晖等ddns失效
博主家庭网络为某电信网络,光猫已获取超管密码并且固化telent,已经改桥接,多年都没有出问题,前段时间做了移机,后面就遇到ipv6每隔两三天就丢失,路由器使用lean的lede分支编译,已检查配置没有问题,后面发现是因为本地区电信网络一段时间后会把路由器踢下线,路由器会自动重连,但是自动重新连接后却缺少ipv6分发前缀,导致下面所有设备无法使用ipv6联网,于是写了个脚本来解决。
ssh登录路由器使用ifstatus命令查看发现lede(lean的18.06分支)的ipv6前缀位于lan口,类似于:
"ipv6-prefix-assignment": [
{
"address": "xxxx:xxxx:xxxx:xxxx::",
"mask": 60,
"preferred": xxxx,
"valid": xxxx,
"local-address": {
"address": "xxxx:xxxx:xxxx:xxxx::1",
"mask": 60
}
}
该例子前缀为xxxx:xxxx:xxxx:xxxx::/60
于是脚本的原理就是检测lan口ipv6-prefix-assignment下的分发前缀 xxxx:xxxx:xxxx:xxxx::/60 是否存在,如果不存在就重启wan口重新拨号。
将脚本下载后放入/usr/bin目录下,并添加计划任务每10分钟检测一次:
*/10 * * * * /usr/bin/check_ipv6_prefix.sh
测试正常运行近20天,ipv6运行正常,ddns工作正常。
路由器输出日志(位于/tmp/ipv6_check.log):
从日志中你可以发现前缀发生变化的大概时间,可以推断出运营商多少天把你踢下线一次。
下载地址:https://github.com/uparrows/check_ipv6_prefix/tree/main
复制链接
https://yuanfangblog.xyz/technology/851.html
0
暂无评论