天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧软件 >> 正文

真正固定IP、adsl双线NTH负载均衡_掉线自动切换单线教程

2011-2-9未知佚名


什么是NTH?
我们从所有的连接中,提取每次新建立的连接connection=new,并对他们做nth的标记,将这些连接中相关的奇数(odd)包和偶数(even)包分离开,并走两个不同的网关(GatewayA与GatewayB)出去。这样就能保持每次连接的持续性。

实验环境



虚拟设备:
1. RouterOS 2.9.27  三台
2. winxpXP 一台

虚拟机网络连接:
RouterOS - 1  Ether1桥接 物理主机 IP 192.168.0.164/24
RouterOS – 1  Ether2 分配给 VMnet2 IP 1.0.0.1/24
RouterOS – 2  Ether1桥接 物理主机  IP192.168.0.165/24
RouterOS – 2  Ether2 分配给 VMnet3 IP 11.0.0.1/24
RouterOS – 3  Ether1 分配给 VMnet4 IP 172.16.0.254/24
RouterOS – 3  Ether2 分配给 VMnet2 IP PPPOE自动获取
RouterOS – 3  Ether3 分配给 VMnet3 IP 11.0.0.50/24
WINXP       网卡1 分配给 VMnet4 ip pppoe 自动获取

实验前已配置好的环境
1. 确认各个接口已PING通后删除ROUTEROS - 3接口配置,未实现NTH负载均衡。
2. ROUTEROS – 1 和 ROUTEROS - 3 的PPPOE拨号服务器已配置好
3. ROUTEROS – 1 和 ROUTEROS – 2的NAT 已经配置完,可以让WINXP 通过 ROUTEROS -3 Ether3 的固定IP访问外部真实局域网。

配置过程(以下操作均在ROUTEROS – 3进行)
1. 配置pppoe-client 在Ether2上,给Ether1和Ether3配置IP,(以下所有注释不要更改为其他的)。
2. 标记奇偶连接数据包(NTH)。因为是双线,所以标记两条。再加一条
3. 配置NAT。1是随便设~TO-ADDRESS用脚本自动修改,2就不能乱设了~要设置固定接口的IP,添加3这条是单线时      用到
4. 添加静态路由表。//3是用于单线,双线时自动停用。1、2做路由分发,这个不用选标记的路由包,MARK空
5. 添加balance脚本,PPPOE拨号掉线IP、网关、NAT自动修改。
:local assign-address
:local new-address
:local status
:local adckip
:local new-gateway
:local x
:set x 1
#如果 從1加1到等于变量x时 则做,同时将X赋值给i
:for i from=1 to=$x do={
     #查找接口名称=pppoe-out加i的接口是否激活,比如i循环到1那么就是pppoe-out1.将结果赋给
:set status [/interface get [/interface find  name=("pppoe-out" . $i)] running]
#如果status激活=真,则做
:if ($status=true) do={
#设置new-address,从IP地址列表里查找dynamic等于yes的接口,并取得该接口的IP地址
     :set new-address [/ip address get [/ip address find dynamic=yes interface=("pppoe-out" . $i)] address]
     # 将取得的IP地址,取总字符长度再减3
     :set new-address [:pick $new-address 0 ([:len $new-address] -3)]
    #   //查找非动态接口地址,将它赋值给assign-address
     :set assign-address [/ip address get [/ip address find dynamic=no interface=("pppoe-out" . $i)] address]
     :set assign-address [:pick $assign-address 0 ([:len $assign-address] -3)]
     #取拨号的动态网关,可以将pppoe-out1改为(“pppoe-out”.$i)
     :set new-gateway [/ip address get [/ip address find dynamic=yes interface=pppoe-out1] network]
     #取netwatch状态检查PPPOE拨号的host参数
     :set adckip [/tool netwatch get [/tool netwatch find comment=$i] host]
#//如果pppoe-out加$i的$assign-address静态地址不等于 $new-address,则做,将地址\子网\广播地址都设置为$new-address取得的地址.
     :if ($assign-address != $new-address) do={ /ip address set [/ip address find comment=$i] address=$new-address network=$new-address broadcast=$new-address
        /ip route set [/ip route find comment=$i] gateway=$new-address
        /ip fir nat set [/ip fir nat find comment=$i] to-addresses=$new-address
       }
    #如果新的网关不等于$adckip则将PPPOE拨号链路状态检查IP设为新的
     :if ($new-gateway != $adckip) do={/tool netwatch set [/tool netwatch find comment=$i] host=$new-gateway]
       }
   }
}

