高可用集群KEEPALIVED

莱莱  金牌会员 | 2024-9-18 13:14:17 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 835|帖子 835|积分 2505

目录

一、集群相干概念简述
1、集群的分类
2.系统可用性的计算公式
 3.系统故障
 4.实现高可用
二.keepalived
1.Keepalived介绍
2.keepalived相干概念 
3.VRRP协议与工作原理 
VRRP相干术语 
 VRRP相干技术
 4.keepalived功能
 5.Keepalived体系结构
 6.keepalived环境准备
7.keepalived相干配置文件
安装软件包
配置文件参数详解
全局配置
配置虚拟路由器
keepalived虚拟路由管理
keepalived虚拟路由的通讯设定
keepalived日记独立
keepalived独立子配置文件
keepalived非抢占和延迟抢占
非抢占模式 nopreempt
延迟抢占preempt_delay
VIP单播配置
 组播变单播实验
邮件通知
实现 Keepalived 状态切换的通知脚本
通知脚本类型
脚本的调用方法
创建通知脚本
实现 master/master 的 Keepalived 双主架构
实现IPVS的高可用
IPVS相干配置
虚拟服务器配置结构
virtual server (虚拟服务器)的界说格式
虚拟服务器配置
应用层监测
TCP监测
实战案例
keepalived+lvs实现高可用
实现HAProxy高可用
实现别的应用的高可用性 VRRP Script
VRRP Script 配置 
界说 VRRP script
调用 VRRP script
使用脚本实现主从角色切换
实战案例
haproxy+keepalived实现高可用


一、集群相干概念简述

HA是High Available缩写,是双机集群系统简称,指高可用性集群,是保证业务连续性的有效办理方案,一般有两个或两个以上的节点,且分为运动节点及备用节点。
1、集群的分类

   

  • LB:负载均衡集群

    • lvs负载均衡
    • nginx反向署理
    • HAProxy

  • HA:高可用集群

    • heartbeat
    • keepalived
    • redhat5 : cman + rgmanager , conga(WebGUI) --> RHCS(Cluster Suite)集群套件
    • redhat6 : cman + rgmanager , corosync + pacemaker
    • redhat7 : corosync + pacemaker
    • 数据库,redis

  • HPC:高性能集群
  • SPoF: Single Point of Failure,办理单点故障
  2.系统可用性的计算公式

   SLA:Service-Level Agreement 服务等级协议(提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的两边共同认可的协议或左券)
  1. A=MTBF/(MTBF+MTTR)
复制代码
  

  • A:高可用性,指标:95%, 99%, 99.5%, ...., 99.999%,99.9999%等
  • MTBF:平均无故障时间
  • MTTR:平均修复时间
   3.系统故障

      硬件故障:设计缺陷、   wear out   (消耗)、非人为不可抗拒因素        软件故障:设计缺陷    bug      4.实现高可用

   提升系统高用性的办理方案:降低  MTTR- Mean Time To Repair(  平均故障时间  )     办理方案:建立冗余机制         active/passive    主   /   备        active/active    双主        active --> HEARTBEAT --> passive        active <--> HEARTBEAT <--> active    二.keepalived

