1. 程式人生 > 其它 >keepalived 學習筆記(三)vrrp包通過防火牆

keepalived 學習筆記(三)vrrp包通過防火牆

1、問題

使用keepalived方案給服務作主備高可用,根據keepalived 學習筆記(二)知道主備伺服器上的 keepalived軟體是master定時傳送 vrrp到backup,維持主備關係的,若是backup收不到從主機發送給來的 vrrp包,則 backup會升級成master,這樣很可能出現兩主,也就是俗稱腦裂。在測試驗證過程中,發現搭建的時候主備關係是正常的,但是把主備機的防火牆開啟,就會出現主主,通過在主備機上抓包會發現收不到任何 vrrp包,基於此,分析是防火牆沒有通過keepalived的 vrrp包所致。

2、解決方案

(1) 啟用IP轉發

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl 
-p

(2) 防火牆新增規則

# firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 \
  --in-interface enp0s8 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
success
# firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 \
  --out-interface enp0s8 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
success
# firewall
-cmd --reload success

以上enp0s8 是keepalived在配置檔案中繫結的網絡卡

224.0.0.18 是keepalived採用多播模式傳送時 vrrp包 的目標地址

若是單播模式傳送的話, destination的值直接對端機的IP即可

參考資料:

https://www.cnblogs.com/lgh344902118/p/7737129.html