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
相关推荐
xinyu39128 分钟前
旧版Ubuntu Docker镜像 apt 失败
linux·ubuntu·docker
JZC_xiaozhong39 分钟前
OA调价审批后,采购调价单如何自动同步到ERP?解决漏录错价难题
大数据·linux·服务器·前端·数据库·数据孤岛解决方案·数据集成与应用集成
ljs64827395142 分钟前
Linux 实用命令:环境变量、文件传输、压缩解压、跨服务器传文件
linux·运维·服务器
__Witheart__1 小时前
lunch选择的版型与版型对应的配置文件
android·linux
A小调的码农1 小时前
给垃圾平板“一生E本” 装新系统—————Armbian 编译 KYX T7Y (RK3326) 踩坑全记录
linux·嵌入式硬件
ljs6482739511 小时前
Linux 网络常用命令与端口基础详解
linux·网络·php
蓝狐社1 小时前
一张被低估的芯片版图——中兴通讯
运维·服务器
网络小白不怕黑2 小时前
13.SSH服务相关配置
服务器·网络·ssh
Jtti2 小时前
站群服务器多IP能不能分散DDoS攻击流量?
服务器·tcp/ip·ddos
qq_163135752 小时前
Linux 判断是否安装 Conda / Miniconda 完整方法
linux