1.Keepalived介绍

    Keepalived是Linux下一个轻量级别的高可用办理方案。高可用(High Avalilability,HA),其实两种不同的寄义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接受,
     它与HeartBeat RoseHA 实现相同类似的功能,都可以实现服务大概网络的高可用,但是又有差异,HeartBeat是一个专业的、功能美满的高可用软件,它提供了HA 软件所需的根本功能,比如:心跳检测、资源接受,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。HeartBeat功能强盛,但是部署和使用相对比力贫苦,
  与HeartBeat相比,Keepalived重要是通过虚拟路由冗余来实现高可用功能,虽然它没有HeartBeat功能强盛,但是Keepalived部署和使用非常的简单,所有配置只必要一个配置文件即可以完成,
    Keepalived早先是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层互换机制检测每个服务节点的状态,如果某个服务器节点出现非常,大概工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是主动完成的,不必要人工干涉,必要人工完成的只是修复出现故障的服务节点。
    厥后Keepalived又加入了VRRP的功能,VRRP(Vritrual Router Redundancy Protocol,虚拟路由冗余协议)出现的目的是办理静态路由出现的单点故障问题,通过VRRP可以实现网络不中断稳定运行,因此Keepalvied 一方面具有服务器状态检测和故障隔离功能,另外一方面也有HA cluster功能.
  2.keepalived相干概念 

   

  • vrrp协议:Virtual Redundant Routing Protocol 虚拟冗余路由协议
  • Virtual Router:虚拟路由器
  • VRID(0-255):虚拟路由器标识
  • master:主装备,当前工作的装备
  • backup:备用装备
  • priority:优先级,优先级越大优先工作,详细情况示工作方式决定
  • VIP:虚拟IP地址,正真向客户服务的IP地址
  • VMAC:虚拟MAC地址(00-00-5e-00-01-VRID)
  • 抢占式:如果有优先级高的节点上线,则将此节点转为master
  • 非抢占式:纵然有优先级高的节点上线,在当前master工作无故障的情况运行抢占;等到此master故障后重新按优先级推选master
  • 心跳:master将自己的心跳信息通知集群内的所有主机,证明自己正常工作
  • 安全认证机制:

    • 无认证:任何主机都可成为集群内主机,强烈不推荐
    • 简单的字符认证:使用简单的密码进行认证
    • AH认证

  • sync group:同步组,VIP和DIP配置到同一物理服务器上
  • MULTICAST:组播,多播
  • Failover:master故障,故障切换,故障转移
  • Failback:故障节点重新上线,故障切回
  3.VRRP协议与工作原理 

