keepalived脑裂问题查找

在自己环境做keepalived+redis实验时,当重启了备用redies机器后,发现两台redies主机都拿到了VIP

 

[plain] view plain copy
  1. [root@redis2 ~]# ip addr list  
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN   
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  
  4.     inet 127.0.0.1/8 scope host lo  
  5.     inet6 ::1/128 scope host   
  6.        valid_lft forever preferred_lft forever  
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
  8.     link/ether 52:54:00:72:6a:7c brd ff:ff:ff:ff:ff:ff  
  9.     inet 192.168.122.54/24 brd 192.168.122.255 scope global eth0  
  10.     inet 192.168.122.50/32 scope global eth0  
  11.     inet6 fe80::5054:ff:fe72:6a7c/64 scope link   
  12.        valid_lft forever preferred_lft forever  

 

[plain] view plain copy
  1. [root@localhost ~]# ip addr list  
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN   
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  
  4.     inet 127.0.0.1/8 scope host lo  
  5.     inet6 ::1/128 scope host   
  6.        valid_lft forever preferred_lft forever  
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
  8.     link/ether 52:54:00:85:7b:a9 brd ff:ff:ff:ff:ff:ff  
  9.     inet 192.168.122.96/24 brd 192.168.122.255 scope global eth0  
  10.     inet 192.168.122.50/32 scope global eth0  
  11.     inet6 fe80::5054:ff:fe85:7ba9/64 scope link   
  12.        valid_lft forever preferred_lft forever  



也就是出现了keepalived的脑裂现象,检查了两台主机的网络连通状态,发现网络是好的。然后在备机上抓包

 

[html] view plain copy
  1. [root@localhost ~]#  tcpdump -i eth0|grep VRRP  
  2. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode  
  3. listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes  
  4. 15:51:17.146322 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  5. 15:51:17.146577 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  6. 15:51:17.146972 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  7. 15:51:18.147136 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  8. 15:51:18.147576 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  9. 15:51:25.151399 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  10. 15:51:25.151942 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  11. 15:51:26.151703 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  12. 15:51:26.152623 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  13. 15:51:27.152456 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  14. 15:51:27.153261 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  15. 15:51:28.152955 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  16. 15:51:28.153461 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  17. 15:51:29.153766 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  18. 15:51:29.155652 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  19. 15:51:30.154275 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  20. 15:51:30.154587 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  21. 15:51:31.155042 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  22. 15:51:31.155428 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  23. 15:51:32.155539 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  24. 15:51:32.155986 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  25. 15:51:33.156357 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  26. 15:51:33.156979 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  
  27. 15:51:34.156801 IP 192.168.122.96 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 50, authtype simple, intvl 1s, length 20  
  28. 15:51:34.156989 IP 192.168.122.54 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 160, authtype simple, intvl 1s, length 20  

 

备机能接收到master发过来的VRRP广播,那为什么还会有脑裂现象?发现重启后iptables还开着,检查了防火墙配置

 

[plain] view plain copy
  1. root@localhost ~]# iptables -S  
  2. -P INPUT ACCEPT  
  3. -P FORWARD ACCEPT  
  4. -P OUTPUT ACCEPT  
  5. -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT   
  6. -A INPUT -p icmp -j ACCEPT   
  7. -A INPUT -i lo -j ACCEPT   
  8. -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT   
  9. -A INPUT -j REJECT --reject-with icmp-host-prohibited   
  10. -A FORWARD -j REJECT --reject-with icmp-host-prohibited   


发现系统不接收VRRP协议,于是修改iptables

 

[plain] view plain copy
  1. [root@localhost ~]# iptables -I INPUT 4 -p vrrp -j ACCEPT  
[plain] view plain copy
  1. [root@localhost ~]# iptables -S  
  2. -P INPUT ACCEPT  
  3. -P FORWARD ACCEPT  
  4. -P OUTPUT ACCEPT  
  5. -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT   
  6. -A INPUT -p icmp -j ACCEPT   
  7. -A INPUT -i lo -j ACCEPT   
  8. -A INPUT -p vrrp -j ACCEPT   
  9. -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT   
  10. -A INPUT -j REJECT --reject-with icmp-host-prohibited   
  11. -A FORWARD -j REJECT --reject-with icmp-host-prohibited   
