Bootstrap

lvs虚拟服务器之LVS-NAT模式

一.集群
二.LVS:虚拟服务器:工作在传输层,解决高并发
三.LVS-NAT



一.集群
	1.概念:
		集群就是一组计算机

		集群核心:任务调度
	
		集群目的
			提高性能,降低成本,提高可扩展性,增强可靠性
	
		集群分类
			HA:高可用集群(High Availability Cluster):避免单点故障(代理服务器)
			LB:负载均衡集群/负载均衡系统(Load Balance Cluster):平均分摊
			HPC:高性能计算集群(High Performance Computing)

二.LVS:虚拟服务器:工作在传输层
				
	1.基本概念:
		(1)LVS组成
			内核空间:IPVS框架
			用户空间:ipvsadm命令

		(2)LVS集群组成
	
			前端:负载均衡层
				一台或多台负载调度器构成
	
			中间:服务器群组层
				实际运行的应用服务器组成
	
			底端:数据共享存储层(每个服务器项目更新)--nfs服务
				提供共享存储空间的存储区域
		(3)术语:
			1)调度器:LVS服务器
			2)真实服务器Real Server:提供服务的服务器
	
			3)VIP:虚拟地址,外提供的IP地址,客户端通过这个IP地址访问LVS集群
			4)DIP:指定地址,将请求转发给后端真实服务器时所使用的地址
			5)RIP:真实地址,后端真实服务器的IP地址

		(4)LVS的工作模式:
			NAT:网络地址转换,公私网转换
			DR:路由模式
			TUN:隧道模式

		(5)LVS与nginx反向代理区别:
			1)LVS适用于高并发
			2)nginx具有健康检查,功能全面一些,LVS没有
			3)不能持久化规则,关机后失效

		(6)补充相关命令

			1)开机不启动
			nmcli connection modify "System eth0" ipv4.method disabled autoconnect no
			
			2)禁用相关网卡的命令
				nmcli connection down "System eth0"

			3)允许数据跨网口转发
				cat  /proc/sys/net/ipv4/ip_forward  -->1
				88.10-->99.5-->99.100-->99.200:可以ping通


