目录
一、集群相干概念简述
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 服务等级协议(提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的两边共同认可的协议或左券)
- 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相干配置文件
- 软件包名:keepalived
- 主程序文件:/usr/sbin/keepalived
- 主配置文件:/etc/keepalived/keepalived.conf
- 配置文件示例:/usr/share/doc/keepalived/
- Unit File:/lib/systemd/system/keepalived.service
- Unit File的环境配置文件:/etc/sysconfig/keepalived
复制代码 安装软件包
配置文件参数详解
全局配置
- ! Configuration File for keepalived
- global_defs {
- notification_email {
- 594233887@qq.com #keepalived 发生故障切换时邮件发送的目标邮箱,可以按行区分写多个
- timiniglee-zln@163.com
- }
- notification_email_from keepalived@KA1.timinglee.org #发邮件的地址
- smtp_server 127.0.0.1 #邮件服务器地址
- smtp_connect_timeout 30 #邮件服务器连接timeout
- router_id KA1.timinglee.org #每个keepalived主机唯一标识
- #建议使用当前主机名,但多节点重名不影响
- vrrp_skip_check_adv_addr #对所有通告报文都检查,会比较消耗性能
- #启用此配置后,如果收到的通告报文和上一个报文是同一 #个路由器,则跳过检查,默认值为全检查
- vrrp_strict #严格遵循vrrp协议
- #启用此项后以下状况将无法启动服务:
- #1.无VIP地址
- #2.配置了单播邻居
- #3.在VRRP版本2中有IPv6地址
- #建议不加此项配置
- vrrp_garp_interval 0 #报文发送延迟,0表示不延迟
- vrrp_gna_interval 0 #消息发送延迟
- vrrp_mcast_group4 224.0.0.18 #指定组播IP地址范围:
- }
复制代码 配置虚拟路由器
- vrrp_instance VI_1 {
- state MASTER
- interface eth0 #绑定为当前虚拟路由器使用的物理接口,如:eth0,可以和VIP不在一个网卡
- virtual_router_id 51 #每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一
- #否则服务无法启动
- #同属一个虚拟路由器的多个keepalived节点必须相同
- #务必要确认在同一网络中此值必须唯一
- priority 100 #当前物理节点在此虚拟路由器的优先级,范围:1-254
- #值越大优先级越高,每个keepalived主机节点此值不同
- advert_int 1 #vrrp通告的时间间隔,默认1s
- authentication { #认证机制
- auth_type AH|PASS #AH为IPSEC认证(不推荐),PASS为简单密码(建议使用)
- uth_pass 1111 #预共享密钥,仅前8位有效
- #同一个虚拟路由器的多个keepalived节点必须一样
- }
- virtual_ipaddress { #虚拟IP,生产环境可能指定上百个IP地址
- <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
- 172.25.254.100 #指定VIP,不指定网卡,默认为eth0,注意:不指定/prefix,默认32
- 172.25.254.101/24 dev eth1
- 172.25.254.102/24 dev eth2 label eth2:1
- }
- }
复制代码 keepalived虚拟路由管理
实验环境
装备 | 角色 | IP | ka1 | keepalived1 | 192.168.10.170/24 | ka2 | keepalived2 | 192.168.19.180/24 | webserver1 | real server | 192.168.10.220/24 | webserver2 | real server | 192.168.10.230/24 | 注:vip设置为192.168.10.240/24
四台主机全部关闭防火墙和selinux
webserver1,webserver2上安装web服务,后面的测试可以更加清楚的看出结果
- [root@webserver1 ~]# yum install httpd -y
- [root@webserver1 ~]# echo webserver1 - 192.168.10.220 > /var/www/html/index.html
- [root@webserver1 ~]# systemctl restart httpd.service
- [root@webserver1 ~]# curl 192.168.10.220
- webserver1 - 192.168.10.220
复制代码- [root@webserver2 ~]# yum install httpd -y
- [root@webserver2 ~]# echo webserver2 - 192.168.10.230 > /var/www/html/index.html
- [root@webserver2 ~]# systemctl restart httpd.service
- [root@webserver2 ~]# curl 192.168.10.230
- webserver2 - 192.168.10.230
复制代码 ka1,ka2上安装keepalived软件包
- [root@ka1 ~]# yum install keepalived
- -y
复制代码- [root@ka2 ~]# yum install keepalived
- -y
复制代码 在ka1上进行配置
- [root@ka1 ~]# vim /etc/keepalived/keepalived.conf
- # 全局设定
- global_defs {
- notification_email {
- 2948250195@qq.com # 发送邮件通知给谁
- }
- notification_email_from keep@li.org #发送的邮件从哪来
- smtp_server 127.0.0.1 # 邮件服务器ip
- smtp_connect_timeout 30 # 连接邮件服务器的超时时间
- router_id ka1 # 虚拟路由的id
- vrrp_skip_check_adv_addr # 同一来源的只检测一次
- # vrrp_strict # 强制使用vrrp协议
- vrrp_garp_interval 0
- vrrp_gna_interval 0
- vrrp_mcast_group4 224.0.0.18 # 接收通告数据的IP地址(组播地址)
- }
- # 虚拟路由器配置
- vrrp_instance VI_1 {
- state MASTER # 主设备
- interface ens33 # vip使用的真实设备是谁
- virtual_router_id 100 # 虚拟路由id(唯一的)
- priority 100 # 优先级
- advert_int 1
- authentication {
- auth_type PASS # 发通告带的信息
- auth_pass 1111
- }
- virtual_ipaddress { # vip id # 设定网卡子接口
- 192.168.10.240/24 dev ens33 label ens33:0
- }
- }
复制代码- [root@ka1 ~]# systemctl restart keepalived.service
- # 重启服务
复制代码- [root@ka1 ~]# ifconfig
- ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.10.170 netmask 255.255.255.0 broadcast 192.168.10.255
- inet6 fe80::20c:29ff:feea:fe5a prefixlen 64 scopeid 0x20<link>
- ether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)
- RX packets 88607 bytes 6246698 (5.9 MiB)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 65079 bytes 4618871 (4.4 MiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0
- ether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)
- # vip 为 192.168.10.240
复制代码 ka2和ka1配置相同,所以我们可以使用scp,进行复制
- [root@ka1 ~]# scp /etc/keepalived/keepalived.conf root@192.168.10.180:/etc/keepalived/keepalived.conf
- The authenticity of host '192.168.10.180 (192.168.10.180)' can't be established.
- ECDSA key fingerprint is SHA256:Yrid63PgwDQh7wiaQmCGsLuxK3Cht8v/wekHTAza/XI.
- ECDSA key fingerprint is MD5:d7:be:70:41:82:ff:81:40:5b:a7:40:10:d1:0c:ca:bf.
- Are you sure you want to continue connecting (yes/no)? yes
- Warning: Permanently added '192.168.10.180' (ECDSA) to the list of known hosts.
- root@192.168.10.180's password:
- keepalived.conf 100% 4143 4.5MB/s 00:00
复制代码 唯一要变的就是我们将ka1当作主装备,ka2当作从,使用必要改两个配置
- [root@ka1 ~]# vim /etc/keepalived/keepalived.conf
- vrrp_instance VI_1 {
- state BACKUP # 从设备
- interface ens33 # vip使用的真实设备是谁
- virtual_router_id 100 # 虚拟路由id(唯一的)
- priority 80 # 优先级改为80,两个设备优先级不一样
- advert_int 1
- authentication {
- auth_type PASS # 发通告带的信息
- auth_pass 1111
- }
- virtual_ipaddress { # vip id # 设定网卡子接口
- 192.168.10.240/24 dev ens33 label ens33:0
- }
- }
复制代码- [root@ka2 ~]# systemctl restart keepalived.service
复制代码 测试:
- [root@ka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18
- [root@ka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18
- tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
- listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
- 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
- 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
- 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
- 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
- 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
- 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
- # 使用tcpdump进行抓包
- # -i 就是ens33接收到底数据
- # -nn 表示不做解析
- # host指定观察的那个ip
- # 224.0.0.18 组播地址
复制代码 ka1的优先级高于ka2所以正常情况看不到ka2的数据。若此时ka1发生故障,ka2则会敏捷补上,此时在ka1上的vip也会跑到ka2上
- [root@ka1 ~]# systemctl stop keepalived.service
- [root@ka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18
- tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
- listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
- 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
- 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
- 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
- 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
- 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
- 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
复制代码- [root@ka2 ~]# ifconfig
- ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.10.180 netmask 255.255.255.0 broadcast 192.168.10.255
- inet6 fe80::20c:29ff:fe2c:7bd prefixlen 64 scopeid 0x20<link>
- ether 00:0c:29:2c:07:bd txqueuelen 1000 (Ethernet)
- RX packets 119533 bytes 8259027 (7.8 MiB)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 39657 bytes 3009635 (2.8 MiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0
- ether 00:0c:29:2c:07:bd txqueuelen 1000 (Ethernet)
复制代码 因为默认是抢占模式,当ka1好了之后,vip则会跑到ka1上,流量也会回到ka1上
- [root@ka1 ~]# systemctl start keepalived.service
- [root@ka1 ~]# ifconfig
- ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.10.170 netmask 255.255.255.0 broadcast 192.168.10.255
- inet6 fe80::20c:29ff:feea:fe5a prefixlen 64 scopeid 0x20<link>
- ether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)
- RX packets 92906 bytes 6566009 (6.2 MiB)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 67173 bytes 4781344 (4.5 MiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 192.168.10.240 netmask 255.255.255.0 broadcast 0.0.0.0
- ether 00:0c:29:ea:fe:5a txqueuelen 1000 (Ethernet)
复制代码- [root@ka1 ~]# tcpdump -i ens33 -nn host 224.0.0.18
- tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
- listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
- 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
- 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
- 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
- 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访问功能给 |