共用方式為


如何搭配自訂 DNS 伺服器來使用工作區

使用具有私人端點的 Azure Machine Learning 工作區時 (包括 Azure AI 中樞),有數種方式可處理 DNS 名稱解析。 根據預設,Azure 會自動為您的工作區和私人端點處理名稱解析。 如果您改為使用自己的自訂 DNS 伺服器,您必須手動建立 DNS 專案或使用工作區的條件轉寄站。

重要

如果您想要在 DNS 解決方案中手動註冊 DNS 記錄,本文將說明如何尋找這些專案的完整網域名稱 (FQDN) 和 IP 位址。 此外,本文提供的架構建議說明如何設定您的自訂 DNS 解決方案,以自動將 FQDN 解析為正確的 IP 位址。 本文不會提供設定這些項目的 DNS 記錄的相關資訊。 如需有關如何新增記錄的詳細資訊,請參閱您的 DNS 軟體文件。

必要條件

自動化 DNS 伺服器整合

簡介

有兩個常見的架構可使用自動化 DNS 伺服器與 Azure Machine Learning 整合:

雖然您的架構可能與這些範例不同,但您可以使用其作為參考點。 這兩個範例架構都提供疑難排解步驟,可協助您識別可能設定錯誤的元件。

另一個選項是修改hosts用戶端上的檔案,以連線到包含工作區的 Azure 虛擬網絡 (虛擬網路) 。 如需詳細資訊,請參閱主機檔案一節。

工作區 DNS 解析路徑

透過 Private Link 存取指定的 Azure 機器學習 工作區,是透過與下列完整網域通訊來完成(稱為工作區 FQDN):

重要

如果您使用中樞工作區(包括 Azure AI Foundry 中樞),則您有從中樞建立之每個專案工作區的其他專案。

Azure 公用區域

  • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.azureml.ms
  • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.cert.api.azureml.ms
  • <compute instance name>.<region the workspace was created in>.instances.azureml.ms
  • <compute instance name>-22.<region the workspace was created in>.instances.azureml.ms - 命令用來 az ml compute connect-ssh 連線到專用虛擬網路中的計算。
  • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.azure.net
  • <managed online endpoint name>.<region>.inference.ml.azure.com - 更新受控線上端點

提示

如果您使用中樞工作區,則從中樞工作區建立的每個專案工作區也有下列 FQDN

  • <project workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.azureml.ms
  • <project workspace globally-unique identifier>.workspace.<region the workspace was created in>.cert.api.azureml.ms
  • ml-<project workspacename, truncated>-<region>-<project workspace globally-unique identifier>.<region>.notebooks.azure.net

由 21Vianet 營運的 Microsoft Azure 區域

  • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.cn
  • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.cert.api.ml.azure.cn
  • <compute instance name>.<region the workspace was created in>.instances.azureml.cn
  • <compute instance name>-22.<region the workspace was created in>.instances.azureml.cn - 命令用來 az ml compute connect-ssh 連線到專用虛擬網路中的計算。
  • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.chinacloudapi.cn
  • <managed online endpoint name>.<region>.inference.ml.azure.cn - 更新受控線上端點

提示

如果您使用中樞工作區,則從中樞工作區建立的每個專案工作區也有下列 FQDN

  • <project workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.cn
  • <project workspace globally-unique identifier>.workspace.<region the workspace was created in>.cert.api.ml.azure.cn
  • ml-<project workspace name, truncated>-<region>-<project workspace globally-unique identifier>.<region>.notebooks.chinacloudapi.cn

Azure 美國政府區域

  • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.us
  • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.cert.api.ml.azure.us
  • <compute instance name>.<region the workspace was created in>.instances.azureml.us
  • <compute instance name>-22.<region the workspace was created in>.instances.azureml.us - 命令用來 az ml compute connect-ssh 連線到專用虛擬網路中的計算。
  • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.usgovcloudapi.net
  • <managed online endpoint name>.<region>.inference.ml.azure.us - 更新受控線上端點

提示

如果您使用中樞工作區,則從中樞工作區建立的每個專案工作區也有下列 FQDN

  • <project workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.us
  • <project workspace globally-unique identifier>.workspace.<region the workspace was created in>.cert.api.ml.azure.us
  • ml-<project workspace name, truncated>-<region>-<project workspace globally-unique identifier>.<region>.notebooks.usgovcloudapi.net

完整網域名稱會解析為下列正式名稱 (CNAME) 稱為工作區 Private Link FQDN:

Azure 公用區域

  • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.privatelink.api.azureml.ms
  • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.privatelink.notebooks.azure.net
  • <managed online endpoint name>.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms - 更新受控線上端點

