Compartir a través de


Consideraciones especiales para eventos de Teams en entornos VPN

Nota:

Este artículo forma parte de un conjunto de artículos que abordan la optimización de Microsoft 365 para usuarios remotos.

El tráfico de asistentes de eventos en directo de Microsoft Teams (incluidos los asistentes a eventos en directo producidos por Teams y los producidos con un codificador externo a través de Teams o Viva Engage) y el tráfico de asistentes del ayuntamiento de Microsoft Teams se clasifica actualmente como Predeterminado frente a Optimizar en la lista de direcciones URL/IP del servicio. Estos puntos de conexión se clasifican como predeterminados porque se hospedan en redes CDN que también podrían usar otros servicios. Por lo general, los clientes prefieren proxy de este tipo de tráfico y aplican cualquier elemento de seguridad que se realice normalmente en puntos de conexión como estos.

Muchos clientes han solicitado los datos de DIRECCIÓN URL/IP necesarios para conectar a sus asistentes en eventos de Teams directamente desde su conexión local a Internet, en lugar de enrutar el tráfico de alto volumen y sensible a la latencia a través de la infraestructura de VPN. Normalmente, esto no es posible sin espacios de nombres dedicados e información de IP precisa para los puntos de conexión, que no se proporciona para los puntos de conexión de Microsoft 365 clasificados como Predeterminado.

Siga estos pasos para identificar y habilitar la conectividad directa para el tráfico de asistentes para eventos de Teams desde clientes que usan una VPN de túnel forzado. Esta solución está diseñada para proporcionar a los clientes una opción para evitar el enrutamiento del tráfico de los asistentes a través de VPN mientras hay un tráfico de red elevado debido a escenarios de trabajo desde casa. Si es posible, se recomienda acceder al servicio a través de un proxy de inspección.

Nota:

Con esta solución, puede haber elementos de servicio que no se resuelven en las direcciones IP proporcionadas y, por tanto, atraviesan la VPN, pero la mayor parte del tráfico de gran volumen, como los datos de streaming, debería. Es posible que haya otros elementos fuera del ámbito de live events/Stream que se detecten mediante esta descarga, pero deben limitarse, ya que deben cumplir tanto el FQDN como la coincidencia de IP antes de ir directamente.

Importante

Se recomienda sopesar el riesgo de enviar más tráfico que omite la VPN sobre la ganancia de rendimiento de los eventos de Teams.

Para implementar la excepción de túnel forzado para eventos de Teams, se deben aplicar los pasos siguientes:

1. Configurar la resolución DNS externa

Los clientes necesitan una resolución DNS externa y recursiva para estar disponibles para que los siguientes nombres de host se puedan resolver en direcciones IP.

Para la nube comercial :

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

*.media.azure.net y *.bmc.cdn.office.net se usan para eventos en directo producidos por Teams (eventos de inicio rápido y RTMP-In eventos admitidos) programados desde el cliente de Teams.

*.media.azure.net, *.bmc.cdn.office.net y *.ml.cdn.office.net se usan para los eventos del ayuntamiento de Teams.

Nota:

Algunos de estos puntos de conexión se comparten con otros elementos fuera de los eventos de Teams. No se recomienda usar estos espacios de nombres para configurar la descarga de VPN aunque sea técnicamente posible en la solución VPN (por ejemplo, si funciona con el espacio de nombres en lugar de con la dirección IP).

Para las nubes gubernamentales (GCC, GCC High, DoD):

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

*.cdn.ml.gcc.teams.microsoft.com se usa para los eventos del ayuntamiento de Teams en la nube de la comunidad del gobierno de Estados Unidos (GCC) de Microsoft 365.

*.cdn.ml.gov.teams.microsoft.us se usa para los eventos del ayuntamiento de Teams en microsoft 365 U.S. Government GCC High Cloud (GCC High).

*.cdn.ml.dod.teams.microsoft.us se usa para los eventos del ayuntamiento de Teams en la nube doD (DoD) de Microsoft 365 U.S. Government.

