Padavan自动更新LAN的IPv6前缀地址

2023年2月11日 903点热度
参考资料:
光猫更新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
    • 保存生效

书三拾

不积跬步无以至千里