由 21Vianet 營運的 Azure 區域

  • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.privatelink.api.ml.azure.cn
  • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.privatelink.notebooks.chinacloudapi.cn
  • <managed online endpoint name>.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.ml.azure.cn - 更新受控線上端點

Azure 美國政府區域

  • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.privatelink.api.ml.azure.us
  • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.privatelink.notebooks.usgovcloudapi.net
  • <managed online endpoint name>.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.ml.azure.us - 更新受控線上端點

FQDN 會解析為該區域中 Azure Machine Learning 工作區的 IP 位址。 不過,您可以使用虛擬網路中裝載的自訂 DNS 伺服器來覆寫工作區 Private Link FQDN 的解析。 如需此架構的範例,請參閱 虛擬網路 範例中裝載的自定義 DNS 伺服器。 針對中樞和專案工作區,所有專案工作區的 FQDN 都會解析為中樞工作區的 IP 位址。

注意

受控線上端點會共用工作區私人端點。 如果您要手動將 DNS 記錄新增至私人 DNS 區域 privatelink.api.azureml.ms,則應該新增具有萬用字元 *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms 的 A 記錄,以將工作區下的所有端點路由傳送至私人端點。

手動 DNS 伺服器整合

本節討論要在 DNS 伺服器中將 A 記錄建立在哪個完整網域,以及要將 A 記錄的值設定為哪個 IP 位址。

擷取私人端點 FQDN

Azure 公用區域

若工作區位於 Azure 公用雲端中,則下列清單會包含您工作區所使用的完整網域名稱 (FQDN):

  • <workspace-GUID>.workspace.<region>.cert.api.azureml.ms

  • <workspace-GUID>.workspace.<region>.api.azureml.ms

  • ml-<workspace-name, truncated>-<region>-<workspace-guid>.<region>.notebooks.azure.net

    注意

    此 FQDN 的工作區名稱可能會被截斷。 已完成截斷以保留 ml-<workspace-name, truncated>-<region>-<workspace-guid> 63 個字元或更少。

  • <instance-name>.<region>.instances.azureml.ms

    注意

    • 您只能從虛擬網路內計算執行個體。
    • 此 FQDN 的 IP 位址是計算執行個體的 IP 位址。 相反地,請使用工作區私人端點的私人 IP 位址 (*.api.azureml.ms 項目的 IP)。
  • <instance-name>-22.<region>.instances.azureml.ms - 只有命令用來 az ml compute connect-ssh 連線到專用虛擬網路中的計算。 如果您未使用受控網路或 SSH 連線,則不需要。

  • <managed online endpoint name>.<region>.inference.ml.azure.com - 更新受控線上端點

提示

如果您使用中樞和專案工作區,則每個專案工作區都有自己的一組 FQDN。 如需詳細資訊,請參閱 工作區 DNS 名稱解析一節。

由 21Vianet 營運的 Microsoft Azure 區域

下列 FQDN 適用於由 21Vianet 營運的 Microsoft Azure 區域:

  • <workspace-GUID>.workspace.<region>.cert.api.ml.azure.cn

  • <workspace-GUID>.workspace.<region>.api.ml.azure.cn

  • ml-<workspace-name, truncated>-<region>-<workspace-guid>.<region>.notebooks.chinacloudapi.cn

    注意

    此 FQDN 的工作區名稱可能會被截斷。 已完成截斷以保留 ml-<workspace-name, truncated>-<region>-<workspace-guid> 63 個字元或更少。

  • <instance-name>.<region>.instances.azureml.cn

    • 此 FQDN 的 IP 位址是計算執行個體的 IP 位址。 相反地,請使用工作區私人端點的私人 IP 位址 (*.api.azureml.ms 項目的 IP)。
  • <instance-name>-22.<region>.instances.azureml.cn - 只有命令用來 az ml compute connect-ssh 連線到專用虛擬網路中的計算。 如果您未使用受控網路或 SSH 連線,則不需要。

  • <managed online endpoint name>.<region>.inference.ml.azure.cn - 更新受控線上端點

提示

如果您使用中樞和專案工作區,則每個專案工作區都有自己的一組 FQDN。 如需詳細資訊,請參閱 工作區 DNS 名稱解析一節。

Azure US Gov

下列 FQDN 適用於 Azure 美國政府區域:

  • <workspace-GUID>.workspace.<region>.cert.api.ml.azure.us

  • <workspace-GUID>.workspace.<region>.api.ml.azure.us

  • ml-<workspace-name, truncated>-<region>-<workspace-guid>.<region>.notebooks.usgovcloudapi.net

    注意

    此 FQDN 的工作區名稱可能會被截斷。 已完成截斷以保留 ml-<workspace-name, truncated>-<region>-<workspace-guid> 63 個字元或更少。

  • <instance-name>.<region>.instances.azureml.us

    • 此 FQDN 的 IP 位址是計算執行個體的 IP 位址。 相反地,請使用工作區私人端點的私人 IP 位址 (*.api.azureml.ms 項目的 IP)。
  • <instance-name>-22.<region>.instances.azureml.us - 只有命令用來 az ml compute connect-ssh 連線到專用虛擬網路中的計算。 如果您未使用受控網路或 SSH 連線,則不需要。

  • <managed online endpoint name>.<region>.inference.ml.azure.us - 更新受控線上端點

