Jaa


Vpn-ympäristöjen Teams-tapahtumissa huomioitavia seikkoja

Huomautus

Tämä artikkeli on osa artikkeleita, jotka käsittelevät Microsoft 365:n optimointia etäkäyttäjille.

Microsoft Teams live -tapahtumien osallistujien liikenne (tämä sisältää Teamsin tuottamien live-tapahtumien osallistujat ja ulkoisella koodaustoiminnolla Teamsin tai Viva Engage kautta tuotetut osallistujat) ja Microsoft Teamsin kaupungintalon osallistujaliikenne luokitellaan tällä hetkellä palvelun URL-/IP-luettelossaoletukseksi tai optimoinniksi. Nämä päätepisteet luokitellaan oletukseksi , koska niitä isännöidä cdn-levyillä, joita myös muut palvelut saattavat käyttää. Asiakkaat käyttävät yleensä mieluummin välityspalvelintyyppistä liikennettä ja käyttävät kaikkia suojauselementtejä, joita yleensä tehdään tällaisissa päätepisteissä.

Monet asiakkaat ovat pyytäneet URL-/IP-tietoja, joita tarvitaan yhteyden muodostamiseen Teams-tapahtumien osallistujiin suoraan paikallisesta Internet-yhteydestä sen sijaan, että he reitittäneet suuren volyymin ja viiveen huomioon ottavan liikenteen VPN-infrastruktuurin kautta. Yleensä tämä ei ole mahdollista ilman erillisiä nimitiloja ja päätepisteiden tarkkoja IP-tietoja, joita ei anneta Microsoft 365:n päätepisteille , jotka on luokiteltu default-arvoiksi.

Seuraavien vaiheiden avulla voit tunnistaa ja ottaa käyttöön suoran yhteyden osallistujien liikenteelle teams-tapahtumille asiakkaista, jotka käyttävät pakotettua tunnelin VPN:ää. Tämän ratkaisun tarkoituksena on tarjota asiakkaille mahdollisuus välttää osallistujien liikenteen reititystä VPN:n kautta, kun verkkoliikenne on suurta kotikäyttöskenaarioiden vuoksi. Jos mahdollista, suosittelemme käyttämään palvelua tarkastavan välityspalvelimen kautta.

Huomautus

Tämän ratkaisun avulla on ehkä palveluelementtejä, jotka eivät ratkaise annettuja IP-osoitteita ja kulkevat siten VPN:n läpi, mutta suuren määrän liikennettä, kuten virtautettavien tietojen, pitäisi olla. Live-tapahtumien/Stream ulkopuolelle saattaa kuulua muitakin elementtejä, jotka jäävät tämän latauksen ulkopuolelle, mutta niiden on oltava rajoitettuja, koska niiden on täytettävä sekä FQDN- että IP-vastaavuus ennen suoraa lähetystä.

Tärkeää

Suosittelemme, että punnitset riskiä lähettää enemmän liikennettä, joka ohittaa VPN:n Teams-tapahtumien suorituskyvyn parantamiseksi.

Pakotetun tunnelipoikkeuksen käyttöönotto Teams-tapahtumissa tulee noudattaa seuraavia vaiheita:

1. Määritä ulkoinen DNS-tarkkuus

Asiakkaat tarvitsevat ulkoisen, rekursiivisen DNS-tarkkuuden ollakseen käytettävissä, jotta seuraavat isäntänimet voidaan ratkaista IP-osoitteiksi.

Kaupallisessa pilvipalvelussa:

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

*.media.azure.net ja *.bmc.cdn.office.net ovat Teamsin tuottamia livetapahtumia (pika-aloitustapahtumia ja RTMP-In tuettuja tapahtumia) teams-asiakasohjelmasta ajoitettuihin tapahtumiin.

*.media.azure.net-, *.bmc.cdn.office.net - ja *.ml.cdn.office.net-tapahtumilla käytetään Teamsin kaupungintalon tapahtumia.

Huomautus

Jotkin näistä päätepisteistä jaetaan muiden elementtien kanssa Teams-tapahtumien ulkopuolella. Emme suosittele pelkästään näiden nimitilojen käyttämistä VPN-kuormituksen määrittämiseen, vaikka VPN-ratkaisussasi olisi teknisesti mahdollista (esimerkiksi jos se toimii nimitilan kanssa IP-osoitteen sijaan).

