关于两条链路实现负载均衡和容错的设计
发布时间:2010-09-07 23:41:34 作者:佚名 我要评论
某公司的网络如下图所示:
该公司有两条专线,一条联通的2M 租线,另一条互联通的512K 租线;有一台Linux 做的WEB服务器,该WEB服务器有一张网卡,接到中心交换机3560上。公司希望,当两条线路都正常时,
某公司的网络如下图所示:
2M 租线,另一条互联通的512K 租线;有一台Linux 做的WEB服务器,该WEB服务器有一张网卡,接到中心交换机3560上。公司希望,当两条线路都正常时,客户能够通过任何一条专线访问公司的WEB服务器,实现负载均衡;而且,当任何一条线路出现故障时,用户仍然可以访问WEB服务器。
分析:为了实现两条线路正常时的负载均衡,可以通过配置DNS轮询实现。而为了实现容错,我们需要实现 从哪条线路进来的请求,其响应也从该线路出去,这是解决问题的关键所在。因为,如果从一条线路进去的请求,其响应从另外一条线路出来的话,那么TCP的三次握手不可能完成,TCP连接不可能建立起来(因为两条线路上都有防火墙)。而且,即使不考虑防火墙的状态检测机制,假设两条线路都正常时TCP连接能够建立起来,但是,一旦其中一条线路挂了,那么连接也不可能建立得起来,容错机制也不能实现。
DNS轮询,比较简单,我们不做深入的讨论。由于该公司的域名是在域名供应商那里注册的,所有只需要在域名供应商的网站上做适当配置:将该公司的WEB服务器域名 www.xxx.com.cn 分别映射到IP地址 x.x.x.x(联通IP) 和 y.y.y.y(互联通IP)就完事了。当用户浏览www.xxx.com.cn的时候,浏览器会智能地在这两个IP之间作出选择。
下面我们讨论怎样实现 从哪条线路进来的请求,其响应也从该线路出去。我们可以这样来做:
第一步:在联通线路的防火墙上,将联通给我们的IP地址x.x.x.x 的80端口映射到内网地址 192.168.168.1的80端口:
iptables -t nat -A PREROUTING -p tcp -s 0/0 -d x.x.x.x/32 \
--dport 80 -j DNAT --to-destination 192.168.168.1
iptables -t nat -A POSTROUTING -p tcp -s 192.168.168.1/32 -d 0/0 \
--sport 80 -j SNAT --to-source x.x.x.x
第二步:在互联通线路的防火墙上,将互联通给我们的IP地址y.y.y.y 的80端口映射到内网地址 192.168.1.2的80端口:
iptables -t nat -A PREROUTING -p tcp -s 0/0 -d y.y.y.y/32 \
--dport 80 -j DNAT --to-destination 192.168.168.2
iptables -t nat -A POSTROUTING -p tcp -s 192.168.168.2/32 -d 0/0 \
--sport 80 -j SNAT --to-source y.y.y.y
第三步:在WEB服务器上,为网卡eth0绑定两个IP地址:192.168.168.1,192.168.168.2:
[root@web network-scripts]# cat ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:76:23:23:9A
IPADDR=192.168.168.1 NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet [root@web network-scripts]# cat ifcfg-eth0:0
DEVICE=eth0:0
HWADDR=00:0C:76:23:23:9A
IPADDR=192.168.168.2 NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet 第四步:在WEB服务器上配置策略路由:将来自联通线路的,发给192.168.168.1的请求的响应包,发送给192.168.168.11,然后通过联通的线路,返回给用户;将来自互连通线路的,发给192.168.168.2的请求的响应包,发给192.168.168.12,然后通过互联通的线路返回给用户.这样,就可以实现 从哪条线路进来的请求,其响应也从该线路出去。 具体配置如下: [root@web ~]# ip route add table 1 default via 192.168.168.11
[root@web ~]# ip route add table 2 default via 192.168. 168.12
[root@web ~]# ip rule add from 192.168.168.1 table 1
[root@web ~]# ip rule add from 192.168.168.2 table 2
[root@web ~]# sh ip rule <--- IOS ^-^
/sbin/ip: /sbin/ip: cannot execute binary file
[root@web ~]# ip rule list
0: from all lookup local
32764: from 192.168.168.2 lookup 2
32765: from 192.168.168.1 lookup 1
32766: from all lookup main
32767: from all lookup default
[root@web ~]# ip route list table 1
default via 192.168.168.11 dev eth0
[root@web ~]# ip route list table 2
default via 192.168.168.12 dev eth0
就这样,就搞定了。Good Luck !!!
该公司有两条专线,一条联通的
DEVICE=eth0
HWADDR=00:0C:76:23:23:9A
IPADDR=192.168.168.1 NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet [root@web network-scripts]# cat ifcfg-eth0:0
DEVICE=eth0:0
HWADDR=00:0C:76:23:23:9A
IPADDR=192.168.168.2 NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet 第四步:在WEB服务器上配置策略路由:将来自联通线路的,发给192.168.168.1的请求的响应包,发送给192.168.168.11,然后通过联通的线路,返回给用户;将来自互连通线路的,发给192.168.168.2的请求的响应包,发给192.168.168.12,然后通过互联通的线路返回给用户.这样,就可以实现 从哪条线路进来的请求,其响应也从该线路出去。 具体配置如下: [root@web ~]# ip route add table 1 default via 192.168.168.11
相关文章
- 本人用的是anroid 2.1版本,定制软件过多,空间也不够用了,所以想到精简一些软件,特通过下面的方法来实现。有需要的朋友可以参考下。2011-06-13
- 下面给大家介绍一下华为 U8660 另一种一键 ROOT 权限的方法,接下来就一起看一下2012-05-03
- htc one x是刚刚出的机器,翻新机应该很少,也不敢说没有,现在什么都可能发生,帮大家搜集到了一些htc one x 的验机步骤,大家可以看看。2012-05-26
- 本教程教你如何把联想A750的最高权限也就是root权限给获取到2012-07-09
联想A750安装驱动的详细方法 对刷机.ROOT不懂的必看!(图文教程)
a750刷机时.经常会有提示装不了驱动.下面我们先把装驱动的方法介绍给大家2012-07-09- 腾讯手机管家PC版对于市场上常用的手机都能很好的支持.插上线就能root.比较方便2012-07-12
root是什么意思 root权限是什么 安卓手机root权限如何获取
root是什么意思?安卓手机root权限获取应该怎么做?如何一键root安卓手机?这是很多安卓手机新手所面临的几个重大问题。2012-07-24- ROOT权限,很多机友不知道root是什么意思,不会root,下面见简单的说说常见的问题及其如何正确用root手机2012-07-31
- 一提到刷机、ROOT,狠多人头都大了。系统权限、rom版本,一连串专业名词眼睛都看花了。今天我来教大家一种最便捷的方式,拥有史上爆高的成功率,完美支持超过65个品牌手机2012-10-20
- E120LRoot的关键步骤分为四步,务必要小心为手机一键Root,一定要根据软件的提示来操作手机,第五个步骤是进一步确认Root的2013-02-21
最新评论