Speciale aandachtspunten voor Teams-gebeurtenissen in een VPN-omgeving

Opmerking

Dit artikel maakt deel uit van een reeks artikelen over Microsoft 365-optimalisatie voor externe gebruikers.

Verkeer van deelnemers aan livegebeurtenissen van Microsoft Teams (inclusief deelnemers aan door Teams geproduceerde livegebeurtenissen en gebeurtenissen die zijn geproduceerd met een externe encoder via Teams of Viva Engage) en verkeer van bezoekers van Microsoft Teams Town hall wordt momenteel gecategoriseerd als Standaard versus Optimaliseren in de URL/IP-lijst voor de service. Deze eindpunten worden gecategoriseerd als Standaard omdat ze worden gehost op CDN's (Content Delivery Networks) die ook door andere services kunnen worden gebruikt. Klanten geven er over het algemeen de voorkeur aan om dit type verkeer te proxy'en en alle beveiligingselementen toe te passen die normaal gesproken op dergelijke eindpunten worden uitgevoerd.

Veel klanten hebben gevraagd om URL-/IP-gegevens die nodig zijn om hun deelnemers aan Teams-gebeurtenissen rechtstreeks vanaf hun lokale internetverbinding te verbinden, in plaats van het grote volume en latentiegevoelige verkeer via de VPN-infrastructuur te routeren. Dit is doorgaans niet mogelijk zonder zowel toegewezen naamruimten als nauwkeurige IP-gegevens voor de eindpunten, die niet beschikbaar zijn voor Microsoft 365-eindpunten die zijn gecategoriseerd als standaard.

Gebruik de volgende stappen om directe connectiviteit voor deelnemersverkeer voor Teams-gebeurtenissen te identificeren en in te schakelen vanaf clients die gebruikmaken van een geforceerde tunnel-VPN. Deze oplossing is bedoeld om klanten een optie te bieden om routering van deelnemersverkeer via VPN te vermijden terwijl er veel netwerkverkeer is vanwege thuiswerkscenario's. Verkeer voor deelnemers wordt via TCP/UDP 443 verbonden met het CDN.

Opmerking

Als je deze oplossing gebruikt, kunnen er service-elementen zijn die niet worden omgezet in de opgegeven IP-adressen en dus de VPN doorkruisen, maar het grootste deel van het grote verkeer, zoals streaming data, zou dat wel moeten doen. Er kunnen andere elementen zijn buiten het bereik van Live Events/Stream die worden onderschept door deze offload, maar deze moeten worden beperkt omdat ze moeten voldoen aan zowel de FQDN als de IP-overeenkomst voordat ze direct gaan.

Opmerking

Hoewel voor Ultra Low Latency (ULL) geen speciale VPN-vereisten nodig zijn, raden we je aan je netwerk te configureren, aangezien een gebeurtenis kan terugvallen op standaard streamingprotocollen, waarvoor deze wijzigingen mogelijk nodig zijn. Alle vereisten voor netwerkconfiguratie moeten worden beschreven in de algemene richtlijnen voor Microsoft 365 Teams in URL's en IP-adresbereiken voor Microsoft 365.

Belangrijk

We raden u aan dat u het risico van het verzenden van meer verkeer dat het VPN omzeilt, afweegt tegen de prestatiewinst voor Teams-evenementen.

Als u de uitzondering voor geforceerde tunnel wilt implementeren voor Teams-gebeurtenissen, moet u de volgende stappen uitvoeren:

1. Externe DNS-omzetting configureren

Clients hebben een externe, recursieve DNS-omzetting nodig om beschikbaar te zijn, zodat de volgende hostnamen kunnen worden omgezet in IP-adressen.

Voor de commerciële cloud:

  • *.ml.cdn.office.net
  • *.ml.teams.microsoft.com
  • *.ml.communications.svc.cloud.microsoft
  • *.ml.communications.svc.static.microsoft

Voor de clouds van de overheid(GCC, GCC High, DoD):

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

*.ml.gcc.teams.microsoft.com wordt gebruikt voor Teams-bijeenkomsten in de Microsoft 365 U.S. Government Community Cloud (GCC).

*.ml.gov.teams.microsoft.us wordt gebruikt voor Teams Town hall-evenementen in de Microsoft 365 U.S. Government GCC High Cloud (GCC High).

