基于webNat集群配置

一、条件

1、最少三台服务器,一台配置调度器,其余主机配置web服务器

2、调度器主机上最少有两张网卡,一张网卡作为内部网络的网关(DIP),另一张网卡作为公网ipVIP),由于这种类型有公网和内网之分,所以,需要对两张网卡设置成不同的网络,而如果是一张网卡,就无法实现。

二、规划

1,由于是在虚拟机中进行配置,就都是用私有地址了。

配置ip和路由以及网关

首先为网卡选择网络连接方式,防止配置好ip后,在选择连接方式,ip会重置

DIPrealserver1realserver2选择vmnet

VIP桥接就好

调度器VIP172.16.5.11

 DIP: 192.168.1.11作为realserver的网关

服务器ip

 Realserver1:192.168.1.12

 Realserver2:192.168.1.13

2,realserver提供网页

3,安装lvs调度器工具ipvsadm,给调度器配置规则

三、配置

1,网络选择

按照上述所说,选择好网络,接下来就开始配置ip

2,realserver1配置

# ifconfig eth0 192.168.1.12/24 up# route add default gw 192.168.1.11

提供网站首页

# vim /var/www/html/index.html

realserver1

# service httpd start

3,realserver2配置

# ifconfig eth0 192.168.1.13/24 up# route add default gw 192.168.1.11

提供网站首页

# vim /var/www/html/index.html

realserver2

# service httpd start

4,调度器配置

# ifconfig eth0 172.16.5.11/16 up# ifconfig eth1 192.168.1.11/24 up# route add default gw 172.16.0.1------------教室网关

5,安装ipvsadm-1.25-10.el6.x86_64

# yum -y install ipvsadm-1.25-10.el6.x86_64

6,配置规则

# ipvsadm -A -t 172.16.5.11:80 -s rr# ipvsadm -a -t 172.16.5.11:80 -r 192.168.1.12 -m# ipvsadm -a -t 172.16.5.11:80 -r 192.168.1.13 -m

7,启用转发

# sysctl -w net.ipv4.ip_forward=1

这一步不可少,否则,只能接受请求报文,响应报文发不出去。


基于webDRdirector route)类型的负载均衡

一、分析及规划

1,同样,至少三台主机,一台做调度器,其余两台做web服务器。

2,因为这种类型的报文的传送是通过ARP解析mac地址,进行ip欺骗的网络传输。请求报文送达目的主机,目的主机直接将返回报文发往原地址,无需经过调度器,因此调度器只需要一块网卡即可。

3,调度器上的vip是用户请求的ip,也是web服务需要封装mac地址的ip,是公网IP,可以在同一块网卡上另添加一个ipDIP),作为和reaserverRIP)通信的一个网段内的ip,此时rip可以是私有ip,也可以使公网ip,这取决于dip的类型。我们暂且使用私有ip

4reserver收到报文后,直接讲报文转发出去,但能跟外界通信的只有RIP,但发出去的报文源ip却是vip,这就需要设置内核参数,来达到目的。

5,规划

Vip172.16.5.11

Dip192.168.1.11

Realserver1:eth0:192.168.1.12

  Lo:0:172.16.5.11

Realserver2:eth0:192.168.1.13

  Lo:0:172.16.5.11

6,其余配置沿用nat机制。

二、配置实现

1Realserver1

# ifconfig eth0 192.168.1.12# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce# ifconfig lo:0 172.16.5.11 broadcast 172.16.5.11 netmask 255.255.255.255 up# route add -host 172.16.5.11 dev lo:0# route add default gw 192.168.1.254----------三台主机在同一个网段

提供网站首页

# vim /var/www/html/index.html

realserver1

2Realserver1

# ifconfig eth0 192.168.1.13# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce# ifconfig lo:0 172.16.5.11 broadcast 172.16.5.11 netmask 255.255.255.255 up# route add -host 172.16.5.11 dev lo:0# route add default gw 192.168.1.254----------三台主机在同一个网段

提供网站首页

# vim /var/www/html/index.html

realserver2

3、配置调度器

# ifconfig eth0 172.16.5.11 broadcast 172.16.5.11 netmask 255.255.255.255 up------调度器配置Vip的网卡是外网接口

# ifconfig eth0:1 192.168.1.11# route add default gw 192.168.1.254

规则配置

# ipvsadm -A -t 172.16.5.11:80 -s wrr

-s 指明方法

Wrr 权重模式

# ipvsadm -a -t 172.16.5.11:80 -r 192.168.1.12 -g -w 2# ipvsadm -a -t 172.16.5.11:80 -r 192.168.1.13 -g -w 3

-g dr模式

-w 指明权重

4、别忘了启用转发

# sysctl -w net.ipv4.ip_forward=1


三、lvs的其他注意事项:

  • 关于时间同步:各节点间的时间偏差不大于1s,建议使用统一的ntp服务器进行更新时间;

  • DR模型中的VIP的MAC广播问题:

在DR模型中,由于每个节点均要配置VIP,因此存在VIP的MAC广播问题,在现在的linux内核中,都提供了相应kernel 参数对MAC广播进行管理,具体如下:

arp_ignore: 定义接收到ARP请求时的响应级别;

   0:只要本地配置的有相应地址,就给予响应;

   1:仅在请求的目标地址配置在到达的接口上的时候,才给予响应;DR模型使用

arp_announce:定义将自己地址向外通告时的通告级别;

   0:将本地任何接口上的任何地址向外通告;

   1:试图仅向目标网络通告与其网络匹配的地址;
   2:仅向与本地接口上地址匹配的网络进行通告;DR模型使用