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

LVS部署DR集群

介绍

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

原理

首先,DR 模式下,调度器(Director)和真实服务器(Real Server)处于同一个局域网内.它们都拥有自己的物理网络接口,并且都被配置了相同的 VIP(Virtual IP,虚拟 IP 地址)

当客户端向调度器发送请求时,调度器会依据预先设定的负载均衡算法,从可用的真实服务器中挑选出一台适合处理该请求的服务器.

接着,调度器会对数据包进行修改.它会将数据包的目标 MAC 地址更改为所选真实服务器的 MAC 地址.

随后,调度器将修改后的数据包直接发送到局域网中.

由于真实服务器与调度器在同一网络环境中,所以真实服务器能够接收到这个数据包.

真实服务器在收到数据包后,会进行检查.当发现数据包的目标 IP 地址正是自己配置的 VIP 时,就会对该数据包进行处理.

处理完毕后,真实服务器直接将响应数据包发送给客户端,而不再通过调度器进行中转.

实验图

在这里插入图片描述

说明

Client(客户端):测试主机,网络(NAT)
Router(路由器):作为客户端网关(NAT),作为LVS,Server1,Server2网关(仅主机),开启内核路由功能
LVS(调度器):集群调度器,网络(仅主机),环回(VIP)
Server1,Server2(服务器):集群服务器,网络(仅主机),环回(VIP)

部署

客户端

# 假设网卡名字为eth0
cat > vim /etc/NetworkManager/system-connections/eth0.nmconnection << EOF
> [connection]
> id=eth0
> type=ethernet
> interface-name=eth0
> 
> [ipv4]
> method=manual
> address1=172.25.254.200/24,172.25.254.100
> EOF

路由器

# 打开路由内核功能
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf;sysctl -p# 假设(NAT)网卡名字为eth0
cat > vim /etc/NetworkManager/system-connections/eth0.nmconnection << EOF
> [connection]
> id=eth0
> type=ethernet
> interface-name=eth0
> 
> [ipv4]
> method=manual
> address1=172.25.254.100/24 # 路由器不用配网关
> EOF# 假设(仅主机)网卡名字为eth1
cat > vim /etc/NetworkManager/system-connections/eth1.nmconnection << EOF
> [connection]
> id=eth1
> type=ethernet
> interface-name=eth1
> 
> [ipv4]
> method=manual
> address1=192.168.0.100/24 # 路由器不用配网关
> EOF

调度器

# 假设(仅主机)网卡名字为eth0
cat > vim /etc/NetworkManager/system-connections/eth0.nmconnection << EOF
> [connection]
> id=eth0
> type=ethernet
> interface-name=eth0
> 
> [ipv4]
> method=manual
> address1=192.168.0.50/24,192.168.0.100
> EOF# 设置VIP
ip addr add dev lo 192.168.0.200/32 # 注意掩码 32# 安装	IPVS	管理工具  
dnf install ipvsadm -y# 添加策略,分配权重,使用轮询算法
ipvsadm -A -t 192.168.0.200:80 -s rr # VIP
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1 # VIP + 服务器IP
ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g -w 2 # VIP + 服务器IP

服务器

# 假设为HTTP服务器,端口:80
# Server1 : 假设(仅主机)网卡名字为 eth0
cat > vim /etc/NetworkManager/system-connections/eth0.nmconnection << EOF
> [connection]
> id=eth0
> type=ethernet
> interface-name=eth0
> 
> [ipv4]
> method=manual
> address1=192.168.0.10/24,192.168.0.100
> EOF# Server2 : 假设(仅主机)网卡名字为 eth0
cat > vim /etc/NetworkManager/system-connections/eth0.nmconnection << EOF
> [connection]
> id=eth0
> type=ethernet
> interface-name=eth0
> 
> [ipv4]
> method=manual
> address1=192.168.0.20/24,192.168.0.100
> EOF# 均安装HTTP服务,均添加VIP
yum install httpd -y
ip addr add dev lo 192.168.0.200/32 # 注意掩码 32# 均关闭防火墙,SElinux
systemctl stop firewalld;systemctl mask firewalld
grubby --update-kernel ALL--args selinux=0# 均修改index.html
echo Server - 192.168.0.10 > /var/www/html/index.html # Server1
echo Server - 192.168.0.20 > /var/www/html/index.html # Server2# 关闭两个服务器的ARP应答
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置要点

  • LVS、Server
    • 网关、VIP、网卡模式、网段均相同
  • Client、Router处于同一网段(公网)中
    • Router需要开启路由内核功能
http://www.lryc.cn/news/417469.html

相关文章:

  • 《Linux运维总结:etcd 3.5.15集群数据备份与恢复》
  • 我在杭州的Day30_进程间通信(IPC)——20240805
  • FFmpeg推流
  • 【Rust光年纪】简化文件操作流程:深度剖析多款文件系统操作库
  • FFmpeg实现文件夹多视频合并
  • [设备] 关于手机设备中几种传感器的研究
  • C#通过Modbus读取温度和湿度
  • 海量数据处理商用短链接生成器平台 - 9
  • 从困境到突破,EasyMR 集群迁移助力大数据底座信创国产化
  • 【Mysql】第十二章 视图特性(概念+使用)
  • 【颠覆数据处理的利器】全面解读Apache Flink实时大数据处理的引擎-上篇
  • 【C++】C++11(可变参数模板、lambda表达式、包装器)
  • 矩阵获客时代,云微客让你一个人成就一支队伍
  • 浅谈基础的图算法——Tarjan求强联通分量算法(c++)
  • 【Godot4自学手册】第四十四节用着色器(shader)实现溶解效果
  • 【画流程图工具】
  • Revit二次开发选择过滤器,SelectionFilter
  • 【Linux】进程概念—环境变量
  • 第十二章 Spring MVC 框架扩展和SSM框架整合(2023版本IDEA)
  • js中的全局函数有这些
  • Android SurfaceFlinger——重绘闪烁处理(四十六)
  • 罗马数字转整数 C++
  • Day20_2--介绍同步加载和异步加载
  • sftp做成一个池子
  • 全网最全-Netty从入门到精通
  • C#知识|文件与目录操作:对象的创建、保存、读取
  • 自定义 SwiftUI 中符号图像的外观
  • 循环神经网络和自然语言处理一
  • CSS技巧专栏:一日一例 20-纯CSS实现点击会凹陷的按钮
  • 20240807 每日AI必读资讯