younger 发表于 2006-5-11 23:49:01

检查动态ADSL运行状态的方法

ADSL拔号是动态的,但网关大都是固定,电信公司一般都不会改网关的。
所以很多人会用netwatch监视ADSL网关来判断ADSL的状态,单线的情况下是可以的。

现在讨论一下多线上网的情况:
只要有一条ADSL上线的话,netwatch监视都是通的,除非所有的ADSL都断线,否则无法判断ADSL是否断线。

直接监视ADSL的IP的话,当IP更改时要用脚本去自动更改netwatch监视的IP,但当一条ADSL断开时,如果还是监视原IP的话,说不写也是通的,因为netwatch监视是通过PING来实现的,如果你原IP被电信公司分配给别人,一样可以PING得到的,ROS也就认为是通的。

我认为比较正确的方法是在/system scheduler添加脚本,每隔一断时间(3S、15S、10S随你设)检查一次interface里ADSL的状态,检查的脚本如下:
:if() do={
在这里写ADSL运行时要执行的脚本
} else={
在这里写ADSL断开时要执行的脚本
}
pppoe-out1是ADSL的接口名

bh 发表于 2006-5-12 13:43:25

基本是可以的,也有它的缺点,可能楼主没碰到过这种情况。
当DSLAM(数字用户线路接入复用器)引入光纤等出问题时,可能ADSL能拨号连接,但上不了INTERNET。也PING不出。这时你的ROS判断应该是“通”的了。
这种情况不是没有,只是机率很小,一般大家都没碰到过。

95dot8 发表于 2006-5-12 17:07:43

我赞成楼主的看法,在/system scheduler中设置。我曾经试过在/tool netwatch设置,但有个问题就是,netwatch设置的host一项该如何设置?因为ad是动态ip的,每一次的ip都不同。。。。。。host无法确定。当然也可以设成任意的其它host,up和down都执行同样的脚本来检查ad状态。但不知道是不是我的设置有问题,我设成每15秒检查一次,但在检查完第一次之后就不再检查了。。。。。。。。。。。后来我在/system scheduler中设置就可以了,

[ 本帖最后由 95dot8 于 2006-5-12 17:19 编辑 ]

king5230 发表于 2007-5-24 17:33:15

这个顶上去....

louyc 发表于 2007-5-24 20:01:55

楼主思路的解决方法我早些时候已经写过,请参考:
http://bbs.router.net.cn/read-htm-tid-21153.html
不过这样的思路对于多ADSL接入线路的判断不好,我认为目前最好的办法就是我这里写的:
http://bbs.routerclub.com/thread-24945-1-1.html

ee007 发表于 2008-8-6 22:19:18

这个很有用........感谢!!!!

马甲 发表于 2008-8-13 02:42:04

好久不见younger兄了,:call: 有空常联系,泡泡坛子
页: [1]
查看完整版本: 检查动态ADSL运行状态的方法