双线负载均衡设置完整版

网络 网络优化 网络运维
本文详细介绍了双线负载均衡的详细内容,简单几个步骤就能将其配置好。那么具体内容还是从下文中来了解吧。希望对大家能有所帮助。

在我们遇到双线网络的时候,该如何进行负载均衡的设置呢?这个问题我们将通过一个实际的案例帮助大家介绍,那么我们还是先从例子的实际情况出发,根据问题的所在进行方案的研究,之后通过前面文章的基础介绍,在此我们就直接引入双线负载均衡的配置问题了。

该公司有两条专线,一条联通的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:#p#

[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

 

责任编辑:佟健 来源: 互联网
相关推荐

2020-11-11 00:40:35

云计算混合云私有云

2020-11-01 17:01:00

Python字典开发

2022-09-06 14:57:27

物联网物联网安全

2010-09-14 14:07:56

2009-03-11 08:46:46

Chrome浏览器更新

2010-09-27 08:51:07

2011-07-01 10:23:41

Ubuntu Qt Creator

2015-07-10 09:47:43

CSSMacBook Air

2010-09-17 17:24:44

2011-09-19 16:17:02

Java

2017-07-19 16:17:53

2009-06-04 07:47:54

Struts 2权威指源码

2017-07-20 10:35:51

2019-01-23 08:48:50

跨域协议端口

2017-11-22 19:30:58

Windows时间线功能完整版

2010-09-28 12:56:33

2010-09-16 13:57:53

2019-05-15 08:00:00

vue组件间通信前端

2011-07-02 14:03:12

Linux Qt

2010-09-28 13:56:08

点赞
收藏

51CTO技术栈公众号