亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

VPN多進程負載均衡方案

2023-04-17 01:08:17
405
0

由于OpenVPN不支持多線程處理,無法利用多核CPU、網卡多隊列的優勢。為了提升服務器CPU的利用率,增強數據處理能力、提升VPN總帶寬,為服務器部署多個獨立的OpenVPN工作進程,組成OpenVPN集群。

基于OSI網絡模型4層進行負載均衡,性能較高,使用LVS做UDP協議端口負載均衡,可以基于ipvsadm或者keepalived組件做lvs負載配置。

lvs支持多種負載均衡算法,這里采用最小連接(Least-Connection)策略,該策略在客戶端下線后會更新在線連接數量,再根據在線連接數量進行負載均衡,因此能較均衡的分配在線連接的客戶端數量,使OpenVPN集群各個節點盡可能均衡地負載客戶端連接的壓力。

多個進程服務端,怎么保持客戶端的會話狀態。由于多個OpenVPN進程之間數據狀態是不共享的,所以需要將同一個會話的請求都調度到同一個OpenVPN節點,保證業務的持續性。要將來自同一個客戶端IP的請求轉發到同一個RS,可以通過設置IPVS的持久化時間persistence_timeout,通過設置這個持久化時間,可以實現會話保持。當客戶端UDP連接到達IPVS后,IPVS會在記錄表里添加一條state為UDP的連接記錄。該連接記錄的源IP為客戶端IP,端口為客戶端端口,超時時間為上面所說的持久化時間persistence_timeout,超時剩余時間會逐步減小,在UDP的超時時間減到0之前,如果客戶端與服務端之間還有交互,則persistence_timeout值會刷新為初始值。在該UDP狀態的連接記錄存在的期間,同一客戶端IP的消息都會被調度到同一個RS節點。每當客戶端和服務端的連接中有信息交互時,該超時時間都會刷新為初始值。如果連接處于空閑狀態,即一直沒有信息交互,則等到該值超時后,該UDP連接記錄會直接消失,后續同一客戶端(IP+Port)過來的請求會重新調度。所以要使同一客戶端的會話請求始終負載到同一個OpenVPN服務,需要VPN客戶端與VPN服務端維持心跳交互,且心跳間隔時間小于IPVS的持久化時間persistence_timeout。

VPN多進程負載均衡高可用實施步驟:

  1. 創建1個OpenVPN配置文件,里面放置4個OpenVPN進程的相同的參數;
  2. 啟動4個OpenVPN進程,分別指定對應的端口(例如1195~1198端口)和虛擬子網(例如172.16.1.0/24~172.16.4.0/24子網);
  3. ipvsadm --set 0 0 30 設置IPVS UDP連接超時時間為30秒,這個時間不宜過大也不宜過小,可以是VPN客戶端與服務端心跳間隔(10秒)的3倍,即3次心跳連接都失敗才將認為客戶端掉線,這樣既可以減少對掉線操作的誤判又不至于保留過多的已失效連接;
  4. 綁定需要負載均衡的端口(以10.10.0.1為例),ipvsadm -A -u 10.10.0.1:1194 -s lc,其中lc為采用最小連接(Least-Connection)負載均衡策略,采用最小連接數策略可以盡可能使在線的連接用戶數保持均衡分布;
  5. 添加后端服務ipvsadm -a -u 10.10.0.1:1194 -r 10.10.0.1:1195 –m,類似的,可以添加端口號為1195~1198的后端服務;
  6. 最后由探活腳本周期性檢測OpenVPN進程的UDP服務是否正常,如果不正常則將其從ipvsadm后端服務列表移除,恢復后則將其重新加入列表。
0條評論
0 / 1000
linson
1文章數
0粉絲數
linson
1 文章 | 0 粉絲
linson
1文章數
0粉絲數
linson
1 文章 | 0 粉絲
原創

VPN多進程負載均衡方案

2023-04-17 01:08:17
405
0

由于OpenVPN不支持多線程處理,無法利用多核CPU、網卡多隊列的優勢。為了提升服務器CPU的利用率,增強數據處理能力、提升VPN總帶寬,為服務器部署多個獨立的OpenVPN工作進程,組成OpenVPN集群。

基于OSI網絡模型4層進行負載均衡,性能較高,使用LVS做UDP協議端口負載均衡,可以基于ipvsadm或者keepalived組件做lvs負載配置。

lvs支持多種負載均衡算法,這里采用最小連接(Least-Connection)策略,該策略在客戶端下線后會更新在線連接數量,再根據在線連接數量進行負載均衡,因此能較均衡的分配在線連接的客戶端數量,使OpenVPN集群各個節點盡可能均衡地負載客戶端連接的壓力。

多個進程服務端,怎么保持客戶端的會話狀態。由于多個OpenVPN進程之間數據狀態是不共享的,所以需要將同一個會話的請求都調度到同一個OpenVPN節點,保證業務的持續性。要將來自同一個客戶端IP的請求轉發到同一個RS,可以通過設置IPVS的持久化時間persistence_timeout,通過設置這個持久化時間,可以實現會話保持。當客戶端UDP連接到達IPVS后,IPVS會在記錄表里添加一條state為UDP的連接記錄。該連接記錄的源IP為客戶端IP,端口為客戶端端口,超時時間為上面所說的持久化時間persistence_timeout,超時剩余時間會逐步減小,在UDP的超時時間減到0之前,如果客戶端與服務端之間還有交互,則persistence_timeout值會刷新為初始值。在該UDP狀態的連接記錄存在的期間,同一客戶端IP的消息都會被調度到同一個RS節點。每當客戶端和服務端的連接中有信息交互時,該超時時間都會刷新為初始值。如果連接處于空閑狀態,即一直沒有信息交互,則等到該值超時后,該UDP連接記錄會直接消失,后續同一客戶端(IP+Port)過來的請求會重新調度。所以要使同一客戶端的會話請求始終負載到同一個OpenVPN服務,需要VPN客戶端與VPN服務端維持心跳交互,且心跳間隔時間小于IPVS的持久化時間persistence_timeout。

VPN多進程負載均衡高可用實施步驟:

  1. 創建1個OpenVPN配置文件,里面放置4個OpenVPN進程的相同的參數;
  2. 啟動4個OpenVPN進程,分別指定對應的端口(例如1195~1198端口)和虛擬子網(例如172.16.1.0/24~172.16.4.0/24子網);
  3. ipvsadm --set 0 0 30 設置IPVS UDP連接超時時間為30秒,這個時間不宜過大也不宜過小,可以是VPN客戶端與服務端心跳間隔(10秒)的3倍,即3次心跳連接都失敗才將認為客戶端掉線,這樣既可以減少對掉線操作的誤判又不至于保留過多的已失效連接;
  4. 綁定需要負載均衡的端口(以10.10.0.1為例),ipvsadm -A -u 10.10.0.1:1194 -s lc,其中lc為采用最小連接(Least-Connection)負載均衡策略,采用最小連接數策略可以盡可能使在線的連接用戶數保持均衡分布;
  5. 添加后端服務ipvsadm -a -u 10.10.0.1:1194 -r 10.10.0.1:1195 –m,類似的,可以添加端口號為1195~1198的后端服務;
  6. 最后由探活腳本周期性檢測OpenVPN進程的UDP服務是否正常,如果不正常則將其從ipvsadm后端服務列表移除,恢復后則將其重新加入列表。
文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0