LVS-DR部署

news2024/12/23 8:21:31

Lvs基于内核实现的负载均衡

只有四层代理转发

 

请求数据包,源地址(客户端)变目的。vip变源

lo:0回环网卡

数据包流向分析:
(1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。
(2)Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
(3)内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。
(4)到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标 IP 为 CIP),将响应报文通过 lo 接口传送给物理网卡然后向外发出。
(5)Real Server 直接将响应报文传送到客户端。

DR 模式的特点:
(1)Director Server 和 Real Server 必须在同一个物理网络中。
(2)Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对 RIP 进行直接访问。
(3)Director Server作为群集的访问入口,但不作为网关使用。
(4)所有的请求报文经由 Director Server,但回复响应报文不能经过 Director Server。
(5)Real Server 的网关不允许指向 Director Server IP,即Real Server发送的数据包不允许经过 Director Server。
(6)Real Server 上的 lo 接口配置 VIP 的 IP 地址。

问题一在局域网中具有相同ip地址,势必会造成各服务器ARP通信的紊乱

使用虚接口lo:0承载vip地址

etc/sysctl.conf

设置内核参数arp_ignore=1系统之相应目的IP的arp请求(可使linux系统只会对物理网卡上ip的arp请求做响应)

问题二针对RealServer返回报文(源ip事vip)

经路由器转发,重新封装报文时,需要先获取路由器的额MAC地址

arp广播,使节点服务器进行处理,使其不响应针对vip的arp请求

对节点服务器进行处理,设置内核参数arp_announce=2 (用哪个网卡发送就使用哪个网卡的ip做源i响应p不再使用数据包的ip)系统不使用ip包的源地址来设置arp请求源地址,二选择发送接口的IP地下

DR配置

1.节点服务器设置lo:0虚网卡vip

vim /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

IPADDR=vip

NETMASK=255.255.255.255

ONBOOT=yes

2.添加vip路由记录

route add -host vip dev lo:0

3.设置内核参数,防止网管节点arp紊乱

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp announce =2 net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp announce =2

 sysctl -p

4.安装web应用,nginx还能再配置七层反向代理实现动静分离

调度器

1.设置ens33:0虚拟网卡承接vip

vim /etc/sysconfig/network-scripts/ifcfg-ens33:0

DEVICE=ens33:0

IPADDR=vip

NETMASK=255.255.255.255

ONBOOT=yes

2.设置内核参数,关闭ip路由转发的icmp重定向

net.ipv4.ip_forward = 0

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

3.安装ipvsam,设置LVS调度策略

yum -y ipvsdam

ipvsadm -A -t VIP:80 -s 调度算法 【-p xx】

-a -t vip:80 -r RIP:80 -g [-w xx]

. . . . .

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/456245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springmvc请求路径以及url地址映射和参数绑定,jetty是什么

springmvc请求流程: url地址映射和参数绑定: controller文件 requestmapping括号里是url路径。 若web.xml里pattern里有.do则要加到url后面 综述:url为 localhost:8080/springmvc01/test01 地址:localhost:8080/web.xml设置的后缀…

业内首批!安全狗入选Gartner《云原生应用保护平台市场指南》报告

近日,国际咨询机构Gartner首次发布了《云原生应用保护平台市场指南》(Market Guide for Cloud-Native Application Protection Platforms)。 作为国内云原生安全领导厂商,安全狗凭借突出的云原生安全产品能力入选报告&#xff0c…

U3D实现自由视角

一、添加Cinemachine插件 可以直接从Unity顶部菜单的Windows>Package Manager>Unity Registry点击弹出后窗口的右侧输入Cinemachine,然后选择install 二、对主相机添加(Brain组件) 三、对相机跟随的对象添加两个子空物体,一…

搞懂 API,调用 API 接口通常有这些技巧

其实没什么技巧,无他,唯熟悉API 原理(dog.jpg)。 不过对于新人来说,掌握这些基础知识还是很有必要的: 1.了解API的功能和用法:在使用API之前,您应该了解API的功能和使用方式。这将有…

这款产品,竟然用了几千多年才爆火?

