找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 50683|回复: 182

[k2p] OPENWRT在路由器上实现网内各设备的IPV6 ddns(支持阿里云)

 火.. [复制链接]
发表于 2019-5-24 14:29 | 显示全部楼层 |阅读模式
本帖最后由 kob 于 2022-3-29 09:09 编辑

阿里云的最新办法
利用自带的动态dns插件,添加一个配置

注意上面的1、2、3处
ip地址来源为脚本
2处为脚本文件的在路由器上的存放路径
3处是触发脚本执行更新的接口,根据你的实际情况进行选择为了保证刷机之后脚本文件还在,一般这样设置

  1. #!/bin/sh

  2. #从wan6接口状态获取PD
  3. pd=$(ubus call network.interface.wan6 status | grep  -A 3 '"ipv6-prefix":' | grep address | awk '{print $2}' | awk '{print substr($0,1,length($0)-4)}' | sed 's/^.//')
复制代码

补充,@conupefox提供的获取PD的另外一个方法


  1. <blockquote>.  /lib/functions/network.sh
复制代码
补充,可以选择从lan接口获取PD
  1. pd=$(ubus call network.interface.lan status | grep  -A 2 '"ipv6-prefix-assignment"' | grep address | awk '{print $2}' | awk '{print substr($0,1,length($0)-4)}' | sed 's/^.//')
复制代码


这个跟以前的方法类似,主要是通过代码获取pd然后加上客户机IPV6地址的固定后缀,就是一个完整的V6地址


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



以下为非阿里云,如dynu等二级域名的使用放大
在IPV6环境,网内各设备均会获得一个全球地址,路由上可以通过ddns等工具最其自身所获取的wan6 ip实现域名绑定,并自动更新,但不能解决通过域名访问网内其它设备IPV6地址的问题,经过观察发现我们的路由获取的IPV6除了128位地址外还有一个PD前缀(移动为60位,电信为56位),如下图

黄色方框内即为前缀
我们再来看网内设备所获取的IPV6地址

发现前面方框内即前面所说的前缀,后面方框内为给此设备分配的IPV6地址后缀,仔细观察还可以看出后缀最后6位与设备mac地址的后6位一样,但这并不是所有设备都是如此。
在经过多次观察,会发现路由对设备分配的IPV6后缀基本是固定的,当路由器重新拨号后,运营商分配的ipv6前缀会和wan ip一样发生变化,但后缀部分并不会变(此处不绝对,有些设备每次都不一样,此方法不适用)
同时在IPV4我们可以在路由上对局域网内设备指定IP地址分配,在IPV6我们一样也可以,但不再是固定的IP地址了,只能固定的后缀,再加上运营商分配的前缀就组成一个完整的IPV6地址
在openwrt的网络-DHCP/DNS菜单的最下面有个静态地址分配

方框内填好后缀就行了,我习惯于用IPV4地址做后缀,其中DUID这个字段从“已分配的 DHCPv6 租约”里面找到对应关系选取。但此方式不建议,因为有时候并不会生效,会造成解析失败,建议后缀还是全地址(例如:2e0:b4ff:fe1c:4c63)
以上工作做好后,现在来讲如何通过脚本来实现动态域名的更新。
首先我们在dynu.com注册n个免费域名,该网站现在需要fq访问,但不影响解析
我们在openwrt的/etc/ppp/ip-up.d目录下新建一个dynu-a.sh的文件,内容如下:

  1. #!/bin/sh

  2. USERNAME="user"   #你注册dynu用户名
  3. PASSWORD="password"   #你注册的dynu密码
  4. DOMAIN="kobxx.dynu.net"  #你注册的dynu免费域名
  5. wanip=`ifconfig pppoe-wan 2>/dev/null | grep 'inet addr' | awk '{print $2}' | cut -d: -f2 2>/dev/null`   #获取路由器IPV4地址

  6. pd=`ubus call network.interface.wan6 status | grep  -A 3 '"ipv6-prefix":' | grep address | awk '{print $2}' |   grep -oE '[0-f]{0,4}\:[0-f]{0,4}\:[0-f]{0,4}\:[0-f]{0,4}'`     #获取路由器IPV6前缀
  7. hz=::123    #123为路由上给a设备分配的IPV6后缀
  8. wanip6=${pd}${hz}   #前缀后缀组合为设备的IPV6地址

  9. curl  -k  "https://207.38.70.46/nic/update?hostname=${DOMAIN}&username=${USERNAME}&password=${PASSWORD}&myip=${wanip}&myipv6=${wanip6}"    #执行将ip地址发送到域名服务器进行更新

复制代码


以上用户名密码等信息自行修改,保存后修改文件权限为0755
在lede的文件系统,放在/etc/ppp/ip-up.d目录下的脚本会在发生pppoe拨号自动触发执行,也就是说只要路由器重新拨号即可完成域名更新
如果有多台设备,可以继续新建文件dynu-b.sh,替换相应内容,依次可以将网内所有设备按照此方式实现域名更新。
这样做的好处就是避免了所有设备的域名更新IP全部在路由实现,而且路由只要重新拨号就触发,不需要花精力为每台设备去找ddns插件,有的平台可能根本就没合适的插件





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 3恩山币 +3 收起 理由
刀锋笑 + 1 老哥非常需要这个,但是设置发现没有生效,可以详细指出哪些是要替换自己的信息吗
simbasun + 1 强大的恩山!(以下重复1万次)
5460 + 1 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-5-24 14:57 | 显示全部楼层
这个思路不错,能保证网络变化的时候及时更新
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-5-24 16:50 | 显示全部楼层
重新添加了阿里云的脚本

点评

阿里云脚本的主机名是啥  详情 回复 发表于 2023-5-9 07:45
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-5-24 18:11 | 显示全部楼层
支持一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-5-24 19:32 来自手机 | 显示全部楼层
支持一下,不错
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-5-24 20:32 | 显示全部楼层
强大的恩山!(以下重复1万次)
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-5-25 20:26 | 显示全部楼层
感谢楼主分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-5-25 21:21 | 显示全部楼层
有没有能实现免特殊方式实现Google domains的ddns更新
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-5-26 21:41 | 显示全部楼层
学习学习!!!!!!!!!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-5-31 23:39 | 显示全部楼层
非常丰富发发发发发发发发发发发
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-5 11:11 | 显示全部楼层
这都要隐藏啊……
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-5 12:41 | 显示全部楼层
好贴,学习一下。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-15 00:01 | 显示全部楼层
謝謝分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-15 06:58 | 显示全部楼层
感谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-10-2 02:20 | 显示全部楼层
获取不到前缀是什么鬼?wan,wan6都试了。移动60的pd。脚本运行以后直接把解析修改成后缀。

点评

谢谢,改成wan_6成功了  详情 回复 发表于 2021-1-26 16:05
自行解决了问题,脚本里wan6需要酌情修改,先直接运行下ubus list看看有多少接口再修改。我这冒出来个谜一样的wan_6.......  详情 回复 发表于 2019-10-2 02:48
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-24 14:43

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表