[plain] view plain copy
  1. [root@localhost ~]# ip addr list  
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN   
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  
  4.     inet 127.0.0.1/8 scope host lo  
  5.     inet6 ::1/128 scope host   
  6.        valid_lft forever preferred_lft forever  
  7. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  
  8.     link/ether 52:54:00:85:7b:a9 brd ff:ff:ff:ff:ff:ff  
  9.     inet 192.168.122.96/24 brd 192.168.122.255 scope global eth0  
  10.     inet6 fe80::5054:ff:fe85:7ba9/64 scope link   
  11.        valid_lft forever preferred_lft forever  

发现VIP没了。虽然问题解决了,但为什么备机明明能抓到master发来的VRRP广播包,但却无法改变自身状态呢?只能说明网卡接收到数据包是在iptables处理数据包之前发生的事情。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 多线程并行 矩阵乘法_python实现简单的并行矩阵乘法

python实现简单的并行矩阵乘法python实现简单的并行矩阵乘法本文采用的矩阵乘法方式是利用一个矩阵的行和二个矩阵的列相乘时不会互相影响。假设A(m,n)表示矩阵的m行&#xff0c;n列。那么C(m,m)A(m,n) * B(n,m) &#xff1a;计算C矩阵时候分解成&#xff1a;process-1&#xf…

停止Java线程,小心interrupt()方法

转自http://www.blogjava.NET/jinfeng_wang/archive/2008/04/27/196477.html ---------------------------------------------------------------------------------------------------- 程序是很简易的。然而&#xff0c;在编程人员面前&#xff0c;多线程呈现出了一组新的难…

python输入数学表达式并求值_用Python3实现表达式求值

一、题目描述 请用 python3编写一个计算器的控制台程序&#xff0c;支持加减乘除、乘方、括号、小数点&#xff0c;运算符优先级为括号>乘方>乘除>加减&#xff0c;同级别运算按照从左向右的顺序计算。 二、输入描述 数字包括"0123456789"&#xff0c;小数点…

mac上的mysql管理工具sequel pro

https://blog.csdn.net/wan_zaiyunduan/article/details/54909389 以前用过Plsql、Navicat、Workbench&#xff0c;现在换到mac上&#xff0c;用了现在这一款管理工具&#xff0c;很好用&#xff0c;所以推荐给大家。 完整的MySQL支持 Sequel Pro是一个快速,易于使用的Mac数据库…

报错 classes 拒绝访问_3种方式“移除”快速访问;为什么移除?你懂的...

Windows 10 在文件资源管理器中引入了"快速访问"这个功能&#xff0c;每当打开文件资源管理器窗口时&#xff0c;您都会看到常用文件夹和最近访问的文件的列表&#xff0c;这个功能虽然方便了日常使用&#xff0c;可能会提高工作效率&#xff0c;但是如果是公司的电脑…

java set是重复_java算法题,set内出现重复元素

题目将数字 1…9 填入一个33 的九宫格中&#xff0c;使得格子中每一横行和的值全部相等&#xff0c;每一竖列和的值全部相等。请你计算有多少种填数字的方案。这个是计蒜客上面的一个模拟题&#xff0c;我采用暴力。public class _3 {/** 将数字 1…9 填入一个33 的九宫格中&am…

Lock的lockInterruptibly()

概述 lockInterruptibly()方法比较特殊&#xff0c;当通过这个方法去获取锁时&#xff0c;如果其他线程正在等待获取锁&#xff0c;则这个线程能够响应中断&#xff0c;即中断线程的等待状态。也就使说&#xff0c;当两个线程同时通过lock.lockInterruptibly()想获取某个锁时&…

python中把输出结果写到一个文件中_Python3.6笔记之将程序运行结果输出到文件的方法...

Python3.6笔记之将程序运行结果输出到文件的方法 更新时间&#xff1a;2018年04月22日 14:27:32 投稿&#xff1a;jingxian 下面小编就为大家分享一篇Python3.6笔记之将程序运行结果输出到文件的方法&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。一起跟随小…

hangfire.mysql.core_abp 使用 hangfire结合mysql

abp 官方使用的hangfire 默认使用的是sqlserver的存储mysql须要引入支持mysql的类库sql我这边使用的是Hangfire.MySql.Core数据库直接用nuget安装便可app首先按照官方文档要求&#xff0c;改几个地方sqlserver分别是 Startup 文件下serverservices.AddHangfire(config >{con…

