LVS(Linux virual server)

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

一、NAT模式环境设定

vs主机的IP配置

eth0(NAT)

root@vs /\]# ./vmset.sh eth0 172.25.254.10 rs1 noroute \[root@vs /\]# nmcli connection modify eth0 ipv4.gateway 172.25.254.2 eth1(仅主机) \[root@vs /\]# ./vmset.sh eth1 192.168.1.10 vs noroute \[root@vs system-connections\]# nmcli connection modify eth1 ipv4.gateway 192.168.1.2 \[root@vs system-connections\]# dnf install ipvsadm.x86_64 #下载ipvsadm工具 rs1主机配置 eth0(仅主机) \[root@rs1 /\]# ./vmset.sh eth0 192.168.1.20 rs1 noroute \[root@rs1 /\]# nmcli connection modify eth0 ipv4.gateway 192.168.1.2 \[root@rs1 /\]# dnf install httpd-y \[root@rs1 /\]# echo rs1 192.168.1.20 \> /var/www/html/index.html rs2 eth0(仅主机) \[root@rs2 /\]# ./vmset.sh eth0 192.168.1.30 rs2 noroute \[root@rs2 /\]# nmcli connection modify eth0 ipv4.gateway 192.168.1.2 \[root@rs2 /\]# dnf install httpd-y \[root@rs2 /\]# echo rs2 192.168.1.30 \> /var/www/html/index.html vs主机ipvsadm配置 \[root@vs system-connections\]# ipvsadm -A -t 172.25.254.10:80 -s wrr \[root@vs system-connections\]# ipvsadm -a -t 172.25.254.10:80 -r 192.168.1.20:80 -m -w 1 \[root@vs system-connections\]# ipvsadm -a -t 172.25.254.10:80 -r 192.168.1.30:80 -m -w 1 #10和20主机都采用权重轮询算法 \[root@vs system-connections\]# ipvsadm -Ln #写完查看规则 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -\> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.25.254.10:80 wrr -\> 192.168.1.20:80 Masq 1 0 0 -\> 192.168.1.30:80 Masq 1 0 0 运行结果 ![](https://i-blog.csdnimg.cn/direct/01780c6cda894656aa3e5989296fa22e.png) ## 规则持久化 \[root@vs system-connections\]# ipvsadm-save -n \> /mnt/ipvs.rule #将写完后的规则保存到/mnt/ipvs.rule **DR模式** 路由器设置 开启内核路由功能并查看是否开启 \[root@router \~\]# echo net.ipv4.ip_forward=1 \>\> /etc/sysctl.conf \[root@router \~\]# sysctl -p net.ipv4.ip_forward = 1 数据转发策略 \[root@router \~\]# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.100 \[root@router \~\]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.20 rs1和rs2主机lo接口配置 \[root@rs1 system-connections\]# cp -p eth1.nmconnection lo.nmconnection \[root@rs1 system-connections\]# vim lo.nmconnection \[connection

id=lo

type=loopback

interface-name=lo

ipv4

method=manual

address1=127.0.0.1/8

address2=192.168.1.201/32

禁止arp响应

#arp禁止响应

root@rs1 \~\]# echo 1 \> /proc/sys/net/ipv4/conf/all/arp_ignore \[root@rs1 \~\]# echo 1 \> /proc/sys/net/ipv4/conf/lo/arp_ignore \[root@rs1 \~\]# echo 2 \> /proc/sys/net/ipv4/conf/lo/arp_announce \[root@rs1 \~\]# echo 2 \> /proc/sys/net/ipv4/conf/all/arp_announce 调度器配置 \[root@vs system-connections\]# vim lo.nmconnection \[connection

id=lo

type=loopback

interface-name=lo

ipv4

method=manual

address1=127.0.0.1/8

address2=192.168.1.201/32 #192.168.1.201是vip

ipvsadm配置

root@vs system-connections\]# ipvsadm -A -t 192.168.1.201:80 -s rr \[root@vs system-connections\]# ipvsadm -a -t 192.168.1.201:80 -r 192.168.1.20:80 -g \[root@vs system-connections\]# ipvsadm -a -t 192.168.1.201:80 -r 192.168.1.30:80 -g 测试结果 ![](https://i-blog.csdnimg.cn/direct/0e4b8a64f61845c289e155895af527ae.png) **利用火墙标记轮询错误** rs主机下载mod_sll工具 \[root@rs1 \~\]# dnf install mod_ssl -y \[root@rs2 \~\]# dnf install mod_ssl -y 两台主机重启httpd服务 \[root@rs1 \~\]# systemctl restart httpd \[root@rs2 \~\]# systemctl restart httpd 修改轮询策略 \[root@vs \~\]# ipvsadm -A -t 192.168.1.10:80 -s rr \[root@vs \~\]# ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.20 -g \[root@vs \~\]# ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.30 -g \[root@vs \~\]# ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.20:443 -g \[root@vs \~\]# ipvsadm -a -t 192.168.1.10:443 -r 192.168.1.20:443 -g \[root@vs \~\]# ipvsadm -a -t 192.168.1.10:443 -r 192.168.1.30:443 -g 使用火墙标记访问vip的80和443的所有数据包,设定标记为6666,然后对此标记进行负载 \[root@vs system-connections\]# iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 6666 \[root@vs system-connections\]# ipvsadm -A -f 6666 -s rr \[root@vs system-connections\]# ipvsadm -a -f 6666 -r 192.168.1.20 -g \[root@vs system-connections\]# ipvsadm -a -f 6666 -r 192.168.1.30 -g 测试结果 ![](https://i-blog.csdnimg.cn/direct/bcdb7ab6ad3e4487be688e08f75f4ca1.png) ## 利用持久连接实现会话粘滞 \[root@vs system-connections\]# ipvsadm -A -f 6666 -s rr -p 1 测试结果 ![](https://i-blog.csdnimg.cn/direct/33271a30ef82491c89cee389548a9721.png)

相关推荐
Gofarlic_oms114 小时前
利用API实现ANSYS许可证管理自动化集成
运维·服务器·开发语言·matlab·自动化·负载均衡
档案宝档案管理15 小时前
权限分级管控,全程可追溯,筑牢会计档案安全防线
运维·网络·人工智能
倔强的石头10616 小时前
【Linux指南】基础IO系列(八):实战衔接 —— 给微型 Shell 添加完整重定向功能
linux·运维·服务器
try2find16 小时前
打印ascii码报错问题
java·linux·前端
观北海16 小时前
AiScan-N:AI全自动化渗透测试工具的深度技术解析
运维·自动化
Ujimatsu17 小时前
虚拟机安装Ubuntu 26.04.x及其常用软件(2026.4)
linux·运维·ubuntu
一直会游泳的小猫19 小时前
homebrew
linux·mac·工具·包管理
Agent产品评测局19 小时前
制造业生产调度自动化落地,完整步骤与避坑指南:2026企业级智能体选型与实战全景
运维·人工智能·ai·chatgpt·自动化
寒秋花开曾相惜19 小时前
(学习笔记)4.2 逻辑设计和硬件控制语言HCL(4.2.1 逻辑门&4.2.2 组合电路和HCL布尔表达式)
linux·网络·数据结构·笔记·学习·fpga开发
狂奔的sherry20 小时前
一次由 mount 引发的 Linux 文件系统“错觉”
linux·运维·服务器