我不熟悉ROS的脚本,不过看程序流程这个脚本好像还是有问题的,他假设的掉线似乎是comm=ADSL4-ADSL1递减按顺序掉线,这在实际运行中似乎是不太可能的。
显然你没把程序读懂~~ comm=adsl1-adsl4只是一个标记而已,并不一定是固定在真实线路上的1-4 以下我是在学习了楼上很多热心人的回复后的改良,无条件的公布给大家新的脚本,希望对大家有帮助,
:global ip
:global gateold
:global address
:global adsl1-statu
:if ($adsl1-statu) do={
:set ip address]
:set address [:pick $ip 0 ([:len $ip] -3)]
:log info ($address)
:set gateold gateway]
:if ($gateold!=$address) do={
/ip add set address=$address network=$address broadcast=$address
/ip route set gateway=$address
/ip fir nat set to-addresses=$address
}
}
:global adsl2-statu
:if ($adsl2-statu) do={
:set ip address]
:set address [:pick $ip 0 ([:len $ip] -3)]
:log info ($address)
:set gateold gateway]
:if ($gateold!=$address) do={
/ip add set address=$address network=$address broadcast=$address
/ip route set gateway=$address
/ip fir nat set to-addresses=$address
}
}
:global adsl3-statu
:if ($adsl3-statu) do={
:set ip address]
:set address [:pick $ip 0 ([:len $ip] -3)]
:log info ($address)
:set gateold gateway]
:if ($gateold!=$address) do={
/ip add set address=$address network=$address broadcast=$address
/ip route set gateway=$address
/ip fir nat set to-addresses=$address
}
}
:global adsl4-statu
:if ($adsl4-statu) do={
:set ip address]
:set address [:pick $ip 0 ([:len $ip] -3)]
:log info ($address)
:set gateold gateway]
:if ($gateold!=$address) do={
/ip add set address=$address network=$address broadcast=$address
/ip route set gateway=$address
/ip fir nat set to-addresses=$address
}
}
:if (($adsl1-statu)&&($adsl2-statu)&&($adsl3-statu)&&($adsl4-statu)) do={
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( nth]!=3,4,0) do={/ip fi man set nth=3,4,0}
:if ( nth]!=3,4,1) do={/ip fi man set nth=3,4,1}
:if ( nth]!=3,4,2) do={/ip fi man set nth=3,4,2}
:if ( nth]!=3,4,3) do={/ip fi man set nth=3,4,3}
:beep length=100ms frequency=1755
}
:if ((!$adsl1-statu)&&($adsl2-statu)&&($adsl3-statu)&&($adsl4-statu)) do={
:if ( new-connection-mark]!=2) do={/ip fi man set new-connection-mark=2}
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
#:if ( nth]!=3,4,0) do={/ip fi man set nth=3,4,0}
:if ( nth]!=2,3,0) do={/ip fi man set nth=2,3,0}
:if ( nth]!=2,3,1) do={/ip fi man set nth=2,3,1}
:if ( nth]!=2,3,2) do={/ip fi man set nth=2,3,2}
:beep length=100ms frequency=1755
}
:if (($adsl1-statu)&&(!$adsl2-statu)&&($adsl3-statu)&&($adsl4-statu)) do={
:if ( new-connection-mark]!=1) do={/ip fi man set new-connection-mark=1}
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( nth]!=2,3,0) do={/ip fi man set nth=2,3,0}
#:if ( nth]!=3,4,1) do={/ip fi man set nth=3,4,1}
:if ( nth]!=2,3,1) do={/ip fi man set nth=2,3,1}
:if ( nth]!=2,3,2) do={/ip fi man set nth=2,3,2}
:beep length=100ms frequency=1755
}
:if (($adsl1-statu)&&($adsl2-statu)&&(!$adsl3-statu)&&($adsl4-statu)) do={
:if ( new-connection-mark]!=1) do={/ip fi man set new-connection-mark=1}
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=yes) do={/ip fi man en }
:if ( nth]!=2,3,0) do={/ip fi man set nth=2,3,0}
:if ( nth]!=2,3,1) do={/ip fi man set nth=2,3,1}
#:if ( nth]!=3,4,2) do={/ip fi man set nth=3,4,2}
:if ( nth]!=2,3,2) do={/ip fi man set nth=2,3,2}
:beep length=100ms frequency=1755
}
:if (($adsl1-statu)&&($adsl2-statu)&&($adsl3-statu)&&(!$adsl4-statu)) do={
:if ( new-connection-mark]!=1) do={/ip fi man set new-connection-mark=1}
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=no) do={/ip fi man dis }
:if ( nth]!=2,3,0) do={/ip fi man set nth=2,3,0}
:if ( nth]!=2,3,1) do={/ip fi man set nth=2,3,1}
:if ( nth]!=2,3,2) do={/ip fi man set nth=2,3,2}
#:if ( nth]!=3,4,3) do={/ip fi man set nth=3,4,3}
:beep length=100ms frequency=1755
}
:if ((!$adsl1-statu)&&(!$adsl2-statu)&&($adsl3-statu)&&($adsl4-statu)) do={
:if ( new-connection-mark]!=3) do={/ip fi man set new-connection-mark=3}
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
#:if ( nth]!=3,4,0) do={/ip fi man set nth=3,4,0}
#:if ( nth]!=3,4,1) do={/ip fi man set nth=3,4,1}
:if ( nth]!=1,2,0) do={/ip fi man set nth=1,2,0}
:if ( nth]!=1,2,1) do={/ip fi man set nth=1,2,1}
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
}
:if (($adsl1-statu)&&(!$adsl2-statu)&&(!$adsl3-statu)&&($adsl4-statu)) do={
:if ( new-connection-mark]!=1) do={/ip fi man set new-connection-mark=1}
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=yes) do={/ip fi man en }
:if ( nth]!=1,2,0) do={/ip fi man set nth=1,2,0}
#:if ( nth]!=3,4,1) do={/ip fi man set nth=3,4,1}
#:if ( nth]!=1,2,0) do={/ip fi man set nth=1,2,0}
:if ( nth]!=1,2,1) do={/ip fi man set nth=1,2,1}
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
}
:if (($adsl1-statu)&&($adsl2-statu)&&(!$adsl3-statu)&&(!$adsl4-statu)) do={
:if ( new-connection-mark]!=1) do={/ip fi man set new-connection-mark=1}
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( nth]!=1,2,0) do={/ip fi man set nth=1,2,0}
:if ( nth]!=1,2,1) do={/ip fi man set nth=1,2,1}
#:if ( nth]!=3,4,2) do={/ip fi man set nth=3,4,2}
#:if ( nth]!=3,4,3) do={/ip fi man set nth=3,4,3}
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
}
:if ((!$adsl1-statu)&&($adsl2-statu)&&($adsl3-statu)&&(!$adsl4-statu)) do={
:if ( new-connection-mark]!=2) do={/ip fi man set new-connection-mark=2}
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=no) do={/ip fi man dis }
#:if ( nth]!=3,4,0) do={/ip fi man set nth=3,4,0}
:if ( nth]!=1,2,0) do={/ip fi man set nth=1,2,0}
:if ( nth]!=1,2,1) do={/ip fi man set nth=1,2,1}
#:if ( nth]!=3,4,3) do={/ip fi man set nth=3,4,3}
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
}
:if ((!$adsl1-statu)&&(!$adsl2-statu)&&(!$adsl3-statu)&&($adsl4-statu)) do={
:if ( new-connection-mark]!=4) do={/ip fi man set new-connection-mark=4}
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=yes) do={/ip fi man en }
#:if ( nth]!=3,4,0) do={/ip fi man set nth=3,4,0}
#:if ( nth]!=3,4,1) do={/ip fi man set nth=3,4,1}
#:if ( nth]!=3,4,2) do={/ip fi man set nth=3,4,2}
:if ( nth]!=0,1,0) do={/ip fi man set nth=0,1,0}
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
}
:if (($adsl1-statu)&&(!$adsl2-statu)&&(!$adsl3-statu)&&(!$adsl4-statu)) do={
:if ( new-connection-mark]!=1) do={/ip fi man set new-connection-mark=2}
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( nth]!=0,1,0) do={/ip fi man set nth=0,1,0}
#:if ( nth]!=3,4,1) do={/ip fi man set nth=3,4,1}
#:if ( nth]!=3,4,2) do={/ip fi man set nth=3,4,2}
#:if ( nth]!=3,4,3) do={/ip fi man set nth=3,4,3}
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
}
:if ((!$adsl1-statu)&&($adsl2-statu)&&(!$adsl3-statu)&&(!$adsl4-statu)) do={
:if ( new-connection-mark]!=2) do={/ip fi man set new-connection-mark=2}
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
#:if ( nth]!=3,4,0) do={/ip fi man set nth=3,4,0}
:if ( nth]!=0,1,0) do={/ip fi man set nth=0,1,0}
#:if ( nth]!=3,4,2) do={/ip fi man set nth=3,4,2}
#:if ( nth]!=3,4,3) do={/ip fi man set nth=3,4,3}
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
}
:if ((!$adsl1-statu)&&(!$adsl2-statu)&&($adsl3-statu)&&(!$adsl4-statu)) do={
:if ( new-connection-mark]!=3) do={/ip fi man set new-connection-mark=3}
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=yes) do={/ip fi man en }
:if ( disabled]=no) do={/ip fi man dis }
#:if ( nth]!=3,4,0) do={/ip fi man set nth=3,4,0}
#:if ( nth]!=3,4,1) do={/ip fi man set nth=3,4,1}
:if ( nth]!=0,1,0) do={/ip fi man set nth=0,1,0}
#:if ( nth]!=3,4,3) do={/ip fi man set nth=3,4,3}
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
:delay 500ms
:beep length=100ms frequency=1755
}
:if ((!$adsl1-statu)&&(!$adsl2-statu)&&(!$adsl3-statu)&&(!$adsl4-statu)) do={
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
:if ( disabled]=no) do={/ip fi man dis }
#:if ( nth]!=3,4,0) do={/ip fi man set nth=3,4,0}
#:if ( nth]!=3,4,1) do={/ip fi man set nth=3,4,1}
#:if ( nth]!=0,1,0) do={/ip fi man set nth=0,1,0}
#:if ( nth]!=3,4,3) do={/ip fi man set nth=3,4,3}
:beep length=1s frequency=1755
} 以上做了关于443端口分流的走单一ADSL线路,并加入断几线报几次警报的脚本. 看不太懂...怎么没有一点解释的啊 16楼正解... 20楼辛苦了 最终还是没有解决 原帖由 专卖精品 于 2008-8-22 13:41 发表 http://bbs.routerclub.com/images/common/back.gif
晕,弄这么麻烦,ADSL掉线是经常的时候,一会儿就自动连接上了,断线的时候就让客户的数据包走默认路由就行了,什么都不用设置!
非常赞同!
以现在ADSL线路的稳定状态来看,需要考虑ADSL掉线这种牛角尖的问题?
页:
1
[2]