Besondere Überlegungen zu Stream- und Teams-Ereignissen in VPN-Umgebungen

Hinweis

Dieser Artikel ist Teil einer Reihe von Artikeln zur Microsoft 365-Optimierung für Remotebenutzer.

Microsoft 365 Live Events-Teilnehmerdatenverkehr (dies schließt Teilnehmer an von Teams produzierten Liveereignissen und solche ein, die mit einem externen Encoder über Teams, Stream oder Viva Engage erstellt wurden), Der Datenverkehr von Microsoft Teams-Teilnehmern in der Stadthalle und der on-demand-Stream-Teilnehmerdatenverkehr wird derzeit in der URL/IP-Liste für den Dienst als Standard oder Optimierung kategorisiert. Diese Endpunkte werden als Standard kategorisiert, da sie auf CDNs gehostet werden, die auch von anderen Diensten verwendet werden können. Kunden ziehen es im Allgemeinen vor, diese Art von Datenverkehr zu proxyn und alle Sicherheitselemente anzuwenden, die normalerweise auf Endpunkten wie diesen ausgeführt werden.

Viele Kunden haben nach URL/IP-Daten gefragt, die erforderlich sind, um ihre Teilnehmer direkt über ihre lokale Internetverbindung mit Stream- oder Teams-Ereignissen zu verbinden, anstatt den datenverkehrsintensiven und latenzempfindlichen Datenverkehr über die VPN-Infrastruktur weiterzuleiten. In der Regel ist dies nicht ohne dedizierte Namespaces und genaue IP-Informationen für die Endpunkte möglich, die nicht für Microsoft 365-Endpunkte bereitgestellt werden, die als Standard kategorisiert sind.

Führen Sie die folgenden Schritte aus, um die direkte Konnektivität für die Stream- oder Teams-Ereignisdienste von Clients mithilfe eines erzwungenen Tunnel-VPN zu aktivieren. Diese Lösung soll Kunden die Möglichkeit bieten, das Routing von Ereignisteilnehmerdatenverkehr über VPN zu vermeiden, während aufgrund von Szenarien für die Heimarbeit ein hoher Netzwerkdatenverkehr vorhanden ist. Wenn möglich, wird empfohlen, über einen Überprüfungsproxy auf den Dienst zuzugreifen.

Hinweis

Bei Verwendung dieser Lösung gibt es möglicherweise Dienstelemente, die nicht in die bereitgestellten IP-Adressen aufgelöst werden und somit das VPN durchlaufen, aber der Großteil des Datenverkehrs mit hohem Volumen wie Streamingdaten sollte dies tun. Möglicherweise gibt es andere Elemente außerhalb des Bereichs von Liveereignissen/Datenstrom, die von dieser Abladung abgefangen werden, aber diese sollten eingeschränkt sein, da sie sowohl den FQDN als auch die IP-Übereinstimmung erfüllen müssen, bevor sie direkt erfolgen.

Wichtig

Es wird empfohlen, das Risiko des Sendens von mehr Datenverkehr, der das VPN umgeht, gegenüber dem Leistungsgewinn für Liveereignisse abzuwägen.

Um die Tunnelerzwingungs-Ausnahme für Teams-Ereignisse und Stream zu implementieren, sollten die folgenden Schritte angewendet werden:

1. Konfigurieren der externen DNS-Auflösung

Clients benötigen eine externe, rekursive DNS-Auflösung, damit die folgenden Hostnamen in IP-Adressen aufgelöst werden können.

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

*.azureedge.net wird für Stream-Ereignisse verwendet (Konfigurieren von Encodern für Livestreaming in Microsoft Stream – Microsoft Stream | Microsoft-Dokumentation).

*.media.azure.net und *.bmc.cdn.office.net werden für von Teams erstellte Liveereignisse (Schnellstartereignisse und RTMP-In unterstützte Ereignisse) verwendet, die vom Teams-Client geplant werden.

*.media.azure.net, *.bmc.cdn.office.net und *.ml.cdn.office.net werden für Teams Town Hall-Veranstaltungen verwendet.

Einige dieser Endpunkte werden für andere Elemente außerhalb von Stream- oder Teams-Ereignissen freigegeben. Es wird nicht empfohlen, nur diese FQDNs zum Konfigurieren der VPN-Auslagerung zu verwenden, auch wenn dies technisch möglich in Ihrer VPN-Lösung möglich ist (z. B. wenn sie auf dem FQDN anstelle der IP-Adresse funktioniert).

