如何在没有IPV4公网地址的情况,利用IPV6地址更新DNS从而达到DDNS的效果

一 IPV6介绍

  1. 什么是IPV6

    1. IPv6是一种互联网协议,是IPv4的升级版,它是下一代互联网协议,旨在解决IPv4在可用地址空间、路由表大小、安全性、移动性和自配置等方面的限制。

    2. IPv6的主要特点包括

      1.地址空间更大:IPv6地址长度为128位,比IPv4的32位地址空间更大,可以提供更多的地址空间,支持更多的设备连接到互联网。

      2.更好的路由表管理:IPv6采用层次化的地址结构,可以减少路由表的大小,提高路由效率。

      3.更好的安全性:IPv6支持IPsec协议,可以提供端到端的加密和认证,确保数据传输的安全性。

      4.更好的移动性:IPv6支持移动IPv6(MIPv6)协议,可以支持设备在不同网络之间切换时保持连接。

      5.更好的自配置:IPv6支持自动配置功能,设备可以通过向网络发送请求来获取地址和其他配置信息,简化了网络管理。

    3. 为什么需要升级到IPv6?

      由于IPv4地址空间的枯竭,IPv6成为了必要的升级。IPv4只有4.3亿个地址,而且已经基本用完,而IPv6地址空间非常大,可以为每个人、每个设备分配一个唯一的IP地址,解决了IPv4中地址短缺的问题。

      此外,IPv6还支持更好的安全性、移动性和自配置功能,可以提高网络的效率和安全性。因此,IPv6的升级是互联网发展的必然趋势。

  2. IPV6跟IPV4的不同

    1. 地址空间不同:IPv4的地址空间是32位,约42亿个地址,而IPv6的地址空间是128位,约有3.4×10^38个地址,大大提高了地址的可用性和扩展性。
    2. 地址表示不同:IPv4的地址是以点分十进制的方式表示,如192.168.1.1,而IPv6的地址是以冒号分隔的16进制数表示,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
    3. 网络层协议不同:IPv4使用ARP协议来解析MAC地址,而IPv6则使用邻居发现协议(Neighbor Discovery Protocol)来解析MAC地址。
    4. 安全性不同:IPv6在设计时考虑了更多的安全选项,如IPsec,可以提供更好的安全性。

二 光猫和路由设置获取IPv6步骤

在正式设置前,先谈一谈为什么要获取IPv6,得到IPv6地址到底有什么作用?
三大运营商安装好宽带的后,默认都是把光猫设置为路由模式,而你内部网络获取到的IP基本都是192开头的私网地址,所以外网是无法直接访问到你的内网。你就算打电话跟运营商要IPV4地址,一般情况下会叫你转成专线,说简单点是拿IPV4稀缺性卖更高的价钱,所以退而求其次,通过IPV6实现内外网设备的直连。你在网上查看自己的IPV4公网地址时,一般情况下会显示一个公网地址,实际你是无法使用的,因为那是你整个小区共用的一个公网IPV4地址,而实际上是IPV4公网地址做的NAT转换,到你至少是两层NAT以上,所以你在外面就想访问到家里的内部设备转换层数太多,一般是无法访问。
下面说下如何做IPV6的DDNS步骤

2.1 光猫设置桥接步骤

  1. 这里我以联通宽带为例在浏览器中输入光猫管理地址,默认为192.168.1.1,输入用户名和密码登录【不是光猫背部的用户名和密码】

    1. 要进入管理员界面才可以修改桥接模式,不知道账号密码的可以百度下或者问宽带师傅
      1. 我的是联通宽带默认的管理账号密码都是:CUAdmin
        在这里插入图片描述
  2. 登陆进管理员页面后,选择“基本配置”,左侧找到“宽带设置”,根据我图片标注修改对应选项,然后’保存’
    在这里插入图片描述

  3. 在路由器界面根据我图片所示选择对应内容,WAN选择为’PPPoe’拨号,在IPV6页面选择’Native’模式,一般情况获取到IPV6地址,会以2408开头,因为各自路由器不相同,但是大致的配置就是我图片里说明的在这里插入图片描述
    在这里插入图片描述

  4. 看路由器是否拨号成功后,看能连接外网吗?也可以去光看是否拨号成功
    在这里插入图片描述

  5. 路由器拨号成功后,查看是否获取IPV6公网地址

    1. 那里查看IPV6的地址是否获取成功
      1. windows可以按Alt+R调出CMD窗口,输入ipconfig查看是否获取到IPv6地址,如图所示
        在这里插入图片描述

      2. Linux可以在命令行输入curl -s https://v6.ident.me就看到获取的ipv6地址

