centos上安装并持久化配置LVS

1 实验背景

1)系统版本:centos7.8
2)虚拟机:3个centos虚拟机,(其中一个做Director Server,另外两个做Real Server)
3) LVS大致有NAT ,DR ,Tun这三种模式,这里搭建一个典型的DR模式的LVS

Direct Server 的ip是 192.168.121.100 
两台Real Server的ip分别是 192.168.121.101 、192.168.121.102
vip是 192.168.121.250 
这三个虚拟机的子网掩码是 255.255.255.0 

2 Director Server 网络配置

1) 关闭selinux、firewalld、NetworkManager

#关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#关闭firewalld
systemctl stop firewalld && systemctl disable firewalld
#关闭NetworkManager
systemctl stop NetworkManager && systemctl disable NetworkManager

2)配置Real Server的虚拟IP

创建一个虚拟网络接口的配置文件

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

然后在其中写入以下内容

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
DEVICE=ens33:0    #将网卡修改为子接口
ONBOOT=yes
IPADDR=192.168.121.250
NETMASK=255.255.255.0

重启网络,查看是否有这个虚拟网络接口

systemctl restart network
ifconfig | grep ens33:0 

3)修改系统内核文件,关闭广播功能

编辑内核配置文件

vim /etc/sysctl.conf

在内核配置文件中添加参数关闭所有网卡广播功能
0 表示禁用发送重定向,禁用发送重定向可以防止网络攻击,如 ARP 欺骗和 IP 欺骗

net.ipv4.conf.all.send_redirects = 0  #所有网卡的
net.ipv4.conf.default.send_redirects = 0 #默然网卡的
net.ipv4.conf.ens33.send_redirects = 0    #ens33网卡的(根据需要修改为真实网卡即可)

添加完毕后,刷新内核参数使其生效

sysctl -p   #刷新内核参数

4)安装ipvsadm

标准镜像中使用yum直接安装

yum install ipvsadm -y   
​
modprobe ip_vs    #将ipvsadm加载到内核中来

3 安装Web服务器

使用yum分别在两台Real Server上安装nginx

#我们在Centos下使用yum安装时往往找不到rpm的情况,官方的rpm repository提供的rpm包也不够丰富,
#很多时候需要自己编译很痛苦,而EPEL恰恰可以解决这两方面的问题yum -y install epel-release#更新yum源yum -y update#安装nginxyum install -y nginx# 将两台虚拟机中的nginx主页中的"Welcome to CentOS"#分别改为"Welcome to CentOS (worker1)" 、 "Welcome to CentOS (worker2)"vim /usr/share/nginx/html/index.html# 重启nginxsystemctl start nginx

在这里插入图片描述

4 配置Real Server的虚拟网络

在两台Real Server上分别创建一个虚拟的环回网络端口配置文件


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

然后在ifcfg-lo:0写入一下内容

DEVICE=lo:0
IPADDR=192.168.121.250
NETMASK=255.255.255.255
BROADCAST=192.168.121.250
ONBOOT=yes

此时重启网络时虚拟环回地址是无法回信的,需要添加一条主机路由

#所有发送到 192.168.121.250 的数据包将通过本地回环接口发送
route add -host 192.168.121.250 dev lo:0 
#为了防止重启失效,将此路由添加至开机自启
echo "route add -host 192.168.121.250 dev lo:0" >> /etc/rc.local

然后重启网络,尝试ping 命令是否有回信

systemctl restart network
ifconfig | grep lo:0
ping 192.168.121.250

5 配置内核文件 控制Real Server的arp通讯行为

#arp-ignore
# 0 只要本机配置有相应IP地址就响应;
# 1 仅在请求的目标地址配置在请求到达网络接口上时,才给予响应;
#arp-announce
# 0 将本机任何网络接口上的任何地址都向外通告;
# 1 尽可能避免向目标网络通告与其网络不匹配的地址信息表;
# 2 仅向目标网络通告与其网络相匹配的地址信息。

在 配置文件/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

6 Director Server添加ipvsadm规则