提示

如果您使用中樞和專案工作區,則每個專案工作區都有自己的一組 FQDN。 如需詳細資訊,請參閱 工作區 DNS 名稱解析一節。

尋找 IP 位址

若要在虛擬網路中尋找 FQDN 的內部 IP 位址,請使用下列其中一種方法:

注意

完整功能變數名稱和IP位址會根據您的組態而有所不同。 例如,功能變數名稱中的 GUID 值專屬於您的工作區。

  1. 若要取得私人端點網路介面的識別碼,請使用下列命令:

    az network private-endpoint show --name <endpoint> --resource-group <resource-group> --query 'networkInterfaces[*].id' --output table
    
  2. 若要取得工作區或中樞工作區的 IP 位址和 FQDN 資訊,請使用下列命令。 將 <resource-id> 取代為先前步驟中的 ID:

    az network nic show --ids <resource-id> --query 'ipConfigurations[*].{IPAddress: privateIPAddress, FQDNs: privateLinkConnectionProperties.fqdns}'
    

    輸出大致如下:

    [
        {
            "FQDNs": [
            "fb7e20a0-8891-458b-b969-55ddb3382f51.workspace.eastus.api.azureml.ms",
            "fb7e20a0-8891-458b-b969-55ddb3382f51.workspace.eastus.cert.api.azureml.ms"
            ],
            "IPAddress": "10.1.0.5"
        },
        {
            "FQDNs": [
            "ml-myworkspace-eastus-fb7e20a0-8891-458b-b969-55ddb3382f51.eastus.notebooks.azure.net"
            ],
            "IPAddress": "10.1.0.6"
        },
        {
            "FQDNs": [
            "*.eastus.inference.ml.azure.com"
            ],
            "IPAddress": "10.1.0.7"
        }
    ]
    
  3. 如果您使用中樞工作區,則對每個從中樞工作區建立的專案工作區使用下列步驟:

    1. 若要取得專案工作區識別碼,請使用下列命令:

      az ml workspace show --name <project-workspace-name> --resource-group <resource-group> --query 'discovery_url'
      

      傳回的值會遵循 格式 https://<project-workspace-id>.workspace.<region>.api.azureml.ms/mlflow/<version>/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.MachineLearningServices/workspaces/<project-workspace-name>

    2. workspace.<region>.api.azureml.msworkspace.<region>.cert.api.azureml.ms 結束從中樞工作區傳回的 FQDN 為例。 使用專案工作區識別碼取代這些 FQDN 開頭的 GUID 值。 這些 FQDN 是對中心工作區 FQDN 的補充。

    3. 以遵循 <workspace-name>-<region>-<GUID>.<region>.notebooks.azure.net 格式從中樞工作區傳回的 FQDN 為例。 將 GUID 值取代為專案工作區識別碼。 使用專案工作區名稱取代中樞工作區名稱。 您可能需要截斷工作區名稱,才能將此專案保留為63個字元或更少。 此 FQDN 是工作區 FQDN 的補充。

所有方法所傳回的資訊都相同;資源的 FQDN 和私人 IP 位址清單。 以下是來自 Azure 公用雲端的範例:

FQDN IP 位址
fb7e20a0-8891-458b-b969-55ddb3382f51.workspace.eastus.api.azureml.ms 10.1.0.5
fb7e20a0-8891-458b-b969-55ddb3382f51.workspace.eastus.cert.api.azureml.ms 10.1.0.5
ml-myworkspace-eastus-fb7e20a0-8891-458b-b969-55ddb3382f51.eastus.notebooks.azure.net 10.1.0.6
*.eastus.inference.ml.azure.com 10.1.0.7

下表顯示由 21Vianet 營運的 Microsoft Azure 區域的範例 IP:

FQDN IP 位址
52882c08-ead2-44aa-af65-08a75cf094bd.workspace.chinaeast2.api.ml.azure.cn 10.1.0.5
52882c08-ead2-44aa-af65-08a75cf094bd.workspace.chinaeast2.cert.api.ml.azure.cn 10.1.0.5
ml-mype-pltest-chinaeast2-52882c08-ead2-44aa-af65-08a75cf094bd.chinaeast2.notebooks.chinacloudapi.cn 10.1.0.6
*.chinaeast2.inference.ml.azure.cn 10.1.0.7

