目前雲原生遷移平臺HyperMotion SaaS主要應用場景在公有云上,但是在我們平時的測試場景中,由於上行頻寬的限制,每次向公有云同步比較消耗時間,特別是在驗證啟動流程時,需要等待半天到一天的時間進行資料同步,非常不划算。在我們內部環境中,我們經常測試的一種場景是從VMWare遷移到私有化部署的OpenStack上。但是由於網路的限制不可能將OpenStack及Floating IP資源在公網上一一對映(如果是客戶場景,通常是私有化部署的HyperMotion解決)。那麼,是否可以將線上VPC與本地的機房網路環境利用VPN隧道打通,實現利用HyperMotion SaaS進行私有云環境的遷移呢?本文就為你分享利用阿里雲VPN服務實現上述場景的需求。
需求與場景分析HyperMotion SaaS是部署在阿里雲Kubernetes託管版叢集中,即Kubernetes Master節點由阿里雲負責,阿里云為我們在指定VPC內啟動了兩臺ECS例項作為Worker節點。在我們自身需求中,需要解決兩個流量問題:
控制流:HyperMotion SaaS每個租戶可以新增指定的目標雲平臺,HyperMotion SaaS後臺模組透過VPC關聯的NAT閘道器訪問雲平臺API介面及資源,但是如果新增的是我們內部的OpenStack,則需要SaaS側與OpenStack控制網路想通;另外HyperMotion會自動利用雲平臺的雲主機資源安裝雲端儲存閘道器,所以也需要訪問OpenStack Floating IP的地址(具體看雲平臺規劃,也許是Fixed IP)。資料流:在資料層面上,我們仍然希望資料層面透過內網傳輸,沒有必要將資料流入公網,好在HyperMotion SaaS的設計滿足了這樣的需求所以在這個解決方案中,重點是利用阿里雲VPN閘道器和本地打通後(前提是公司出口路由有固定的公網IP),透過合理的設定路由規則實現我們上述的需求。
注意:文章中使用的截圖並非全部都是真實截圖,所以在實際配置過程中要根據實際情況進行。
配置流程配置過程中主要涉及阿里雲VPN服務和H3C路由器,基本流程如下:
1、阿里雲建立VPN閘道器,這個最低購買力度是包月2、拿到阿里雲VPN閘道器後,在路由器上進行相關配置3、回到阿里雲配置使用者閘道器及IPsec連線,檢視連線是否成功4、阿里雲側路由設定1、阿里雲VPN閘道器配置VPN需要關聯到VPC和交換機上,根據頻寬的不同,價格也不同,最低是按照包1個月5 Mbps。
配置好後,會得到一個公網IP,這個公網IP需要在後續配置到路由器上。
2、H3C路由器設定目前我們機房使用的路由器屬於非常入門級的企業級路由器(H3C ER3200G2),但是基本能滿足我們的需求了,並且支援IPsec VPN方式。之前一直很懼怕配置IPsec VPN,相較於L2TP等簡單方案,配置起來太複雜了。但是經過幾次折騰,也基本摸清楚是怎麼回事了,真是應了那句話:人類的恐懼來自於無知。
我並不是網路方面的專家,也對IPsec原理沒什麼研究,我只想記錄一下我是怎麼配置的。我認為IPsec在配置的時候,最重要的一點是兩頭配置一樣,無法連線往往是由於配置資訊不一致導致的。這是一張原理圖,加深我們對配置過程的理解。
H3C配置的基本流程為:虛介面->IKE安全提議->IKE對等體->IPsec安全提議->IPsec安全策略。
2.1、虛介面配置虛介面應該是定義與外界互連的通道,配置很簡單,只要指明對外服務的介面(比如:WAN1)就可以了。
2.2、IKE安全提議IKE是因特網金鑰交換的縮寫(Internet Key Exchange),從名字上可以猜出這與網際網路進行交換資料時加密有關。驗證演算法和加密演算法一定要與對端配置一致,關於DH組,每一個平臺選項不一樣,比如截圖中叫DH2 modp1024,到了阿里雲就叫做group2了,所以也必須要配置一致。
阿里雲側DH組選項
2.3、IKE對等體和對端的VPN閘道器進行連線,對端IP是需要首先在對端建立VPN閘道器後,會得到相應的地址,填入即可。
協商模式上,阿里雲的配置是英文的,主模式叫做main,而野蠻模式被稱為aggresive。
共享金鑰是自定義的,兩端必須一致,DPD阿里雲預設是開啟的,而H3C上是關閉的,保持統一即可。
2.4、IPsec安全提議按照我粗淺的認知,IKE主要負責兩端連線,同時簡化了IPsec互動,而真正的資料互動還是要在IPsec上進行控制。所以要對IPsec也要進行相應的安全配置。安全協議型別,我們選擇了預設的ESP,阿里雲側預設也應該採用的是此協議。在配置對端時,仍然是保持一致即可。
2.5、IPsec安全策略這一步最關鍵的是本地子網IP和對端子網IP及掩碼的設定,雙方是相反的,如果本地是192.168.0.0/24,源端是172.16.0.0/24。則在阿里雲側的配置就是本地是172.16.0.0/24,遠端是192.168.0.0/24。
還有一個就是PFS的設定,和IKE的DH組是一樣的,在阿里雲側也被稱為IPsec的DH組。也必須設定一致。
3、阿里雲IPsec連線配置3.1、使用者閘道器設定使用者閘道器設定比較簡單,只要在阿里雲測配置你路由的公網IP即可。
3.2、IPsec連線這是最關鍵的一步,經常在這一步配置失敗,提示在第一階段或者第二階段失敗,目前在我遇到的情況中,基本都是上述配置不一致導致的。配置過程基本分為三個階段,基本配置、高階配置中的IKE配置和IPsec配置。
3.2.1 基本配置注意圖中標出的本端網路、對端網路和預共享金鑰的配置,一定要填對。
3.2.2 IKE配置點開下方的高階設定,能夠看到IKE和IPsec設定。
配置只要按照我們在H3C的配置選擇相應的內容即可,LocalId和RemoteId都是自動根據VPN填寫的,並不需要輸入。
3.2.3 IPsec配置圖中標註的選項一定要保持一致,提交配置後,等待連線。
3.3、檢視連線狀態如果連線狀態為第二階段協商成功,就證明VPN已經建立成功,否則請檢查配置,多半是由於配置不一致導致的。
4、設定路由我們此次設定路由的目的是為了阿里雲側能夠訪問我們內網,所以接下來需要在阿里雲VPC內設定路由表,當訪問我們的內網時,需要使用VPN閘道器。進入VPC服務的路由表配置中,找到VPC。將目標IP段嚇一跳設定為VPN閘道器。因為阿里雲的ACL還處於內測階段,所以暫時無須考慮ACL的設定。
總結網路對於未來混合雲的場景有至關重要的作用,本文重點描述的是以VPN方式來打通雲上和雲下環境,但是VPN最大的頻寬規格只有200 Mbps,如果真實的需求更大,則需要考慮雲聯網,透過運營商底層基礎設施,實現不同雲之間的互聯互通。