FQDNs sind in der VPN-Konfiguration nicht erforderlich, sie dienen lediglich zur Verwendung in PAC-Dateien in Kombination mit den IP-Adressen, um den relevanten Datenverkehr direkt zu senden.

2. Implementieren von PAC-Dateiänderungen (falls erforderlich)

Für Organisationen, die eine PAC-Datei verwenden, um Datenverkehr über einen Proxy weiterzuleiten, während sie sich im VPN befinden, wird dies normalerweise mithilfe von FQDNs erreicht. Bei Stream/Live Events/Town Hall enthalten die bereitgestellten Hostnamen jedoch Wildcards wie *.azureedge.net, die auch andere Elemente umfassen, für die es nicht möglich ist, vollständige IP-Einträge bereitzustellen. Wenn die Anforderung also direkt basierend auf der DNS-Wildcard-Übereinstimmung gesendet wird, wird der Datenverkehr zu diesen Endpunkten blockiert, da es keine Route über den direkten Pfad für sie in Schritt 3 weiter unten in diesem Artikel gibt.

Um dies zu beheben, können wir die folgenden IP-Adressen bereitstellen und in Kombination mit den Hostnamen in einer PAC-Beispieldatei verwenden, wie in Schritt 1 beschrieben. Die PAC-Datei überprüft, ob die URL mit denen übereinstimmt, die für Stream/Live-Ereignisse/Town Hall verwendet werden, und wenn dies der Fall ist, wird auch überprüft, ob die von einer DNS-Suche zurückgegebene IP-Adresse mit den für den Dienst bereitgestellten übereinstimmt. Wenn beide übereinstimmen, wird der Datenverkehr direkt weitergeleitet. Wenn eines der Elemente (FQDN/IP) nicht übereinstimmt, wird der Datenverkehr an den Proxy gesendet. Daher stellt die Konfiguration sicher, dass alles, was zu einer IP-Adresse aufgelöst wird, die sich außerhalb des Bereichs sowohl der IP-Adresse als auch der definierten Namespaces befindet, den Proxy über das VPN wie gewohnt durchläuft.

Sammeln der aktuellen Listen von CDN-Endpunkten

Teams-Ereignisse verwenden mehrere CDN-Anbieter zum Streamen an Kunden, um die beste Abdeckung, Qualität und Resilienz zu bieten. Derzeit werden sowohl Azure CDN von Microsoft als auch von Verizon verwendet. Im Laufe der Zeit kann dies aufgrund von Situationen wie der regionalen Verfügbarkeit geändert werden. Dieser Artikel ist eine Quelle, mit der Sie sich über IP-Adressbereiche auf dem neuesten Stand halten können.

Für Azure CDN von Microsoft können Sie die Liste unter Herunterladen von Azure-IP-Adressbereichen und -Diensttags – Öffentliche Cloud aus dem offiziellen Microsoft Download Center herunterladen. Sie müssen im JSON-Code speziell nach dem Diensttag AzureFrontdoor.Frontend suchen. addressPrefixes zeigt die IPv4-/IPv6-Subnetze an. Im Laufe der Zeit können sich die IP-Adressen ändern, aber die Liste der Diensttags wird immer aktualisiert, bevor sie verwendet werden.

Für Azure CDN von Verizon (Edgecast) finden Sie eine vollständige Liste mithilfe von Edgeknoten – Liste (wählen Sie Ausprobieren ) aus. Sie müssen speziell nach dem Abschnitt Premium_Verizon suchen. Beachten Sie, dass diese API alle Edgecast-IP-Adressen (Ursprung und Anycast) anzeigt. Derzeit gibt es keinen Mechanismus für die API, um zwischen Origin und Anycast zu unterscheiden.

Um dies in einer PAC-Datei zu implementieren, können Sie das folgende Beispiel verwenden, das den Microsoft 365 Optimize-Datenverkehr direkt (bewährte Methode) über FQDN und den kritischen Stream/Live Events-Datenverkehr direkt über eine Kombination aus dem FQDN und der zurückgegebenen IP-Adresse sendet. Der Platzhaltername Contoso muss mit dem Namen Ihres spezifischen Mandanten bearbeitet werden, wobei sich contoso aus contoso.onmicrosoft.com

PAC-Beispieldatei