春秋时期,淄博的临淄作为齐国都城,称得上是当时山东最繁华的地方。任世事沧桑巨变,在小透明了两千多年后,淄博又迎来了新的繁华:这次,淄博烧烤火出圈了! (图源bilibili纪录片《人生…

【箭头函数以及声明特点】

箭头函数以及声明特点 1 箭头函数的声明2 箭头函数的特性3 箭头函数实践 1 箭头函数的声明 ES6允许使用箭头>定义函数 <script>// 声明一个函数// 原先let fn function(a,b){return a b;}// 现在let fn1 (a,b) > {return a b;}// 调用函数let result fn1(1, …

ClickHouse中的MergeTree表引擎详解

MergeTree的特点 MySQL中最强大的表引擎是InnoDB&#xff0c;ClickHouse中最强大的表引擎是MergeTree以及该系列中的其他引擎。MergeTree 系列的引擎被设计用于插入极大量的数据到一张表当中。数据可以以数据片段的形式一个接着一个的快速写入&#xff0c;数据片段在后台按照一…

基于属性推理辅助的计算机辅助肺结核诊断

文章目录 Computer-Aided Tuberculosis Diagnosis with Attribute Reasoning Assistance摘要方法Attribute Feature RepresentationFeature Interaction 实验结果 Computer-Aided Tuberculosis Diagnosis with Attribute Reasoning Assistance 摘要 本文首先提出了一种新的大…

FE_CSS 常见布局技巧

1 巧妙运用浮动元素不会压住文字的特性 float: left; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta ht…

【LeetCode】121. 买卖股票的最佳时机

121. 买卖股票的最佳时机&#xff08;简单&#xff09; 思路 遍历数组&#xff0c;在每一个位置 i 时&#xff0c; 记录当前位置之前的最低价格&#xff0c;然后将当前价格作为售出价格&#xff0c;查看当前收益是不是最大收益即可。如果最大收益小于等于 0 &#xff0c;则返回…

【NVM】使用NVM实现不同nodejs版本的自由切换(NVM安装教程使用手册):

文章目录 一、NVM的下载二、NVM安装三、NVM使用1. 设置nvm环境2.安装nodejs3.使用或切换nodejs版本 四、建议五、nvm命令总结 一、NVM的下载 注意路径不要出现中文和空格 安装包地址&#xff1a;https://github.com/coreybutler/nvm-windows/releases 二、NVM安装 三、NVM使用…

【嵌入式笔/面试】嵌入式软件基础题和真题总结——网络相关

在学习的时候找到几个十分好的工程和个人博客&#xff0c;先码一下&#xff0c;内容都摘自其中&#xff0c;有些重难点做了补充&#xff01; 才鲸 / 嵌入式软件笔试题汇总 嵌入式与Linux那些事 阿秀的学习笔记 小林coding 百问网linux 嵌入式软件面试合集 2022年春招实习十四面…

Springcloud快速复习--注册中心

按照个人的习性,分布式我学习完以后一定会忘为此写次笔记自己快速复习 目录 Springcloud介绍注册中心–Eureka注册中心–Nacos Springcloud介绍及微服务介绍 为什么学? 也不是以前的单体架构被淘汰而是,当业务足够大型,进行优化 单体架构&#xff1a;将业务的所有功能集中在…

数据分析之Numpy

文章目录 1. Anaconda安装2. juypter3. numpy简介4. numpy数组4.1 ndarray对象4.2 array创建数组4.3 arange区间数组4.4 linspace等差数列4.5 logspace等比数列4.6 numpy.empty4.7 numpy.zeros4.8 numpy.ones4.9 numpy.zeros_like4.10 numpy.ones_like4.11 numpy.asarray4.12 n…

汉诺塔的非递归算法

对于汉诺塔问题&#xff0c;我们都普遍认为这个是一个典型的递归问题&#xff0c;然而递归需要使用到系统对应的栈&#xff0c;开销比较大&#xff0c;因此我在想使用非递归算法来解决它&#xff0c;然而网上绝大部分的教程都是自己模拟了一个栈&#xff0c;因此我在考虑写一篇…

【C++初阶】:内联函数

内联函数 一.宏函数二.内联函数三,是否成为内联函数四.内联函数的跨文件使用 一.宏函数 在c语言中&#xff0c;如果一个函数较短并且会被重复使用&#xff0c;那么我们就可以把该函数换成一个宏函数。 贴个小知识&#xff0c;宏函数有许多的坑也是面试官喜欢考的点&#xff0c;…

如何使用美颜SDK制作美妆相机?美颜SDK代码分析

随着时代的发展&#xff0c;人们对于自己的外貌要求越来越高&#xff0c;因此美颜相机、美妆相机等软件也逐渐兴起。其中&#xff0c;美妆相机是一种可以实现“快速上妆效果”的美颜工具&#xff0c;而美颜SDK则是实现美妆相机的核心技术之一。本文将介绍如何使用美颜SDK制作美…

你怎么看 App响应时间优化这事?

作者&#xff1a;xuexiangjys 响应时间&#xff0c;它是用来衡量系统运行效率的一个重要指标。评价一个应用的响应时间&#xff0c;可以从用户感知和系统性能这两个角度来考量。 响应时间的长短&#xff0c;可能影响用户对某个功能、某个应用、乃至某个系统的使用。毕竟如果有选…

VS2022配置OpenGL+GLAD

Glew&#xff08;The OpenGL Extension Wrangler Library&#xff09;是对底层OpenGL接口的封装&#xff0c;可以让你的代码跨平台。Glad与Glew作用相同&#xff0c;可以看作它的升级版。 Freeglut&#xff08;OpenGL Utility Toolkit&#xff09;主要用于创建并管理窗口和Ope…

Windows逆向安全(一)之基础知识(十五)

指针二 先前介绍了指针的一些基本的知识&#xff0c;但都没有提到地址的概念&#xff0c;下面承接之前的笔记&#xff0c;继续学习指针 下面要介绍三个相关的内容&#xff1a;获取变量的数据类型 、 取变量地址和取地址中存储的数据 获取变量的数据类型 在C语言中可以使用下…