Considérations spéciales pour les événements Stream et Teams dans les environnements VPN

Remarque

Cet article fait partie d’un ensemble d’articles qui traitent de l’optimisation de Microsoft 365 pour les utilisateurs distants.

Le trafic des participants aux événements en direct Microsoft 365 (cela inclut les participants aux événements en direct générés par Teams et ceux produits avec un encodeur externe via Teams, Stream ou Viva Engage), le trafic des participants à l’assemblée publique Microsoft Teams et le trafic des participants stream à la demande sont actuellement classés comme par défaut et optimiser dans la liste URL/IP du service. Ces points de terminaison sont classés par défaut , car ils sont hébergés sur des CDN qui peuvent également être utilisés par d’autres services. Les clients préfèrent généralement mettre en proxy ce type de trafic et appliquer tous les éléments de sécurité normalement effectués sur des points de terminaison tels que ceux-ci.

De nombreux clients ont demandé des données URL/IP nécessaires pour connecter leurs participants aux événements Stream ou Teams directement à partir de leur connexion Internet locale, au lieu d’acheminer le trafic sensible à haut volume et à la latence via l’infrastructure VPN. En règle générale, cela n’est pas possible sans des espaces de noms dédiés et des informations IP précises pour les points de terminaison, ce qui n’est pas fourni pour les points de terminaison Microsoft 365 classés comme par défaut.

Utilisez les étapes suivantes pour activer la connectivité directe pour les services d’événements Stream ou Teams à partir de clients utilisant un VPN de tunnel forcé. Cette solution est destinée à fournir aux clients une option permettant d’éviter de router le trafic des participants aux événements sur VPN alors qu’il y a un trafic réseau élevé en raison de scénarios de travail à domicile. Si possible, nous vous recommandons d’accéder au service via un proxy d’inspection.

Remarque

À l’aide de cette solution, il peut y avoir des éléments de service qui ne se résolvent pas en adresses IP fournies et qui traversent donc le VPN, mais la majeure partie du trafic à volume élevé comme les données de streaming le devrait. Il peut y avoir d’autres éléments en dehors de l’étendue des événements/flux en direct qui sont interceptés par ce déchargement, mais ceux-ci doivent être limités, car ils doivent respecter à la fois le nom de domaine complet et la correspondance IP avant de passer directement.

Importante

Nous vous recommandons de peser le risque d’envoyer plus de trafic qui contourne le VPN par rapport au gain de performances pour les événements en direct.

Pour implémenter l’exception de tunnel forcé pour les événements Teams et Stream, les étapes suivantes doivent être appliquées :

1. Configurer la résolution DNS externe

Les clients ont besoin que la résolution DNS externe et récursive soit disponible afin que les noms d’hôtes suivants puissent être résolus en adresses IP.

  • *.azureedge.net
  • *.media.azure.net
  • *.bmc.cdn.office.net
  • *.ml.cdn.office.net

*.azureedge.net est utilisé pour les événements Stream (Configurer des encodeurs pour la diffusion en continu en direct dans Microsoft Stream - Microsoft Stream | Microsoft Docs).

*.media.azure.net et *.bmc.cdn.office.net sont utilisés pour les événements en direct produits par Teams (événements de démarrage rapide et RTMP-In événements pris en charge) planifiés à partir du client Teams.

*.media.azure.net, *.bmc.cdn.office.net et *.ml.cdn.office.net sont utilisés pour les événements de la mairie Teams.

Certains de ces points de terminaison sont partagés avec d’autres éléments en dehors des événements Stream ou Teams. Nous vous déconseillons d’utiliser simplement ces noms de domaine complets pour configurer le déchargement VPN, même si cela est techniquement possible dans votre solution VPN (par exemple, s’il fonctionne au niveau du nom de domaine complet plutôt que de l’adresse IP).

Les noms de domaine complets ne sont pas requis dans la configuration VPN, ils sont uniquement destinés à être utilisés dans les fichiers PAC en combinaison avec les adresses IP pour envoyer le trafic approprié directement.