下表顯示來自 Azure 美國政府區域的範例 IP:

FQDN IP 位址
52882c08-ead2-44aa-af65-08a75cf094bd.workspace.usgovvirginia.api.ml.azure.us 10.1.0.5
52882c08-ead2-44aa-af65-08a75cf094bd.workspace.usgovvirginia.cert.api.ml.azure.us 10.1.0.5
ml-mype-plt-usgovvirginia-52882c08-ead2-44aa-af65-08a75cf094bd.usgovvirginia.notebooks.usgovcloudapi.net 10.1.0.6
*.usgovvirginia.inference.ml.azure.us 10.1.0.7

注意

受控線上端點會共用工作區私人端點。 如果您要手動將 DNS 記錄新增至私人 DNS 區域 privatelink.api.azureml.ms,則應該新增具有萬用字元 *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms 的 A 記錄,以將工作區下的所有端點路由傳送至私人端點。

在自訂 DNS 伺服器中建立 A 記錄

一旦收集 FQDN 和對應 IP 位址的清單之後,請繼續在設定的 DNS 伺服器中建立 A 記錄。 請參閱您 DNS 伺服器的文件,以判斷如何建立 A 記錄。 建議您為整個 FQDN 建立唯一區域,並在區域的根目錄中建立 A 記錄。

範例:虛擬網路中裝載的自定義 DNS 伺服器

此架構使用一般中樞和輪輻虛擬網路拓撲。 其中一個虛擬網路包含 DNS 伺服器,一個包含 Azure Machine Learning 工作區和相關聯資源的私人端點。 這兩個虛擬網路之間必須有有效的路由。 例如,透過一系列的對等互連虛擬網路。

Azure 拓撲中裝載的自訂 DNS 的圖表

