【博文推薦】部署Multi-Site VPN將本地連入Azure云端
本博文出自51CTO博客夢想依賴實踐博主,有任何問題請進入博主頁面互動討論! |
實驗背景:
公司在國內多個城市都有分支機構,每個satellite office都有自己獨立的內網,是一個獨立的site。現在公司租用了Azure服務,將一些重要服務遷移至Azure,但某些服務要求必須只能通過公 司內部網絡通信完成,所以需要將公司的幾個分支結構的子網和Azure資源所在的子網連接起來。
世紀互聯的Azure當前并不支持直接在manage.windowsazure.cn這個管理portal中直接配置Azure到多個子網的site- 2-site VPN。微軟提出了一個自己的概念,叫做Multi-site VPN,它和我們建立多個site-2-site VPN的區別僅僅在于Azure端的配置方法上。下文詳細敘述。
前提條件/準備工作:
- Windows Azure管理權限,能夠新建Virtual Network(New->Network services->virtual network);
- 本地VPN設備或者服務器的管理權限,試驗中我使用的是FortiGate防火墻設備。如果您使用專門的VPN設備,請一定參考微軟的兼容性設備列表,確保您使用的VPN設備和windows Azure相兼容;
- 本地子網的網絡地址池空間;
- Azure要計劃使用的網絡地址池空間;
- 一個xml文件編輯器,用于編輯從Azure上下載到本地的網絡配置文件;
- Azure PowerShell;
部署過程:
1.新建Virtual Network:
為Virtual Network命名;
選擇使用的datacenter的地點,目前世紀互聯在中國有兩個datacenter。中國北方(北京),國東方(上海);
為你的virtual network制定一個DNS服務器,這里建議您選擇一些比較靠譜的,最好是在國內和國外都比較靠譜的DNS服務器,建議您使用google的8.8.8.8,國內的114DNS等。OpenDNS也很不錯,但是在國內訪問延時較大,不太建議;
配置VPN的方式為Site-to-site VPN,你的on-premise/local網絡可以新建或者選擇你已經錄入過的網絡,試驗中我們是新建了一個local network;
配置本地網絡(local network/on-premise network)屬性,本地網絡的名字,本地VPN設備的IP地址,本地網路的地址空間;
配置Azure端的子網屬性,自己按照實際需求設置即可,完成virtual network的創建過程。配置完成后,我們可以通過查看virtual network的dashboard看到當前的狀態。
2.增加local Network(添加其他幾個分支結構的子網信息,這個過程這一步也可以省略):
- New->Network services->Virtual Network->Add local network;
- 輸入local Network的名稱;
- 輸入local network的子網地址范圍;
3.配置Virtual Network:
如果你已經通過GUI將其他On-premise(local) network的信息添加到了virtual network中,那么你只需要修改<ConnectionsToLocalNetwork> 和</ConnectionsToLocalNetwork>之間的部分,先將這部分內容復制,然后粘貼在< /ConnectionsToLocalNetwork>之前,將你粘貼的內容中的name部分進行修改,修改成你需要增加的on- premise(local) network的名字。以此類推,將所有其他需要增加進來的網絡都添加好;
如果你之前沒有通過GUI將其他的On-Premise(local) network的信【51CTO專稿】息創建好,你可以直接通過修改這個xml文件進行創建。找 到<LocalNetworkSite>……….</LocalNetworkSite>部分,復制這一部分,粘貼到這部分的后 面,講你想添加的On-Premise(local) network的name、子網范圍、VPNGatewayAddress進行修改即可。以此類推,將所有需要添加的子網添加好之后,執行上一布的過程, 這樣就將network configuration文件編輯好了,進行保存;
創建gateway,這里要注意,根據微軟官方的文檔(https://msdn.microsoft.com/en-us/library/azure /jj156210.aspx),配置Multi-site VPN一定要選擇Dynamic Routing。這個創建過程比較慢,實測中國北方數據中心,創建過程用了20分鐘;
創建好Gateway之后,我們檢查一下當前的virtual network狀態是否正確。Gateway的公網IP應該能夠在dashboard中顯示出來,gateway的類型是Dynamic Routing。然后我們將當前的network configuration導出,導出來的是一個xml文件;
編輯配置文件,找到<ConnectionsToLocalNetwork> 和</ConnectionsToLocalNetwork>之間的部分,我們看到這里默認只有我們在新建virtual network的時候輸入的on-premise network的信息,而我們新增的local network都不在這里,那么我們就需要手動修改這個配置文件,將我們其他的On-Premise(local network)的信息增加進來。
上傳編輯好的配置文件,更新virtual network網絡配置。New->Network Services->Virtual Network->Import configuration,選擇你剛才編輯好的配置文件,進行上傳。
4.獲取Multi-site VPN信息(需要通過Azure PowerShell):
- 獲取subscription:get-AzureSubscription;
- 選擇需要的subscription:select-AzureSubscription -name;
- 獲取virtual network configuration:get-AzureVNetConfig|fl;
- 獲取VPN Pre-shared-key:Get-AzureVNetGatewayKey -vNetName xxx -LocalNetworkSiteName yyyy;
- 獲取Azure端VPN的屬性設置:Get-AzureVNetGatewayIPsecParameters -VNetName AAAA -LocalNetworkSiteName BBBB
5.配置本地VPN設備。由于大家所使用的VPN設備都不相同,但需要修改的項目基本一致,這里我們說一下通常需要修改的幾個地方和注意事項:
- 需要使用IKEv2;
- 啟用Replay Detection;
- 不需要配置NAT traversal;
- 不需要配置Auto Keep Alive;
- 不需要配置Auto-Negotiate;
- 不要啟用Perfect Forward Security(PFS);