LVS-DR模式部署

x33g5p2x  于2021-12-06 转载在 其他  
字(4.0k)|赞(0)|评价(0)|浏览(226)

一、DR 原理解释

客户机发起请求,经过调度服务器(lvs),经过算法调度,去访问真实服务器(RS)

由于不原路返回,客户机不知道,真实主机的ip地址,

所以只能通过调度服务器的外网ip(vip)去反回报文信息。

第一次访问完整(不考虑实际问题)
客户端---->外网地址12.0.0.100      12.0.0.100---->客户端 
#12.0.0.18-----客户端   客户端会直接丢弃
对每台真实服务器配置外网地址 12.0.0.100
12.0.0.100------>客户端   

问题1
IP 地址冲突的
路由器发送ARP请求(广播)
ARP---->广播去找ip地址解析成mac地址
默认使用调度服务器上的外网地址(vip地址)响应,
在真实服务器上修改内核参数
使真实服务器只对自己服务器上的真实IP地址响应ARP解析。

第二次再有访问请求
问题2
路由器上绑定了 真实服务器1的mac信息,
#请求到达真实服务器
在真实服务器上修改内核参数
只对所有服务器真实网卡上的地址进行反馈,解析

二、部署操作过程

#环境简介
DR 服务器:192.168.187.150
web 服务器1:192.168.91.160
web 服务器2:192.168.91.170
vip(虚拟回环):192.168.187.188
win7虚拟机客户端:选择DHCP获取

1.配置负载调度器

关闭防火墙和SELINUX

systemctl stop firewalld.service
	setenforce 0

安装ipvsadm服务

yum install ipvsadm.x86_64 -y

配置虚拟IP地址

[root@localhost ~]# cd /etc/sysconfig/network-scripts
	[root@localhost network-scripts]#cp ifcfg-ens33 ifcfg-ens33:0
	#配置虚拟网卡,若为隧道模式ifcfg-tunl0
	[root@localhost network-scripts]#vim ifcfg-ens33:0
	#注释dns与网关,注意子网
	#重启网卡
	[root@localhost network-scripts]#systemctl restart network

调整/proc响应参数

[root@localhost network-scripts]# vim /etc/sysctl.conf
	#加在最后一行
	net.ipv4.ip_forward = 0
	net.ipv4.conf.all.send_redirects = 0
	net.ipv4.conf.default.send_redirects = 0
	net.ipv4.conf.ens33.send_redirects = 0
	[root@localhost network-scripts]#sysctl -p
	#刷新配置
	#调整/proc响应参数  对于 DR 群集模式来说,由	于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能

配置负载分配策略

[root@localhost ~]#modprobe ip_vs
	[root@localhost ~]#cat /proc/net/ip_vs
	#加载模块
	#保存策略文件(必须保存不然起不来)
	[root@localhost network-scripts]#ipvsadm-save >/etc/sysconfig/ipvsadm
	#启动服务
	[root@localhost network-scripts]#systemctl start ipvsadm.service

添加策略

#清空策略
	ipvsadm -C
	#添加策略
	[root@localhost ~]#ipvsadm -A -t 		192.168.187.188:80 -s rr
	[root@localhost ~]#ipvsadm -a -t 192.168.187.188:80 -r 192.168.91.101:80 -g
	[root@localhost ~]#ipvsadm -a -t 192.168.187.188:80 -r 192.168.91.103:80 -g
	#添加真实服务器-a  指定VIP地址及TCP端口-t   指定RIP地址及TCP端口 -r 指定DR模式-g
	#查看策略
	[root@localhost network-scripts]#ipvsadm
	[root@localhost network-scripts]#ipvsadm -ln
	#保存策略
	[root@localhost network-scripts]#ipvsadm-save >/etc/sysconfig/ipvsadm

2.节点服务器

节点服务器1

关闭防火墙和SELINUX
[root@localhost ~]#systemctl stop firewalld.service
	[root@localhost ~]#setenforce 0
下载httpd服务并启动
[root@localhost ~]#yum install httpd -y
	[root@localhost ~]#systemctl start httpd

添加修改虚拟回环网卡
[root@localhost ~]#ifconfig lo:0 192.168.187.188 netmask 255.255.255.255
	或者
	[root@localhost ~]#cd /etc/sysconfig/network-scripts/
	[root@localhost network-scripts]#cp ifcfg-lo ifcfg-lo:0
	[root@localhost network-scripts]#vim ifcfg-lo:0
	#修改回环网卡名,IP地址,子网掩码
	DEVICE=lo:0
	IPADDR=192.168.187.188
	NETMASK=255.255.255.255
	NETWORK=127.0.0.0

添加一条回指路由
[root@localhost network-scripts]#route add -host 192.168.187.188 dev lo:0
	#查看是否添加成功
	[root@localhost network-scripts]#route -n

添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
	[root@localhost network-scripts]#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@localhost network-scripts]#sysctl -p

添加站点文件用于测试
vim /var/www/html/index.html

节点服务器2

关闭防火墙和SELINUX
[root@localhost ~]#systemctl stop firewalld.service
	[root@localhost ~]#setenforce 0
下载httpd服务并启动
[root@localhost ~]#yum install httpd -y
	[root@localhost ~]#systemctl start httpd

添加修改虚拟回环网卡
[root@localhost ~]#ifconfig lo:0 192.168.187.188 netmask 255.255.255.255
	或者
	[root@localhost ~]#cd /etc/sysconfig/network-scripts/
	[root@localhost network-scripts]#cp ifcfg-lo ifcfg-lo:0
	[root@localhost network-scripts]#vim ifcfg-lo:0
	#修改回环网卡名,IP地址,子网掩码
	DEVICE=lo:0
	IPADDR=192.168.187.188
	NETMASK=255.255.255.255
	NETWORK=127.0.0.0

添加一条回指路由
[root@localhost network-scripts]#route add -host 192.168.187.188 dev lo:0
	#查看是否添加成功
	[root@localhost network-scripts]#route -n

添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP
	[root@localhost network-scripts]#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@localhost network-scripts]#sysctl -p

添加站点文件用于测试
vim /var/www/html/index.html

3.测试

开一台win7虚拟机,设置成DHCP获取IP

打开浏览器 输入网址
http://192.168.187.188

等待10s 再刷新一下

这样就实现了负载均衡,DR模式是企业中使用较多的模式

相关文章