keepalived组播故障排查

author author     2022-08-08     645

关键词:


虚拟机无法接收keepalived的vrrp组播

现象:

        在Ubuntu1404的系统下安装了三台虚拟机,然后配置了一个简单的keepalived+haproxy服务。

结果启动后发现三台虚拟机都配上vip,keepalived.log日志中也未看见error的报错信息。


排查过程:

      这些典型的脑裂(split brain)现象,一般来说先检查配置文件是否配的有问题。注意下virtual_router_id 的值。两边是否一样。


然后就是大杀器tcpdump出马了。

首先分别在三台机器执行

tcpdump -nn -c 20 -i any host 224.0.0.18

抓取20个VRRP包,正常输出应该如下:

15:30:25.406369 IP 192.168.70.99 > 224.0.0.18: VRRPv2, Advertisement, vrid 71, prio 1, authtype simple, intvl 1s, length 20
15:30:25.406440 IP 192.168.70.99 > 224.0.0.18: VRRPv2, Advertisement, vrid 71, prio 1, authtype simple, intvl 1s, length 20
15:30:25.406369 IP 192.168.70.99 > 224.0.0.18: VRRPv2, Advertisement, vrid 71, prio 1, authtype simple, intvl 1s, length 20

如果有输出,查看IP后面字段,在本次故障中,这里只有本机的IP,这说明vrrp包是正常发送出去的,但是没有收到其他机器的vrrp包,说明可能接收组播有问题。


然后再找一台同网段的机器,执行:

tcpdump -nn  -i any host 224.0.0.18

收集一段时间(这时候也可以注意下vrid有没有与别人的冲突),发现三台机的vrrp包都抓到了,说明三台机都能成功发出组播来,但是各自都没有收到。

由于手上也没有iperf工具,也没有做其他的排查,但是基本上也知道是内核参数的设置或者网卡的问题了。

原因:

      由于这个系统在其他机器上是正常的,检查发现是在使用virt-manager新建虚拟机的时候,选择nat网卡模式,这种情况需要手动新建br网卡,再使用桥接模式才能成功。


补充:

防火墙开放vrrp包:

#iptables -I INPUT -i eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT
# iptables -I OUTPUT -o eth0 -d 224.0.0.0/8 -p vrrp -j ACCEPT

内核开启转发:

# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
# sysctl -p


本文出自 “DanielQu” 博客,请务必保留此出处http://qujunorz.blog.51cto.com/6378776/1861541

keepalived+haproxy安装配置

#############################################################keepalivedkeepalived是VRRP协议的完美实现,最早是为lvs设计的高可用模块。VRRP协议:解决静态路由单点故障的问题太。VRRP通过竞选协议来实现虚拟路由器的功能,所有的协议报文都是通... 查看详情

keepalived组播的配置(代码片段)

keepalived组播的配置准备主机2台serverhostnameipkeepaliveds1172.20.27.10keepaliveds2172.20.27.11S1节点配置修改keepalived配置文件[[email protected]~]#vim/etc/keepalived/keepalived.conf!ConfigurationFileforkeepalivedgl 查看详情

keepalived设置master故障恢复后不重新抢回vip配置

.../iptables适当位置添加行:-AINPUT-d224.0.0.18-jACCEPT默认情况下keepalived有一台主服务器(master,以后称之为M服务器),一台备服务器(backup,以后称之为B服务器)。正常情况下M服务器接管VIP成为【主】 查看详情

keepalived

1:HA集群架构与VIIP工作原理:Linux高可用集群:pacemaker、keepalivedkeepalived理论工作原理:keepalived是以VRRP协议为实现基础的,VRRP全称VirtualRouterRedundancyProtocol,即虚拟路由冗余协议。虚拟路由冗余协议是实现路由器高可用的协议,即... 查看详情

keepalived单播模式(代码片段)