Hier sehen Sie ein Beispiel für das Generieren der PAC-Dateien:

  1. Speichern Sie das folgende Skript auf Ihrer lokalen Festplatte als Get-TLEPacFile.ps1.

  2. Wechseln Sie zur Verizon-URL , und laden Sie den resultierenden JSON-Code herunter (kopieren Sie ihn in eine Datei wie cdnedgenodes.json).

  3. Speichern Sie die Datei im selben Ordner wie das Skript.

  4. Führen Sie in einem PowerShell-Fenster den folgenden Befehl aus. Ändern Sie den Mandantennamen für etwas anderes, wenn Sie die SPO-URLs verwenden möchten. Dies ist Typ 2, also Optimieren und Zulassen (Typ 1 ist nur Optimize).

    .\Get-TLEPacFile.ps1 -Instance Worldwide -Type 2 -TenantName <contoso> -CdnEdgeNodesFilePath .\cdnedgenodes.json -FilePath TLE.pac
    
  5. Die Datei TLE.pac enthält alle Namespaces und IP-Adressen (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
}

Das Skript analysiert die Azure-Liste automatisch basierend auf der Download-URL und den Schlüsseln aus AzureFrontDoor.Frontend, sodass sie nicht manuell abgerufen werden müssen.

Auch hier wird nicht empfohlen, eine VPN-Auslagerung nur mit den FQDNs durchzuführen. Die Verwendung sowohl der FQDNs als auch der IP-Adressen in der Funktion hilft, die Verwendung dieser Auslagerung auf eine begrenzte Gruppe von Endpunkten einschließlich Liveereignissen/Stream zu beschränken. Die Struktur der Funktion führt dazu, dass für den FQDN eine DNS-Suche durchgeführt wird, die mit den vom Client direkt aufgeführten übereinstimmt. Die DNS-Auflösung der verbleibenden Namespaces bleibt also unverändert.

Wenn Sie das Risiko der Auslagerung von Endpunkten begrenzen möchten, die nicht im Zusammenhang mit Teams-Ereignissen und Stream stehen, können Sie die Domäne *.azureedge.net aus der Konfiguration entfernen, in der der Großteil dieses Risikos liegt, da dies eine freigegebene Domäne ist, die für alle Azure CDN-Kunden verwendet wird. Der Nachteil ist, dass alle Ereignisse, die einen externen Encoder verwenden, der von Stream unterstützt wird, nicht optimiert werden, aber Ereignisse, die in Teams erstellt/organisiert werden.

3. Konfigurieren des Routings für das VPN, um den direkten ausgehenden Datenverkehr zu ermöglichen

Der letzte Schritt besteht darin, eine direkte Route für die Teams-Ereignis-IPs hinzuzufügen, die unter Sammeln der aktuellen Listen von CDN-Endpunkten in der VPN-Konfiguration beschrieben sind, um sicherzustellen, dass der Datenverkehr nicht über den erzwungenen Tunnel in das VPN gesendet wird. Ausführliche Informationen dazu, wie Sie dies für Microsoft 365 Optimize-Endpunkte durchführen können, finden Sie im Abschnitt Implementieren von geteiltem VPN-Tunneling unter Implementieren des geteilten VPN-Tunnelings für Microsoft 365. Der Prozess ist für die in diesem Dokument aufgeführten Stream- oder Teams-Ereignis-IP-Adressen identisch.

Beachten Sie, dass nur die IP-Adressen (nicht FQDNs) aus Sammlung der aktuellen Listen von CDN-Endpunkten für die VPN-Konfiguration verwendet werden sollten.

Häufig gestellte Fragen

Wird dadurch mein gesamter Datenverkehr direkt an den Dienst gesendet?

Nein, dies sendet den latenzabhängigen Streamingdatenverkehr für ein Teams-Ereignis oder ein Videostreaming direkt. Jeder andere Datenverkehr verwendet weiterhin den VPN-Tunnel, wenn er nicht zu den veröffentlichten IP-Adressen aufgelöst wird.

Muss ich die IPv6-Adressen verwenden?

Nein, die Konnektivität kann nur bei Bedarf IPv4 sein.

Warum werden diese IP-Adressen nicht im Microsoft 365-URL/IP-Dienst veröffentlicht?

Microsoft verfügt über strenge Kontrollen für das Format und die Art der Informationen, die sich im Dienst befinden, um sicherzustellen, dass Kunden die Informationen zuverlässig verwenden können, um sicheres und optimales Routing basierend auf der Endpunktkategorie zu implementieren.

Die Kategorie "Standardendpunkt " enthält aus zahlreichen Gründen keine IP-Informationen (Standardendpunkte befinden sich möglicherweise außerhalb der Kontrolle von Microsoft, ändern sich möglicherweise zu häufig oder befinden sich in Blöcken, die mit anderen Elementen geteilt werden). Aus diesem Grund sind Standardendpunkte so konzipiert, dass sie wie normaler Webdatenverkehr über FQDN an einen überprüfenden Proxy gesendet werden.

