Skip to content

Commit 9e1ae6b

Browse files
Merge pull request #28687 from MicrosoftDocs/main
[AutoPublish] main to live - 06/13 10:31 PDT | 06/13 23:01 IST
2 parents 570a7a5 + a3133ee commit 9e1ae6b

1 file changed

Lines changed: 61 additions & 22 deletions

File tree

microsoft-365/enterprise/microsoft-365-vpn-stream-and-live-events.md

Lines changed: 61 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ description: "Special considerations for Teams events in VPN environments"
3434
>- For guidance on securing Teams media traffic in VPN split tunneling environments, see [Securing Teams media traffic for VPN split tunneling](microsoft-365-vpn-securing-teams.md).
3535
>- For information about optimizing Microsoft 365 worldwide tenant performance for users in China, see [Microsoft 365 performance optimization for China users](microsoft-365-networking-china.md).
3636
37-
Microsoft Teams Live events attendee traffic (this includes attendees to Teams-produced live events and those produced with an external encoder via Teams or Viva Engage) and Microsoft Teams Town hall attendee traffic is currently categorized as **Default** versus **Optimize** in the [URL/IP list for the service](urls-and-ip-address-ranges.md). These endpoints are categorized as **Default** because they're hosted on CDNs that might also be used by other services. Customers generally prefer to proxy this type of traffic and apply any security elements normally done on endpoints such as these.
37+
Microsoft Teams Live events **attendee** traffic (this includes attendees to Teams-produced live events and those produced with an external encoder via Teams or Viva Engage) and Microsoft Teams Town hall **attendee** traffic is currently categorized as **Default** versus **Optimize** in the [URL/IP list for the service](urls-and-ip-address-ranges.md). These endpoints are categorized as **Default** because they're hosted on Content Delivery Networks (CDNs) that might also be used by other services. Customers generally prefer to proxy this type of traffic and apply any security elements normally done on endpoints such as these.
3838

3939
Many customers have asked for URL/IP data needed to connect their attendees in Teams events directly from their local internet connection, rather than route the high-volume and latency-sensitive traffic via the VPN infrastructure. Typically, this isn't possible without both dedicated namespaces and accurate IP information for the endpoints, which isn't provided for Microsoft 365 endpoints categorized as **Default**.
4040

41-
Use the following steps to identify and enable direct connectivity for attendee traffic for Teams Events from clients that are using a forced tunnel VPN. This solution is intended to provide customers with an option to avoid routing attendee traffic over VPN while there's high network traffic due to work-from-home scenarios. If possible, we recommend accessing the service through an inspecting proxy.
41+
Use the following steps to identify and enable direct connectivity for attendee traffic for Teams Events from clients that are using a forced tunnel VPN. This solution is intended to provide customers with an option to avoid routing attendee traffic over VPN while there's high network traffic due to work-from-home scenarios. If possible, we recommend accessing the service through an inspecting proxy. Attendee traffic will connect to the CDN over TCP/UDP 443.
4242

4343
> [!NOTE]
4444
> Using this solution, there might be service elements that don't resolve to the IP addresses provided and thus traverse the VPN, but the bulk of high-volume traffic like streaming data should. There might be other elements outside the scope of Live Events/Stream which get caught by this offload, but these should be limited as they must meet both the FQDN _and_ the IP match before going direct.
@@ -53,7 +53,6 @@ To implement the forced tunnel exception for Teams Events, the following steps s
5353
Clients need external, recursive DNS resolution to be available so that the following host names can be resolved to IP addresses.
5454

5555
For the **Commercial** cloud:
56-
- \*.bmc.cdn.office.net
5756
- \*.ml.cdn.office.net
5857

5958

@@ -77,11 +76,36 @@ To solve this, we can provide the following IPs and use them in combination with
7776

7877
### Gathering the current lists of CDN Endpoints
7978

