CLUSTER LVS集群技术 基础知识

在这里插入图片描述
使用ipvsadm模块
常用ipvsadm命令语法格式在这里插入图片描述
案例:
在这里插入图片描述
实验:

	步骤一:使用命令增、删、改LVS集群规则
	1)创建LVS虚拟集群服务器(算法为加权轮询:wrr)
			1.	[root@proxy ~]# yum -y install ipvsadm
			2.	[root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr
			3.	[root@proxy ~]# ipvsadm -Ln			
	2)为集群添加若干real server
			1.	[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 
			2.	[root@proxy ~]# ipvsadm -Ln
			8.	[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -m -w 2
			9.	[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.201 -m -w 3
			10.	[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.202 -m -w 4
	3)修改集群服务器设置(修改调度器算法,将加权轮询修改为轮询)
			1.	[root@proxy ~]# ipvsadm -E -t 192.168.4.5:80 -s rr
			2.	[root@proxy ~]# ipvsadm -Ln
	4)修改real server(使用-g选项,将模式改为DR模式)
			1.	[root@proxy ~]# ipvsadm -e -t 192.168.4.5:80 -r 192.168.2.202 -g
	5)永久保存所有规则(非必须的操作)
			1.	[root@proxy ~]# ipvsadm-save -n > /etc/sysconfig/ipvsadm
			注意:永久规则需要确保ipvsadm服务为开机启动服务才可以。
			(systemctl enable ipvsadm)。
	6)清空所有规则
				1.	[root@proxy ~]# ipvsadm -C

实验:部署LVS-NAT集群

	使用LVS实现NAT模式的集群调度服务器,为用户提供Web服务:
		•	集群对外公网IP地址为192.168.4.5
		•	调度器内网IP地址为192.168.2.5
		•	真实Web服务器地址分别为192.168.2.100、192.168.2.200
		•	使用加权轮询调度算法,真实服务器权重任意

实验拓扑结构主机配置细节
在这里插入图片描述

		步骤一:配置基础环境
		1)设置Web服务器
				1.	[root@web1 ~]# yum -y install httpd        #安装软件
				2.	[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html    #创建网页文件
				3.	[root@web1 ~]# firewall-cmd --set-default-zone=trusted            #设置防火墙
				4.	[root@web1 ~]# setenforce  0
				5.	[root@web1 ~]# sed -i  '/SELINUX/s/enforcing/permissive/'  /etc/selinux/config  
				6.	
				7.	[root@web2 ~]# yum -y install httpd        #安装软件
				8.	[root@web2 ~]# echo "192.168.2.200" > /var/www/html/index.html    #创建网页文件
				9.	[root@web2 ~]# firewall-cmd --set-default-zone=trusted            #设置防火墙
				10.	[root@web2 ~]# setenforce  0
				11.	[root@web2 ~]# sed -i  '/SELINUX/s/enforcing/permissive/'  /etc/selinux/config

		2)启动Web服务器软件
			1.	[root@web1 ~]# systemctl restart httpd
			2.	[root@web2 ~]# systemctl restart httpd
		验证:
				1.	[root@proxy ~]# curl http://192.168.2.100
				2.	[root@proxy ~]# curl http://192.168.2.200

		3)配置网关,将web1和web2的网关设置为192.168.2.5(不能照抄网卡名称)
		如果有4网段的IP,则临时将该网卡关闭nmcli con down 网卡名称
				1.	[root@web1 ~]# nmcli connection modify ens33  ipv4.method manual ipv4.gateway 192.168.2.5
				3.	#备注:网卡名称不能照抄,需要自己查看下2.100的网卡名称
				4.	[root@web1 ~]# nmcli connection up ens33
				5.	[root@web1 ~]# ip route show                #查看默认网关
				6.	default via 192.168.2.5 dev ens33          #提示:这里default后面的IP就是默认网关
			
				9.	[root@web2 ~]# nmcli connection modify ens33  	ipv4.method manual ipv4.gateway 192.168.2.5
				11.	#备注:网卡名称不能照抄,需要自己查看下2.200的网卡名称
				12.	[root@web2 ~]# nmcli connection up ens33
				13.	[root@web2 ~]# ip route show        #查看默认网关,default后面的IP就是默认网关

在这里插入图片描述

LVS采用的是路由器的NAT通讯原理!通讯流程如下:
1.客户端发送请求数据包(src:4.10,dst:4.5)
2.数据包被发送给LVS调度器,调度器做NAT地址转换(外网转内网,内网转外网)
a)数据包被修改为src:4.10,dst:2.100(dst也有可能被修改为2.200,随机的)
b)LVS调度器把数据包转发给后端真正的web服务器(2.100)
3.web1收到数据包开始回应数据(rsc:2.100,dst:4.10)
备注:谁访问就给谁回复数据,因为src是4.10,所以应该给4.10回应数据!
但是,自己是2.100,对方是4.10,跨网段默认无法通讯,如何解决???
Web1和web2都需要设置默认网关(也就是192.168.2.5)
4)web1想发送数据给4.10但是又无法与其通讯,所以数据包被交给默认网关
5)LVS调度器(软路由)收到后端web发送过来的数据后,再次做NAT地址转换
a)数据包被修改为src:4.5,dst:4.10
b)LVS调度器把数据包转发给客户端主机
6)客户端接收网页数据内容
注意:客户端访问的是4.5,最后是4.5给客户端回复的网页数据!!!!

步骤二:部署LVS-NAT模式调度器

	1)确认调度器的路由转发功能(如果已经开启,可以忽略)
			1.	[root@proxy ~]# echo 1 > /proc/sys/net/ipv4/ip_forward     #开启路由转发,临时有效
			2.	[root@proxy ~]# cat /proc/sys/net/ipv4/ip_forward          #查看效果
			4.	[root@proxy ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
			5.	#修改配置文件,设置永久规则,英语词汇:forward(转寄,转发,发送,向前)
	2)创建集群服务器
			1.	[root@proxy ~]# yum -y install ipvsadm
			2.	[root@proxy ~]# ipvsadm -A -t 192.168.4.5:80 -s wrr
			3.	# -A(add)是创建添加虚拟服务器集群
			4.	# -t(tcp)后面指定集群VIP的地址和端口,协议是tcp协议
			5.	# -s后面指定调度算法,如rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)等等
	3)添加真实服务器
			1.	[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.100 -w 1 -m
			2.	[root@proxy ~]# ipvsadm -a -t 192.168.4.5:80 -r 192.168.2.200 -w 1 -m
			3.	#-a(add)往虚拟服务器集群中添加后端真实服务器IP,指定往-t 192.168.4.5:80这个集群中添加
			4.	#-r(real)后面跟后端真实服务器的IP和端口,这里不写端口默认是80端口
			5.	#-w(weight)指定服务器的权重,权重越大被访问的次数越多,英语词汇:weight(重量,分量)
			6.	#-m指定集群工作模式为NAT模式,如果是-g则代表使用DR模式,-i代表TUN模式
	4)查看规则列表(L是list查看,n是number数字格式显示)
			1.	[root@proxy ~]# ipvsadm -Ln
	5)设置防火墙,SELinux
			1.	[root@proxy ~]# firewall-cmd --set-default-zone=trusted
			2.	[root@proxy ~]# setenforce  0
			3.	[root@proxy ~]# sed -i  '/SELINUX/s/enforcing/permissive/'  /etc/selinux/config

步骤三:客户端测试
客户端client主机使用curl命令反复连接http://192.168.4.5,查看访问的页面是否会轮询到不同的后端真实服务器。


版权声明:本文为qq_43404505原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。