中文国产日韩欧美视频,午夜精品999,色综合天天综合网国产成人网,色综合视频一区二区观看,国产高清在线精品,伊人色播,色综合久久天天综合观看

vrrp與keepalived詳解 -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.szmdbiao.com - 電腦資料】

    一、Vrrp協(xié)議

    1、VRRP 協(xié)議簡介

    vrrp: Virtual Redundent Routing Protocol (虛擬冗余路由協(xié)議)

    在現(xiàn)實的網(wǎng)絡(luò)環(huán)境中,兩臺需要通信的主機大多數(shù)情況下并沒有直接的物理連接,

vrrp與keepalived詳解

。對于這樣的情況,它們之間路由怎樣選擇?主機如何選定到達目的主機的下一跳路由?

    這個問題通常的解決方法有二種:

    在主機上使用動態(tài)路由協(xié)議(RIP、OSPF等)

    在主機上配置靜態(tài)路由

    很明顯,在主機上配置動態(tài)路由是非常不切實際的,因為管理、維護成本以及是否支持等諸多問題。配置靜態(tài)路由就變得十分流行,但路由器|默認網(wǎng)關(guān)|default gateway卻經(jīng)常成為單點故障。

    VRRP的目的就是為了解決靜態(tài)路由單點故障問題,VRRP通過競選(election)協(xié)議來動態(tài)的將路由任務(wù)交給LAN中虛擬路由器中的某臺VRRP路由器。

    2、VRRP 工作機制

    在一個VRRP虛擬路由器中,有多臺物理的VRRP路由器,但是這多臺的物理的機器并不能同時工作,而是由一臺稱為MASTER的負責路由工作,其它的都是BACKUP,MASTER并非一成不變,VRRP讓每個VRRP路由器參與競選,最終獲勝的就是MASTER。MASTER擁有虛擬路由器的IP地址,我們的主機就是用這個IP地址作為靜態(tài)路由的,MASTER要負責轉(zhuǎn)發(fā)發(fā)送給網(wǎng)關(guān)地址的包和響應(yīng)ARP請求。

    VRRP通過競選協(xié)議來實現(xiàn)虛擬路由器的功能,所有的協(xié)議報文都是通過IP多播(multicast)包形式發(fā)送的。虛擬路由器由VRID(范圍0-255)和一組IP地址組成,對外表現(xiàn)為一個周知的MAC地址。所以,在一個虛擬路由 器中,不管誰是MASTER,對外都是相同的MAC和IP(稱之為VIP)?蛻舳酥鳈C并不需要因為MASTER的改變而修改自己的路由配置,對客戶端來說,這種主從的切換是透明的。

    在一個虛擬路由器中,只有作為MASTER的VRRP路由器會一直發(fā)送VRRP通告信息(VRRPAdvertisement message),BACKUP不會搶占MASTER,除非它的優(yōu)先級(priority)更高。當MASTER不可用時(BACKUP收不到通告信息), 多臺BACKUP中優(yōu)先級最高的這臺會被搶占為MASTER。這種搶占是非?焖俚(<1s),以保證服務(wù)的連續(xù)性。由于安全性考慮,VRRP包使用了加密協(xié)議進行加密。

    3、相關(guān)術(shù)語

    虛擬路由器:由一個 Master 路由器和多個 Backup 路由器組成。主機將虛擬路由器當作默認網(wǎng)關(guān)。

    VRID:虛擬路由器的標識。有相同 VRID 的一組路由器構(gòu)成一個虛擬路由器。

    Master 路由器:虛擬路由器中承擔報文轉(zhuǎn)發(fā)任務(wù)的路由器。

    Backup 路由器:Master 路由器出現(xiàn)故障時,能夠代替 Master 路由器工作的路由器。

    虛擬 IP 地址:虛擬路由器的 IP 地址。一個虛擬路由器可以擁有一個或多個IP 地址。

    IP 地址擁有者:接口 IP 地址與虛擬 IP 地址相同的路由器被稱為 IP 地址擁有者。

    虛擬 MAC 地址:一個虛擬路由器擁有一個虛擬 MAC 地址。虛擬 MAC 地址的格式為 00-00-5E-00-01-{VRID}。通常情況下,虛擬路由器回應(yīng) ARP 請求

    使用的是虛擬 MAC 地址,只有虛擬路由器做特殊配置的時候,才回應(yīng)接口的真實 MAC 地址。

    priority(優(yōu)先級):VRRP 根據(jù)優(yōu)先級來確定虛擬路由器中每臺路由器的地位。

    搶占方式(默認):如果 Backup 路由器工作在搶占方式下,當它收到 VRRP 報文后,會將自己的優(yōu)先級與通告報文中的優(yōu)先級進行比較。如果自己的優(yōu)先級比當前的 Master 路由器的優(yōu)先級高,就會主動搶占成為 Master 路由器;否則,將保持 Backup 狀態(tài)。

    非搶占方式:如果 Backup 路由器工作在非搶占方式下,則只要 Master 路由器沒有出現(xiàn)故障,Backup 路由器即使隨后被配置了更高的優(yōu)先級也不會成為

    Master 路由器。

    4、VRRP 工作流程

    (1).初始化:

    路由器啟動時,如果路由器的優(yōu)先級是255(最高優(yōu)先級,路由器擁有路由器地址),要發(fā)送VRRP通告信息,并發(fā)送廣播ARP信息通告路由器IP地址對應(yīng)的MAC地址為路由虛擬MAC,設(shè)置通告信息定時器準備定時發(fā)送VRRP通告信息,轉(zhuǎn)為MASTER狀態(tài);否則進入BACKUP狀態(tài),設(shè)置定時器檢查定時檢查是否收到MASTER的通告信息。

    (2).Master

    設(shè)置定時通告定時器;

    用VRRP虛擬MAC地址響應(yīng)路由器IP地址的ARP請求;

    轉(zhuǎn)發(fā)目的MAC是VRRP虛擬MAC的數(shù)據(jù)包;

    如果是虛擬路由器IP的擁有者,將接受目的地址是虛擬路由器IP的數(shù)據(jù)包,否則丟棄;

    當收到shutdown的事件時刪除定時通告定時器,發(fā)送優(yōu)先權(quán)級為0的通告包,轉(zhuǎn)初始化狀態(tài);

    如果定時通告定時器超時時,發(fā)送VRRP通告信息;

    收到VRRP通告信息時,如果優(yōu)先權(quán)為0,發(fā)送VRRP通告信息;否則判斷數(shù)據(jù)的優(yōu)先級是否高于本機,或相等而且實際IP地址大于本地實際IP,設(shè)置定時通告定時器,復位主機超時定時器,轉(zhuǎn)BACKUP狀態(tài);否則的話,丟棄該通告包;

    (3).Backup

    設(shè)置主機超時定時器;

    不能響應(yīng)針對虛擬路由器IP的ARP請求信息;

    丟棄所有目的MAC地址是虛擬路由器MAC地址的數(shù)據(jù)包;

    不接受目的是虛擬路由器IP的所有數(shù)據(jù)包;

    當收到shutdown的事件時刪除主機超時定時器,轉(zhuǎn)初始化狀態(tài);

    主機超時定時器超時的時候,發(fā)送VRRP通告信息,廣播ARP地址信息,轉(zhuǎn)MASTER狀態(tài);

    收到VRRP通告信息時,如果優(yōu)先權(quán)為0,表示進入MASTER選舉;否則判斷數(shù)據(jù)的優(yōu)先級是否高于本機,如果高的話承認MASTER有效,復位主機超時定時器;否則的話,丟棄該通告包;

    5、ARP查詢處理

    當內(nèi)部主機通過ARP查詢虛擬路由器IP地址對應(yīng)的MAC地址時,MASTER路由器回復的MAC地址為虛擬的VRRP的MAC地址,而不是實際網(wǎng)卡的 MAC地址,這樣在路由器切換時讓內(nèi)網(wǎng)機器覺察不到;而在路由器重新啟動時,不能主動發(fā)送本機網(wǎng)卡的實際MAC地址。如果虛擬路由器開啟的ARP代理 (proxy_arp)功能,代理的ARP回應(yīng)也回應(yīng)VRRP虛擬MAC地址。

    6、認證方式與工作模式

    認證方式:

    簡單字符認證

    md5認證

    工作模式:

    master-backup模式

    master-master模式

    二、Keepalived

    1、Keepalived 定義

    什么是Keepalived呢?

    觀其名可知保持存活在網(wǎng)絡(luò)里面就是保持在線了也就是所謂的高可用或熱備用來防止單點故障(單點故障是指一旦某一點出現(xiàn)故障就會導致整個系統(tǒng)架構(gòu)的不可用)

    在Linux主機上,以daemon(守護進程)方式實現(xiàn)了vrrp協(xié)議,并提供了完成配置ipvs規(guī)則及實現(xiàn)相應(yīng)real server狀態(tài)檢測能力。

    能調(diào)用外部腳本

    輕量靈活,不能解決腦裂問題

    適用場景:ipvs, haproxy, nginx(reverse proxy)

    Keepalived 是一個基于VRRP協(xié)議來實現(xiàn)的LVS服務(wù)高可用方案,可以利用其來避免單點故障。

    一個LVS服務(wù)會有2臺服務(wù)器運行Keepalived,一臺為主服務(wù)器(MASTER),一臺為備份服務(wù)器(BACKUP),但是對外表現(xiàn)為一個虛擬IP,主服務(wù)器會發(fā)送特定的消息給備份服務(wù)器,當備份服務(wù)器收不到這個消息的時候,即主服務(wù)器宕機的時候, 備份服務(wù)器就會接管虛擬IP,繼續(xù)提供服務(wù),從而保證了高可用性,Keepalived是VRRP的完美實現(xiàn)。

    2、Keepalived組件

    keepalived是模塊化設(shè)計,不同模塊負責不同的功能。

    core:keepalived的核心,負責主進程的啟動和維護,全局配置文件的加載解析等;

    check:負責healthchecker(健康檢查),包括了各種健康檢查方式,以及對應(yīng)的配置文件的解析;

    vrrp:VRRPD子進程,用來實現(xiàn)VRRP協(xié)議;

    libipfwc:iptables(ipchains)庫,配置LVS;

    libipvs*:配置LVS;

    3、keepalived進程

    keepalived啟動后會有三個進程:

    父進程:內(nèi)存管理,子進程管理等等

    子進程:VRRP子進程

    子進程:healthchecker子進程

    兩個子進程都被系統(tǒng)WatchDog看管,兩個子進程各自負責自己的事,

    healthchecker子進程負責檢查各自服務(wù)器的健康程度,如果healthchecker子進程檢查到MASTER上服務(wù)不可用了,就會通知本機上的兄弟VRRP子進程,讓他刪除通告,并且去掉虛擬IP,轉(zhuǎn)換為BACKUP狀態(tài)。

    三、keepalived安裝與配置

    1、安裝keepalived

    [root@BAIYU_180 html]# yum install keepalived -y

    [root@BAIYU_180 html]# rpm -ql keepalived

    /etc/keepalived

    /etc/keepalived/keepalived.conf

    /etc/rc.d/init.d/keepalived

    /etc/sysconfig/keepalived

    /usr/bin/genhash

    /usr/sbin/keepalived

    /usr/share/doc/keepalived-1.2.7

    2、keepalived配置

    keepalived配置文件/etc/keepalived/keepalived.conf分為三個部分:

    global_defs: 全局配置

    vrrp_instance: vrouter的配置

    lvs: ipvs相關(guān)配置

    (1)查看/etc/keepalived/keepalived.conf

   

