创建本文的目的
笔者最近在详细研究keepalived软件,发现网上关于这方面的详细描述较少,需要案例配置参数在新版本中已经失效。keepalived官方网站提供的文档资料,虽然以案例为基础,提供了较为常用的参数配置,但是笔者发现许多参数并未提及。作为IT行业的人,似懂非懂只能做一个三流的技术人员,本着刨根问题的精神,创建了该篇文章。
本文以keepalived manual pages英文版为基础而创建的,你可以将该文件理解为manual pages中文。但笔者并不是单纯的文字翻译,对于文中的功能描述,笔者为验证其正确性,进行了大量实验,已确认其描述的正确性。笔者才疏学浅,难免有错误的地方,请广大网友给予批评指正,以便不断的完善。
注意:文中红色条目为笔者暂时不能确认其功能的部分
版本:keepalived 1.2.24
考拉先生
GLOBAL CONFIGURATION
Global definitions
global_defs
{
notification_email
{
admin@example.com
}
notification_email_from
admin@example1.com
stmp_server 112.3.3.3. 25
stmp_hole_name #用于指定发送hole消息的主机,一般是mx记录的主机
stmp_connect_timeout 30
router_id my_hostname #指定一个字符串给keepalived,不一定是主机名,默认为本地主机名
vrrp_mcast_group4 224.0.0.18 #指定vrrp的多播ipv4地址,默认是224.0.0.18
vrrp_mcast_group6 ff02::12 #指定vrrp的多播ipv6地址,默认是ff02::12
default_interface p33p1.3 # 设置用户static ipaddress的默认网络接口,如果系统没有eth0接口或者想为多个static ipaddress配置不同的接口时,使用该配置将会简化配置。
lvs_sync_daemon <INTERFACE> <VRRP_INSTANCE> [id <SYNC_ID>] [MAXLEN <LEN>] [port <PORT>] [ttl <TTL>] [group <IP ADDR>]
#该选项没有详细的官方文档说明,根据测试发现,该参数作用于ipvsad的sync daemon选项,lvs_sync的状态根据keepalived的状态一致,当kill掉master keepalived时,backup keepalive的state转变为master状态
lvs_flush #该功能新增于1.2.23版本。启动keepalived时刷新lvs配置,如果lvs没有配置,这不会刷新
vrrp_garp_master_delay 10 #设置当keepalived转变为master后,延迟多少秒发送第二组gratuitous arp。时间单位为秒,默认5秒,0表示不发送第二组gratuitous arp发送。
#注意第二组发送和第二次发送的区别
vrrp_garp_master_repeat 1 #keepalived状态转变为master后,每次发送多少组grntuitous APR 信息的数量,默认为5个
vrrp_garp_lower_prio_repeat 1 #当master keepalived接收到一个较低优先级的广播后,一次发送gratuitous apr的数量组
vrrp_garp_master_refresh 60 #master keepalived 每次发送gratuitous arp的最小时间间隔。默认是0,没有
vrrp_garp_master_refresh_repeat 2 #master keepalived 每次发送gratuitous arp消息的组数量。
vrrp_garp_interval 0.001 #小数类型,单位秒,在一个网卡上每组gratuitous arp消息之间的延迟时间,默认为0,一个发送的消息=n组 arp报文
vrrp_gna_interval 0.000001 #小数类型,单位秒, 在一个网卡上每组na消息之间的延迟时间,默认为0
vrrp_lower_prio_no_advert #如果接收到一个低优先级的通告,只需要丢弃它,不用发送其他通告,字符类型:布尔值,false/true
vrrp_version <2 or 3> #设置vrrp协议版本,默认是版本2
vrrp_iptables #该配置添加于1.2.21版本,添加vrrp_iptables全局配置选项。 iptables / ip6tables条目始终添加在INPUT链的末尾,但对于许多配置,这在处理中太晚了。 此修补程序允许指定要添加规则的链名称,
#并且还允许添加指定无规则的选项。 如果指定了链名称,则该链必须已经存在于iptables和/或ip6tables配置中,并且该链将从ip(6)表配置中的适当点调用。
#默认是入站过滤
vrrp_iptables keepalived_in keepalived_out #或用于出站过滤。注意,出站过滤将不适用于IPv4,因为可以选择VIP作为出站连接的源地址。 对于IPv6,由于地址已过时,因此不太可能
vrrp_iptables #不添加任何iptables规则
vrrp_ipset [keepalived [keepalived_if [keepalived6 [keepalived_if6]]]] #Keepalived可以选择将ipset与iptables结合使用。 如果是这样,则可以指定ipset名称,默认如下。如果没有指定名称,则不使用ipsets,否则将通过向先前指定的名称添加“_if”和/
#或“6”来构造任何省略的名称。ipset是iptables的扩展,它允许你创建匹配整个地址sets(地址集合)的规则。
vrrp_check_unicast_src #该选项允许在unicast模式中,检查vrrp包的源ip地址是否是unicast peers中的一个
vrrp_skip_check_adv_addr