linux简单集群实现

一、LVS NAT的实现

实现实验环境

准备3台主机,分别作Director,RS1,RS2,通过访问web服务来测试集群功能!

各网卡配置如下,

服务器网卡地址
Director

eth0:172.16.8.8(作为VIP)

eth1:192.168.10.1(作为DIP)

RS1eth0:192.168.10.11(作为RIP)
RS2eth0:192.168.10.12 (作为RIP)


拓扑图:


1.Director服务器的配置

设置VIP与DIP的地址

[root@master ~]# ifconfig eth0 172.16.8.8/16  //VIP
[root@master ~]# ifconfig eth1 192.168.10.1/24  //DIP


如下图:


2、RS1服务器的配置

配置RIP地址:

[root@master ~]# ifconfig eth0 192.168.10.11/24 //RIP

如图


把RS1服务器的默认网关指向DIP

[root@master ~]# route add default gw 192.168.10.1

如图


创建测试网页文件

# yum -y install httpd //没有httpd的话则安装
# vim /var/www/html/index.html
写如如下内容
<h1>web2</h1>



3.RS2服务器的配置

配置RIP

[root@master ~]# ifconfig eth0 192.168.10.12/24 //RIP

如图


把RS2服务器的默认网关也指向DIP

[root@master ~]# route add default gw 192.168.10.1

如图:


创建网页文件:

# yum -y install httpd //没有httpd的话则安装
# vim /var/www/html/index.html
写如如下内容
<h1>web2</h1>



4 、在Director服务器上配置集群服务

打开IP转发:

# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@master ~]# yum -y install ipvsadm
[root@master ~]# ipvsadm -A -t 172.16.8.8:80 /这里采用默认调度方法wlc来配置集群
[root@master ~]#  ipvsadm -a -t 172.16.8.8:80 -r 192.168.10.11:80 -m -w 3 //添加RS1记录,lvs类型为nat,RS权重为3
[root@master ~]#  ipvsadm -a -t 172.16.8.8:80 -r 192.168.10.12:80 -m -w 1 //添加RS2记录,lvs类型为nat,RS权重为1


如图:


5、打开游览器输入VIP地址172.16.8.8测试

查看ipvsadm状态

从上图看出,nat集群服务已经生效,从Conns,InPkts值来看二者RS权重比3:1,基本符合设定值


二、LVS-DR的配置

VIP和RIP在同一公网网段

服务器网卡地址
Director

eth0:172.16.8.8(作为DIP)

eth0:0:172.16.8.6(作为VIP)

RS1

eth0:172.16.8.7(作为RIP)

lo:0 172.16.8.6 (vip)

RS2

eth0:172.16.8.9 (作为RIP)

lo:0 172.16.8.6 (vip)


拓扑图:


1、Director的配置

准备一块网卡配置VIP与DIP

[root@master ~]# ifconfig eth0 172.16.8.8/16 //(DIP)
[root@master ~]# ifconfig eth0:0 172.16.8.6/16 //(VIP)
[root@master ~]# route add -host 172.16.8.6 dev eth0:0 //让发往172.16.8.6的请求都经过eth0:0


2、RS1的配置

创建网页文件:

# yum -y install httpd //没有httpd的话则安装 
# vim /var/www/html/index.html
写如如下内容
<h1>web1</h1>

 

配置DIP

[root@master ~]# ifconfig eth0 172.16.8.7 //RIP


修改内核参数来先限制arp的广播和应答:

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce


配置VIP

[root@master ~]# ifconfig lo:0 172.16.8.6 netmask 255.255.255.255 broadcast 172.16.8.6 up //配置VIP必须不让realserver对外广播


配置路由

[root@master ~]#  route add -host 172.16.8.6 dev lo:0 #请求是VIP的包,以lo:0接口出去,于是源地址还是为VIP,不会导致因为从eth0出去将源地址变为RIP


3、RS2的配置

创建网页文件
# yum -y install httpd //没有httpd的话则安装
# vim /var/www/html/index.html
写如如下内容
<h1>web2</h1>


修改内核参数来先限制arp的广播和应答:

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce


配置RIP与VIP

[root@master ~]# ifconfig eth0 172.16.8.9 //RIP
[root@master ~]# ifconfig lo:0 172.16.8.6 netmask 255.255.255.255 broadcast 172.16.8.6 up //配置VIP必须不让realserver对外广播


配置路由:

[root@master ~]#  route add -host 172.16.8.6 dev lo:0 #请求是VIP的包,以lo:0接口出去,于是源地址还是为VIP,不会导致因为从eth0出去将源地址变为RIP


4、在Director服务器上添加集群服务

[root@master ~]# ipvsadm -A -t 172.16.8.6:80 -s rr
[root@master ~]# ipvsadm -a -t 172.16.8.6:80 -r 172.16.8.7 -g
[root@master ~]# ipvsadm -a -t 172.16.8.6:80 -r 172.16.8.9 -g


打开网页测试:


从上图看出LVS-DR模型配置成功!


三、LVS -DR模型的另一种配置

为了节约公网地址,DR模型下VIP可用公网地址,RIP用内网地址,将网关都指向同一个路由器,以此来实现DR模型的LVS负载均衡

服务器网卡地址
Director

eth0:172.16.8.6(作为VIP)

eth1:192.168.10.1(作为DIP)

RS1

eth0:192.168.10.11(作为RIP)

lo:0 172.16.8.6 (VIP)

gw:192.168.10.13

RS2

eth0:192.168.10.12 (作为RIP)

lo:0 172.16.8.6 (VIP)

gw:192.168.10.13

Client(网关服务器)

eth0:192.168.10.13

eth1:172.16.10.1


拓扑图:


1.Director服务器的配置

准备二块网卡设置VIP与DIP的地址

[root@master ~]# ifconfig eth0 172.16.8.6/16  //VIP
[root@master ~]# ifconfig eth1 192.168.10.1/24  //DIP


2、RS1的配置

创建网页文件
# yum -y install httpd //没有httpd的话则安装
# vim /var/www/html/index.html
写如如下内容
<h1>web1</h1>


修改内核参数来先限制arp的广播和应答:

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce


配置VIP与DIP:

[root@master ~]# ifconfig eth0 192.168.10.11 //RIP
[root@master ~]# ifconfig lo:0 172.16.8.6 netmask 255.255.255.255 broadcast 172.16.8.6 up //配置VIP必须不让realserver对外广播


配置路由与网关:

[root@master ~]#  route add -host 172.16.8.6 dev lo:0 //请求是VIP的包,以lo:0接口出去,于是源地址还是为VIP,不会导致因为从eth0出去将源地址变为RIP
[root@master ~]# route add default gw 192.168.10.13 //指向路由服务器


3、RS2的配置

创建网页文件
# yum -y install httpd //没有httpd的话则安装
# vim /var/www/html/index.html
写如如下内容
<h1>web2</h1>


修改内核参数来先限制arp的广播和应答

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce


配置VIP与DIP:

[root@master ~]# ifconfig eth0 192.168.10.12 //RIP
[root@master ~]# ifconfig lo:0 172.16.8.6 netmask 255.255.255.255 broadcast 172.16.8.6 up //配置VIP必须不让realserver对外广播


配置路由与网关:

[root@master ~]#  route add -host 172.16.8.6 dev lo:0 //请求是VIP的包,以lo:0接口出去,于是源地址还是为VIP,不会导致因为从eth0出去将源地址变为RIP
[root@master ~]# route add default gw 192.168.10.13 //网关指向路由服务器


4、配置路由服务器

启动一台主机配置成路由服务器,添加以下规则:

配置网卡:


添加路由规则:

[root@master ~]# route add -net 192.168.10.0 netmask 255.255.255.0 dev eth1 //发往192.168.10网段的请求经过eth1出去
[root@master ~]# route add -net 172.16.0.0 netmask 255.255.0.0 dev eth0   //发往172.16.0.0网段的请求经过eth0出去


5、在Director服务器上添加集群服务

[root@master ~]# ipvsadm -A -t 172.16.8.6:80 -s rr
[root@master ~]# ipvsadm -a -t 172.16.8.6:80 -r 192.168.10.11 -g
[root@master ~]# ipvsadm -a -t 172.16.8.6:80 -r 192.168.10.12 -g


测试:


从图看出vip与RIP不在同一网段的DR模型配置成功!


注:如果各个网卡都是桥接的话,反应可能有点延迟,测试时,最好把各个网卡放在同一HOST-ONLY下,我这里是虚拟机:如图


在路由服务器上测试,如图:

linux简单集群实现,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。