*.ml.dod.teams.microsoft.us wordt gebruikt voor Teams-bijeenkomstgebeurtenissen in de Microsoft 365 U.S. Government DoD Cloud (DoD).

2. Wijzigingen in PAC-bestanden doorvoeren (indien nodig)

Voor organisaties die een PAC-bestand gebruiken om verkeer via een proxy te routeren terwijl ze VPN gebruiken, wordt dit normaal gesproken bereikt met behulp van FQDN's. Bij Teams-gebeurtenissen bevatten de opgegeven hostnamen echter jokertekens die worden omgezet in IP-adressen die worden gebruikt door CDN's (Content Delivery Networks) die niet uitsluitend worden gebruikt voor verkeer van Teams-gebeurtenissen. Als de aanvraag dus rechtstreeks wordt verzonden op basis van alleen een DNS-jokertekenovereenkomst, kan het verkeer naar deze eindpunten worden geblokkeerd als er geen route is via het directe pad ervoor, in stap 3 verderop in dit artikel.

Om dit op te lossen, kunnen we de volgende IP's opgeven en deze gebruiken in combinatie met de hostnamen in een voorbeeld PAC-bestand, zoals beschreven in stap 1. In het PAC-bestand wordt gecontroleerd of de URL overeenkomt met de URL die voor Teams-gebeurtenissen wordt gebruikt. Als dat het geval is, wordt ook gecontroleerd of het IP-adres dat wordt geretourneerd door een DNS-zoekopdracht overeenkomt met de IP-adressen die voor de service zijn opgegeven. Als beide overeenkomen, wordt het verkeer rechtstreeks gerouteerd. Als een van de elementen (FQDN/IP) niet overeenkomt, wordt het verkeer naar de proxy verzonden. Als gevolg hiervan zorgt de configuratie ervoor dat alles wat wordt omgezet in een IP buiten het bereik van zowel het IP-adres als de gedefinieerde naamruimten, de proxy zoals gewoonlijk via de VPN passeert.

De huidige lijsten met CDN-eindpunten verzamelen

Voor de Teams-evenementen in de commerciële cloud gebruikt u Azure CDN van Microsoft en Akamai CDN; Microsoft 365 U.S. Government-clouds (GCC, GCC High en DoD) maken gebruik van Azure CDN van Microsoft samen met de bestaande IP-bereiken die zijn gedefinieerd in de desbetreffende categorie Optimaliseren voor hun omgeving. Na verloop van tijd kan dit veranderen als gevolg van situaties zoals regionale beschikbaarheid. In dit artikel vindt u de vereiste naamruimten voor Teams-gebeurtenissen en richtlijnen voor de bijbehorende IP-adresbereiken die worden gebruikt (indien beschikbaar).

Voor de commerciële cloud:

  • Voor Azure CDN van Microsoft kunt u de lijst downloaden van Download Azure IP Ranges and Service Tags - Public Cloud from Official Microsoft Downloadcentrum. U moet specifiek zoeken naar de servicetag AzureFrontdoor.Frontend in de JSON. addressPrefixes geeft de IPv4/IPv6-subnetten weer. Na verloop van tijd kunnen de IP-adressen veranderen, maar de lijst met servicetags wordt altijd bijgewerkt voordat ze in gebruik worden genomen.
  • Voor Akamai CDN worden de volgende IP-adressen gebruikt (deze worden alleen gebruikt voor Teams-verkeer):
    • 23.11.32.10/32
    • 23.11.33.10/32
    • 23.11.34.10/32
    • 23.11.35.10/32
    • 23.11.38.12/32
    • 23.11.39.12/32
    • 23.11.36.9/32
    • 23.11.37.9/32
    • 23.11.40.9/32
    • 23.11.41.9/32
    • 23.11.42.9/32
    • 23.11.43.9/32
    • 2600:14e1:0:1::/64
    • 2600:14e1:4:1::/64
    • 2600:14e1:8:1::/64
    • 2600:14e1:c:1::/64
    • 2600:14e1:18:2::/64
    • 2600:14e1:1c:2::/64
    • 2600:14e1:10:7::/64
    • 2600:14e1:14:7::/64
    • 2600:14e1:20:7::/64
    • 2600:14e1:24:7::/64
    • 2600:14e1:28:7::/64
    • 2600:14e1:2c:7::/64