在实际的网络环境中。主机之间的通讯都是通过配置静态路由大概(默认网关)来完成的,而主机之间的路由器一旦发生故障,通讯就会失效,因此这种通讯模式当中,路由器就成了一个单点瓶颈,为了办理这个问题,就引入了VRRP协议。
   
  VRRP可以将两台大概多台物理路由器装备虚拟成一个虚拟路由,这个虚拟路由器通过虚拟IP(一个大概多个)对外提供服务,而在虚拟路由器内部十多个物理路由器协同工作,同一时间只有一台物理路由器对外提供服务,这台物理路由装备被成为:主路由器(Master角色),一般情况下Master是由推选算法产生,它拥有对外服务的虚拟IP,提供各种网络功能,如:ARP请求,ICMP 数据转发等,而且别的的物理路由器不拥有对外的虚拟IP,也不提供对外网络功能,仅仅接收MASTER的VRRP状态告示信息,这些路由器被统称为“BACKUP的角色”,当主路由器失败时,处于BACKUP角色的备份路由器将重新进行推选,产生一个新的主路由器进入MASTER角色,继续提供对外服务,整个切换对用户来说是完全透明的。
  
     每个虚拟路由器都有一个唯一的标识号,称为VRID,一个VRID与一组IP地址构成一个虚拟路由器,在VRRP协议中,所有的报文都是通过IP多播方式发送的,而在一个虚拟路由器中,只有处于Master角色的路由器会一直发送VRRP数据包,处于BACKUP角色的路由器只会接受Master角色发送过来的报文信息,用来监控Master运行状态,一一般不会发生BACKUP抢占的情况,除非它的优先级更高,而当MASTER不可用时,BACKUP也就无法收到Master发过来的信息,于是就认定Master出现故障,接着多台BAKCUP就会进行推选,优先级最高的BACKUP将称为新的MASTER,这种推选角色切换非常之快,因而保证了服务的连续可用性。
  VRRP相干术语 

   VRRP路由器:实行VRRP协议一个或多个实例的路由器
  
  虚拟路由器:由一个Master路由器和多个Backup路由器组成。当中,不管Master路由器还是Backup路由器都是一台VRRP路由器,下行装备将虚拟路由器当做默认网关。
  
  VRID:虚拟路由器标识,在同一个VRRP组内的路由器必须有相同的VRID,究竟上VRID就相称于一个公司的名称,每一个员工介绍自己时都要包括公司名称,表明自己是公司的一员,相同的原理,VRID表明白这个路由器属于这个VRRP组。
  
  Master路由器:虚拟路由器中负担流量转发使命的路由器
  
  Backup路由器:当一个虚拟路由器中的Master路由器出现问题时,可以取代Master路由器工作的路由器
  
  虚拟IP地址:虚拟路由器的IP地址,一个虚拟路由器能够拥有一个或多个虚拟IP地址。
  
  IP地址拥有者:接口IP和虚拟路由器IP地址同样的路由器就叫做IP地址拥有者。
  
  主IP地址:从物理接口设置的IP地址中选择,一个选择规则是总是选用第一个IP地址,VRRP告示报文总是用主IP地址作为该报文IP包头的源IP。
  
  虚拟MAC地址:组成方式是00-00-5E-00-01-{VRID},前三个字节00-00-5E是IANA组织分配的,接下来的两个字节00-01是为VRRP协议指定的,最后的VRID是虚拟路由器标识,取值范围[1,255]
   VRRP相干技术

   
     告示:心跳,优先级等;周期性        工作方式:抢占式,非抢占式        安全认证:        无认证        简单字符认证:预共享密钥        MD5        工作模式:        主   /   备:单虚拟路由器        主   /   主:主   /   备(虚拟路由器   1   ),备   /   主(虚拟路由器   2   )     4.keepalived功能

      vrrp    协议的软件实现,原生设计目的为了高可用    ipvs   服务        官网:   http://keepalived.org/        功能:        基于   vrrp   协议完成地址流动        为   vip   地址所在的节点生成   ipvs   规则   (   在配置文件中预先界说   )        为   ipvs   集群的各   RS   做康健状态检测        基于脚本调用接口完成脚本中界说的功能,进而影响集群事务,以此支持   nginx   、   haproxy   等服务      5.Keepalived体系结构



   Keepalived早先是为LVS设计的,由于Keeplalived可以实现对集群节点的状态检测,而IPVS可以实现负载均衡功能,因此,Keepalived借助于第三方模块IPVS就可以很方便地搭建一套负载均衡系统,在这里有个误区,由于Keepalived可以和IPVS一起很好的工作,所以会有人以为Keepalived就是一个负载均衡软件,这种理解是错误,
  在Keepalived当中IPVS模块是可配置的,如果必要负载均衡功能,可以在编译Keepalived时开打负载均衡功能,也可以通过编译参数关闭。
     NetLINK模块重要用于实现一些高级路由框架和一些相干参数的网络功能,完成用户空间层Netlink Reflector模块发来的各种网络请求。
      这个图我们可以看到用户空间层(user space),是建立在内核空间层之上的(kernel sapce),
    用户空间层,重要有4个部分
         Scheduler I/O Multiplexer 是一个I/O复用分发调度器,它负载安排Keepalived所有内部的使命请求,
         Memory Mngt 是一个内存管理机制,这个框架提供了访问内存的一些通用方法       
         Control Plane  是keepalived的控制版面,可以实现对配置文件编译和解析
         Core componets  这部分重要掩护了下面5个部分
               1.Watchdog:是计算机可靠领域中极为简单又非常有效的检测工具,Keepalived正是通过它监控Checkers和VRRP进程的。
               2.Checkers: 这是Keepalived最基础的功能,也是最重要的功能,可以实现对服务器运行状态检测和故障隔离。
               3.VRRP Stack: 这时keepalived厥后引用VRRP功能,可以实现HA集群中失败切换功能。
               4.IPVS wrapper: 这个是IPVS功能的一个实现,IPVS warrper模块将可以设置好的IPVS规则发送的内核空间而且提供给IPVS模块,终极实现IPVS模块的负载功能。
               5.Netlink Reflector:用来实现高可用集群Failover时虚拟IP(VIP)的设置和切换 ,
  Netlink Reflector的所有请求最后都发送到内核空间层的NETLINK 模块来完成。
   6.keepalived环境准备


要求:各节点时间必须同步:ntp,chrony, 关闭防火墙和selinux 
7.keepalived相干配置文件

  1. 软件包名:keepalived
  2. 主程序文件:/usr/sbin/keepalived
  3. 主配置文件:/etc/keepalived/keepalived.conf
  4. 配置文件示例:/usr/share/doc/keepalived/
  5. Unit File:/lib/systemd/system/keepalived.service
  6. Unit File的环境配置文件:/etc/sysconfig/keepalived
