设置 ExpressRoute 和站点到站点并存连接
配置站点到站点 VPN 和 ExpressRoute 共存连接具有多项优势。 可以将站点到站点 VPN 配置为 ExressRoute 的安全故障转移路径,或者使用站点到站点 VPN 连接到不是通过 ExpressRoute 进行连接的站点。 我们在本文中介绍这两种方案的配置步骤。 本文适用于 Resource Manager 部署模型并使用 PowerShell。 此配置在 Azure 门户中不可用。
Important
按以下说明进行操作之前,必须预先配置ExpressRoute 线路。 在继续操作之前,请务必遵循相关指南来创建 ExpressRoute 线路和配置路由。
限制和局限性
- 不支持传输路由。 无法在通过站点到站点 VPN 连接的本地网络与通过 ExpressRoute 连接的本地网络之间进行路由(通过 Azure)。
- 不支持基本 SKU 网关。 必须为 ExpressRoute 网关和 VPN 网关使用非基本 SKU 网关。
- 仅支持基于路由的 VPN 网关。 必须使用基于路由的 VPN Gateway使用非基本 SKU 网关。
- 应该为 VPN 网关配置静态路由。 如果本地网络同时连接到 ExpressRoute 和站点到站点 VPN,则必须在本地网络中配置静态路由,以便将站点到站点 VPN 连接路由到公共 Internet。
- 必须先配置 ExpressRoute 网关,然后再链接到线路。 添加站点到站点 VPN 网关前,必须先创建 ExpressRoute 网关,然后再将其链接到线路。
配置设计
将站点到站点 VPN 配置为 ExpressRoute 的故障转移路径
你可以将站点到站点 VPN 连接配置为 ExpressRoute 的备份。 这仅适用于链接到 Azure 专用对等路径的虚拟网络。 对于可通过 Azure 公共对等互连访问的服务,没有基于 VPN 的故障转移解决方案。 ExpressRoute 线路始终是主链接。 仅当 ExpressRoute 线路失败时,数据才会流经站点到站点 VPN 路径。
Note
虽然在两个路由相同的情况下 ExpressRoute 线路优先于站点到站点 VPN,Azure 仍会使用最长的前缀匹配来选择指向数据包目标的路由。

配置站点到站点 VPN,以便连接到不通过 ExpressRoute 进行连接的站点
你可以对网络进行配置,使得部分站点通过站点到站点 VPN 直接连接到 Azure,部分站点通过 ExpressRoute 进行连接。

