keepalived 排障

简介:

keepalived是一个类似于heartbeat 的 failover工具,跟heartbeat原理不同,keepalived基于vrrp (虚拟路由冗余协议)。


keepalived 经常用于高可用场合,通常搭配LVS,nginx,haproxy等负载均衡器,是一个成熟的高可用方案。


keepalived 两个主机不能正常通信,除了配置错误之外,通常是由于防火墙的原因,很多资料都没有提及这点,难道让服务器裸奔不成。请检查防火墙规则符合下面的条件:


1、keepalived 默认需要使用D类多播地址224.0.0.18 进行心跳通信

2、keepalived 使用vrp协议进行通信(协议号码为112)


防火墙示例 (仅在centos下测试通过)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env bash
lan=10.0.0.0 /24
# Flush the current iptables rules
/sbin/iptables  -F
/sbin/iptables  -X
/sbin/iptables  -Z
/sbin/iptables  -P INPUT ACCEPT
# Allow related,established connection
/sbin/iptables  -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables  -A INPUT -p icmp -m icmp --icmp- type  8 -m limit --limit 1 /sec  -j ACCEPT
# Always trust lookback interface
/sbin/iptables  -A INPUT -i lo -j ACCEPT
                                                                                          
# Allow  but limit ssh connection
/sbin/iptables  -A INPUT -s $lan -p tcp --dport 22 -m recent -- set  --name  ssh  --rsource
/sbin/iptables  -A INPUT -s $lan -p tcp --dport 22 -m recent ! --rcheck --seconds 60 --hitcount 10 --name  ssh  --rsource -j ACCEPT
# web service for public
/sbin/iptables  -A INPUT -p tcp --dport 80 -j ACCEPT
# Open some ports to local network only
#ntp
/sbin/iptables  -A INPUT -s $lan -p udp --dport 123 -j ACCEPT
#snmp
/sbin/iptables  -A INPUT -s $lan -p udp --dport 161 -j ACCEPT
#rsync
/sbin/iptables  -A INPUT -s $lan -p tcp --dport 873 -j ACCEPT
#nrpe
/sbin/iptables  -A INPUT -s $lan -p tcp --dport 5666 -j ACCEPT
# keepalived
/sbin/iptables  -A INPUT -i eth1 -d 224.0.0.0 /8  -j ACCEPT
/sbin/iptables  -A INPUT -i eth1 -p 112 -j ACCEPT
#
/sbin/iptables  -P INPUT DROP
/sbin/iptables  -P FORWARD DROP
/sbin/iptables  -P OUTPUT ACCEPT
#
/etc/init .d /iptables  save
/sbin/iptables  -n - v  -L


检测两个keepalived主机之间是否能通信的办法有

1、停掉一个keepalived,看另外一个keepalived的日志/var/log/messages 里是否有新的日志

2、用嗅探器抓包,例如:

1
2
tcpdump - v  -i eth1 host 224.0.0.18
tcpdump -vvv -n -i eth1 host 224.0.0.18









本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1240423,如需转载请自行联系原作者
目录
相关文章
|
4月前
【优化篇】使用Keepalived实现简单的GrayLog高可用
【优化篇】使用Keepalived实现简单的GrayLog高可用
27 0
|
4月前
使用Keepalived实现简单的GrayLog高可用
使用Keepalived实现简单的GrayLog高可用
38 0
|
5月前
|
应用服务中间件 网络安全 nginx
Keepalived双机热备
在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但 是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
78 1
|
11月前
|
存储 负载均衡 网络协议
keepalived双机热备
keepalived双机热备
214 0
|
监控 负载均衡 网络协议
keepalived实现服务高可用
第1章 keepalived服务说明 1.1 keepalived是什么?   Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。
2653 0
|
网络架构
Keepalived 介绍、安装、配置(高可用)
1、keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议。 2、VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。
1170 0
|
监控 负载均衡 网络协议
|
Web App开发 网络协议 应用服务中间件