1)使用ipvsadm命令配置负责均衡

 -A表示添加一个集群,-a表示添加集群中的子节点,-t表示tcp协议,-s指定算法,rr表示轮巡(默认60秒切换一次),-r指定后端真实web服务器,-g启用IPVS的网关模式(DR模式)
# ipvsadm -A -t 集群IP:80 -s rr
# ipvsadm -a -t 集群IP:80 -r web1:80 -g
# ipvsadm -a -t 集群IP:80 -r web2:80 -gipvsadm -A -t 192.168.121.250:80 -s rr
ipvsadm -a -t 192.168.121.250:80 -r 192.168.121.101:80 -g
ipvsadm -a -t 192.168.121.250:80 -r 192.168.121.102:80 -g

2)修改文件,保证重启后ipvsadm 规则不丢失

修改配置文件ipvsadm-config

vim /etc/sysconfig/ipvsadm-config
# IPVSADM_SAVE_ON_STOP 表示ipvsadm停止时,是否自动保存ipvsadm规则
# IPVSADM_SAVE_ON_STOP 表示ipvsadm重启时,是否自动保存ipvsadm规则
# 这两个参数,默认值都是'no',这里需要改成'yes'IPVSADM_SAVE_ON_STOP="yes"IPVSADM_SAVE_ON_RESTART="yes"

7、功能测试

查看配置是否生效

ipvsadm -L --stats

在这里插入图片描述

在宿主机浏览器打开 http://192.168.121.250/ ,反复刷新可以看到 ‘Welcome to CentOS (worker2)’ ’Welcome to CentOS (worker1)‘ 字样交替出现
在这里插入图片描述

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

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

相关文章

【漏洞复现】大华智慧园区综合管理平台deleteFtp接口远程命令执行

漏洞描述 大华智慧园区综合管理平台deleteFtp接口存在远程命令执行,攻击者可利用该漏洞执行任意命令,获取服务器控制权限。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益…

VSC++=》 拆解整数对号入座重组

void 拆解整数对号入座重组(int& 数, bool 选 true) {int 对号[10]{}, j 选 ? 9 : 0, 反 0, 基 1;while (数)对号[数 % 10], 数 / 10;if (选)while (j > 0)if (对号[j])数 * 10, 数 j, (反 ? 基 * 10 : 0), 反 基 * j, --对号[j]; else --j;else while (j < …

VSC++=》 友数对友质数()

void 友数对友质数() {//缘由https://bbs.csdn.net/topics/396498706?page1#post-411382586int aa 2, aaa 20; while (aa * aaa < 119)if (判断质数(aa * aaa - 1))cout << aa << ends << aaa << ends << (aa*aaa - 1) << endl, aaa…

41 - 如何使用缓存优化系统性能?

缓存是我们提高系统性能的一项必不可少的技术&#xff0c;无论是前端、还是后端&#xff0c;都应用到了缓存技术。前端使用缓存&#xff0c;可以降低多次请求服务的压力&#xff1b;后端使用缓存&#xff0c;可以降低数据库操作的压力&#xff0c;提升读取数据的性能。 今天我…

nodejs微信小程序+python+PHP金融产品销售系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

R语言30分钟上手

文章目录 1. 环境&安装1.1. rstudio保存工作空间 2. 创建数据集2.1. 数据集概念2.2. 向量、矩阵2.3. 数据框2.3.1. 创建数据框2.3.2. 创建新变量2.3.3. 变量的重编码2.3.4. 列重命名2.3.5. 缺失值2.3.6. 日期值2.3.7. 数据框排序2.3.8. 数据框合并(合并沪深300和中证500收盘…

​LeetCode解法汇总2661. 找出叠涂元素

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 给你一个下…

自定义Vue的DockPanel-Layout

创作来源 1、在vue项目中需要有停靠、浮动、面板布局等需求&#xff0c;如arcgis的界面布局 2、在npm中搜索了关于vue的docklayout组件&#xff0c;搜索后就一个组件imengyu/vue-dock-layout&#xff0c;截图如下&#xff0c;该组件没有停靠组件&#xff0c;没有浮动组件&…

scrapy爬虫中间件和下载中间件的使用

一、关于中间件 之前文章说过&#xff0c;scrapy有两种中间件&#xff1a;爬虫中间件和下载中间件&#xff0c;他们的作用时间和位置都不一样&#xff0c;具体区别如下&#xff1a; 爬虫中间件&#xff08;Spider Middleware&#xff09; 作用&#xff1a; 爬虫中间件主要负…

Python+Requests对图片验证码的处理

Requests对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入&#xff0c;而且每次登录时图片验证码都是随机的&#xff1b;当通过request做接口登录的时候要对图片验证码进行识别出图片中的字段&#xff0c;然后再登录接口中使用&#xff1b; 通过request对图片验…

Vscode中字符串报错:Unknown word.cSpell

一. 报错现象 二. 原因 是vscode IDE工具中的插件 Code Spell Checker 会检查字符串的合理性&#xff0c;我们写的中式拼音的字符串&#xff0c;不是一个标准英文单词&#xff0c;就会提示错误&#xff0c;解决方法就是让该插件遇到特定词汇不报错 三. 解决方法

macOS本地调试k8s源码

目录 准备工作创建集群注意点1. kubeconfig未正常加载2. container runtime is not running3. The connection to the server 172.16.190.132:6443 was refused - did you specify the right host or port?4. 集群重置5.加入子节点 代码调试 准备工作 apple m1芯片 安装vmwa…

TCP_报文格式解读

报文格式 header部分字段含义解析 固定字段 对于header中固定部分字段含义&#xff0c;见之前的blog《TCP报文分析》&#xff1b; 对部分字段含义补充说明 Data Offset&#xff1a;4bit&#xff0c;tcp header的长度&#xff0c;单位&#xff1a;32bit&#xff08;4字节&…

指针(3)

如图&#xff0c;这是比较常见的冒泡排序&#xff0c;不过只能对整形数据进行排序。本篇博文主要介绍如何模拟qsort函数实现冒泡排序对任何数据的排序。 如果我们想对任何数据进行排序&#xff0c;我们可以发现&#xff0c;排序的趟数是固定的&#xff0c;我们只需要对比较大…

大数据Doris(三十一):Doris简单查询

文章目录 Doris简单查询 一、简单查询 二、Join

linux(3)之buildroot配置软件包

Linux(3)之buildroot配置软件包 Author&#xff1a;Onceday Date&#xff1a;2023年11月30日 漫漫长路&#xff0c;才刚刚开始… 参考文档&#xff1a; Buildroot - Making Embedded Linux Easymdev.txt docs - busybox - BusyBox: The Swiss Army Knife of Embedded Linu…

组合(回溯+剪枝、图解)

77. 组合 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 样例输入 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],…

Unittest单元测试之unittest用例执行顺序

unittest用例执行顺序 当在一个测试类或多个测试模块下&#xff0c;用例数量较多时&#xff0c;unittest在执行用例 &#xff08;test_xxx&#xff09;时&#xff0c;并不是按从上到下的顺序执行&#xff0c;有特定的顺序。 unittest框架默认根据ACSII码的顺序加载测试用例&a…

时序预测 | Python实现TCN时间卷积神经网络时间序列预测(多图,多指标)

时序预测 | Python实现TCN时间卷积神经网络时间序列预测(多图,多指标) 目录 时序预测 | Python实现TCN时间卷积神经网络时间序列预测(多图,多指标)预测效果基本介绍环境准备程序设计参考资料预测效果 基本介绍

ChatGPT一周年,奥特曼官宣 OpenAI 新动作!

大家好&#xff0c;我是二狗。 今天是11月30日&#xff0c;一转眼&#xff0c;ChatGPT 发布已经一周年了&#xff01; 而就在刚刚&#xff0c;ChatGPT一周年之际。 OpenAI 正式宣布Sam Altman回归重任CEO, Mira Murati 重任CTO&#xff0c;Greg Brockman重任总裁&#xff0c;O…