keepalived的作用為保持存活服務(wù),服務(wù)啟動(dòng)后會(huì)在兩臺(tái)物理機(jī)器之間維護(hù)一個(gè)vip,但是僅有一臺(tái)物理機(jī)器擁有該vip,這樣就保證了兩臺(tái)機(jī)器之間是主備。
在ubuntu下直接執(zhí)行:sudo apt-get install keepalived
.
本例子兩臺(tái)機(jī)器的物理ip地址分別為10.101.185和10.101.1.186,要增加的虛擬ip地址為10.101.0.101、10.101.0.102、10.101.0.107和10.101.0.108,其中10.101.0.101和10.101.0.102在10.101.185上為主,10.101.0.107和10.101.0.108在10.101.1.186上為主。
keepalived的默認(rèn)配置文件位于/etc/keepalived/keepalived.conf目錄下,由于兩臺(tái)物理機(jī)器之間的主輔關(guān)系不同,配置文件也不相同。
10.101.185機(jī)器上的配置文件如下:
! Configuration File for keepalivedglobal_defs { # 報(bào)警郵箱配置 notification_email { ops@yidian-inc.com } smtp_server 10.101.1.139 smtp_connect_timeout 30 router_id 101-1-185-lg-201-l10.yidian.com // 運(yùn)行機(jī)器的唯一標(biāo)識(shí),每個(gè)機(jī)器應(yīng)該都不一樣,可以直接使用hostname代替,具體用在什么地方暫時(shí)不是很清楚}vrrp_instance ha-internal-1 { state MASTER interface eth0 virtual_router_id 1 // VRID標(biāo)記,可以設(shè)置為0-255,對(duì)應(yīng)VRRD協(xié)議中的Virtual Rtr Id priority 100 // 對(duì)應(yīng)VRRD協(xié)議中的priority選項(xiàng) advert_int 1 // 檢測(cè)間隔,默認(rèn)為1s,對(duì)應(yīng)VRRD協(xié)議中的adver int authentication { auth_type PASS // 認(rèn)證方式,支持PASS和AH auth_pass 1-internal-ha // 認(rèn)證的密碼,從抓取的包中看到 } // 聲明的虛擬ip地址,這些ip會(huì)在VRRP一些的一個(gè)包發(fā)送 // 另外VRRP協(xié)議中還有一個(gè)Count IP Addrs用來(lái)指明需要聲明多少個(gè)VIP virtual_ipaddress { 10.101.0.101/22 dev eth0 10.101.0.102/22 dev eth0 }}vrrp_instance ha-internal-2 { state BACKUP interface eth0 virtual_router_id 2 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 2-internal-ha } virtual_ipaddress { 10.101.0.107/22 dev eth0 10.101.0.108/22 dev eth0 }}
10.101.1.186上的配置文件如下:
! Configuration File for keepalivedglobal_defs { notification_email { ops@yidian-inc.com } smtp_server 10.101.1.139 smtp_connect_timeout 30 router_id 101-1-186-lg-201-l10.yidian.com}vrrp_instance ha-internal-1 { state BACKUP interface eth0 virtual_router_id 1 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1-internal-ha } virtual_ipaddress { 10.101.0.101/22 dev eth0 10.101.0.102/22 dev eth0 }}vrrp_instance ha-internal-2 { state MASTER interface eth0 virtual_router_id 2 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 2-internal-ha } virtual_ipaddress { 10.101.0.107/22 dev eth0 10.101.0.108/22 dev eth0 }}
配置文件搭建完畢后,通過(guò)sudo service keepalived start
即可啟動(dòng)服務(wù),執(zhí)行ip addr
命令即可看到vip。需要注意的是,通過(guò)ifconfig
命令是看不到vip的。
有了vip,其他服務(wù)就可以利用該vip做一些綁定vip的端口來(lái)作為主輔熱備模式了。
關(guān)于VRRP的詳細(xì)說(shuō)明可以查看RFC3768,我這里記錄幾點(diǎn)說(shuō)明。
協(xié)議中的以太網(wǎng)Destination Address的值必須為多播地址224.0.0.18。
當(dāng)前正在使用的VRRP版本為version 2,認(rèn)證功能已經(jīng)取消,但為了向下兼容,仍然可用。在抓取的包中,仍在使用認(rèn)證信息
聯(lián)系客服