Valtionhallinnon pilvipalveluille (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 käytetään Teamsin kaupungintalon tapahtumissa Microsoft 365 U.S. Government Community Cloudissa (GCC).

*.cdn.ml.gov.teams.microsoft.us käytetään Teamsin kaupungintalon tapahtumissa Microsoft 365 U.S. Government GCC High Cloudissa (GCC High).

*.cdn.ml.dod.teams.microsoft.us käytetään Teamsin kaupungintalon tapahtumissa Microsoft 365 U.S. Government DoD Cloudissa (DoD).

VPN-määrityksessä ei tarvita FQDN-koodeja, ja niitä käytetään vain PAC-tiedostoissa yhdessä IPS:ien kanssa, jotta asianmukainen liikenne voidaan lähettää suoraan.

2. Toteuta PAC-tiedoston muutokset (tarvittaessa)

Organisaatioissa, jotka käyttävät PAC-tiedostoa liikenteen reitittämiseen välityspalvelimen kautta VPN-yhteyden aikana, tämä tehdään yleensä FQDN:n avulla. Teams-tapahtumien yhteydessä annetut isäntänimet sisältävät kuitenkin yleismerkkejä, jotka ratkaistaan sisältöverkkojen (CDN) käyttämiksi IP-osoitteiksi, joita ei käytetä yksinomaan Teams-tapahtumien liikenteessä. Jos pyyntö lähetetään siis suoraan pelkästään DNS-yleismerkkivastaavuus-asetuksen perusteella, liikenne näihin päätepisteisiin estetään, koska sille ei ole suoraa reittiä vaiheessa 3 myöhemmin tässä artikkelissa.

Voimme ratkaista tämän antamalla seuraavat IPS:t ja käyttämällä niitä yhdessä esimerkki-PAC-tiedoston isäntänimien kanssa vaiheessa 1 kuvatulla tavalla. PAC-tiedosto tarkistaa, vastaako URL-osoite Teams-tapahtumissa käytettyjä, ja jos se vastaa, se tarkistaa myös, vastaako DNS-hausta palautettu IP-osoite palvelulle annettuja ip-osoitteita. Jos molemmat vastaavat toisiaan, liikenne reititetään suoraan. Jos jompikumpi elementistä (FQDN/IP) ei vastaa toisiaan, liikenne lähetetään välityspalvelimelle. Tämän seurauksena määritys varmistaa, että kaikki IP-osoitteet, jotka eivät kuulu IP-osoitteisiin ja määritettyihin nimitiloihin, kulkevat välityspalvelimen kautta normaalisti VPN:n kautta.

Kerätään nykyisiä CDN-päätepisteiden luetteloita

Kaupallisessa pilvipalvelussa Teams-tapahtumat käyttävät useita CDN-palveluntarjoajia suoratoistoon asiakkaille, jotta ne tarjoavat parhaan kattavuuden, laadun ja sujuvuuden. Tällä hetkellä käytetään sekä Microsoftin Azure CDN:tä että Verizonin Azure CDN:tä. Ajan mittaan tätä voi muuttaa esimerkiksi alueellisen käytettävyyden vuoksi. Tämä artikkeli on lähde, jonka avulla voit pitää ajan tasalla IP-osoitealueista. Microsoft 365 U.S. Government -pilvipalveluissa (GCC, GCC High ja DoD) käytetään vain Microsoftin Azure-sisältöverkkoa.

Kaupallisessa pilvipalvelussa:

  • Microsoftin Azure-sisältöverkkoa varten voit ladata luettelon kohdasta Lataa Azuren IP-alueet ja palvelutunnisteet – Julkinen pilvi virallisesta Microsoft Download Centeristä – sinun on etsittävä erityisesti palvelutunniste AzureFrontdoor.Frontend JSON:sta. addressPrefixes näyttää aliverkot IPv4/IPv6. Ajan mittaan IPS:t voivat muuttua, mutta palvelutunnisteluettelo päivitetään aina ennen kuin ne otetaan käyttöön.

  • Verizon (Edgecast) Azure CDN:lle on täydellinen luettelo, joka käyttää Edge Nodes - List ( valitse Kokeile ) – sinun on etsittävä erityisesti Premium_Verizon osiota. Huomaa, että tämä ohjelmointirajapinta näyttää kaikki Edgecast-IP:t (alkuperä ja Anycast). Tällä hetkellä ohjelmointirajapinnalla ei ole mekanismia erottamaan alkuperää ja Anycastia.

Valtionhallinnon pilvipalveluille (GCC, GCC High ja DoD):

Seuraava komentosarja voi luoda PAC-tiedoston, joka sisältää Teams-tapahtumien osallistujaliikenteen nimitilat ja IP-luettelot. -Instance-parametri määrittää määritetyn ympäristön - tuetut arvot ovat [Worldwide, USGov, USGovGCCHigh ja UsGovDoD]. Vaihtoehtoisesti komentosarja voi sisältää myös Optimoi- ja Salli toimialueet - Type-parametrin avulla.

Esimerkki PAC-tiedoston luomisesta kaupalliselle pilvipalvelulle

Tässä on esimerkki siitä, miten voit luoda Kaupallisen pilvipalvelun PAC-tiedoston:

  1. Tallenna komentosarja paikalliselle kiintolevylle nimellä Get-EventsPacFile.ps1.

  2. Siirry Verizon URL -osoitteeseen ja lataa tuloksena oleva JSON (kopioi liitä se tiedostoon nimeltä cdnedgenodes.json)

  3. Sijoita tiedosto samaan kansioon komentosarjan kanssa.

  4. Suorita seuraava komento PowerShell-ikkunassa. Jos haluat vain optimoida nimet (ei optimoida ja sallia), muuta -Type-parametrin arvoksi Optimoi.

    .\Get-EventsPacFile.ps1 -Instance Worldwide -CdnEdgeNodesFilePath .\cdnedgenodes.json -Type OptimizeAndAllow -FilePath .\Commercial.pac
    
  5. Commercial.pac-tiedosto sisältää kaikki Nimitilat ja IP-osoitteet (IPv4/IPv6) Teams-tapahtumien osallistujien liikenteelle.

Esimerkki PAC-tiedostojen luomisesta Microsoft 365 U.S. Government Community Cloudille (GCC)

Tässä on esimerkki siitä, miten voit luoda PAC-tiedoston GCC-ympäristölle:

  1. Tallenna komentosarja paikalliselle kiintolevylle nimellä Get-EventsPacFile.ps1.

  2. Suorita seuraava komento PowerShell-ikkunassa. Jos haluat vain optimoida nimet (ei optimoida ja sallia), muuta -Type-parametrin arvoksi Optimoi.

    .\Get-EventsPacFile.ps1 -Instance UsGov -Type OptimizeAndAllow -FilePath .\USGov.pac
    
  3. USGov.pac-tiedosto sisältää kaikki nimitilat ja IP-osoitteet (IPv4/IPv6), jotka koskevat Teamsin kaupungintalon osallistujien liikennettä GCC-pilvessä.

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
}

