Considerações especiais para eventos stream e teams em ambientes VPN

Observação

Este artigo faz parte de um conjunto de artigos que abordam a otimização do Microsoft 365 para usuários remotos.

Tráfego de participantes de Eventos Ao Vivo do Microsoft 365 (isso inclui participantes para eventos ao vivo produzidos pelo Teams e aqueles produzidos com um codificador externo via Teams, Stream ou Viva Engage), o tráfego de participantes da Prefeitura do Microsoft Teams e o tráfego de participantes do Stream sob demanda está atualmente categorizado como Padrão versus Otimizar na lista URL/IP do serviço. Esses pontos de extremidade são categorizados como Padrão porque são hospedados em CDNs que também podem ser usados por outros serviços. Os clientes geralmente preferem fazer proxy desse tipo de tráfego e aplicar todos os elementos de segurança normalmente feitos em pontos de extremidade como esses.

Muitos clientes solicitaram dados de URL/IP necessários para conectar seus participantes a eventos stream ou teams diretamente de sua conexão com a Internet local, em vez de rotear o tráfego com alto volume e latência por meio da infraestrutura VPN. Normalmente, isso não é possível sem namespaces dedicados e informações de IP precisas para os pontos de extremidade, que não são fornecidos para pontos de extremidade do Microsoft 365 categorizados como Padrão.

Use as etapas a seguir para habilitar a conectividade direta para os serviços de eventos stream ou teams de clientes usando uma VPN de túnel forçado. Essa solução destina-se a fornecer aos clientes uma opção para evitar roteamento do tráfego de participantes de eventos por VPN, enquanto há alto tráfego de rede devido a cenários de trabalho de casa. Se possível, recomendamos acessar o serviço por meio de um proxy de inspeção.

Observação

Usando essa solução, pode haver elementos de serviço que não resolve para os endereços IP fornecidos e, portanto, atravessam a VPN, mas a maior parte do tráfego de alto volume, como dados de streaming, deve. Pode haver outros elementos fora do escopo de Eventos Ao Vivo/Stream que são pegos por essa descarga, mas eles devem ser limitados, pois devem atender ao FQDN e à correspondência IP antes de ir direto.

Importante

Recomendamos que você pese o risco de enviar mais tráfego que ignore a VPN sobre o ganho de desempenho para eventos ao vivo.

Para implementar a exceção de túnel forçado para Eventos e Fluxo do Teams, as seguintes etapas devem ser aplicadas:

1. Configurar a resolução DNS externa

Os clientes precisam que a resolução DNS externa e recursiva esteja disponível para que os nomes de host a seguir possam ser resolvidos em endereços IP.

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

*.azureedge.net é usado para eventos stream (Configurar codificadores para transmissão ao vivo em Microsoft Stream - Microsoft Stream | Microsoft Docs).

*.media.azure.net e *.bmc.cdn.office.net são usados para eventos ao vivo produzidos pelo Teams (eventos de Início Rápido e eventos com suporte RTMP-In) agendados do cliente do Teams.

*.media.azure.net, *.bmc.cdn.office.net e *.ml.cdn.office.net são usados para eventos da Prefeitura do Teams.

Alguns desses pontos de extremidade são compartilhados com outros elementos fora dos eventos stream ou teams. Não recomendamos apenas usar esses FQDNs para configurar o descarregamento de VPN, mesmo que tecnicamente possível em sua solução VPN (por exemplo, se ele funcionar no FQDN em vez de IP).

FQDNs não são necessários na configuração vpn, eles são puramente para uso em arquivos PAC em combinação com os IPs para enviar o tráfego relevante diretamente.

2. Implementar alterações de arquivo PAC (quando necessário)

Para organizações que utilizam um arquivo PAC para rotear o tráfego por meio de um proxy durante a VPN, isso normalmente é obtido usando FQDNs. No entanto, com Stream/Live Events/Town hall, os nomes de host fornecidos contêm curingas como *.azureedge.net, que também abrange outros elementos para os quais não é possível fornecer listagens de IP completas. Assim, se a solicitação for enviada diretamente com base apenas na correspondência curinga DNS, o tráfego para esses pontos de extremidade será bloqueado, pois não há rota por meio do caminho direto para ela na Etapa 3 posterior neste artigo.

Para resolver isso, podemos fornecer os IPs a seguir e usá-los em combinação com os nomes de host em um arquivo PAC de exemplo, conforme descrito na Etapa 1. O arquivo PAC verifica se a URL corresponde às usadas para Stream/Live Events/Town hall e, em seguida, se ele faz, ele também verifica se o IP retornado de uma pesquisa DNS corresponde aos fornecidos para o serviço. Se ambos corresponderem , o tráfego será roteado diretamente. Se qualquer elemento (FQDN/IP) não corresponder, o tráfego será enviado para o proxy. Como resultado, a configuração garante que qualquer coisa que resolva para um IP fora do escopo do IP e namespaces definidos atravessa o proxy por meio da VPN normalmente.