Los FQDN no son necesarios en la configuración de VPN, son puramente para su uso en archivos PAC en combinación con las direcciones IP para enviar el tráfico directo pertinente.

2. Implementar cambios de archivo PAC (cuando sea necesario)

Para las organizaciones que usan un archivo PAC para enrutar el tráfico a través de un proxy mientras se encuentra en VPN, esto normalmente se logra mediante FQDN. Sin embargo, con los eventos de Teams, los nombres de host proporcionados contienen caracteres comodín que se resuelven en direcciones IP usadas por las redes de entrega de contenido (CDN) que no se usan exclusivamente para el tráfico de eventos de Teams. Por lo tanto, si la solicitud se envía directamente en función de la coincidencia de caracteres comodín dns solo, el tráfico a estos puntos de conexión se bloqueará, ya que no hay ninguna ruta a través de la ruta de acceso directa para ella en el paso 3 más adelante en este artículo.

Para solucionar esto, podemos proporcionar las siguientes direcciones IP y usarlas en combinación con los nombres de host en un archivo PAC de ejemplo, como se describe en el paso 1. El archivo PAC comprueba si la dirección URL coincide con las usadas para eventos de Teams y, si lo hace, también comprueba si la dirección IP devuelta desde una búsqueda DNS coincide con las proporcionadas para el servicio. Si ambos coinciden, el tráfico se enruta directamente. Si alguno de los elementos (FQDN/IP) no coincide, el tráfico se envía al proxy. Como resultado, la configuración garantiza que todo lo que se resuelva en una dirección IP fuera del ámbito de la dirección IP y los espacios de nombres definidos atraviesa el proxy a través de la VPN de la forma normal.

Recopilación de las listas actuales de puntos de conexión de CDN

En el caso de la nube comercial, los eventos de Teams usan varios proveedores de CDN para transmitirlos a los clientes, con el fin de proporcionar la mejor cobertura, calidad y resistencia. Actualmente, se usan Azure CDN de Microsoft y Azure CDN de Verizon. Con el tiempo, esto podría cambiarse debido a situaciones como la disponibilidad regional. Este artículo es un origen que le permite mantenerse al día sobre los intervalos IP. Para las nubes de Microsoft 365 U.S. Government (GCC, GCC High y DoD) solo se usa Azure CDN de Microsoft.

Para la nube comercial :

  • En el caso de Azure CDN de Microsoft, puede descargar la lista de Descarga de intervalos IP y etiquetas de servicio de Azure en la nube pública desde el Centro de descarga oficial de Microsoft ; tendrá que buscar específicamente la etiqueta AzureFrontdoor.Frontend de servicio en JSON; addressPrefixes mostrará las subredes IPv4/IPv6. Con el tiempo, las direcciones IP pueden cambiar, pero la lista de etiquetas de servicio siempre se actualiza antes de que se usen.

  • Para Azure CDN de Verizon (Edgecast) puede encontrar una lista exhaustiva mediante Nodos perimetrales : Lista (seleccione Probar ) ; deberá buscar específicamente la sección Premium_Verizon . Tenga en cuenta que esta API muestra todas las direcciones IP de Edgecast (origen y Anycast). Actualmente no hay un mecanismo para que la API distinga entre el origen y Anycast.

Para las nubes gubernamentales(GCC, GCC High y DoD):

El siguiente script puede generar un archivo PAC que incluirá los espacios de nombres y las listas IP para el tráfico de asistentes de eventos de Teams. El parámetro -Instance determina el entorno especificado: los valores admitidos son [Worldwide, USGov, USGovGCCHigh y UsGovDoD]. Opcionalmente, el script también puede incluir los dominios Optimizar y Permitir mediante el parámetro -Type .

Generación de archivos PAC de ejemplo para la nube comercial