Komentosarja jäsentää automaattisesti asianmukaisen Azure CDN -luettelon Esiintymä-parametriarvon ja AzureFrontDoor.Frontend-näppäimen perusteella, joten sitä ei tarvitse hakea manuaalisesti.

Emme myöskään suosittele VPN-latauksen suorittamista käyttämällä vain FQDN:iä; käyttämällä sekä FQDN:iä että IP-osoitteita funktiossa auttaa määrittämään tämän kuormituksen käytön rajoitettuun päätepistejoukkoon, mukaan lukien Teams-tapahtumat. Tapa, jolla funktio on jäsennetty, johtaa DNS-haun määritykseen FQDN:lle, joka vastaa suoraan asiakkaan luetteloimia, eli jäljellä olevien nimitilojen DNS-selvitys pysyy muuttumattomana.

3. Määritä reititys VPN:ssä suoran lähtevän liikenteen mahdollistamiseksi

Viimeinen vaihe on lisätä suora reitti Teams-tapahtuman IPS:lle, joka on kuvattu kohdassa CdN-päätepisteiden nykyisten luetteloiden kerääminen VPN-määritykseen, jotta liikennettä ei lähetetä pakotetun tunnelin kautta VPN:ään. Yksityiskohtaisia tietoja siitä, miten tämä tehdään Microsoft 365:n optimoinnin päätepisteille, on Osiossa VPN-jakotunnelin käyttöönottoMicrosoft 365:ssä. Prosessi on täsmälleen sama tässä asiakirjassa luetelluissa Teams-tapahtumien IPS:ssä.

Huomautus

Vpn-määrityksessä tulee käyttää vain CDN-päätepisteiden nykyisten luetteloiden keräämisen (ei FQDN:n) PIKA-ilmoituksia.

Usein kysytyt kysymykset

Lähettääkö tämä kaiken liikenteen palveluun suoraan?

