lvs负载均衡实操模拟

目录

一、配置准备

二、NET模式

修改LVS端

开启路由

修改对内网卡 ens160

修改对外网卡 ens224

加载网卡配置文件

修改web1端

修改网卡信息

重启网络

检测

配置web2

检测

验证配置是否正常

启动nginx服务

验证以上配置

添加lvs规则

验证

三、DR模式  

修改lvs端

调整ARP参数

使用ens160承载

更改lvs规则

重启ipvsadm服务

修改web1端

内核配置

配置虚拟IP

添加回环路由

​编辑

修改web2端

内核配置

配置虚拟IP

添加回环路由

验证

​编辑四、tun模式

修改lvs端

添加并加载模块

还原配置

添加lvs规则

修改web2端

还原设置

加载隧道模块

配置隧道

ARP抑制

配置web1

还原配置

加载隧道模块

配置隧道接口

ARP抑制


一、配置准备

对每台主机都进行关闭防火墙、上下文等,减少阻碍

[root@everyone ~]# systemctl stop firewalld
[root@everyone ~]# setenforce 0

安装服务

[root@everyone ~]# yum install -y ipvsadm ##安装服务
[root@everyone ~]# yum install -y nginx   ##检测是否成功

向 web1 与 web2 中的nginx网页添加内容,用来验证是否成功

二、NET模式

将3台主机网络均改为VMnet1模式(模拟在同一内网中)

向lvs端添加一块对外的网卡

修改LVS端

[root@lvs ~]# cd /etc/sysconfig/network-scripts/
[root@lvs network-scripts]# cp ifcfg-ens160 ifcfg-ens224

开启路由

[root@lvs network-scripts]#  sed -i 's/^net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/' /etc/sysctl.conf
[root@lvs network-scripts]#  sysctl -p

修改对内网卡 ens160

[root@lvs network-scripts]# vim ifcfg-ens160

修改对外网卡 ens224

[root@lvs network-scripts]# vim ifgcf-ens224

加载网卡配置文件

[root@lvs network-scripts]# ifdown ens160 ; ifup ens160 
[root@lvs network-scripts]# ifdown ens224 ; ifup ens224
[root@lvs network-scripts]# ip a

修改web1端

修改网卡信息

