概述
- keepalived 原理
- 配置文件詳解
keepalived原理
VRRP(Virtual Router Reundancy Protocol)路由冗余協(xié)議:將兩臺或多臺路由器設(shè)備虛擬成一個設(shè)備,對外提供虛擬路由器IP(一個或多個),而在路由器組內(nèi)部犬辰,如果實際擁有這個對外IP的路由器如果工作正常的話就是MASTER,或者是通過算法選舉產(chǎn)生劳淆,MASTER實現(xiàn)針對虛擬路由器IP的各種網(wǎng)絡(luò)功能。VRRP協(xié)議使用多播數(shù)據(jù)來傳輸VRRP數(shù)據(jù)棚唆,VRRP數(shù)據(jù)使用特殊的虛擬源MAC地址發(fā)送數(shù)據(jù)而不是自身網(wǎng)卡的MAC地址生巡,VRRP運(yùn)行時只有MASTER路由器定時發(fā)送VRRP通告信息洽蛀,表示MASTER工作正常以及虛擬路由器IP(組)摹迷,BACKUP只接收VRRP數(shù)據(jù),不發(fā)送數(shù)據(jù)郊供,如果一定時間內(nèi)沒有接收到MASTER的通告信息峡碉,各BACKUP將宣告自己成為MASTER,發(fā)送通告信息驮审,重新進(jìn)行MASTER選舉狀態(tài)鲫寄。
keepalived是模塊化設(shè)計,不同模塊負(fù)責(zé)不同的功能:core头岔,check塔拳,vrrplobipfwc,libipvs*
core: 是keepalived 的核心鼠证,負(fù)責(zé)主進(jìn)程的啟動和維護(hù)峡竣,全局配置文件的加載解析等
check: 負(fù)責(zé)healthchecker,包括各種健康檢查方式量九,以及對應(yīng)的配置的解析包括LVS的配置解析
vrrp:VRRPD子進(jìn)程适掰,VRRPD子進(jìn)程就是來實現(xiàn)VRRP協(xié)議的
libipfwc:iptables(ipchains)庫颂碧,配置LVS會用到
libipvs*:配置LVS會用到keepalived啟動后會有三個進(jìn)程
父進(jìn)程:內(nèi)存管理,子進(jìn)程管理等等
子進(jìn)程:VRRP子進(jìn)程
子進(jìn)程:healthchecker子進(jìn)程
Keepalived配置文件
- yum 安裝后类浪,配置文件位置: /etc/keepalived/keepalived.conf
- 配置區(qū)域: Global Configuration(全局配置)载城,VRRPD配置,LVS配置
- 全局配置:全局定義(global definition)费就,靜態(tài)路由配置(static ipaddress/routes)
- 全局定義
global_defs { #全局配置標(biāo)識诉瓦,表明這個區(qū)域{}是全局配置
notification_email { #表示發(fā)送通知郵件時郵件源地址是誰
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc #表示keepalived在發(fā)生諸如切換操作時需要發(fā)送email通知,以及email發(fā)送給哪些郵件地址力细,郵件地址可以多個睬澡,每行一個
smtp_server 192.168.200.1 #表示發(fā)送email時使用的smtp服務(wù)器地址,這里可以用本地的sendmail來實現(xiàn)
smtp_connect_timeout 30 #連接smtp連接超時時間
router_id LVS_DEVEL #機(jī)器標(biāo)識
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
- 靜態(tài)路由配置
static_ipaddress
{
192.168.1.1/24 brd + dev eth0 scope global #相當(dāng)于: 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同理眠蚂,一般這個區(qū)域不需要配置
src $SRC_IP to $DST_IP via $GW dev $SRC_DEVICE
}
這里實際上就是給服務(wù)器配置真實的IP地址和路由的煞聪,在復(fù)雜的環(huán)境下可能需要配置,一般不會用這個來配置逝慧,我們可以直接用vi /etc/sysconfig/network-script/ifcfg-eth1來配置昔脯!
- VRRPD配置:VRRP同步組(synchroization group),VRRP實例(VRRP Instance)笛臣,VRRP腳本三類
- VRRP同步組(synchroization group)