In diesem Fall handelt es sich bei den oben genannten Endpunkten um CDNs, die von anderen von Microsoft gesteuerten Elementen als Liveereignissen oder Stream verwendet werden können. Daher bedeutet das senden des Datenverkehrs auch, dass alles andere, was in diese IP-Adressen aufgelöst wird, auch direkt vom Client gesendet wird. Aufgrund des einzigartigen Charakters der aktuellen globalen Krise und um den kurzfristigen Bedürfnissen unserer Kunden gerecht zu werden, hat Microsoft die oben genannten Informationen bereitgestellt, damit kunden sie nach Bedarf nutzen können.

Microsoft arbeitet daran, die Teams-Ereignisendpunkte neu zu konfigurieren, damit sie in Zukunft in die Endpunktkategorien Zulassen/Optimieren einbezogen werden können.

Muss ich nur den Zugriff auf diese IP-Adressen zulassen?

Nein, der Zugriff auf alle als erforderlich gekennzeichneten Endpunkte im URL-/IP-Dienst ist für den Betrieb des Diensts unerlässlich. Darüber hinaus ist jeder optionale Endpunkt erforderlich, der für Stream (ID 41-45) markiert ist.

Welche Szenarien werden von dieser Empfehlung abgedeckt?

  1. Liveereignisse, die in der Teams-App erstellt werden
  2. Anzeigen von stream gehosteten Inhalten
  3. Von einem externen Gerät (Encoder) erzeugte Ereignisse
  4. Teams Town Hall

Deckt dieser Ratschlag den Datenverkehr von Referenten ab?

Dies ist nicht der Fall. Die obigen Ratschläge richten sich ausschließlich an diejenigen, die den Dienst nutzen. Bei der Präsentation innerhalb von Teams wird der Datenverkehr des Referenten zu den als "Optimieren" markierten UDP-Endpunkten in Zeile 11 des URL-/IP-Diensts mit detaillierten Vpn-Abladungshinweisen im Abschnitt Implementieren des geteilten VPN-Tunnelings unter Implementieren des geteilten VPN-Tunnelings für Microsoft 365 angezeigt.

Riskiert diese Konfiguration den Datenverkehr, der sich nicht auf das Rathaus, Liveereignisse & streamen lässt, der direkt gesendet wird?

Ja, aufgrund freigegebener FQDNs, die für einige Elemente des Diensts verwendet werden, ist dies unvermeidbar. Dieser Datenverkehr wird normalerweise über einen Unternehmensproxy gesendet, der eine Überprüfung durchführen kann. In einem Szenario mit geteiltem VPN-Tunnel wird dieses Risiko durch die Verwendung von FQDNs und IP-Adressen auf ein Minimum beschränkt, es ist jedoch weiterhin vorhanden. Kunden können die Domäne *.azureedge.net aus der Auslagerungskonfiguration entfernen und dieses Risiko auf ein absolutes Minimum reduzieren. Dadurch wird jedoch die Auslagerung von von Stream unterstützten Liveereignissen (teams-geplante Ereignisse, Streamencoderereignisse, Viva Engage in Teams erzeugten Ereignissen, Viva Engage geplanten Streamencoderereignissen und Streamen geplanter Ereignisse oder der bedarfsgesteuerten Anzeige aus Stream entfernt). In Teams geplante und produzierte Ereignisse (einschließlich Rathaus) sind davon nicht betroffen.

Übersicht: Geteiltes VPN-Tunneling für Microsoft 365

Implementieren von geteilten VPN-Tunneln für Microsoft 365

Häufige Szenarien für geteilte VPN-Tunnel für Microsoft 365

Schützen des Teams-Mediendatenverkehrs für geteilte VPN-Tunnel

Microsoft 365-Leistungsoptimierung für China-Benutzer

Prinzipien von Microsoft 365-Netzwerkverbindungen

Bewerten der Microsoft 365-Netzwerkkonnektivität

Microsoft 365-Netzwerk- und Leistungsoptimierung

Alternative Möglichkeiten für Sicherheitsexperten und IT-Mitarbeiter, moderne Sicherheitskontrollen in den heutigen einzigartigen Remotearbeitsszenarien zu erreichen (Blog des Microsoft Security Teams)

Verbessern der VPN-Leistung bei Microsoft: Verwenden von Windows 10-VPN-Profilen zur Aktivierung automatischer Verbindungen

Betrieb über VPN: Wie Microsoft seine Remotemitarbeitern in Verbindung hält

Globales Microsoft-Netzwerk