שתף באמצעות


שיקולים מיוחדים עבור אירועי Stream ו- Teams בסביבות VPN

הערה

מאמר זה מהווה חלק מקבוצת מאמרים השולחים מיטוב של Microsoft 365 למשתמשים מרוחקים.

תעבורת משתתפים באירועים בשידור חי של Microsoft 365 (כולל משתתפים באירועים בשידור חי המיוצרים על-ידי Teams, ובאירועים המופקים באמצעות מקודד חיצוני דרך Teams, Stream או Viva Engage), תעבורת המשתתפים העירייה של Microsoft Teams ותעבורה לפי דרישה של משתתפים ב- Stream מחולקים כעת לקטגוריות כברירת מחדל לעומת מיטוב ברשימת כתובות ה- URL/IP עבור השירות. נקודות קצה אלה מחולקות לקטגוריות כברירת מחדל מאחר שהן מתארחות ברשתות CDN שעשויות גם לשמש שירותים אחרים. בדרך כלל, לקוחות מעדיפים לשרת Proxy מסוג זה של תעבורה ולהחיל רכיבי אבטחה העשויים בדרך כלל להסתיים ב נקודות קצה כגון אלה.

לקוחות רבים ביקשו נתוני כתובת URL/IP הדרושים לחיבור המשתתפים שלהם לאירועי Stream או Teams ישירות מחיבור האינטרנט המקומי שלהם, במקום לנתב את התעבורה בעלת נפח גבוה ורגישת השהיה באמצעות תשתית ה- VPN. בדרך כלל, לא ניתן לעשות זאת ללא מרחבי שמות ייעודיים ומידע IP מדויק עבור נקודות הקצה, אשר אינו מסופק עבור נקודות קצה של Microsoft 365 המסווגות כברירת מחדל.

השתמש בשלבים הבאים כדי לאפשר קישוריות ישירה עבור שירותי האירועים של Stream או Teams מהלקוחות באמצעות VPN של מנהרה כפויה. פתרון זה נועד לספק ללקוחות אפשרות להימנע מניתוב תעבורת משתתפים באירועים דרך VPN כאשר קיימת תעבורת רשת גבוהה עקב תרחישי עבודה מהבית. אם הדבר אפשרי, מומלץ לגשת לשירות באמצעות Proxy בודק.

הערה

באמצעות פתרון זה, עשויים להיות רכיבי שירות שאינם מפוענים לכתובות ה- IP שסופקו ולכן עשויים לכלול את ה- VPN, אך כמות גדולה של תעבורה בנפח גבוה, כגון נתוני זרימה, אמורה לכלול. ייתכן שקיימים רכיבים אחרים מחוץ לטווח של אירועים בשידור חי/זרם שנתפסים על-ידי מטען זה, אך הם אמורים להיות מוגבלים מאחר שהם חייבים לעמוד הן ב- FQDN והן במשחק ה- IP לפני שהם עומדים בדרישות ישירות.

חשוב

מומלץ לשקול את הסיכון לשליחת תעבורה נוספת העוקפת את ה- VPN על-פני השגת הביצועים עבור אירועים בשידור חי.

כדי ליישם את חריגת מנהרה כפויה עבור אירועים וזרימה של Teams, יש להחיל את השלבים הבאים:

1. קביעת תצורה של רזולוציית DNS חיצונית

לקוחות זקוקים לרזולוציית DNS חיצונית רקורסיבית כדי להיות זמינים כך שניתן יהיה לזהות את שמות המארחים הבאים לכתובות IP.

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

*.azureedge.net משמש עבור אירועי Stream (קבע תצורה של מקודדים לזרימה חיה ב- Microsoft Stream - Microsoft Stream | Microsoft Docs).

*.media.azure.net ו- *.bmc.cdn.office.net משמשים עבור אירועים בשידור חי המיוצרים על-ידי Teams (אירועי התחלה מהירה RTMP-In נתמכים) המתוזמנת מלקוח Teams.

*.media.azure.net, *.bmc.cdn.office.netו- *.ml.cdn.office.net משמשים לאירועי העירייה של Teams.

חלק מ נקודות קצה אלה משותפות עם רכיבים אחרים מחוץ לאירועי Stream או Teams. איננו ממליצים להשתמש רק ב- FQDN אלה כדי לקבוע את התצורה של ההורדת VPN גם אם מבחינה טכנית אפשרית בפתרון ה- VPN שלך (לדוגמה, אם הוא פועל ב- FQDN ולא ב- IP).