python 图标题上移_Python-Matplotlib将图形标题移动到y轴

我目前在python中使用matplotlib来绘制一些数据,但是我希望图表的标题位于Y轴上,因为没有足够的空间来存储一个图形的标题和另一个图形的x轴标签.我知道我可以将hspace设置为更大的数字但是,我不想这样做,因为我计划将几个图表堆叠在一起,如果我调整hspace,那么图表将是真的简短…

solr的基础使用

查询运算符 例如&#xff1a;http://localhost:8984/solr/mycore/select?q*:* : 指定字段查指定值&#xff0c;如返回所有值q*:* ? 匹配单个字符&#xff0c; 例如: qtitle:??拳 可以匹配标题为“形意拳”的文档 * 匹配零个或多个字符, 例如: qtitle:*形意拳 或者 qtitl…

同步关键词lock

概述 1、API在JDK的java.util.concurrent.locks下。 2、不是Java关键字&#xff0c;是接口。 3、ReentrantLock是JDK唯一实现了Lock接口的类。 public interface Lock {//获取锁void lock();//可以响应中断的锁void lockInterruptibly() throws InterruptedException;//尝试…

Java bitset转string_将java BitSet保存到DB

默认情况下,JPA使用Java序列化来保存未知Serializable类型的属性(以便将序列化表示存储为byte []).通常它不是您想要的,因为可以有更有效的方式来表示您的数据.例如,BitSet可以有效地表示为数字(如果它的大小有界),或者byte [],或其他东西(遗憾的是,BitSet不提供进行这些转换的…

python读取raw图片文件_在python下读取并展示raw格式的图片实例

raw文件可能有些人没有&#xff0c;因此&#xff0c;先用一张图片创建一个raw格式的文件&#xff08;其实可以是其他类型的格式文件&#xff09; import numpy as np import cv2 img cv2.imread(cat.jpg) # 这里需要我们在当前目录下放一张名为cat.jpg的文件 img.tofile(cat.r…

python怎么网络通信_深入Python中的网络通信

TCP/IP计算机与网络设备两情侣要谈恋爱&#xff0c;相互通信&#xff0c;那么双方就必须有规则。基于相同的方法&#xff0c;不同的硬件、操作系统之间的通信&#xff0c;都需要一种规则。而我们就把这种规则称为协议(protocol)。TCP/IP 是互联网相关各类协议族的总称。TCP/IP是…

ReadWriteLock读写文件

概述 ReadWriteLock是一个接口&#xff0c;在它里面只定义了两个方法&#xff1a;一个读的锁和一个写的锁。 读的锁&#xff1a;A线程获取了读的锁&#xff0c;那么B线程也可以获取读的锁。 写的锁&#xff1a;A线程获取了写的锁&#xff0c;那么B线程不能获取读也不能获取写…

搞懂 Java HashMap 源码

HashMap 源码分析 前几篇分析了 ArrayList &#xff0c; LinkedList &#xff0c;Vector &#xff0c;Stack List 集合的源码&#xff0c;Java 容器除了包含 List 集合外还包含着 Set 和 Map 两个重要的集合类型。而 HashMap 则是最具有代表性的&#xff0c;也是我们最常使用到…

python 怎么表示sqlserver null_如何使用Python将sqlserver查询输出写入.txt文件?

我是Python新手&#xff0c;尝试连接到sqlserverdb并将查询的输出转换成一个flat.txt文件。在一些代码正在工作&#xff0c;但是只写了将近1000条记录&#xff0c;然后就停止了。在Python版本&#xff1a;2.7.13。在下面的代码能够把100万条记录全部写入csv文件而不是.txt文件&…

python中object是什么类型_Python 的 type 和 object 之间是怎么一种关系?

class&#xff0c;metaclass&#xff0c;instance&#xff0c;subclass&#xff0c;base 以下成立&#xff1a; 对任意的A&#xff0c;A是instance&#xff08;推论&#xff1a;任意class也是instance&#xff09; 对任意A&#xff0c;存在B&#xff0c;使得B是A的class A是cla…

java8新生代_jdk8.0的jvm详情

jstat命令可以查看堆内存各部分的使用量&#xff0c;以及加载类的数量。命令的格式如下&#xff1a;jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]注意&#xff1a;使用的jdk版本是jdk8.[work16-11-118qf-pms]$ jstat -class 32417Loaded?? Bytes?? Unloaded?? B…