LVS-DR

概述

LVS-DR(Linux Virtual Server Direct Routing)模式是一种常用的负载均衡工作模式,适用于生产环境。在DR模式下,Director Server(负载均衡器)作为集群的访问入口,但不作为网关使用。Director Server与Real Server(后端服务器)需要处于同一个物理网络中,数据返回时不需要经过Director Server,减少了Director Server的处理负担,提高了整体的响应速度和稳定性。

DR模式工作原理

1、当客户端向Director Server发送请求时,请求报文首先到达内核空间的PREROUTING链。如果目标IP是Director Server的虚拟IP(VIP),数据包会被送到INPUT链。

2、IPVS在INPUT链上工作,它会将用户请求与定义好的集群服务进行比对。如果匹配,IPVS会修改请求报文的源MAC地址为Director Server的MAC地址,并将目标MAC地址修改为选定的Real Server的MAC地址,同时源IP和目标IP不变。

3、修改后的请求报文通过POSTROUTING链,由于Director Server和Real Server在同一网络中,请求报文通过数据链路层直接传输到Real Server。

4、Real Server接收到请求报文后,会处理请求并通过lo接口封装响应报文,将源MAC地址改为自己的MAC地址,目标MAC地址改为客户端的MAC地址,然后发送给客户端。

5、客户端接收到来自Real Server的响应,因为响应报文的源IP地址是VIP,客户端认为是直接从服务集群接收到的服务。

DR模式特点

Director Server和Real Server必须在同一个物理网络中。

Real Server可以使用私有或公有地址。

所有的请求报文都通过Director Server,但响应报文不需要经过Director Server。

Real Server的网关不指向Director Server,指向所属网段的网关。

Real Server上的lo接口配置有VIP的IP地址。

不支持端口映射。

Director Server与Real Server使用直连路由模式。

实验准备

五台虚拟机:客户端、路由器、负载均衡器、两台真实服务器

操作系统为openEuler22.03

所有虚拟机手工配置IP地址

路由器需要两张网卡,一张为NAT模式,一张为仅主机模式

VMware的NAT模式和仅主机模式的DHCP功能关闭

NAT模式网段为192.168.0.0/24

及主机模式网段为172.16.0.0/24

Client 192.168.0.10
Router 192.168.0.254
Router 172.16.0.254
Director Server DIP 172.16.0.10
Real Server 1 RIP1 172.16.0.20
Real Server 2 RIP2 172.16.0.30
Virtual IP 172.16.0.100
[IP地址]

Router

Director Server

Real Server

Clent

实验步骤

Router

开启内核路由功能

bash 复制代码
sysctl -p    #刷新配置

Director Server

将lo接口修改为VIP

bash 复制代码
ip address add 172.16.0.100/32 dev lo

安装ipvsadm负载均衡控制组件

bash 复制代码
yum install -y ipvsadm

添加配置文件

bash 复制代码
ipvsadm -A -t 172.16.0.100:80 -s rr
ipvsadm -a -t 172.16.0.100:80 -r 172.16.0.20:80 -g
ipvsadm -a -t 172.16.0.100:80 -r 172.16.0.30:80 -g

Real Server

Web1

bash 复制代码
ip address add 172.16.0.100/32 dev lo    #lo接口更改为VIP
bash 复制代码
yum install -y httpd
echo Web--1 > /var/www/html/index.html    #添加文本
systemctl enable --now httpd

抑制ARP

bash 复制代码
vim /etc/sysctl.conf
sysctl -p    #刷新内核配置

Web2

bash 复制代码
ip address add 172.16.0.100/32 dev lo    #修改lo接口为VIP
bash 复制代码
yum install -y httpd
echo Web--2 > /var/www/html/index.html
systemctl enable --now httpd

抑制ARP

bash 复制代码
vim /etc/sysctl.conf
sysctl -p

测试

更换为权重轮询测试

bash 复制代码
ipvsadm -E -t 172.16.0.100:80 -s wrr
ipvsadm -e -t 172.16.0.100:80 -r 172.16.0.20:80 -g -w 1
ipvsadm -e -t 172.16.0.100:80 -r 172.16.0.30:80 -g -w 2
相关推荐
KoiHeng2 小时前
操作系统简要知识
linux·笔记
Johny_Zhao5 小时前
Docker + CentOS 部署 Zookeeper 集群 + Kubernetes Operator 自动化运维方案
linux·网络安全·docker·信息安全·zookeeper·kubernetes·云计算·系统运维
小毛驴8506 小时前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
好好学习啊天天向上7 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
tan180°8 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
典学长编程8 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
wuk9989 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
snoopyfly~11 小时前
Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
java·服务器·ubuntu
独行soc11 小时前
#渗透测试#批量漏洞挖掘#HSC Mailinspector 任意文件读取漏洞(CVE-2024-34470)
linux·科技·安全·网络安全·面试·渗透测试
BD_Marathon11 小时前
Ubuntu下Tomcat的配置
linux·ubuntu·tomcat