使用DDNS把动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序通过信息传递把该主机的动态IP地址传送给服务器程序,服务项目程序提供DNS服务并实现动态域名解析。

脚本如下:

:globalddnsuser "hao666"

:globalddnspass "hao123456"

:globalddnshost "haotest666.hao.com"

:globalddnsinterface "pppoe-out1"

:globalddnslastip


:globalddnsip [ /ip address get [/ip address find dynamic=yes interface=$ddnsinterface] address ]

:if ([:typeof $ddnslastip]="nothing" ) do={ :global ddnslastip 0.0.0.0/0 }

:if ([:typeof $ddnsip]="nothing" ) do={

 :log info ("DDNS: No ip address presenton " . $ddnsinterface . ", please check.")

} else={

 :if ($ddnsip != $ddnslastip) do={

   :log info "DDNS: Sending UPDATE!"

   :log info [ /tool dns-update name=$ddnshostaddress=[:pick $ddnsip 0 [:find $ddnsip "/"] ] key-name=$ddnsuserkey=$ddnspass ]

   :global ddnslastip $ddnsip

 } else={

   :log info "DDNS: No change"

}

}

:log info"DDNS: End"

ddnsuser为设置的用户名

dnspass为用户密码

ddnshost为设置的域名

ddnsinterface为动态地址的出口

注意:ddnshost域名在changeip上申请。

我们将脚本添加到计划任务中:

ros/routeros中DDNS动态域名的实现脚本

Name:这里取名为DDNS,区别其他计划任务规则

Interval:间隔执行时间,这里定义每间隔1分钟执行一次,也可以根据情况自行调整,建议不要设置太频繁

On-Even:脚本编写框,填写执行脚本

Policy:执行脚本的权限,默认没有设置,需要自己定义