6. 添加光纤当线脚本fdown,自动停用NTH负载所需的参数
:local new-gateway
:set new-gateway [/ ip address get [/ip address find dynamic=yes interface=pppoe-out1] network]
#固定IP的链路当掉后将网关默认路由的下一跳的网关设为PPPOE获取的网关
/ip route set [/ip route find comment=3] gateway=$new-gateway
/ip route enable [/ip route find comment=3]
/ip route dis [/ip route find comment=1]
/ip route dis [/ip route find comment=2]
/ip firewall nat enable [/ip firewall nat find comment=3]
/ip firewall nat dis [/ip firewall nat find comment=1]
/ip firewall nat dis [/ip firewall nat find comment=2]

7. 添加ADSL当线脚本adsldown,ADSL掉线后将默认路由下一跳网关设为固定IP的网关
/ip route set [/ip route find comment=3] gateway=11.0.0.1
/ip route enable [/ip route find comment=3]
/ip route dis [/ip route find comment=1]
/ip route dis [/ip route find comment=2]
/ip firewall nat enable [/ip firewall nat find comment=3]
/ip firewall nat dis [/ip firewall nat find comment=1]
/ip firewall nat dis[/ip firewall nat find comment=2]

8..添加双线判断正常脚本linkup。即两条线路UP的时候开启NTH负载均衡。
:global  a
:global  b
#取当前两条链路状态
:set a [/tool netwatch get [/tool netwatch find comment=1] status]
:set b [/tool netwatch get [/tool netwatch find host=11.0.0.1] status]
#如果两条线路都为UP,则启用NTH负载均衡设置。
:if (($a="up") && ($b="up")) do={
/ip route dis [/ip route find comment=3]
/ip route ena [/ip route find comment=1]
/ip route ena [/ip route find comment=2]
/ip firewall nat dis [/ip firewall nat find comment=3]
/ip firewall nat ena [/ip firewall nat find comment=1]
/ip firewall nat ena [/ip firewall nat find comment=2]}
9.为balance脚本设置定时运行
10.设置定时检查两条线路的状态,UP或down则触发事件,运行脚本。//
加注释1,一定要加不然不会自动更改host,因为这条是ADSL的线路。
好设置完毕,还要运行下脚本,初始化,先fdown,再linkup,OK了,现在测试nth负载均衡,,一个失误~,哈哈没改成1
郁闷,可能是论坛没开,所以打不开网页
得了~看流量,刚刚的配置生效需要一点时间,
测试下载文件,我这个XP的拨号是限制最大4M下载流量的,等我开HTTP服务器先~
看到了把,ether2是ADSL,ether3是固定IP因为XP的拨号帐号是最大下载4M,所以两条线下载的不会超4M
好了,现在测试其中掉线切换为单线,先停掉1.0.0.1的路由器!,当掉后自动停用了路由表。只起用3
打开论坛试试
ping 真实局域网的IP 192.168.0.158OK
再开启1.0.0.1
等下UP了之后就会启用负载均衡,稍等~看!
关掉固定IP的路由器11.0.0.1稍等
启用单线了~再开启11.0.0.1测试负载均衡!稍等UP了
测试负载均衡!成功!演示完毕~
由于比较忙,没时间做详细的演示,如果有不懂的地方可以加QQ交流 9113800 banchen



本文来源:未知 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行