Særlige overvejelser i forbindelse med Stream- og Teams-hændelser i VPN-miljøer

Bemærk!

Denne artikel er en del af et sæt artikler, der omhandler Microsoft 365-optimering for fjernbrugere.

Trafik for deltagere i Microsoft 365-livebegivenheder (dette omfatter deltagere i Teams-producerede livebegivenheder, og dem, der er produceret med en ekstern koder via Teams, Stream eller Viva Engage), Trafik for deltagere på Microsoft Teams Rådhus og trafik for Stream-deltagere efter behov er i øjeblikket kategoriseret som Standard i forhold til OptimerURL-adressen/IP-listen for tjenesten. Disse slutpunkter er kategoriseret som Standard , fordi de er hostet på CDN'er, der også kan bruges af andre tjenester. Kunderne foretrækker generelt at proxyere denne type trafik og anvende sikkerhedselementer, der normalt udføres på slutpunkter som disse.

Mange kunder har bedt om de URL-adresser/IP-data, der er nødvendige for at forbinde deres deltagere til Stream- eller Teams-begivenheder direkte fra deres lokale internetforbindelse i stedet for at dirigere den store mængde og ventetidsfølsom trafik via VPN-infrastrukturen. Dette er typisk ikke muligt uden både dedikerede navneområder og nøjagtige IP-oplysninger for slutpunkterne, som ikke er angivet for Microsoft 365-slutpunkter, der er kategoriseret som standard.

Brug følgende trin til at aktivere direkte forbindelse til Stream- eller Teams-hændelsestjenesterne fra klienter ved hjælp af en tvungen tunnel-VPN. Denne løsning er beregnet til at give kunderne mulighed for at undgå routing af hændelsesdeltageres trafik via VPN, mens der er høj netværkstrafik på grund af arbejds-fra-hjemme-scenarier. Hvis det er muligt, anbefaler vi, at du får adgang til tjenesten via en undersøgelsesproxy.

Bemærk!

Ved hjælp af denne løsning kan der være tjenesteelementer, der ikke svarer til de angivne IP-adresser og dermed gennemgår VPN'en, men størstedelen af trafik med stor mængde, f.eks. streamingdata, bør. Der kan være andre elementer uden for omfanget af livebegivenheder/Stream, som bliver fanget af denne aflastning, men disse bør begrænses, da de skal opfylde både FQDN og IP-kampen, før de går direkte.

Vigtigt!

Vi anbefaler, at du afvejer risikoen for at sende mere trafik, der omgår VPN'en i forhold til ydeevnen for livebegivenheder.

Hvis du vil implementere den tvungne tunnelundtagelse for Teams-hændelser og Stream, skal følgende trin anvendes:

1. Konfigurer ekstern DNS-opløsning

Klienter skal have en ekstern rekursiv DNS-opløsning for at være tilgængelig, så følgende værtsnavne kan oversættes til IP-adresser.

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

*.azureedge.net bruges til Stream-begivenheder (Konfigurer kodere til livestreaming i Microsoft Stream – Microsoft Stream | Microsoft Docs).

*.media.azure.net og *.bmc.cdn.office.net bruges til Teams-producerede livebegivenheder (hurtig start-begivenheder og RTMP-In understøttede begivenheder), der er planlagt fra Teams-klienten.

*.media.azure.net, *.bmc.cdn.office.net og *.ml.cdn.office.net bruges til Teams Town hall-arrangementer.

Nogle af disse slutpunkter deles med andre elementer uden for Stream- eller Teams-hændelser. Vi anbefaler ikke kun at bruge disse FQDN'er til at konfigurere VPN-aflastning, selvom det teknisk set er muligt i din VPN-løsning (f.eks. hvis det fungerer på FQDN i stedet for IP).

FQDN'er kræves ikke i VPN-konfigurationen, de er udelukkende til brug i PAC-filer i kombination med IP-adresserne for at sende den relevante trafik direkte.

2. Implementer ændringer af PAC-filen (hvis det er nødvendigt)

For organisationer, der bruger en PAC-fil til at dirigere trafik gennem en proxy, mens de er på VPN, opnås dette normalt ved hjælp af FQDN'er. Men med Stream/Live Events/Town hall indeholder de angivne værtsnavne jokertegn som *.azureedge.net, som også omfatter andre elementer, hvor det ikke er muligt at angive komplette IP-lister. Hvis anmodningen sendes direkte baseret på ET DNS-jokertegnmatch alene, blokeres trafikken til disse slutpunkter, da der ikke er nogen rute via den direkte sti til den i trin 3 senere i denne artikel.

For at løse dette kan vi angive følgende IP-adresser og bruge dem i kombination med værtsnavnene i en eksempel PAC-fil som beskrevet i trin 1. PAC-filen kontrollerer, om URL-adressen stemmer overens med dem, der bruges til Stream/Live Events/Town hall, og hvis den gør det, kontrollerer den også, om den IP, der returneres fra et DNS-opslag, svarer til dem, der er angivet for tjenesten. Hvis begge matcher, distribueres trafikken direkte. Hvis et af elementerne (FQDN/IP) ikke stemmer overens, sendes trafikken til proxyen. Som et resultat heraf sikrer konfigurationen, at alt, der omsættes til en IP uden for omfanget af både IP og definerede navneområder, gennemgår proxyen via VPN som normalt.