复制代码
安装软件包

  1. # yum install keepalived
复制代码
配置文件参数详解

全局配置

  1. ! Configuration File for keepalived
  2. global_defs {
  3. notification_email {
  4. 594233887@qq.com #keepalived 发生故障切换时邮件发送的目标邮箱,可以按行区分写多个
  5. timiniglee-zln@163.com
  6. }
  7. notification_email_from keepalived@KA1.timinglee.org #发邮件的地址
  8. smtp_server 127.0.0.1 #邮件服务器地址
  9. smtp_connect_timeout 30 #邮件服务器连接timeout
  10. router_id KA1.timinglee.org #每个keepalived主机唯一标识
  11. #建议使用当前主机名,但多节点重名不影响
  12. vrrp_skip_check_adv_addr #对所有通告报文都检查,会比较消耗性能
  13. #启用此配置后,如果收到的通告报文和上一个报文是同一 #个路由器,则跳过检查,默认值为全检查
  14. vrrp_strict #严格遵循vrrp协议
  15.             #启用此项后以下状况将无法启动服务:
  16.             #1.无VIP地址
  17.             #2.配置了单播邻居
  18.             #3.在VRRP版本2中有IPv6地址
  19.             #建议不加此项配置
  20. vrrp_garp_interval 0 #报文发送延迟,0表示不延迟
  21. vrrp_gna_interval 0 #消息发送延迟
  22. vrrp_mcast_group4 224.0.0.18 #指定组播IP地址范围:
  23. }
复制代码
配置虚拟路由器

  1. vrrp_instance VI_1 {
  2. state MASTER
  3. interface eth0 #绑定为当前虚拟路由器使用的物理接口,如:eth0,可以和VIP不在一个网卡
  4. virtual_router_id 51 #每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一
  5.                      #否则服务无法启动
  6.                      #同属一个虚拟路由器的多个keepalived节点必须相同
  7.                      #务必要确认在同一网络中此值必须唯一
  8. priority 100         #当前物理节点在此虚拟路由器的优先级,范围:1-254
  9.                      #值越大优先级越高,每个keepalived主机节点此值不同
  10. advert_int 1         #vrrp通告的时间间隔,默认1s
  11. authentication {     #认证机制
  12. auth_type AH|PASS    #AH为IPSEC认证(不推荐),PASS为简单密码(建议使用)
  13. uth_pass 1111        #预共享密钥,仅前8位有效
  14.                      #同一个虚拟路由器的多个keepalived节点必须一样
  15. }
  16. virtual_ipaddress {     #虚拟IP,生产环境可能指定上百个IP地址
  17. <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
  18. 172.25.254.100     #指定VIP,不指定网卡,默认为eth0,注意:不指定/prefix,默认32
  19. 172.25.254.101/24 dev eth1
  20. 172.25.254.102/24 dev eth2 label eth2:1
  21. }
  22. }
复制代码
keepalived虚拟路由管理

实验环境
装备角色IP
ka1keepalived1192.168.10.170/24
ka2keepalived2192.168.19.180/24
webserver1real server192.168.10.220/24
webserver2real server192.168.10.230/24
 注:vip设置为192.168.10.240/24
四台主机全部关闭防火墙和selinux
webserver1,webserver2上安装web服务,后面的测试可以更加清楚的看出结果
  1. [root@webserver1 ~]# yum install httpd -y
  2. [root@webserver1 ~]# echo webserver1 - 192.168.10.220 > /var/www/html/index.html
  3. [root@webserver1 ~]# systemctl restart httpd.service
  4. [root@webserver1 ~]# curl 192.168.10.220
  5. webserver1 - 192.168.10.220
复制代码
  1. [root@webserver2 ~]# yum install httpd -y
  2. [root@webserver2 ~]# echo webserver2 - 192.168.10.230 > /var/www/html/index.html
  3. [root@webserver2 ~]# systemctl restart httpd.service
  4. [root@webserver2 ~]# curl 192.168.10.230
  5. webserver2 - 192.168.10.230
