能够正常工作的多ADSL同网关负载均衡配置
前几天看到精品大哥的实验,当时就觉的可行,对具体的可行性未加论证.后来精品大哥又说不可行测试环境有误.但是我想了半天也没想到哪个环节有误,后来想到了是默认网关的问题,实际测试也是这个问题,如果不添加多网关,只做多SNAT,就会只有默认网关有RX流量,而其余的只有TX流量.经过一番思考最终解决,方法如下:(要求ADSL固定IP否则需要编写脚本来实现.不过不好意思,我只熟悉LINUX的操作,ROS的雷同,各位老大自己琢磨吧.)
环境:
PPPOE服务器:ROS2.96
拨号客户端:LINUX
一台工作站:
1、PPPOE服务器设置:
先按照常规配置好PPPOE服务、配置文件等,在接口ether2,记的不要选择哪个only one连接,否则只有一个pppp能拨号成功。
开帐号
ppp0local address:10.0.0.1 remote address:10.0.1.4
ppp1local address:10.0.0.1 remote address:10.0.1.1
ppp2local address:10.0.0.1 remote address:10.0.1.2
ppp3local address:10.0.0.1 remote address:10.0.1.3
外网 ether1: 192.168.0.5
default gw :192.168.0.254
DNS:192.168.0.254
先实验好ROS的网络连通性。
2、拨号客户端的设置:
在LINUX下利用adsl-setup向导来分别建立接口(拨号接口为eth0)
ppp0 用户名:ppp0 密码:123456
ppp1 用户名:ppp0 密码:123456
ppp2 用户名:ppp0 密码:123456
ppp3 用户名:ppp0 密码:123456
记得修改每个/etc/sysconfig/network-script/ifcon-pppX的PID文件,否则只能一个拨号。
先测试和ROS的连通性:如果正常应该看到ppp0 ppp1 ppp2 ppp3四个接口,ROS端也应该看到相应的接口。
ping 192.168.0.5
ping 192.168.0.254
都应该是通的。如果不通,先看看配置和路由表,还有防火墙。
清除掉原防火墙配置。建立新配置如下:
iptables -t -A POSTROUTING -o ppp0 -j SNAT --to-source 10.0.1.4
iptables -t -A POSTROUTING -o ppp1 -j SNAT --to-source 10.0.1.1
iptables -t -A POSTROUTING -o ppp2 -j SNAT --to-source 10.0.1.2
iptables -t -A POSTROUTING -o ppp3 -j SNAT --to-source 10.0.1.3
记得开启哪个ip_froward哦,否则可是要不同的。
配置eth1:192.168.1.254
可不要设缺省哦。
DNS:192.168.0.254
ip routereplace default equalize nexthop via 10.0.1.1 dev ppp1 weight 1nexthop via 10.0.1.2 dev ppp2 weight 1nexthop via 10.0.1.3 dev ppp3 weight 1nexthop via 10.0.1.4 dev ppp0 weight 1
3 客户端配置:
按照常规配置就可以了。
我开了个迅雷加了几个多线程任务,大约有20多个线程吧。然后在4个PPP接口都看到了RX TX流量。 没有搞清楚,哈哈 可不可以用ROS的语法。
大概的看懂了,是不是out-interface:ppp0就伪装成10.0.1.4。其它的一样伪装
网关呢?
你是要虚拟机试吧。如果放到电信的多ADSL就不行了。我试过了 不是虚拟机的,都是真实的计算机,我现在发帖的机器就是上面说的哪个工作站的。
关键不在于如何SNAT,而是多网关部分。我也想用ROS来配,可我不很熟悉。记的ROS也可以设置多网关的,请zooyo大哥给解释一下是不是均衡用的就可以了。 或者说你是用的多层路由。
能不能说一下你的网络拓扑
你那几个伪装的IP(10.0.1.4)是举例。你上面说的IP都不是公网IP 我不会画图,也不会帖图,反附件里,大家自己看吧。 这样的测试环境,你这种做法是可行的。如果把你做的路由ppp0、ppp1、ppp2、ppp3换成电信公司的账号,四个公网IP就不行了。
你可以放到公网再试试。
我用过你这种方法,当时很兴奋,后来到公网上试一下,结果不行。 哦,能告诉我不行的原因吗?或者说为什么不行. 因为你现在的环境可能存在几个问题
1、各网之间路由器可能直接转发,没有做NAT
2、PPPOE服务器没设防火墙
你要试出电信公司的效果
1、一定要做SNAT伪装
2、PPPOE服务器设防火墙,例:检查PPP0出口的IP,如果不是服务器分配的IP(10.0.1.4)的话就drop 这样啊,怪我没说明白,我在ROS上做了SNAT,如果不做SNAT,我单位的服务器不让出的.
PPPOE没设防火墙是真的,不过你举例说明的drop规则即使设置上也没事的.
在LINUX上很久以前就有多网关的负载均衡的做法,这也是ADSL均衡的关键.
即使有防火墙也没大问题的,因为只是更改了路由表的内容. 先这样吧,我要睡觉了.谢谢各位的意见. 因为你没有用公网IP,所以,你出到外网的IP还是相同的,没有实际意义,呵呵
而且,一般人用的ADSL有很多限制,这个办法是不行的,已经测试过了 哦,这样啊,也许你们说的是真的,很遗憾我没条件测试,不过实在想不到有什么不行的地方,也许要等到我有机会了,才能出新的结论.不过还是要感谢大伙的支持. 最好能挂上网络游戏测试下。。。 没办法,我不会玩游戏,纸牌我都不过关.那位GG ,能够提供环境,我提供一些技术,我们测试一下吧.
页:
[1]
2