Indsamling af de aktuelle lister over CDN-slutpunkter

Teams-hændelser bruger flere CDN-udbydere til at streame til kunder for at levere den bedste dækning, kvalitet og robusthed. I øjeblikket bruges både Azure CDN fra Microsoft og fra Verizon. Med tiden kan dette ændres på grund af situationer som f.eks. regional tilgængelighed. Denne artikel er en kilde, der gør det muligt for dig at holde dig opdateret om IP-intervaller.

For Azure CDN fra Microsoft kan du downloade listen fra Download Azure IP Ranges and Service Tags – Public Cloud fra Det officielle Microsoft Download Center – du skal kigge specifikt efter tjenestemærket AzureFrontdoor.Frontend i JSON. addressPrefixes viser IPv4/IPv6-undernet. Med tiden kan IP-adresserne ændres, men tjenestemærkelisten opdateres altid, før de bruges.

For Azure CDN fra Verizon (Edgecast) kan du finde en udtømmende liste ved hjælp af Edge-noder – Liste (vælg Prøv det ) – du skal se specifikt efter afsnittet om Premium_Verizon . Bemærk, at denne API viser alle Edgecast IP-adresser (oprindelse og Anycast). I øjeblikket er der ikke en mekanisme for API'en til at skelne mellem oprindelse og Anycast.

Hvis du vil implementere dette i en PAC-fil, kan du bruge følgende eksempel, der sender Microsoft 365 Optimize-trafik direkte (hvilket anbefales bedste praksis) via FQDN og den kritiske Stream/Live Events-trafik direkte via en kombination af FQDN og den returnerede IP-adresse. Pladsholdernavnet Contoso skal redigeres i din specifikke lejers navn, hvor contoso er fra contoso.onmicrosoft.com

Eksempel på PAC-fil

Her er et eksempel på, hvordan du genererer PAC-filerne:

  1. Gem scriptet nedenfor på din lokale harddisk som Get-TLEPacFile.ps1.

  2. Gå til Verizon URL-adressen , og download den resulterende JSON (kopiér indsæt den i en fil som cdnedgenodes.json)

  3. Placer filen i den samme mappe som scriptet.

  4. Kør følgende kommando i et PowerShell-vindue. Udskift lejernavnet for noget andet, hvis du vil have SPO-URL-adresserne. Dette er type 2, så Optimer og Tillad (type 1 er kun Optimer).

    .\Get-TLEPacFile.ps1 -Instance Worldwide -Type 2 -TenantName <contoso> -CdnEdgeNodesFilePath .\cdnedgenodes.json -FilePath TLE.pac
    
  5. Filen TLE.pac indeholder alle navneområder og IP-adresser (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
}

Scriptet fortolker automatisk Azure-listen baseret på URL-adressen til download og nøglerne fra AzureFrontDoor.Frontend, så det er ikke nødvendigt at hente den manuelt.

Igen anbefaler vi ikke, at du kun udfører VPN-aflastning ved hjælp af FQDN'erne. Brug af både FQDN'er og IP-adresser i funktionen hjælper med at begrænse brugen af denne aflastning til et begrænset sæt slutpunkter, herunder livebegivenheder/Stream. Den måde, funktionen er struktureret på, medfører, at der udføres et DNS-opslag for det FQDN, der svarer til dem, der er angivet direkte af klienten, dvs. DNS-opløsningen for de resterende navneområder forbliver uændret.

Hvis du vil begrænse risikoen for aflastning af slutpunkter, der ikke er relateret til Teams-hændelser og Stream, kan du fjerne domænet *.azureedge.net fra konfigurationen, som er det sted, hvor størstedelen af denne risiko ligger, da dette er et delt domæne, der bruges til alle Azure CDN-kunder. Ulempen ved dette er, at enhver hændelse, der bruger en ekstern koder, der drives af Stream, ikke optimeres, men hændelser, der er produceret/organiseret i Teams, vil være.

3. Konfigurer routing på VPN'en for at aktivere direkte udgående data

Det sidste trin er at tilføje en direkte rute for Teams-hændelses-IP'er, der er beskrevet i Indsamling af de aktuelle lister over CDN-slutpunkter i VPN-konfigurationen for at sikre, at trafikken ikke sendes via den tvungne tunnel til VPN'en. Du kan finde detaljerede oplysninger om, hvordan du gør dette for Microsoft 365 Optimize-slutpunkter, i afsnittet Implementer VPN-opdelt tunnelføring under Implementering af VPN-opdelt tunnelføring til Microsoft 365. Processen er nøjagtig den samme for de Stream- eller Teams-hændelses-IP'er, der er angivet i dette dokument.

