Keepalive技术

目录

        一、VRRP技术

        1.1 概述

        1.2 工作原理

        二、keepalive技术

        2.1 介绍

        2.2 Keepalived 架构

        三、实验配置

        3.1 实验配置准备

        3.2 主服务器配置

         3.3 备用服务器配置

        3.4 模拟故障

         3.5 配置节点服务器


        一、VRRP技术

        1.1 概述

           VRRP是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台。控制虚拟路由器 IP 地址的 VRRP 路由器称为主路由器,它负责转发数据包到这些虚拟 IP 地址。一旦主路由器不可用,这种选择过程就提供了动态的故障转移机制,这就允许虚拟路由器的 IP 地址可以作为终端主机的默认第一跳路由器。

        1.2 工作原理

        通过冗余网关间共享虚拟MAC和IP地址,保证数据转发时并不是转发给某一个具体IP而是把数据给虚拟局域网网关的IP,因此,不论哪个路由器成为主路由都不会影响通讯,通过组播协议对数据端口进行监控,一旦检测数据转发端口坏掉,主路由停发HELLO包,备份路由提升为主路由,实现数据的稳定转发。

       缺点:虽然有备份冗余功能但是对机器的性能要求非常高,当其中一台出现故障,本来一台运行一个任务,现在所有的业务全部压在了一台上,有十分大的风险

        二、keepalive技术

        2.1 介绍

        基于vrrp协议完成地址流动

        为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)

        为ipvs集群的各RS做健康状态检测

        基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持nginx、haproxy等服务

        2.2 Keepalived 架构

        

 

vrrp stackVIP消息通告
checkers监测real server(简单来说 就是监控后端真实服务器的服务)
system call实现 vrrp 协议状态转换时调用脚本的功能
SMTP邮件组件(报警邮件)
IPVS wrapper生成IPVS规则(直接生成ipvsadm)
Netlink Reflector网络接口(将虚拟地址ip(vip)地址飘动)

        三、实验配置

        3.1 实验配置准备

主keepalived:192.168.162.100
备keepalived:192.168.162.111
web1:192.168.162.101
web2:192.168.162.121
vip:192.168.162.11
客户机访问

##关闭防火墙
[root@localhost ~]#systemctl stop firewalld.service 
[root@localhost ~]#setenforce 0
##在主备服务器上安装keepalive
[root@localhost ~]#yum install ipvsadm keepalived -y

##加载模块,并查看是否存在
[root@localhost yum.repos.d]# modprobe ip_vs
[root@localhost yum.repos.d]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@localhost yum.repos.d]# 

        3.2 主服务器配置

##切换到此目录下
[root@lppdff ~]# cd /etc/keepalived/

##拷贝此配置文件并查看
[root@lppdff keepalived]# cp keepalived.conf{,.bak}
[root@lppdff keepalived]# ls
keepalived.conf  keepalived.conf.bak
[root@lppdff keepalived]# 

##修改配置文件
[root@lppdff keepalived]# vim keepalived.conf
##修改第十行
 10    smtp_server 127.0.0.1

 21     interface ens33

 30     192.168.162.11    ##虚拟地址,需要提前设定
 
 37     lb_kind DR ##修改模式

##修改虚拟地址记录

 41     real_server 192.168.162.100 80 {
 42         weight 1
 43         TCP_CHECK {
 44             connect_port 80
 45             connect_timeout 3
 46             nb_get_retry 3
 47             delay_before_retry 3
 48         }
 49     }
 50 }
##添加提供web服务的地址

 34 virtual_server 192.168.162.11 80 {
 35     delay_loop 6
 36     lb_algo rr
 37     lb_kind DR
 38     persistence_timeout 0
 39     protocol TCP
 40 
 41     real_server 192.168.162.101 80 {
 42         weight 1
 43         TCP_CHECK {
 44             connect_port 80
 45             connect_timeout 3
 46             nb_get_retry 3
 47             delay_before_retry 3
 48         }
 49     }
 50     real_server 192.168.162.121 80 {
 51         weight 1
 52         TCP_CHECK {
 53             connect_port 80
 54             connect_timeout 3
 55             nb_get_retry 3
 56             delay_before_retry 3
 57         }   
 58     }   
 59 }  

##添加配置记录
[root@localhost keepalived]#vim /etc/sysctl.conf 
[root@localhost keepalived]#sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0 


        

         重启服务,并查看是否具有记录

##启动ipvsadm

[root@lppdff keepalived]# ipvsadm-save >/etc/sysconfig/ipvsadm
[root@lppdff keepalived]# systemctl start ipvsadm.service 

[root@lppdff keepalived]# systemctl restart keepalived.service
[root@lppdff keepalived]# ipvsadm -ln

 

         拷贝文件给备用keepalive服务器

##此过程需要输入密码
[root@lppdff keepalived]# scp keepalived.conf root@192.168.162.111:/etc/keepalived/
[root@lppdff keepalived]# scp /etc/sysctl.conf root@192.168.162.111:/etc/keepalived/
[root@lppdff keepalived]# 

        备用服务器验证

         3.3 备用服务器配置

 [root@localhost keepalived]# vim keepalived.conf

##启动ipvsadm
[root@localhost keepalived]# ipvsadm-save >/etc/sysconfig/ipvsadm
[root@localhost keepalived]# systemctl start ipvsadm.service

##添加记录
[root@localhost keepalived]# 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 

        启动服务,查看结果

[root@localhost keepalived]# systemctl start keepalived.service 
[root@localhost keepalived]# ipvsadm -ln

        3.4 模拟故障

        如果keepalive主宕机备份机是否可以顶上主服务器使用

##在keepalive主服务器关闭服务
[root@lppdff keepalived]# systemctl stop keepalived.service

        客户机抓包查看(抢占模式)

         重启主服务器

[root@lppdff keepalived]# systemctl start keepalived.service

 再次抓包时出现主服务器地址

         3.5 配置节点服务器

##俩台节点服务器安装http服务
[root@localhost ~]# yum install httpd -y
##添加虚拟网卡地址
[root@localhost /]# ifconfig lo:0 192.168.162.11 netmask 255.255.255.255
##指明路由
[root@localhost /]# route add -host 192.168.162.11 dev lo:0

##修改配置文件添加记录
[root@localhost /]# 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 /]# vim /var/www/html/index.html
##重启服务
[root@localhost /]# systemctl start httpd.service

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值