keepalived单播模式keepalived在组播模式下所有的信息都会向224.0.0.18的组播地址发送,产生众多的无用信息,并且会产生干扰和冲突,所以需要将其组播的模式改为单拨。这是一种安全的方法,避免局域网内有大量的keepalived造成虚... 查看详情

keepalived设置master故障恢复后不重新抢回vip(解决nopreempt无效)(代码片段)

注意:一定先关闭防火墙测试,先能保证测试通过。如果服务器一定要用防火墙,那么在测试无误后,通过命令运行VRRP路由冗余协议。允许组播,两台设备上都需要执行iptables-AINPUT-d224.0.0.18-jACCEPT或修改:... 查看详情

keepalived+lvs+nginx(代码片段)

简介Keepalived是一个基于VRRP协议来实现服务器的高可用方案,可以利用其来避免单点故障。至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),其他为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会通过组... 查看详情

keepalived漂移vip故障

keepalived + lvs 172.16.30.31  master172.16.30.32  backup172.16.30.10  vip故障:监控显示keepalived master主机故障;通过ping查看vip存在。master重启以后,VIP漂移回master.偶然间,重启mas 查看详情

lvs-dr与keepalived群集(代码片段)

keepalived概述Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动... 查看详情

keepalived常见故障

...200  10.0.0.201这个登录一下,帮我测试一下nginx那个keepalived的功能正常不系统是centos7keepalived和  nginx都可以重启测试:1、pkillnignx后,故障切换一切正常,恢复nginx后也可以抢占回VIP2、在修改nginx配置文件后,在pkilln... 查看详情

手动命令以故障回复 keepalived 集群

】手动命令以故障回复keepalived集群【英文标题】:Manualcommandtofailbackakeepalivedcluster【发布时间】:2017-06-2114:35:38【问题描述】:我正在使用nopreempt选项运行具有两个节点的测试keepalived集群。这使我可以防止在崩溃后自动故障回... 查看详情

一次故障记录keepalived配置疏忽导致的故障

负载均衡keepalived+lvs负载nginx应用tomcatnginx负载通过公网,每一台nginx都负载了多聊链路到后端应用,突然部分客户无法访问业务,负载均衡没有问题,部分nginx服务器到后端应用超时,nginx日志中报出错误;但是keepalived配置为TCP_C... 查看详情

keepalived配置

1、什么是keepalived?keepalived是集群管理中保证集群高可用的一个服务软件,用来检测服务器的状态以及loadbbalance主机和backup主机之间的failover(故障切换)防止单点故障。在集群当中如果有一台服务器宕机或工作出现故障,keepalived... 查看详情

故障排查

实验名称:故障排错实现全网互通实验拓扑:排错思路1、先排查PC机2、排查SW23、排查SW34、排查SW15、排查AR16、排查AR27、排查AR3实验步骤:排查修改SW2<SW2>undotmInfo:Currentterminalmonitorisoff.<SW2>sysEntersystemview,returnuserviewwithCtrl... 查看详情

keepalived工作原理

keepalived是什么keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。keepalived工作原理keepalived是以VRRP协议为实现基础的,VRRP全称VirtualRouterRedundancyProtocol,即虚拟路由冗余协议。虚拟... 查看详情

keepalived:vrrp实例故障转移(keepalived+haproxy)(代码片段)

keepalived使用脚本进行健康检查时的相关配置项。例如keepalived+haproxy实现haproxy的高可用。keepalived分为vrrp实例的心跳检查和后端服务的健康检查。如果要配置后端服务,则后端服务只能是LVS。但vrrp能独立与lvs存在,例如keepalive结... 查看详情

keepalived

keepalived介绍:Keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自... 查看详情

简单写一写keepalived

一、keepalived简介:1、什么是keepalived?keepalived起初是为lvs设计的而保证集群高可用的一个服务软件,用来检测服务器的状态以及loadbbalance主机和backup主机之间的failover(故障切换)防止单点故障。在集群当中如果有一台服务器宕机... 查看详情