banchen 发表于 2008-12-26 22:28:10

真正固定IP、adsl双线NTH负载均衡_掉线自动切换单线[录象]

本帖最后由 zooyo 于 2011-2-9 20:38 编辑

网上看到一些文章只有NTH负载,没有掉线自动切换的,所以录了这个。虽说没什么大不了的,这也是对大家做一点贡献
什么是NTH?
我们从所有的连接中,提取每次新建立的连接connection=new,并对他们做nth的标记,将这些连接中相关的奇数(odd)包和偶数(even)包分离开,并走两个不同的网关(GatewayA与GatewayB)出去。这样就能保持每次连接的持续性。

实验环境

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

虚拟机网络连接:
RouterOS - 1Ether1桥接 物理主机 IP 192.168.0.164/24
RouterOS – 1Ether2 分配给 VMnet2 IP 1.0.0.1/24
RouterOS – 2Ether1桥接 物理主机IP192.168.0.165/24
RouterOS – 2Ether2 分配给 VMnet3 IP 11.0.0.1/24
RouterOS – 3Ether1 分配给 VMnet4 IP 172.16.0.254/24
RouterOS – 3Ether2 分配给 VMnet2 IP PPPOE自动获取
RouterOS – 3Ether3 分配给 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 running]
#如果status激活=真,则做
:if ($status=true) do={
#设置new-address,从IP地址列表里查找dynamic等于yes的接口,并取得该接口的IP地址
   :set new-address address]
   # 将取得的IP地址,取总字符长度再减3
   :set new-address [:pick $new-address 0 ([:len $new-address] -3)]
    #   //查找非动态接口地址,将它赋值给assign-address
   :set assign-address address]
   :set assign-address [:pick $assign-address 0 ([:len $assign-address] -3)]
   #取拨号的动态网关,可以将pppoe-out1改为(“pppoe-out”.$i)
   :set new-gateway network]
   #取netwatch状态检查PPPOE拨号的host参数
   :set adckip host]
#//如果pppoe-out加$i的$assign-address静态地址不等于 $new-address,则做,将地址\子网\广播地址都设置为$new-address取得的地址.
   :if ($assign-address != $new-address) do={ /ip address set address=$new-address network=$new-address broadcast=$new-address
      /ip route set gateway=$new-address
      /ip fir nat set to-addresses=$new-address
       }
    #如果新的网关不等于$adckip则将PPPOE拨号链路状态检查IP设为新的
   :if ($new-gateway != $adckip) do={/tool netwatch set host=$new-gateway]
       }
   }
}

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

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

8..添加双线判断正常脚本linkup。即两条线路UP的时候开启NTH负载均衡。
:globala
:globalb
#取当前两条链路状态
:set a status]
:set b status]
#如果两条线路都为UP,则启用NTH负载均衡设置。
:if (($a="up") && ($b="up")) do={
/ip route dis
/ip route ena
/ip route ena
/ip firewall nat dis
/ip firewall nat ena
/ip firewall nat ena }
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


说明、拓扑和录象:
下载1
http://cqwzcs.cn/banchen/rosnth.rar
下载2
http://www.gxgame.cn/dlq/rosnth.rar
下载3
http://www.namipan.com/d/103243bab24b8cfe58188ba30aa869b34cee29ec5544b900

tsingchina 发表于 2008-12-26 22:35:12

一定要看看。

banchen 发表于 2008-12-26 22:38:07

以下是截图

jm3894584 发表于 2008-12-26 23:24:06

dddddddddddddddddd谢谢

jm3894584 发表于 2008-12-26 23:25:29

dddddddddddddddddd谢谢

jm3894584 发表于 2008-12-26 23:26:50

dddddddddddddddddd谢谢

liuxinxin 发表于 2008-12-27 00:29:37

DDDDDDDDDDDDDDDDDDDDDDD

win28703 发表于 2008-12-27 03:30:11

it is good

tlze 发表于 2008-12-27 11:33:51

看来比较复杂,记号后慢慢学习。

jgnik 发表于 2008-12-27 14:05:43

下一个 学习

lzj5623 发表于 2008-12-27 23:56:25

看一看,学习一下!!!!!!!!!!

84068466 发表于 2008-12-28 00:13:08

it is good

yantou 发表于 2008-12-28 01:13:57

谢谢大大共享~~

bgtlm 发表于 2008-12-28 08:35:57

谢谢为大家共享

tandabing 发表于 2008-12-28 10:01:17

下来学习一下。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 真正固定IP、adsl双线NTH负载均衡_掉线自动切换单线[录象]