Voor de clouds van de overheid(GCC, GCC High en DoD):

Met het volgende script kan een PAC-bestand worden gegenereerd met de naamruimten en IP-vermeldingen voor het verkeer van de deelnemers aan Teams Events. De parameter -Instance bepaalt de opgegeven omgeving. De ondersteunde waarden zijn [Worldwide, USGov, USGovGCCHigh en UsGovDoD]. Optioneel kan het script ook de domeinen Optimaliseren en Toestaan bevatten met behulp van de parameter -Type.

Voorbeeld van PAC-bestandsgeneratie voor de commerciële cloud

Hier volgt een voorbeeld van hoe u het PAC-bestand voor de commerciële cloud genereert:

  1. Sla het script op uw lokale harde schijf op als Get-EventsPacFile.ps1.

  2. Maak een nieuw tekstbestand met de naam AkamaiCDN.txt en kopieer de IP-adressen van de Akamai CDN uit de vorige sectie in het bestand. Zorg ervoor dat er slechts één IP-adres/voorvoegsel per regel is. Sla dit bestand op. U hebt het nodig in de volgende stap.

  3. Voer de volgende opdracht uit in een PowerShell-venster. Als u de namen Optimaliseren en Toestaan wilt gebruiken (en niet Alleen optimaliseren), wijzigt u de parameter -Type in OptimizeAnyAllow.

    .\Get-EventsPacFile.ps1 -Instance Worldwide -Type OptimizeOnly -EIPBFilePath .\AkamaiCDN.txt -FilePath .\Commercial.pac
    
  4. Het bestand Commercial.pac bevat alle naamruimten en IP's (IPv4/IPv6) die beschikbaar zijn voor verkeer van deelnemers aan Teams-gebeurtenissen.

Voorbeeld van het genereren van PAC-bestanden voor de Microsoft 365 U.S. Government Community Cloud (GCC)

Hier volgt een voorbeeld van hoe u het PAC-bestand voor de GCC-omgeving genereert:

  1. Sla het script op uw lokale harde schijf op als Get-EventsPacFile.ps1.

  2. Voer de volgende opdracht uit in een PowerShell-venster. Als u alleen de namen voor optimaliseren wilt gebruiken (en niet optimaliseren en toestaan), wijzigt u de parameter -Type in OptimizeOnly.

    .\Get-EventsPacFile.ps1 -Instance UsGov -Type OptimizeAndAllow -FilePath .\USGov.pac
    
  3. Het USGov.pac-bestand bevat alle naamruimten en IP's (IPv4/IPv6) die specifiek zijn voor de GCC-cloud voor bezoekersverkeer van de Teams-bijeenkomst.

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

<#PSScriptInfo

.VERSION 1.0.8

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

The input file for the Akamai IP addresses.

.PARAMETER FilePath

The file to print the content to.

.EXAMPLE

Get-EventsPacFile.ps1 -Instance Worldwide -Type OptimizeOnly -EIPBFilePath .\AkamaiCDN.txt -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] $EIPBFilePath

)

