Considerações especiais sobre eventos do Stream e do Teams em ambientes VPN

Nota

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

Tráfego de participantes de Eventos em Direto do Microsoft 365 (inclui participantes em eventos em direto produzidos pelo Teams e produzidos com um codificador externo através do Teams, Stream ou Viva Engage), tráfego de participantes da Câmara Municipal do Microsoft Teams e tráfego de participantes do Stream a pedido está atualmente categorizado como Predefinido versus Otimizar na lista de URLs/IP do serviço. Estes pontos finais são categorizados como Predefinidos porque estão alojados em CDNs que também podem ser utilizados por outros serviços. Geralmente, os clientes preferem utilizar o proxy deste tipo de tráfego e aplicar quaisquer elementos de segurança normalmente efetuados em pontos finais como estes.

Muitos clientes pediram dados de URL/IP necessários para ligar os participantes aos eventos do Stream ou do Teams diretamente a partir da respetiva ligação à Internet local, em vez de encaminharem o tráfego sensível ao volume elevado e à latência através da infraestrutura de VPN. Normalmente, isto não é possível sem espaços de nomes dedicados e informações de IP precisas para os pontos finais, que não são fornecidos para pontos finais do Microsoft 365 categorizados como Predefinição.

Utilize os seguintes passos para ativar a conectividade direta para os serviços de eventos do Stream ou do Teams dos clientes que utilizam uma VPN de túnel forçado. Esta solução destina-se a fornecer aos clientes uma opção para evitar o encaminhamento do tráfego de participantes de Eventos através da VPN, enquanto existe tráfego de rede elevado devido a cenários de trabalho a partir de casa. Se possível, recomendamos que aceda ao serviço através de um proxy de inspeção.

Nota

Com esta solução, podem existir elementos de serviço que não resolvem para os endereços IP fornecidos e, assim, atravessam a VPN, mas a maior parte do tráfego de elevado volume, como os dados de transmissão em fluxo, deve. Podem existir outros elementos fora do âmbito dos Eventos em Direto/Transmissão em Fluxo que são detetados por esta descarga, mas estes devem ser limitados, uma vez que têm de cumprir o FQDN e a correspondência de IP antes de serem diretos.

Importante

Recomendamos que pondere o risco de enviar mais tráfego que ignore a VPN sobre o ganho de desempenho dos Eventos em Direto.

Para implementar a exceção de túnel forçado para Eventos do Teams e Stream, devem ser aplicados os seguintes passos:

1. Configurar a resolução de DNS externo

Os clientes precisam de uma resolução de DNS externa e recursiva para estarem disponíveis para que os seguintes nomes de anfitrião possam ser resolvidos para endereços IP.

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

*.azureedge.net é utilizado para eventos do Stream (Configurar codificadores para transmissão em fluxo em direto no Microsoft Stream - Microsoft Stream | Microsoft Docs).

*.media.azure.net e *.bmc.cdn.office.net são utilizados para Eventos em Direto produzidos pelo Teams (eventos de Início Rápido e RTMP-In eventos suportados) agendados a partir do cliente do Teams.

*.media.azure.net, *.bmc.cdn.office.net e *.ml.cdn.office.net são utilizados para eventos da Câmara Municipal do Teams.

Alguns destes pontos finais são partilhados com outros elementos fora dos eventos do Stream ou do Teams. Não recomendamos apenas a utilização destes FQDNs para configurar a descarga de VPN, mesmo que tecnicamente possível na sua solução de VPN (por exemplo, se funcionar no FQDN em vez de IP).

Os FQDNs não são necessários na configuração da VPN, são exclusivamente utilizados em ficheiros PAC em combinação com os IPs para enviar o tráfego direto relevante.

2. Implementar alterações ao ficheiro PAC (sempre que necessário)

Para organizações que utilizam um ficheiro PAC para encaminhar o tráfego através de um proxy enquanto estiver na VPN, isto é normalmente conseguido com FQDNs. No entanto, com o Stream/Live Events/Câmara Municipal, os nomes de anfitriões fornecidos contêm carateres universais como *.azureedge.net, que também abrange outros elementos para os quais não é possível fornecer listagens de IP completas. Assim, se o pedido for enviado diretamente com base apenas na correspondência de carateres universais DNS, o tráfego para estes pontos finais será bloqueado, uma vez que não existe nenhuma rota através do caminho direto para o mesmo no Passo 3 mais à frente neste artigo.