Este es un ejemplo de cómo generar el archivo PAC para la nube comercial:

  1. Guarde el script en el disco duro local como Get-EventsPacFile.ps1.

  2. Vaya a la dirección URL de Verizon y descargue el JSON resultante (copie péguelo en un archivo denominado cdnedgenodes.json)

  3. Coloque el archivo en la misma carpeta que el script.

  4. En una ventana de PowerShell, ejecute el siguiente comando. Si solo desea que los nombres De optimización (y no Optimizar y Permitir) cambien el parámetro -Type a Optimizar.

    .\Get-EventsPacFile.ps1 -Instance Worldwide -CdnEdgeNodesFilePath .\cdnedgenodes.json -Type OptimizeAndAllow -FilePath .\Commercial.pac
    
  5. El archivo Commercial.pac contendrá todos los espacios de nombres y direcciones IP (IPv4/IPv6) para el tráfico de asistentes de eventos de Teams.

Ejemplo de generación de archivos PAC para microsoft 365 U.S. Government Community Cloud (GCC)

Este es un ejemplo de cómo generar el archivo PAC para el entorno GCC:

  1. Guarde el script en el disco duro local como Get-EventsPacFile.ps1.

  2. En una ventana de PowerShell, ejecute el siguiente comando. Si solo desea que los nombres De optimización (y no Optimizar y Permitir) cambien el parámetro -Type a Optimizar.

    .\Get-EventsPacFile.ps1 -Instance UsGov -Type OptimizeAndAllow -FilePath .\USGov.pac
    
  3. El archivo USGov.pac contendrá todos los espacios de nombres y direcciones IP (IPv4/IPv6) específicos de la nube de GCC para el tráfico de asistentes del ayuntamiento de Teams.

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

<#PSScriptInfo

.VERSION 1.0.6

.AUTHOR Microsoft Corporation

.GUID 7f692977-e76c-4582-97d5-9989850a2529

.COMPANYNAME Microsoft

.COPYRIGHT
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.

.TAGS PAC Microsoft Microsoft365 365

.LICENSEURI

.PROJECTURI http://aka.ms/ipurlws

.ICONURI

.EXTERNALMODULEDEPENDENCIES

.REQUIREDSCRIPTS

.EXTERNALSCRIPTDEPENDENCIES

.RELEASENOTES

#>

<#

.SYNOPSIS

Create a PAC file for Microsoft 365 prioritized connectivity for Teams Events (Live Events, Town hall)

.DESCRIPTION

This script will access updated information to create a PAC file to prioritize Microsoft 365 Urls for
better access to the service. This script will allow you to create different types of files depending
on how traffic needs to be prioritized.

.PARAMETER Instance

The service instance inside Microsoft 365. The default is Worldwide. To specify GCC use the USGov value.

.PARAMETER ClientRequestId

The client request id to connect to the web service to query up to date Urls.

.PARAMETER DirectProxySettings

The direct proxy settings for priority traffic.

.PARAMETER DefaultProxySettings

The default proxy settings for non priority traffic.

.PARAMETER Type

The type of prioritization to give. Valid values are Optimize and OptimizeAndAllow, which are 2 different modes of operation.
These values align to the categories defined in our Principles of Network Connectivity at https://aka.ms/pnc

.PARAMETER Lowercase

Flag this to include lowercase transformation into the PAC file for the host name matching.

.PARAMETER TenantName

The tenant name to replace wildcard Urls in the webservice.

.PARAMETER ServiceAreas

The service areas to filter endpoints by in the webservice.

.PARAMETER FilePath

The file to print the content to.

.EXAMPLE

Get-EventsPacFile.ps1 -Instance Worldwide -CdnEdgeNodesFilePath .\cdnedgenodes.json -Type OptimizeAndAllow -FilePath .\Commercial.pac 

.EXAMPLE

Get-EventsPacFile.ps1 -Instance USGov -FilePath .\USGov.pac -Type OptimizeAndAllow


#>

#Requires -Version 2