Note
不能将虚拟网络配置为转换路由器。
选择要使用的步骤
有两组不同的过程可供选择。 选择的配置过程取决于是要连接到现有虚拟网络,还是要创建新的虚拟网络。
我没有 VNet,需要创建一个。
如果没有虚拟网络,此过程将指导你使用 Resource Manager 部署模型创建新的虚拟网络,然后创建新的 ExpressRoute 和站点到站点 VPN 连接。 若要配置虚拟网络,请遵循创建新的虚拟网络和并存连接中的步骤。
我已有一个 Resource Manager 部署模型 VNet。
你可能已在具有现有站点到站点 VPN 连接或 ExpressRoute 连接的位置拥有虚拟网络。 为现有的 VNet 配置并存连接部分将指导你删除网关,然后创建新的 ExpressRoute 连接和站点到站点 VPN 连接。 在创建新连接时,必须按照特定的顺序完成步骤。 不要按照其他文章中的说明来创建网关和连接。
在此过程中,创建可以共存的连接需要你删除网关,然后配置新网关。 在删除并重新创建网关和连接时,跨界连接将会停止工作,但你无需将任何 VM 或服务迁移到新的虚拟网络。 在你配置网关时,如果进行了相应配置,你的 VM 和服务仍可以通过负载均衡器与外界通信。
创建新的虚拟网络和并存连接
本过程将指导你创建 VNet 以及将共存的站点到站点连接和 ExpressRoute 连接。
安装最新版本的 Azure PowerShell cmdlet。 有关安装 cmdlet 的信息,请参阅如何安装和配置 Azure PowerShell。针对此配置使用的 cmdlet 可能与你熟悉的 cmdlet 稍有不同。 请务必使用说明内容中指定的 cmdlet。
登录帐户并设置环境。
PowerShell复制login-AzureRmAccount -Environment $(Get-AzureRmEnvironment -Name AzureChinaCloud)
Select-AzureRmSubscription -SubscriptionName 'yoursubscription'
$location = "China North"
$resgrp = New-AzureRmResourceGroup -Name "ErVpnCoex" -Location $location
$VNetASN = 65010
创建包括网关子网的虚拟网络。 有关虚拟网络配置的详细信息,请参阅 Azure 虚拟网络配置。
Important
网关子网必须是 /27 或更短的前缀(例如 /26 或 /25)。
创建新的 VNet。
PowerShell复制$vnet = New-AzureRmVirtualNetwork -Name "CoexVnet" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AddressPrefix "10.200.0.0/16"
添加子网。
PowerShell复制Add-AzureRmVirtualNetworkSubnetConfig -Name "App" -VirtualNetwork $vnet -AddressPrefix "10.200.1.0/24"
Add-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet -AddressPrefix "10.200.255.0/24"
保存 VNet 配置。
PowerShell复制$vnet = Set-AzureRmVirtualNetwork -VirtualNetwork $vnet
创建 ExpressRoute 网关。 有关 ExpressRoute 网关配置的详细信息,请参阅 ExpressRoute 网关配置。 GatewaySKU 必须是 Standard、HighPerformance 或 UltraPerformance。
PowerShell复制$gwSubnet = Get-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
$gwIP = New-AzureRmPublicIpAddress -Name "ERGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic
$gwConfig = New-AzureRmVirtualNetworkGatewayIpConfig -Name "ERGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id
$gw = New-AzureRmVirtualNetworkGateway -Name "ERGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "ExpressRoute" -GatewaySku Standard
将 ExpressRoute 网关连接到 ExpressRoute 线路。 完成此步骤后,则已通过 ExpressRoute 建立本地网络与 Azure 之间的连接。 有关链接操作的详细信息,请参阅 将 VNet 链接到 ExpressRoute。
PowerShell复制$ckt = Get-AzureRmExpressRouteCircuit -Name "YourCircuit" -ResourceGroupName "YourCircuitResourceGroup"
New-AzureRmVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $gw -PeerId $ckt.Id -ConnectionType ExpressRoute
接下来,创建站点到站点 VPN 网关。 有关 VPN 网关配置的详细信息,请参阅使用站点到站点连接配置 VNet。 GatewaySKU 必须是 Standard、HighPerformance 或 UltraPerformance。 VpnType 必须为 RouteBased。
PowerShell复制$gwSubnet = Get-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
$gwIP = New-AzureRmPublicIpAddress -Name "VPNGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic
$gwConfig = New-AzureRmVirtualNetworkGatewayIpConfig -Name "VPNGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id
New-AzureRmVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "Standard"
Azure VPN 网关支持 BGP 路由协议。 通过在以下命令中添加 -Asn 开关,可为该虚拟网络指定 ASN(AS 编号)。 若未指定该参数,将默认为 AS 编号 65515。
PowerShell复制$azureVpn = New-AzureRmVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "Standard" -Asn $VNetASN
可以在 $azureVpn.BgpSettings.BgpPeeringAddress 和 $azureVpn.BgpSettings.Asn 中找到 Azure 用于 VPN 网关的 BGP 对等 IP 和 AS 编号。 有关详细信息,请参阅为 Azure VPN 网关配置 BGP。
创建一个本地站点 VPN 网关实体。 此命令不会配置本地 VPN 网关, 而是允许你提供本地网关设置(如公共 IP 和本地地址空间),以便 Azure VPN 网关可以连接到它。
如果本地 VPN 设备仅支持静态路由,可按以下方式配置静态路由:
PowerShell复制$MyLocalNetworkAddress = @("10.100.0.0/16","10.101.0.0/16","10.102.0.0/16")
$localVpn = New-AzureRmLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress *<Public IP>* -AddressPrefix $MyLocalNetworkAddress
如果本地 VPN 设备支持 BGP,并且想要启用动态路由,那么需要知道本地 VPN 设备使用的 BGP 对等 IP 和 AS 编号。
PowerShell复制$localVPNPublicIP = "<Public IP>"
$localBGPPeeringIP = "<Private IP for the BGP session>"
$localBGPASN = "<ASN>"
$localAddressPrefix = $localBGPPeeringIP + "/32"
$localVpn = New-AzureRmLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress $localVPNPublicIP -AddressPrefix $localAddressPrefix -BgpPeeringAddress $localBGPPeeringIP -Asn $localBGPASN
配置本地 VPN 设备以连接到新的 Azure VPN 网关。 有关 VPN 设备配置的详细信息,请参阅 VPN 设备配置。
将 Azure 上的站点到站点 VPN 网关连接到本地网关。
PowerShell复制$azureVpn = Get-AzureRmVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName
New-AzureRmVirtualNetworkGatewayConnection -Name "VPNConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $azureVpn -LocalNetworkGateway2 $localVpn -ConnectionType IPsec -SharedKey <yourkey>
为现有的 VNet 配置并存连接
如果你已经有了一个虚拟网络,请检查网关子网大小。 如果网关子网为 /28 或 /29,则必须先删除虚拟网络网关,然后增加网关子网大小。 本部分的步骤说明如何这样做。
如果网关子网为 /27 或更大,且虚拟网络是通过 ExpressRoute 连接的,则可跳过下面的步骤,转到前一部分的“步骤 6 - 创建站点到站点 VPN 网关”。
Note
如果你删除的是现有网关,则当你进行此配置时,本地系统将失去与虚拟网络建立的连接。
你需要安装 Azure PowerShell cmdlet 的最新版本。 有关安装 cmdlet 的详细信息,请参阅如何安装和配置 Azure PowerShell。 针对此配置使用的 cmdlet 可能与你熟悉的 cmdlet 稍有不同。 请务必使用说明内容中指定的 cmdlet。
删除现有的 ExpressRoute 或站点到站点 VPN 网关。
PowerShell复制Remove-AzureRmVirtualNetworkGateway -Name <yourgatewayname> -ResourceGroupName <yourresourcegroup>
删除网关子网。
PowerShell复制$vnet = Get-AzureRmVirtualNetwork -Name <yourvnetname> -ResourceGroupName <yourresourcegroup>
Remove-AzureRmVirtualNetworkSubnetConfig -Name GatewaySubnet -VirtualNetwork $vnet
添加为 /27 或更大的网关子网。
Note
如果你因为虚拟网络中没有剩余足够的 IP 地址而无法增加网关子网大小,则需增加 IP 地址空间。
PowerShell复制$vnet = Get-AzureRmVirtualNetwork -Name <yourvnetname> -ResourceGroupName <yourresourcegroup>
Add-AzureRmVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet -AddressPrefix "10.200.255.0/24"
保存 VNet 配置。
PowerShell复制$vnet = Set-AzureRmVirtualNetwork -VirtualNetwork $vnet
- 此时,你拥有不带网关的 VNet。 若要创建新网关并完成连接,可以转到 步骤 4 - 创建 ExpressRoute 网关(可以在前一组步骤中找到)。
将点到站点配置添加到 VPN 网关
可以按照下面的步骤将点到站点配置添加到共存设置中的 VPN 网关。
添加 VPN 客户端地址池。
PowerShell复制$azureVpn = Get-AzureRmVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName
Set-AzureRmVirtualNetworkGatewayVpnClientConfig -VirtualNetworkGateway $azureVpn -VpnClientAddressPool "10.251.251.0/24"
为你的 VPN 网关将 VPN 根证书上传到 Azure。 在此示例中,假定根证书存储在运行以下 PowerShell cmdlet 的本地计算机中。
PowerShell复制$p2sCertFullName = "RootErVpnCoexP2S.cer"
$p2sCertMatchName = "RootErVpnCoexP2S"
$p2sCertToUpload=get-childitem Cert:\CurrentUser\My | Where-Object {$_.Subject -match $p2sCertMatchName}
if ($p2sCertToUpload.count -eq 1){
write-host "cert found"
} else {
write-host "cert not found"
exit
}
$p2sCertData = [System.Convert]::ToBase64String($p2sCertToUpload.RawData)
Add-AzureRmVpnClientRootCertificate -VpnClientRootCertificateName $p2sCertFullName -VirtualNetworkGatewayname $azureVpn.Name -ResourceGroupName $resgrp.ResourceGroupName -PublicCertData $p2sCertData
有关点到站点 VPN 的详细信息,请参阅配置点到站点连接。
后续步骤
有关 ExpressRoute 的详细信息,请参阅 ExpressRoute 常见问题。
设置 ExpressRoute 和站点到站点并存连接的更多相关文章
- Windows Azure 配置多个站点的虚拟网络连接
通过上一篇"Windows Azure 虚拟网络配置(Site to Site)" 我们建立了可以进行Site to Site连接的虚拟网络,配置过后有些朋友会有疑问:如果需要连接 ...
- wstngfw openVpn站点到站点连接示例(SSL/TLS)
wstngfw openVpn站点到站点连接示例(SSL/TLS) 在本例中,将假设以下设置: 站点 A 站点 B 名称 Beijing Office(北京办公室) 名称 Shenzheng Offi ...
- wstngfw openVpn站点到站点连接示例(共享密钥)
wstngfw openVpn站点到站点连接示例(共享密钥) 在本例中,将假设以下设置: 站点 A 站点 B 名称 Beijing Office(北京办公室) 名称 Shenzheng Office( ...
- wstngfw IPsec 站点到站点连接示例
wstngfw IPsec 站点到站点连接示例 在本例中,将假设以下设置: IPsec站点设置 站点 A 站点 B 名称 Beijing Office(北京办公室) 名称 Shenzheng Offi ...
- Linux 如何设置只允许域名访问站点而禁止IP访问站点
最近在论坛里看到有人问到 Linux 如何设置只允许域名访问站点而禁止IP访问站点的问题,之前自己也用过这个功能,可以防止别人用 IP 地址来访问到自己的网站,下面我就我自己的环境给出解决方法,我用的 ...
- Maven 工程下 Spring MVC 站点配置 (三) C3P0连接池与@Autowired的应用
Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 前两篇文章主要是对站点和数据库操作配置进行了演示,如果单 ...
- SITECORE体验编辑器 - 多站点实施站点解析
SITECORE体验编辑器 - 多站点实施站点解析 我们使用其中一个多站点实现遇到了Sitecore体验编辑器的问题.从内容编辑器中选择并尝试在体验编辑器中打开时属于某个站点的任何页面将始终解析为 ...
- centOS 7设置静态IP,使用Xshell远程连接
背景 在正式生产环境中,通常需要使用Xshell等终端软件,通过固定IP地址远程连接生产服务器进行管理,所以需要给生产服务器分配一个静态的IP地址,以方便本地计算机远程连接. 目的 本文目的在于模仿生 ...
- 虚拟机下安装Centos设置静态ip,并通过桥接连接
Centos7.6设置静态IP 1.CentOS7默认网卡设备文件存放于该目录下 /etc/sysconfig/network-scripts/ 网卡设备默认的名字为:ifcfg-ens33 查看网卡 ...
随机推荐
- web与app测试的区别
单纯从功能测试的层面上来讲的话,APP 测试.web 测试 在流程和功能测试上是没有区别的. 系统架构方面: web项目,一般都是b/s架构,基于浏览器的 app项目,则是c/s的,必须要有客户端,用 ...
- 安装微软dynamics AX2012R3-AOS(含域服务器的安装)
安装之前首先要确保硬盘可用量>60G,内存要在7G及以上,我是在Mac里装的虚拟机,分配了7G内存(我的电脑总共才8G),编译CIL内存占用到了98% 一.Server 2016新建域控服务器 ...
- 机器学习--Gradient Boosting Machine(GBM)调参方法详解
一.GBM参数 总的来说GBM的参数可以被归为三类: 树参数:调节模型中每个决策树的性质 Boosting参数:调节模型中boosting的操作 其他模型参数:调节模型总体的各项运作 1.树参数 现在 ...
- 爬虫实战(二) 51job移动端数据采集
在上一篇51job职位信息的爬取中,对岗位信息div下各式各样杂乱的标签,简单的Xpath效果不佳,加上string()函数后,也不尽如人意.因此这次我们跳过桌面web端,选择移动端进行爬取. ...
- vue-cli中引入jquery
vue-cli 在引入bootstrap时总是报找不到jquery.(模板用的webpack) 在webpack.base.conf.js里加入 var webpack = require(" ...
- 封装framework注意点
1.新建一个framework过程: . 2.在工程内新建一些类,注意,使用xib时初始化必须要加上loadnib:,否则会造成xib无效(可能是因为没有加载) 如下: JFViewControlle ...
- 【原】Spring activiti 环境搭建之数据库创建
由于在开发工作流的时候,避免不了要保存一些数据和流程走向;所以在搭建Spring activiti开发环境的时候需要把官方提供的23张表创建到我们的DB,后续的流程都会在这些表中记录. 1.创建代码如 ...
- 哪个类可用于处理 Unicode?
A. InputStreanReader的构造函数: InputStreamReader(InputStream in) 创建一个使用默认字符集的 InputStreamReader ...
- int类型转换byte类型
计算机中,int类型占用4个字节,byte类型占用1个字节: 当int类型强转为byte类型时,计算机会截取最后的八位(1个字节): 由于计算机存储数据时,都是以补码的形式进行存储. 然而,我们通常看 ...
- OracleServer总结进阶之系统分析(进阶完结)
个人原创,转载请在文章头部明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10080102.html 在上一篇进阶中大概讲解了一些关于进阶方面的知识,今 ...