LVS(Linux virual server)介绍与实验

LVS 全称 Linux Virtual Server,是 Linux 内核层实现的高性能、高可用 的负载均衡集群技术,由章文嵩博士开发,目前是 Linux 内核的标准模块 之一。它的核心作用是将前端的请求流量分发到后端多台真实服务器 (Real Server)上,从而提升服务的并发处理能力和可用性。

一.NAT模式

Ivs-nat: 本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和 PORT实现转发 RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP 请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈 支持端口映射,可修改请求报文的目标PORT VS必须是Linux系统,RS可以是任意OS系统。

1.Director 服务器采用双网卡,一个是桥接网卡连接外网,一个是仅主机网卡与后端Web服务器相连

2.Web服务器采用仅主机网卡与director相连

3.Web服务器网关指向192.168.0.100

4.后端web服务器不需要连接外网

环境准备:

修改VS,RS1,RS2的网卡模式和ip地址

RS1指定网关:

RS2指定网关:

测试是否联通:

nat测试:

在vs上安装ipvsadm:

开启内核路由功能:

编写策略:

bash 复制代码
ipvsadm -C      
清空当前所有的 IPVS 规则和配置
ipvsadm -A -t 172.25.254.100:80 -s wrr 
-A:添加一个新的虚拟服务;
-t:TCP 协议
-s wrr:指定调度算法为加权轮询,即根据后端服务器的权重分配请求。
ipvsadm -a -t 172.25.254.100:80 -r 192.168.0.10:80 -m  -w 1  
-a:向已有的虚拟服务中添加一个真实服务器
-t:TCP 协议
-r:指定真实服务器的地址和端口。
-m:使用NAT模式进行数据包转发。
-w 1:设置该真实服务器的权重为 1。

更改权重:

bash 复制代码
ipvsadm -e -t 172.25.254.100:80 -r 192.168.0.10:80 -m -w 2
-e:编辑(Edit)已存在的真实服务器配置。
-t:指定虚拟服务为 TCP 协议,地址为 172.25.254.100:80。
-r:指定要修改的真实服务器地址 192.168.0.10:80。
-m:保持NAT转发模式。
-w 2:将该真实服务器的权重从 1 修改为 2。

规则持久化:

利用自定义文件进行持久化:

bash 复制代码
ipvsadm-save -n > /mnt/ipvs.rule
ipvsadm-restore < /mnt/ipvs.rule

利用守护进程进行规则持久化:

二.DR模式

DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行 转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源 IP/PORT,以及目标IP/PORT均保持不变

环境准备:

RS1和RS2可以用net实验中的来平替;修改router和vsnode 调度器ip地址

设定内核路由

设置转发策略:

bash 复制代码
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.0.100
-t nat:操作nat表,用于地址转换。
-A POSTROUTING:在 POSTROUTING 链中追加一条规则(数据包即将离开本机时处理)。
-o eth1:规则仅对从 eth1 网卡发出的数据包生效。
-j SNAT:执行源地址转换(Source NAT)。
--to-source 192.168.0.100:将数据包的源 IP 地址修改为 192.168.0.100。

RS1在lo上设定vip:

RS2在lo上设定vip:

RS1和RS2arp禁止响应:

测试全网可达:

三.防火墙标签解决轮询错误

bash 复制代码
#在RS1和RS2中开启https
[root@RS1+RS2 ~] dnf install mod_ssl -y
[root@RS1+RS2 ~] systemctl restart httpd
[root@RS1+RS2 ~] systemctl restart httpd

在vsnode中添加https的轮询策略:

bash 复制代码
ipvsadm -A -t 192.168.0.200:80  -s rr
-A:添加虚拟服务。
-t:TCP 协议,虚拟 IP 为 192.168.0.200:80。
-s rr:调度算法为 轮询(Round Robin)。
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20 -g
-a:添加真实服务器。
-r 192.168.0.20:后端服务器地址。
-g:使用 DR(Gateway/Direct Routing)模式。
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10 -g
ipvsadm -A -t 192.168.0.200:443 -s rr
ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.10:443 -g
ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.20:443 -g

为了防止轮询错误,使用火墙标记访问vip的80和443的所有数据包,设定标记为6666,然后对此标记进行负载

在ip为172.25.254.99的客户端上测试;

相关推荐
goyeer1 天前
【ITIL4】32服务实践 - 问题管理(Problem Management)
linux·运维·服务器·企业数字化·it管理·itil·it治理
怀旧,1 天前
【Linux网络编程】8. 网络层协议 IP
linux·网络·tcp/ip
RH2312111 天前
2026.5.12 Linux
java·linux·数据结构
cen__y1 天前
Linux11(网络编程)
linux·运维·服务器·c语言·网络·网络协议·tcp/ip
ITKEY_1 天前
archlinux x11桌面 部分程序识别成Wayland
linux
CableTech_SQH1 天前
商业地产和高端酒店该怎么选综合布线解决方案?
运维·服务器·网络
怀旧,1 天前
【Linux网络编程】9. 数据链路层
linux·服务器·网络
用户2367829801681 天前
Linux watch 命令深度解析:从实时监控到变化检测的完整实现
linux
xingyuzhisuan1 天前
哪里可以一键部署Stable Diffusion XL的GPU云环境?(2026实测指南)
运维·人工智能·stable diffusion·gpu算力
Agent手记1 天前
采购合同智能审核自动化,落地步骤与落地风险管控方案 —— 2026年企业级Agent深度实战指南
运维·人工智能·ai·自动化