[CmdletBinding(SupportsShouldProcess = $True)]
Param (
    [Parameter()]
    [ValidateSet('Worldwide', 'Germany', 'China', 'USGovDoD', 'USGovGCCHigh', 'USGov')]
    [String] $Instance = "Worldwide",

    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [guid] $ClientRequestId = [Guid]::NewGuid(),

    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [String] $DirectProxySettings = 'DIRECT',

    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [String] $DefaultProxySettings = 'PROXY 10.10.10.10:8080',

    [Parameter()]
    [ValidateSet('OptimizeOnly','OptimizeAndAllow')]
    [string]
    $Type = 'OptimizeOnly',

    [Parameter()]
    [switch] $Lowercase,

    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [string] $TenantName,

    [Parameter()]
    [ValidateSet('Exchange', 'SharePoint', 'Common', 'Skype')]
    [string[]] $ServiceAreas,

    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [string] $FilePath,

    [Parameter()]
    [ValidateNotNullOrEmpty()]
    [string] $CdnEdgeNodesFilePath
)

##################################################################################################################
### Global constants
##################################################################################################################

$baseServiceUrl = if ($Instance -eq 'USGov') {
    "https://endpoints.office.com/endpoints/Worldwide/?ClientRequestId=$ClientRequestId"
} else {
    "https://endpoints.office.com/endpoints/$Instance/?ClientRequestId=$ClientRequestId"
}
$directProxyVarName = "direct"
$defaultProxyVarName = "proxyServer"

##################################################################################################################
### Functions to create PAC files
##################################################################################################################

function Get-PacString {
    param(
        [Parameter(ValueFromPipelineByPropertyName)]
        [string[]]
        $NonDirectOverrideFqdns,

        [Parameter(ValueFromPipelineByPropertyName)]
        [string[]]
        $DirectFqdns
    )

    $PACSb = New-Object 'System.Text.StringBuilder'
    $null = & {
        $PACSb.AppendLine('// This PAC file will provide proxy config to Microsoft 365 services')
        $PACSb.AppendLine('// using data from the public web service for all endpoints')
        $PACSb.AppendLine('function FindProxyForURL(url, host)')
        $PACSb.AppendLine('{')
        $PACSb.Append('    var ').Append($directProxyVarName).Append(' = "').Append($DirectProxySettings).AppendLine('";')
        $PACSb.Append('    var ').Append($defaultProxyVarName).Append(' = "').Append($DefaultProxySettings).AppendLine('";')
        if ($Lowercase) {
            $PACSb.AppendLine('    host = host.toLowerCase();')
        }
        $first = $true
        foreach ($fqdn in $NonDirectOverrideFqdns) {
            if ($first) {
                $PACSb.AppendLine()
                $PACSb.AppendLine('    // Force proxy for subdomains of bypassed hosts')
                $PACSb.AppendLine()
                $PACSb.Append('    if(')
            }
            else {
                $PACSb.AppendLine().Append('            || ')
            }
            $first = $false
            $PACSb.Append('shExpMatch(host, "').Append($fqdn).Append('")')
        }
        if (!$first) {
            $PACSb.AppendLine(')')
            $PACSb.AppendLine('    {')
            $PACSb.Append('        return ').Append($directProxyVarName).AppendLine(';')
            $PACSb.AppendLine('    }')
        }

        $first = $true
        foreach ($fqdn in $DirectFqdns) {
            if ($first) {
                $PACSb.AppendLine()
                $PACSb.AppendLine('    // Bypassed hosts')
                $PACSb.AppendLine()
                $PACSb.Append('    if(')
            }
            else {
                $PACSb.AppendLine().Append('            || ')
            }
            $first = $false
            $PACSb.Append('shExpMatch(host, "').Append($fqdn).Append('")')
        }
        if (!$first) {
            $PACSb.AppendLine(')')
            $PACSb.AppendLine('    {')
            $PACSb.Append('        return ').Append($directProxyVarName).AppendLine(';')
            $PACSb.AppendLine('    }')
        }

        if (!$ServiceAreas -or $ServiceAreas.Contains('Skype')) {
            $EventsConfig = Get-TeamsEventsConfiguration
            if ($EventsConfig.EventsAddressRanges.Count -gt 0) {
                $EventsBlock = $EventsConfig | Get-TLEPacConfiguration
                $PACSb.AppendLine()
                $PACSb.AppendLine($EventsBlock)
            }
        }

        $PACSb.Append('    return ').Append($defaultProxyVarName).AppendLine(';').Append('}')
    }

    return $PACSb.ToString()
}

