本文可帮助你配置共存的 ExpressRoute 和站点到站点 VPN 连接。 能够配置站点到站点 VPN,ExpressRoute 具有多种优势。 可以将站点到站点 VPN 配置为 ExpressRoute 的安全故障转移路径,或使用站点到站点 VPN 连接到未通过 ExpressRoute 连接的站点。 本文介绍了配置这两种方案的步骤。 本文适用于经典部署模型。 此配置在门户中不可用。
重要
从 2017 年 3 月 1 日开始,将无法在经典部署模型中创建新的 ExpressRoute 线路。
- 可以将现有的 ExpressRoute 线路从经典部署模型移到 Resource Manager 部署模型,不会遇到连接中断问题。 有关详细信息,请参阅移动现有线路。
- 可以通过将 allowClassicOperations 设置为 TRUE,连接到经典部署模型中的虚拟网络。
请使用以下链接在 Resource Manager 部署模型中创建和管理 ExpressRoute 线路:
关于 Azure 部署模型
Azure 当前适用于两种部署模型:资源管理器和经典部署模型。 这两个模型彼此不完全兼容。 在开始之前,需要知道想要使用的模型。 有关部署模型的信息,请参阅 了解部署模型。 如果不熟悉 Azure,建议使用 Resource Manager 部署模型。
重要
必须先预配置 ExpressRoute 线路,然后才能按照本文中的说明进行操作。 在继续作之前,请确保已按照指南 创建 ExpressRoute 线路 并 配置路由 。
限制和局限性
- 不支持中转路由。 无法通过 Azure 在通过 Site-to-Site VPN 连接的本地网络与通过 ExpressRoute 连接的本地网络之间进行路由。
- 不支持点对站点。 您无法在连接到 ExpressRoute 的同一 VNet 上启用点到站点 VPN 连接。 点到站点 VPN 和 ExpressRoute 无法共存于同一 VNet。
- 无法在站点到站点 VPN 网关上启用强制隧道。 只能通过 ExpressRoute 将所有流向互联网的流量“强制”返回到本地网络。
- 不支持基本 SKU 网关。 必须为 ExpressRoute 网关 和 VPN 网关使用非基本 SKU 网关。
- 仅支持基于路由的 VPN 网关。 必须使用基于路由的 VPN 网关。
- 应为 VPN 网关配置静态路由。 如果本地网络同时连接到 ExpressRoute 和站点到站点 VPN,则必须在本地网络中配置静态路由以将站点到站点 VPN 连接路由到公共 Internet。
配置设计
将站点到站点 VPN 配置为 ExpressRoute 的故障转移路径
可以将站点到站点 VPN 连接配置为 ExpressRoute 的备份。 此设置仅适用于链接到 Azure 专用对等互连路径的虚拟网络。 没有基于 VPN 的故障转移解决方案,适用于通过 Azure 公有网络和 Microsoft 对等连接访问的服务。 ExpressRoute 线路始终是主链接。 仅当 ExpressRoute 线路失败时,数据流经站点到站点 VPN 路径。
注释
虽然当两个路由相同时,ExpressRoute 线路优先于站点到站点 VPN,但 Azure 将使用最长的前缀匹配来选择数据包目标路由。
配置站点到站点 VPN 以连接到未通过 ExpressRoute 连接的站点
可以配置网络,其中某些站点通过站点到站点 VPN 直接连接到 Azure,某些站点通过 ExpressRoute 进行连接。
注释
不能将虚拟网络配置为传输路由器。
选择要使用的步骤
有两组不同的过程可供选择,以便配置可以共存的连接。 选择的配置过程取决于是要连接到的现有虚拟网络,还是要创建新的虚拟网络。
我没有 VNet,需要创建一个。
如果还没有虚拟网络,此过程将引导你使用经典部署模型创建新的虚拟网络,并创建新的 ExpressRoute 和站点到站点 VPN 连接。 若要配置,请按照文章部分中的步骤 创建新的虚拟网络并存连接。
我已有经典部署模型 VNet。
你可能已有一个具有现有站点到站点 VPN 连接或 ExpressRoute 连接的虚拟网络。 文章部分为现有 VNet 配置共存连接将引导你先删除网关,然后创建新的 ExpressRoute 和站点到站点 VPN 连接。 创建新连接时,必须按特定顺序完成这些步骤。 不要使用其他文章中的说明来创建网关和连接。
在此过程中,创建可共存的连接需要删除网关,然后配置新网关。 删除并重新创建网关和连接时,跨界连接会停机,但无需将任何 VM 或服务迁移到新的虚拟网络。 只要配置允许,VM 和服务仍可以通过负载均衡器向外进行通信,同时您可以配置网关。
安装 PowerShell cmdlet
安装最新版本的 Azure 服务管理(SM)PowerShell 模块和 ExpressRoute 模块。
使用 安装服务管理模块 文章中的说明安装 Azure 服务管理模块。 如果已安装 Az 或 RM 模块,请确保使用“-AllowClobber”。
导入已安装的模块。 使用以下示例时,请调整路径以反映已安装 PowerShell 模块的位置和版本。
Import-Module 'C:\Program Files\WindowsPowerShell\Modules\Azure\5.3.0\Azure.psd1' Import-Module 'C:\Program Files\WindowsPowerShell\Modules\Azure\5.3.0\ExpressRoute\ExpressRoute.psd1'若要登录到 Azure 帐户,请使用提升的权限打开 PowerShell 控制台并连接到帐户。 使用以下示例帮助你使用服务管理模块进行连接:
Add-AzureAccount -Environment AzureChinaCloud
创建新的虚拟网络和共存的连接
此过程将引导你创建 VNet 并创建共存的站点到站点和 ExpressRoute 连接。
需要安装最新版本的 Azure PowerShell cmdlet。 用于此配置的 cmdlet 可能与您所熟悉的那些略有不同。 请务必使用这些说明中指定的 cmdlet。
为虚拟网络创建架构。 有关配置架构的详细信息,请参阅 Azure 虚拟网络配置架构。
创建架构时,请确保使用以下值:
- 虚拟网络的网关子网必须是 /27 或较短的前缀(例如 /26 或 /25)。
- 网关连接类型为 “专用”。
<VirtualNetworkSite name="MyAzureVNET" Location="China North"> <AddressSpace> <AddressPrefix>10.17.159.192/26</AddressPrefix> </AddressSpace> <Subnets> <Subnet name="Subnet-1"> <AddressPrefix>10.17.159.192/27</AddressPrefix> </Subnet> <Subnet name="GatewaySubnet"> <AddressPrefix>10.17.159.224/27</AddressPrefix> </Subnet> </Subnets> <Gateway> <ConnectionsToLocalNetwork> <LocalNetworkSiteRef name="MyLocalNetwork"> <Connection type="Dedicated" /> </LocalNetworkSiteRef> </ConnectionsToLocalNetwork> </Gateway> </VirtualNetworkSite>创建并配置 xml 架构文件后,上传该文件以创建虚拟网络。
使用以下 cmdlet 上传您的文件,并用您自己的值替换其中的参数值。
Set-AzureVNetConfig -ConfigurationPath 'C:\NetworkConfig.xml'创建 ExpressRoute 网关。 请务必将 GatewaySKU 指定为 Standard、 HighPerformance 或 UltraPerformance ,并将 GatewayType 指定为 DynamicRouting。
使用以下示例,将提供的值替换为您自己的值。
New-AzureVNetGateway -VNetName MyAzureVNET -GatewayType DynamicRouting -GatewaySKU HighPerformance将 ExpressRoute 网关链接到 ExpressRoute 线路。 完成此步骤后,通过 ExpressRoute 建立本地网络与 Azure 之间的连接。
New-AzureDedicatedCircuitLink -ServiceKey <service-key> -VNetName MyAzureVNET接下来,创建站点到站点 VPN 网关。 GatewaySKU 必须是 Standard、 HighPerformance 或 UltraPerformance,GatewayType 必须为 DynamicRouting。
New-AzureVirtualNetworkGateway -VNetName MyAzureVNET -GatewayName S2SVPN -GatewayType DynamicRouting -GatewaySKU HighPerformance若要检索虚拟网络网关设置(包括网关 ID 和公共 IP),请使用
Get-AzureVirtualNetworkGatewaycmdlet。Get-AzureVirtualNetworkGateway GatewayId : 348ae011-ffa9-4add-b530-7cb30010565e GatewayName : S2SVPN LastEventData : GatewayType : DynamicRouting LastEventTimeStamp : 5/29/2015 4:41:41 PM LastEventMessage : Successfully created a gateway for the following virtual network: GNSDesMoines LastEventID : 23002 State : Provisioned VIPAddress : 104.43.x.y DefaultSite : GatewaySKU : HighPerformance Location : VnetId : 979aabcf-e47f-4136-ab9b-b4780c1e1bd5 SubnetId : EnableBgp : False OperationDescription : Get-AzureVirtualNetworkGateway OperationId : 42773656-85e1-a6b6-8705-35473f1e6f6a OperationStatus : Succeeded创建本地站点 VPN 网关实体。 此命令不会配置本地 VPN 网关。 相反,它允许你提供本地网关设置,例如公共 IP 和本地地址空间,以便 Azure VPN 网关可以连接到它。
重要
站点到站点 VPN 的本地站点未在 netcfg 中定义。 相反,必须使用此 cmdlet 来指定本地站点参数。 不能使用门户系统或netcfg文件来定义它。
使用以下示例,用你自己的数值替换。
New-AzureLocalNetworkGateway -GatewayName MyLocalNetwork -IpAddress <MyLocalGatewayIp> -AddressSpace <MyLocalNetworkAddress>注释
如果本地网络有多个路由,则可以将它们全部作为数组传入。 $MyLocalNetworkAddress = @(“10.1.2.0/24”,“10.1.3.0/24”,“10.2.1.0/24”)
若要检索虚拟网络网关设置(包括网关 ID 和公共 IP),请使用
Get-AzureVirtualNetworkGatewaycmdlet。 请参阅以下示例。Get-AzureLocalNetworkGateway GatewayId : 532cb428-8c8c-4596-9a4f-7ae3a9fcd01b GatewayName : MyLocalNetwork IpAddress : 23.39.x.y AddressSpace : {10.1.2.0/24} OperationDescription : Get-AzureLocalNetworkGateway OperationId : ddc4bfae-502c-adc7-bd7d-1efbc00b3fe5 OperationStatus : Succeeded配置本地 VPN 设备以连接到新网关。 使用配置 VPN 设备时在步骤 6 中检索的信息。 有关 VPN 设备配置的详细信息,请参阅 VPN 设备配置。
将 Azure 上的站点到站点 VPN 网关链接到本地网关。
在此示例中,connectedEntityId 是本地网关 ID,可以通过运行
Get-AzureLocalNetworkGateway找到该 ID。 可以使用Get-AzureVirtualNetworkGatewaycmdlet 查找 virtualNetworkGatewayId。 此步骤后,通过站点到站点 VPN 连接建立本地网络与 Azure 之间的连接。New-AzureVirtualNetworkGatewayConnection -connectedEntityId <local-network-gateway-id> -gatewayConnectionName Azure2Local -gatewayConnectionType IPsec -sharedKey abc123 -virtualNetworkGatewayId <azure-s2s-vpn-gateway-id>
为现有的 VNet 配置并存连接
如果有现有的虚拟网络,请检查网关子网大小。 如果网关子网为 /28 或 /29,必须先删除虚拟网络网关并增加网关子网大小。 本部分中的步骤将说明如何执行该操作。
如果网关子网为 /27 或更大,并且虚拟网络通过 ExpressRoute 进行连接,则可以跳过这些步骤,然后继续执行上一部分中的“步骤 6 - 创建站点到站点 VPN 网关”。
注释
删除现有网关时,您的本地网络将在此配置的更改过程中失去与虚拟网络的连接。
需要安装最新版本的 Azure 资源管理器 PowerShell cmdlet。 用于此配置的 cmdlets 可能和你所熟悉的有所不同。 请务必使用这些说明中指定的 cmdlet。
删除现有的 ExpressRoute 或站点到站点 VPN 网关。 使用以下 cmdlet,将值替换为你自己的值。
Remove-AzureVNetGateway -VnetName MyAzureVNET导出虚拟网络架构。 使用以下 PowerShell cmdlet,将值替换为您自己的。
Get-AzureVNetConfig -ExportToFile "C:\NetworkConfig.xml"编辑网络配置文件架构,使网关子网为 /27 或较短的前缀(例如 /26 或 /25)。 请参阅以下示例。
注释
如果虚拟网络中没有足够的 IP 地址来增加网关子网大小,则需要添加更多的 IP 地址空间。 有关配置架构的详细信息,请参阅 Azure 虚拟网络配置架构。
<Subnet name="GatewaySubnet"> <AddressPrefix>10.17.159.224/27</AddressPrefix> </Subnet>如果以前的网关是站点到站点 VPN,则还必须将连接类型更改为 “专用”。
<Gateway> <ConnectionsToLocalNetwork> <LocalNetworkSiteRef name="MyLocalNetwork"> <Connection type="Dedicated" /> </LocalNetworkSiteRef> </ConnectionsToLocalNetwork> </Gateway>此时,你有一个没有网关的 VNet。 若要创建新网关并完成连接,可以继续 执行步骤 4 - 创建 ExpressRoute 网关,该网关位于前面的步骤集中。
后续步骤
有关 ExpressRoute 的详细信息,请参阅 ExpressRoute 常见问题解答