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.rhkb.cn/news/393049.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生物信息学入门:Linux学习指南

还没有使用过生信云服务器&#xff1f;快来体验一下吧 20核心256G内存最低699元半年。 更多访问 https://ad.tebteb.cc 介绍 大家好&#xff01;作为一名生物信息学的新人&#xff0c;您可能对Linux感到陌生&#xff0c;但别担心&#xff0c;本教程将用简单明了的方式&#xff…

防止老年痴呆的小学题

直角三角形的周长为16,斜边长为7,求三角形的面积(不使用勾股定理) 答案为(9*9-7*7)/4

【前端】 如何在 Vue.js 中使用 Mock 数据:教程与技巧

如何在 Vue.js 中使用 Mock 数据&#xff1a;教程与技巧 在开发过程中&#xff0c;为了测试和开发前端功能&#xff0c;你常常需要用到模拟&#xff08;mock&#xff09;数据。Vue.js 提供了灵活的方式来处理数据请求和更新&#xff0c;但在没有真实后端的情况下&#xff0c;我…

WPF学习(2)-UniformGrid控件(均分布局)+StackPanel控件(栈式布局)

UniformGrid控件&#xff08;均分布局&#xff09; UniformGrid和Grid有些相似&#xff0c;只不过UniformGrid的每个单元格面积都是相等的&#xff0c;不管是横向的单元格&#xff0c;或是纵向的单元格&#xff0c;它们会平分整个UniformGrid。 UniformGrid控件提供了3个属性…

QT使用腾讯云对象存储SDK报错:`undefined reference to qcloud_cos`

QT使用腾讯云对象存储SDK编译时报错&#xff1a;undefined reference to qcloud_cos 文章目录 QT使用腾讯云对象存储SDK编译时报错&#xff1a;undefined reference to qcloud_cos问题1&#xff1a;在VS中编译cossdk报错LNK1104 无法打开文件“PocoFoundationd.lib”问题2&…

一文读懂什么是“AI算力”(建议收藏)

在当今快速发展的科技时代&#xff0c;人工智能&#xff08;AI&#xff09;已成为推动社会进步的重要力量。而AI算力&#xff0c;作为支撑AI技术发展的基石&#xff0c;其重要性不言而喻。本文将带您深入了解AI算力的概念、作用、发展趋势以及对各行业的影响。 一、AI算力的定义…

同城交易小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;商家管理&#xff0c;用户管理&#xff0c;商品分类管理&#xff0c;商品信息管理&#xff0c;订单管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;商品信息&#xff0…

【Linux】常见指令

目录 一、指令的理解二、Linux的目录结构三、XShell 下的热键四、shell命令以及运行原理五、Linux常见的指令汇总1. ls 指令1.1 常见的一些有关 ls 的别名1.2 隐藏文件或目录1.3 * 的匹配 2. pwd 指令3. cd 指令3.1 cd . . 指令 4. touch指令5. mkdir指令6. rmdir指令 &&am…

21LTR-Scene打靶渗透【附POC】(权限提升)

靶机下载地址&#xff1a;21LTR: Scene 1 ~ VulnHub21LTR: Scene 1, made by JayMaster2000. Download & walkthrough links are available.https://www.vulnhub.com/entry/21ltr-scene-1,3/ 1. 主机发现端口扫描目录扫描【192.168.2.120】 1.1. 主机发现 nmap -sn 192.…

数据结构----------贪心算法

什么是贪心算法&#xff1f; 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在问题求解过程中&#xff0c;每一步都采取当前状态下最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致最终的全局最优解的算法策略。 贪心算法的核心思想是做选择时&…

08.SQL注入-下(超详细!!!)

1、Access注入 1.1 判断是否存在注入漏洞 ?id10 and 11 //不报错 ?id10 and 12 //报错1.2 判断字段数 ?id10 order by 1 ... ?id10 order by 7 //不报错 ?id10 order by 8 //报错 说明有7个字段1.3 猜表名 ?id10 and exists(select * from administrator) …

用队列实现栈

1 .思路及目的 用两个标准的队列&#xff08;先进先出&#xff09;实现栈&#xff08;后进先出&#xff09; 始终保持一个队列为空&#xff0c;往非空的栈插入数据 删除数据时&#xff0c;将数据导入另一个队列&#xff0c;留下最后一个数据&#xff08;这个数据就是要删除的…

各种排序算法【持续更新中.....】

1.归并排序 归并排序 &#xff0c;归并排序是采用分治法(Divide and Conquer&#xff09;的一个非常典型的应用&#xff0c;所以我们先来说一下什么是分治法。 分治法 定义 分治&#xff08;英语&#xff1a;Divide and Conquer&#xff09;&#xff0c;字面上的解释是「分…

什么情况?我代码没了

前两天检视代码时&#xff0c;发现PR里面有两个提交的描述信息一模一样&#xff0c;于是我提出应该将这两个提交合并成一个&#xff0c;保持提交树的清晰。 1 先储存起来&#xff01; 而同事这时正在开发别的特性&#xff0c;工作区不是干净的&#xff0c;没法直接执行 git r…

xss漏洞(二,xss靶场搭建以及简单利用)

本文仅作为学习参考使用&#xff0c;本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 一&#xff0c;环境搭建。 使用工具&#xff1a;PHP study&#xff0c;dvwa靶场。 1&#xff0c;GitHub上下载dvwa到PHP study的WWW文件夹内&#xff0c;并解压。 dvwa下载地址 …

动态规划之——背包DP(进阶篇)

文章目录 概要说明多重背包(朴素算法)模板例题思路code 多重背包&#xff08;二进制优化&#xff09;模板例题思路code 多重背包(队列优化)模板例题思路 混合背包模板例题思路code1code2 二维费用背包模板例题思路code 概要说明 本文讲多重背包、混合背包以及二维费用背包&…

企业社会责任(CSR)国际标准有哪些?

以下是一些常见的企业社会责任&#xff08;CSR&#xff09;国际标准和相关体系等&#xff1a; 原则性、指南性标准 ISO 26000《社会责任指南》 &#xff1a;将社会责任归纳为7个核心方面&#xff0c;即公司治理、人权、劳工、环境、公平运营实践、消费者问题以及对社会发展作贡…

codetop标签双指针题目大全解析(C++解法),双指针刷穿地心!!!!!

写在前面&#xff1a;此篇博客是以[双指针总结]博客为基础的针对性训练&#xff0c;题源是codetop标签双指针近一年&#xff0c;频率由高到低 1.无重复字符的最长子串2.三数之和3.环形链表4.合并两个有序数组5.接雨水6.环形链表II7.删除链表的倒数第N个节点8.训练计划II9.最小覆…

餐饮业的数字化突围:价格战下的转型与新生

原文链接&#xff1a;https://tecdat.cn/?p37241 餐饮业价格战升级了&#xff0c;越打越激烈。近日&#xff0c;各餐饮巨头也被迫纷纷下场。 “太二酸菜鱼客单价跌至七年前” “9.9元就可以点上海底捞的一份锅底” “必胜客推出人均20元的乐享店”…… 消费降级的时代潮水&am…

dockerfile定制镜像 docker-compose编排容器

1 dockerfile dockerfile本质上是利用了Linux系统的挂载&#xff08;UnionFS&#xff09;&#xff0c;将多个目录挂载到同一目录下&#xff0c;实现镜像的层叠式结构&#xff0c;从而实现功能聚合。 1.1 一个最简单的程序 package mainimport "fmt"func main() {f…