基于webNat集群配置


203729729.jpg

一、条件


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
<h1>realserver1</h1>
# 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
<h1>realserver2</h1>
# 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
<h1>realserver1</h1>

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
<h1>realserver2</h1>

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模型使用