FQDN אינם נדרשים בתצורה של ה- VPN, הם לשימוש רק בקבצי PAC בשילוב עם ה- IP כדי לשלוח את התעבורה הרלוונטית ישירות.

2. יישום שינויים בקובץ PAC (כאשר נדרש)

עבור ארגונים שמשתמשים בקובץ PAC כדי לנתב תעבורה דרך Proxy בזמן השימוש ב- VPN, הדבר מושג בדרך כלל באמצעות שמות FQDN. עם זאת, עם Stream/Live Events/Town hall, שמות המארחים שסופקו מכילים תווים כלליים כגון *.azureedge.net, אשר כוללים גם רכיבים אחרים שעבורם לא ניתן לספק לוחות IP מלאים. לכן, אם הבקשה נשלחת ישירות בהתבסס על התאמה של תווים כלליים של DNS בלבד, התעבורה אל נקודות קצה אלה תיחסם מאחר שאין דרך הנתיב הישיר עבורה בשלב 3 בהמשך מאמר זה.

כדי לפתור בעיה זו, אנו יכולים לספק את ה- IP הבאים ולהשתמש בהם בשילוב עם שמות המארחים בקובץ PAC לדוגמה, כמתואר בשלב 1. קובץ PAC בודק אם כתובת ה- URL תואמת לאלה המשמשים עבור Stream/Live Events/Town hall ולאחר מכן, הוא גם בודק אם כתובת ה- IP שהוחזרה מבדיקת מידע של DNS תואמת לאלה שסופקו עבור השירות. אם שניהם תואמים, התנועה מנותב ישירות. אם אחד מהרכיבים (FQDN/IP) אינו תואם, התעבורה נשלחת אל ה- Proxy. כתוצאה מכך, התצורה מבטיחה שכל דבר שיפתר ל- IP מחוץ לטווח של ה- IP ומרווחי השמות המוגדרים יפלג את ה- Proxy באמצעות ה- VPN כרגיל.

איסוף הרשימות הנוכחיות של נקודות קצה של CDN

אירועי Teams משתמשים בכמה ספקי CDN כדי להזרים ללקוחות, כדי לספק את הכיסוי, האיכות והתאימות הטובים ביותר. בשלב זה, נעשה שימוש הן ב- Azure CDN מ- Microsoft והן מ- Verizon. עם הזמן ניתן לשנות זאת עקב מצבים כגון זמינות אזורית. מאמר זה הוא מקור המאפשר לך להתעדכן בטווחי IP.

עבור Azure CDN מ- Microsoft, באפשרותך להוריד את הרשימה מהורדת Azure IP Ranges ותגיות שירות – ענן ציבורי ממרכז ההורדות הרשמי של Microsoft - תצטרך לחפש באופן ספציפי את תגית השירות AzureFrontdoor.Frontend ב- JSON; addressPrefixes יציג את רשתות המשנה IPv4/IPv6. עם הזמן כתובות ה- IP ישתנו, אך רשימת תגי השירות תמיד מתעדכנת לפני השימוש בהן.

עבור Azure CDN מ- Verizon (Edgecast), תוכל למצוא רשימה ממצה באמצעות צמתי קצה - רשימה (בחר נסה זאת ) - תצטרך לחפש באופן ספציפי את Premium_Verizon הבא. שים לב שממשק API זה מציג את כל הודעות ה- IP של Edgecast (מקור ו- Anycast). בשלב זה אין מנגנון שבו ה- API מבחין בין המקור לבין Anycast.

כדי ליישם זאת בקובץ PAC, באפשרותך להשתמש בדוגמה הבאה ששולחת את ישיר מיטוב התעבורה של Microsoft 365 (מומלץ להשתמש ב- FQDN, ובתעבורה הקריטית Stream/Live Events ישירות דרך שילוב של ה- FQDN וכתובת ה- IP המוחזרת. יש לערוך את שם מציין המיקום Contoso לשם הדייר הספציפי שלך שבו מקור contoso contoso.onmicrosoft.com

קובץ PAC לדוגמה

להלן דוגמה של אופן ההפקה של קבצי PAC:

  1. שמור את קובץ ה- Script שלהלן בדיסק הקשיח המקומי Get-TLEPacFile.ps1.

  2. עבור אל כתובת ה- URL של Verizon והורד את ה- JSON המתוצא (העתק אותו לקובץ כגון cdnedgenodes.json)

  3. העבר את הקובץ לאותה תיקיה שבה נמצא קובץ ה- Script.

  4. בחלון PowerShell, הפעל את הפקודה הבאה. שנה את שם הדייר עבור פריט אחר אם אתה מעוניין בכתובות ה- URL של SPO. זהו סוג 2, לכן מיטוב ואפשר (סוג 1 הוא מיטוב בלבד).

    .\Get-TLEPacFile.ps1 -Instance Worldwide -Type 2 -TenantName <contoso> -CdnEdgeNodesFilePath .\cdnedgenodes.json -FilePath TLE.pac
    
  5. הקובץ TLE.pac יכיל את כל מרחבי השמות וה- 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
}

