lam_109
发表于 2009-3-4 21:33:20
好文章啊,顶.
3148715
发表于 2009-3-6 03:47:51
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶......nnnn
xnsxcoolczh
发表于 2009-3-6 21:56:37
值得学习,知道为什么要标记了
clair008
发表于 2009-3-15 20:27:33
好文章,谢谢,学习。
clair008
发表于 2009-3-15 22:02:12
研究了一下,“您有2个以上的网关”。这是什么意思?
是要有两条入户宽带线吗?
重复拨号不行吗?
politank
发表于 2009-3-18 00:04:37
好东西学习了
kroudy1
发表于 2009-3-22 00:38:48
顶你。。。辛苦了。。。。。。。。。
tjwh007
发表于 2009-3-24 15:11:02
谢谢LZ..........
qyii
发表于 2009-3-25 19:22:30
回帖是种美德
fanxk
发表于 2009-6-1 23:23:12
图文的,初学者好用,不过我觉得还是代码好用点
fanxk
发表于 2009-6-1 23:27:06
本帖最后由 fanxk 于 2009-6-1 23:29 编辑
转 此文来自网上,没有修改也没有验证 查看文章
xADSL+RANDOM负载均衡 完美自适应2009-03-17 15:32软件环境:routeros 2.9.27
功能:实现不同带宽多条ADSL的负载均衡和会聚
第一步, 在/interface里新建好PPPOE client填好ADSL用户名和密码,在原来的name前面加上此条的带宽,
如:2mpppoe-out1,4mpppoe-out2,6mpppoe-out6,不要修改name的其它地方.在不要有多余的PPPOE client,
不要勾ADD default route(默认是勾的),清空ROUTES表NAT表和MANGLE表(自己要加的脚本运行完了再加)
第二步, 全自动配置 请修改内网段,默认为 10.10.10.0/24
脚本复制到WINBOX的New Terminal终端粘贴即可(不包括分隔线).
---------------------------------分隔线------------------------------------------------
:local dd "10.10.10.0/24"
:local x [:len ]
:local xx
:local b 1
/ip fir nat add chain=srcnat src-address=$dd action=masquerade \
comment="all" disabled=yes
/ ip fir man add chain=prerouting src-address=$dd protocol=tcp dst-port=443 \
acti=mark-routing new-routing-mark=r1 passthrough=yes comment="443port"
:foreach a in= do={
/int set $a com=$b
:set b ($b+1) }
:for i from=1 to=$x do={
:set xx ($i . "." . $i . "." . $i . "." . $i)
/ ip ad add add=($xx . "/32") netw=$xx broa=$xx \
inte=( name]) com=$i
/ ip fir man add chain=prerouting src-address=$dd connection-state=new \
action=mark-connec new-connection-mark=("c" . $i) com=("con" . $i)
/ ip fir man add chain=prerouting src-address=$dd connection-mark=("c" . $i) \
action=mark-rout new-routing-mark=("r" . $i) passthrough=no com=("rou" . $i)
/ ip ro add dst-add=0.0.0.0/0 gatew=$xx routing-m=("r" . $i) com=$i check=ping
/ ip fir nat add chain=srcnat src-address=$dd com=$i action=src-nat \
connection-m=("c" . $i) to-address=$xx to-ports=0-65535 }
/ip fir man add chain=forward protocol=tcp tcp-flags=syn \
action=change-mss new-mss=1400 comment="ChangMSS1400"
/ ip ro add dst-add=0.0.0.0/0 gatew=1.1.1.1 com=($x+1) check=ping
=================================分隔线==============================================
第三步,创建自适应脚本 将脚本复制到WINBOX的New Terminal终端粘贴即可(不包括分隔线)
----------------------------------分隔线----------------------------------------------
/ system scheduler
add name="Xadsl" start-time=00:00:00 interval=20s on-event={
:global x [:len ]
:local nad
:local oad
:local face
:local am 0
:local cc 0
:local rm
:local disx
:local ll [:len ]
:local pt
:local pf
:for i from=1 to=$x do={
:if ( running] =true) do={
:set face name]
:set nad add]
:set nad [:pick $nad 0 [:find $nad "/"]]
:set oad addr]
:set oad [:pick $oad 0 [:find $oad "/"]]
:if ($oad != $nad) do={
/ip ad set addr=$nad netw=$nad broa=$nad
/ip route set gateway=$nad
/ip fi nat set to-address=$nad
} } }
:if ($ll>=2) do={
:foreach i in= do={
:set am ($am+([:pick () 0 1 ])) }
:for i from=1 to=($ll -1) do={
:set rm [:pick ( name]) 0 1 ]
:set rm (($rm * 1000) / $am)
:if ([:pick $rm 2 3] >5) do={ :set rm ($rm+10) }
:set rm ($rm /10)
/ip fi man set random=$rm
:set am ($am -([:pick ( name]) 0 1])) }
/ip fi ma unset random
:if ( disa] =no) do={
/ip fi na set disa=yes }
:if ( disa] =true) do={
:for i from=1 to=$ll do={
/ip fi ma set disa=no
/ip fi ma set disa=no } }
:if ( disa] =no) do={
:for i from=1 to=($x - $ll) do={
/ip fi ma set disa=yes
/ip fi ma set disa=yes } }
:for i from=1 to=($x - $ll) do={
/ip fir nat set [/ip fir nat find com=[/int get \
[:pick $pf ($i -1) $i] com]] disa=yes
/ip rou set [/ip rou find com=[/int get \
[:pick $pf ($i -1) $i] com]] disa=yes }
:for i from=1 to=$x do={
:set cc ($cc +[:len routing-m]]) }
:set disx [:len ]
:if (($disx !=($x - $ll))||($cc != ($ll*2))) do={
:for i from=1 to=$ll do={
/ip fi na set [/ip fi na fi com=[/int get \
[:pick $pt ($i -1) $i] com]] disa=no
/ip fi na set [/ip fir nat find com=[/int get \
[:pick $pt ($i -1) $i] com]] connection-mark=("c" . $i)
/ip ro set [/ip ro find com=[/int get \
[:pick $pt ($i -1) $i] com]] disa=no
/ip ro set [/ip ro fi com=[/int get \
[:pick $pt ($i -1) $i] com]] routing-mark=("r" . $i) }}
:for i from=1 to=($x - $ll) do={
/ip fi na unset [/ip fi na fi com=[/int get \
[:pick $pf ($i -1) $i] com]] connection-mark
/ip ro unset [/ip ro fi com=[/int get \
[:pick $pf ($i -1) $i] com]] routing-m }
}
:set disx [:len ]
:if ($ll=1) do={
:if ( disa] =yes) do={
/ip fi na set disa=no }
:if ($disx != $x) do={
:for i from=1 to=$x do={
/ip fi na set disa=yes
/ip ro set disa=yes
/ip ro unset routing-mark } }
}
:delay 2s
:if ( active] != true) do={
:set nad [/ip add get [/int get [/int fi runn=true \
type=pppoe-out] comm] netw]
/ip ro set gatew=$nad }
}
夏月轻雷
发表于 2009-6-2 00:40:56
留个QQ~!麻烦作者联系我,ROS爱好者也可以过来聊聊~!
67088833
Guanglight
发表于 2009-6-12 16:43:50
难得的好文章
泥公仔
发表于 2010-4-27 11:59:33
收藏收藏,謝謝.
gll800
发表于 2010-4-29 17:42:25
学习了多谢楼主提供~~