全局配置
全局配置包括两个子配置,即所谓的:全局定义(global definition)和静态地址路由(static ipaddress/routes)。
所谓静态(static)就是说不会随vrrpd instance的开/关而变化的,VIP就不是static的,会随着vrrpd而添加/删除。
这个配置可以用来给服务器配置静态的IP地址/路由,当然如果服务器的配置里面已经有了这些配置,这里就不需要设置了。
global_defs
{
route_id
}
static_ipaddress
{
}
static_routes
{
}
VRRPD配置
VRRPD的配置也包括两个部分:VRRP同步组(synchronization group)和VRRP实例(VRRP Instance)。
不使用Sync Group的话,如果机器(或者说router)有两个网段,一个内网一个外网,每个网段开启一个VRRP实例,假设VRRP配置为检测内网,那么当外网出现问题时,内网的VRRPD认为自己仍然健康,那么不会发生MASTER和BACKUP的切换,从而导致了问题。
Sync Group就是为了解决这个问题而产生的。可以把两个实例都放进一个sync group,这样的话,group里面任何一个实例出现问题都会发生切换。
vrrp_sync_group GroupName
{
group
{
InstanceName
InstanceName
}
notify_backup
notify_master
notify_fault
notify
smtp_alert
global_tracking
}
VRRP实例配置
vrrp_script ScriptName
{
script #脚本名称及所在目录(全路径)
interval #执行检测的时间间隔(单位:秒)
timeout #脚本执行超时时间(单位:秒)
weight #权重,控制vrrp实例实际的优先级
rise #指定脚本执行结果连续成功多少次算是正常
fall #指定脚本执行结果连续成功多少次算是失败
}
vrrp_instance InstanceName
{
use_vmac
native_ipv6
state #vrrp实例状态 MASTER | BACKUP
interface #vrrp实例绑定的网卡
dont_track_primary #是否忽略网卡错误
track_interface #设置额外的监控, 里面的任意一个网卡出现问题,都会进入FAULT状态
{
eth0 #待监控的网卡名称
}
track_script #检测的脚本
{
ScriptName [ weight WEIGHT ] #脚本名称与权重 脚本名称对应vrrp_script的名称 WEIGHT值的范围为[-254, 254]
ScriptName [ weight WEIGHT]
}
mcast_src_ip #指定vrrp广播包的源IP地址, 没有该配置的情况下使用interface绑定网口的IP地址
virtual_router_id #id
priority #优先级
advert_int #广播包时间间隔(单位:秒)
virtual_ipaddress #指定的虚IP
{
}
virtual_ipaddress_excluded
{
}
virtual_routes #发生切换时添加/删除的路由
{
}
preempt #抢占模式
nopreempt #非抢占模式
preempt_delay #抢占延时, 默认时间为5分钟
debug #DEBUG级别
notify_backup #切换为backup状态时执行的脚本
notify_master #切换为master状态时执行的脚本
notify_fault #切换为fault状态时执行的脚本
notify_stop #停止时执行的脚本
notify
smtp_alert
lvs_sync_daemon_interface #keepalived之间使用的监控接口
garp_master_delay #在切换到MASTER状态后, 延迟进行gratuitous ARP请求
authentication #
{
auth_type #校验的类型 PASS | HA
auth_pass #密码 8位有效字符
}
}