LVS负载均衡之DR模式构建

1)实验环境

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

LVS负载均衡集群是一种开源的负载均衡技术,可以在Linux内核中实现。LVS集群负载均衡器接受所有入站客户端的请求,并根据算法来决定由哪个集群的节点来处理请求。 LVS负载均衡调度技术是在linux内核中实现的,我们使用配置LVS时,不是直接配置内核中的IPVS,而是通过IPVS的管理工具IPVSADM来管理配置。

2)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

(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

(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只负责处理入站数据,出站由真实服务器自己完成

轮巡效果图展示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值