实现 Microsoft 365 VPN 拆分隧道

备注

本文是一组文章的一部分,这些文章介绍了远程用户的 Microsoft 365 优化,或者当你实施涉及基于 IP 前缀的路由以绕过网络基础结构中的拥塞点的网络优化时。

Microsoft建议快速高效地改善连接性的策略。 这涉及到更新网络路由的几个简单步骤,允许某些关键终结点绕过拥挤的 VPN 服务器。 通过在不同层应用类似或更好的安全模型,无需保护企业网络出口点的所有流量,并且可以使用更短、更高效的网络路径路由Microsoft 365 流量。 这通常可在数小时内完成,并且可以根据需要扩展到多个Microsoft 365 个工作负载。

实现 VPN 拆分隧道

本文介绍将 VPN 客户端体系结构从 VPN 强制隧道 迁移到 VPN 强制隧道所需的简单步骤, 其中包含一些受信任的异常,VPN 拆分隧道模型 #2 适用于 Microsoft 365 的常见 VPN 拆分隧道模型

下图演示了建议的 VPN 拆分隧道解决方案的工作原理:

拆分隧道 VPN 解决方案详细信息。

1. 标识要优化的终结点

Microsoft 365 URL 和 IP 地址范围 一文中,Microsoft明确标识需要优化的关键终结点,并将其分类为 “优化”。 这一小组终结点约占发到 Microsoft 365 服务的流量量的 70% 到 80%,包括延迟敏感终结点(例如 Teams 媒体的终结点)。 本质上,这是我们需要特别注意的流量,也是对传统网络路径和 VPN 基础结构施加难以置信的压力的流量。

此类别中的 URL 具有以下特征:

  • 为 Microsoft 拥有和托管的终结点,托管在 Microsoft 基础结构上
  • 已发布专用于特定服务的 IP 地址
  • 更改率低
  • 带宽和/或延迟敏感
  • 可在服务中提供所需的安全元素,而不是在网络上内联
  • 大约占到 Microsoft 365 服务的流量量的 70-80%

有关 Microsoft 365 终结点及其分类和管理方式的详细信息,请参阅 管理 Microsoft 365 终结点

在大多数情况下,只需在浏览器 PAC 文件中使用 URL 终结点,其中终结点被配置为直接发送,而不是发送到代理。 如果只需要“优化”类别的 URL,请使用第一个查询,或使用第二个查询来获取 IP 前缀。

优化 URL

(invoke-restmethod -Uri ("https://endpoints.office.com/endpoints/WorldWide?clientrequestid=" + ([GUID]::NewGuid()).Guid)) | ?{$_.category -eq "Optimize" -and $_.urls} | select -unique -ExpandProperty urls

优化 IP 地址范围

(invoke-restmethod -Uri ("https://endpoints.office.com/endpoints/WorldWide?clientrequestid=" + ([GUID]::NewGuid()).Guid)) | ?{$_.category -eq "Optimize" -and $_.ips} | select -unique -ExpandProperty ips

2. 为 Microsoft 365 终结点实现拆分隧道

我们已确定这些关键终结点,现在需要将其从 VPN 隧道移出,并允许它们使用用户的本地 Internet 连接直接连接到服务。 完成此作的方式因使用的 VPN 产品和计算机平台而异,但大多数 VPN 解决方案允许某些策略配置来应用此逻辑。 有关 VPN 平台特定的拆分隧道指南,请参阅常见 VPN 平台的操作指南

如果要手动测试解决方案,可执行以下 PowerShell 示例,以在路由表级别模拟解决方案。 本例将每个 Teams 媒体 IP 子网的路由添加到路由表中。 可以在使用 Teams 网络评估工具 之前和之后测试 Teams 媒体性能,并观察指定终结点的路由差异。

示例:将 Teams 媒体 IP 子网添加到路由表

$intIndex = "" # index of the interface connected to the internet
$gateway = "" # default gateway of that interface
$destPrefix = " 52.112.0.0/14, 52.122.0.0/15, 2603:1063::/38" # Teams Media endpoints
# Add routes to the route table
foreach ($prefix in $destPrefix) {New-NetRoute -DestinationPrefix $prefix -InterfaceIndex $intIndex -NextHop $gateway}

在前面的脚本中, $intIndex 是连接到 Internet 的接口的索引, (在 PowerShell 中运行 get-netadapter 来查找;查找 ifIndex) 的值, $gateway 是该接口的默认网关, (在命令提示符中运行 ipconfig (Get-NetIPConfiguration |Foreach IPv4DefaultGateway) 。 PowerShell) 中的 NextHop。

添加路由后,可通过在命令提示符或 PowerShell 中运行 route print 来确认路由表是否正确。

若要在“优化”类别中添加 所有 当前 IP 地址范围的路由,可以使用以下脚本变体查询当前“优化 IP 子网”集 的Microsoft 365 IP 和 URL Web 服务 ,并将其添加到路由表中。

示例:将所有优化子网添加到路由表

$intIndex = "" # index of the interface connected to the internet
$gateway = "" # default gateway of that interface
# Query the web service for IPs in the Optimize category
$ep = Invoke-RestMethod ("https://endpoints.office.com/endpoints/worldwide?clientrequestid=" + ([GUID]::NewGuid()).Guid)
# Output only IPv4 Optimize IPs to $optimizeIps
$destPrefix = $ep | where {$_.category -eq "Optimize"} | Select-Object -ExpandProperty ips | Where-Object { $_ -like '*.*' }
# Add routes to the route table
foreach ($prefix in $destPrefix) {New-NetRoute -DestinationPrefix $prefix -InterfaceIndex $intIndex -NextHop $gateway}

如果无意中添加了错误参数的路由,或者只是希望还原所做的更改,则可以使用以下命令删除刚添加的路由:

foreach ($prefix in $destPrefix) {Remove-NetRoute -DestinationPrefix $prefix -InterfaceIndex $intIndex -NextHop $gateway}

应配置 VPN 客户端,以便优化 IP 的流量以此方式路由。 这样,流量就可以利用本地Microsoft资源,例如 Microsoft 365 服务 Front Door ,例如 Azure Front Door ,它尽可能向用户提供Microsoft 365 服务和连接终结点。 这使我们能够为世界各地的用户提供高性能级别,并充分利用 Microsoft的世界级全球网络,这可能在用户直接出口的几毫秒内。

适用于常见 VPN 平台的操作指南

本部分提供了相关链接,这些详细指南介绍了如何为来自此空间中最常见的合作伙伴的 Microsoft 365 流量实现拆分隧道。 我们会在可用指南时添加更多指南。

概述:Microsoft 365 VPN 拆分隧道

Microsoft 365 的常见 VPN 拆分隧道方案

保护用于 VPN 拆分隧道的 Teams 媒体流量

VPN 环境中的 Stream 和实时事件的特定注意事项

面向中国用户的Microsoft 365 性能优化

Microsoft 365 网络连接原则

评估 Microsoft 365 网络连接

Microsoft 365 网络和性能优化

安全专业人员和 IT 人员在当前独特的远程工作场景中实现新式安全控制的替代方法(Microsoft 安全团队博客)

增强 Microsoft 的 VPN 性能:使用 Windows 10 VPN 配置文件以允许自动打开连接

运行 VPN:Microsoft 如何让远程工作人员互联

Microsoft 全局网络