[root@BAIYU_180 keepalived]# cat keepalived.conf ! Configuration File for keepalivedglobal_defs {      #全局配置   notification_email {        #報警郵件發(fā)送給誰          acassen@firewall.loc     failover@firewall.loc     sysadmin@firewall.loc   }   notification_email_from Alexandre.Cassen@firewall.loc   #通知郵件的發(fā)件人郵箱   smtp_server 192.168.200.1     #郵件服務(wù)器地址   smtp_connect_timeout 30       #件服務(wù)器連接的超時時間   router_id LVS_DEVEL          #機器標識}vrrp_instance VI_1 {      #vroute標識    state MASTER          #當前節(jié)點的狀態(tài) 主節(jié)點    interface eth0        #發(fā)送vip通告的接口    virtual_router_id 51  #虛擬路由的ID號,是虛擬路由MAC的最后一位地址    priority 100           #此節(jié)點的優(yōu)先級,主節(jié)點的優(yōu)先級需要比其他節(jié)點高    advert_int 1           #vip通告的時間間隔       authentication {       #認證配置        auth_type PASS     #認證機制,默認是明文        auth_pass 1111     #隨機字符當密碼    }    virtual_ipaddress {   #vip        192.168.100.41        192.168.200.17        192.168.200.18    }}

    ###########################################只要以上的配置,把下面的都注釋就可以實現(xiàn)

    簡單高可用(此時只能實現(xiàn)主機故障|網(wǎng)絡(luò)故障|keepalived進程停止時vip轉(zhuǎn)移,或者通過腳本實現(xiàn)其它服務(wù)的切換)

   

