Local Network与不同版本Windows Azure间多站点×××配置详情
当我们提到Azure名词,对于当下并不是一个陌生的话题,我们都知道Azure分为国内版本及国际版本,可两个Azure之间现在的差别越来越大了,不管是从portal界面还是功能上,国际版本的Azure永远大于国内版本的Azure, 对于功能上我们就不多说了,今天我们介绍一下,本地、国内Azure及国际Azure之间部署多站点的×××配置介绍,我们本地将使用windows server2012R2安装RRAS服务作为本地的***设备,在部署前我们需要再次确认一些问题;1. 在Azure上启用站点到站点的***的时候,我们需要创建动态路由网关;2. Windowsserver2012R2作为×××设备的先决条件是必须有用独立公司的外网IP,双网卡,且该服务器不能放在NAT或者防火墙设备之后;具体可以参考以下连接;
https://msdn.microsoft.com/zh-cn/library/azure/dn636917.aspx
3.Azure目前支持的***设备参考见下:
https://azure.microsoft.com/en-us/documentation/articles/***-gateway-about-***-devices/?cdn=disable
我们的环境开始;具体请看以下图示;
我们通过以下图示,三个site都需要网络互通,但是从架构的方面讲,AuzreUS的site在美国,我们不建议直接将AuzreUS到本地的网络打通,因为这样的网络架构不稳定,所以Azureus到本地的网络数据都会经过Azurecn的网关进行转发;
本地网络规划的子网为:
192.168.6.0/24
AzureCN规划的子网为
10.10.1.0/24
AzureUS规划的子网为:
172.16.1.0/24
RRAS服务器的配置介绍:
Internal:192.168.6.150
External: 124.17.10.206
我们首先是在本地的环境内放一个windows2012r2服务器,该服务器我们主要用于与windowsazure之间的×××服务搭建(***网关),我们需要注意的是,该×××服务器不能放入到防火墙内部的,需要放入到防火墙外部,所以该***网关服务器我们配置双网卡。
我们部署这个环境的分为三步做;顺序无所谓:
1将本地与AzureCN之间的网络打通
2将AzureCN与AzureUS之间的网络打通
3将AzureUS与本地的网络打通
所以我们首先需要从第一部开始安装配置RRAS服务器接下来我们申请一个 windows azure的世纪互联版本的,具体的申请步骤再次也就不多介绍了
我们首先添加本地网络:
本地网络既为非Azure虚拟网络的以外的网络都叫本地网络,azure网络叫虚拟网络;我们添加本地网络
定义本地网络名称,我们首先需要添加192.168.6.0的网络,以致定义名称及外网IP(×××设备地址)
本地网络创建完成
创建虚拟网络,及定义虚拟网络名称;我们在国内版本的Azure网络定义名称为:AzureCN
然后勾选,配置站点到站点连接,然后选择我们刚才新建的本地网络
同时添加网关子网;
再次我们需要注意的是,定义子网我们不能定义24位的,因为在创建***的时候,需要添加子网网关,子网网关也必须和子网在同一个子网里面,当然我们我们可以定义多个地址空间,再多个地址空间下我们仅仅只需要添加一个子网网关;因为在同一个虚拟网络下,所有的地址空间都是默认互通的;虚拟网路创建完成后,我们单击进入虚拟网络;
单击创建网关----选择动态路由网关
开始创建网关;这个创建过程比较漫长,请耐心等待
网关创建完成接下来我们查看虚拟网络配置文件;在此我使用powershell来操作;
我们首先需要下载
所有的操作我们需要使用到的是powershell进行操作;具体操作我们需要首先下载及安装azure powershell,然后下载及导入对应的订阅才可以操作;
下载两个订阅文件;
http://manage.windowsazure.com/publishsettings
http://manage.windowsazure.cn/publishsettings
然后导入订阅到azure powershell中
Import-azurepublishsettings"c:\xxxxxxxx"
如果有多个订阅的话,我们需要选择默认的订阅
Select- Select-AzureSubscription -SubscriptionName "添加账户名" -Default
我们国际版本的azure下如果需要查看vnet(虚拟网络配置文件)的配置文件的话,我们需要借助powershell来查看
Get-azurevnetconfig | fl
当然我们也可以使用查看及导出文件,具体命令见下:
如果需要修改vnetconfig的配置文件,然后需要用本地的更新,用如下命令
Set-AzureVNetConfig -ConfigurationPath "c:\AzNets.netcfg"
查询vnetconfig的配置文件及导出到本地
Get-AzureVNetConfig -ExportToFile "c:\AzNets.netcfg"
接下来我们需要跟本地网络互通的话,需要下载***设备脚本,然后在本地的RRAS服务器上运行及配置;
在下载×××设备脚本之前,我们先修改共享秘钥;因为系统自带的秘钥我们不方便判断,然后修改共享秘钥为自定义
我们首先查看虚拟网络为AzureCN下本地网络的Internal_Local的默认共享秘钥
Get-AzureVNetGatewayKey-VNetName "AzureCN" -LocalNetworkSiteName "Internal_Local"
Set-AzureVNetGatewayKey -VNetName"AzureCN" -LocalNetworkSiteName "Internal_Local" -sharedkeyABC123DE45
修改后,我们继续查看共享秘钥定义结果
Get-AzureVNetGatewayKey-VNetName "AzureCN" -LocalNetworkSiteName "Internal_Local"
选择***设备类型
确认后,我们将下载的***设备脚本修改扩展名为ps1,然后在RRAS服务器的powershell下运行
***设备脚本程序执行成功;最后的报错可以忽略;
我们通过查看配置,可以确认的是***是已经通了;我们也可以在portal上查看最后我们在AzureCN上创建一个vm,方便来测试网络之间的互通性
创建后,我们登录到AzureCN-VM下ping RRAS服务器的内部地址
需要注意的是,如果需要测试网络互通性的准确性,建议将两端的防火墙的ICMP回显打开或者关闭防火墙
我们首先看见AzureCN-VM的地址为10.10.1.4
接下来我们就需要配置AuzreCN与AzureUS之间的网络,所以我们需要申请一个国际版本的Azure,
然后在注册一个国际版本的Azure账户;我们发现之前国际版本的azure下的页面显示和世纪互联的差不多,现在看国际版本的azure的差别相当大了。
定义地址空间及子网;
我们单击进入Auzreus虚拟网络;我们单击创建×××连接
在Azureus上的本地站点我们当然需要定义为AzureCN的虚拟网络了,所以我们单击本地站点
定义AzureUS上的Azurecn的虚拟网络信息
确认完信息后,我们单击确认,开始创建网关及开始创建网关
网关创建完成
创建后,我们也使用powershell查看当前的虚拟网络配置
接下来我们要为AuzreCN与AzureUS之间的通道设置共享秘钥;
我们需要为虚拟网络为:Group Group AzureUS ,本地网络为07E0920C_AzureCN_Local设置共享秘钥
我们首先查看默认的共享秘钥
Get-AzureVNetGatewayKey-VNetName "Group Group AzureUS"-LocalNetworkSiteName "07E0920C_AzureCN_Locall"
Set-AzureVNetGatewayKey-VNetName "Group Group AzureUS"-LocalNetworkSiteName "07E0920C_AzureCN_Locall" -sharedkey Bey0d101
同样查看修改后的结果
Get-AzureVNetGatewayKey-VNetName "Group Group AzureUS"-LocalNetworkSiteName "07E0920C_AzureCN_Locall"
同时我们为了方便测试在AzureUS上创建一个AZUREUS-VM
定义VM的相关信息,然后单击创建
接下来我们要回到了AzureCN上添加AzureUS的虚拟网络为本地网络
我们打开AzureCN的网络---本地网络---新建---添加本地网络
我们添加定义该本地网络名称为AzureUS_Local,然后添加AzureUS上的虚拟网络网关地址
添加AzureUS网络的子网地址
接下来我们查看AzureCN虚拟网络配置
Get-azurevnetconfig | fl
当然我们也可以使用查看及导出文件,具体命令见下:
如果需要修改vnetconfig的配置文件,然后需要用本地的更新,用如下命令
Set-AzureVNetConfig -ConfigurationPath "c:\AzNets.netcfg"
查询vnetconfig的配置文件及导出到本地
Get-AzureVNetConfig -ExportToFile "c:\AzNets.netcfg"
我们发现本地网络是已经添加了,但是最后连接本地网络只有连接了Internal_Local,没有连接Auzreus_local,所以我们需要将该虚拟网络配置文件导出修改,然后在导入
Get-Azurevnetconfgi -ExportTofile"d:\azurecn.netcfg"
下载后我们修改配置文件;我们根据格式,添加以下连接本地网络
更改后保存,然后我们使用powershlel更新虚拟网络配置
Set-AzureVNetConfig -ConfigurationPath"d:\azurecn.netcfg"
get-azurevnetconfig |fl
接下来我们需要对虚拟网络AzureCN下的本地网络AzureUS_Local设置共享秘钥
注意:设置该共享秘钥一定要和在AzureUS下的本地网络AzureCN_Local的共享秘钥设置成一样的
我们首先查看默认的共享秘钥
Get-AzureVNetGatewayKey -VNetName"AzureCN" -LocalNetworkSiteName "AzureUS_Local"
Set-AzureVNetGatewayKey -VNetName"AzureCN" -LocalNetworkSiteName "AzureUS_Local" -sharedkey Bey0d101
查看修改后的共享秘钥
Get-AzureVNetGatewayKey -VNetName"AzureCN" -LocalNetworkSiteName "AzureUS_Local"
同时我们查看AzureUS下的***状态
接下来我们在AzureCN下的AzureCN-VM中ping AzureUS-VM中的地址
注意:记得关闭防火墙中的ICMP回显,或者关闭防火墙
AzureCN到AzureUS的网络是通了
AzureUS到AzureCN的网络是互通了
接下来是最后一步了,就是我们要让AzureUS的网络和本地的RRAS网络互通,所以我们需要在AzureUS上添加RRAS的网络为本地网络;
我们进入AzureUS的虚拟网络中,单击站点与站点的配置
选择站点到站点,然后单击本地站点
然后定义站点名称及本地服务器的子网、***设备网关地址
单击确认后,开始添加本地网络及添加完成,然后我们就可以看见AzureUS上的本地站点了接下来还是由于,因为到本地不通,所以我们需要确认一下AzureUS本地的虚拟网络配置;
Get-Azurevnetconfig | fl
所以我们就不需要修改AzureUS的虚拟网络配置文件了,但是我们还是为了好配置期间,修改Azureus下的本地网络下的Internal_Local的共同秘钥;需要记住的是,该共享秘钥不能和其他共享秘钥有冲突
我们首先查看虚拟网络下Azureus下的本地网络Internal_Local的默认共享秘钥
Get-AzureVNetGatewayKey -VNetName"Group Group AzureUS" -LocalNetworkSiteName"07E0920C_Internal_Local"
Set-AzureVNetGatewayKey -VNetName"Group Group AzureUS" -LocalNetworkSiteName"07E0920C_Internal_Local" -sharedkeyA1B2C3D4E5
查看修改后的自定义信息
Get-AzureVNetGatewayKey -VNetName"Group Group AzureUS" -LocalNetworkSiteName"07E0920C_Internal_Local"
设置完这我们需要总结一下,此次我们一共设置了三个不同的共享秘钥;
AzureCN到本地RRAS服务的一个ABC123DE45
AzureCN到AzureUS之间一个Bey0d101
AzureUS到本地RRAS服务器一个A1B2C3D4E5
接下来就是配置AzureUS的***脚本了,我们仅仅只需要将从AzureCN上下载最新的×××设备脚本更改一下配置信息即可
选择***设备类型信息
下载后我们打开该***设备脚本
前面的内容是一样的,我们需要修改后面的端口信息
我们需要修改的内容为红色框中的信息,我们需要将里面的IP地址、子网信息及共享秘钥修改为AzureUS所对应的
# Add and configure S2S ××× interface Add-***S2SInterface -Protocol IKEv2 -AuthenticationMethod PSKOnly -NumberOfTries 3 -ResponderAuthenticationMethod PSKOnly -Name 139.217.25.71 -Destination 139.217.25.71 -IPv4Subnet @("10.10.1.0/24:100") -SharedSecret ABC123DE45 Set-***ServerIPsecConfiguration -EncryptionType MaximumEncryption Set-***S2Sinterface -Name 139.217.25.71 -InitiateConfigPayload $false -Force # Set S2S ××× connection to be persistent by editing the router.pbk file (required admin priveleges) Set-PrivateProfileString $env:windir\System32\ras\router.pbk "139.217.25.71" "IdleDisconnectSeconds" "0" Set-PrivateProfileString $env:windir\System32\ras\router.pbk "139.217.25.71" "RedialOnLinkFailure" "1" # Restart the RRAS service Restart-Service RemoteAccess # Dial-in to Azure gateway Connect-***S2SInterface -Name 139.217.25.71
我们根据AzureUS的信息进行修改,我们首先确认AzureUS的虚拟网络配置信息
通过确认信息修改内容如下:我们只需要搜索需要修改的信息,然后全部替换;
但是网络信息子网及共享秘钥需要我们手动去更改
替换后的内容信息:
# Add and configure S2S ××× interface Add-***S2SInterface -Protocol IKEv2 -AuthenticationMethod PSKOnly -NumberOfTries 3 -ResponderAuthenticationMethod PSKOnly -Name 104.208.29.43 -Destination104.208.29.43 -IPv4Subnet @("172.16.1.0/24:100") -SharedSecretA1B2C3D4E5 Set-***ServerIPsecConfiguration -EncryptionType MaximumEncryption Set-***S2Sinterface -Name 104.208.29.43-InitiateConfigPayload $false -Force # Set S2S ××× connection to be persistent by editing the router.pbk file (required admin priveleges) Set-PrivateProfileString $env:windir\System32\ras\router.pbk "104.208.29.43" "IdleDisconnectSeconds" "0" Set-PrivateProfileString $env:windir\System32\ras\router.pbk "104.208.29.43" "RedialOnLinkFailure" "1" # Restart the RRAS service Restart-Service RemoteAccess # Dial-in to Azure gateway Connect-***S2SInterface -Name 104.208.29.43
修改后,我们将修改后的信息保存,然后在RRAS服务器本地使用powershell运行更新
同样我们需要将***设备脚本更改扩展名为ps1;
执行脚本前,我们需要确认一下脚本执行性的路由和远程访问服务状态
网络接口只有一个:为AzureCN到本地网络中的网络接口
确认完以上信息后,接下来就是运行脚本了
错误的信息可以忽略
执行后,我们再次查看路由和远程访问;我们查看到RRAS到AzureUS的网络接口已添加成功了
确认完以上信息后,我们再次查看AzureUS的***状态信息
然后再查看AzureCN的***状态
我们最后使用vm进行测试
从本地的ping AzureCN及AzureUS然后从AzureCN上ping Local及AzureUS
最后我们从AzureUS上ping Local及AzureCN
最后我们通过tracert查看路由是如何走的
首先在AzureCN上tracert到local及Azureus
AzureUS上tracert到local及AzureCN
最后我们再查看从local到Azureus及azurecn
注:如果站点到站点的***配置的话,我们需要了解一个问题;
通过静态路由确认,
当本地访问azure网络的时候需要将本地 用户机器的网关指向RRAS服务器的内部地址,这样本地的用户才可以访问Azure网络
通过静态路由我们可以确认;
当本地网络访问azure网络的时候,可以通过默认路由设置当目标网络为azure网络的话,本地网关出去后,经过路由然后跳到RRAS服务器的本地然后再到azure网络
当本地访问其他网络的是会,直接经过本地网关出网访问;
比如
RRAS服务器两块网卡为internal:192.168.6.150 external:106.39.102.185
azure的虚拟网络:10.10.1.0/24 vm:10.10.1.4
Local server:192.168.6.140 如果需要访问呢互联网的话,网关设置为:192.168.6.1即可出网;当访问azure网络的是会,我们需要将网关设置为192.168.6.150(指向RRAS服务器的内部地址)
总结:
local server (192.168.6.140)访问azure 10.10.1.0/24网络的时候,通过静态路由判断,访问的目标地址为10.10.1.0/24 ;所以访问路径为192.168.6.1---->192.168.6.150---->10.10.1.0/24(需要在网络设备上配置静态路由)
local server (192.168.6.140)访问非azure网络及其他网络的时候,通过静态路由判断,访问的目标地址不包括Azure网络:10.10.1.0/24而是访问其他网络 ;所以访问路径为192.168.6.1---->到出口以致访问到其他网络(需要在网络设备上配置静态路由)