本文讲解ROS借助阿里云的 DNS API 来实现域名与动态 IP 的绑定,用来达到外网访问内网设备的需求。
一、给域名添加A记录解析
2、给域名添加一个A记录解析,记录值可以随意填写,前期仅用于判断后期动态解析是否生效。
二、开启阿里云RAM访问控制
1、创建用于编程访问的新用户
3、进入RAM访问控制台点击左侧用户,创建一个新的用户,登录名称可以根据自己的喜好进行填写(例如:home_ros),并将“编程访问”打钩。
4、用户创建成功后显示上图,将页面显示的AccessKey ID、AccessKey Secret,保存备用。
三、创建用于控制域名的新权限策略
1、进入RAM访问控制台点击左侧“权限策略管理”,创建一个新的策略。
2、策略名称可根据喜好填写(例如:Ros_DDNS),配置模式选择为脚本配置,并将下方脚本填入编辑器内。
将脚本中的http://qiaohewei.cc替换为自己的要解析的域名
脚本内容如下:
{
"Version": "1",
"Statement": [
{
"Action": [
"alidns:AddDomainRecord",
"alidns:DescribeDomainRecords",
"alidns:UpdateDomainRecord"
],
"Resource": "acs:alidns:*:*:domain/myxzy.com",
"Effect": "Allow"
}
]
}
四、将权限策略授权给用于DDNS的用户
1、进入RAM访问控制台点击左侧“授权”,创建一个新的授权。
2、授权范围:云账户全部资源。
3、在被授权主体:输入新建的用户名(例如:home_ros)。
4、选择权限:点击“自定义策略”,并选择刚刚创建策略名称,选择后将显示在右侧。
5、完成以后可以在授权列表查看到新增的授权记录。
五、ROS Aliyun DDNS 脚本配置
1、使用WinBox登录ROS,点击“System” -- “Scripts”,点击左上角蓝色“+”号,新增一个阿里云DDNS脚本。
2、脚本名称填入Aliyun_DDNS,并将下方脚本粘贴入编辑器中。
脚本内容如下:
id、secret、domain、record、pppoe修改成自己的。定时1分钟运行就好。
#aliyun Access Key
:local id "AccessKeyId"
:local secret "AccessKeySecret"
#domain
:local domain "myxzy.com"
:local record "www"
#PPPoE-out
:local pppoe "pppoe-out1"
:local ipaddr [/ip address get [/ip address find interface=$pppoe] address]
:set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]
:global aliip
:if ($ipaddr != $aliip) do={
:local result [/tool fetch url="http://u.myxzy.com/alidns/\?id=$id&secret=$secret&domain=$domain&record=$record&ip=$ipaddr" as-value output=user];
:if ($result->"status" = "finished") do={
:if ($result->"data" = "0") do={
:set aliip $ipaddr
:log info "alidns update ok";
} else={
:log info "alidns update error";
}
}
}
注意事项:根据之前保存的阿里云AccessKeyID、AccessKeySecret替换脚本中标注的内容,并将汉字注释内容删除。
3、脚本创建完毕如上图。
六、创建ROS Aliyun DDNS 定时任务
1、点击“System” -- “Scheduler”,点击左上角蓝色“+”号,新增一个定时任务。
2、Name:根据自己喜好填写。
3、Start Time:startup。
4、Interval:00:01:00(代表一分钟执行一次)。
5、文本框内输入要执行的脚本名称,例如Aliyun_DDNS(这是创建DDNS脚本时定义的脚本名称Name)。
6、完成后点击OK,创建成功如上图。
七、检查脚本执行状态
1、点击Log查看ROS日志,稍等一会儿即可看到,alidns update ok,表示ROS已成功定时执行脚本。
2、WinBox点击“IP” -- “Address”,查看ROS获取的动态外网IP,有“D”标识的表示此条为动态获取。
3、访问阿里云域名控制台查看域名解析记录,发现阿里云解析记录已变为ROS动态获取的IP地址。
至此,ROS 阿里云DDNS动态域名解析配置完成 Enjoy~。
发表评论