当前位置: 首页 > news >正文

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.dtcms.com/a/277961.html

相关文章:

  • docker高级管理——Compose容器编排与私有仓库
  • 基于YOLOv11的无人机目标检测实战(Windows环境)
  • 小程序部分pai
  • 深度剖析:自定义线程安全 ppp::function 实现 vs std::function
  • 黑洞是什么?
  • 苍穹外卖Day3
  • python kivy 打包apk
  • 基于手势识别完成ESP32C3控制8位继电器实现智能鱼缸整体方案设计
  • “找到一个或多个多重定义的符号“(LNK2005 或 LNK1169)
  • JAVA 反射总结
  • 开源工具DeepFilterNet:实时语音降噪
  • SQL的初步学习(二)(以MySQL为例)
  • 第四章 城市给水排水处理厂站工程
  • 双向链表:前后遍历的艺术
  • 动态规划题解_将一个数字表示成幂的和的方案数【LeetCode】
  • 高压空气冲击炮cad【3张】三维图+设计说明书
  • Python 学习之路(十)--常见算法实现原理及解析
  • 智慧公安信息化建设解决方案PPT(63页)
  • Matlab的命令行窗口内容的记录-利用diary记录日志/保存命令窗口输出
  • 什么是 MVP?产品从0到1的关键一步
  • OSPF 基础实验
  • X00211-基于残差edge-graph注意力机制的深度强化学习优化车辆路径问题
  • HarmonyOS从入门到精通:动画设计与实现之八 - 高级动画技巧(二)
  • [Plecs基础知识系列]基于Plecs的半导体热仿真方法(实战篇)_1.建立电路模型
  • C语言基础知识--文件读写(一)
  • RAID磁盘冗余技术深度解析
  • WEB渗透
  • 【LeetCode100】--- 6.三叔之和【思维导图---复习回顾】
  • 基于Java日志平台的访问链路追踪实战
  • JAVA并发——synchronized的实现原理