ROS软路由论坛 ROSABC.com 网络方案网络工程交流

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 15315|回复: 13

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

[复制链接]
发表于 2006-11-5 23:52:32 | 显示全部楼层 |阅读模式

马上注册成为ROSABC会员,随时发帖回复。

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

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

实验环境
09031022025b98076bd25189f6.jpg 2009-3-10 22:02 上传
下载附件 (57.01 KB)



虚拟设备:
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了
测试负载均衡!成功!演示完毕~



说明、拓扑和录象:

下载1
http://cqwzcs.cn/banchen/ROS软路由nth.rar
下载2
http://www.gxgame.cn/dlq/ROS软路由nth.rar
下载3
http://www.namipan.com/d/103243b ... 9b34cee29ec5544b900
发表于 2006-11-7 00:30:20 | 显示全部楼层
谢谢,得好好学习
发表于 2006-11-8 07:37:44 | 显示全部楼层
顶起来
发表于 2006-11-10 06:03:25 | 显示全部楼层
谢谢,得好好看看
发表于 2006-11-10 12:40:50 | 显示全部楼层
好东西啊,可以研究
发表于 2006-11-10 16:38:10 | 显示全部楼层
下载了上传到纳米盘中
发表于 2006-11-11 14:44:34 | 显示全部楼层
谢谢分享。分享。分享。分享。
发表于 2006-11-13 22:52:06 | 显示全部楼层
好东西,顶起来~
发表于 2006-11-14 10:28:49 | 显示全部楼层
真不简单啊
发表于 2006-11-15 11:46:59 | 显示全部楼层
顶顶。。。。。
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

不良信息举报Q:2000617

软路由

不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流

GMT+8, 2024-4-24 02:52 , Processed in 0.672198 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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