2. Implémenter les modifications de fichier PAC (si nécessaire)

Pour les organisations qui utilisent un fichier PAC pour acheminer le trafic via un proxy lorsqu’ils sont sur UN VPN, cela est normalement réalisé à l’aide de noms de domaine complets. Toutefois, avec Stream/Live Events/Town hall, les noms d’hôte fournis contiennent des caractères génériques tels que *.azureedge.net, qui englobent également d’autres éléments pour lesquels il n’est pas possible de fournir des listes d’adresses IP complètes. Par conséquent, si la requête est envoyée directement en fonction de la correspondance de caractères génériques DNS seule, le trafic vers ces points de terminaison est bloqué, car il n’existe aucun itinéraire via le chemin d’accès direct pour celui-ci à l’étape 3 plus loin dans cet article.

Pour résoudre ce problème, nous pouvons fournir les adresses IP suivantes et les utiliser en combinaison avec les noms d’hôte dans un exemple de fichier PAC, comme décrit à l’étape 1. Le fichier PAC vérifie si l’URL correspond à celles utilisées pour Stream/Live Events/Town hall et, si c’est le cas, il vérifie également si l’adresse IP retournée par une recherche DNS correspond à celles fournies pour le service. Si les deux correspondent, le trafic est routé directement. Si l’un des éléments (FQDN/IP) ne correspond pas, le trafic est envoyé au proxy. Par conséquent, la configuration garantit que tout ce qui est résolu en une adresse IP en dehors de l’étendue de l’adresse IP et des espaces de noms définis traverse le proxy via le VPN comme d’habitude.

Collecte des listes actuelles de points de terminaison CDN

Les événements Teams utilisent plusieurs fournisseurs CDN pour diffuser en continu vers les clients, afin de fournir une couverture, une qualité et une résilience optimales. Actuellement, les deux CDN Azure de Microsoft et de Verizon sont utilisés. Au fil du temps, cela peut être modifié en raison de situations telles que la disponibilité régionale. Cet article est une source qui vous permet de vous tenir à jour sur les plages d’adresses IP.

Pour le CDN Azure de Microsoft, vous pouvez télécharger la liste à partir de Télécharger les plages d’adresses IP et les étiquettes de service Azure – Cloud public à partir du Centre de téléchargement Microsoft officiel . Vous devez rechercher spécifiquement l’étiquette de service AzureFrontdoor.Frontend dans le JSON ; addressPrefixes affiche les sous-réseaux IPv4/IPv6. Au fil du temps, les adresses IP peuvent changer, mais la liste des étiquettes de service est toujours mise à jour avant qu’elles ne soient utilisées.

Pour le CDN Azure fourni par Verizon (Edgecast), vous trouverez une liste exhaustive à l’aide de Nœuds Edge - Liste (sélectionnez Essayer ). Vous devez rechercher spécifiquement la section Premium_Verizon . Notez que cette API affiche toutes les adresses IP Edgecast (origine et Anycast). Actuellement, il n’existe pas de mécanisme permettant à l’API de faire la distinction entre l’origine et Anycast.

Pour implémenter cela dans un fichier PAC, vous pouvez utiliser l’exemple suivant qui envoie le trafic direct d’optimisation de Microsoft 365 (ce qui est recommandé) via le nom de domaine complet et le trafic stream/événements en direct critique via une combinaison du nom de domaine complet et de l’adresse IP retournée. Le nom de l’espace réservé Contoso doit être modifié en fonction du nom de votre locataire spécifique, où contoso provient de contoso.onmicrosoft.com

Exemple de fichier PAC

Voici un exemple de génération des fichiers PAC :

  1. Enregistrez le script ci-dessous sur votre disque dur local en tant queGet-TLEPacFile.ps1.

  2. Accédez à l’URL Verizon et téléchargez le json obtenu (copiez-le dans un fichier comme cdnedgenodes.json)

  3. Placez le fichier dans le même dossier que le script.

  4. Dans une fenêtre PowerShell, exécutez la commande suivante. Modifiez le nom du locataire pour autre chose si vous souhaitez les URL SPO. Il s’agit du type 2, donc Optimiser et Autoriser (type 1 est Optimiser uniquement).

    .\Get-TLEPacFile.ps1 -Instance Worldwide -Type 2 -TenantName <contoso> -CdnEdgeNodesFilePath .\cdnedgenodes.json -FilePath TLE.pac
    
  5. Le fichier TLE.pac contient tous les espaces de noms et adresses IP (IPv4/IPv6).