三 阿里云DDNS的设置以及AK和SK获取

3.1 阿里云DDNS设置步骤

  1. 前提是你已经拥有了自己的域名,至于如何申请域名,根据阿里云的申请要求来就可以了

  2. 登录阿里云后,选择右上角的’控制台’

  3. 进入控制台后,选择下面的’资源管理’-》‘域名’-》‘管理资源’

  4. 在这里插入图片描述

  5. 进入页面后再左侧’基本信息’下的点击’域名解析’

  6. 在这里插入图片描述

  7. 点击添加’添加记录’
    在这里插入图片描述

  8. 根据我在截图里标记的内容进行选择
    在这里插入图片描述

  9. 在右上角找到头像,选择AccessKey管理
    在这里插入图片描述

  10. 在身份管理下找到用户,创建用户,勾选’OpenAPI’,创建成功后会生成AK和SK,记得保存好后面会用。
    在这里插入图片描述
    在这里插入图片描述

  11. 返回到身份管理->用户界面点击最右侧的添加权限,根据我的截图给予对应的权限即可,此时距离成功已经非常近了
    在这里插入图片描述

四 Shell脚本自动更新DNS

4.1 更新阿里DNS脚本步骤

脚本里的’RECORDID’和’RR’的说明,看下图
在这里插入图片描述

4.2 更新DNS脚本

#创建脚本
vim ali-ddns.sh

#定义脚本变量,具体填写内容可以看我上面截图
ACCESSKEYID=<AccessKey ID>
ACCESSKEYSECRET=<AccessKey Secret>
DOMAINNAME=<域名>
RECORDID=<记录ID>
RR=<主机记录>  

#获取当前主机IPv6地址
get_ipv6_address() {
    ipv6_address=$(curl -s https://v6.ident.me/)
    echo $ipv6_address
}

#脚本中更新DNS
update_dns_record() {
    ipv6_address=$1
    timestamp=$(date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ")
    signature=$(echo -n "GET&%2F&AccessKeyId%3D$ACCESSKEYID%26Action%3DUpdateDomainRecord%26DomainName%3D$DOMAINNAME%26Format%3DJSON%26RR%3D$RR%26RecordId%3D$RECORDID%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3D$timestamp%26SignatureVersion%3D1.0%26Timestamp%3D$timestamp%26Type%3DAAAA%26Value%3D$ipv6_address" | openssl dgst -sha1 -hmac "$ACCESSKEYSECRET&" -binary | base64)
    curl -s "http://alidns.aliyuncs.com/?Action=UpdateDomainRecord&DomainName=$DOMAINNAME&RR=$RR&Type=AAAA&Value=$ipv6_address&RecordId=$RECORDID&Format=json&AccessKeyId=$ACCESSKEYID&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&Timestamp=$timestamp&Signature=$signature"
}

#定时执行更新DNS
while true
do
    ipv6_address=$(get_ipv6_address)
    update_dns_record $ipv6_address
    sleep 300 # 每隔5分钟执行一次更新操作
done


#给与执行权限
chmod +x ali-ddns.sh

#执行脚本
sh ali-ddns.sh > /dev/null 2>1& &

4.3 守护脚本的监视DNS更新程序

vim monitor-ddns.sh

#!/bin/bash

ps -aux | grep -v grep |grep ali-ddns.sh
if [ $? -ne 0 ]
then
nohub sh /root/scripts/ali-ddns.sh > /dev/null 2>&1  

fi

#给与执行权限
chmod +x monitor-ddns.sh

#定时执行守护程序,
crontab -e
*/10 * * * * /root/scripts/monitor-ddns.sh >/dev/null 2>&1  #每10分钟执行一次守护程序

终于完成了,现在你可以通过域名的方式访问家里的Linux系统的内部设备,例如:NAS,aria2等程序。如果需要IPV4的DDNS脚本可以留言,我会更文章内容。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值