Bemærk, at kun IP-adresserne (ikke FQDN'er) fra Indsamling af de aktuelle lister over CDN-slutpunkter skal bruges til VPN-konfiguration.

Ofte stillede spørgsmål

Sender dette al min trafik direkte til tjenesten?

Nej, dette sender ventetidsfølsom streamingtrafik for en Teams-hændelse eller Stream-video direkte. Al anden trafik vil fortsat bruge VPN-tunnellen, hvis de ikke løser de publicerede IP-adresser.

Skal jeg bruge IPv6-adresserne?

Nej, forbindelsen kan kun være IPv4, hvis det er nødvendigt.

Hvorfor publiceres disse IP-adresser ikke i Microsoft 365 URL/IP-tjenesten?

Microsoft har strenge kontrolelementer omkring formatet og typen af oplysninger, der findes i tjenesten, for at sikre, at kunderne pålideligt kan bruge oplysningerne til at implementere sikker og optimal routing baseret på slutpunktskategorien.

Kategorien Standardslutpunkt indeholder ingen IP-oplysninger af flere årsager (Standardslutpunkter kan være uden for Microsofts kontrol, ændres muligvis for ofte, eller de kan være i blokke, der deles med andre elementer). Derfor er standardslutpunkter designet til at blive sendt via FQDN til en inspicerende proxy, f.eks. normal webtrafik.

I dette tilfælde er ovenstående slutpunkter CDN'er, der kan bruges af andre elementer end Live Events eller Stream, som ikke styres af Microsoft, og hvis trafik sendes direkte, betyder det også alt andet, der løser problemet med disse IP-adresser, der også sendes direkte fra klienten. På grund af den aktuelle globale krises unikke karakter og for at imødekomme vores kunders behov på kort sigt har Microsoft givet ovenstående oplysninger, så kunderne kan bruge dem efter behov.

Microsoft arbejder på at omkonfigurere Teams-hændelsesslutpunkterne for at tillade, at de medtages i kategorierne Tillad/Optimer slutpunkter fremover.

Skal jeg kun tillade adgang til disse IP-adresser?

Nej, adgang til alle de påkrævede markerede slutpunkter i URL-adressen/IP-tjenesten er vigtig, for at tjenesten kan fungere. Derudover kræves alle valgfrie slutpunkter, der er markeret for Stream (ID 41-45).

Hvilke scenarier dækker dette råd?

  1. Livebegivenheder, der er produceret i Teams-appen
  2. Visning af Stream-hostet indhold
  3. Hændelser, der er produceret af en ekstern enhed (koder)
  4. Teams Rådhus

Dækker dette råd præsentationstrafikken?

Det gør den ikke. ovenstående råd er udelukkende for dem, der forbruger tjenesten. Præsentation fra Teams får vist præsentationsværtens trafik, der flyder til de optimerede markerede UDP-slutpunkter, der er angivet i URL/IP-tjenesterække 11 med detaljerede råd om VPN-aflastning, der er beskrevet i afsnittet Implementer VPN-opdelt tunnelføring under Implementering af VPN-opdelt tunnelføring til Microsoft 365.

Risikerer denne konfiguration anden trafik end Rådhus, livebegivenheder & Stream sendt direkte?

Ja, på grund af delte FQDN'er, der bruges til nogle elementer i tjenesten, er dette uundgåeligt. Denne trafik sendes normalt via en virksomhedsproxy, som kan anvende inspektion. I et vpn-opdelt tunnelscenarie vil brug af både FQDN'er og IP'er omfatte denne risiko helt ned til et minimum, men den vil stadig eksistere. Kunder kan fjerne domænet *.azureedge.net fra konfigurationen af aflastning og reducere denne risiko til et minimum, men dette fjerner aflastning af Stream-understøttede livebegivenheder (Teams-planlagte, Stream-koderhændelser, Viva Engage begivenheder, der er produceret i Teams, Viva Engage planlagte Stream-koderhændelser og Stream-planlagte begivenheder eller visning efter behov fra Stream). Begivenheder, der er planlagt og produceret i Teams (herunder Rådhus), påvirkes ikke.

Oversigt: VPN-opdelt tunnelføring til Microsoft 365

Implementering af OPDELT VPN-tunnelføring til Microsoft 365

Almindelige scenarier med opdelt VPN-tunnelføring til Microsoft 365

Sikring af Teams-medietrafik til VPN-opdelt tunnelføring

Optimering af ydeevnen i Microsoft 365 for kinabrugere

Principper for Microsoft 365 Network Connectivity

Vurderer Microsoft 365 netværksforbindelse

Microsoft 365-netværk og justering af ydeevne

Alternative måder for sikkerhedsteknikere og it-medarbejdere at opnå moderne sikkerhedskontroller i nutidens unikke fjernarbejdsscenarier (Microsoft Security Team-blog)

Forbedring af VPN-ydeevnen hos Microsoft: Brug af Windows 10 VPN-profiler til at tillade automatisk on-forbindelser

Kører på VPN: Sådan holder Microsoft sin eksterne arbejdsstyrke tilsluttet

Microsofts globale netværk