keepalived配置文件详解
- 获取配置文件帮助:man keepalived.conf
keepalived配置文件组成:
1)GLOBAL CONFIGURATION
- Global definitions:主要是邮件相关配置
- root@localhost 本机邮箱
- 注:#keepalived 发生故障切换时邮件发送的对象,可以按行区分写多个
- 说明:这个邮件配置可以写也可以不写,一般使用脚本方式发送邮件,一旦keepalived出现故障,通过脚本可以检测,然后通过脚本实现发送邮件。
notification_email {
root@localhost
}
notification_email_from 邮件通知时是从哪个地方发出去的
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
#以上关于邮件的配置不是必须项,即可有可无,配置了需要当前keepalived主机可以向外或者公网发送邮件才行。
router_id LVS_DEVEL #router_id 一般是当前主机名,保证不一致即可
vrrp_skip_check_adv_addr #所有报文都检查比较消耗性能,此配置为如果收到的报文和上一个报文是同一个路由器则跳过检查报文中的源地址
vrrp_strict #严格遵守VRRP协议,不允许状况:1,没有VIP地址,2.配置了单播邻居,3.在VRRP版本2中有IPv6地址.
注:
vrrp_garp_interval 0 #ARP报文发送延迟
vrrp_gna_interval 0 #消息发送延迟
vrrp_mcast_group4 224.0.0.18 #默认组播IP地址,224.0.0.0到239.255.255.255
#vrrp_iptables 默认是打开的,当配置#vrrp_iptables时(即关闭vrrp_iptables ),会自动配置一条iptables规则,为了安全考虑将VIP禁ping
}
-
keepalived启动失败的原因:
①没有VIP地址
②配置了单播邻居
③在VRRP版本2中有IPv6地址(IPv6地址在局域网使用不多) -
如果keepalived和haproxy搭配时(haproxy启动失败):没有开启允许非本地IP地址socket监听(net.ipv4.ip_nonlocal_bind = 1 1表示开启)
2)VRRP CONFIGURATION
- VRRP instance(s):即一个个的vrrp虚拟路由器
3)LVS CONFIGURATION
- Virtual server group(s)
- Virtual server(s):ipvs集群的vs和rs
配置虚拟路由器
1)配置虚拟路由器:
vrrp_instance \<STRING> {
....
}
2)配置参数:
- state MASTER|BACKUP:当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUP
- interface IFACE_NAME:绑定为当前虚拟路由器使用的物理接口 ens32,eth0,bond0,br0
- virtual_router_id VRID:当前虚拟路由器惟一标识,范围是0-255
- priority 100:当前物理节点在此虚拟路由器中的优先级,范围1-254(值越大优先级越高)。一般master priority为100,backup priority为50
- advert_int 1:vrrp通告的时间间隔,默认1s
- authentication :认证机制
authentication { #认证机制
auth_type AH|PASS
auth_pass <PASSWORD> 仅前8位有效
}
- virtual_ipaddress:虚拟IP
virtual_ipaddress { #虚拟IP
<IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
192.168.200.17/24 dev eth1
192.168.200.18/24 dev eth2 label eth2:1
}
- track_interface:配置监控网络接口,一旦出现故障,则转为FAULT状态实现地址转移
track_interface { #配置监控网络接口,一旦出现故障,则转为FAULT状态实现地址转移
eth0
eth1
… }
单虚拟路由器配置
keepalived简单配置的实现
【实验主机】:192.168.38.27
- #yum install -y keepalived
【配置文件】
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server 127.0.0.1
router_id centos7-27
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 100
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.38.249 dev eth0 label eth0:1
}
}
启动keepalived之后:
需要注意的选项
1)#vrrp_iptables
- 默认vrrp_iptables是打开的,但是若配置为#vrrp_iptables则将vrrp_iptables关闭。
- 关闭#vrrp_iptables时的影响:
[root@centos7-27 ~]# iptables -t filter -vnL
Chain INPUT (policy ACCEPT 313 packets, 14198 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 0.0.0.0/0 192.168.38.110
==>此规则表示任何地址的数据报文均不能通过192.168.38.110网址到达当前主机,四层代理实现向后端服务器转发是可以的。
==>有时为了测试使用,会ping VIP,因此可能会打开vrrp_iptables;当然不写默认也是打开的。
==>如果是公网地址,此选项一般打开比较好。
- vrrp_strict
①没有VIP地址
②配置了单播
③在VRRP版本2中有IPv6地址(IPv6地址在局域网使用不多)
==>打开了vrrp_strict,然后配置文件出现以上三种情况,将导致keepalived启动失败。