LVS-DR模式集群构建过程演示

一、工作原理

LVS的工作原理

1.当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间

2.PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链

3.IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING链

4.POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送给后端的服务器

LVS-DR模式的工作原理

首先,来自客户端计算机CIP的请求被发送到Director的VIP。然后Director使用相同的VIP目的IP地址将请求发送到集群节点或真实服务器。然后,集群某个节点将回复该数据包,并将该数据包直接发送到客户端计算机(不经过director),并且以此回复数据包使用的目的VIP 地址作为源IP地址。因此,实际上是客户计算机被"欺骗"了,客户计算机始终认为它正与同一台计算机对话,而实际上它正在发送请求数据包给一台计算机(LB),并从另一台计算机(RS)接收回复的数据包。

二、构建过程

1.环境准备

准备四台主机

分别作为客户机、LVS调度器、RS服务器web1、RS服务器web2

|-----------|--------|-----------------|
| | 主机名 | IP |
| 客户机 | client | 192.168.198.140 |
| LVS调度器 | lvs | 192.168.198.141 |
| RS服务器web1 | web1 | 192.168.198.100 |
| RS服务器web2 | web2 | 192.168.198.200 |

关闭防火墙和selinux服务

分别将四个主机的防火墙和selinux服务都关闭

下载httpd软件包

在web1和web2服务器上安装httpd软件包,便于后续测试

然后分别在这两个主机上都编写测试页面,并启动服务

在客户机上检测

2.配置虚拟IP(VIP)

配置lvs的虚拟IP

选择一个同网段的,且未被占用的IP做为VIP

我的网卡名和IP网段如上,所以自己根据自己的实际情况来配置

ens33后面跟的是子接口编号,自己取

这里我选择192.168.198.111做为我的VIP

要保证客户端能ping通你的VIP

配置RS服务器的VIP

将虚拟IP绑定到web1和web2的loopback接口上

注意:这里RS服务器的VIP掩码必须是32位!!

并添加本机访问虚拟IP的路由

web2别忘了,也是一样

3.抑制ARP响应

我们之所以做ARP抑制,是因为如果不做就会发生如下图的情况

真实服务器RS也有VIP这个IP,所以也会去响应,那么就会和负载调度器一起去响应客户端的请求,所以我们需要去抑制ARP响应

复制代码
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

在RS服务器上抑制ARP响应

web1

web2

4.下载ipvsadm工具并使用

在lvs负载调度器上下载ipvsadm工具

yum install ipvsadm

|----------------|-------------------------|
| ipvsadm常用参数 | 相关参数说明 |
| -A | 添加虚拟服务器 |
| -t | 设置集群地址(VIP) |
| -s | 设置负载调度算法 |
| -a | 添加真实服务器 |
| -d | 删除真实服务器 |
| -r | 指定真实服务器 |
| -m | -g | -i | 分别使用NAT | DR | TUN 模式 |
| -w | 为节点服务器设置权重,默认为1 |

在lvs负载调度器上,配置添加LVS服务并增加两台RS

采用最简单的轮询算法演示(rr)

查看配置

5.测试

在客户机上测试

最终效果就如图

相关推荐
遇见尚硅谷6 小时前
C语言:20250805学习(文件预处理)
服务器·c语言·学习
wdfk_prog8 小时前
实战教程:从“对象文件为空“到仓库重生——修复 Git 仓库损坏全记录
大数据·网络·笔记·git·学习·elasticsearch·全文检索
朱以真139177649528 小时前
码头岸电系统如何保障供电安全?安科瑞绝缘监测及故障定位方案解析
网络·安全
Bonnie_12159 小时前
11-netty基础-手写rpc-支持多序列化协议-03
网络·网络协议·rpc·jetty
Mr_wilson_liu9 小时前
网络拨测和业务拨测是什么意思
linux·网络
ccLianLian9 小时前
计算机基础·linux系统
linux·运维·服务器
ζั͡山 ั͡有扶苏 ั͡✾10 小时前
Elasticsearch 单节点迁移实战指南:从旧服务器到新环境的完整流程
服务器·elasticsearch·jenkins
Doris_LMS11 小时前
一篇文章入门TCP与UDP(保姆级别)
网络·udp·tcp
摇光9311 小时前
[复习]计算机网络
网络·计算机网络·国家电网
zx_zx_12311 小时前
套接字编程UDP
linux·网络·udp