Get-TLEPacFile.ps1
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.

<#PSScriptInfo

.VERSION 1.0.5

.AUTHOR Microsoft Corporation

.GUID 7f692977-e76c-4582-97d5-9989850a2529

.COMPANYNAME Microsoft

.COPYRIGHT
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.

.TAGS PAC Microsoft Microsoft365 365

.LICENSEURI

.PROJECTURI http://aka.ms/ipurlws

.ICONURI

.EXTERNALMODULEDEPENDENCIES

.REQUIREDSCRIPTS

.EXTERNALSCRIPTDEPENDENCIES

.RELEASENOTES

#>

<#

.SYNOPSIS

Create a PAC file for Microsoft 365 prioritized connectivity

.DESCRIPTION

This script will access updated information to create a PAC file to prioritize Microsoft 365 Urls for
better access to the service. This script will allow you to create different types of files depending
on how traffic needs to be prioritized.

.PARAMETER Instance

The service instance inside Microsoft 365.

.PARAMETER ClientRequestId

The client request id to connect to the web service to query up to date Urls.

.PARAMETER DirectProxySettings

The direct proxy settings for priority traffic.

.PARAMETER DefaultProxySettings

The default proxy settings for non priority traffic.

.PARAMETER Type

The type of prioritization to give. Valid values are 1 and 2, which are 2 different modes of operation.
Type 1 will send Optimize traffic to the direct route. Type 2 will send Optimize and Allow traffic to
the direct route.

.PARAMETER Lowercase

Flag this to include lowercase transformation into the PAC file for the host name matching.

.PARAMETER TenantName

The tenant name to replace wildcard Urls in the webservice.

.PARAMETER ServiceAreas

The service areas to filter endpoints by in the webservice.

.PARAMETER FilePath

The file to print the content to.

.EXAMPLE

Get-TLEPacFile.ps1 -ClientRequestId b10c5ed1-bad1-445f-b386-b919946339a7 -DefaultProxySettings "PROXY 4.4.4.4:70" -FilePath type1.pac

.EXAMPLE

Get-TLEPacFile.ps1 -ClientRequestId b10c5ed1-bad1-445f-b386-b919946339a7 -Instance China -Type 2 -DefaultProxySettings "PROXY 4.4.4.4:70" -FilePath type2.pac

.EXAMPLE

Get-TLEPacFile.ps1 -ClientRequestId b10c5ed1-bad1-445f-b386-b919946339a7 -Instance WorldWide -Lowercase -TenantName tenantName -ServiceAreas Sharepoint

#>

#Requires -Version 2

[CmdletBinding(SupportsShouldProcess=$True)]
Param (
    [Parameter(Mandatory = $false)]
    [ValidateSet('Worldwide', 'Germany', 'China', 'USGovDoD', 'USGovGCCHigh')]
    [String] $Instance = "Worldwide",

    [Parameter(Mandatory = $false)]
    [ValidateNotNullOrEmpty()]
    [guid] $ClientRequestId = [Guid]::NewGuid().Guid,

    [Parameter(Mandatory = $false)]
    [ValidateNotNullOrEmpty()]
    [String] $DirectProxySettings = 'DIRECT',

    [Parameter(Mandatory = $false)]
    [ValidateNotNullOrEmpty()]
    [String] $DefaultProxySettings = 'PROXY 10.10.10.10:8080',

    [Parameter(Mandatory = $false)]
    [ValidateRange(1, 2)]
    [int] $Type = 1,

    [Parameter(Mandatory = $false)]
    [switch] $Lowercase = $false,

    [Parameter(Mandatory = $false)]
    [ValidateNotNullOrEmpty()]
    [string] $TenantName,

    [Parameter(Mandatory = $false)]
    [ValidateSet('Exchange', 'SharePoint', 'Common', 'Skype')]
    [string[]] $ServiceAreas,

    [Parameter(Mandatory = $false)]
    [ValidateNotNullOrEmpty()]
    [string] $FilePath,

    [Parameter(Mandatory = $false)]
    [ValidateNotNullOrEmpty()]
    [string] $CdnEdgeNodesFilePath
)

