动态ADSL回流解决方法
今天没事做,写个动态ADSL回流解决方法,有不足的地方希望网友们斧正,仅此抛砖引玉在此再次感谢我们的老大zooyo,在他身上学到不少东西。:lol 下面开工:
IE地址栏输入http://ip138.com查看公网IP,当然在IP-ROUTE也可以看到 图:
(我写的脚本是根据comment来判断的,注释名一定要填)我这里注释为:ftp
下面是动态ADSL映射自动修改IP脚本:
动态ADSL脚本:
:local ip1 address]
:local ip2 "你想要的名字"] dst-address]
:set ip1 [:pick $ip1 0 ([:len $ip1]-3)]
:if ($ip1 != $ip2) do={
/ip fir nat set "你想要的名字"] dst-address=$ip1
:log info "【ADSL映射修改完毕】"
}
以上标记的红字均可根据你的实际情况进行替换.
下面是动态域名脚本:
先到www.changeip.com注册个动态域名.
然后到邮箱激活.
然后到 Winbox-system-Scheduler-添加:Name:随便 Interval:多少时间检测一次IP我设为00:20:00
在 On Event: 里写入下面的
=============================================================
:global ddns-user "注册的域名"
:global ddns-pass "域名密码"
:global ddns-host "*1"
:global ddns-interface interface]
:global ddns-ip [ /ip address get address ]
:if ([ :typeof $ddns-lastip ] = nil ) do={ :global ddns-lastip 0.0.0.0/0 }
:if ([ :typeof $ddns-ip ] = nil ) do={
:log info ("DDNS: No ip address present on " . $ddns-interface . ", please check.")
} else={
:if ($ddns-ip != $ddns-lastip) do={
:log info "DDNS: Sending UPDATE!"
:log info [ /tool dns-update name=$ddns-host address=[:pick $ddns-ip 0 [:find $ddns-ip "/"] ] key-name=$ddns-user key=$ddns-pass ]
:global ddns-lastip $ddns-ip
}
} 顶!!!!正需要呢! :D 不错不错 搞不懂,有没有详细一点:Q 原帖由 dengyuwen 于 2007-6-11 17:47 发表 http://bbs.routerclub.com/images/common/back.gif
搞不懂,有没有详细一点:Q
上面有图看应该是很清楚了,你再仔细看看 这一个就能解决映射和回流吗? 原帖由 a123123 于 2007-6-11 19:54 发表 http://bbs.routerclub.com/images/common/back.gif
这一个就能解决映射和回流吗?
呵呵,不信,你可以试试,我一直在用 我用PPPOE的(双ADSL)
按你这样做,没办法内网访问 你指定进入接口没?双线ADSL最好是用SNAT不要用MASQ指定出接口,应该是可以回流的
[ 本帖最后由 sxmong147 于 2007-6-11 20:11 编辑 ] 指定了
你QQ多少 原帖由 a123123 于 2007-6-11 20:09 发表 http://bbs.routerclub.com/images/common/back.gif
指定了
你QQ多少
QQ:17887993 交流下 我的是PPPOE 的ADSL(公司用的宽带)
用这个可以吧! 我刚接触,映射那部分大致的可以看,回流这部分怎么理解? 请老大再详细讲解一下动态域名更新,全是命令,有些看不懂。能讲解一下每步命令的意思吗?感谢! 老大你的动态域名更新脚本和以下这个有什么不同吗?
以下为使用changeIP的动态域名更新服务的脚本,用之前请自行到www.changeip.com去申请帐号~
#Script DNSupdate install
#以下为DDNS更新脚本
/system script add name="ddnsUpdate" source={
#ChangeIP的注册用户名
:global u "username"
#ChangeIP的注册密码
:global p "password"
#ChangeIP的子域名前缀
:global m "A record name"
#ChangeIP的域
:global z "Domain"
:for j from=1 to=$x do={
/interface pppoe-client monitor ($pppoe-name . $j) once do={:global adsl-statu $status}
:if ($adsl-statu="connected") do={
:log info ("ddnsUpdate: ADSL" . $j . " ddnsUpdate process start !")
:global ddns-ip-d address]
:global ddns-ip [:pick $ddns-ip-d 0 [:find $ddns-ip-d "/"]]
:global n ($m . $j)
:global k 0;:while($k<1) do={
:global res-ip [:resolve ($n . "." . $z)]
:if (($res-ip) != (0.0.0.0)) do={
:if (($res-ip) != $ddns-ip) do={
:log info ("ddnsUpdate: ADSL" . $j . " IP Address is " . $ddns-ip . " sending update")
/tool dns-update name=$n zone=$z address=$ddns-ip key-name=$u key=$p
:delay 60} else={:set k ($k+1);:log info ("ddnsUpdate: ADSL" . $j . " IP Address is " . $ddns-ip . " no change")}
}
}
}
}
}