找回密码
 加入网盟
分割线
官方精品推荐
#Script ADSL install 以下为本ADSL接入脚本安装部分
#本方法用循环的方法实现,安装比上次发的方便得多
#本脚本实现的功能为多ADSL接入,每条ADSL在路由表里做了路由标记
#接入后的用法请大家自行解决
#请将以下代码粘贴到你ROS的Terminal中或者将本文件导入ROS
#然后在system script下打开名为adsl-set的脚本,按照说明进行设置
#设置好后执行adsl-set脚本即可
/system script add name="adsl-set" source={
#以下为初始设置脚本,请务必按照说明进行设置,设好后运行本脚本
#在下面定义ADSL接入的数量
:global x 3
#在下面定义ADSL接口名前缀
:global pppoe-name pppoe-out
:for i from=1 to=$x do={
/ip address add address=("1.1.1." . $i . "/32") interface=($pppoe-name . $i) comment=("adsl" . $i)
/ip route add gateway=("1.1.1." . $i) routing-mark=("c" . $i) comment=("adsl" . $i)
}
/system scheduler enable adsl
/system script remove adsl-set
}
#----------------------------------#
/system scheduler add name=adsl disabled=yes comment=adsl interval=20s on-event={
#ADSL接入脚本开始
:for i from=1 to=$x do={
/interface pppoe-client monitor ($pppoe-name . $i) once do={:global adsl-statu $status}
:if ($adsl-statu="connected") do={
  :global adsl-ip-d [/ip address get [/ip address find interface=($pppoe-name . $i) dynamic=yes] address]
  :global adsl-ip-n [/ip address get [/ip address find comment=("adsl" . $i)] address]
  :global adsl-ip [:pick $adsl-ip-d 0 [:find $adsl-ip-d "/"]]
  :if ($adsl-ip-n != $adsl-ip-d) do={
   /ip address set [/ip address find comment=("adsl" . $i) interface=($pppoe-name . $i) dynamic=no] address=$adsl-ip-d network=$adsl-ip broadcast=$adsl-ip disabled=no
   /ip route set [/ip route find comment=("adsl" . $i)] gateway=$adsl-ip
#这里写ADSL上线以后的动作,比如策略路由更改启停,动态域名更新等等
#下面一条是调用我的DDNS更新脚本,不需要的可以删掉
   /system script run ddnsUpdate
  }
} else={#这里写ADSL掉线后的动作}
}
}
#Script ADSL uninstall
/system script add name="adsl-scr-unins" source={
#以下为本ADSL接入脚本卸载部分
/system scheduler remove adsl
:for i from=1 to=$x do={
/ip address remove ("adsl" . $i)
/ip route remove ("adsl" . $i)
}
/system script remove adsl-scr-unins
}


#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 [/ip address get [/ip address find interface=($pppoe-name . $j) dynamic=yes] 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")}
   }
  }
}
}
}

评分

参与人数 1网盟币 +20 收起 理由
janandi_admin + 20

查看全部评分

分享至 : QQ空间
收藏

4 个回复

倒序浏览
liyeu 10 2011-5-21 08:38:06
2#
高手,值得珍藏!
回复 使用道具 举报
lansefling 9 2011-5-21 19:04:35
3#
很好,感谢分享,优秀帖必须顶
回复 使用道具 举报
regeditlan 1 2011-5-24 00:29:14
4#
新来,学习下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入网盟
关闭

华夏网盟推荐 上一条 /1 下一条