三.LVS-NAT工作模式简介
		
	1.概念:LVS-NAT模式是一种负载均衡技术


	2.工作原理

		客户端请求(VIP)-->负载均衡服务器(修改源和目地IP)(DIP)-->真实业务服务器(RIP)
	 	客户端请求(VIP)<--负载均衡服务器(修改源和目地IP)(DIP)<--真实业务服务器(RIP)
			
	在LVS-NAT模式下,负载均衡器充当客户端和真实服务器之间的中介。当客户端发送请求到负载均衡器的虚拟IP地址(VIP)时,负载均衡器会根据预设的负载均衡算法选择一个真实的后端服务器来处理该请求。

	然后,负载均衡器将请求的数据包的源地址修改为自身的IP地址,目标地址修改为选定的真实服务器的IP地址,并将修改后的数据包发送给真实服务器。

	真实服务器处理请求后,将响应返回给负载均衡器。负载均衡器再将响应的数据包的源地址修改为虚拟IP地址,目标地址修改为客户端的IP地址,并将修改后的响应数据包发送给客户端。
		

	3.实验环境准备
			(1) pubserver:eth0->192.168.88.240,eth1->192.168.99.240
			client:eth0->192.168.88.10,网关192.168.88.5
			lvs1: eth0 -> 192.168.88.5;eth1->192.168.99.5
			web1:eth1->192.168.99.100;网关192.168.99.5
			web2:eth1->192.168.99.200;网关192.168.99.5

			(2)搭建ansible环境

			(3)web1,web2安装nginx服务器


	4.LVS-NAT虚拟服务器搭建:
			(1)装ipvsadm包
			(2)配置内核参数开启路由转发功能
			(3)搭建lvs-nat模式


			(1)配置内核参数开启路由转发功能,lvs调度服务器/etc/sysctl.conf

			开启路由转发功能内核参数设置:net.ipv4.ip_forward=1
				net.ipv4.ip_forward=1:
					这意味着Linux系统可以作为路由器,将接收到的IP数据包根据目标IP地址的路由信息转发到合适的接口,以便数据包能够到达目标主机。
				直接设置 echo 1 >  /proc/sys/net/ipv4/ip_forward  -->1(临时)

				内核参数配置文件:/etc/sysctl.conf,设置参数net.ipv4.ip_forward=1(永久)
				刷新配置文件:"sysctl -p"

				---
				- name: config sysctl
				  hosts: lbs
				  tasks:
				    - name: modify kernel args          #持久开启Linux路由转发功能
				      sysctl:
				        name: net.ipv4.ip_forward
				        value: '1'
				        sysctl_set: true                #立即生效
				        sysctl_file: /etc/sysctl.conf   #写入的文件
				      notify: flush args
				  handlers:
				    - name: flush args                  
				      shell: "sysctl -p"			#刷新sysctl.conf文件

			(2)装ipvsadm包:
				利用ansible给lvs1安装ipvsadm包(提供用户命令行下的操作接口)

				# ipvsadm命令常用选项
				    -A: 添加虚拟服务器
				    -C: 删除所有虚拟服务器
				    -D: 删除虚拟服务器
				    -E: 编辑虚拟服务器
				    -s: 指定调度算法。
					如轮询rr(Round Robin)
					加权轮询wrr
					最少连接lc:并将新的请求调度到连接数最少的服务器上
					加权最少连接wlc


				    -a tu rw mg:
				    -a: 向"添加"的虚拟服务器中加入真实服务器
				    -t: 添加tcp服务器, -u: 添加udp服务器
				    -r: 指定真实服务器地址
				    -w: 设置权重

				    -m: 指定工作模式为NAT
				    -g: 指定工作模式为DR
				    
				   
			(3)搭建lvs-nat模式
				[root@lvs1 ~]# ipvsadm -A -t 192.168.88.5:80 -s rr
				[root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.100:80 -w 1 -m   
				[root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.200:80 -w 2 -m
				[root@lvs1 ~]# ipvsadm -Ln      #查看虚拟主机列表
			

一.集群
二.LVS:虚拟服务器:工作在传输层,解决高并发
三.LVS-NAT
四.LVS-DR


一.集群
    1.概念:
        集群就是一组计算机

        集群核心:任务调度
    
        集群目的
            提高性能,降低成本,提高可扩展性,增强可靠性
    
        集群分类
            HA:高可用集群(High Availability Cluster):避免单点故障(代理服务器)
            LB:负载均衡集群/负载均衡系统(Load Balance Cluster):平均分摊
            HPC:高性能计算集群(High Performance Computing)

二.LVS:虚拟服务器:工作在传输层
                
    1.基本概念:
        (1)LVS组成
            内核空间:IPVS框架
            用户空间:ipvsadm命令

        (2)LVS集群组成
    
            前端:负载均衡层
                一台或多台负载调度器构成
    
            中间:服务器群组层
                实际运行的应用服务器组成
    
            底端:数据共享存储层(每个服务器项目更新)--nfs服务
                提供共享存储空间的存储区域
        (3)术语:
            1)调度器:LVS服务器
            2)真实服务器Real Server:提供服务的服务器
    
            3)VIP:虚拟地址,外提供的IP地址,客户端通过这个IP地址访问LVS集群
            4)DIP:指定地址,将请求转发给后端真实服务器时所使用的地址
            5)RIP:真实地址,后端真实服务器的IP地址

        (4)LVS的工作模式:
            NAT:网络地址转换,公私网转换
            DR:路由模式
            TUN:隧道模式

        (5)LVS与nginx反向代理区别:
            1)LVS适用于高并发
            2)nginx具有健康检查,功能全面一些,LVS没有
            3)不能持久化规则,关机后失效

        (6)补充相关命令

            1)开机不启动
            nmcli connection modify "System eth0" ipv4.method disabled autoconnect no
            
            2)禁用相关网卡的命令
                nmcli connection down "System eth0"

            3)允许数据跨网口转发
                cat  /proc/sys/net/ipv4/ip_forward  -->1
                88.10-->99.5-->99.100-->99.200:可以ping通