Para resolver este problema, podemos fornecer os seguintes IPs e utilizá-los em combinação com os nomes de anfitrião num ficheiro PAC de exemplo, conforme descrito no Passo 1. O ficheiro PAC verifica se o URL corresponde aos utilizados para o Stream/Eventos em Direto/Câmara Municipal e, em seguida, se o fizer, também verifica se o IP devolvido de uma pesquisa DNS corresponde aos fornecidos para o serviço. Se ambos corresponderem , o tráfego é encaminhado diretamente. Se qualquer um dos elementos (FQDN/IP) não corresponder, o tráfego é enviado para o proxy. Como resultado, a configuração garante que tudo o que for resolvido para um IP fora do âmbito do IP e dos espaços de nomes definidos atravessa o proxy através da VPN normalmente.

Recolher as listas atuais de Pontos Finais da CDN

Os eventos do Teams utilizam vários fornecedores de CDN para transmitir em fluxo para os clientes, para proporcionar a melhor cobertura, qualidade e resiliência. Atualmente, são utilizadas tanto a CDN do Azure da Microsoft como a da Verizon. Ao longo do tempo, isto pode ser alterado devido a situações como a disponibilidade regional. Este artigo é uma origem que lhe permite manter-se atualizado nos intervalos de IP.

Para a CDN do Azure da Microsoft, pode transferir a lista a partir de Transferir Intervalos de IP e Etiquetas de Serviço do Azure – Nuvem Pública a partir do Centro Oficial de Transferências da Microsoft – terá de procurar especificamente a etiqueta de serviço AzureFrontdoor.Frontend no JSON; addressPrefixes mostrará as sub-redes IPv4/IPv6. Ao longo do tempo, os IPs podem ser alterados, mas a lista de etiquetas de serviço é sempre atualizada antes de serem utilizados.

Para a CDN do Azure da Verizon (Edgecast), pode encontrar uma lista exaustiva através de Nós edge – Lista (selecione Experimentar ) – terá de procurar especificamente a secção Premium_Verizon . Tenha em atenção que esta API mostra todos os IPs do Edgecast (origem e Anycast). Atualmente, não existe um mecanismo para a API distinguir entre a origem e o Anycast.

Para implementar isto num ficheiro PAC, pode utilizar o seguinte exemplo que envia o Tráfego direto da Otimização do Microsoft 365 (o que é recomendado como melhor prática) através do FQDN e o tráfego crítico dos Eventos em Fluxo/Em Direto diretamente através de uma combinação do FQDN e do endereço IP devolvido. O nome do marcador de posição Contoso teria de ser editado para o nome do seu inquilino específico de onde contoso é contoso.onmicrosoft.com

Ficheiro PAC de exemplo

Eis um exemplo de como gerar os ficheiros PAC:

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

  2. Aceda ao URL da Verizon e transfira o JSON resultante (copie colá-lo num ficheiro como cdnedgenodes.json)

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

  4. Numa janela do PowerShell, execute o seguinte comando. Altere o nome do inquilino para outra coisa se quiser os URLs do SPO. Este é o Tipo 2, pelo que Otimizar e Permitir (o Tipo 1 é Apenas Otimizar).

    .\Get-TLEPacFile.ps1 -Instance Worldwide -Type 2 -TenantName <contoso> -CdnEdgeNodesFilePath .\cdnedgenodes.json -FilePath TLE.pac
    
  5. O ficheiro TLE.pac irá conter todos os espaços de nomes 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 no URL de transferência e nas chaves de AzureFrontDoor.Frontend, pelo que não é necessário obtê-lo manualmente.

Mais uma vez, não recomendamos a execução da descarga de VPN apenas com os FQDNs; A utilização dos FQDNs e dos endereços IP na função ajuda a definir o âmbito da utilização desta descarga para um conjunto limitado de pontos finais, incluindo Eventos em Direto/Transmissão em Fluxo. A forma como a função é estruturada resultará na realização de uma pesquisa de DNS para o FQDN que corresponda diretamente às listadas pelo cliente, ou seja, a resolução de DNS dos restantes espaços de nomes permanece inalterada.

Se quiser limitar o risco de descarga de pontos finais não relacionados com eventos do Teams e do Stream, pode remover o domínio *.azureedge.net da configuração, que é onde a maior parte deste risco reside, uma vez que se trata de um domínio partilhado utilizado para todos os clientes da CDN do Azure. A desvantagem disto é que qualquer evento que utilize um codificador externo com tecnologia do Stream não será otimizado, mas os eventos produzidos/organizados no Teams serão.

3. Configurar o encaminhamento na VPN para ativar a saída direta