##################################################################################################################
### 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-TeamsEventsPacConfiguration
                $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' {
            @('*.ml.gcc.teams.microsoft.com')
            break
        }
        'USGovDoD' {
            @('*.ml.dod.teams.microsoft.us')
            break
        }
        'USGovGCCHigh' {
            @('*.ml.gov.teams.microsoft.us')
            break
        }
        default {
            @(
               '*.ml.cdn.office.net'
               '*.ml.teams.microsoft.com'
               '*.ml.communications.svc.cloud.microsoft'
               '*.ml.communications.svc.static.microsoft'
            )
            break
        }
    }
    $IncludedAddressRanges = & {
        if (!$Instance.StartsWith('USGov') -and ![string]::IsNullOrEmpty($EIPBFilePath) -and (Test-Path -Path $EIPBFilePath)) {
            Get-Content -Path $EIPBFilePath -ErrorAction SilentlyContinue
        }

        $ServiceTagsDownloadId = '56519'
        if ($Instance.StartsWith('USGov')) {
            $ServiceTagsDownloadId = '57063'
        }
        $AzureIPsUrl = Invoke-WebRequest -Uri "https://www.microsoft.com/en-us/download/details.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-TeamsEventsPacConfiguration {
    [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
}

Het script parseert automatisch de juiste Azure CDN-lijst op basis van de waarde van de exemplaarparameter en sleutels van AzureFrontDoor.Frontend, dus u hoeft die niet handmatig op te halen. De informatie van het Akamai CDN wordt opgenomen als u het AkamaiCDN.txt-bestand hebt opgegeven.

Door VPN-offloading uit te voeren met behulp van zowel de FQDN's als de IP-adressen in de functie, kan het bereik van deze offload worden beperkt tot een beperkte set eindpunten, waaronder Teams-gebeurtenissen. De manier waarop de functie is gestructureerd, resulteert in een DNS-lookup voor de FQDN die overeenkomt met de FQDN die rechtstreeks door de client worden vermeld. Dat wil zeggen dat de DNS-omzetting van de resterende naamruimten ongewijzigd blijft.

3. Configureer routering op de VPN om direct uitgangspunt in te schakelen

De laatste stap bestaat uit het toevoegen van een directe route voor de IP's (of naamruimten) voor Teams-gebeurtenissen die worden beschreven in Het verzamelen van de huidige lijsten met CDN-eindpunten in de VPN-configuratie om ervoor te zorgen dat het verkeer niet via de geforceerde tunnel naar de VPN wordt verzonden. Gedetailleerde informatie over hoe u dit doet voor Microsoft 365 Eindpunten optimaliseren vindt u in de sectie Split tunneling voor VPN-implementatie van Split tunneling voor VPN-implementatie voor Microsoft 365. Het proces is precies hetzelfde voor de IP's voor Teams-gebeurtenissen die in dit document worden vermeld.

Veelgestelde vragen

Wordt hierdoor al mijn verkeer rechtstreeks naar de service gestuurd?

Nee, hierdoor wordt het latentiegevoelige streamingverkeer met een hoog volume voor een deelnemer aan een Teams-gebeurtenis rechtstreeks verzonden. Al het overige verkeer blijft de VPN-tunnel gebruiken als het niet wordt omgezet in de gepubliceerde IP's of overeenkomt met de gedefinieerde naamruimte.

Is een PAC-bestand vereist?

Nee, het PAC-bestand is niet vereist. Dit hangt af van uw netwerk- en beveiligingsvereisten. De informatie in dit document kan ook worden gebruikt in andere configuraties, zoals VPN-concentrators - raadpleeg de documentatie van de fabrikant voor hulp bij configuratie.

Moet ik de IPv6-adressen gebruiken?

Nee, de connectiviteit kan alleen IPv4 zijn als dat nodig is.

Waarom worden deze IP's niet gepubliceerd in de URL/IP-service van Microsoft 365?

Microsoft heeft strikte controle over de indeling en het type informatie in de service om ervoor te zorgen dat klanten de informatie betrouwbaar kunnen gebruiken om veilige en optimale routering te implementeren op basis van eindpuntcategorie.

Voor de categorie Standaardeindpunt worden om verschillende redenen geen IP-gegevens verstrekt (standaardeindpunten kunnen buiten de controle van Microsoft vallen, te vaak worden gewijzigd of in blokken zijn die met andere elementen worden gedeeld). Standaardeindpunten zijn ontworpen om via FQDN te worden verzonden naar een inspecterende proxy, net als normaal webverkeer.

Hoef ik alleen toegang tot deze IP's/naamruimten toe te staan?

Nee, toegang tot alle vereiste gemarkeerde eindpunten voor de juiste omgeving is essentieel om de service te laten werken. Overheidsclouds kunnen ook gebruikmaken van de Optimized-eindpuntbereiken.

Welke scenario's dekt dit advies?

  1. Livegebeurtenissen bijwonen die worden geproduceerd binnen de Teams-app
  2. Bijwonen van livegebeurtenissen die door Teams encoder zijn geproduceerd
  3. Teams-bijeenkomst bijwonen

Is dit advies van toepassing op het verkeer van de presentator?

Dat doet het niet; Het voorgaande advies is puur voor degenen die het evenement bijwonen. Als je vanuit Teams presenteert, zal het verkeer van de presentator naar de gemarkeerde UDP-eindpunten voor Optimaliseren stromen die worden vermeld in URL/IP-servicerij 11 met gedetailleerd advies over VPN-offloading dat wordt beschreven in de sectie Split tunneling VPN-implementatie van Split tunneling voor VPN-implementatie voor Microsoft 365.