三.LVS-NAT工作模式简介
        
    1.概念:LVS-NAT模式是一种负载均衡技术


    2.工作原理

        客户端请求(VIP)-->负载均衡服务器(修改源和目地IP)(DIP)-->真实业务服务器(RIP)
         客户端请求(VIP)<--负载均衡服务器(修改源和目地IP)(DIP)<--真实业务服务器(RIP)
            
    在LVS-NAT模式下,负载均衡器充当客户端和真实服务器之间的中介。当客户端发送请求到负载均衡器的虚拟IP地址(VIP)时,负载均衡器会根据预设的负载均衡算法选择一个真实的后端服务器来处理该请求。

    然后,负载均衡器将请求的数据包的源地址修改为自身的IP地址,目标地址修改为选定的真实服务器的IP地址,并将修改后的数据包发送给真实服务器。

    真实服务器处理请求后,将响应返回给负载均衡器。负载均衡器再将响应的数据包的源地址修改为虚拟IP地址,目标地址修改为客户端的IP地址,并将修改后的响应数据包发送给客户端。
        

    3.实验环境准备
            (1) pubserver:eth0->192.168.88.240,eth1->192.168.99.240
            client:eth0->192.168.88.10,网关192.168.88.5
            lvs1: eth0 -> 192.168.88.5;eth1->192.168.99.5
            web1:eth1->192.168.99.100;网关192.168.99.5
            web2:eth1->192.168.99.200;网关192.168.99.5

            (2)搭建ansible环境

            (3)web1,web2安装nginx服务器


    4.LVS-NAT虚拟服务器搭建:
            (1)装ipvsadm包
            (2)配置内核参数开启路由转发功能
            (3)搭建lvs-nat模式


            (1)配置内核参数开启路由转发功能,lvs调度服务器/etc/sysctl.conf

            开启路由转发功能内核参数设置:net.ipv4.ip_forward=1
                net.ipv4.ip_forward=1:
                    这意味着Linux系统可以作为路由器,将接收到的IP数据包根据目标IP地址的路由信息转发到合适的接口,以便数据包能够到达目标主机。
                直接设置 echo 1 >  /proc/sys/net/ipv4/ip_forward  -->1(临时)

                内核参数配置文件:/etc/sysctl.conf,设置参数net.ipv4.ip_forward=1(永久)
                刷新配置文件:"sysctl -p"

                ---
                - name: config sysctl
                  hosts: lbs
                  tasks:
                    - name: modify kernel args          #持久开启Linux路由转发功能
                      sysctl:
                        name: net.ipv4.ip_forward
                        value: '1'
                        sysctl_set: true                #立即生效
                        sysctl_file: /etc/sysctl.conf   #写入的文件
                      notify: flush args
                  handlers:
                    - name: flush args                  
                      shell: "sysctl -p"            #刷新sysctl.conf文件

            (2)装ipvsadm包:
                利用ansible给lvs1安装ipvsadm包(提供用户命令行下的操作接口)

                # ipvsadm命令常用选项
                    -A: 添加虚拟服务器
                    -C: 删除所有虚拟服务器
                    -D: 删除虚拟服务器
                    -E: 编辑虚拟服务器
                    -s: 指定调度算法。
                    如轮询rr(Round Robin)
                    加权轮询wrr
                    最少连接lc:并将新的请求调度到连接数最少的服务器上
                    加权最少连接wlc


                    -a tu rw mg:
                    -a: 向"添加"的虚拟服务器中加入真实服务器
                    -t: 添加tcp服务器, -u: 添加udp服务器
                    -r: 指定真实服务器地址
                    -w: 设置权重

                    -m: 指定工作模式为NAT
                    -g: 指定工作模式为DR
                    
                   
            (3)搭建lvs-nat模式
                [root@lvs1 ~]# ipvsadm -A -t 192.168.88.5:80 -s rr
                [root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.100:80 -w 1 -m   
                [root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.200:80 -w 2 -m
                [root@lvs1 ~]# ipvsadm -Ln      #查看虚拟主机列表
            

;