[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160

重启网络

[root@web1 ~]# ifdown ens160 ; ifup ens160

检测

配置web2

[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
[root@web2 ~]# ifdown ens160 ; ifup ens160

检测

验证配置是否正常

启动nginx服务

验证以上配置

添加lvs规则

[root@lvs network-scripts]# ipvsadm -C 
[root@lvs network-scripts]# ipvsadm -Ln
[root@lvs network-scripts]# ipvsadm -A -t 192.168.11.35:80 -s rr
[root@lvs network-scripts]# ipvsadm -a -t 192.168.11.35:80 -r 192.168.100.1:80 -m
[root@lvs network-scripts]# ipvsadm -a -t 192.168.11.35:80 -r 192.168.100.2:80 -m
[root@lvs network-scripts]# ipvsadm -Ln

验证

三、DR模式  

在nat基础上进行配置

修改lvs端

删除多余网卡

调整ARP参数

[root@lvs ~]# vim /etc/sysctl.conf
[root@lvs ~]# sysctl -p

使用ens160承载

也可写入配置文件,永久保存

更改lvs规则

[root@lvs ~]# ipvsadm -C 
[root@lvs ~]# ipvsadm -Ln
[root@lvs ~]# ipvsadm -A -t 192.168.100.101:80 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.100.101 -r 192.168.100.1:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.100.101 -r 192.168.100.2:80 -g
[root@lvs ~]# ipvsadm -Ln

重启ipvsadm服务

[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl restart ipvsadm

修改web1端

内核配置

[root@web1 ~]# vim /etc/sysctl.conf  ##插入以下net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
net.ipv4.conf.default.arp_ignore=1 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce=2[root@web1 ~]# sysctl  -p1. net.ipv4.conf.all.arp_ignore:将其设置为1,表示Web节点将忽略针对本地IP地址的ARP请求。这样可以防止Web节点响应其他节点的ARP请求,避免网络混乱。
2. net.ipv4.conf.all.arp_announce:将其设置为2,表示Web节点将使用自己的IP地址作为发送ARP请求时的源地址。这样可以确保响应的ARP请求返回到负载均衡器,而不是被路由丢弃。
3. net.ipv4.conf.default.arp_ignore和net.ipv4.conf.default.arp_announce:类似于前两个参数,但仅适用于默认网络接口。
4. net.ipv4.conf.lo.arp_ignore和net.ipv4.conf.lo.arp_announce:类似于前两个参数,但仅适用于环回接口(lo)。在DR模式下,为了实现返回流量的负载均衡,环回接口也需要进行相应的配置。

配置虚拟IP

可配置文件,永久生效

[root@web1 ~]#ifconfig lo:0 192.168.100.101/32

添加回环路由

[root@web1 ~]# route add -host 192.168.100.101/32 dev lo:0

修改web2端

内核配置

[root@web2 ~]# vim /etc/sysctl.conf  ##插入以下net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
net.ipv4.conf.default.arp_ignore=1 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce=2[root@web2 ~]# sysctl.conf -p

配置虚拟IP

添加回环路由

[root@web2 ~]# route add -host 192.168.100.101/32 dev lo:0

验证

四、tun模式

修改lvs端

添加并加载模块

[root@lvs ~]# vim /etc/modules-load.d/ipvs.conf
[root@lvs ~]# modprobe -a $(cat /etc/modules-load.d/ipvs.conf)

还原配置

添加虚拟ip

添加lvs规则

root@lvs ~]# ipvsadm -C 
[root@lvs ~]# ipvsadm -Ln
[root@lvs ~]# ipvsadm -A -t 192.168.11.1:80 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.11.1:80 -r 192.168.100.1:80 -i
[root@lvs ~]# ipvsadm -a -t 192.168.11.1:80 -r 192.168.100.2:80 -i
[root@lvs ~]# ipvsadm -Ln
[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl restart ipvsadm

修改web2端

还原设置

加载隧道模块

[root@web2 ~]# echo "ipip" > /etc/modules-load.d/ipip.conf
[root@web2 ~]# modprobe ipip

配置隧道

[root@web2 ~]# ip tunnel add tunl0 mode ipip remote 192.168.100.100 local $(hostname -I | awk '{print $1}')
[root@web2 ~]# ip link set tunl0 up
[root@web2 ~]# ip addr add 192.168.11.1/32 dev tunl0
[root@web2 ~]# ip a

ARP抑制

[root@web2 ~]# echo "1" > /etc/sysctl.d/arp_ignore.conf
[root@web2 ~]# echo "2" > /etc/sysctl.d/arp_announce.conf
[root@web2 ~]# sysctl -p /etc/sysctl.d/arp_announce.conf
[root@web2 ~]# sysctl -p /etc/sysctl.d/arp_ignore.conf

配置web1

还原配置

加载隧道模块

[root@web1 ~]# echo "ipip" > /etc/modules-load.d/ipip.conf
[root@web1 ~]# modprobe ipip

配置隧道接口

[root@web1 ~]# ip tunnel add tunl0 mode ipip remote 192.168.100.100 local $(hostname -I | awk '{print $1}')
[root@web1 ~]# ip link set tunl0 up
[root@web1 ~]# ip addr add 192.168.11.1/32 dev tunl0

ARP抑制

[root@web1 ~]# echo "1" > /etc/sysctl.d/arp_ignore.conf
[root@web1 ~]# echo "2" > /etc/sysctl.d/arp_announce.conf
[root@web1 ~]# sysctl -p /etc/sysctl.d/arp_announce.conf
[root@web1 ~]# sysctl -p /etc/sysctl.d/arp_ignore.conf

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

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

相关文章

Spring Boot 是如何简化 IoC 的配置的?

首先Spring Boot 并没有发明新的 IoC 理论,它做的也不是替换掉 Spring IoC 容器。相反,Spring Boot 是 Spring IoC 思想的实践者和简化者。它通过**“约定优于配置”(Convention over Configuration)**的理念,将原本繁…

Go语言中的组合式接口设计模式

文章目录Go语言中的组合式接口设计模式背景和需求组合式接口设计Go语言中的组合式接口设计模式 背景和需求 在微服务架构和复杂业务系统中,我们经常需要调用多个外部服务或内部模块。传统的做法是将所有方法都放在一个大接口中,但这种设计会导致接口臃…

React - createPortal

什么是createPortal&#xff1f;注意这是一个API&#xff0c;不是组件&#xff0c;他的作用是&#xff1a;将一个组件渲染到DOM的任意位置&#xff0c;跟Vue的Teleport组件类似。用法 import { createPortal } from react-dom;const App () > {return createPortal(<div…

Cursor的使用

Cursor的使用 Ctrl L 打开历史对话记录 Tab智能助手 1.单行/多行补全 已有代码片段&#xff1a; //需求&#xff1a;写一个工具类计算数组平均值 public class ArrayUtils {//按tab会完成补全 }按tab键- Cursor 自动生成代码: //需求&#xff1a;写一个工具类计算数组平均值 p…

17.使用DenseNet网络进行Fashion-Mnist分类

17.1 DenseNet网络结构设计import torch from torch import nn from torchsummary import summary #卷积层 def conv_block(input_channels,num_channels):netnn.Sequential(nn.BatchNorm2d(input_channels),nn.ReLU(),nn.Conv2d(input_channels,num_channels,kernel_size3,pad…

网安系列【16】之Weblogic和jboss漏洞

文章目录一 Weblogic1.1 Weblogic相关漏洞1.2 Weblogic漏洞发现1.3 Weblogic漏洞利用二 Jboss2.1 Jboss漏洞2.2 Jboss识别与漏洞利用一 Weblogic WebLogic 是由 Oracle公司 开发的一款基于Java EE&#xff08;现称Jakarta EE&#xff09;的企业级应用服务器&#xff0c;主要用…

Unity URP + XR 自定义 Skybox 在真机变黑问题全解析与解决方案(支持 Pico、Quest 等一体机)

在使用 Unity 的 URP 渲染管线开发 XR 应用&#xff08;如 Pico Neo、Pico 4、Quest 2/3 等一体机&#xff09;时&#xff0c;很多开发者遇到一个奇怪的问题&#xff1a;打包后&#xff0c;Skybox&#xff08;天空盒&#xff09;在某些角度下突然变黑&#xff0c;只在转动头部后…

Cursor、飞算JavaAI、GitHub Copilot、Gemini CLI 等热门 AI 开发工具合集

Cursor&#xff1a;代码编写的智能伙伴​Cursor 是 Anysphere 公司推出的一款 AI 编程工具&#xff0c;它基于微软开源代码编辑器 VS Code 开发&#xff0c;将 AI 技术深度整合到开发人员的工作流程中。Cursor 的功能十分强大&#xff0c;不仅能够自动用纯英文编写代码&#xf…

如何安装历史版本或指定版本的 git

背景 有的时候&#xff0c;我们需要安装指定版本的git&#xff0c;或者希望旧一点的&#xff0c;毕竟我就遇到最新的2.50.1在win10安装后打开就一闪而过&#xff0c;而安装2.49.1就不会 下载 官网可能比较难找&#xff0c;但是这个github仓库&#xff1a;https://github.com/gi…

LaCo: Large Language Model Pruning via Layer Collapse

发表&#xff1a;EMNLP_FINDING_2024 机构&#xff1a;Shanghai Jiao Tong University 连接&#xff1a;LaCo: Large Language Model Pruning via Layer Collapse - ACL Anthology 代码&#xff1a;https://github.com/yangyifei729/LaCo Abstract 基于 Transformer 的大语…

服务器内核级故障排查

目录 **检查内核级故障(Oops/Panic)的具体操作步骤****1. 查看完整 `dmesg` 日志(含时间戳)****2. 过滤关键错误信息****3. 检查系统日志中的内核消息****4. 分析最近一次启动的日志****5. 检查是否有 `vmcore` 转储文件****常见内核错误示例及含义**补充说明:检查内核级故…

Flink学习笔记:整体架构

开一个新坑&#xff0c;系统性的学习下 Flink&#xff0c;计划从整体架构到核心概念再到调优方法&#xff0c;最后是相关源码的阅读。 今天就来学习 Flink 整体架构&#xff0c;我们先看官网的架构图图中包含三部分&#xff0c;分别是 Client、JobManager 和 TaskManager。其中…

【LeetCode 热题 100】105. 从前序与中序遍历序列构造二叉树——(解法二)O(n)

Problem: 105. 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 【LeetCode 热题 100】105. 从前序与中序遍历序列构…

完美卸载 Ubuntu 双系统:从规划到实施的完整指南

&#x1f4d6; 前言 最近成功完成了一次 Ubuntu 双系统的完整卸载&#xff0c;从最初的分区删除到最终解决 GRUB 引导问题&#xff0c;整个过程虽然有些曲折&#xff0c;但最终完美解决。本文将详细分享整个卸载过程&#xff0c;希望能帮助到有类似需求的朋友。 &#x1f3af…

深入理解oracle ADG和RAC

1. 引言 本节详细介绍oracle ADG和RAC。当然这里讲得的详细是相对理论的深入&#xff0c;不涉及到实验&#xff0c;比如ADG和RAC的搭建及调优等。 RAC (Real Application Clusters) 和 ADG (Active Data Guard)是Oracle 的两大核心高可用和灾备技术。它们是 Oracle 数据库高可用…

网络安全实践:从环境搭建到漏洞复现

要求&#xff1a;1.搭建docker2.使用小皮面板搭建pikachu靶场3.使用BP的爆破模块破解pikachu的登陆密码步骤4.Kail的msf复现永恒之蓝一.搭建docker1. Docker介绍Docker 是容器&#xff0c;可以部分完全封闭。封闭意味&#xff1a;一个物质&#xff08;放到容器&#xff09;&…

车载诊断架构 --- 诊断功能开发流程

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…

mysql数据库知识

MySQL数据库详解MySQL是目前全球最流行的关系型数据库管理系统之一&#xff0c;以其开源免费、高效稳定、易于扩展等特点&#xff0c;被广泛应用于Web开发、企业级应用等场景。本文将从基础概念、核心特性到实际应用&#xff0c;对MySQL进行全面解析。一、MySQL的基本概念1. 关…

基于springboot的美食文化和旅游推广系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业多年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…

Rust赋能文心大模型4.5智能开发

文心大模型4.5版本概论 文心大模型4.5是百度推出的最新一代大规模预训练语言模型,属于文心大模型(ERNIE)系列。该模型在自然语言处理(NLP)、多模态理解与生成等领域表现出色,广泛应用于智能搜索、内容创作、对话交互等场景。 核心能力 语言理解与生成 支持复杂语义理解…