##################################################################################################################
### Functions to get and filter endpoints
##################################################################################################################
function Get-TeamsEventsConfiguration {
    param()
    $IncludedHosts = switch ($Instance) {
        'USGov' {
            @('*.cdn.ml.gcc.teams.microsoft.com')
            break
        }
        'USGovDoD' {
            @('*.cdn.ml.dod.teams.microsoft.us')
            break
        }
        'USGovGCCHigh' {
            @('*.cdn.ml.gov.teams.microsoft.us')
            break
        }
        default {
            @('*.bmc.cdn.office.net', '*.ml.cdn.office.net', '*.media.azure.net')
            break
        }
    }
    $IncludedAddressRanges = & {
        if (!$Instance.StartsWith('USGov') -and ![string]::IsNullOrEmpty($CdnEdgeNodesFilePath) -and (Test-Path -Path $CdnEdgeNodesFilePath)) {
            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 |
                ForEach-Object {
                    $_.ipv4Addresses
                    $_.ipv6Addresses
                } |
                Where-Object { $_.BaseIpAddress } |
                ForEach-Object { $_.BaseIpAddress + '/' + $_.prefixLength }
        }

        $ServiceTagsDownloadId = '56519'
        if ($Instance.StartsWith('USGov')) {
            $ServiceTagsDownloadId = '57063'
        }
        $AzureIPsUrl = Invoke-WebRequest -Uri "https://www.microsoft.com/en-us/download/confirmation.aspx?id=$ServiceTagsDownloadId" -UseBasicParsing -ErrorAction SilentlyContinue |
            Select-Object -ExpandProperty Links | Select-Object -ExpandProperty href |
            Where-Object { $_.EndsWith('.json') -and $_ -match 'ServiceTags' } | Select-Object -First 1
        if ($AzureIPsUrl) {
            Invoke-RestMethod -Uri $AzureIPsUrl -ErrorAction SilentlyContinue | Select-Object -ExpandProperty values |
                Where-Object { $_.name -eq 'AzureFrontDoor.Frontend' } | Select-Object -First 1 -ExpandProperty properties |
                Select-Object -ExpandProperty addressPrefixes
        }
    }
    [PSCustomObject]@{
        EventsHostNames = $IncludedHosts
        EventsAddressRanges = $IncludedAddressRanges
    }
}

function Get-TLEPacConfiguration {
    [CmdletBinding()]
    param (
        [Parameter(ValueFromPipelineByPropertyName)]
        [string[]]
        $EventsHostNames,

        [Parameter(ValueFromPipelineByPropertyName)]
        [string[]]
        $EventsAddressRanges
    )
    if ($EventsAddressRanges.Count -eq 0) {
        return ''
    }
    $TLESb = New-Object 'System.Text.StringBuilder'
    $Spaces = '    '
    $null = $TLESb.Append($Spaces).AppendLine('// Bypass Teams Events attendee traffic')
    $first = $true
    $null = foreach ($hostName in $EventsHostNames) {
        if ($first) {
            $TLESb.AppendLine().Append($Spaces).Append('if(')
        }
        else {
            $TLESb.AppendLine().Append($Spaces).Append('    || ')
        }
        $first = $false
        $TLESb.Append('shExpMatch(host, "').Append($hostName).Append('")')
    }
    $null = $TLESb.AppendLine(')').Append($Spaces).AppendLine('{')
    $Spaces = $Spaces + $Spaces
    $null = $TLESb.Append($Spaces).AppendLine('var resolved_ip = dnsResolveEx(host);')

    $first = $true
    $null = foreach ($addressRange in $EventsAddressRanges) {
        if ($first) {
            $TLESb.AppendLine().Append($Spaces).Append('if(')
        } else {
            $TLESb.AppendLine().Append($Spaces).Append('    || ')
        }
        $first = $false
        $TLESb.Append('isInNetEx(resolved_ip, "').Append($addressRange).Append('")')
    }
    if (!$first) {
        $null = $TLESb.AppendLine(')').
            Append($Spaces).AppendLine('{').
            Append($Spaces).Append('    return ').Append($directProxyVarName).AppendLine(';').
            Append($Spaces).AppendLine('}')
    }
    else {
        $null = $TLESb.Append($Spaces).AppendLine('// no addresses found for service via script')
    }
    return $TLESb.AppendLine('    }').ToString()
}