##################################################################################################################
### Global constants
##################################################################################################################

$baseServiceUrl = "https://endpoints.office.com/endpoints/$Instance/?ClientRequestId={$ClientRequestId}"
$directProxyVarName = "direct"
$defaultProxyVarName = "proxyServer"
$bl = "`r`n"

##################################################################################################################
### Functions to create PAC files
##################################################################################################################

function Get-PacClauses
{
    param(
        [Parameter(Mandatory = $false)]
        [string[]] $Urls,

        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String] $ReturnVarName
    )

    if (!$Urls)
    {
        return ""
    }

    $clauses =  (($Urls | ForEach-Object { "shExpMatch(host, `"$_`")" }) -Join "$bl        || ")

@"
    if($clauses)
    {
        return $ReturnVarName;
    }
"@
}

function Get-PacString
{
    param(
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [array[]] $MapVarUrls
    )

@"
// This PAC file will provide proxy config to Microsoft 365 services
//  using data from the public web service for all endpoints
function FindProxyForURL(url, host)
{
    var $directProxyVarName = "$DirectProxySettings";
    var $defaultProxyVarName = "$DefaultProxySettings";

$( if ($Lowercase) { "    host = host.toLowerCase();" })

$( ($MapVarUrls | ForEach-Object { Get-PACClauses -ReturnVarName $_.Item1 -Urls $_.Item2 }) -Join "$bl$bl" )

$( if (!$ServiceAreas -or $ServiceAreas.Contains('Skype')) { Get-TLEPacConfiguration })

    return $defaultProxyVarName;
}
"@ -replace "($bl){3,}","$bl$bl" # Collapse more than one blank line in the PAC file so it looks better.
}

##################################################################################################################
### Functions to get and filter endpoints
##################################################################################################################

function Get-TLEPacConfiguration {
    param ()
    $PreBlock = @"
    // Don't Proxy Teams Live Events traffic

    if(shExpMatch(host, "*.azureedge.net")
    || shExpMatch(host, "*.bmc.cdn.office.net")
    || shExpMatch(host, "*.ml.cdn.office.net")
    || shExpMatch(host, "*.media.azure.net"))
    {
        var resolved_ip = dnsResolveEx(host);

"@
    $TLESb = New-Object 'System.Text.StringBuilder'
    $TLESb.Append($PreBlock) | Out-Null

    if (![string]::IsNullOrEmpty($CdnEdgeNodesFilePath) -and (Test-Path -Path $CdnEdgeNodesFilePath)) {
        $CdnData = Get-Content -Path $CdnEdgeNodesFilePath -Raw -ErrorAction SilentlyContinue | ConvertFrom-Json | Select-Object -ExpandProperty value | 
            Where-Object { $_.name -eq 'Premium_Verizon'} | Select-Object -First 1 -ExpandProperty properties | 
            Select-Object -ExpandProperty ipAddressGroups
        $CdnData | Select-Object -ExpandProperty ipv4Addresses | ForEach-Object {
            if ($TLESb.Length -eq $PreBlock.Length) {
                $TLESb.Append("        if(") | Out-Null
            }
            else {
                $TLESb.AppendLine() | Out-Null
                $TLESb.Append("        || ") | Out-Null
            }
            $TLESb.Append("isInNetEx(resolved_ip, `"$($_.BaseIpAddress)/$($_.prefixLength)`")") | Out-Null
        }
        $CdnData | Select-Object -ExpandProperty ipv6Addresses | ForEach-Object {
            if ($TLESb.Length -eq $PreBlock.Length) {
                $TLESb.Append("        if(") | Out-Null
            }
            else {
                $TLESb.AppendLine() | Out-Null
                $TLESb.Append("        || ") | Out-Null
            }
            $TLESb.Append("isInNetEx(resolved_ip, `"$($_.BaseIpAddress)/$($_.prefixLength)`")") | Out-Null
        }
    }
    $AzureIPsUrl = Invoke-WebRequest -Uri "https://www.microsoft.com/en-us/download/confirmation.aspx?id=56519" -UseBasicParsing -ErrorAction SilentlyContinue  | 
            Select-Object -ExpandProperty Links | Select-Object -ExpandProperty href | 
            Where-Object { $_.EndsWith('.json') -and $_ -match 'ServiceTags' } | Select-Object -First 1
    if ($AzureIPsUrl) {
        Invoke-RestMethod -Uri $AzureIPsUrl -ErrorAction SilentlyContinue | Select-Object -ExpandProperty values | 
            Where-Object { $_.name -eq 'AzureFrontDoor.Frontend' } | Select-Object -First 1 -ExpandProperty properties |
            Select-Object -ExpandProperty addressPrefixes | ForEach-Object {
                if ($TLESb.Length -eq $PreBlock.Length) {
                    $TLESb.Append("        if(") | Out-Null
                }
                else {
                    $TLESb.AppendLine() | Out-Null
                    $TLESb.Append("        || ") | Out-Null
                }
                $TLESb.Append("isInNetEx(resolved_ip, `"$_`")") | Out-Null
            }
    }
    if ($TLESb.Length -gt $PreBlock.Length) {
        $TLESb.AppendLine(")") | Out-Null
        $TLESb.AppendLine("        {") | Out-Null
        $TLESb.AppendLine("            return $directProxyVarName;") | Out-Null
        $TLESb.AppendLine("        }") | Out-Null
    }
    else {
        $TLESb.AppendLine("        // no addresses found for service via script") | Out-Null
    }
    $TLESb.AppendLine("    }") | Out-Null
    return $TLESb.ToString()
}

function Get-Regex
{
    param(
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string] $Fqdn
    )

    return "^" + $Fqdn.Replace(".", "\.").Replace("*", ".*").Replace("?", ".?") + "$"
}

function Match-RegexList
{
    param(
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string] $ToMatch,

        [Parameter(Mandatory = $false)]
        [string[]] $MatchList
    )

    if (!$MatchList)
    {
        return $false
    }
    foreach ($regex in $MatchList)
    {
        if ($regex -ne $ToMatch -and $ToMatch -match (Get-Regex $regex))
        {
            return $true
        }
    }
    return $false
}

function Get-Endpoints
{
    $url = $baseServiceUrl
    if ($TenantName)
    {
        $url += "&TenantName=$TenantName"
    }
    if ($ServiceAreas)
    {
        $url += "&ServiceAreas=" + ($ServiceAreas -Join ",")
    }
    return Invoke-RestMethod -Uri $url
}

function Get-Urls
{
    param(
        [Parameter(Mandatory = $false)]
        [psobject[]] $Endpoints
    )

    if ($Endpoints)
    {
        return $Endpoints | Where-Object { $_.urls } | ForEach-Object { $_.urls } | Sort-Object -Unique
    }
    return @()
}

function Get-UrlVarTuple
{
    param(
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string] $VarName,

        [Parameter(Mandatory = $false)]
        [string[]] $Urls
    )
    return New-Object 'Tuple[string,string[]]'($VarName, $Urls)
}

function Get-MapVarUrls
{
    Write-Verbose "Retrieving all endpoints for instance $Instance from web service."
    $Endpoints = Get-Endpoints

    if ($Type -eq 1)
    {
        $directUrls = Get-Urls ($Endpoints | Where-Object { $_.category -eq "Optimize" })
        $nonDirectPriorityUrls = Get-Urls ($Endpoints | Where-Object { $_.category -ne "Optimize" }) | Where-Object { Match-RegexList $_ $directUrls }
        return @(
            Get-UrlVarTuple -VarName $defaultProxyVarName -Urls $nonDirectPriorityUrls
            Get-UrlVarTuple -VarName $directProxyVarName -Urls $directUrls
        )
    }
    elseif ($Type -eq 2)
    {
        $directUrls = Get-Urls ($Endpoints | Where-Object { $_.category -in @("Optimize", "Allow")})
        $nonDirectPriorityUrls = Get-Urls ($Endpoints | Where-Object { $_.category -notin @("Optimize", "Allow") }) | Where-Object { Match-RegexList $_ $directUrls }
        return @(
            Get-UrlVarTuple -VarName $defaultProxyVarName -Urls $nonDirectPriorityUrls
            Get-UrlVarTuple -VarName $directProxyVarName -Urls $directUrls
        )
    }
}

##################################################################################################################
### Main script
##################################################################################################################

$content = Get-PacString (Get-MapVarUrls)

if ($FilePath)
{
    $content | Out-File -FilePath $FilePath -Encoding ascii
}
else
{
    $content
}

Le script analyse automatiquement la liste Azure en fonction de l’URL de téléchargement et des clés d’AzureFrontDoor.Frontend. Il n’est donc pas nécessaire de l’obtenir manuellement.

Là encore, nous vous déconseillons d’effectuer un déchargement VPN en utilisant uniquement les noms de domaine complets ; L’utilisation des noms de domaine complets et des adresses IP dans la fonction permet d’étendre l’utilisation de ce déchargement à un ensemble limité de points de terminaison, y compris les événements en direct/flux. La façon dont la fonction est structurée entraîne une recherche DNS pour le nom de domaine complet qui correspond directement à ceux répertoriés par le client, c’est-à-dire que la résolution DNS des espaces de noms restants reste inchangée.

Si vous souhaitez limiter le risque de déchargement des points de terminaison non liés aux événements Teams et à Stream, vous pouvez supprimer le domaine *.azureedge.net de la configuration, qui est l’endroit où se trouve la plupart de ce risque, car il s’agit d’un domaine partagé utilisé pour tous les clients Azure CDN. L’inconvénient est que tout événement utilisant un encodeur externe alimenté par Stream ne sera pas optimisé, mais les événements produits/organisés dans Teams le seront.

3. Configurer le routage sur le VPN pour activer la sortie directe

La dernière étape consiste à ajouter un itinéraire direct pour les adresses IP d’événement Teams décrites dans Collecte des listes actuelles de points de terminaison CDN dans la configuration VPN pour vous assurer que le trafic n’est pas envoyé via le tunnel forcé dans le VPN. Vous trouverez des informations détaillées sur la procédure à suivre pour les points de terminaison d’optimisation de Microsoft 365 dans la section Implémenter le tunnel partagé VPN de l’implémentation du tunnel partagé VPN pour Microsoft 365. Le processus est exactement le même pour les adresses IP d’événements Stream ou Teams répertoriées dans ce document.

Notez que seules les adresses IP (pas les noms de domaine complets) de La collecte des listes actuelles de points de terminaison CDN doivent être utilisées pour la configuration VPN.

Forum aux questions

Cela enverra-t-il tout mon trafic vers le service direct ?

Non, cela enverra le trafic de streaming sensible à la latence pour un événement Teams ou un flux vidéo direct. Tout autre trafic continuera à utiliser le tunnel VPN s’il ne se résout pas en adresses IP publiées.

Dois-je utiliser les adresses IPv6 ?

Non, la connectivité ne peut être IPv4 que si nécessaire.

Pourquoi ces adresses IP ne sont-elles pas publiées dans le service URL/IP Microsoft 365 ?

Microsoft dispose de contrôles stricts sur le format et le type d’informations figurant dans le service pour garantir que les clients peuvent utiliser les informations de manière fiable pour implémenter un routage sécurisé et optimal en fonction de la catégorie de point de terminaison.