virtual_server 192.168.200.100 443 {     #集群所使用的VIP和端口    delay_loop 6    lb_algo rr             #使用的負載均衡算法    lb_kind NAT            #類型    nat_mask 255.255.255.0    persistence_timeout 50  #持久連接時間    protocol TCP            #使用的協(xié)議    real_server 192.168.201.100 443 {      #節(jié)點服務(wù)器使用的IP及端口        weight 1        SSL_GET {                url {              path /              digest ff20ad2481f97b1754ef3e12ecd3a9cc            }            url {              path /mrtg/              digest 9b3a0c85a887a256d6939da88aabd8cd            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }    }}virtual_server 10.10.10.2 1358 {    delay_loop 6    lb_algo rr     lb_kind NAT    persistence_timeout 50    protocol TCP    sorry_server 192.168.200.200 1358    real_server 192.168.200.2 1358 {        weight 1        HTTP_GET {            url {               path /testurl/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334d            }            url {               path /testurl2/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334d            }            url {               path /testurl3/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334d            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }    }    real_server 192.168.200.3 1358 {        weight 1        HTTP_GET {            url {               path /testurl/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334c            }            url {               path /testurl2/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334c            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }    }}virtual_server 10.10.10.3 1358 {    delay_loop 3    lb_algo rr     lb_kind NAT    nat_mask 255.255.255.0    persistence_timeout 50    protocol TCP    real_server 192.168.200.4 1358 {        weight 1        HTTP_GET {            url {               path /testurl/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334d            }            url {               path /testurl2/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334d            }            url {               path /testurl3/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334d            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }    }    real_server 192.168.200.5 1358 {        weight 1        HTTP_GET {            url {               path /testurl/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334d            }            url {               path /testurl2/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334d            }            url {               path /testurl3/test.jsp              digest 640205b7b0fc66c1ea91c463fac6334d            }            connect_timeout 3            nb_get_retry 3            delay_before_retry 3        }    }}

    (2)配置文件中指令詳解

    vip的配置

   

virtual_ipaddress {               <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>                                                  廣播地址            設(shè)備        作用域                           別名               192.168.200.17/24 dev eth1               192.168.200.18/24 dev eth2 label eth2:1           }

    如果有其它資源可用于做為主備節(jié)點角色判斷的標準,可以通過如下配置實現(xiàn):

   

vrrp_script. NAME {      #先定義一個腳本        }vrrp_instance NAME{        track_script. {    #再調(diào)用        }        }

    示例:

   

vrrp_script. chk_mt_down {               script. "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"      interval 1  #監(jiān)控間隔時間     weight -15  #當健康檢查腳本失敗后,主機權(quán)重將會-15    fall 2 #失敗次數(shù)      rise 1 #成功數(shù)次  }vrrp_instance NAME{        track_script. {                chk_mt_down                }            }

    這個腳本實現(xiàn)了手動將節(jié)點在MASTER和BACKUP之間切換而不用關(guān)閉節(jié)點|關(guān)閉節(jié)點的網(wǎng)絡(luò)|節(jié)點上的keepalived,

電腦資料

vrrp與keepalived詳解》(http://www.szmdbiao.com)。

    四、雙主模式配置實例

    定義2個路由,互為主備

    適用于前端調(diào)度器(LB)的高可用,2個公網(wǎng)ip,在DNS做2條A記錄,還實現(xiàn)了一定程度上的負載均衡,任何一個調(diào)度器掛了也不影響客戶訪問,

    180節(jié)點:

   

[root@BAIYU_180 keepalived]# cat keepalived.conf! Configuration File for keepalivedglobal_defs {   notification_email {       xxj@192.168.100.180   }   notification_email_from xiexiaojun   smtp_server 127.0.0.1   smtp_connect_timeout 30   router_id LVS_DEVEL}vrrp_script. chk_mt_down {script. "[ -f /etc/keepalived/down ] && exit 1 || exit 0"interval 1weight -15   }vrrp_instance VI_1 {       state MASTER    interface eth0    virtual_router_id 51    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass vi111    }    virtual_ipaddress {        192.168.100.41    }track_script. {chk_mt_down}}vrrp_instance VI_2 {    state BACKUP    interface eth0    virtual_router_id 52    priority 90    advert_int 1    authentication {        auth_type PASS        auth_pass vi222    }    virtual_ipaddress {        192.168.100.51    }track_script. {chk_mt_down}}

    179節(jié)點:

   

[root@BAIYU_179 keepalived]# cat keepalived.conf! Configuration File for keepalivedglobal_defs {   notification_email {       xxj@192.168.100.180   }   notification_email_from xiexiaojun   smtp_server 127.0.0.1   smtp_connect_timeout 30   router_id LVS_DEVEL}vrrp_script. chk_mt_down {script. "[ -f /etc/keepalived/down ] && exit 1 || exit 0"interval 1weight -15}vrrp_instance VI_1 {    state BACKUP    interface eth0    virtual_router_id 51    priority 90    advert_int 1    authentication {        auth_type PASS        auth_pass vi111    }    virtual_ipaddress {        192.168.100.41    }track_script. {chk_mt_down}}vrrp_instance VI_2 {    state MASTER    interface eth0    virtual_router_id 52    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass vi222    }    virtual_ipaddress {        192.168.100.51    }track_script. {chk_mt_down}}

最新文章