קובץ ה- Script ינתח באופן אוטומטי את רשימת ה- Azure בהתבסס על כתובת ה- URL והמפתחות להורדה ליד AzureFrontDoor.Frontend, כך שאין צורך לקבל זאת באופן ידני.

שוב, איננו ממליצים לבצע העברת VPN באמצעות FQDN פשוט; ניצול שמות ה - FQDN וכתובות ה- IP בפונקציה עוזר להתאים את השימוש בהעלבה זו לקבוצה מוגבלת של נקודות קצה, כולל אירועים בשידור חי/זרם. האופן שבו הפונקציה מובנית תגרום לביצוע בדיקת מידע של DNS עבור ה- FQDN התואם לאלה המפורטים ישירות על-ידי הלקוח, כלומר זיהוי DNS של מרחבי השמות הנותרים נשאר ללא שינוי.

אם ברצונך להגביל את הסיכון להורדת נקודות קצה שלא קשורות לאירועי Teams ול- Stream, באפשרותך להסיר את התחום *.azureedge.net מהתצורה שבה נמצא רוב הסיכון, מאחר שזהו תחום משותף המשמש עבור כל לקוחות ה- CDN של Azure. הירידה בכך היא כי כל אירוע שמשתמש בקידוד חיצוני המופעל באמצעות Stream לא יהיה ממוטב, אך אירועים המופקים/מאורגנים בתוך Teams יהיו.

3. קביעת תצורה של ניתוב ב- VPN כדי לאפשר יציאה ישירה

השלב האחרון הוא להוסיף נתיב ישיר עבור כתובות IP של אירוע Teams המתוארות באיסוף הרשימות הנוכחיות של נקודות קצה של CDN לתצורות ה- VPN כדי להבטיח שהתעבורה לא תישלח דרך מנהרת הכפייה לתוך ה- VPN. ניתן למצוא מידע מפורט על האופן שבו ניתן לעשות זאת עבור נקודות קצה של מיטוב Microsoft 365 במקטע יישום מנהור פיצול של VPN של יישום מנהור פיצול של VPN עבור Microsoft 365. התהליך זהה בדיוק עבור ה- IP של אירועי Stream או Teams המפורטים במסמך זה.

שים לב שרק כתובות ה- IP (לא FQDN) מאיסוף הרשימות הנוכחיות של נקודות קצה של CDN יש להשתמש עבור תצורת VPN.

שאלות נפוצות

האם זה ישלח את כל התנועה שלי לשירות ישירות?

לא, פעולה זו תשלח את תעבורת הזרימה תלוית ההשהיה עבור אירוע Teams או וידאו ב- Stream ישירות, כל תעבורה אחרת תמשיך להשתמש במנהרת ה- VPN אם הם לא ייפתרו ל- IP שפורסמו.

האם עליי להשתמש בכתובות IPv6?

לא, הקישוריות יכולה להיות IPv4 רק אם הדבר נדרש.

מדוע כתובות IP אלה אינן מפורסמו בשירות כתובת ה- URL/IP של Microsoft 365?

Microsoft כוללת פקדים קפדניים מסביב לתבנית ולסוג המידע הקיימים בשירות כדי להבטיח שלקוחות יוכלו להשתמש במידע באופן מהימן כדי ליישם ניתוב מאובטח ואופטימלי בהתבסס על קטגוריית נקודת קצה.

קטגוריית נקודת הקצה המהווה ברירת מחדל אינה כוללת מידע IP המסופק מהסיבות הרבות (ייתכן ש נקודות קצה המהוות ברירת מחדל נמצאות מחוץ לבקרה של Microsoft, עשויות להשתנות בתדירות גבוהה מדי או להיכלל בבלוקים המשותפים עם רכיבים אחרים). מסיבה זו, נקודות קצה המהוות ברירת מחדל מיועדות להישלח באמצעות FQDN ל- Proxy בודק, כגון תעבורת אינטרנט רגילה.