下列步驟說明此拓撲的運作方式:

  1. 建立私人 DNS 區域和 DNS 伺服器虛擬網路的連結

    確保自訂 DNS 解決方案可搭配您的 Azure Machine Learning 工作區使用的第一個步驟,就是建立根目錄位於下列網域的兩個私人 DNS 區域:

    Azure 公用區域

    • privatelink.api.azureml.ms
    • privatelink.notebooks.azure.net

    由 21Vianet 營運的 Microsoft Azure 區域

    • privatelink.api.ml.azure.cn
    • privatelink.notebooks.chinacloudapi.cn

    Azure 美國政府區域

    • privatelink.api.ml.azure.us
    • privatelink.notebooks.usgovcloudapi.net

    注意

    受控線上端點會共用工作區私人端點。 如果您要手動將 DNS 記錄新增至私人 DNS 區域 privatelink.api.azureml.ms,則應該新增具有萬用字元 *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms 的 A 記錄,以將工作區下的所有端點路由傳送至私人端點。

    建立私人 DNS 區域之後,必須將其連結到 DNS 伺服器虛擬網路。 包含 DNS 伺服器的虛擬網路。

    私人 DNS 區域會覆寫區域根目錄範圍內所有名稱的名稱解析。 此覆寫會套用至私人 DNS 區域所連結的所有虛擬網路。 例如,如果 rooted at privatelink.api.azureml.ms 的 私用 DNS 區域連結至 虛擬網絡 foo,則嘗試解析bar.workspace.westus2.privatelink.api.azureml.ms之 foo 虛擬網絡 中的所有資源都會接收區域中所列privatelink.api.azureml.ms的任何記錄。

    不過,在私人 DNS 區域中列出的記錄只會傳回給使用預設 Azure DNS 虛擬伺服器 IP 位址來解析網域的裝置。 因此,自定義 DNS 伺服器會解析散佈在網路拓撲中之裝置的網域。 但自定義 DNS 伺服器必須針對 Azure DNS 虛擬伺服器 IP 位址解析 Azure 機器學習 相關網域。

  2. 建立私人端點,其私人 DNS 整合是以連結到 DNS 伺服器虛擬網路的私人 DNS 區域為目標

    下一步是建立 Azure Machine Learning 工作區的私人端點。 私人端點的目標是在步驟 1 中建立私人 DNS 區域。 此步驟可確保與工作區的所有通訊都是透過 Azure 機器學習 虛擬網絡 中的私人端點來完成。

    重要

    私人端點必須啟用私人 DNS 整合,此範例才能正確運作。

  3. 在 DNS 伺服器中建立條件轉寄站,以轉送至 Azure DNS

    接下來,建立 Azure DNS Virtual Server 的條件轉寄站。 條件轉寄站可確保 DNS 伺服器一律會針對與您工作區相關的 FQDN 來查詢 Azure DNS 的虛擬伺服器 IP 位址。 這表示 DNS 伺服器會從 私用 DNS 區域傳回對應的記錄。

    下列清單是有條件地轉送的區域。 Azure DNS 的虛擬伺服器 IP 位址為168.63.129.16:

    Azure 公用區域

    • api.azureml.ms
    • notebooks.azure.net
    • instances.azureml.ms
    • aznbcontent.net
    • inference.ml.azure.com - 更新受控線上端點

    由 21Vianet 營運的 Microsoft Azure 區域

    • api.ml.azure.cn
    • notebooks.chinacloudapi.cn
    • instances.azureml.cn
    • aznbcontent.net
    • inference.ml.azure.cn - 更新受控線上端點

    Azure 美國政府區域

    • api.ml.azure.us
    • notebooks.usgovcloudapi.net
    • instances.azureml.us
    • aznbcontent.net
    • inference.ml.azure.us - 更新受控線上端點

    重要

    此處未包含 DNS 伺服器的設定步驟,因為有許多 DNS 解決方案可用來做為自定義 DNS 伺服器。 請參閱 DNS 解決方案的文件,以瞭解如何適當地設定條件轉寄。

  4. 解決工作區網域

    到目前為止,所有設定都已完成。 現在,任何使用 DNS 伺服器進行名稱解析,並具有 Azure Machine Learning 私人端點路由的用戶端,都可以繼續存取該工作區。 用戶端會從查詢 DNS 伺服器來查詢下列 FQDN 位址開始:

    Azure 公用區域

    • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.azureml.ms
    • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.azure.net
    • <managed online endpoint name>.<region>.inference.ml.azure.com - 更新受控線上端點

    由 21Vianet 營運的 Microsoft Azure 區域

    • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.cn
    • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.chinacloudapi.cn
    • <managed online endpoint name>.<region>.inference.ml.azure.cn - 更新受控線上端點

    Azure 美國政府區域

    • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.us
    • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.usgovcloudapi.net
    • <managed online endpoint name>.<region>.inference.ml.azure.us - 更新受控線上端點
  5. Azure DNS 以遞迴方式將工作區網域解析為 CNAME

    DNS 伺服器會從 Azure DNS 的步驟 4 解析 FQDN。 Azure DNS 會回應步驟 1 中列出的其中一個網域。

  6. DNS 伺服器會從 Azure DNS 遞迴地解析工作區網域 CNAME 記錄

    DNS 伺服器會繼續以遞歸方式解析步驟 5 中收到的 CNAME。 因為步驟 3 中有條件式轉寄站設定,DNS 伺服器會將要求傳送至 Azure DNS 虛擬伺服器 IP 位址以進行解析。

  7. Azure DNS 會從私人 DNS 區域傳回記錄

    儲存在 私用 DNS 區域中的對應記錄會傳回至 DNS 伺服器,這表示 Azure DNS 虛擬伺服器會傳回私人端點的 IP 位址。

  8. 自訂 DNS 伺服器會將工作區網域名稱解析為私人端點位址

    最後,自訂 DNS 伺服器現在會將私人端點的 IP 位址傳回給步驟 4 中的用戶端。 這可確保 Azure Machine Learning 工作區的所有流量都是透過私人端點。

疑難排解

如果您無法從虛擬機存取工作區,或在虛擬網路中的計算資源上作業失敗,請使用下列步驟來識別原因:

  1. 找出私人端點上的工作區 FQDN

    使用下列其中一個連結來瀏覽至 Azure 入口網站:

    瀏覽至 Azure Machine Learning 工作區的私人端點。 工作區 FQDN 列在 [概觀] 索引標籤上。

  2. 存取虛擬網路拓撲中的計算資源

    繼續存取 Azure 虛擬網路拓撲中的計算資源。 這可能需要存取與中樞 虛擬網絡 對等互連之 虛擬網絡 中的虛擬機。

  3. 解決工作區 FQDN

    請開啟命令提示字元、殼層或 PowerShell。 然後針對每個工作區 FQDN 執行下列命令:

    nslookup <workspace FQDN>

    每個 nslookup 的結果應該都會在私人端點上傳回其中一個 (共兩個) 連線到 Azure Machine Learning 工作區的私人 IP 位址。 如果沒有,則表示自訂 DNS 解決方案中有某些設定不正確。

    可能的原因:

    • 執行疑難解答命令的計算資源未使用 DNS 伺服器進行 DNS 解析
    • 建立私人端點時所選擇的 私用 DNS 區域不會連結到 DNS 伺服器虛擬網路
    • 未正確設定條件式轉寄站至 Azure DNS 虛擬伺服器 IP

範例:裝載於內部部署中的自訂 DNS 伺服器

