zoukankan      html  css  js  c++  java
  • CentOS7下配置防火墙放过Keepalived

    在配置好keepalived主从之后,发现主从都绑定了虚拟IP;这就是所谓的“脑裂问题”;

    • 于是开始查看主从keepalived的配置文件是否有误,vrid是否一致;最后发现配置文件是正常的;

    • 接着开始排查是否是网络问题:

      tcpdump -i eth0|grep VRRP tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 21:00:53.202437 IP 192.168.8.123 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 50, prio 100, authtype simple, intvl 1s, length 20 21:00:53.202964 IP 192.168.8.126 > vrrp.mcast.net: VRRPv2, Advertisement, vrid 51, prio 100, authtype simple, intvl 1s, length 20 21:00:53.204638 IP keepalived-slave > vrrp.mcast.net: VRRPv2, Advertisement, vrid 66, prio 80, authtype simple, intvl 1s, length 20 发现keepalived从服务器也能正常接收到vrrp包;

    • 最后考虑到,该主机启用了firewalld防火墙;于是开始从防火墙开始着手解决问题

    Keepalived是一个轻量级的HA集群解决方案,但开启防火墙后各节点无法感知其它节点的状态,各自都绑定了虚拟IP。网上很多文章讲要配置防火墙放过tcp/112,在CentOS7下是无效的,正确的做法是配置放过vrrp协议,方法如下:

    firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
    firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
    firewall-cmd --reload

    Keepalived使用vrrp组播,默认地址是224.0.0.18,因此要配置防火墙放过。 完成后再用ip addr查看,集群已经正常了,只有主节点绑定虚拟IP,备份节点不会绑定了。

  • 相关阅读:
    用bat更改hosts文件批处理
    docker 清理容器的一些命令,彻底或选择清理
    Hbase+Phoenix环境部署和使用
    使用内置tomcat的pom配置
    git修改已提交记录的用户信息
    Linux清空正在运行的log日志文件内容
    Maven打包: 包含依赖jar和指定Main class
    docker-compose 搭建 kafka
    Java URLEncoder 兼容 js encodeURIComponent
    linux查找删除大文件
  • 原文地址:https://www.cnblogs.com/tanghu/p/12617840.html
Copyright © 2011-2022 走看看