天天看點

我個人的keepalived-1.4.2實踐:安裝與測試(2)(★firecat推薦★)

ifconfig隻能檢視實體網卡,ip addr或者ip a才能看見虛拟ip,172.16.6.161是真實ip,172.16.6.200是虛拟ip

[root@localhost init.d]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:b9:7b:31 brd ff:ff:ff:ff:ff:ff
    inet 172.16.6.161/24 brd 172.16.6.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 172.16.6.200/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::2176:1363:975e:6c17/64 scope link 
       valid_lft forever preferred_lft forever      

3、停止

/etc/init.d/keepalived stop

或者 service keepalived stop

4、通過終端指令來檢視虛拟ip是否生效存在:

正确狀态下,主機會生效,指令有傳回查詢結果;備機不生效,指令無查詢結果。

主機異常時,備機才生效。

也就是說,正常兩個主機啟動keepalived的時候,應該是master 綁定了虛拟ip。通過指令 ip a 和ip add|grep 172.16.6.200,隻有在master機器上能看到綁定的虛拟ip,而backup上是看不到的。

[root@localhost ~]# ip add|grep 172.16.6.200

   inet 172.16.6.200/32 scope global ens33

5、本人的實測環境是:在一台電腦開了2個CentOS 7虛拟機,ip分别是

主伺服器A:172.16.6.161

備伺服器B:172.16.6.135

防火牆處于關閉狀态,我通過service keepalived stop指令來測試主備的變化。

按照以上的配置資訊,我現在遇到的問題:兩個keepalived啟動的時候,通過指令ip a和ip add|grep 172.16.6.200, 都能看到綁定了虛拟ip,相當于兩台都是master,那怎麼辦呢?

出現這問題的場景是在伺服器網絡環境中,因為路由交換層禁用了ARP的廣播限制,造成KEEPALIVE主備協定無法通過廣播的方式進行通信,造成主備兩台伺服器都強占HAVIP位址,出現同時兩台伺服器都有VIP位址的情況出現,必須通過配置來指定IP的兩台伺服器間進行通訊。也就是說主備vvrp直接無法通信的原因,改成單點傳播就ok了:

主機配置keepalived.conf如下,重點關注unicast_src_ip和unicast_peer字段。

! Configuration File for keepalived
global_defs {
   notification_email { #指定Keepalived在發生事情的時候,發送郵件通知,每行一個位址
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected] #指定發件人
   smtp_server 192.168.200.1 #發送email的smtp位址
   smtp_connect_timeout 30 #逾時時間
   router_id lb01 #運作Keepalived的機器辨別号,主從機必須不同
   ##vrrp_skip_check_adv_addr #注釋掉vrrp_strict相關是為了解決虛拟ip,ping不通的問題
   ##vrrp_strict
   ##vrrp_garp_interval 0
   ##vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33 #實體網卡名稱,主節點和備節點需要相同
    virtual_router_id 100 #唯一的id,主從機必須相同
    priority 150 #優先級,主節點大于備節點,建議至少相差50
    unicast_src_ip  172.16.6.161 #本地IP位址
    unicast_peer {
                  172.16.6.135 #對端IP位址,此位址一定不能忘記
                       }
    advert_int 1 #通信檢查間隔時間1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.6.200 #虛拟ip,會綁定在ens33網卡
    }
}      

備機配置keepalived.conf如下,重點關注unicast_src_ip和unicast_peer字段。

! Configuration File for keepalived
global_defs {
   notification_email { #指定Keepalived在發生事情的時候,發送郵件通知,每行一個位址
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected] #指定發件人
   smtp_server 192.168.200.1 #發送email的smtp位址
   smtp_connect_timeout 30 #逾時時間
   router_id lb02 #運作Keepalived的機器辨別号,主從機必須不同
   ##vrrp_skip_check_adv_addr #注釋掉vrrp_strict相關是為了解決虛拟ip,ping不通的問題
   ##vrrp_strict
   ##vrrp_garp_interval 0
   ##vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33 #實體網卡名稱,主節點和備節點需要相同
    virtual_router_id 100 #唯一的id,主從機必須相同
    priority 100 #優先級,主節點大于備節點,建議至少相差50
    unicast_src_ip  172.16.6.135 #本地IP位址
    unicast_peer {
                  172.16.6.161 #對端IP位址,此位址一定不能忘記
                       }
    advert_int 1 #通信檢查間隔時間1s
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.6.200 #虛拟ip,會綁定在ens33網卡
    }
}      

6、如果開啟firewall防火牆,則記得要放行VRRP預設的多點傳播位址224.0.0.18,centos7下面改firewall防火牆指令如下:

firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT

firewall-cmd --reload

本文提及的配置檔案下載下傳位址:

https://download.csdn.net/download/libaineu2004/10286645

----

參考文章:《跟老男孩學Linux運維:Web叢集實戰》第12章

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4174822

 keepalived主備模式同時都有VIP問題