实现 Microsoft 365 VPN 拆分隧道

注意

本文属于解决远程用户 Microsoft 365 优化问题的系列文章。

Microsoft 针对优化远程工作者连接的建议策略侧重于快速缓解问题,并通过几个简单的步骤提供高性能。 这些步骤针对几个绕过瓶颈 VPN 服务器的已定义终结点调整旧版 VPN 方法。 可在不同的层应用等效的或甚至是更高级的安全模型,而无需在公司网络出口保护所有流量。 在大多数情况下,这可以在数小时内有效实现,然后根据需求和时间允许,可扩展到其他工作负载。

实现 VPN 拆分隧道

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

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

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

1. 标识要优化的终结点

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

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

  • 为 Microsoft 拥有和托管的终结点,托管在 Microsoft 基础结构上
  • 提供了 IP
  • 低更改率,预计仍保持较小数量(目前有 20 个 IP 子网)
  • 带宽和/或延迟敏感
  • 可在服务中提供所需的安全元素,而不是在网络上内联
  • 大约占到 Microsoft 365 服务的流量量的 70-80%

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

优化 URL

可在下表找到当前的优化 URL。 在大多数情况下,只需在浏览器 PAC 文件中使用 URL 终结点,其中终结点被配置为直接发送,而不是发送到代理。

优化 URL 端口/协议 用途
https://outlook.office365.com TCP 443 这是 Outlook 用于连接到其 Exchange Online Server 并具有较高带宽使用率和连接计数的主要 URL 之一。 以下联机功能需要低网络延迟:即时搜索、其他邮箱日历、忙/闲查找、管理规则和通知、Exchange Online 存档和电子邮件传出发件箱。
https://outlook.office.com TCP 443 此 URL 供 Outlook Online Web 访问用于连接到 Exchange Online Server,并且对网络延迟非常敏感。 使用 SharePoint Online 上传和下载大型文件尤其需要连接。
https://\<tenant\>.sharepoint.com TCP 443 这是 SharePoint Online 的主要 URL,具有高带宽使用率。
https://\<tenant\>-my.sharepoint.com TCP 443 这是 OneDrive for business 的主要 URL,具有较高的带宽使用率,并且可能会产生来自 OneDrive for Business 同步工具的高连接计数。
Teams 媒体 IP(无 URL) UDP 3478、3479、3480 和 3481 中继发现分配和实时流量。 这些终结点用于Skype for Business和 Microsoft Teams 媒体流量 (通话、会议等) 。 当 Microsoft Teams 客户端建立呼叫时,将提供大多数终结点(并包含在为该服务列出的所需 IP 内)。 若要获得最佳媒体质量,需要使用 UDP 协议。

在上述 示例中,租户 应替换为 Microsoft 365 租户名称。 例如, contoso.onmicrosoft.com 将使用 contoso.sharepoint.comcontoso-my.sharepoint.com

优化 IP 地址范围

在编写时,这些终结点所对应的 IP 地址范围如下所示。 强烈建议你在应用配置时使用脚本(例如此示例Microsoft 365 IP 和 URL Web 服务URL/IP 页面)来检查任何更新,并设置策略以定期执行此操作。 如果利用持续访问评估,请参阅 持续访问评估 IP 地址变体。 可能需要通过受信任的 IP 或 VPN 路由优化 IP,以防止与 insufficient_claims即时 IP 强制检查 相关的块在某些情况下失败。

104.146.128.0/17
13.107.128.0/22
13.107.136.0/22
13.107.18.10/31
13.107.6.152/31
13.107.64.0/18
131.253.33.215/32
132.245.0.0/16
150.171.32.0/22
150.171.40.0/22
204.79.197.215/32
23.103.160.0/20
40.104.0.0/15
40.108.128.0/17
40.96.0.0/13
52.104.0.0/14
52.112.0.0/14
52.96.0.0/14
52.122.0.0/15

2. 通过 VPN 优化对这些终结点的访问

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

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

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

$intIndex = "" # index of the interface connected to the internet
$gateway = "" # default gateway of that interface
$destPrefix = "52.120.0.0/14", "52.112.0.0/14", "13.107.64.0/18" # 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 或在 PowerShell 中运行 (Get-NetIPConfiguration | Foreach IPv4DefaultGateway).NextHop 找到)。

添加路由后,可通过在命令提示符或 PowerShell 中运行 route print 来确认路由表是否正确。 输出应包含添加的路由,显示接口索引(本例为 22)和该接口的网关(本例为 192.168.1.1):

路由打印输出。

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

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

$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 全局网络