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
 #安装nginx
 yum install -y nginx

 # 将两台虚拟机中的nginx主页中的"Welcome to CentOS"
 #分别改为"Welcome to CentOS (worker1)" 、 "Welcome to CentOS (worker2)"
 vim /usr/share/nginx/html/index.html

# 重启nginx
 systemctl 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 -g

ipvsadm -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)‘ 字样交替出现
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C/C++ 通过HTTP实现文件上传下载

WinInet(Windows Internet)是 Microsoft Windows 操作系统中的一个 API 集,用于提供对 Internet 相关功能的支持。它包括了一系列的函数,使得 Windows 应用程序能够进行网络通信、处理 HTTP 请求、FTP 操作等。WinInet 提供了一套…

DynamicDataSource

DynamicDataSource 多数据源,读写分离,主从数据库

7、单片机与W25Q128(FLASH)的通讯(SPI)实验(STM32F407)

SPI接口简介 SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根…

python使用记录

1、VSCode添加多个python解释器 只需要将对应的python.exe的目录,添加到系统环境变量中即可,VSCode会自动识别及添加 2、pip 使用 pip常用命令和一些坑 查看已安装库的版本号 pip show 库名称 通过git 仓库安装第三方库 pip install git仓库地址

基于Java SSM框架实现汽车在线销售系统项目【项目源码+论文说明】

基于java的SSM框架实现汽车在线销售系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识&a…

java基于Spring Boot+vue的民宿客房租赁预订系统的设计与实现含源码数据库

民宿租赁系统在对开发工具的选择上也很慎重,为了便于开发实现,选择的开发工具为IDEA,选择的数据库工具为Mysql。以此搭建开发环境实现民宿租赁系统的功能。其中管理员管理用户,新闻公告。 民宿租赁系统是一款运用软件开发技术设计…

cpu版本的torch可以用清华镜像源安装

一、来到pytroch官网找到如下代码 官方提供的默认的安装cpu版本的torch的命令 pip3 install torch torchvision torchaudio二、使用清华镜像安装 pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

前端大文件上传webuploader(react + umi)

使用WebUploader还可以批量上传文件、支持缩略图等等众多参数选项可设置,以及多个事件方法可调用,你可以随心所欲的定制你要的上传组件。 分片上传 1.什么是分片上传 分片上传,就是将所要上传的文件,按照一定的大小,将…

股票要怎么买入卖出?

股票账户终于开好了!恭喜你马上就可以开启刺激的炒股之旅了!不过第一次买股票的你是不是还不知道怎么个买法呢?别担心~贴心的汇小鲸带着教程来了,咱们一起看看吧! 首先一点,大家得知道:开好户还…

Leetcode 136. 只出现一次的数字

class Solution {//任何数与0异或结果都是原来的数//任何数和自身异或结果都是0//异或满足交换律和结合律//a ^ b ^ a (a ^ a) ^ b 0 ^ b bpublic int singleNumber(int[] nums) {int res nums[0];for(int i 1; i < nums.length; i){res ^ nums[i];}return res;} }

2023第十二届“认证杯”数学中国数学建模国际赛赛题A完整解析

A题完整题解 写在前面假设数据预处理 问题一1 基于自适应ARIMA-BP神经网络模型的影响因素预测1.1 ARIMA模型的建立1.2 BP神经网络模型的建立1.3 基于GABP神经网络的预测模型构建1.4 自适应混合ARIMA-BP神经网络模型的建立1.5 模型求解 代码Q1_1.mQ1_2.m 完整代码与论文获取 写在…

JavaScript短路求值

之前我们学习过两个运算符&#xff0c;and和OR&#xff0c;但是我们之前还没有发挥出他们全部的潜力&#xff1b;它们也可以用于短路求值&#xff1b; OR || 可以使用任何值&#xff0c;也可以返回任何值&#xff08;不仅仅是布尔型&#xff09;&#xff0c;我们成为短路求值…

数据结构—二叉树

文章目录 10.二叉树(1).二叉树的基本概念(2).遍历#1.前序遍历#2.中序遍历#3.后序遍历#4.非递归中序遍历 (3).中序前/后序建树#1.中序前序遍历建树#2.中序后序遍历建树 (4).递归和二叉树基本操作#1.求树高#2.求结点数#3.求叶子结点数#4.复制树#5.判断两棵树是否相等 (5).特殊二叉…

xss漏洞后端进行html消毒

import org.jsoup.Jsoup;public static String sanitizeHtml(String input) {// 使用 Jsoup 消毒 HTMLreturn Jsoup.clean(input, Safelist.relaxed());}public static void main(String[] args) {String userInput "<p><script>alert(1)</script>Safe…

Linux:vim的简单使用

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、vim的基本概念二、vim的基本操作三、vim正常模式命令集四、vim底行模式命令集五、.xxx.swp的解决总结 前言 本文是对Linux中vim使用的总结 一、vim的基本概念 …

02-使用Git命令操作远程仓库,如克隆或添加远程仓库,拉取或推送内容

操作远程仓库 创建远程仓库 第一步: 访问GitHub官网,登录自己的账号创建一个远程仓库 第二步: 设置远程仓库的信息(一般远程库的名字和本地库的名字一样),仓库创建完成后可以看到仓库地址(每个仓库都会对应一个网络地址) 第三步: 查看本地仓库对应的Https/SSH连接 远程仓库命…

apk和小程序渗透测试

apk和小程序渗透测试 文章目录 apk和小程序渗透测试小程序渗透测试apk和小程序的抓包安装证书apk渗透 小程序渗透测试 小程序的默认路径在 C:\Program Files (x86)\Tencent\WeChat\WeChatApp 使用UnpackMiniApp、wxappUnpacker工具完成逆向 先打开UnpackMiniApp.exe工具 选…

Kotlin学习——kt里的作用域函数scope function,let,run,with,apply,also

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

超全能!PDF转换+套用模板+在线制作电子画册的网站

上班族的朋友们&#xff0c;制作电子画册很苦恼吧&#xff01;没有专业设计水准的&#xff0c;或是想偷偷小懒的看看这里&#xff01;小编说的这些对你的工作非常有效&#xff01; 想要轻轻松松就能制作能与专业设计师们媲美的电子画册&#xff0c;当然是需要一款超全能的工具&…

ESP32CAM视频查看实践

利用ESP32cam的摄像头进行视频查看。视频画质确实模糊&#xff0c;不过不妨碍其高性价比。 1、选择开发板及串口 2、打开例程 3、修改热点和摄像模式 4、复制链接查看 手机浏览器打开