参考资料:
光猫更新V6前缀后,路由器Padavan的Wan可以正常更新v6地址,但Lan口并不会自动更新v6地址,导致路由器下挂所有子设备v6链路断网无法使用,只有重启Wan口才会更新Lan的IPv6地址,本章提供几个解决方案:
固件版本: 3.4.3.9-099_21-04-1
Padavan重启WAN的命令是: restart_wan
方案一(最佳方案):
- 通过shell脚本实现:保存Wan口v6地址,5分钟对比一次,若与上次保存结果不一致,则重启Wan口
- Padavan永久写入sh脚本的方法,登录SSH:
# 进入脚本目录: cd /etc/storage # 新建目录: mkdir sss # 新建文件: vi newip6_restart_wan.sh # 赋予脚本执行权限(必须): chmod a+x newip6_restart_wan.sh # 将脚本永久写入闪存中(必须): mtd_storage.sh save # 重启验证: reboot
- newip6_restart_wan.sh 脚本:
#!/bin/bash #从文件获取老ip file=$HOME/oldip.txt oldip=`cat $file` #获取公网当前ip newip=`curl -6 ip.sb --silent` #对比新老ip if [ "$oldip" != "$newip" ]; then echo "[[ != ]]" #重启wan口来更新lan的ipv6地址 restart_wan #新ip写入文件 echo $newip > $file else echo "[[ == ]]" fi
- 计划任务:
*/10 * * * * /etc/storage/sss/newip6_restart_wan.sh & #wan的ipv6变化,则重启wan口来更新lan口的ipv6
- 检测效果:重启光猫来获取新IPv6,观测路由器WebUI右上角Log,在执行newip6_restart_wan.sh后应当会有一个“Perform WAN manual reconnect”的记录,说明成功检测到IPv6变化并重新连接WAN:
crond[14641]: USER admin pid cmd /etc/storage/sss/newip6_restart_wan.sh & RM2100: Perform WAN manual reconnect
方案二:
- 通过每日定时重启wan口一两次(缺点:为了不影响日常用网,定时间隔长达12小时/24小时,若发生IPv6变化,则通常需要等待数小时才能恢复v6的链路)
- 路由器WebUI-【系统管理】-【服务】-计划任务 (Crontab):
30 4,16 * * * restart_wan #每天4点30分和16点30分重启wan口。
方案三:
- 通过Padavan自带的网络断开事件来触发重新连接WAN口。(缺点:如果光猫是运营商推送v6地址变化而不是本地重启光猫,则不会触发动作)
- 路由器WebUI-【自定义设置】-【网络检测】:
- 网络检测器检测模式: 仅WebUI显示 改为 持续检测
- 用于TCP连接检测的主机: 233.5.5.5:53
- [网络断开]事件执行动作: 重新连接WAN
- 保存生效