此参考体系结构演示如何使用 Azure ExpressRoute 将本地网络连接到 Azure 上的虚拟网络。 ExpressRoute 连接通过第三方连接提供商使用私有的专用连接。 该专用连接将本地网络扩展到 Azure 中。
体系结构
下载此体系结构的 Visio 文件。
工作流
该体系结构包括以下组件。
本地公司网络。 组织中运行的专用局域网。
ExpressRoute 线路。 连接提供商提供的第 2 层或第 3 层线路,用于通过边缘路由器将本地网络与 Azure 相连接。 该线路使用连接提供商管理的硬件基础结构。
本地边缘路由器。 将本地网络连接到提供商管理的线路的路由器。 根据连接的预配方式,可能需要提供路由器使用的公共 IP 地址。
Microsoft Edge 路由器。 高度可用的主动-主动配置中的两个路由器。 这两个路由器使连接提供商可以将其线路直接连接到其数据中心。 根据连接的预配方式,可能需要提供路由器使用的公共 IP 地址。
Azure 虚拟网络 (VNet)。 每个 VNet 驻留在单个 Azure 区域中,可以托管多个应用层。 可以使用每个 VNet 中的子网将应用层分段。
Azure 公共服务。 可以在混合应用程序中使用的 Azure 服务。 这些服务还可通过 Internet 进行使用,但是使用 ExpressRoute 线路访问它们可提供低延迟和可预测性更高的性能,因为流量不会经过 Internet。
Microsoft 365 服务。 Microsoft 提供的公开可用的 Microsoft 365 应用程序和服务。 连接使用 Microsoft 对等互连执行,地址由组织拥有或由连接提供商提供。 还可以通过 Microsoft 对等互连直接连接到 Microsoft CRM Online。
连接提供商(未显示)。 在你的数据中心与 Azure 数据中心之间使用第 2 层或第 3 层连接提供连接的公司。
组件
Azure ExpressRoute。 使用 ExpressRoute 可通过连接服务提供商所提供的专用连接,将本地网络扩展到 Microsoft 云。 使用 ExpressRoute 可与 Microsoft Azure 和 Microsoft 365 等 Microsoft 云服务建立连接。
Azure 虚拟网络。 Azure 虚拟网络 (VNet) 是 Azure 中专用网络的基本构建块。 VNet 允许许多类型的 Azure 资源(例如 Azure 虚拟机 (VM))以安全方式彼此通信、与 Internet 通信,以及与本地网络通信。
建议
以下建议适用于大多数方案。 除非有优先于这些建议的特定要求,否则请遵循这些建议。
连接提供商
为你所在位置选择合适的 ExpressRoute 连接提供商。 若要获取你所在位置可用的连接提供商的列表,请使用以下 Azure PowerShell 命令:
Get-AzExpressRouteServiceProvider
ExpressRoute 连接提供商采用以下方式将你的数据中心连接到 Microsoft:
- 共置于云交换位置。 如果使用云交换在设施中进行主机代管,则可以通过主机代管提供商的以太网交换订购到 Azure 的虚拟交叉连接。 共同租用提供商可以在共置设施中的基础结构与 Azure 之间提供第 2 层交叉连接或托管的第 3 层交叉连接。
- 点到点以太网连接。 可以通过点到点以太网链路,将本地数据中心/办公室连接到 Azure。 点到点以太网提供商可以在站点与 Azure 之间提供第 2 层连接或托管的第 3 层连接。
- 任意位置之间的 (IPVPN) 网络。 可以将广域网 (WAN) 与 Azure 集成。 Internet 协议虚拟专用网络 (IPVPN) 提供商(通常为多协议标签切换 VPN)可在分支机构与数据中心之间提供任意位置之间的连接。 Azure 可与 WAN 互连,就如同它是其他任何一个分支机构。 WAN 提供商通常提供托管的第 3 层连接。
有关连接提供商的详细信息,请参阅 ExpressRoute 简介。
ExpressRoute 线路
确保组织符合有关连接 Azure 的 ExpressRoute 先决条件要求。
如果你尚未这样做,请将名为 GatewaySubnet
的子网添加到你的 Azure VNet,并使用 Azure VPN 网关服务创建 ExpressRoute 虚拟网络网关。 有关此过程的详细信息,请参阅 ExpressRoute 线路预配工作流和线路状态。
按如下所示创建 ExpressRoute 线路:
运行以下 PowerShell 命令:
New-AzExpressRouteCircuit -Name <<circuit-name>> -ResourceGroupName <<resource-group>> -Location <<location>> -SkuTier <<sku-tier>> -SkuFamily <<sku-family>> -ServiceProviderName <<service-provider-name>> -PeeringLocation <<peering-location>> -BandwidthInMbps <<bandwidth-in-mbps>>
将新线路的
ServiceKey
发送给服务提供商。等待提供商预配线路。 若要验证线路的预配状态,请运行以下 PowerShell 命令:
Get-AzExpressRouteCircuit -Name <<circuit-name>> -ResourceGroupName <<resource-group>>
当线路准备就绪时,输出的
Service Provider
部分中的Provisioning state
字段会从NotProvisioned
更改为Provisioned
。注意
如果你使用第 3 层连接,则提供商应为你配置和管理路由。 你提供使提供商可以实现相应路由所需的信息。
如果你使用第 2 层连接:
对于要实现的每种对等互连类型,保留两个由有效公共 IP 地址组成的 /30 子网。 这些 /30 子网将用于为用于线路的路由器提供 IP 地址。 如果要实现专用和 Microsoft 对等互连,则需要 4 个包含有效公共 IP 地址的 /30 子网。
配置 ExpressRoute 线路的路由。 对于想要配置的每种对等互连类型(专用和 Microsoft)运行以下 PowerShell 命令。 有关详细信息,请参阅创建和修改 ExpressRoute 线路的路由。
Set-AzExpressRouteCircuitPeeringConfig -Name <<peering-name>> -ExpressRouteCircuit <<circuit-name>> -PeeringType <<peering-type>> -PeerASN <<peer-asn>> -PrimaryPeerAddressPrefix <<primary-peer-address-prefix>> -SecondaryPeerAddressPrefix <<secondary-peer-address-prefix>> -VlanId <<vlan-id>> Set-AzExpressRouteCircuit -ExpressRouteCircuit <<circuit-name>>
保留另一个由有效公共 IP 地址组成的池,以用于 Microsoft 对等互连的网络地址转换 (NAT)。 建议对每个对等互连使用不同池。 将该池指定给连接提供商,以便可以为这些范围配置边界网关协议 (BGP) 播发。
运行以下 PowerShell 命令以将私有 VNet 链接到 ExpressRoute 线路。 有关详细信息,请参阅将虚拟网络链接到 ExpressRoute 线路。
$circuit = Get-AzExpressRouteCircuit -Name <<circuit-name>> -ResourceGroupName <<resource-group>> $gw = Get-AzVirtualNetworkGateway -Name <<gateway-name>> -ResourceGroupName <<resource-group>> New-AzVirtualNetworkGatewayConnection -Name <<connection-name>> -ResourceGroupName <<resource-group>> -Location <<location> -VirtualNetworkGateway1 $gw -PeerId $circuit.Id -ConnectionType ExpressRoute
只要所有 VNet 和 ExpressRoute 线路位于相同地缘政治区域内,便可以将位于不同区域中的多个 VNet 连接到相同 ExpressRoute 线路。
故障排除
如果以前正常工作的 ExpressRoute 线路现在未能连接,则在本地或私有 VNet 中不进行任何配置更改的情况下,可能需要与连接提供商联系并与其合作来更正问题。 使用以下 PowerShell 命令可验证是否预配了 ExpressRoute 线路:
Get-AzExpressRouteCircuit -Name <<circuit-name>> -ResourceGroupName <<resource-group>>
此命令的输出显示线路的多个属性,包括ProvisioningState
、CircuitProvisioningState
和 ServiceProviderProvisioningState
,如下所示。
ProvisioningState : Succeeded
Sku : {
"Name": "Standard_MeteredData",
"Tier": "Standard",
"Family": "MeteredData"
}
CircuitProvisioningState : Enabled
ServiceProviderProvisioningState : NotProvisioned
如果在尝试创建新线路之后 ProvisioningState
未设置为 Succeeded
,则使用以下命令删除线路并再次尝试创建它。
Remove-AzExpressRouteCircuit -Name <<circuit-name>> -ResourceGroupName <<resource-group>>
如果提供商已预配了线路,但 ProvisioningState
设置为 Failed
,或 CircuitProvisioningState
不是 Enabled
,请与提供商联系以获得进一步帮助。
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负荷质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架。
可伸缩性
ExpressRoute 线路在网络之间提供高带宽路径。 一般情况下,带宽越高,成本便越大。
ExpressRoute 向客户提供两个定价计划,即按流量计费的计划和无限制数据计划。 费用因线路带宽而异。 可用带宽可能会因提供商而异。 使用 Get-AzExpressRouteServiceProvider
cmdlet 可查看你所在区域中可用的提供商以及它们提供的带宽。
单个 ExpressRoute 线路可以支持一定数量的对等互连和 VNet 链路。 有关详细信息,请参阅 ExpressRoute 限制。
对于额外费用,ExpressRoute 高级版附加组件提供了一些附加功能:
- 提高专用对等互连的路由限制。
- 增加每个 ExpressRoute 线路的 VNet 链路数。
- 服务的全球连接。
有关详细信息,请参阅 ExpressRoute 定价。
ExpressRoute 线路的设计允许免费将临时网络速度提升到所购带宽限制的两倍。 这使用冗余链路来实现。 但是,并非所有连接提供商都支持此功能。 在使用之前请验证连接提供商是否启用此功能。
虽然某些提供商允许你更改带宽,但是请确保选取超出你的需求并且提供上升空间的初始带宽。 如果需要在将来增加带宽,则有两个选择:
增加带宽。 应尽可能避免采用此选择,而且并非所有提供商都允许动态增加带宽。 但如果需要增加带宽,请与提供商联系,验证其是否支持通过 PowerShell 命令更改 ExpressRoute 带宽属性。 如果支持,则运行以下命令。
$ckt = Get-AzExpressRouteCircuit -Name <<circuit-name>> -ResourceGroupName <<resource-group>> $ckt.ServiceProviderProperties.BandwidthInMbps = <<bandwidth-in-mbps>> Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
可以增加带宽而不会丢失连接。 使带宽降级会导致连接中断,因为必须删除线路,并使用新配置重新创建它。
更改定价计划并且/或者升级到高级版。 为此,请运行以下命令。
Sku.Tier
属性可以是Standard
或Premium
;Sku.Name
属性可以是MeteredData
或UnlimitedData
。$ckt = Get-AzExpressRouteCircuit -Name <<circuit-name>> -ResourceGroupName <<resource-group>> $ckt.Sku.Tier = "Premium" $ckt.Sku.Family = "MeteredData" $ckt.Sku.Name = "Premium_MeteredData" Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
重要
请确保
Sku.Name
属性与Sku.Tier
和Sku.Family
匹配。 如果更改系列和层级,而不是名称,则连接会禁用。可以升级 SKU 而不发生中断,但无法从无限制定价计划切换为按流量计费。 使 SKU 降级时,带宽消耗必须保持在标准 SKU 的默认限制内。
可用性
ExpressRoute 不支持路由器冗余协议(如热备用路由协议 (HSRP) 和虚拟路由器冗余协议 (VRRP))来实现高可用性。 而是对每个对等互连使用一对冗余的 BGP 会话。 为了帮助实现与你的网络之间的高可用性连接,Azure 采用主动-主动配置,在两个路由器(Microsoft Edge 的一部分)上为你预配两个冗余端口。
默认情况下,BGP 会话使用 60 秒的空闲超时值。 如果会话超时三次(180 秒),则路由器会标记为不可用,所有流量都会重定向到其余路由器。 此 180 秒超时对于关键应用程序而言可能太长。 如果是这样,则可以在本地路由器上将 BGP 超时设置为较小值。 ExpressRoute 还支持基于专用对等互连的双向转发检测 (BFD)。 启用基于 ExpressRoute 的 BFD 后,可在 Microsoft 企业边缘 (MSEE) 设备与终止 ExpressRoute 线路 (PE) 的路由器之间加速链路故障检测。 可以通过客户边缘路由设备或合作伙伴边缘路由设备终止 ExpressRoute(如果使用托管的第 3 层连接服务)。
根据使用的提供商类型以及愿意配置的 ExpressRoute 线路和虚拟网络网关连接数量,可以采用不同方式为 Azure 连接配置高可用性。 下面汇总了可用性选项:
如果使用第 2 层连接,请采用主动-主动配置在本地网络中部署冗余路由器。 将主线路连接到一个路由器,将辅助线路连接到另一个路由器。 这可在连接两端同时提供高可用性连接。 如果需要 ExpressRoute 服务级别协议 (SLA),则这是必需的。 有关详细信息,请参阅 Azure ExpressRoute SLA。
下图显示一个将冗余本地路由器连接到主线路和辅助线路的配置。 每个线路都为专用对等互连处理流量(为每个对等互联指定一对 /30 地址空间,如上一部分所述)。
如果使用第 3 层连接,请验证它是否提供可为你处理可用性的冗余 BGP 会话。
将 VNet 连接到不同服务提供商提供的多条 ExpressRoute 线路。 此策略可提供附加高可用性和灾难恢复功能。
将站点到站点 VPN 配置为 ExpressRoute 的故障转移路径。 有关此选项的详细信息,请参阅使用 ExpressRoute 和 VPN 故障转移将本地网络连接到 Azure。 此选项仅适用于私有对等互连。 对于 Azure 和 Microsoft 365 服务而言,Internet 是唯一的故障转移路径。
安全性
安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述。
根据安全问题和符合性需求,可以采用不同方式为 Azure 连接配置安全选项。
ExpressRoute 在第 3 层运行。 使用将流量限制到合法资源的网络安全设备可以阻止应用层中的威胁。
若要最大程度提高安全性,请在本地网络与提供商边缘路由器之间添加网络安全设备。 这有助于限制来自 VNet 的未经授权的流量流入:
出于审核或符合性目的,可能需要禁止在 VNet 中运行的组件直接访问 Internet 并实现强制隧道。 在此情况下,Internet 流量应通过在本地运行的代理(可以进行审核)重定向返回。 代理可以配置为阻止未经授权的流量流出,并筛选潜在的恶意入站流量。
若要最大程度提供安全性,请勿为 VM 启用公共 IP 地址,并使用 NSG 确保无法公开访问这些 VM。 只应使用内部 IP 地址提供 VM。 这些地址可以通过 ExpressRoute 网络进行访问,从而使本地 DevOps 员工可以执行配置或维护。
如果必须向外部网络公开 VM 的管理终结点,请使用 NSG 或访问控制列表将这些端口限制为允许的 IP 地址或网络列表可见。
注意
通过 Azure 门户部署的 Azure VM 可以包含提供登录访问权限的公共 IP 地址。 但是,最佳做法是不允许这样做。
网络监视
使用网络观察程序来监视和排除网络组件故障,流量分析等工具将显示虚拟网络中生成最多流量的系统,以便在它们退化为问题之前直观地识别瓶颈期。 网络性能管理器能够监视 Microsoft ExpressRoute 线路的相关信息。
还可使用 Azure 连接工具包 (AzureCT) 监视本地数据中心与 Azure 之间的连接。
有关详细信息,请参阅 Microsoft Azure 架构良好的框架中的“DevOps”部分。 有关特定于监视的信息,请参阅监视 DevOps。
成本优化
成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述。
使用 Azure 定价计算器估算成本。
下一部分介绍此体系结构中使用的服务费用。
Azure ExpressRoute
在此体系结构中,使用 ExpressRoute 路线通过边缘路由器加入 Azure 本地网络。
有两个主要套餐。 在“数据流量”套餐中,所有入站数据传输都免费。 所有出站数据传输都根据预先确定的费率收费。
还可以选择“不限流量”套餐,其中所有入站和出站数据传输都免费。 用户每月根据高可用性双端口收取固定的端口费用。
计算你的利用率并选择相应的计费套餐。 如果你的利用率超过 68%,建议你使用“不限流量”套餐。
有关详细信息,请参阅 Azure ExpressRoute 定价。
Azure 虚拟网络
所有应用程序层都托管在单个虚拟网络中,并使用子网进行分段。
Azure 虚拟网络是免费的。 允许每个订阅在所有区域中最多创建 50 个虚拟网络。 在虚拟网络边界内产生的所有流量都是免费的。 因此,同一虚拟网络中两个 VM 之间的通信是免费的。
后续步骤
产品文档:
Microsoft Learn 模块: