基于 CentOS 7 构建 LVS-DR 群集

LVS-DR模式工作原理

首先,来自客户端计算机CIP的请求被发送到Director的VIP。

然后Director使用相同的VIP目的IP地址将 请求发送到集群节点或真实服务器。

然后,集群某个节点将回复该数据包,并将该数据包直接发送到客户端计算机(不经过Director),并且以此回复数据包使用的目的VIP 地址作为源IP地址。

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

分解图如下:

集群架构图

构建步骤

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 | disable |
| node3 | WEB2 | | 192.168.19.135 | httpd | disable |
[集群环境]

**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 (实时监控)

主机测试

再次查看

相关推荐
树下一少年3 年前
LVS-DR模式下(RS检测)ldirectord工具实现部分节点掉点后将请求发往正常设备进行处理
linux·服务器·lvs·lvs-dr·ldirectord