是否可以實現兩個具有故障轉移和複製功能的 OpenVPN?例如,如果其中一個發生故障/故障,則另一個可用於身份驗證、伺服器/用戶端配置等。
答案1
我不明白為什麼要從大砲射擊蒼蠅。 IHMO 有一個更簡單的方法:使用內建 OpenVPN 功能和 linux iproute2 實作多路徑冗餘。我會更安全、更穩定、消耗更少的資源。
來源:https://openvpn.net/index.php/open-source/documentation/howto.html
實施負載平衡/故障轉移配置客戶端
OpenVPN 用戶端設定可以參考多個伺服器進行負載平衡和故障轉移。例如:
remote server1.mydomain
remote server2.mydomain
remote server3.mydomain
將指示 OpenVPN 用戶端依序嘗試與 server1、server2 和 server3 建立連線。如果現有連線中斷,OpenVPN 用戶端將重試最近連線的伺服器,如果失敗,將移至清單中的下一個伺服器。您也可以指示 OpenVPN 用戶端在啟動時隨機化其伺服器列表,以便用戶端負載按機率分佈在伺服器池中。
remote-random
如果您也希望 DNS 解析失敗導致 OpenVPN 用戶端移至清單中的下一個伺服器,請新增下列內容:
resolv-retry 60
60 參數告訴 OpenVPN 用戶端嘗試解析每個遠端 DNS 名稱 60 秒,然後再轉到清單中的下一個伺服器。
伺服器清單還可以引用在同一台電腦上執行的多個 OpenVPN 伺服器守護程序,每個守護程序偵聽不同連接埠上的連接,例如:
remote smp-server1.mydomain 8000
remote smp-server1.mydomain 8001
remote smp-server2.mydomain 8000
remote smp-server2.mydomain 8001
如果您的伺服器是多處理器計算機,則從效能角度來看,在每台伺服器上執行多個 OpenVPN 守護程式可能會很有優勢。
OpenVPN 還支援引用 DNS 名稱的遠端指令,該名稱在網域的區域配置中具有多個 A 記錄。在這種情況下,每次網域名稱解析時,OpenVPN 用戶端都會隨機選擇一條 A 記錄。伺服器
在伺服器上進行負載平衡/故障轉移配置的最簡單方法是在群集中的每台伺服器上使用等效的設定文件,但為每台伺服器使用不同的虛擬 IP 位址池除外。例如:
伺服器1
server 10.8.0.0 255.255.255.0
伺服器2
server 10.8.1.0 255.255.255.0
伺服器3
server 10.8.2.0 255.255.255.0
答案2
故障轉移?是的,我一直在使用 heartbeat 和 CRM 來做這件事。不值得嘗試複製或保留狀態;當故障轉移發生時,所有連線的用戶端都將重新進行身份驗證,這對公路戰士來說很好。這對於網站到網站 VPN 來說不太好,但(恕我直言)OpenVPN 無論如何對於這些都是錯誤的工具。