概述
- keepalived 原理
- 配置文件详解
keepalived原理
VRRP(Virtual Router Reundancy Protocol)路由冗余协议:将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),而在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话就是MASTER,或者是通过算法选举产生,MASTER实现针对虚拟路由器IP的各种网络功能。VRRP协议使用多播数据来传输VRRP数据,VRRP数据使用特殊的虚拟源MAC地址发送数据而不是自身网卡的MAC地址,VRRP运行时只有MASTER路由器定时发送VRRP通告信息,表示MASTER工作正常以及虚拟路由器IP(组),BACKUP只接收VRRP数据,不发送数据,如果一定时间内没有接收到MASTER的通告信息,各BACKUP将宣告自己成为MASTER,发送通告信息,重新进行MASTER选举状态。
keepalived是模块化设计,不同模块负责不同的功能:core,check,vrrplobipfwc,libipvs*
core: 是keepalived 的核心,负责主进程的启动和维护,全局配置文件的加载解析等
check: 负责healthchecker,包括各种健康检查方式,以及对应的配置的解析包括LVS的配置解析
vrrp:VRRPD子进程,VRRPD子进程就是来实现VRRP协议的
libipfwc:iptables(ipchains)库,配置LVS会用到
libipvs*:配置LVS会用到keepalived启动后会有三个进程
父进程:内存管理,子进程管理等等
子进程:VRRP子进程
子进程:healthchecker子进程
Keepalived配置文件
- yum 安装后,配置文件位置: /etc/keepalived/keepalived.conf
- 配置区域: Global Configuration(全局配置),VRRPD配置,LVS配置
- 全局配置:全局定义(global definition),静态路由配置(static ipaddress/routes)
- 全局定义
global_defs { #全局配置标识,表明这个区域{}是全局配置
notification_email { #表示发送通知邮件时邮件源地址是谁
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #表示keepalived在发生诸如切换操作时需要发送email通知,以及email发送给哪些邮件地址,邮件地址可以多个,每行一个
smtp_server 192.168.200.1 #表示发送email时使用的smtp服务器地址,这里可以用本地的sendmail来实现
smtp_connect_timeout 30 #连接smtp连接超时时间
router_id LVS_DEVEL #机器标识
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
- 静态路由配置
static_ipaddress
{
192.168.1.1/24 brd + dev eth0 scope global #相当于: ip addr add 192.168.1.1/24 brd + dev eth0 scope global
192.168.1.2/24 brd + dev eth1 scope global #就是给eth1配置IP地址
}
static_routes
{
src $SRC_IP to $DST_IP dev $SRC_DEVICE #路由和ip同理,一般这个区域不需要配置
src $SRC_IP to $DST_IP via $GW dev $SRC_DEVICE
}
这里实际上就是给服务器配置真实的IP地址和路由的,在复杂的环境下可能需要配置,一般不会用这个来配置,我们可以直接用vi /etc/sysconfig/network-script/ifcfg-eth1来配置!
- VRRPD配置:VRRP同步组(synchroization group),VRRP实例(VRRP Instance),VRRP脚本三类
- VRRP同步组(synchroization group)