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