Coletando as listas atuais de pontos de extremidade cdn

Os eventos do Teams usam vários provedores de CDN para transmitir aos clientes, para fornecer a melhor cobertura, qualidade e resiliência. Atualmente, tanto a CDN do Azure da Microsoft quanto da Verizon são usadas. Com o tempo, isso pode ser alterado devido a situações como disponibilidade regional. Este artigo é uma fonte para permitir que você mantenha-se atualizado em intervalos de IP.

Para a CDN do Azure da Microsoft, você pode baixar a lista de Baixar Intervalos de IP do Azure e Marcas de Serviço – Nuvem Pública do Centro oficial de Download da Microsoft – você precisará procurar especificamente a marca de serviço AzureFrontdoor.Frontend no JSON; addressPrefixes mostrarão as sub-redes IPv4/IPv6. Com o tempo, os IPs podem ser alterados, mas a lista de marcas de serviço sempre é atualizada antes de serem colocadas em uso.

Para a CDN do Azure da Verizon (Edgecast), você pode encontrar uma lista exaustiva usando Nós do Edge – Lista (selecione Experimentar ) – você precisará procurar especificamente a seção Premium_Verizon . Observe que essa API mostra todos os IPs do Edgecast (origem e Anycast). Atualmente, não há um mecanismo para a API distinguir entre a origem e o Anycast.

Para implementar isso em um arquivo PAC, você pode usar o exemplo a seguir que envia o tráfego do Microsoft 365 Optimize direct (o que é recomendável de melhor prática) por meio do FQDN e o tráfego crítico stream/live events direto por meio de uma combinação do FQDN e do endereço IP retornado. O nome do espaço reservado Contoso precisaria ser editado para o nome do locatário específico de onde contoso é de contoso.onmicrosoft.com

Exemplo de arquivo PAC

Aqui está um exemplo de como gerar os arquivos PAC:

  1. Salve o script abaixo no disco rígido local como Get-TLEPacFile.ps1.

  2. Acesse a URL da Verizon e baixe o JSON resultante (copie-o em um arquivo como cdnedgenodes.json)

  3. Coloque o arquivo na mesma pasta que o script.

  4. Em uma janela do PowerShell, execute o comando a seguir. Altere o nome do locatário para outra coisa se você quiser as URLs de SPO. Este é o Tipo 2, portanto, Otimizar e Permitir (o tipo 1 é somente Otimizar).

    .\Get-TLEPacFile.ps1 -Instance Worldwide -Type 2 -TenantName <contoso> -CdnEdgeNodesFilePath .\cdnedgenodes.json -FilePath TLE.pac
    
  5. O arquivo TLE.pac conterá todos os namespaces e IPs (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
}

O script analisará automaticamente a lista do Azure com base na URL de download e nas chaves do AzureFrontDoor.Frontend, portanto não há necessidade de obter isso manualmente.

Novamente, não recomendamos executar o descarregamento de VPN usando apenas os FQDNs; utilizar os FQDNs e os endereços IP na função ajuda a escopo do uso desse descarregamento para um conjunto limitado de pontos de extremidade, incluindo Eventos ao Vivo/Fluxo. A forma como a função é estruturada resultará em uma pesquisa DNS sendo feita para o FQDN que corresponda às listadas diretamente pelo cliente, ou seja, a resolução DNS dos namespaces restantes permanece inalterada.

Se você quiser limitar o risco de descarregar pontos de extremidade não relacionados aos eventos do Teams e ao Stream, poderá remover o domínio *.azureedge.net da configuração, que é onde a maior parte desse risco está, pois este é um domínio compartilhado usado para todos os clientes da CDN do Azure. A desvantagem disso é que qualquer evento usando um codificador externo alimentado pelo Stream não será otimizado, mas os eventos produzidos/organizados no Teams serão.

3. Configurar o roteamento na VPN para habilitar a saída direta

A etapa final é adicionar uma rota direta para os IPs de evento do Teams descritos em Reunir as listas atuais de pontos de extremidade cdn na configuração de VPN para garantir que o tráfego não seja enviado por meio do túnel forçado para a VPN. Informações detalhadas sobre como fazer isso para os pontos de extremidade do Microsoft 365 Optimize podem ser encontradas na seção Implementar túnel dividido vpn da Implementação do túnel dividido vpn para o Microsoft 365. O processo é exatamente o mesmo para os IPs de eventos stream ou teams listados neste documento.

Observe que apenas os IPs (não FQDNs) de Coleta das listas atuais de pontos de extremidade cdn devem ser usados para configuração de VPN.