Ei, tämä lähettää viiveherkän suoratoistoliikenteen Suoraan Teams-tapahtuman osallistujalle, mikä tahansa muu liikenne jatkaa VPN-tunnelin käyttöä, jos he eivät ratkaise julkaistuja IPS:iä.

Täytyykö minun käyttää IPv6-osoitteita?

Ei, yhteys voi olla IPv4 vain tarvittaessa.

Miksi näitä IP-osoitteita ei julkaista Microsoft 365:n URL-osoitteessa/IP-palvelussa?

Microsoft hallitsee tiukasti palvelun tietojen muotoa ja tyyppiä varmistaakseen, että asiakkaat voivat käyttää tietoja luotettavasti suojatun ja optimaalisen reitityksen käyttöönottoon päätepisteluokan perusteella.

Oletuspäätepisteluokassa ei ole IP-tietoja useista syistä (oletuspäätepisteet saattavat olla Microsoftin hallinnan ulkopuolella, ne saattavat muuttua liian usein tai ne saattavat olla lohkoissa, jotka on jaettu muiden elementtien kanssa). Tästä syystä oletuspäätepisteet on suunniteltu lähetettäväksi FQDN:n kautta tarkastavalle välityspalvelimelle, kuten normaalille verkkoliikenteelle.

Tässä tapauksessa yllä olevat päätepisteet ovat CDN-tunnuksia, joita muut kuin Microsoftin hallitsemat elementit, paitsi Teams-tapahtumat, saattavat käyttää, joten liikenteen lähettäminen suoraan tarkoittaa myös kaikkea muuta, mikä johtaa näihin internet-pyyntöihin, lähetetään suoraan asiakkaalta. Nykyisen maailmanlaajuisen kriisin ainutlaatuisen luonteen ja asiakkaidemme lyhyen aikavälin tarpeiden täyttämiseksi Microsoft on toimittanut yllä olevat tiedot, joita asiakkaat voivat käyttää haluamallaan tavalla.

Microsoft pyrkii määrittämään Teams-tapahtumien päätepisteet uudelleen niin, että ne voidaan sisällyttää päätepisteluokkiin Salli/Optimoi tulevaisuudessa.

Onko minun sallittava vain näiden IP:iden käyttö?

Ei. Palvelun toiminnan kannalta on tärkeää käyttää kaikkia pakollisia merkittyjä päätepisteitä asianmukaiselle ympäristölle.

Mitä skenaarioita tämä neuvo kattaa?

  1. Teams-sovelluksessa tuotetut live-tapahtumat
  2. Ulkoisen laitteen (koodaustoiminnon) tuottamat tapahtumat
  3. Teamsin kaupungintalo

Kattaako tämä neuvo esittäjäliikenteen?

Se ei; edellä mainittu neuvo koskee vain tapahtumaan osallistuvia. Kun esittäjä esittää tietoja Teamsissa, esittäjän liikenne virtaa Url/IP-palvelurivillä 11 lueteltuihin Optimoi merkityt UDP-päätepisteet ja yksityiskohtaiset VPN-kuormituksen purkuohjeet on kuvattu Toteuta VPN-jakotunneli -osiossa Microsoft 365:n VPN-jakotunnelin käyttöönotto-osiossa.

Yleiskatsaus: VPN-tunneloinnin jakaminen Microsoft 365:lle

VPN:n jakotunnelin toteuttaminen Microsoft 365:lle

Microsoft 365:n yleiset VPN-jakotunnelin skenaariot

Teamsin medialiikenteen suojaaminen VPN-jakotunnelointipalvelua varten

Microsoft 365:n suorituskyvyn optimointi Kiinan käyttäjille

Microsoft 365:n verkkoyhteysperiaatteet

Microsoft 365:n verkkoyhteyden arviointi

Microsoft 365 -verkko ja suorituskyvyn säätö

Vaihtoehtoisia tapoja tietoturva-ammattilaisille ja IT-asiantuntijoille modernin suojauksen hallinnan aikaansaamiseksi tämän päivän ainutlaatuisissa etätyötilanteissa (Microsoftin tietoturvatiimin blogi)

VPN-suorituskyvyn parantaminen Microsoftilla: Windows 10 VPN-profiilien käyttäminen automaattisten yhteyksien sallimiseen

Vpn:n käyttö: Miten Microsoft pitää etätyövoimansa yhteydessä

Microsoftin yleinen verkko