找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 130626|回复: 621

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

  [复制链接]
发表于 2008-12-26 22:28:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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

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

实验环境
新建 BMP 图像.JPG
虚拟设备:
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


说明、拓扑和录象:
下载1
http://cqwzcs.cn/banchen/rosnth.rar
下载2
http://www.gxgame.cn/dlq/rosnth.rar
下载3
http://www.namipan.com/d/103243b ... 9b34cee29ec5544b900
routeros
发表于 2008-12-26 22:35:12 | 显示全部楼层
一定要看看。
routeros
回复

使用道具 举报

 楼主| 发表于 2008-12-26 22:38:07 | 显示全部楼层
以下是截图
新建 BMP 图像1.JPG
新建 BMP 图像2.JPG
routeros
回复

使用道具 举报

发表于 2008-12-26 23:24:06 | 显示全部楼层
dddddddddddddddddd谢谢
routeros
回复

使用道具 举报

发表于 2008-12-26 23:25:29 | 显示全部楼层
dddddddddddddddddd谢谢
routeros
回复

使用道具 举报

发表于 2008-12-26 23:26:50 | 显示全部楼层
dddddddddddddddddd谢谢
routeros
回复

使用道具 举报

发表于 2008-12-27 00:29:37 | 显示全部楼层
DDDDDDDDDDDDDDDDDDDDDDD
routeros
回复

使用道具 举报

发表于 2008-12-27 03:30:11 | 显示全部楼层
it is good
routeros
回复

使用道具 举报

发表于 2008-12-27 11:33:51 | 显示全部楼层
看来比较复杂,记号后慢慢学习。
routeros
回复

使用道具 举报

发表于 2008-12-27 14:05:43 | 显示全部楼层
下一个 学习
routeros
回复

使用道具 举报

发表于 2008-12-27 23:56:25 | 显示全部楼层
看一看,学习一下!!!!!!!!!!
routeros
回复

使用道具 举报

发表于 2008-12-28 00:13:08 | 显示全部楼层
it is good
routeros
回复

使用道具 举报

发表于 2008-12-28 01:13:57 | 显示全部楼层
谢谢大大共享~~
routeros
回复

使用道具 举报

发表于 2008-12-28 08:35:57 | 显示全部楼层
谢谢为大家共享
routeros
回复

使用道具 举报

发表于 2008-12-28 10:01:17 | 显示全部楼层
下来学习一下。
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-16 06:48 , Processed in 0.083266 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表