Perguntas frequentes

Isso enviará todo o meu tráfego para o serviço diretamente?

Não, isso enviará o tráfego de streaming sensível à latência para um evento do Teams ou vídeo stream direto, qualquer outro tráfego continuará a usar o túnel VPN se eles não resolve para os IPs publicados.

Preciso usar os endereços IPv6?

Não, a conectividade só pode ser IPv4 se necessário.

Por que esses IPs não são publicados no serviço de URL/IP do Microsoft 365?

A Microsoft tem controles rígidos em torno do formato e do tipo de informações que estão no serviço para garantir que os clientes possam usar de forma confiável as informações para implementar o roteamento seguro e ideal com base na categoria de ponto de extremidade.

A categoria de ponto de extremidade padrão não tem informações de IP fornecidas por vários motivos (os pontos de extremidade padrão podem estar fora do controle da Microsoft, podem ser alterados com muita frequência ou podem estar em blocos compartilhados com outros elementos). Por esse motivo, os pontos de extremidade padrão são projetados para serem enviados via FQDN para um proxy de inspeção, como o tráfego da Web normal.

Nesse caso, os pontos de extremidade acima são CDNs que podem ser usados por elementos não controlados pela Microsoft que não sejam Eventos Ao Vivo ou Stream e, portanto, enviar o tráfego direto também significará que qualquer outra coisa que resolva para esses IPs também será enviada diretamente do cliente. Devido à natureza exclusiva da crise global atual e para atender às necessidades de curto prazo de nossos clientes, a Microsoft forneceu as informações acima para os clientes usarem como acharem adequado.

A Microsoft está trabalhando para reconfigurar os pontos de extremidade de eventos do Teams para permitir que eles sejam incluídos nas categorias de ponto de extremidade Permitir/Otimizar no futuro.

Só preciso permitir o acesso a esses IPs?

Não, o acesso a todos os pontos de extremidade marcados necessários no serviço URL/IP é essencial para que o serviço opere. Além disso, qualquer ponto de extremidade opcional marcado para Stream (ID 41-45) é necessário.

Quais cenários esse conselho abordará?

  1. Eventos ao vivo produzidos no Aplicativo teams
  2. Exibindo conteúdo hospedado do Stream
  3. Eventos produzidos por dispositivo externo (codificador)
  4. Prefeitura de Teams

Esse conselho aborda o tráfego de apresentadores?

Isso não acontece; o conselho acima é puramente para aqueles que consomem o serviço. A apresentação de dentro do Teams verá o tráfego do apresentador fluindo para os pontos de extremidade UDP marcados de Otimização listados na linha de serviço URL/IP 11 com conselhos detalhados de descarregamento de VPN descritos na seção Implementar túnel dividido vpn de Implementar túnel dividido vpn para Microsoft 365.

Essa configuração corre o risco de tráfego diferente da Prefeitura, eventos ao vivo & Stream serem enviados diretamente?

Sim, devido a FQDNs compartilhados usados para alguns elementos do serviço, isso é inevitável. Normalmente, esse tráfego é enviado por meio de um proxy corporativo que pode aplicar inspeção. Em um cenário de túnel dividido de VPN, o uso de FQDNs e IPs reduzirá esse risco ao mínimo, mas ele ainda existirá. Os clientes podem remover o domínio *.azureedge.net da configuração de descarregamento e reduzir esse risco ao mínimo, mas isso removerá o descarregamento de eventos ao vivo com suporte no Stream (eventos de codificador stream agendados pelo Teams, eventos de codificador de fluxo, eventos Viva Engage produzidos no Teams, eventos do codificador stream agendados Viva Engage e transmitir eventos agendados ou exibição sob demanda do Stream). Eventos agendados e produzidos no Teams (incluindo a Prefeitura) não são afetados.

Visão geral: túnel dividido de VPN para o Microsoft 365

Implementando o túnel dividido de VPN para o Microsoft 365

Cenários comuns de túnel de divisão de VPN para o Microsoft 365

Protegendo o tráfego de mídia do Teams para túnel dividido de VPN

Otimização de desempenho do Microsoft 365 para usuários da China

Princípios de Conectividade de Rede do Microsoft 365

Avaliando a conectividade de rede do Microsoft 365

Ajuste de desempenho e rede do Microsoft 365

Maneiras alternativas para profissionais de segurança e TI alcançarem controles de segurança modernos nos cenários atuais de trabalho remoto (blog da equipe de segurança da Microsoft)

Melhorar o desempenho da VPN na Microsoft: usar perfis VPN do Windows 10 para permitir conexões automáticas

Trabalhando no VPN: Como a Microsoft mantém sua força de trabalho remota conectada

Rede global da Microsoft