此架構使用一般中樞和輪輻虛擬網路拓撲。 ExpressRoute 用來從您的內部部署網路連線到中樞虛擬網路。 自訂 DNS 伺服器裝載於內部部署中。 獨立虛擬網路包含 Azure Machine Learning 工作區和相關聯資源的私人端點。 使用此拓撲時,必須有另一個虛擬網路,以裝載可將要求傳送至 Azure DNS Virtual Server IP 位址的 DNS 伺服器。

裝載於內部部署拓撲的自訂 DNS 的圖表

下列步驟說明此拓撲的運作方式:

  1. 建立私人 DNS 區域和 DNS 伺服器虛擬網路的連結

    確保自訂 DNS 解決方案可搭配您的 Azure Machine Learning 工作區使用的第一個步驟,就是建立根目錄位於下列網域的兩個私人 DNS 區域:

    Azure 公用區域

    • privatelink.api.azureml.ms
    • privatelink.notebooks.azure.net

    由 21Vianet 營運的 Microsoft Azure 區域

    • privatelink.api.ml.azure.cn
    • privatelink.notebooks.chinacloudapi.cn

    Azure 美國政府區域

    • privatelink.api.ml.azure.us
    • privatelink.notebooks.usgovcloudapi.net

    注意

    受控線上端點會共用工作區私人端點。 如果您要手動將 DNS 記錄新增至私人 DNS 區域 privatelink.api.azureml.ms,則應該新增具有萬用字元 *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms 的 A 記錄,以將工作區下的所有端點路由傳送至私人端點。

    建立 私用 DNS 區域之後,它必須連結至 DNS 伺服器虛擬網路 – 包含 DNS 伺服器的 虛擬網絡。

    注意

    虛擬網路中的 DNS 伺服器與內部部署 DNS 伺服器不同。

    私人 DNS 區域會覆寫區域根目錄範圍內所有名稱的名稱解析。 此覆寫會套用至私人 DNS 區域所連結的所有虛擬網路。 例如,如果根位於 privatelink.api.azureml.ms 的 私用 DNS 區域連結至 虛擬網絡 foo,則嘗試解析 bar.workspace.westus2.privatelink.api.azureml.ms 虛擬網絡 foo 中的所有資源都會接收 privatelink.api.azureml.ms 區域中所列的任何記錄。

    不過,在私人 DNS 區域中列出的記錄只會傳回給使用預設 Azure DNS 虛擬伺服器 IP 位址來解析網域的裝置。 Azure DNS 虛擬伺服器 IP 位址只在虛擬網路的內容中有效。 使用內部部署 DNS 伺服器時,無法查詢 Azure DNS 虛擬伺服器 IP 位址以擷取記錄。

    若要解決此行為,請在虛擬網路中建立中繼 DNS 伺服器。 此 DNS 伺服器可以查詢 Azure DNS 的虛擬伺服器 IP 位址,以擷取連結至虛擬網路的任何私人 DNS 區域的記錄。

    雖然內部部署 DNS 伺服器會解析散佈在網路拓撲中之裝置的網域,但它會針對 DNS 伺服器解析 Azure 機器學習 相關網域。 DNS 伺服器會從 Azure DNS 虛擬伺服器 IP 位址解析這些網域。

  2. 建立私人端點,其私人 DNS 整合是以連結到 DNS 伺服器虛擬網路的私人 DNS 區域為目標

    下一步是建立 Azure Machine Learning 工作區的私人端點。 私人端點的目標是在步驟 1 中建立私人 DNS 區域。 這可確保與工作區的所有通訊都是透過 Azure Machine Learning 虛擬網路中的私人端點來完成。

    重要

    私人端點必須啟用私人 DNS 整合,此範例才能正確運作。

  3. 在 DNS 伺服器中建立條件轉寄站,以轉送至 Azure DNS

    接下來,建立 Azure DNS Virtual Server 的條件轉寄站。 條件轉寄站可確保 DNS 伺服器一律會針對與您工作區相關的 FQDN 來查詢 Azure DNS 的虛擬伺服器 IP 位址。 這表示 DNS 伺服器會從 私用 DNS 區域傳回對應的記錄。

    下列清單是有條件地轉送的區域。 Azure DNS 的虛擬伺服器 IP 位址為 168.63.129.16。

    Azure 公用區域

    • api.azureml.ms
    • notebooks.azure.net
    • instances.azureml.ms
    • aznbcontent.net
    • inference.ml.azure.com - 更新受控線上端點

    由 21Vianet 營運的 Microsoft Azure 區域

    • api.ml.azure.cn
    • notebooks.chinacloudapi.cn
    • instances.azureml.cn
    • aznbcontent.net
    • inference.ml.azure.cn - 更新受控線上端點

    Azure 美國政府區域

    • api.ml.azure.us
    • notebooks.usgovcloudapi.net
    • instances.azureml.us
    • aznbcontent.net
    • inference.ml.azure.us - 更新受控線上端點

    重要

    此處未包含 DNS 伺服器的設定步驟,因為有許多 DNS 解決方案可用來做為自定義 DNS 伺服器。 請參閱 DNS 解決方案的文件,以瞭解如何適當地設定條件轉寄。

  4. 在轉送到 DNS 伺服器的內部部署 DNS 伺服器中建立條件轉寄站

    接下來,在 DNS 伺服器虛擬網路中的 DNS 伺服器中建立條件式轉寄站。 此轉寄站適用於步驟 1 中所列的區域。 這類似於步驟 3,但內部部署 DNS 伺服器是以 DNS 伺服器的 IP 位址為目標,而不是轉送至 Azure DNS 虛擬伺服器 IP 位址。 由於內部部署 DNS 伺服器不在 Azure 中,因此無法直接解析 私用 DNS 區域中的記錄。 在此情況下,DNS 伺服器 Proxy 會將來自內部部署 DNS 伺服器的要求傳送至 Azure DNS 虛擬伺服器 IP。 這可讓內部部署 DNS 伺服器在連結到 DNS 伺服器虛擬網路的私人 DNS 區域中,擷取記錄。

    下列清單是有條件地轉送的區域。 要轉寄的 IP 位址是您 DNS 伺服器的 IP 位址:

    Azure 公用區域

    • api.azureml.ms
    • notebooks.azure.net
    • instances.azureml.ms
    • inference.ml.azure.com - 更新受控線上端點

    由 21Vianet 營運的 Microsoft Azure 區域

    • api.ml.azure.cn
    • notebooks.chinacloudapi.cn
    • instances.azureml.cn
    • inference.ml.azure.cn - 更新受控線上端點

    Azure 美國政府區域

    • api.ml.azure.us
    • notebooks.usgovcloudapi.net
    • instances.azureml.us
    • inference.ml.azure.us - 更新受控線上端點

    重要

    此處未包含 DNS 伺服器的設定步驟,因為有許多 DNS 解決方案可用來做為自定義 DNS 伺服器。 請參閱 DNS 解決方案的文件,以瞭解如何適當地設定條件轉寄。

  5. 解決工作區網域

    到目前為止,所有設定都已完成。 任何使用內部部署 DNS 伺服器進行名稱解析,並具有 Azure Machine Learning 私人端點路由的用戶端,都可以繼續存取該工作區。

    用戶端會從查詢內部部署 DNS 伺服器以取得下列 FQDN 位址開始:

    Azure 公用區域

    • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.azureml.ms
    • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.azure.net
    • <managed online endpoint name>.<region>.inference.ml.azure.com - 更新受控線上端點

    由 21Vianet 營運的 Microsoft Azure 區域

    • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.cn
    • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.chinacloudapi.cn
    • <managed online endpoint name>.<region>.inference.ml.azure.cn - 更新受控線上端點

    Azure 美國政府區域

    • <per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.us
    • ml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.usgovcloudapi.net
    • <managed online endpoint name>.<region>.inference.ml.azure.us - 更新受控線上端點
  6. 內部部署 DNS 伺服器會遞迴地解析工作區網域

    內部部署 DNS 伺服器會從 DNS 伺服器的步驟 5 解析 FQDN。 因為有條件式轉寄站 (步驟 4),因此內部部署 DNS 伺服器會將要求傳送至 DNS 伺服器以進行解析。

  7. DNS 伺服器會從 Azure DNS 將工作區網域解析為 CNAME

    DNS 伺服器會從 Azure DNS 的步驟 5 解析 FQDN。 Azure DNS 會回應步驟 1 中列出的其中一個網域。

  8. 內部部署 DNS 伺服器會從 DNS 伺服器遞迴地解析工作區網域 CNAME 記錄

    內部部署 DNS 伺服器會繼續以遞歸方式解析步驟 7 中收到的 CNAME。 因為步驟 4 中有條件式轉寄站設定,因此內部部署 DNS 伺服器會將要求傳送至 DNS 伺服器以進行解析。

  9. DNS 伺服器會從 Azure DNS 遞迴地解析工作區網域 CNAME 記錄

    DNS 伺服器會繼續以遞歸方式解析步驟 7 中收到的 CNAME。 因為步驟 3 中有條件式轉寄站設定,DNS 伺服器會將要求傳送至 Azure DNS 虛擬伺服器 IP 位址以進行解析。

  10. Azure DNS 會從私人 DNS 區域傳回記錄

    儲存在 私用 DNS 區域中的對應記錄會傳回至 DNS 伺服器,這表示 Azure DNS 虛擬伺服器會傳回私人端點的 IP 位址。

  11. 內部部署 DNS 伺服器會將工作區網域名稱解析為私人端點位址

    在步驟 8 中,從內部部署 DNS 伺服器到 DNS 伺服器的查詢最後會將與私人端點相關聯的 IP 位址傳回至 Azure Machine Learning 工作區。 這些IP位址會傳回原始用戶端,而該客戶端現在會透過步驟1中設定的私人端點與 Azure 機器學習 工作區通訊。

    重要

    如果 VPN 閘道 用於此設定中,以及虛擬網路上的自定義 DNS 伺服器 IP,則必須在清單中新增 Azure DNS IP(168.63.129.16),以及維護未中斷的通訊。