במקרה זה, נקודות הקצה שלעיל הן רשתות CDN שעשויות לשמש רכיבים שאינם מבוקרים על-ידי Microsoft שאינם אירועים בשידור חי או Stream, ולכן שליחת התעבורה ישירה פירושה גם כל דבר אחר שמפוען ל- IPs אלה יישלח גם ישירות מהלקוח. בשל אופיו הייחודי של המשבר הגלובלי הנוכחי ולעמוד בצרכים לטווח קצר של הלקוחות שלנו, Microsoft סיפקה את המידע לעיל כדי שלקוחות ישתמשו בו כפי שהם רואים לנכון.

Microsoft פועלת לקבוע מחדש את התצורה של נקודות הקצה של אירועי Teams כדי לאפשר לכלול אותן בקטגוריות של נקודות הקצה 'אפשר/מיטוב' בעתיד.

האם עלי לאפשר גישה רק ל- IPs אלה?

לא, הגישה לכל נקודות הקצה המסומנות הנדרשות בשירות כתובת ה- URL/IP חיונית להפעלת השירות. בנוסף, נדרשת כל נקודת קצה אופציונלית המסומנת עבור Stream (מזהה 41-45).

אילו תרחישים תכיסוי עצה זו?

  1. אירועים בשידור חי המופקים בתוך האפליקציה Teams
  2. הצגת תוכן מתארח של Stream
  3. אירועים המופקים על-ידי התקן חיצוני (מקודד)
  4. העירייה של Teams

האם עצה זו מכסה את תעבורת המציג?

זה לא , זה לא . העצה לעיל היא אך ורק עבור אלה הצורכים את השירות. הצגה מתוך Teams תראה את תעבורת המציג זורמת אל נקודות הקצה המסומנות של מיטוב UDP המפורטות בשורה 11 של שירות IP/כתובת URL עם עצות מפורטות של העברת VPN המתוארות במקטע 'יישום מנהרה מפוצלת של VPN ' של יישום מנהרה מפוצלת של VPN עבור Microsoft 365.

האם תעבורת קביעת תצורה זו שאינה העירייה, אירועים בשידור חי & Stream נשלחים ישירות?

כן, עקב FQDN משותפים המשמשים עבור חלק מהרכיבים של השירות, פעולה זו אינה נמנעת. תעבורה זו נשלחת בדרך כלל באמצעות Proxy ארגוני שיכול להחיל בדיקה. בתרחיש של מנהרה מפוצלת של VPN, שימוש הן בשם ה- FQDN והן ב- IP יכוכו את הסיכון למינימום, אך הוא עדיין יהיה קיים. לקוחות יכולים להסיר את התחום *.azureedge.net מתצורות ההעלמה ולהפחית סיכון זה למינימום, אך פעולה זו תסיר את ההעלמה של אירועים בשידור חי הנתמכים על-ידי Stream (אירועים מתוזמנים של Teams, אירועי קידוד של Stream, אירועי Viva Engage המופקים ב- Teams, אירועי קידוד של Stream המתוזמנת ב- Viva Engage ו- Stream אירועים מתוזמנים או הצגה לפי דרישה מ- Stream). אירועים המתוזמנת והופקו ב- Teams (כולל העירייה) אינם מושפעים.

מבט כולל: מנהרה מפוצלת של VPN עבור Microsoft 365

יישום מנהרה מפוצלת של VPN עבור Microsoft 365

תרחישים נפוצים של מנהרות פיצול VPN עבור Microsoft 365

אבטחה לתעבורת Teams עבור מינהור פיצול VPN

מיטוב הביצועים של Microsoft 365 עבור משתמשי סין

עקרונות קישוריות הרשת של Microsoft 365

הערכת קישוריות רשת של Microsoft 365

כוונון רשת וביצועים של Microsoft 365

דרכים חלופיות למומחי אבטחה ול- IT להשיג בקרות אבטחה מודרניות בתרחישי העבודה מרחוק הייחודיים של היום (בלוג של צוות האבטחה של Microsoft)

שיפור ביצועי ה- VPN ב- Microsoft: Windows 10 בפרופילי VPN מרובים כדי לאפשר חיבורי הפעלה אוטומטית

פועל ב- VPN: כיצד Microsoft שומרת על חיבור כוח העבודה המרוחק שלה

רשת גלובלית של Microsoft