如何搭配自訂 DNS 伺服器來使用工作區
使用具有私人端點的 Azure Machine Learning 工作區時 (包括 Azure AI 中樞),有數種方式可處理 DNS 名稱解析。 根據預設,Azure 會自動為您的工作區和私人端點處理名稱解析。 如果您改為使用自己的自訂 DNS 伺服器,您必須手動建立 DNS 專案或使用工作區的條件轉寄站。
重要
如果您想要在 DNS 解決方案中手動註冊 DNS 記錄,本文將說明如何尋找這些專案的完整網域名稱 (FQDN) 和 IP 位址。 此外,本文提供的架構建議說明如何設定您的自訂 DNS 解決方案,以自動將 FQDN 解析為正確的 IP 位址。 本文不會提供設定這些項目的 DNS 記錄的相關資訊。 如需有關如何新增記錄的詳細資訊,請參閱您的 DNS 軟體文件。
必要條件
- 使用您自己的 DNS 伺服器的 Azure 虛擬網路。
具有私人端點的 Azure Machine Learning 工作區,包括中樞工作區,例如 Azure AI Studio 所使用的工作區。 如需詳細資訊,請參閱建立 Azure Machine Learning 工作區。
如果您的工作區相依性資源受到 Azure 虛擬網路保護,請熟悉訓練和推斷期間的網路隔離一文。
- 具有私人端點的 Azure Machine Learning 工作區。 如需詳細資訊,請參閱建立 Azure Machine Learning 工作區。
- 熟悉使用在定型和推斷期間使用網路隔離。
熟悉 Azure 私人 DNS
(選用) Azure CLI 或 Azure PowerShell。
自動化 DNS 伺服器整合
簡介
有兩個常見的架構可使用自動化 DNS 伺服器與 Azure Machine Learning 整合:
- 裝載於 Azure 虛擬網路中的自訂 DNS 伺服器。
- 裝載於內部部署的自訂 DNS 伺服器,透過 ExpressRoute 連線到 Azure Machine Learning。
雖然您的架構可能與這些範例不同,但您可以使用其作為參考點。 這兩個範例架構都提供疑難排解步驟,可協助您識別可能設定錯誤的元件。
另一個選項是在用戶端上修改 hosts
檔案,其會連接至包含您工作區的 Azure 虛擬網路 (VNet)。 如需詳細資訊,請參閱主機檔案一節。
工作區 DNS 解析路徑
透過 Private Link 來存取指定的 Azure Machine Learning 工作區,其方式是使用下列完整網域進行通訊 (稱為工作區 FQDN) 如下所示:
重要
如果使用的是中樞工作區 (包括 Azure AI Studio 中心),則從該中樞建立的每個專案工作區都有額外項目。
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 的解析。 如需此架構的範例,請參閱裝載於 vnet 範例中的自訂 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)。
- 此 FQDN 的 IP 位址不是計算執行個體的 IP 位址。 相反地,請使用工作區私人端點的私人 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)。
- 此 FQDN 的 IP 位址不是計算執行個體的 IP 位址。 相反地,請使用工作區私人端點的私人 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 位址
若要尋找 VNet 中 FQDN 的內部 IP 位址,請使用下列其中一種方法:
注意
完整網域名稱和 IP 位址會根據您的設定而有所不同。 例如,網域名稱中的 GUID 值將會是您的工作區所特有。
若要取得私人端點網路介面的識別碼,請使用下列命令:
az network private-endpoint show --name <endpoint> --resource-group <resource-group> --query 'networkInterfaces[*].id' --output table
若要取得工作區或中樞工作區的 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" } ]
如果您使用中樞工作區,則對每個從中樞工作區建立的專案工作區使用下列步驟:
若要取得專案工作區識別碼,請使用下列命令:
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>
。以
workspace.<region>.api.azureml.ms
和workspace.<region>.cert.api.azureml.ms
結束從中樞工作區傳回的 FQDN 為例。 使用專案工作區識別碼取代這些 FQDN 開頭的 GUID 值。 這些 FQDN 是對中心工作區 FQDN 的補充。以遵循
<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.chinaeast2.api.ml.azure.us |
10.1.0.5 |
52882c08-ead2-44aa-af65-08a75cf094bd.workspace.chinaeast2.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 記錄。
範例:裝載於 VNet 中的自訂 DNS 伺服器
此架構使用一般中樞和輪輻虛擬網路拓撲。 其中一個虛擬網路包含 DNS 伺服器,一個包含 Azure Machine Learning 工作區和相關聯資源的私人端點。 這兩個虛擬網路之間必須有有效的路由。 例如,透過一系列的對等互連虛擬網路。
下列步驟說明此拓撲的運作方式:
建立私人 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 區域根目錄位於
privatelink.api.azureml.ms
並連結至虛擬網路 foo,則虛擬網路 foo 中嘗試解析bar.workspace.westus2.privatelink.api.azureml.ms
的所有資源都會收到privatelink.api.azureml.ms
區域中所列的任何記錄。不過,在私人 DNS 區域中列出的記錄只會傳回給使用預設 Azure DNS 虛擬伺服器 IP 位址來解析網域的裝置。 因此,自訂 DNS 伺服器將會針對分散在網路拓撲中的裝置解析網域。 但自訂 DNS 伺服器必須針對 Azure DNS 的虛擬伺服器 IP 位址,解析 Azure Machine Learning 相關網域。
建立私人端點,其私人 DNS 整合是以連結到 DNS 伺服器虛擬網路的私人 DNS 區域為目標:
下一步是建立 Azure Machine Learning 工作區的私人端點。 私人端點的目標是在步驟 1 中建立私人 DNS 區域。 這可確保與工作區的所有通訊都是透過 Azure Machine Learning 虛擬網路中的私人端點來完成。
重要
私人端點必須啟用私人 DNS 整合,此範例才能正確運作。
在 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 解決方案的文件,以瞭解如何適當地設定條件轉寄。
解決工作區網域:
到目前為止,所有設定都已完成。 現在,任何使用 DNS 伺服器進行名稱解析,並具有 Azure Machine Learning 私人端點路由的用戶端,都可以繼續存取該工作區。 用戶端一開始會先針對下列 FQDN 的位址查詢 DNS 伺服器:
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
- 更新受控線上端點
Azure DNS 以遞迴方式將工作區網域解析為 CNAME:
DNS 伺服器將會從 Azure DNS 解析步驟 4 中的 FQDN。 Azure DNS 將會以步驟 1 中所列的其中一個網域回應。
DNS 伺服器會從 Azure DNS 遞迴地解析工作區網域 CNAME 記錄:
DNS 伺服器會繼續以遞迴方式解析在步驟 5 中收到的 CNAME。 因為步驟 3 中有條件轉寄站設定,所以 DNS 伺服器會將要求傳送至 Azure DNS 的虛擬伺服器 IP 位址以進行解析。
Azure DNS 會從私人 DNS 區域傳回記錄:
儲存在私人 DNS 區域中的對應記錄將會傳回 DNS 伺服器,這表示 Azure DNS Virtual Server 會傳回私人端點的 IP 位址。
自訂 DNS 伺服器會將工作區網域名稱解析為私人端點位址:
最後,自訂 DNS 伺服器現在會將私人端點的 IP 位址傳回給步驟 4 中的用戶端。 這可確保 Azure Machine Learning 工作區的所有流量都是透過私人端點。
疑難排解
如果您無法從虛擬機器存取工作區,或虛擬網路中的計算資源上的作業失敗,請使用下列步驟來找出原因:
找出私人端點上的工作區 FQDN:
使用下列其中一個連結來瀏覽至 Azure 入口網站:
瀏覽至 Azure Machine Learning 工作區的私人端點。 工作區 FQDN 會列在 [概觀] 索引標籤上。
存取虛擬網路拓撲中的計算資源:
繼續存取 Azure 虛擬網路拓撲中的計算資源。 這可能需要存取以中樞虛擬網路對等互連的虛擬網路中的虛擬機器。
解決工作區 FQDN:
請開啟命令提示字元、殼層或 PowerShell。 然後針對每個工作區 FQDN 執行下列命令:
nslookup <workspace FQDN>
每個 nslookup 的結果應該都會在私人端點上傳回其中一個 (共兩個) 連線到 Azure Machine Learning 工作區的私人 IP 位址。 如果沒有,則表示自訂 DNS 解決方案中有某些設定不正確。
可能的原因:
- 執行疑難排解命令的計算資源未使用 DNS 伺服器來解析 DNS
- 建立私人端點時所選擇的私人 DNS 區域未連結到 DNS 伺服器 VNet
- 未正確設定 Azure DNS 虛擬伺服器 IP 的條件轉寄站
範例:裝載於內部部署中的自訂 DNS 伺服器
此架構使用一般中樞和輪輻虛擬網路拓撲。 ExpressRoute 用來從您的內部部署網路連線到中樞虛擬網路。 自訂 DNS 伺服器裝載於內部部署中。 獨立虛擬網路包含 Azure Machine Learning 工作區和相關聯資源的私人端點。 使用此拓撲時,必須有另一個虛擬網路,以裝載可將要求傳送至 Azure DNS Virtual Server IP 位址的 DNS 伺服器。
下列步驟說明此拓撲的運作方式:
建立私人 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 伺服器 VNet – 包含 DNS 伺服器的虛擬網路。
注意
虛擬網路中的 DNS 伺服器與內部部署 DNS 伺服器不同。
私人 DNS 區域會覆寫區域根目錄範圍內所有名稱的名稱解析。 此覆寫會套用至私人 DNS 區域所連結的所有虛擬網路。 例如,如果私人 DNS 區域根目錄位於
privatelink.api.azureml.ms
並連結至虛擬網路 foo,則虛擬網路 foo 中嘗試解析bar.workspace.westus2.privatelink.api.azureml.ms
的所有資源都會收到 privatelink.api.azureml.ms 區域中所列的任何記錄。不過,在私人 DNS 區域中列出的記錄只會傳回給使用預設 Azure DNS 虛擬伺服器 IP 位址來解析網域的裝置。 Azure DNS 虛擬伺服器 IP 位址只在虛擬網路的內容中有效。 使用內部部署 DNS 伺服器時,無法查詢 Azure DNS 虛擬伺服器 IP 位址來擷取記錄。
若要解決此行為,請在虛擬網路中建立中繼 DNS 伺服器。 此 DNS 伺服器可以查詢 Azure DNS 的虛擬伺服器 IP 位址,以擷取連結至虛擬網路的任何私人 DNS 區域的記錄。
雖然內部部署 DNS 伺服器將會針對分散在網路拓撲中的裝置解析網域,但是其會針對 DNS 伺服器解析 Azure Machine Learning 相關網域。 DNS 伺服器將會從 Azure DNS 虛擬伺服器 IP 位址解析這些網域。
建立私人端點,其私人 DNS 整合是以連結到 DNS 伺服器虛擬網路的私人 DNS 區域為目標:
下一步是建立 Azure Machine Learning 工作區的私人端點。 私人端點的目標是在步驟 1 中建立私人 DNS 區域。 這可確保與工作區的所有通訊都是透過 Azure Machine Learning 虛擬網路中的私人端點來完成。
重要
私人端點必須啟用私人 DNS 整合,此範例才能正確運作。
在 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 解決方案的文件,以瞭解如何適當地設定條件轉寄。
在轉送到 DNS 伺服器的內部部署 DNS 伺服器中建立條件轉寄站:
接下來,在 DNS 伺服器虛擬網路中的 DNS 伺服器中建立條件式轉寄站。 此轉寄站適用於步驟 1 中所列的區域。 這類似於步驟 3,但不會轉送到 Azure DNS 虛擬伺服器 IP 位址,而是內部部署 DNS 伺服器會將目標設為 DNS 伺服器的 IP 位址。 因為內部部署 DNS 伺服器不在 Azure 中,所以無法直接解析私人 DNS 區域中的記錄。 在此情況下,DNS 伺服器會將來自內部部署 DNS 伺服器的 proxy 要求傳送到 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 解決方案的文件,以瞭解如何適當地設定條件轉寄。
解決工作區網域:
到目前為止,所有設定都已完成。 任何使用內部部署 DNS 伺服器進行名稱解析,並具有 Azure Machine Learning 私人端點路由的用戶端,都可以繼續存取該工作區。
用戶端一開始會先針對下列 FQDN 的位址查詢內部部署 DNS 伺服器:
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
- 更新受控線上端點
內部部署 DNS 伺服器會遞迴地解析工作區網域:
內部部署 DNS 伺服器將會解析來自 DNS 伺服器步驟 5 中的 FQDN。 由於有條件轉寄站 (步驟 4),因此內部部署 DNS 伺服器會將要求傳送到 DNS 伺服器以進行解析。
DNS 伺服器會從 Azure DNS 將工作區網域解析為 CNAME:
DNS 伺服器將會從 Azure DNS 解析步驟 5 中的 FQDN。 Azure DNS 將會以步驟 1 中所列的其中一個網域回應。
內部部署 DNS 伺服器會從 DNS 伺服器遞迴地解析工作區網域 CNAME 記錄:
內部部署 DNS 伺服器會繼續以遞迴方式解析在步驟 7 中收到的 CNAME。 因為步驟 4 中有條件轉寄站設定,所以內部部署 DNS 伺服器會將要求傳送給 DNS 伺服器以進行解析。
DNS 伺服器會從 Azure DNS 遞迴地解析工作區網域 CNAME 記錄:
DNS 伺服器會繼續以遞迴方式解析在步驟 7 中收到的 CNAME。 因為步驟 3 中有條件轉寄站設定,所以 DNS 伺服器會將要求傳送至 Azure DNS 的虛擬伺服器 IP 位址以進行解析。
Azure DNS 會從私人 DNS 區域傳回記錄:
儲存在私人 DNS 區域中的對應記錄將會傳回 DNS 伺服器,這表示 Azure DNS Virtual Server 會傳回私人端點的 IP 位址。
內部部署 DNS 伺服器會將工作區網域名稱解析為私人端點位址:
在步驟 8 中,從內部部署 DNS 伺服器到 DNS 伺服器的查詢最後會將與私人端點相關聯的 IP 位址傳回至 Azure Machine Learning 工作區。 這些 IP 位址會傳回給原始用戶端,現在會透過步驟 1 中設定的私人端點與 Azure Machine Learning 工作區通訊。
重要
如果 VPN 閘道正在此設定中搭配 VNet 上的自訂 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 Machine Learning 的 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 Machine Learning 工作區的私人端點的虛擬網路中,計算資源上的作業失敗,請遵循下列步驟來嘗試找出原因。
找出私人端點上的工作區 FQDN:
使用下列其中一個連結來瀏覽至 Azure 入口網站:
瀏覽至 Azure Machine Learning 工作區的私人端點。 工作區 FQDN 會列在 [概觀] 索引標籤上。
存取虛擬網路拓撲中的計算資源:
繼續存取 Azure 虛擬網路拓撲中的計算資源。 這可能需要存取以中樞虛擬網路對等互連的虛擬網路中的虛擬機器。
解決工作區 FQDN:
請開啟命令提示字元、殼層或 PowerShell。 然後針對每個工作區 FQDN 執行下列命令:
nslookup <workspace FQDN>
每個 nslookup 的結果應該都會在私人端點上產生其中一個 (共兩個) 連線到 Azure Machine Learning 工作區的私人 IP 位址。 如果沒有,則表示自訂 DNS 解決方案中有某些設定不正確。
可能的原因:
- 執行疑難排解命令的計算資源未使用 DNS 伺服器來解析 DNS
- 建立私人端點時所選擇的私人 DNS 區域未連結到 DNS 伺服器 VNet
- 從 DNS 伺服器到 Azure DNS 虛擬伺服器 IP 的條件轉寄站未正確設定
- 從內部部署 DNS 伺服器到 DNS 伺服器的條件轉寄站未正確設定
相關內容
如需將私人端點整合至 DNS 設定的詳細資訊,請參閱 Azure 私人端點 DNS 設定。