LVS负载均衡之DR模式构建
  Il1dbC9Jhbvl 2023年11月02日 55 0

※ 实验环境

(1)系统:centos7.9

(2)虚拟机:4台centos7.9,1台作为nfs共享服务器(NFS共享服务搭建步骤

LVS负载均衡之DR模式构建_负载均衡集群

一、负载调度器配置

(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)配置主机IP

#1.创建一个子接口,用来模拟外部网卡
 cp -r ifcfg-ens33 ifcfg-ens33:0
vim 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=10.10.10.100    
NETMASK=255.255.255.0
●重启网卡查看IP是否生效
systemctl restart network

LVS负载均衡之DR模式构建_负载均衡集群_02

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

#在内核配置文件中添加参数关闭所有网卡广播功能
#0 表示禁用发送重定向,禁用发送重定向可以防止ARP欺骗和IP欺骗
vim /etc/sysctl.conf

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加载到内核中来

二、配置web服务器

(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)这里采用httpd服务,用来模拟web服务器

· 注意:在生产环境中网页内容是一致的,这里做实验为了看效果所以内容不同。
http-1服务器配置:
#安装httpd服务
yum install httpd -y
#启动服务
service httpd start 
#写入一个网页文件用来测试
echo "this is one web!" >/var/www/html/index.html


http-2服务器配置:
#安装httpd服务
yum install httpd -y
#启动服务
service httpd start 
#写入一个网页文件用来测试
echo "this is two web!" >/var/www/html/index.html

(3)拷贝一个回环网卡子接口,设置IP为负载调度器的虚拟IP,作为标识

        将回环接口子接口的IP地址设置为负载调度器的虚拟IP地址是为了确保回送数据包(由后端服务器返回给客户端的响应)通过负载调度器而不是直接发送到网络上。这样,负载调度器可以继续处理负载均衡算法并将响应发送到适当的客户端。

cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0

LVS负载均衡之DR模式构建_linux_03

(4)配置arp通讯行为

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

(4)为了解决无法回信问题添加一条主机路由

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

注:web2服务器配置与web1一致,这里不再赘述。

三、添加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

(1)保存ipvs规则,使其重启不会丢失

# -S将当前IPVS规则保存到root目录下的ipvsweb文件内
ipvsadm -S > /root/ipvsweb

# -R从指定文件中加载IPVS规则
ipvsadm -R < /root/ipvsweb

四、测试功能是否生效

在DR模式下LVS只负责处理入站数据,出站由真实服务器自己完成

LVS负载均衡之DR模式构建_LVS-DR模式_04

轮巡效果图展示:

LVS负载均衡之DR模式构建_负载均衡集群_05

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  6YY0QMPUXEwu   2023年12月10日   31   0   0 linux网卡
  Ex81gqy3LOX7   2023年12月07日   32   0   0 linux
  nIt0XG0acU8j   2023年12月11日   33   0   0 linuxhtop
  nIt0XG0acU8j   2023年12月09日   39   0   0 linuxsort
Il1dbC9Jhbvl