keepalived 學習筆記(三)vrrp包通過防火牆
阿新 • • 發佈:2021-07-05
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