function Get-Endpoints {
    $url = $baseServiceUrl
    if ($TenantName) {
        $url += "&TenantName=$TenantName"
    }
    if ($ServiceAreas) {
        $url += "&ServiceAreas=" + ($ServiceAreas -Join ",")
    }
    return Invoke-RestMethod -Uri $url
}

function Get-MapVarUrls {
    Write-Verbose "Retrieving all endpoints for instance $Instance from web service."
    $Endpoints = Get-Endpoints

    $Include = if ($Type -eq 'OptimizeOnly') { @('Optimize') } else { @('Optimize', 'Allow') }

    $directUrls = $endpoints |
        Where-Object { $_.category -in $Include } |
        Where-Object { $_.urls } |
        ForEach-Object { $_.urls } |
        Sort-Object -Unique

    $MatchList = [Collections.Generic.Dictionary[string,Regex]]@{}
    $directUrls |
        Where-Object { $_.Contains('*') -or $_.Contains('?') } |
        ForEach-Object { $MatchList[$_] = [Regex]::new('^{0}$' -f $_.Replace('.','\.').Replace('*','.*').Replace('?','.?'),[Text.RegularExpressions.RegexOptions]::IgnoreCase) }

    $nonDirectPriorityUrls = $endpoints |
        Where-Object { $_.category -notin $Include } |
        Where-Object { $_.urls } |
        ForEach-Object { $_.urls } |
        Sort-Object -Unique |
        Where-Object { [Linq.Enumerable]::Any($MatchList,[Func[System.Collections.Generic.KeyValuePair[string,Regex],bool]]{$args[0].Key -ne $_ -and $args[0].Value.IsMatch($_)}) }

    return [PSCustomObject]@{
        NonDirectOverrideFqdns = $nonDirectPriorityUrls
        DirectFqdns = $directUrls
    }
}

##################################################################################################################
### Main script
##################################################################################################################

$content = Get-MapVarUrls | Get-PacString

if ($FilePath) {
    $content | Out-File -FilePath $FilePath -Encoding ascii
}
else {
    $content
}

El script analizará automáticamente la lista de Azure CDN adecuada en función del valor del parámetro Instance y las claves fuera de AzureFrontDoor.Frontend, por lo que no es necesario obtenerlo manualmente.

De nuevo, no se recomienda realizar la descarga de VPN con solo los FQDN; Usar los FQDN y las direcciones IP de la función ayuda a limitar el uso de esta descarga a un conjunto limitado de puntos de conexión, incluidos los eventos de Teams. La forma en que se estructura la función dará lugar a que se realice una búsqueda DNS para el FQDN que coincida con las enumeradas directamente por el cliente, es decir, la resolución DNS de los espacios de nombres restantes permanece sin cambios.

3. Configurar el enrutamiento en la VPN para habilitar la salida directa

El último paso consiste en agregar una ruta directa para las direcciones IP de eventos de Teams que se describen en Recopilación de las listas actuales de puntos de conexión de RED CDN en la configuración de VPN para asegurarse de que el tráfico no se envía a través del túnel forzado a la VPN. Puede encontrar información detallada sobre cómo hacerlo para los puntos de conexión de Microsoft 365 Optimize en la sección Implementar tunelización dividida de VPN de Implementación de la tunelización dividida de VPN para Microsoft 365. El proceso es exactamente el mismo para las direcciones IP de eventos de Teams enumeradas en este documento.

