本文主要讲解如何借助阿里云aliyun的云解析API接口来实现RouterOS(以下简称ROS)的DDNS动态解析。
    一、创建访问控制RAM的AccessKey
    我这边简单的讲讲如何申请开通:
    1、阿里云网站 —> 产品 —> 安全 —> 应用身份服务,这个就是控制API ,用户管理,新建用户,填写用户名和勾上“为该用户自动生成AccessKey”,保存好这个accesskey。
    2、策略管理 —> 自定义授权策略,新建授权策略,选择空白模版,授权策略名称随便填(如alidns),策略内容为下面的内容(修改下面内容中的域名为你自己要做DDNS的域名)
    action是api的接口,只接受AddDomainRecord(增加域名解析),DescribeDomainRecords(输出域名解析列表)和UpdateDomainRecord(修改域名解析记录)
    Resource是指被授权的具体对象,这边domain/myxzy.com需要修改成你自己的域名domain/xxx.com。这样就是授权对象是该域名
    3、用户管理,对上面创建的用户,点击授权,选择刚才自定义创建的策略,确定。
    二、PHP制作aliyun API动态解析接口
    以下是我制作好的php解析接口
    接口地址:

    HTTP请求方式:

    • POST/GET

    请求参数:

    • id (必选) AccessKeyId
    • secret (必选) AccessKeySecret
    • record (必选) 记录名(如:www)
    • domain (必选) 域名(如:myxzy.com)
    • ip (可选,默认值为请求来源IPv4) DDNS的IP地址
    • type (可选,默认值为A,可选值为AAAA) IPv6支持

    示例:
    返回参考:
    “0”代表解析修改成功或者是当前解析记录ip相同
    “1”代表AccessKey报错(这个阿里云我这边经常出现,刷新就可以正常)
    “2”代表没有设置参数
    安全说明:
    1、本接口未记录所有的解析AccessKey和解析记录,但是服务器的访问日志会有链接记录(按照政策要求需保存6个月的日志)。虽然有日志但是本接口不提供任何查询。
    2、强烈建议按照步骤一设置授权权限。
    3、由于使用本接口出现的任何安全问题,本人概不负责。这边只能保证本人不会去做任何后门行为。这边建议勤换AccessKey
    更新说明:
    2020-2-14 v1.1
    1、修复records记录太多,导致重复添加域名记录
    2、修复签名有概率失败的情况
    3、支持IPv6解析,加上参数&type=AAAA,IP参数为IPv6地址
    2019-6-8 v1.0
    1、只支持A记录,TTL为600(10分钟),线路是默认线路
    2、ip填入不带,默认是来源的IPv4地址
    3、不支持IPv6
    4、解析记录不存在会自动新建解析记录,存在则修改解析
    5、多线路相同主机名记录只能识别列表第一条主机名解析记录
    6、暂不提供源码。
    三、ROS脚本
    id、secret、domain、record、pppoe修改成自己的。定时1分钟运行就好。
    #aliyun Access Key_AccessKeyIdAccessKeySecret#domainmyxzy.comwww#PPPoE-out_pppoe-out1
    脚本说明:获取pppoe拨号ip,然后判断和记录解析ip是否相同,不同开始访问我的php解析脚本,解析脚本就判断参数执行,返回0或1或2,如果是0更新记录的alidns解析ip,其他的不记录。
    四、alidns-api-php脚本源码
    **
    Github:https://github.com/myxzy/alidns-api-php
    作者博客:http://www.myxzy.com/alidns-api-php.html