80-
For the Commercial cloud and Microsoft 365 U.S. Government clouds (GCC, GCC High and DoD) Teams events use Azure CDN from Microsoft. Over time this could be changed due to situations such as regional availability. This article provides the required namespaces for Teams events and guidance for the corresponding IP address ranges used (where available).
79+
For the Commercial cloud Teams events use Azure CDN from Microsoft and Akamai CDN; Microsoft 365 U.S. Government clouds (GCC, GCC High and DoD) use Azure CDN from Microsoft along with the existing IP ranges defined in the respective Optimize category for their environment. Over time this could be changed due to situations such as regional availability. This article provides the required namespaces for Teams events and guidance for the corresponding IP address ranges used (where available).
8180

8281
For the **Commercial** cloud:
8382

8483
- For Azure CDN from Microsoft, you can download the list from [Download Azure IP Ranges and Service Tags – Public Cloud from Official Microsoft Download Center](https://www.microsoft.com/download/details.aspx?id=56519) - you'll need to look specifically for the service tag `AzureFrontdoor.Frontend` in the JSON; _addressPrefixes_ will show the IPv4/IPv6 subnets. Over time the IPs can change, but the service tag list is always updated before they're put in use.
84+
- For Akamai CDN, the following IP addresses are used (these are only used for Teams traffic):
85+
* 23.11.32.10/32
86+
* 23.11.33.10/32
87+
* 23.11.34.10/32
88+
* 23.11.35.10/32
89+
* 23.11.38.12/32
90+
* 23.11.39.12/32
91+
* 23.11.36.9/32
92+
* 23.11.37.9/32
93+
* 23.11.40.9/32
94+
* 23.11.41.9/32
95+
* 23.11.42.9/32
96+
* 23.11.43.9/32
97+
* 2600:14e1:0:1::/64
98+
* 2600:14e1:4:1::/64
99+
* 2600:14e1:8:1::/64
100+
* 2600:14e1:c:1::/64
101+
* 2600:14e1:18:2::/64
102+
* 2600:14e1:1c:2::/64
103+
* 2600:14e1:10:7::/64
104+
* 2600:14e1:14:7::/64
105+
* 2600:14e1:20:7::/64
106+
* 2600:14e1:24:7::/64
107+
* 2600:14e1:28:7::/64
108+
* 2600:14e1:2c:7::/64
85109

86110
For the **Government** clouds **(GCC, GCC High and DoD)**:
87111

@@ -94,10 +118,11 @@ The following script can generate a PAC file that will include the namespaces an
94118
Here's an example of how to generate the PAC file for the Commercial cloud:
95119

96120
1. Save the script to your local hard disk as _Get-EventsPacFile.ps1_.
97-
1. In a PowerShell window, run the following command. If you only desire the Optimize names (and not Optimize and Allow) change the -Type parameter to OptimizeOnly.
121+
2. Create a new text file named AkamaiCDN.txt, and copy the Akamai CDN IP addresses from the previous section into the file. Ensure there is only one IP address/prefix per line. Save this file, you will need it in the next step.
122+
1. In a PowerShell window, run the following command. If you desire the Optimize and Allow names (and not Optimize only) change the -Type parameter to OptimizeAnyAllow.
98123

99124
```powershell
100-
.\Get-EventsPacFile.ps1 -Instance Worldwide -Type OptimizeAndAllow -FilePath .\Commercial.pac
125+
.\Get-EventsPacFile.ps1 -Instance Worldwide -Type OptimizeOnly -EIPBFilePath .\AkamaiCDN.txt -FilePath .\Commercial.pac
101126
```
102127

103128
1. The Commercial.pac file will contain all the namespaces and IPs (IPv4/IPv6) available for Teams Events attendee traffic.
@@ -123,7 +148,7 @@ Here's an example of how to generate the PAC file for the GCC environment:
123148
124149
<#PSScriptInfo
125150
126-
.VERSION 1.0.7
151+
.VERSION 1.0.8
127152
128153
.AUTHOR Microsoft Corporation
129154
@@ -198,17 +223,21 @@ The tenant name to replace wildcard Urls in the webservice.
198223
199224
The service areas to filter endpoints by in the webservice.
200225
226+
.PARAMETER EIPBFilePath
227+
228+
The input file for the Akamai IP addresses.
229+
201230
.PARAMETER FilePath
202231
203232
The file to print the content to.
204233
205234
.EXAMPLE
206235
207-
Get-EventsPacFile.ps1 -Instance Worldwide -Type OptimizeOnly -FilePath .\PACFiles\Commercial.pac
236+
Get-EventsPacFile.ps1 -Instance Worldwide -Type OptimizeOnly -EIPBFilePath .\AkamaiCDN.txt -FilePath .\Commercial.pac
208237
209238
.EXAMPLE
210239
211-
Get-EventsPacFile.ps1 -Instance USGov -FilePath .\PACFiles\USGov.pac -Type OptimizeAndAllow
240+
Get-EventsPacFile.ps1 -Instance USGov -FilePath .\USGov.pac -Type OptimizeAndAllow
212241
213242
214243
#>
@@ -251,7 +280,11 @@ Param (
251280
252281
[Parameter()]
253282
[ValidateNotNullOrEmpty()]
254-
[string] $FilePath
283+
[string] $FilePath,
284+
285+
[Parameter()]
286+
[ValidateNotNullOrEmpty()]
287+
[string] $EIPBFilePath
255288
256289
)
257290
@@ -338,7 +371,7 @@ function Get-PacString {
338371
if (!$ServiceAreas -or $ServiceAreas.Contains('Skype')) {
339372
$EventsConfig = Get-TeamsEventsConfiguration
340373
if ($EventsConfig.EventsAddressRanges.Count -gt 0) {
341-
$EventsBlock = $EventsConfig | Get-TLEPacConfiguration
374+
$EventsBlock = $EventsConfig | Get-TeamsEventsPacConfiguration
342375
$PACSb.AppendLine()
343376
$PACSb.AppendLine($EventsBlock)
344377
}
@@ -369,16 +402,20 @@ function Get-TeamsEventsConfiguration {
369402
break
370403
}
371404
default {
372-
@('*.bmc.cdn.office.net', '*.ml.cdn.office.net')
405+
@('*.ml.cdn.office.net')
373406
break
374407
}
375408
}
376409
$IncludedAddressRanges = & {
410+
if (!$Instance.StartsWith('USGov') -and ![string]::IsNullOrEmpty($EIPBFilePath) -and (Test-Path -Path $EIPBFilePath)) {
411+
Get-Content -Path $EIPBFilePath -ErrorAction SilentlyContinue
412+
}
413+
377414
$ServiceTagsDownloadId = '56519'
378415
if ($Instance.StartsWith('USGov')) {
379416
$ServiceTagsDownloadId = '57063'
380417
}
381-
$AzureIPsUrl = Invoke-WebRequest -Uri "https://www.microsoft.com/en-us/download/confirmation.aspx?id=$ServiceTagsDownloadId" -UseBasicParsing -ErrorAction SilentlyContinue |
418+
$AzureIPsUrl = Invoke-WebRequest -Uri "https://www.microsoft.com/en-us/download/details.aspx?id=$ServiceTagsDownloadId" -UseBasicParsing -ErrorAction SilentlyContinue |
382419
Select-Object -ExpandProperty Links | Select-Object -ExpandProperty href |
383420
Where-Object { $_.EndsWith('.json') -and $_ -match 'ServiceTags' } | Select-Object -First 1
384421
if ($AzureIPsUrl) {
@@ -393,7 +430,7 @@ function Get-TeamsEventsConfiguration {
393430
}
394431
}
395432
396-
function Get-TLEPacConfiguration {
433+
function Get-TeamsEventsPacConfiguration {
397434
[CmdletBinding()]
398435
param (
399436
[Parameter(ValueFromPipelineByPropertyName)]
@@ -502,9 +539,9 @@ else {
502539
}
503540
```
504541

505-
The script will automatically parse the appropriate Azure CDN list based on the **Instance** parameter value and keys off of **AzureFrontDoor.Frontend**, so there's no need to get that manually.
542+
The script will automatically parse the appropriate Azure CDN list based on the **Instance** parameter value and keys off of **AzureFrontDoor.Frontend**, so there's no need to get that manually. The Akamai CDN information will be incorporated if you supplied the AkamaiCDN.txt file.
506543

507-
Performing VPN offloading utilizing **both** the FQDNs and the IP addresses (where provided) in the function helps scope the use of this offload to a limited set of endpoints including Teams Events. The way the function is structured will result in a DNS lookup being done for the FQDN that matches those listed by the client directly, that is, DNS resolution of the remaining namespaces remains unchanged. In the case of the Commercial cloud, not all IP addresses are provided; VPN offloading would need to rely on matching the namespaces defined earlier in this article.
544+
Performing VPN offloading utilizing **both** the FQDNs and the IP addresses in the function helps scope the use of this offload to a limited set of endpoints including Teams Events. The way the function is structured will result in a DNS lookup being done for the FQDN that matches those listed by the client directly, that is, DNS resolution of the remaining namespaces remains unchanged.
508545

509546

510547
## 3. Configure routing on the VPN to enable direct egress
@@ -518,6 +555,10 @@ The final step is to add a direct route for the Teams event IPs (or namespaces)
518555

519556
No, this will send the latency-sensitive, potentially high-volume streaming traffic for a Teams Event attendee direct, any other traffic will continue to use the VPN tunnel if they don't resolve to the IPs published or match the defined namespace.
520557

558+
### Is a PAC file required?
559+
560+
No, the PAC file is not required - it all depends on your network and security requirements. The information provided in this document can also be leveraged in other configurations, such as VPN concentrators - please refer to the manufacturer's documentation for configuration assistance.
561+
521562
### Do I need to use the IPv6 Addresses?
522563

523564
No, the connectivity can be IPv4 only if necessary.
@@ -530,16 +571,16 @@ The **Default** endpoint category has no IP information provided for numerous re
530571

531572
### Do I only need to allow access to these IPs/namespaces?
532573

533-
No, access to all of the **Required** marked endpoints for the appropriate environment is essential for the service to operate.
574+
No, access to all of the **Required** marked endpoints for the appropriate environment is essential for the service to operate. Government clouds can also leverage the Optimize endpoint ranges.
534575
- Worldwide including GCC: [Endpoints for Worldwide](urls-and-ip-address-ranges.md)
535576
- Microsoft 365 U.S. Government GCC High: [Endpoints for GCC High](microsoft-365-u-s-government-gcc-high-endpoints.md)
536577
- Microsoft 365 U.S. Government DoD: [Endpoints for DoD](microsoft-365-u-s-government-dod-endpoints.md)
537578

538579
### What scenarios will this advice cover?
539580

540-
1. Live events produced within the Teams App
541-
2. Teams encoder produced live events
542-
3. Teams Town hall
581+
1. Attending Live events produced within the Teams App
582+
2. Attending Teams encoder produced live events
583+
3. Attending Teams Town hall
543584

544585
### Does this advice cover presenter traffic?
545586

@@ -568,6 +609,4 @@ It doesn't; the preceding advice is purely for those attending the event. Presen
568609

569610
[Enhancing VPN performance at Microsoft: using Windows 10 VPN profiles to allow auto-on connections](https://www.microsoft.com/itshowcase/enhancing-remote-access-in-windows-10-with-an-automatic-vpn-profile)
570611

571-
[Running on VPN: How Microsoft is keeping its remote workforce connected](https://www.microsoft.com/itshowcase/blog/running-on-vpn-how-microsoft-is-keeping-its-remote-workforce-connected/?elevate-lv)
572-
573612
[Microsoft global network](/azure/networking/microsoft-global-network)

0 commit comments

Comments
 (0)