Networking

OpenVPN同一子網多台伺服器,高可用

  • October 30, 2012

嘿大家。首先讓我說我的 Linux 體驗不是超級棒,但我通常可以輕鬆找到解決問題的方法。

在工作中,我們有一個 OpenVPN 設置,現在應該進行一些改進。主伺服器(tap 模式)在我們的辦公室執行,在相當慢的 DSL 連接後面。主要問題是,由於我通常不在辦公室,每次我想訪問虛擬網路上的某些內容時,我都必須通過該伺服器才能到達其他任何地方。

我們有兩台伺服器在 100 Mbit 連接上,用於開發和生產目的,辦公室裡還有大約 3 台伺服器(其中一台在用於 VOIP 的不同 T1 線路後面)和大約兩打每天使用網路的客戶從不同的位置。

我們遇到過網路路由(我們無法控制)不允許人們訪問我們的主要 OpenVPN 伺服器而其他位置可以連接的情況。此外,任何時候辦公室外的人想要從任何伺服器(例如,500 MB 程式碼儲存庫)獲取一些東西,如今高達 20 KB/s 的下載速度是不可接受的(我提到過慢 DSL 嗎?好的)。我們不得不在這個伺服器上實現流量整形,因為最大化這個連接是相當微不足道的。

我曾想過在網路中執行兩個(或更多)OpenVPN 伺服器。但是,它們必須具有相同的子網,因為我們的應用程序依賴於虛擬網路的 IP 地址來實現其某些核心功能。客戶端也最好保留相同的 IP 地址,但這並不重要。

為簡單起見,讓我們呼叫目前伺服器office和我正在設置的第二台伺服器cloud。在 T1電話上呼叫伺服器。

這被證明是相當複雜的,因為一旦我連接到,我就看不到辦公室當我連接到雲時(沒有 ping,什麼都沒有),任何通過辦公室的伺服器路由也不起作用,反之亦然。iptables 也沒有阻止流量的規則。

最近我在 linuxjournal 上看到了這篇文章,但他們提供的解決方案似乎只涵蓋了兩台伺服器的使用,而且有些過時(甚至找不到太多文件,他們的 wiki 處於離線狀態)。他們還表示,添加更多伺服器將是一項複雜的任務。

理想情況下,我希望讓現有的伺服器辦公室繼續執行虛擬網路,並在電話伺服器上執行 OpenVPN 守護程序(分別為 100 Mbit 和非常可靠的連接),這樣我們就可以在硬體故障的情況下處於安全狀態, DSL 故障等。

所以,從本質上講,我正在尋找一種高度可用的 OpenVPN 解決方案(修復、修補、破解、調整,無論你想怎麼稱呼它),它可以接受多個主機(2 個或更多)上的連接,同時保持相同的 IP 地址子網無論您連接到哪個伺服器。

感謝您的閱讀,很抱歉這篇長篇文章,我希望它能得到重點:P

編輯:

我忘記提到的另一個重要部分是 3 台伺服器需要在虛擬網路上具有一致的 IP 地址,因為我們的應用程序邏輯直接依賴於這些。客戶端無關緊要,它們可以有任何地址,但伺服器需要在它們之間進行通信。如果您知道不同的解決方案(可能是 10.8.0.* 中的條目的某種 dns),請包括它。再次感謝。

編輯2:

添加了一個網路地圖,它不是很好,但應該明白這一點。請注意,任何伺服器要與任何其他伺服器通信,都必須始終通過Office伺服器。這是有意的,儘管我想將該功能更改為Cloud

網路地圖

我經常使用網路和 openvpn(在 ISP 工作 10 年以上的系統管理員),那麼這個簡單的解決方案怎麼樣。

在 dns 中創建一個條目,該條目將具有一個主機的 n 個 IP 地址(循環方式)

在 Openvpn 客戶端中輸入主機的遠端名稱,從而實現循環

在 vpn 伺服器上有兩個網卡,一個連接到公共 ip(循環地址 1),另一個連接到私有類。第二台伺服器,不同的公共地址(循環地址 2),相同的私有類。

創建將地址橋接到私有介面的 tap0 介面,具有將管理對您的客戶端的定址的單個 dhcp。

這樣我認為你可以實現你想要的盡可能多的冗餘..

引用自:https://serverfault.com/questions/211761