基于 CentOS 7 构建 LVS-DR 群集

LVS-DR模式工作原理

首先,来自客户端计算机CIP的请求被发送到Director的VIP。
然后Director使用相同的VIP目的IP地址将 请求发送到集群节点或真实服务器。
然后,集群某个节点将回复该数据包,并将该数据包直接发送到客户端计算机(不经过Director),并且以此回复数据包使用的目的VIP 地址作为源IP地址。

因此,实际上 是客户计算机被“欺骗”了,客户计算机始终认为它正与同一台计算机对话,而实际上它正在发送请求数据包给一台计算机(LB),并从另一台计算机(RS)接收回复的数据包。

分解图如下:

基于 CentOS 7 构建 LVS-DR 群集_第1张图片

集群架构图

基于 CentOS 7 构建 LVS-DR 群集_第2张图片

构建步骤

1、配置LVS虚拟IP(VIP)

2、手工执行配置添加LVS服务并增加两台RS

3、手工在RS端绑定VIP

4、配置WEB服务器

5、手工在RS端抑制ARP响应

6、测试

集群环境
主机 角色 VIP RIP firewalld
node1 LVS 192.168.19.140 192.168.19.133(DIP) disable
node2 WEB1 192.168.19.134 httpd
node3 WEB2 192.168.19.135 httpd

1、配置LVS虚拟IP(VIP)

[root@node1 ~]# ifconfig ens33:140 192.168.19.140 netmask 255.255.255.0 up

2、手工执行配置添加LVS服务并增加两台RS

[root@node1 ~]# yum install -y ipvsadm   #没有 lvs管理工具就下载

[root@node1 ~]# ipvsadm -A -t 192.168.19.140:80 -s rr
[root@node1 ~]# ipvsadm -a -t 192.168.19.140:80 -r 192.168.19.134:80 -g
[root@node1 ~]# ipvsadm -a -t 192.168.19.140:80 -r 192.168.19.135:80 -g

[root@node1 ~]# ipvsadm -Ln     #查看配置
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.19.140:80 rr
  -> 192.168.19.134:80            Route   1      0          0         
  -> 192.168.19.135:80            Route   1      0          0  

3、手工在RS端绑定VIP

[root@node2 ~]# yum install net-tools.x86_64   #centos7没有ifconfig就安装

[root@node2 ~]# ifconfig lo:140 192.168.19.140 netmask 255.255.255.255 up    #临时绑定
[root@node2 ~]# route add -host 192.168.19.140 dev lo      #添加本机访问VIP的路由
[root@node2 ~]# route -n        #查看路由
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.19.2    0.0.0.0         UG    100    0        0 ens33
192.168.19.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.19.140  0.0.0.0         255.255.255.255 UH    0      0        0 lo

=====================================================================

[root@node3 ~]# ifconfig lo:140 192.168.19.140 netmask 255.255.255.255 up
[root@node3 ~]# route add -host 192.168.19.140 dev lo
SIOCADDRT: File exists
[root@node3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.19.2    0.0.0.0         UG    100    0        0 ens33
192.168.19.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.19.140  0.0.0.0         255.255.255.255 UH    0      0        0 lo

4、配置WEB服务器

yum install httpd -y                   #下载软件包

setenforce 0                             #关闭seLinux防火墙

systemctl stop firewalld            #关闭防火墙

echo "web test pages ip is `hostname -I`" > /var/www/html/index.html    #页面内容

systemctl restart httpd              #重启生效

5、手工在RS端抑制ARP响应

法一:调整内核参数,关闭arp响应

[root@node2 ~] echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@node2 ~] echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@node2 ~] echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore
[root@node2 ~] echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce

WEB2同上

方法2:使用arptables抑制

[root@node2 ~] arptables -A INPUT -d 192.168.19.140 -j DROP
[root@node2 ~] arptables -A OUTPUT -s 192.168.19.140 -j mangle --mangle-ip-s 192.16819.135
[root@node2 ~] arptables-save > /etc/sysconfig/arptables

6、测试

在LVS上执行    watch ipvsadm -Ln   (实时监控)
基于 CentOS 7 构建 LVS-DR 群集_第3张图片

主机测试
基于 CentOS 7 构建 LVS-DR 群集_第4张图片

再次查看
基于 CentOS 7 构建 LVS-DR 群集_第5张图片

你可能感兴趣的:(运维,LVS-DR)