高可用測試:iptables模擬機器斷網


背景

具有HA(高可用)的軟件服務在集群某節點出現斷網的時候,整個集群依舊可以提供正常的服務。很多開源軟件都有HA版本(比如rocketmq,kafka),如果現在有一個軟件需要進行高可用測試,該如何模擬其中的斷網場景呢?
比如3台機器A,B,C組成的一個集群環境,其中A機器斷網,B和C依舊能夠正常工作。
A:192.168.21.23
B:192.168.21.24
C:192.168.21.25
跳板機D:192.168.21.26
現在嘗試模擬A機器斷網,B和C機器無法訪問A的情況。

步驟

1. 首先保證有機器(跳板機)可以ssh到A機器,以防止A機器設置斷網后,無法再登陸到A機器上恢復A的網絡。(如果跳板機D已經和A建立ssh互信,可以跳過此步驟)

#如果跳板機D上有ssh公鑰:~/.ssh/id_rsa.pub,則跳過下面命令執行;如果沒有,執行如下命令生成一個。
ssh-keygen -t rsa

#拷貝跳板機D的~/.ssh/id_rsa.pub到A機器的信任文件末尾
vi ~/.ssh/authorized_keys

#測試互通,在跳板機D上執行如下,如果能執行說明互信建立成功
ssh 192.168.21.23 true

2. 模擬斷網:在A機器上執行iptables命令設置規則

登陸到A機器上執行如下命令,只讓跳板機D能夠訪問A
iptables -t raw -I PREROUTING -s 192.168.21.26 -j ACCEPT
iptables -t raw -A PREROUTING -j DROP

3. 恢復網絡:在A機器上執行iptables清除規則

iptables -t raw -F

其它

清除iptables的各種命令
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -F
iptables -X
iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t raw -F
iptables -t raw -X
iptables -t raw -P PREROUTING ACCEPT
iptables -t raw -P OUTPUT ACCEPT

博主:測試生財(一個不為996而996的測開碼農)

座右銘:專注測試開發與自動化運維,努力讀書思考寫作,為內卷的人生奠定財務自由。

內容范疇:技術提升,職場雜談,事業發展,閱讀寫作,投資理財,健康人生。

csdn:https://blog.csdn.net/ccgshigao

博客園:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374

微信公眾號:測試生財(定期分享獨家內容和資源)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM