Partager via


Considérations spéciales pour les événements 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 Teams (cela inclut les participants aux événements en direct produits par Teams et ceux produits avec un encodeur externe via Teams ou Viva Engage) et le trafic des participants à l’assemblée publique Microsoft Teams est actuellement classé comme par défaut ou 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 Teams directement à partir de leur connexion Internet locale, plutôt que de router le trafic sensible à un volume élevé 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 identifier et activer la connectivité directe pour le trafic des participants pour les événements Teams à partir de clients qui utilisent un VPN de tunnel forcé. Cette solution est destinée à fournir aux clients une option permettant d’éviter de router le trafic des participants 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 en direct/Stream 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 Teams.

Pour implémenter l’exception de tunnel forcé pour les événements Teams, 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.

Pour le cloud commercial :

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

*.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.

Remarque

Certains de ces points de terminaison sont partagés avec d’autres éléments en dehors des événements Teams. Nous vous déconseillons d’utiliser simplement ces espaces de noms pour configurer le déchargement VPN, même si cela est techniquement possible dans votre solution VPN (par exemple, si elle fonctionne avec l’espace de noms plutôt qu’avec l’adresse IP).

Pour les clouds du secteur public (GCC, GCC High, DoD) :

  • *.cdn.ml.gcc.teams.microsoft.com
  • *.cdn.ml.gov.teams.microsoft.us
  • *.cdn.ml.dod.teams.microsoft.us

*.cdn.ml.gcc.teams.microsoft.com est utilisé pour les événements de l’hôtel de ville Teams dans le cloud microsoft 365 de la communauté du gouvernement des États-Unis (GCC).

*.cdn.ml.gov.teams.microsoft.us est utilisé pour les événements de l’hôtel de ville Teams dans le cloud microsoft 365 U.S. Government GCC High (GCC High).

*.cdn.ml.dod.teams.microsoft.us est utilisé pour les événements d’assemblées publiques Teams dans le Cloud DoD (DoD) du gouvernement des États-Unis Microsoft 365.

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 les événements Teams, les noms d’hôte fournis contiennent des caractères génériques qui se résolvent en adresses IP utilisées par les réseaux de distribution de contenu (CDN) qui ne sont pas utilisés exclusivement pour le trafic d’événements Teams. 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 les événements Teams 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

Pour le cloud commercial, les événements Teams utilisent plusieurs fournisseurs CDN pour diffuser en continu vers les clients, afin de fournir la meilleure couverture, la meilleure qualité et la meilleure résilience. Actuellement, le CDN Azure de Microsoft et le CDN Azure 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 les clouds Microsoft 365 U.S. Government (GCC, GCC High et DoD), seul le CDN Azure de Microsoft est utilisé.

Pour le cloud commercial :

  • 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 AzureFrontdoor.Frontend de service 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 les clouds du secteur public (GCC, GCC High et DoD) :

Le script suivant peut générer un fichier PAC qui inclut les espaces de noms et les listes d’adresses IP pour le trafic des participants aux événements Teams. Le paramètre -Instance détermine l’environnement spécifié : les valeurs prises en charge sont [Worldwide, USGov, USGovGCCHigh et UsGovDoD]. Si vous le souhaitez, le script peut également inclure les domaines Optimize et Allow à l’aide du paramètre -Type .

Exemple de génération de fichiers PAC pour le cloud commercial

Voici un exemple de génération du fichier PAC pour le cloud commercial :

  1. Enregistrez le script sur votre disque dur local en tant queGet-EventsPacFile.ps1.

  2. Accédez à l’URL Verizon et téléchargez le json obtenu (copiez-le dans un fichier nommé 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. Si vous souhaitez uniquement les noms Optimize (et non Optimiser et Autoriser), remplacez le paramètre -Type par Optimize.

    .\Get-EventsPacFile.ps1 -Instance Worldwide -CdnEdgeNodesFilePath .\cdnedgenodes.json -Type OptimizeAndAllow -FilePath .\Commercial.pac
    
  5. Le fichier Commercial.pac contient tous les espaces de noms et adresses IP (IPv4/IPv6) pour le trafic des participants aux événements Teams.

Exemple de génération de fichier PAC pour microsoft 365 U.S. Government Community Cloud (GCC)

Voici un exemple de génération du fichier PAC pour l’environnement GCC :

  1. Enregistrez le script sur votre disque dur local en tant queGet-EventsPacFile.ps1.

  2. Dans une fenêtre PowerShell, exécutez la commande suivante. Si vous souhaitez uniquement les noms Optimize (et non Optimiser et Autoriser), remplacez le paramètre -Type par Optimize.

    .\Get-EventsPacFile.ps1 -Instance UsGov -Type OptimizeAndAllow -FilePath .\USGov.pac
    
  3. Le fichier USGov.pac contiendra tous les espaces de noms et adresses IP (IPv4/IPv6) spécifiques au cloud GCC pour le trafic des participants à l’hôtel de ville Teams.

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

<#PSScriptInfo

.VERSION 1.0.6

.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 for Teams Events (Live Events, Town hall)

.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. The default is Worldwide. To specify GCC use the USGov value.

.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 Optimize and OptimizeAndAllow, which are 2 different modes of operation.
These values align to the categories defined in our Principles of Network Connectivity at https://aka.ms/pnc

.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-EventsPacFile.ps1 -Instance Worldwide -CdnEdgeNodesFilePath .\cdnedgenodes.json -Type OptimizeAndAllow -FilePath .\Commercial.pac 

.EXAMPLE

Get-EventsPacFile.ps1 -Instance USGov -FilePath .\USGov.pac -Type OptimizeAndAllow


#>

#Requires -Version 2

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

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

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

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

    [Parameter()]
    [ValidateSet('OptimizeOnly','OptimizeAndAllow')]
    [string]
    $Type = 'OptimizeOnly',

    [Parameter()]
    [switch] $Lowercase,

    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [string] $TenantName,

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

    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [string] $FilePath,

    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [string] $CdnEdgeNodesFilePath
)

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

$baseServiceUrl = if ($Instance -eq 'USGov') {
    "https://endpoints.office.com/endpoints/Worldwide/?ClientRequestId=$ClientRequestId"
} else {
    "https://endpoints.office.com/endpoints/$Instance/?ClientRequestId=$ClientRequestId"
}
$directProxyVarName = "direct"
$defaultProxyVarName = "proxyServer"

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

function Get-PacString {
    param(
        [Parameter(ValueFromPipelineByPropertyName)]
        [string[]]
        $NonDirectOverrideFqdns,

        [Parameter(ValueFromPipelineByPropertyName)]
        [string[]]
        $DirectFqdns
    )

    $PACSb = New-Object 'System.Text.StringBuilder'
    $null = & {
        $PACSb.AppendLine('// This PAC file will provide proxy config to Microsoft 365 services')
        $PACSb.AppendLine('// using data from the public web service for all endpoints')
        $PACSb.AppendLine('function FindProxyForURL(url, host)')
        $PACSb.AppendLine('{')
        $PACSb.Append('    var ').Append($directProxyVarName).Append(' = "').Append($DirectProxySettings).AppendLine('";')
        $PACSb.Append('    var ').Append($defaultProxyVarName).Append(' = "').Append($DefaultProxySettings).AppendLine('";')
        if ($Lowercase) {
            $PACSb.AppendLine('    host = host.toLowerCase();')
        }
        $first = $true
        foreach ($fqdn in $NonDirectOverrideFqdns) {
            if ($first) {
                $PACSb.AppendLine()
                $PACSb.AppendLine('    // Force proxy for subdomains of bypassed hosts')
                $PACSb.AppendLine()
                $PACSb.Append('    if(')
            }
            else {
                $PACSb.AppendLine().Append('            || ')
            }
            $first = $false
            $PACSb.Append('shExpMatch(host, "').Append($fqdn).Append('")')
        }
        if (!$first) {
            $PACSb.AppendLine(')')
            $PACSb.AppendLine('    {')
            $PACSb.Append('        return ').Append($directProxyVarName).AppendLine(';')
            $PACSb.AppendLine('    }')
        }

        $first = $true
        foreach ($fqdn in $DirectFqdns) {
            if ($first) {
                $PACSb.AppendLine()
                $PACSb.AppendLine('    // Bypassed hosts')
                $PACSb.AppendLine()
                $PACSb.Append('    if(')
            }
            else {
                $PACSb.AppendLine().Append('            || ')
            }
            $first = $false
            $PACSb.Append('shExpMatch(host, "').Append($fqdn).Append('")')
        }
        if (!$first) {
            $PACSb.AppendLine(')')
            $PACSb.AppendLine('    {')
            $PACSb.Append('        return ').Append($directProxyVarName).AppendLine(';')
            $PACSb.AppendLine('    }')
        }

        if (!$ServiceAreas -or $ServiceAreas.Contains('Skype')) {
            $EventsConfig = Get-TeamsEventsConfiguration
            if ($EventsConfig.EventsAddressRanges.Count -gt 0) {
                $EventsBlock = $EventsConfig | Get-TLEPacConfiguration
                $PACSb.AppendLine()
                $PACSb.AppendLine($EventsBlock)
            }
        }

        $PACSb.Append('    return ').Append($defaultProxyVarName).AppendLine(';').Append('}')
    }

    return $PACSb.ToString()
}

