Centos

keepalived 多個實例

  • October 27, 2020

我有兩個執行 keepalived 的應用程序伺服器,它們都在同一網路上使用 keepalived。我一直在系統日誌中看到Jan 8 11:49:01 <server> Keepalived_vrrp[13764]: bogus VRRP packet received on eth0 !!!。昨天我將第二個應用程序上線後似乎出現了問題,除了將應用程序相互隔離之外,是否有解決此問題的正確方法?

下面是來自其中一個應用伺服器上的一個節點的 keepalived.conf,它們都很相似,兩個不同的應用使用不同的密碼,但都使用相同的virtual_router_id.

! Configuration File for keepalived

vrrp_instance VI_1 {
   state MASTER
   interface eth0
   virtual_router_id 51
   priority 100
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 2222
   }
   virtual_ipaddress {
       <public_ip>/24 dev eth0
   }
}

我能夠通過將以下內容添加到vrrp_instance VI_1塊中來解決此問題。

vrrp_unicast_bind 192.168.1.11   # Internal IP of this machine
vrrp_unicast_peer 192.168.1.12   # Internal IP of peer

最初,心跳似乎是通過單播發出的,並被其他實例接收。通過定義機器的對等點,您可以避免這個問題。

就我而言,同一網路上安裝了多個 keepalived 路由器,並且在兩個不同的路由器中,virtual_router_id變數中的 id 相同。

引用自:https://serverfault.com/questions/658184