Keepalived时主备负载均衡器都有VIP的问题:VRRP协议问题
文章目錄
- 一、企業(yè)案例背景
- 二、異常現(xiàn)象
- 三、分析結(jié)論+解決思路
- 3.1. 分析結(jié)論
- 3.2. 解決思路
- 四、SElinux 處理
- 4.1. 查看SElinux的狀態(tài):
- 4.2. 關(guān)閉SElinux
- 五、Firewalld防火墻配置
- 5.1. 開啟vrrp 協(xié)議
- 5.2. 重新啟動(dòng)防火墻
- 5.3. 查看啟動(dòng)日志
- 5.4. 虛擬ip驗(yàn)證
- 5.5. 停止master節(jié)點(diǎn)的keepalived
- 六、Iptables防火墻配置
- 6.1. 配置增加一條防火墻規(guī)則
- 6.2. 防火墻規(guī)則注意事項(xiàng)
一、企業(yè)案例背景
搭建了keepalived 主備集群,master節(jié)點(diǎn)權(quán)重100,slave節(jié)點(diǎn)權(quán)重是80,按照評(píng)測的話,master和slave節(jié)點(diǎn)都啟動(dòng)keepalived服務(wù)后,虛擬vip正常應(yīng)該在master節(jié)點(diǎn),slave節(jié)點(diǎn)不顯示虛擬vip;當(dāng)master節(jié)點(diǎn)的keepalived服務(wù)宕機(jī)后,虛擬vip會(huì)漂移到slave節(jié)點(diǎn)上,繼續(xù)提供keepalived服務(wù)后服務(wù)。
二、異常現(xiàn)象
但是master和slave節(jié)點(diǎn)都出現(xiàn)了虛擬vip,這種現(xiàn)象和咱們預(yù)估的結(jié)果不一樣。但是關(guān)閉防火墻后和咱們預(yù)估的結(jié)果一樣,說明和防火墻有關(guān)。
三、分析結(jié)論+解決思路
3.1. 分析結(jié)論
通過不停的查找問題,我發(fā)現(xiàn),只需要關(guān)閉備用負(fù)載均衡器的防火墻,那么主備服務(wù)器都有VIP的情況就會(huì)得以解決。由此可以肯定,問題就是出現(xiàn)在了防火墻這里。
首先用tcpdump查看一下vrrp的組播情況,這個(gè)隨便在同網(wǎng)絡(luò)的任意一臺(tái)服務(wù)器抓包即可:
查看下抓包的結(jié)果:
由上圖可以看到,192.168.0.114和192.168.0.112兩個(gè)IP在輪流發(fā)送組播信號(hào)。而正常的應(yīng)該是由MASTER服務(wù)器發(fā)送組播,如果BACKUP收不到MASTER的組播信號(hào)了,那么判定MASTER宕機(jī)了,BACKUP就會(huì)接手VIP。
3.2. 解決思路
如果關(guān)閉防火墻,keepalived問題解決了,那么問題就簡單了,我們只需要讓VRRP組播其通過防火墻即可。
四、SElinux 處理
4.1. 查看SElinux的狀態(tài):
getenforce可能的結(jié)果有三個(gè):
Enforcing #強(qiáng)制開啟Permissive #寬容模式Disabled #關(guān)閉4.2. 關(guān)閉SElinux
#編輯config sudo vim /etc/selinux/config #2.把下面2行注釋掉 #SELINUX=enforcing #SELINUXTYPE=targeted #3.添加一行配置 SELINUX=disabled :wq! #保存退出 setenforce 0 #使配置立即生效五、Firewalld防火墻配置
centos 防火墻有兩種管理方式firewall, iptables兩者不能同時(shí)開啟
適用于centos7.x系統(tǒng)
5.1. 開啟vrrp 協(xié)議
主備都運(yùn)行下面的命令
sudo firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --protocol vrrp -j ACCEPT5.2. 重新啟動(dòng)防火墻
firewall-cmd --reload5.3. 查看啟動(dòng)日志
master節(jié)點(diǎn)
slave節(jié)點(diǎn)
從上面截圖中可以看出,由于 with higher priority 100, ours 80很明顯114權(quán)重比112的權(quán)重大,虛擬vip在192.168.0.114上。
5.4. 虛擬ip驗(yàn)證
master節(jié)點(diǎn)
slave節(jié)點(diǎn)
5.5. 停止master節(jié)點(diǎn)的keepalived
master節(jié)點(diǎn)
slave節(jié)點(diǎn)
六、Iptables防火墻配置
適用于centos6.x系統(tǒng)
我們只需要在防火墻中增加一條規(guī)則即可:
6.1. 配置增加一條防火墻規(guī)則
-A INPUT -p vrrp -j ACCEPT6.2. 防火墻規(guī)則注意事項(xiàng)
但是這里有個(gè)坑,默認(rèn)的防火墻中基本是如下配置:
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT添加規(guī)則一定不要在
-A INPUT -j REJECT --reject-with icmp-host-prohibited
之后,一定要加在其前面。
這時(shí)候重啟防火墻后查看BACKUP的ip,就會(huì)發(fā)現(xiàn)VIP已經(jīng)不在了。
再關(guān)閉一下MASTER的keepalived,并打開BACKUP的日志,就可以看到正確的內(nèi)容
總結(jié)
以上是生活随笔為你收集整理的Keepalived时主备负载均衡器都有VIP的问题:VRRP协议问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Schema整合Quart
- 下一篇: json处理最外层引号