复制代码
ka1,ka2上安装keepalived软件包
  1. [root@ka1 ~]# yum install keepalived
  2. -y
复制代码
  1. [root@ka2 ~]# yum install keepalived
  2. -y
复制代码
在ka1上进行配置
  1. [root@ka1 ~]# vim /etc/keepalived/keepalived.conf
  2. # 全局设定
  3. global_defs {
  4.    notification_email {
  5.      2948250195@qq.com       # 发送邮件通知给谁
  6.    }
  7.    notification_email_from keep@li.org    #发送的邮件从哪来
  8.    smtp_server 127.0.0.1                # 邮件服务器ip
  9.    smtp_connect_timeout 30              # 连接邮件服务器的超时时间
  10.    router_id ka1                        # 虚拟路由的id
  11.    vrrp_skip_check_adv_addr             # 同一来源的只检测一次
  12. #   vrrp_strict                         # 强制使用vrrp协议
  13.    vrrp_garp_interval 0                 
  14.    vrrp_gna_interval 0
  15.    vrrp_mcast_group4 224.0.0.18        # 接收通告数据的IP地址(组播地址)
  16. }
  17. # 虚拟路由器配置
  18. vrrp_instance VI_1 {
  19.     state MASTER                 # 主设备
  20.     interface ens33              # vip使用的真实设备是谁
  21.     virtual_router_id 100        # 虚拟路由id(唯一的)
  22.     priority 100                 # 优先级
  23.     advert_int 1
  24.     authentication {
  25.         auth_type PASS           # 发通告带的信息
  26.         auth_pass 1111
  27.     }
  28.     virtual_ipaddress {            # vip id     # 设定网卡子接口
  29.         192.168.10.240/24 dev ens33 label ens33:0
  30.     }
  31. }
复制代码
  1. [root@ka1 ~]# systemctl restart keepalived.service
  2. # 重启服务
复制代码
  1. [root@ka1 ~]# ifconfig
  2. ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  3.         inet 192.168.10.170  netmask 255.255.255.0  broadcast 192.168.10.255
  4.         inet6 fe80::20c:29ff:feea:fe5a  prefixlen 64  scopeid 0x20<link>
  5.         ether 00:0c:29:ea:fe:5a  txqueuelen 1000  (Ethernet)
  6.         RX packets 88607  bytes 6246698 (5.9 MiB)
  7.         RX errors 0  dropped 0  overruns 0  frame 0
  8.         TX packets 65079  bytes 4618871 (4.4 MiB)
  9.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  10. ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  11.         inet 192.168.10.240  netmask 255.255.255.0  broadcast 0.0.0.0
  12.         ether 00:0c:29:ea:fe:5a  txqueuelen 1000  (Ethernet)
  13. # vip 为 192.168.10.240
复制代码
ka2和ka1配置相同,所以我们可以使用scp,进行复制
  1. [root@ka1 ~]# scp /etc/keepalived/keepalived.conf  root@192.168.10.180:/etc/keepalived/keepalived.conf
  2. The authenticity of host '192.168.10.180 (192.168.10.180)' can't be established.
  3. ECDSA key fingerprint is SHA256:Yrid63PgwDQh7wiaQmCGsLuxK3Cht8v/wekHTAza/XI.
  4. ECDSA key fingerprint is MD5:d7:be:70:41:82:ff:81:40:5b:a7:40:10:d1:0c:ca:bf.
  5. Are you sure you want to continue connecting (yes/no)? yes
  6. Warning: Permanently added '192.168.10.180' (ECDSA) to the list of known hosts.
  7. root@192.168.10.180's password:
  8. keepalived.conf                                           100% 4143     4.5MB/s   00:00   
复制代码
唯一要变的就是我们将ka1当作主装备,ka2当作从,使用必要改两个配置
  1. [root@ka1 ~]# vim /etc/keepalived/keepalived.conf
  2. vrrp_instance VI_1 {
  3.     state BACKUP                 # 从设备
  4.     interface ens33              # vip使用的真实设备是谁
  5.     virtual_router_id 100        # 虚拟路由id(唯一的)
  6.     priority 80                 # 优先级改为80,两个设备优先级不一样
  7.     advert_int 1
  8.     authentication {
  9.         auth_type PASS           # 发通告带的信息
  10.         auth_pass 1111
  11.     }
  12.     virtual_ipaddress {            # vip id     # 设定网卡子接口
  13.         192.168.10.240/24 dev ens33 label ens33:0
  14.     }
  15. }
