当前位置: 首页 > backend >正文

LVS集群实践

一、LVS概念

VS: Virtual Sever (调度器)

RS: Real Sever (资源主机)

CIP: Client IP (用户IP)

VIP: Virtual sever IP (VS外网的IP,客户访问的IP)

DIP: Director IP (VS内网的IP,调度器与资源主机之间的IP)

RIP: Real server IP (资源主机的IP)

二、NAT模式

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

 nat模式数据逻辑

nat模式实验环境配置

克隆四台主机:Client LVS RS1 RS2

LVS添加网卡:模式选择仅主机

RS1 RS2 :网卡模式选择仅主机

Client:

LVS:

VIP:172.25.254.100  DIP:192.168.0.100

启用内核路由功能:

RS1:

安装httpd::[root@RS1 ~]# dnf install httpd -y

开启web服务,默认发布页里写入内容:

[root@RS1 ~]# systemctl disable --now firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@RS1 ~]# echo  RS1 - 192.168.0.10 > /var/www/html/index.html
[root@RS1 ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

LVS测试:

RS2:

安装httpd::[root@RS2 ~]# dnf install httpd -y

同上进行web操作

LVS软件安装及命令使用

安装ipvsadm

程序包:ipvsadm
Unit File: ipvsadm.service
主程序:/usr/sbin/ipvsadm
规则保存工具:/usr/sbin/ipvsadm-save
规则重载工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config
ipvs调度规则文件:/etc/sysconfig/ipvsadm

[root@lvs ~]# dnf install ipvsadm -y

LVS集群中的增删改:

1.管理集群服务中的增删改
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
  • -A #添加
  • -E #修改
  • -t
  • #tcp服务
  • -u #udp服务
  • -s #指定调度算法,默认为WLC
  • -p #设置持久连接超时,持久连接可以理解为在同一个时间段同一个来源的请求调度到同一Realserver
  • -f #firewall mask 火墙标记,是一个数字

复制一个LVS的标签页查看操作结果:watch -n1 ipvsadm -Ln

2.管理集群中RealServer的增删改
ipvsadm -a|e -t|u|f service-address -r realserver-address [-g|i|m] [-w weight]
  • -a #添加realserver
  • -e #更改realserver
  • -t #tcp协议
  • -u #udp协议
  • -f #火墙 标签
  • -r #realserver地址
  • -g #直连路由模式(DR)
  • -i #ipip隧道模式
  • -m #nat模式
  • -w #设定权重
  • -Z #清空计数器
  • -C #清空lvs策略
  • -L #查看lvs策略
  • -n #不做解析
  • --rate :输出速率信息

ipvsadm的备份及恢复:

让服务器开机时加载策略: 

NAT模式的实现过程

在LVS中添加调度策略:

关闭防火墙;

修改RS1与RS2的网关:

Client端验证:

注:真实企业中RS1与RS2中设置的网页内容应一致,此处为观察效果。 

NAT模式弊端:

由于VS调度器需要拆包解包,能够承载后端服务器有限,最多10台后端服务器。

三、DR模式

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

DR模式数据逻辑

       在DR模式中,RS接收到访问请求后不需要回传给VS调度器,直接把回传数据发送给client,所以RSvs 上都要有vip。

DR模式传输过程

1.客户端发送数据帧给vs调度主机帧中内容为
客户端IP+客户端的MAC+VIP+VIPMAC
2.VS调度主机接收到数据帧后把帧中的VIPMAC修改RS1MAC,此时帧中的数据为
客户端IP+客户端的MAC+VIP+RS1MAC
3.RS1得到2中的数据包做出响应回传数据包,数据包中的内容为
VIP+RS1MAC+客户端IP+客户端IP的 MAC

DR模式实验环境配置


Client:

Router:

开启内核路由功能:

 

打开防火墙,开启地址伪装:

LVS-DR:

 

RS1:

RS2:

同上

DR模式实现过程

对RS的VIP实施响应管控(在两个RS主机中设定lo不对外响应)

sysctl -a | grep arp

ignore =1 跳过  announce = 1 响应外部 announce = 2 响应内部

 

设定调度策略:

 

Client测试:

 

http://www.xdnf.cn/news/15575.html

相关文章:

  • 前后端分离项目中的接口设计与调用流程——以高仙机器人集成为例
  • 数字ic后端设计从入门到精通11(含fusion compiler, tcl教学)全定制设计入门
  • 基于深度学习的情感分析模型:从文本数据到模型部署
  • c语言-数据结构-二叉树的遍历
  • [特殊字符] 第1篇:什么是SQL?数据库是啥?我能吃吗?
  • [特殊字符] Electron 中的 `global` 变量
  • 用Amazon Q Developer助力Python快捷软件开发
  • 创建SprngBoot项目的四种方式
  • 网络编程(数据库)
  • oracle服务器定时备份Windows Server
  • 服务攻防-Java组件安全数据处理FastJsonJackSonXStream自动BP插件CVE漏洞
  • vue中后端返回数据流,前端实现导出下载
  • Flutter基础(前端教程①①-底部导航栏)
  • 【动归解题套路框架】【带备忘录的递归】【最优子结构】【自下而上DP table】
  • FunASR Paraformer-zh:高效中文端到端语音识别方案全解
  • Linux运维新手的修炼手扎之第19天
  • 【从零开始学习大模型】什么是MCP协议
  • PostGres超过最大连接数报错
  • 多级缓存架构与热点探测系统核心技术解析
  • AI时代基础入门
  • 测试学习之——Pytest Day2
  • 深入理解 Kafka 核心:主题、分区与副本的协同机制
  • Scalefusion 与 EasyControl 对比:轻量级方案与全功能 IoT MDM 的深度碰撞
  • spring容器的bean是单例还是多例的?线程安全吗?
  • AI编程神器 Claude Code 安装及使用体验
  • SQLSERVER清理日志
  • 【28】MFC入门到精通——MFC串口 Combobox 控件实现串口号
  • Python面向对象编程(OOP)详解:通俗易懂的全面指南
  • HTTP vs HTTPS
  • Linux驱动基础:阻塞、休眠、poll、异步通知