範例:Hosts 檔案

hosts 檔案是 Linux、macOS 和 Windows 用來覆寫本機電腦名稱解析的文字文件。 檔案包含 IP 位址清單和對應的主機名稱。 當本機電腦嘗試解析主機名稱時,如果主機名稱列在 hosts 檔案中,則名稱會解析為對應的 IP 位址。

重要

hosts 檔案只會覆寫本機電腦的名稱解析。 如果您想要使用具有多部電腦的 hosts 檔案,您必須在每部電腦上個別修改。

下表列出 hosts 檔案的位置。

作業系統 Location
Linux /etc/hosts
macOS /etc/hosts
Windows %SystemRoot%\System32\drivers\etc\hosts

提示

檔案的名稱為 hosts,不含副檔名。 編輯檔案時,請使用系統管理員存取權。 例如,在 Linux 或 macOS 上,您可能會使用 sudo vi。 在 Windows 上,以系統管理員身分執行 [記事本]。

下列文字是 Azure 機器學習 的hosts檔案專案範例:

# For core Azure Machine Learning hosts
10.1.0.5    fb7e20a0-8891-458b-b969-55ddb3382f51.workspace.eastus.api.azureml.ms
10.1.0.5    fb7e20a0-8891-458b-b969-55ddb3382f51.workspace.eastus.cert.api.azureml.ms
10.1.0.6    ml-myworkspace-eastus-fb7e20a0-8891-458b-b969-55ddb3382f51.eastus.notebooks.azure.net