La catégorie point de terminaison par défaut ne contient aucune information IP fournie pour de nombreuses raisons (les points de terminaison par défaut peuvent être en dehors du contrôle de Microsoft, changer trop fréquemment ou se trouver dans des blocs partagés avec d’autres éléments). Pour cette raison, les points de terminaison par défaut sont conçus pour être envoyés via le nom de domaine complet à un proxy d’inspection, comme le trafic web normal.

Dans ce cas, les points de terminaison ci-dessus sont des CDN qui peuvent être utilisés par des éléments non contrôlés par Microsoft autres que Live Events ou Stream. Par conséquent, l’envoi du trafic direct signifie également que tout ce qui est résolu en ces adresses IP sera également envoyé directement à partir du client. En raison de la nature unique de la crise mondiale actuelle et pour répondre aux besoins à court terme de nos clients, Microsoft a fourni les informations ci-dessus pour que les clients puissent les utiliser comme bon leur semble.

Microsoft s’efforce de reconfigurer les points de terminaison des événements Teams pour les inclure dans les catégories Autoriser/Optimiser les points de terminaison à l’avenir.

Dois-je uniquement autoriser l’accès à ces adresses IP ?

Non, l’accès à tous les points de terminaison marqués obligatoires dans le service URL/IP est essentiel pour que le service fonctionne. En outre, tout point de terminaison facultatif marqué pour Stream (ID 41-45) est requis.

Quels scénarios ce conseil couvrira-t-il ?

  1. Événements en direct produits dans l’application Teams
  2. Affichage du contenu hébergé stream
  3. Événements produits par un appareil externe (encodeur)
  4. Hôtel de ville Teams

Ce conseil couvre-t-il le trafic du présentateur ?

Ce n’est pas le cas. les conseils ci-dessus s’adressent uniquement à ceux qui consomment le service. La présentation à partir de Teams verra le trafic du présentateur circuler vers les points de terminaison UDP marqués Optimiser répertoriés dans la ligne 11 du service URL/IP avec des conseils de déchargement VPN détaillés décrits dans la section Implémenter le tunneling fractionné VPN de l’implémentation du tunnel partagé VPN pour Microsoft 365.

Cette configuration risque-t-elle l’envoi direct d’un trafic autre que l’hôtel de ville, les événements en direct & le flux ?

Oui, en raison des noms de domaine complets partagés utilisés pour certains éléments du service, cela est inévitable. Ce trafic est normalement envoyé via un proxy d’entreprise qui peut appliquer une inspection. Dans un scénario de tunnel partagé VPN, l’utilisation des noms de domaine complets et des adresses IP limite au minimum ce risque, mais il existe toujours. Les clients peuvent supprimer le domaine *.azureedge.net de la configuration de déchargement et réduire ce risque au strict minimum, mais cela supprimera le déchargement des événements en direct pris en charge par Stream (teams-scheduled, stream encoder events, Viva Engage events produits dans Teams, Viva Engage-schedule Stream encoder events et Stream scheduled events or on-demand vision from Stream). Les événements planifiés et produits dans Teams (y compris l’hôtel de ville) ne sont pas affectés.

Vue d’ensemble : tunneling fractionné VPN pour Microsoft 365

Implémentation du tunneling fractionné VPN pour Microsoft 365

Scénarios courants de tunneling vpn fractionné pour Microsoft 365

Sécurisation du trafic multimédia Teams pour le tunneling fractionné VPN

Optimisation des performances de Microsoft 365 pour les utilisateurs chinois

Principes de connectivité réseau Microsoft 365

Évaluation de la connectivité réseau Microsoft 365

Optimisation des performances et du réseau Microsoft 365

D'autres méthodes pour les professionnels de la sécurité et de l’informatique pour optimiser les contrôles de sécurité modernes dans les scénarios de travail à distance d’aujourd’hui (blog de l'équipe de sécurité Microsoft)

Améliorer les performances de VPN chez Microsoft : utiliser les profils VPN Windows 10 pour autoriser les connexions automatiques

Fonctionnement sur VPN : comment Microsoft maintient les employés travaillant à distance connectés

Réseau global Microsoft