• 7-3 LVS+Keepalived集群叙述与部署


    文章目录

    一,概述Keepalived

    • Keepalived 的设计目标是构建高可用的 LVS 负载均衡群集,可以调用 ipvsadm 工具来创建虚拟服务器,管理服务器池,而不仅仅是用作双机热备

    • Keepalived 也是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题

    1.工作原理

    • 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟IP,主服务器会发送VRRP通告信息给备份服务器,当备份服务器收不到VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性

    实现原理

    • keepalived 采用 VRRP 热备份协议实现 Linux 服务器的多机热备功能
    • VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案
    • 由多台路由器组成一个热备份组,通过共用的虚拟IP地址对外提供服务
    • 每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

    2.优点

    • 使用 Keepalived 构建 LVS 群集更加简便易用

    • 对 LVS 负载调度器实现热备切换,提高可用性

    • 支持故障自动切换

    • 支持节点健康状态检查

    • 判断 LVS 负载调度器,节点服务器的可用性,当master 主机出现故障及时切换到 backup 节点保证业务正常,当master 故障主机恢复后将其重新加入群集并且重新切换回 master 节点(因为设置了优先级)

    3.keepalived体系架构中主要有三个模块

    模块作用说明
    core为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析
    vrrp是来实现VRRP协议
    check负责健康检查,常见的方式有端口检查及URL检查或脚本检查

    二,LVS-DR+Keepalived部署

    要更改配置,配置文件都是什么

    • 1.配置Keepalived master服务器

    keepalived.conf是主配置文件

    global_defs {…}区段指定全局参数

    vrrp_instance 实例名称{…}区段指定VRRP热备参数
    注释文字以"∵"符号开头
    目录samples,提供了许多配置样例作为参考

    • 2.常用配置选项

    router_id HA_TEST_R1:本路由器(服务器)的名称、主备名称要不一样
    vrrp_instance Vl_1∶定义VRRP热备实例
    state MASTER:热备状态,MASTER表示主服务器
    interface ens33:承载VIP地址的物理接口
    virtual_router_id 1 :虚拟路由器的ID号,每个热备组保持一致
    priority 100:优先级,数值越大优先级越高
    advert_int 1:通告间隔秒数(心跳频率)
    auth_type PASS:认证类型
    auth_pass 123456:密码字串
    virtual_ipaddress { vip}:指定漂移地址(VIP),可以有多个

    • 3.配置Keepalived slave服务器

    Keepalived备份服务器的配置与master的配置有三个选项不同

    router_id:设为自有名称
    state:设为BACKUP
    priority:值低于主服务器
    其他选项与master相同

    • 测试双机热备的效果

    router_id:设为自有名称
    state:设为BACKUP
    priority:值低于主服务器

    部署所需环境

    负载调度器主DR模式 服务器:192.168.113.128
    负载调度器备DR模式 服务器:192.168.113.129

    Web1 节点服务器:192.168.113.126
    Web2 节点服务器:192.168.113.125

    客户端 win10:192.168.113.131
    VIP地址: 192.168.113.200

    一,配置负载调度器(主:192.168.113.128)

    注:不要在意主机名字,没更改

    注2:行数有可能不同,根据自己配置文件来

    1.关闭防火墙,核心防护

    [root@server2 ~]# systemctl stop firewalld
    [root@server2 ~]# systemctl disable firewalld
    [root@server2 ~]# setenforce 0
    
    • 1
    • 2
    • 3

    2.安装服务

    [root@server2 ~]# yum install -y ipvsadm.x86_64 keepalived.x86_64 
    
    • 1

    3.修改配置文件keeplived.conf

    [root@server2 keepalived]# cd /etc/keepalived/
    [root@server2 keepalived]# cp keepalived.conf keepalived.conf.bak
    [root@server2 keepalived]# vim keepalived.conf
    ......
    global_defs {						#定义全局参数
    --10行--修改,邮件服务指向本地
    	smtp_server 127.0.0.1
    --12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
    	router_id LVS_01
    }
     
    vrrp_instance VI_1 {				#定义VRRP热备实例参数
    --20行--修改,指定热备状态,主为MASTER,备为BACKUP
        state MASTER
    --21行--修改,指定承载vip地址的物理接口
        interface ens33
    --22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	
        virtual_router_id 10
    --23行--修改,指定优先级,数值越大优先级越高,主为100,备为90
        priority 100
        advert_int 1					#通告间隔秒数(心跳频率)
        authentication {				#定义认证信息,每个热备组保持一致
    		auth_type PASS				#认证类型
    --27行--修改,指定验证密码,主备服务器保持一致
            auth_pass 666888
        }
        virtual_ipaddress {				#指定群集vip地址
           192.168.113.200
        }
    }
    --34行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
    virtual_server 192.168.113.200 80 {
        delay_loop 6					#健康检查的间隔时间(秒)
        lb_algo rr						#指定调度算法,轮询(rr)
    --37行--修改,指定群集工作模式,直接路由(DR)
        lb_kind DR
        persistence_timeout 50			#连接保持时间(秒)
        protocol TCP					#应用服务采用的是 TCP协议
    --41行--修改,指定第一个Web节点的地址、端口
        real_server 192.168.113.126 {
            weight 1					#节点的权重
    --43行--删除,添加以下健康检查方式		
            TCP_CHECK {
    			connet_port 80			#添加检查的目标端口
    			connect_timeout 3		#添加连接超时(秒)
    			nb_get_retry 3			#添加重试次数
    			delay_before_retry 3	#添加重试间隔
    		}
    	}
     
    	real_server 192.168.113.125 80 {		#添加第二个 Web节点的地址、端口
            weight 1
            TCP_CHECK {
    			connet_port 80
    			connect_timeout 3
    			nb_get_retry 3
    			delay_before_retry 3
    		}
    	}
    }
    ##删除后面多余的配置##
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    修改,邮件服务指向本地

    image-20220802191845521

    image-20220802192305509

    原有删除

    image-20220802192328173

    image-20220802194929352

    image-20220802224211103

    4.启动服务、查看虚拟网卡vip

    [root@server2 keepalived]# systemctl start keepalived
    [root@server2 keepalived]# ip addr show dev ens33 
    
    • 1
    • 2

    5.调整proce响应参数,关闭Linux内核的重定向参数响应

    ##最后一行添加
    [root@server2 keepalived]# vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.ens33.send_redirects = 0
    
    ##刷新查看是否配置
    [root@server2 keepalived]# sysctl -p
    net.ipv4.ip_forward = 1
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.ens33.send_redirects = 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    image-20220802195938119

    一.2,配置ipvsadm

    1.配置负载分配策略,并启动服务

    [root@server2 keepalived]# ipvsadm-save >/etc/sysconfig/ipvsadm
    [root@server2 keepalived]# systemctl start ipvsadm.service
    
    • 1
    • 2

    2.清空ipvsadm里的策略,并添加策略

    [root@server2 keepalived]# ipvsadm -C
    [root@server2 keepalived]# ipvsadm -A -t 192.168.113.200:80 -s rr
    [root@server2 keepalived]# ipvsadm -a -t 192.168.113.200:80 -r 192.168.113.126:80 -g
    [root@server2 keepalived]# ipvsadm -a -t 192.168.113.200:80 -r 192.168.113.125:80 -g
    
    • 1
    • 2
    • 3
    • 4

    3.开启ipvsadm,查看是否写入,保存

    [root@server2 keepalived]# ipvsadm
    [root@server2 keepalived]# ipvsadm -ln
    [root@server2 keepalived]# ipvsadm-save >/etc/sysconfig/ipvsadm
    
    • 1
    • 2
    • 3

    image-20220802200708530

    一.3 keepalived 配置

    keepalived默认会把日志打在/var/log/messages。如果不进行配置的话,日志混在一起很难进行调试问题

    1.修改添加配置文件

    [root@server2 ~]# vim /etc/sysconfig/keepalived
    ##把KEEPALIVED_OPTIONS="-D" 修改为##KEEPALIVED_OPTIONS="-D -d -S 0"
    
    [root@server2 ~]# vim /etc/rsyslog.conf 
    ##在/etc/rsyslog.conf 末尾添加local0.*                                                /var/log/keepalived.log
    
    ##重启日志记录服务
    [root@server2 ~]# systemctl restart rsyslog 
    [root@server2 ~]# systemctl status rsyslog    ##查看状态是否开启 
    
    ##重启keepalived服务
    [root@server2 ~]# systemctl start keepalived
    [root@server2 ~]# cat /var/log/keepalived.log 
    ##日志文件已经有最新的日志记录进来了
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    image-20220803142445319

    image-20220803142633286

    image-20220803142738516

    二,配置负载调度器(备:192.168.113.129)

    1.关闭防火墙,核心防护

    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# systemctl disable firewalld
    [root@localhost ~]# setenforce 0
    
    • 1
    • 2
    • 3

    2.安装服务

    [root@localhost ~]# yum install -y ipvsadm.x86_64 keepalived.x86_64 
    
    • 1

    3.修改配置文件keeplived.conf

    [root@localhost ~]# cd /etc/keepalived/
    [root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak
    [root@localhost keepalived]# vim keepalived.conf
    ......
    global_defs {						#定义全局参数
    --10行--修改,邮件服务指向本地
    	smtp_server 127.0.0.1
    --12行--修改,指定服务器(路由器)的名称,主备服务器名称须不同,主为LVS_01,备为LVS_02
    	router_id LVS_02
    }
     
    vrrp_instance VI_1 {				#定义VRRP热备实例参数
    --20行--修改,指定热备状态,主为MASTER,备为BACKUP
        state BACKUP
    --21行--修改,指定承载vip地址的物理接口
        interface ens33
    --22行--修改,指定虚拟路由器的ID号,每个热备组保持一致	
        virtual_router_id 10
    --23行--修改,指定优先级,数值越大优先级越高,主为100,备为90
        priority 90
        advert_int 1					#通告间隔秒数(心跳频率)
        authentication {				#定义认证信息,每个热备组保持一致
    		auth_type PASS				#认证类型
    --27行--修改,指定验证密码,主备服务器保持一致
            auth_pass 666888
        }
        virtual_ipaddress {				#指定群集vip地址
            192.168.113.200
        }
    }
    --36行--修改,指定虚拟服务器地址(VIP)、端口,定义虚拟服务器和Web服务器池参数
    virtual_server 192.168.113.200 80 {
        delay_loop 6					#健康检查的间隔时间(秒)
        lb_algo rr						#指定调度算法,轮询(rr)
    --39行--修改,指定群集工作模式,直接路由(DR)
        lb_kind DR
        persistence_timeout 50			#连接保持时间(秒)
        protocol TCP					#应用服务采用的是 TCP协议
    --43行--修改,指定第一个Web节点的地址、端口
        real_server 192.168.113.126 80 {
            weight 1					#节点的权重
    --45行--删除,添加以下健康检查方式		
            TCP_CHECK {
    			connet_port 80			#添加检查的目标端口
    			connect_timeout 3		#添加连接超时(秒)
    			nb_get_retry 3			#添加重试次数
    			delay_before_retry 3	#添加重试间隔
    		}
    	}
     
    	real_server 192.168.113.125 80 {		#添加第二个 Web节点的地址、端口
            weight 1
            TCP_CHECK {
    			connet_port 80
    			connect_timeout 3
    			nb_get_retry 3
    			delay_before_retry 3
    		}
    	}
    }
    ##删除后面多余的配置##
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    14行注释掉,没截上去image-20220802210841187

    image-20220802201313782

    image-20220802192328173

    image-20220802194929352

    4.启动服务、查看虚拟网卡vip

    [root@localhost keepalived]# systemctl start keepalived
    [root@localhost keepalived]# ip addr show dev ens33 
    
    • 1
    • 2

    image-20220802202401090

    5.调整proce响应参数,关闭Linux内核的重定向参数响应

    ##最后一行添加
    [root@localhost keepalived]# vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.ens33.send_redirects = 0
    
    ##刷新查看是否配置
    [root@localhost keepalived]# sysctl -p
    net.ipv4.ip_forward = 1
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.ens33.send_redirects = 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    image-20220802202518658

    二.2,配置ipvsadm

    1.配置负载分配策略,并启动服务

    [root@localhost keepalived]# ipvsadm-save >/etc/sysconfig/ipvsadm
    [root@localhost keepalived]# systemctl start ipvsadm.service
    
    • 1
    • 2

    2.清空ipvsadm里的策略,并添加策略

    [root@localhost keepalived]# ipvsadm -C
    [root@localhost keepalived]# ipvsadm -A -t 192.168.113.200:80 -s rr
    [root@localhost keepalived]# ipvsadm -a -t 192.168.113.200:80 -r 192.168.113.126:80 -g
    [root@localhost keepalived]# ipvsadm -a -t 192.168.113.200:80 -r 192.168.113.125:80 -g
    
    • 1
    • 2
    • 3
    • 4

    3.开启ipvsadm,查看是否写入,保存

    [root@localhost keepalived]# ipvsadm
    [root@localhost keepalived]# ipvsadm -ln
    [root@localhost keepalived]# ipvsadm-save >/etc/sysconfig/ipvsadm
    
    • 1
    • 2
    • 3

    image-20220802203051833

    三,配置节点服务器web1(192.168.113.126 )

    注:配置基本一致

    1.关闭防火墙,核心防护

    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# systemctl disable firewalld
    [root@localhost ~]# setenforce 0
    
    • 1
    • 2
    • 3

    2.安装并开启httpd服务

    [root@localhost ~]# yum -y install httpd
    [root@localhost ~]# systemctl start httpd
    
    • 1
    • 2

    3.配置站点文件

    [root@localhost ~]# vim /var/www/html/index.html
    <h1>小盆友的问号</h1>
    
    • 1
    • 2

    4.配置虚拟vip

    [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
    DEVICE=lo:0
    IPADDR=192.168.113.200
    NETMASK=255.255.255.255
    NETWORK=127.0.0.0
    # If you're having problems with gated making 127.0.0.0/8 a martian,
    # you can change this to something else (255.255.255.255, for example)
    BROADCAST=127.255.255.255
    ONBOOT=yes
    NAME=loopback
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    image-20220802204637194

    5.重启网络服务,开启虚拟网卡

    [root@localhost network-scripts]# systemctl restart network
    [root@localhost network-scripts]# ifup lo:0
    [root@localhost network-scripts]# ifconfig lo:0
    
    • 1
    • 2
    • 3

    image-20220802204843669

    6.设置路由

    [root@localhost network-scripts]# route add -host 192.168.113.200 dev lo:0
    [root@localhost network-scripts]# route -n
    
    • 1
    • 2

    image-20220802204945464

    7.调整 proc 响应参数

    #添加系统只响应目的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
    
    ##刷新proc参数
    [root@localhost network-scripts]# sysctl -p
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    image-20220802205025948

    四,配置节点服务器web2(192.168.113.125 )

    注:不一样的就是HTTPD页面

    1.关闭防火墙,核心防护

    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# systemctl disable firewalld
    [root@localhost ~]# setenforce 0
    
    • 1
    • 2
    • 3

    2.安装并开启httpd服务

    [root@localhost ~]# yum -y install httpd
    [root@localhost ~]# systemctl start httpd
    
    • 1
    • 2

    3.配置站点文件

    [root@localhost ~]# vim /var/www/html/index.html
    <h1>小问号的朋友</h1>
    
    • 1
    • 2

    4.配置虚拟vip

    [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
    DEVICE=lo:0
    IPADDR=192.168.113.200
    NETMASK=255.255.255.255
    NETWORK=127.0.0.0
    # If you're having problems with gated making 127.0.0.0/8 a martian,
    # you can change this to something else (255.255.255.255, for example)
    BROADCAST=127.255.255.255
    ONBOOT=yes
    NAME=loopback
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    5.重启网络服务,开启虚拟网卡

    [root@localhost network-scripts]# systemctl restart network
    [root@localhost network-scripts]# ifup lo:0
    [root@localhost network-scripts]# ifconfig lo:0
    
    • 1
    • 2
    • 3

    6.设置路由

    [root@localhost network-scripts]# route add -host 192.168.113.200 dev lo:0
    [root@localhost network-scripts]# route -n
    
    • 1
    • 2

    7.调整 proc 响应参数

    [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
    
    ##刷新proc参数
    [root@localhost network-scripts]# sysctl -p
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    五,模拟测试

    1.模拟测试主坏了,备是否上位

    1.1当前使用的为主DR服务器,vip在主调度器上

    image-20220802205822897

    1.2备DR服务器没有

    image-20220802205920178

    1.3断开主DR,VIP不在了

    [root@server2 keepalived]# systemctl stop keepalived.service
    
    • 1

    image-20220802210036335

    1.4.查看备DR,直接接管vip

    image-20220802210151794

    1.5在开启主DR,看是否抢占会VIP,默认是抢占模式

    成功抢占

    [root@server2 keepalived]# systemctl restart keepalived.service
    
    • 1

    image-20220802210324168

    2.win10 访问测试页面

    image-20220802210438953

    image-20220802224443532

    六,LVS总结

    一,首先:LVS是什么?干啥用?在项目架构中是第几层?

    ① LVS 是具有负载均衡功能的服务之一

    ② LVS 为后端真实服务器,提供负载均衡和跳转的功能

    ③ 单台LVS 是做为L4层 负载均衡的服务 TCP协议的的负载均衡

    LVS +keepalived 组成的HA高可用集群,可以做为L7层的负载均衡

    1.L4层负载均衡和L7层负载均衡 有什么区别?

    ① L4层 就是通过TCP协议建立连接之后的ip:port接收请求和 基于IP:port 端口的转发

    ② L7层 通过TCP协议建立三次握手,通过HTTP协议传输数据,L7层负载均衡器,需要依据HTTP传输过来的请求,进行对应的跳转而,这个跳转是先基于TCP协议的传输(IP:port)+HTTP数据的输送

    如果是L4层:协议只有TCP 就是ip:port的转发

    如果是L7层:协议:TCP 三次握手、长连接 + HTTP规范的传输数据

    2.L4层转发和L7层转发有什么区别?

    简单理解: LVS 单台——》L4层 LVS+keepalived 可以基于HTTP的请求进行转发、负载均衡 ——》L7层

    二、LVS 有几种模式?如何提供负载均衡功能的(提供负载均衡功能的主要技术是什么)?使用什么来管理

    1、LVS模式

    ① LVS-NAT 模式 (地址映射)

    • 主要通过配合防火墙规则,来完成内外网的NAT映射 + ipvsadm工具的管理

    • 实现方式:基于虚拟主机(VIP:192.168.226.100)来做为访问入口 ipvsadm -A -t 192.168.226.100 -rr

    • ​ 通过LVS的功能,来定义后端“地址池” ipvsadm -a -t 192.168.226.100 -r 192.168.226.130 -m -w 1

      以L4层的方式,直接基于TCP协议的IP:port 端口进行转发

    2.LVS-NAT 模式的特性

    ​ 1) 负载均衡器和真实服务器,均在同一物理网络

    2) 接受请求、响应请求,均通过负载均衡器

    3) 内外网的映射,通过LVS服务器上的iptables的映射规则来完成

    2.1LVS-TUN 模式(隧道模式)

    LVS-TUN的特性:
    1) 贵!,因为 负载调度器和真实服务器,不在同一个物理网络,真实服务器需要公网IP的支持(公网IP要钱)

    ​ 2) 接收请求+转发请求,是由LVS负载调度器来完成的,但是响应请求,是由真实服务器直接通过隧道的方式,响应给客户

    2.2 LVS-DR 模式 (直接路由)

    ​ LVS服务器:
    1)关闭LVS负载调度器上的路由和重定向功能

    2)定义Ens33一个虚拟子接口ens33:0 来承载虚拟IP

    3)清空防火墙规则/关闭防火墙

    4)使用ipvsadm 配置虚拟IP,做为访问为入口

    5)使用ipvsadm 配置后端真实服务器的地址池+ (-g DR模式)和 rr 轮询模式,来进行转发

    小结: 就是使用ipvsadm 来控制LVS服务 使用DR模式进行转发(主要以L4层 ip:port形式实现)

    2.1 PS: 为了不让VIP虚拟地址相同的问题引起同一物理网络内路由器的ARP学习的问题和广播风暴,所以做了以下配置

    1)LVS服务器关闭路由转发和重定向功能

    2)LVS服务器的ens33网卡上,定义虚拟子接口,来承载VIP虚拟地址

    3)在真实服务器的lo 0 换回网卡上定义虚拟IP

    4)在真实服务器上定义路由禁锢+仅响应访问目标为本地的请求

    5)管理方式,依然是ipvsadm

    2.3 LVS-DR模式的特性

    1)LVS调度器仅做为接收和转发请求的入口

    2)真实服务器响应请求时,不会经过LVS调度器,而是直接返回给客户端

    3)LVS 和真实服务器在同一物理网络中

    2.4 简单描述LVS 三种工作模式简述他们的区别?

    1.NAT:通过网络地址实现的虚拟服务器,大并发访问时调度器的性能称
    为瓶颈

    2.DR:使用路由器技术来实现虚拟服务器,节点服务器需要配置VIP,注
    意MAc地址广播

    3.TUN:通过隧道的方式来实现虚以服务器

    3. real_server 真实服务器:

    1)做路由禁锢 + 定义服务器的网卡只接受目的IP/MAC是本地的请求参数配置 在/etc/sysctl.conf 中

    2)在环回网卡上定义VIP虚拟地址(192.168.226.100)

    3)网关指向LVS负载均衡器

    4)正常搭建web服务
    DR模式)和 rr 轮询模式,来进行转发

    小结: 就是使用ipvsadm 来控制LVS服务 使用DR模式进行转发(主要以L4层 ip:port形式实现)

    2.1 PS: 为了不让VIP虚拟地址相同的问题引起同一物理网络内路由器的ARP学习的问题和广播风暴,所以做了以下配置

    1)LVS服务器关闭路由转发和重定向功能

    2)LVS服务器的ens33网卡上,定义虚拟子接口,来承载VIP虚拟地址

    3)在真实服务器的lo 0 换回网卡上定义虚拟IP

    4)在真实服务器上定义路由禁锢+仅响应访问目标为本地的请求

    5)管理方式,依然是ipvsadm

    2.3 LVS-DR模式的特性

    1)LVS调度器仅做为接收和转发请求的入口

    2)真实服务器响应请求时,不会经过LVS调度器,而是直接返回给客户端

    3)LVS 和真实服务器在同一物理网络中

    2.4 简单描述LVS 三种工作模式简述他们的区别?

    1.NAT:通过网络地址实现的虚拟服务器,大并发访问时调度器的性能称
    为瓶颈

    2.DR:使用路由器技术来实现虚拟服务器,节点服务器需要配置VIP,注
    意MAc地址广播

    3.TUN:通过隧道的方式来实现虚以服务器

    3. real_server 真实服务器:

    1)做路由禁锢 + 定义服务器的网卡只接受目的IP/MAC是本地的请求参数配置 在/etc/sysctl.conf 中

    2)在环回网卡上定义VIP虚拟地址(192.168.226.100)

    3)网关指向LVS负载均衡器

    4)正常搭建web服务

  • 相关阅读:
    给出n个学生的考试成绩表,每条信息由姓名与分数组成,试设计一算法:
    java中对象和json格式相互序列化和反序列化的函数
    靶场战神为何会陨落?
    win10打不开蓝牙,怎么办?几招解决
    Spring Boot 中Mybatis使用Like的使用方式和注意点
    安装React脚手架
    Word控件Spire.Doc 【页面设置】教程(1):在C#/VB.NET:在 Word 文档中插入分页符
    七分钟交友匿名聊天室源码
    Database之SQL:SQL在线编程、工作中常用SQL代码实践(以语法为导向的增、删、改、查,已基本涵盖所有语法案例)之详细攻略
    9. SQL中Insert into/Update/Delete的用法
  • 原文地址:https://blog.csdn.net/weixin_61269220/article/details/126150614