Nota:

Solo se deben usar las direcciones IP (no FQDN) de Recopilación de las listas actuales de puntos de conexión de RED CDN para la configuración de VPN.

Preguntas más frecuentes

¿Esto enviará todo mi tráfico al servicio directamente?

No, esto enviará el tráfico de streaming sensible a la latencia para un asistente de eventos de Teams directo, cualquier otro tráfico seguirá usando el túnel VPN si no se resuelven en las direcciones IP publicadas.

¿Necesito usar las direcciones IPv6?

No, la conectividad solo puede ser IPv4 si es necesario.

¿Por qué estas direcciones IP no se publican en el servicio de dirección URL/IP de Microsoft 365?

Microsoft tiene controles estrictos en torno al formato y el tipo de información que se encuentra en el servicio para garantizar que los clientes puedan usar la información de forma confiable para implementar un enrutamiento seguro y óptimo en función de la categoría de punto de conexión.

La categoría Punto de conexión predeterminado no tiene información de IP proporcionada por numerosas razones (los puntos de conexión predeterminados pueden estar fuera del control de Microsoft, pueden cambiar con demasiada frecuencia o estar en bloques compartidos con otros elementos). Por este motivo, los puntos de conexión predeterminados están diseñados para enviarse a través del FQDN a un proxy de inspección, como el tráfico web normal.

En este caso, los puntos de conexión anteriores son redes CDN que podrían usar elementos no controlados por Microsoft que no sean eventos de Teams, y, por tanto, enviar el tráfico directo también significará cualquier otra cosa que se resuelva en estas direcciones IP también se enviará directamente desde el cliente. Debido a la naturaleza única de la crisis global actual y para satisfacer las necesidades a corto plazo de nuestros clientes, Microsoft ha proporcionado la información anterior para que los clientes puedan usar como consideren oportuno.

Microsoft está trabajando para volver a configurar los puntos de conexión de eventos de Teams para permitir que se incluyan en las categorías de punto de conexión Allow/Optimize en el futuro.

¿Solo necesito permitir el acceso a estas direcciones IP?

No, el acceso a todos los puntos de conexión marcados requeridos para el entorno adecuado es esencial para que el servicio funcione.

¿Qué escenarios cubrirá este consejo?

  1. Eventos en directo generados dentro de la aplicación teams
  2. Eventos generados por dispositivos externos (codificador)
  3. Ayuntamiento de Teams

¿Este consejo cubre el tráfico del moderador?

No lo hace; el consejo anterior es puramente para aquellos que asisten al evento. Al presentar desde Teams, verá el tráfico del moderador fluyendo a los puntos de conexión UDP marcados de Optimización que aparecen en la fila 11 del servicio URL/IP con consejos detallados de descarga de VPN descritos en la sección Implementación de túnel dividido de VPN de Implementación de la tunelización dividida de VPN para Microsoft 365.

Información general: Túnel dividido de VPN para Microsoft 365

Implementación de la tunelización dividida de VPN para Microsoft 365

Escenarios comunes de tunelización dividida de VPN para Microsoft 365

Protección del tráfico multimedia Teams para la tunelización dividida VPN

Optimización del rendimiento de Microsoft 365 para usuarios de China

Principios de conectividad de red de Microsoft 365

Evaluar la conectividad de red de Microsoft 365

Optimización de rendimiento y red de Microsoft 365

Formas alternativas para que los profesionales de seguridad y de TI logren controles de seguridad modernos en los escenarios de trabajo remoto específicos (blog del Equipo de Seguridad de Microsoft)

Mejorando el rendimiento de la VPN en Microsoft: usando perfiles de VPN de Windows 10 para permitir conexiones automáticas

Funcionando con VPN: cómo Microsoft mantiene conectado a su personal remoto

Red global de Microsoft