O passo final é adicionar uma rota direta para os IPs de eventos do Teams descritos em Reunir as listas atuais de Pontos Finais da CDN na configuração da VPN para garantir que o tráfego não é enviado através do túnel forçado para a VPN. Pode encontrar informações detalhadas sobre como fazê-lo para os pontos finais da Otimização do Microsoft 365 na secção Implementar túnel dividido de VPN da Implementação de túneis divididos de VPN para o Microsoft 365. O processo é exatamente o mesmo para os IPs de eventos do Stream ou do Teams listados neste documento.

Tenha em atenção que apenas os IPs (não FQDNs) de Recolher as listas atuais de Pontos Finais da CDN devem ser utilizados para a configuração de VPN.

FAQ

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

Não, isto enviará o tráfego de transmissão em fluxo sensível à latência para um Evento do Teams ou transmissão de vídeo diretamente, qualquer outro tráfego continuará a utilizar o túnel VPN se não resolverem para os IPs publicados.

Preciso de utilizar os Endereços IPv6?

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

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

A Microsoft tem controlos rigorosos em torno do formato e tipo de informação que está no serviço para garantir que os clientes podem utilizar de forma fiável as informações para implementar o encaminhamento seguro e ideal com base na categoria de ponto final.

A categoria Ponto final predefinido não tem informações de IP fornecidas por vários motivos (os pontos finais predefinidos podem estar fora do controlo da Microsoft, podem ser alterados com demasiada frequência ou estar em blocos partilhados com outros elementos). Por este motivo, os Pontos finais predefinidos foram concebidos para serem enviados através do FQDN para um proxy de inspeção, como o tráfego Web normal.

Neste caso, os pontos finais acima são CDNs que podem ser utilizadas por elementos não controlados pela Microsoft que não sejam Eventos em Direto ou Transmissão em Fluxo, pelo que enviar o tráfego direto também significará qualquer outra coisa que resolva para estes IPs também será enviado diretamente do cliente. Devido à natureza única da crise global atual e ao satisfazer as necessidades a curto prazo dos nossos clientes, a Microsoft forneceu as informações acima para que os clientes possam utilizar conforme entenderem.

A Microsoft está a trabalhar para reconfigurar os pontos finais de eventos do Teams para permitir que sejam incluídos nas categorias de ponto final Permitir/Otimizar no futuro.

Só preciso de permitir o acesso a estes IPs?

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

Que cenários serão apresentados por este conselho?

  1. Eventos em direto produzidos na Aplicação Teams
  2. Ver conteúdo alojado no Stream
  3. Eventos produzidos por dispositivos externos (codificador)
  4. Câmara Municipal do Teams

Este conselho abrange o tráfego do apresentador?

Não tem; o conselho acima é apenas para aqueles que consomem o serviço. A apresentação a partir do Teams verá o tráfego do apresentador a fluir para os pontos finais UDP marcados como Otimizado listados na linha de serviço URL/IP 11 com conselhos detalhados de descarga de VPN descritos na secção Implementar túnel dividido de VPN de Implementar o túnel dividido de VPN para o Microsoft 365.

Esta configuração arrisca o tráfego que não a Câmara Municipal, os Eventos em Direto & Stream a serem enviados diretamente?

Sim, devido aos FQDNs partilhados utilizados para alguns elementos do serviço, isto é inevitável. Normalmente, este tráfego é enviado através de um proxy empresarial que pode aplicar inspeção. Num cenário de túnel dividido de VPN, utilizar os FQDNs e os IPs irá reduzir este risco para um mínimo, mas continuará a existir. Os clientes podem remover o domínio *.azureedge.net da configuração de descarga e reduzir este risco para um mínimo mínimo, mas isto removerá a descarga de Eventos em Direto suportados pelo Stream (eventos agendados pelo Teams, eventos de codificador do Stream, Viva Engage eventos produzidos no Teams, eventos de codificador do Stream agendados Viva Engage e eventos agendados do Stream ou visualização a pedido do Stream). Os eventos agendados e produzidos no Teams (incluindo a Câmara Municipal) não são afetados.

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

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

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

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

Otimização do desempenho do Microsoft 365 para utilizadores da China

Princípios de Conectividade de Rede do Microsoft 365

Avaliar a conectividade de rede do Microsoft 365

Otimização da rede e do desempenho do Microsoft 365

Formas alternativas para os profissionais de segurança e as TI alcançarem controlos de segurança modernos nos cenários de trabalho remoto exclusivos atuais (blogue da Equipa de Segurança da Microsoft)

Melhorar o desempenho da VPN na Microsoft: utilizar perfis de VPN Windows 10 para permitir ligações de início automático

Em execução na VPN: como a Microsoft mantém a sua força de trabalho remota ligada

Rede global da Microsoft