# For a managed online/batch endpoint named 'mymanagedendpoint'
10.1.0.7    mymanagedendpoint.eastus.inference.ml.azure.com

# For a compute instance named 'mycomputeinstance'
10.1.0.5    mycomputeinstance.eastus.instances.azureml.ms

如需 hosts 檔案的詳細資訊,請參閱 https://wikipedia.org/wiki/Hosts_(file)

相依性服務 DNS 解析

工作區所仰賴的服務可能也受到私人端點保護。 如果是,您可能需要建立自定義 DNS 記錄,如果您需要直接與服務通訊。 例如:若希望直接使用工作區所用 Azure 儲存體帳戶中的資料。

注意

某些服務具有多個子服務或功能的私用端點。 例如,Azure 儲存體帳戶可能有 Blob、檔案和 DFS 的個別私人端點。 若必須同時存取 Blob 和檔案儲存體,則須為每個特定的私人端點啟用解析。

如需服務和 DNS 解析的詳細資訊,請參閱 Azure 私人端點 DNS 設定

疑難排解

如果在執行上述步驟之後,您無法從虛擬機存取工作區,或作業在包含 Azure 機器學習 工作區私人端點的 虛擬網絡 計算資源失敗,請遵循下列步驟來嘗試找出原因。

  1. 找出私人端點上的工作區 FQDN

    使用下列其中一個連結來瀏覽至 Azure 入口網站:

    瀏覽至 Azure Machine Learning 工作區的私人端點。 工作區 FQDN 列在 [概觀] 索引標籤上。

  2. 存取虛擬網路拓撲中的計算資源

    繼續存取 Azure 虛擬網路拓撲中的計算資源。 這可能需要存取與中樞 虛擬網絡 對等互連之 虛擬網絡 中的虛擬機。

  3. 解決工作區 FQDN

    請開啟命令提示字元、殼層或 PowerShell。 然後針對每個工作區 FQDN 執行下列命令:

    nslookup <workspace FQDN>

    每個 nslookup 的結果應該都會在私人端點上產生其中一個 (共兩個) 連線到 Azure Machine Learning 工作區的私人 IP 位址。 如果沒有,則表示自訂 DNS 解決方案中有某些設定不正確。

    可能的原因:

    • 執行疑難解答命令的計算資源未使用 DNS 伺服器進行 DNS 解析
    • 建立私人端點時所選擇的 私用 DNS 區域不會連結到 DNS 伺服器虛擬網路
    • 未正確設定從 DNS 伺服器到 Azure DNS 虛擬伺服器 IP 的條件式轉寄站
    • 未正確設定從內部部署 DNS 伺服器到 DNS 伺服器的條件式轉寄站

如需將私人端點整合至 DNS 設定的詳細資訊,請參閱 Azure 私人端點 DNS 設定