##################################################################################################################
### Functions to get and filter endpoints
##################################################################################################################
function Get-TeamsEventsConfiguration {
    param()
    $IncludedHosts = switch ($Instance) {
        'USGov' {
            @('*.cdn.ml.gcc.teams.microsoft.com')
            break
        }
        'USGovDoD' {
            @('*.cdn.ml.dod.teams.microsoft.us')
            break
        }
        'USGovGCCHigh' {
            @('*.cdn.ml.gov.teams.microsoft.us')
            break
        }
        default {
            @('*.bmc.cdn.office.net', '*.ml.cdn.office.net', '*.media.azure.net')
            break
        }
    }
    $IncludedAddressRanges = & {
        if (!$Instance.StartsWith('USGov') -and ![string]::IsNullOrEmpty($CdnEdgeNodesFilePath) -and (Test-Path -Path $CdnEdgeNodesFilePath)) {
            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 |
                ForEach-Object {
                    $_.ipv4Addresses
                    $_.ipv6Addresses
                } |
                Where-Object { $_.BaseIpAddress } |
                ForEach-Object { $_.BaseIpAddress + '/' + $_.prefixLength }
        }

        $ServiceTagsDownloadId = '56519'
        if ($Instance.StartsWith('USGov')) {
            $ServiceTagsDownloadId = '57063'
        }
        $AzureIPsUrl = Invoke-WebRequest -Uri "https://www.microsoft.com/en-us/download/confirmation.aspx?id=$ServiceTagsDownloadId" -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
        }
    }
    [PSCustomObject]@{
        EventsHostNames = $IncludedHosts
        EventsAddressRanges = $IncludedAddressRanges
    }
}

function Get-TLEPacConfiguration {
    [CmdletBinding()]
    param (
        [Parameter(ValueFromPipelineByPropertyName)]
        [string[]]
        $EventsHostNames,

        [Parameter(ValueFromPipelineByPropertyName)]
        [string[]]
        $EventsAddressRanges
    )
    if ($EventsAddressRanges.Count -eq 0) {
        return ''
    }
    $TLESb = New-Object 'System.Text.StringBuilder'
    $Spaces = '    '
    $null = $TLESb.Append($Spaces).AppendLine('// Bypass Teams Events attendee traffic')
    $first = $true
    $null = foreach ($hostName in $EventsHostNames) {
        if ($first) {
            $TLESb.AppendLine().Append($Spaces).Append('if(')
        }
        else {
            $TLESb.AppendLine().Append($Spaces).Append('    || ')
        }
        $first = $false
        $TLESb.Append('shExpMatch(host, "').Append($hostName).Append('")')
    }
    $null = $TLESb.AppendLine(')').Append($Spaces).AppendLine('{')
    $Spaces = $Spaces + $Spaces
    $null = $TLESb.Append($Spaces).AppendLine('var resolved_ip = dnsResolveEx(host);')

    $first = $true
    $null = foreach ($addressRange in $EventsAddressRanges) {
        if ($first) {
            $TLESb.AppendLine().Append($Spaces).Append('if(')
        } else {
            $TLESb.AppendLine().Append($Spaces).Append('    || ')
        }
        $first = $false
        $TLESb.Append('isInNetEx(resolved_ip, "').Append($addressRange).Append('")')
    }
    if (!$first) {
        $null = $TLESb.AppendLine(')').
            Append($Spaces).AppendLine('{').
            Append($Spaces).Append('    return ').Append($directProxyVarName).AppendLine(';').
            Append($Spaces).AppendLine('}')
    }
    else {
        $null = $TLESb.Append($Spaces).AppendLine('// no addresses found for service via script')
    }
    return $TLESb.AppendLine('    }').ToString()
}

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

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

    $Include = if ($Type -eq 'OptimizeOnly') { @('Optimize') } else { @('Optimize', 'Allow') }

    $directUrls = $endpoints |
        Where-Object { $_.category -in $Include } |
        Where-Object { $_.urls } |
        ForEach-Object { $_.urls } |
        Sort-Object -Unique

    $MatchList = [Collections.Generic.Dictionary[string,Regex]]@{}
    $directUrls |
        Where-Object { $_.Contains('*') -or $_.Contains('?') } |
        ForEach-Object { $MatchList[$_] = [Regex]::new('^{0}$' -f $_.Replace('.','\.').Replace('*','.*').Replace('?','.?'),[Text.RegularExpressions.RegexOptions]::IgnoreCase) }

    $nonDirectPriorityUrls = $endpoints |
        Where-Object { $_.category -notin $Include } |
        Where-Object { $_.urls } |
        ForEach-Object { $_.urls } |
        Sort-Object -Unique |
        Where-Object { [Linq.Enumerable]::Any($MatchList,[Func[System.Collections.Generic.KeyValuePair[string,Regex],bool]]{$args[0].Key -ne $_ -and $args[0].Value.IsMatch($_)}) }

    return [PSCustomObject]@{
        NonDirectOverrideFqdns = $nonDirectPriorityUrls
        DirectFqdns = $directUrls
    }
}

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

$content = Get-MapVarUrls | Get-PacString

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

Le script analyse automatiquement la liste azure CDN appropriée en fonction de la valeur du paramètre Instance 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 Teams. 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.

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 Teams répertoriées dans ce document.

Remarque

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.

FAQ

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

Non, cela envoie directement le trafic de streaming sensible à la latence pour un participant à l’événement Teams. 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 les événements Teams. 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 requis pour l’environnement approprié est essentiel au fonctionnement du service.

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

  1. Événements en direct produits dans l’application Teams
  2. Événements produits par un appareil externe (encodeur)
  3. 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 aux participants à l’événement. 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.

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