复制代码
  1. [root@ka2 ~]# systemctl restart keepalived.service
复制代码
测试:
  1. [root@ka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18
  2. [root@ka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18
  3. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  4. listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
  5. 19:06:36.826789 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
  6. 19:06:37.828337 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
  7. 19:06:38.829688 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
  8. 19:06:39.831263 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
  9. 19:06:40.832678 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
  10. 19:06:41.833834 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
  11. # 使用tcpdump进行抓包
  12. # -i 就是ens33接收到底数据
  13. # -nn 表示不做解析
  14. # host指定观察的那个ip
  15. # 224.0.0.18 组播地址
复制代码
ka1的优先级高于ka2所以正常情况看不到ka2的数据。若此时ka1发生故障,ka2则会敏捷补上,此时在ka1上的vip也会跑到ka2上
  1. [root@ka1 ~]# systemctl stop keepalived.service
  2. [root@ka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18
  3. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  4. listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
  5. 19:09:39.386202 IP 192.168.10.180 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20
  6. 19:09:40.387629 IP 192.168.10.180 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20
  7. 19:09:41.388011 IP 192.168.10.180 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20
  8. 19:09:42.389522 IP 192.168.10.180 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20
  9. 19:09:43.390689 IP 192.168.10.180 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20
  10. 19:09:44.391255 IP 192.168.10.180 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 80, authtype simple, intvl 1s, length 20
复制代码
  1. [root@ka2 ~]# ifconfig
  2. ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  3.         inet 192.168.10.180  netmask 255.255.255.0  broadcast 192.168.10.255
  4.         inet6 fe80::20c:29ff:fe2c:7bd  prefixlen 64  scopeid 0x20<link>
  5.         ether 00:0c:29:2c:07:bd  txqueuelen 1000  (Ethernet)
  6.         RX packets 119533  bytes 8259027 (7.8 MiB)
  7.         RX errors 0  dropped 0  overruns 0  frame 0
  8.         TX packets 39657  bytes 3009635 (2.8 MiB)
  9.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  10. ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  11.         inet 192.168.10.240  netmask 255.255.255.0  broadcast 0.0.0.0
  12.         ether 00:0c:29:2c:07:bd  txqueuelen 1000  (Ethernet)
复制代码
因为默认是抢占模式,当ka1好了之后,vip则会跑到ka1上,流量也会回到ka1上
  1. [root@ka1 ~]# systemctl start keepalived.service
  2. [root@ka1 ~]# ifconfig
  3. ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  4.         inet 192.168.10.170  netmask 255.255.255.0  broadcast 192.168.10.255
  5.         inet6 fe80::20c:29ff:feea:fe5a  prefixlen 64  scopeid 0x20<link>
  6.         ether 00:0c:29:ea:fe:5a  txqueuelen 1000  (Ethernet)
  7.         RX packets 92906  bytes 6566009 (6.2 MiB)
  8.         RX errors 0  dropped 0  overruns 0  frame 0
  9.         TX packets 67173  bytes 4781344 (4.5 MiB)
  10.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  11. ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  12.         inet 192.168.10.240  netmask 255.255.255.0  broadcast 0.0.0.0
  13.         ether 00:0c:29:ea:fe:5a  txqueuelen 1000  (Ethernet)
复制代码
  1. [root@ka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18
  2. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
  3. listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
  4. 19:13:06.604998 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
  5. 19:13:07.605229 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
  6. 19:13:08.605816 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
  7. 19:13:09.606386 IP 192.168.10.170 > 224.0.0.18: VRRPv2, Advertisement, vrid 100, prio 100, authtype simple, intvl 1s, length 20
复制代码
keepalived虚拟路由的通讯设定

此时ka1,ka2是ping不通vip的,因为防止被攻击,所有的数据流量打过来后大概会有恶意攻击,我们终极的数据流量是要转到real server上的,所以他默认会把你的vip访问功能给

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表