你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
当使用具有专用终结点的 Azure 机器学习工作区(包括 Azure AI 中心)时,可以通过多种方法来处理 DNS 名称解析。 默认情况下,Azure 会自动处理工作区和专用终结点的名称解析。 如果要使用自己的自定义 DNS 服务器,需要为工作区手动创建 DNS 条目或使用条件转发器。
重要说明
本文介绍如何查找这些条目的完全限定的域名 (FQDN) 和 IP 地址,以便在 DNS 解决方案中手动注册 DNS 记录。 此外,本文还提供了体系结构建议,说明如何配置自定义 DNS 解决方案以自动将 FQDN 解析为正确 IP 地址。 本文不提供关于如何为上述项配置 DNS 记录的信息。 如需了解如何添加记录,请参阅所用 DNS 软件的文档。
Prerequisites
- 采用自有 DNS 服务器的 Azure 虚拟网络。
配备专用终结点的 Azure 机器学习工作区,包括 Microsoft Foundry 等使用的中心工作区。 有关详细信息,请参阅创建 Azure 机器学习工作区。
如果工作区依赖项资源受到 Azure 虚拟网络的保护,请阅读训练和推理期间的网络隔离一文。
- 配备专用终结点的 Azure 机器学习工作区。 有关详细信息,请参阅创建 Azure 机器学习工作区。
- 可熟练使用训练和推理过程中的网络隔离。
熟悉 Azure 专用 DNS
(可选)安装 Azure CLI 或 Azure PowerShell。
自动化 DNS 服务器集成
简介
为实现 DNS 服务器与 Azure 机器学习的自动化集成,通常可采用两种体系结构:
- 将自定义 DNS 服务器托管在 Azure 虚拟网络中。
- 将自定义 DNS 服务器托管在本地,并通过 ExpressRoute 连接到 Azure 机器学习。
你的体系结构可能不同于这些示例,但仍可以将其作为参考。 这两个示例体系结构均提供了故障排除步骤,有助识别配置可能有误的组件。
另一种方法是在连接到 Azure 虚拟网络(虚拟网络,其中包含你的工作区)的客户端上修改 hosts 文件。 有关详细信息,请参阅主机文件部分。
工作区 DNS 解析路径
通过与以下完全限定的域(称为工作区 FQDN)进行通信,可以通过专用链接访问给定的 Azure 机器学习工作区:
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- 由托管联机终结点使用
由世纪互联运营的 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- 由托管联机终结点使用
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- 由托管联机终结点使用
完全限定的域名会解析为以下规范化名称 (CNAME),这些名称称为工作区专用链接 FQDN:
Azure 公共区域:
<per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.privatelink.api.azureml.msml-<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- 由托管联机终结点使用
由世纪互联运营的 Azure 区域:
<per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.privatelink.api.ml.azure.cnml-<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.usml-<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 机器学习工作区的 IP 地址。 但是,可以使用虚拟网络中托管的自定义 DNS 服务器替代工作区专用链接 FQDN 的解析。 有关此体系结构的示例,请参阅虚拟网络中托管的自定义 DNS 服务器示例。 对于中心和项目工作区,项目工作区从中心工作区继承 FQDN。
注意
托管联机终结点会共享工作区的专用终结点。 如果要手动将 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.msml-<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- 由托管联机终结点使用
由世纪互联运营的 Microsoft Azure 区域
以下 FQDN 适用于由世纪互联运营的 Microsoft Azure 区域:
<workspace-GUID>.workspace.<region>.cert.api.ml.azure.cn<workspace-GUID>.workspace.<region>.api.ml.azure.cnml-<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- 由托管联机终结点使用models.ai.azure.com- 用于标准部署
Azure 美国政府版
以下 FQDN 适用于 Azure 美国政府区域:
<workspace-GUID>.workspace.<region>.cert.api.ml.azure.us<workspace-GUID>.workspace.<region>.api.ml.azure.usml-<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- 由托管联机终结点使用
查找 IP 地址
若要在虚拟网络中查找 FQDN 的内部 IP 地址,请使用以下方法之一:
注意
完全限定的域名和 IP 地址因配置而异。 例如,域名中的 GUID 值特定于你的工作区。
若要获取专用终结点网络接口的 ID,请使用以下命令:
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" } ]
所有方法返回的信息相同,均为资源的 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 |
下表显示由世纪互联运营的 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 机器学习工作区及关联资源的专用终结点。 这两个虚拟网络之间必须存在有效路由, 例如通过一系列对等的虚拟网络建立路由。
以下步骤说明了此拓扑的工作原理:
创建专用 DNS 区域并链接到 DNS 服务器虚拟网络:
为确保自定义 DNS 解决方案可与 Azure 机器学习工作区搭配使用,首先需要创建两个根域如下的专用 DNS 区域:
Azure 公共区域:
privatelink.api.azureml.msprivatelink.notebooks.azure.net
由世纪互联运营的 Microsoft Azure 区域:
privatelink.api.ml.azure.cnprivatelink.notebooks.chinacloudapi.cn
Azure 美国政府区域:
privatelink.api.ml.azure.usprivatelink.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 区域所链接的所有虚拟网络。 例如,如果以
privatelink.api.azureml.ms为根的专用 DNS 区域链接到虚拟网络 foo,则虚拟网络 foo 中尝试解析bar.workspace.westus2.privatelink.api.azureml.ms的所有资源都会收到privatelink.api.azureml.ms区域中列出的任何记录。但是,专用 DNS 区域中列出的记录仅会返回到使用默认 Azure DNS 虚拟服务器 IP 地址解析域名的设备。 因此,自定义 DNS 服务器会解析分散在网络拓扑中的设备的域。 但是,自定义 DNS 服务器需要根据 Azure DNS 虚拟服务器 IP 地址解析与 Azure 机器学习相关的域。
创建包含专用 DNS 集成功能的专用终结点,并指向已链接到 DNS 服务器虚拟网络的专用 DNS 区域:
下一步是创建 Azure 机器学习工作区的专用终结点。 专用终结点需指向在步骤 1 中创建的两个专用 DNS 区域。 此步骤可确保与工作区的所有通信都是通过 Azure 机器学习虚拟网络中的专用终结点完成的。
重要说明
若要使此示例正常运行,专用终结点必须启用专用 DNS 集成。
在 DNS 服务器中创建条件转发器以转发到 Azure DNS:
接下来是创建指向 Azure DNS 虚拟服务器的条件转发器。 条件转发器可确保 DNS 服务器针对与工作区相关的 FQDN,始终向 Azure DNS 虚拟服务器 IP 地址发起查询。 这意味着 DNS 服务器会从专用 DNS 区域返回相应的记录。
以下列表列出了需满足条件才能转发的区域。 Azure DNS 虚拟服务器 IP 地址为 168.63.129.16:
Azure 公共区域:
api.azureml.msnotebooks.azure.netinstances.azureml.msaznbcontent.net-
inference.ml.azure.com- 由托管联机终结点使用
由世纪互联运营的 Microsoft Azure 区域:
api.ml.azure.cnnotebooks.chinacloudapi.cninstances.azureml.cnaznbcontent.net-
inference.ml.azure.cn- 由托管联机终结点使用
Azure 美国政府区域:
api.ml.azure.usnotebooks.usgovcloudapi.netinstances.azureml.usaznbcontent.net-
inference.ml.azure.us- 由托管联机终结点使用
重要说明
此处不包含 DNS 服务器的配置步骤,因为提供的许多 DNS 解决方案都可以用作自定义 DNS 服务器。 请参阅所用 DNS 解决方案的文档,了解如何正确配置条件转发。
解析工作区域名:
至此,所有设置都已完成。 现在,任何使用 DNS 服务器进行名称解析并可路由到 Azure 机器学习专用终结点的客户端,都可以正常访问工作区。 客户端首先查询 DNS 服务器,查找以下 FQDN 的地址:
Azure 公共区域:
<per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.azureml.msml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.azure.net-
<managed online endpoint name>.<region>.inference.ml.azure.com- 由托管联机终结点使用
由世纪互联运营的 Microsoft Azure 区域:
<per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.cnml-<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.usml-<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 虚拟服务器会返回专用终结点的 IP 地址。
自定义 DNS 服务器将工作区域名解析为专用终结点地址:
最后,自定义 DNS 服务器便可向步骤 4 中的客户端返回专用终结点的 IP 地址, 确保流向 Azure 机器学习工作区的所有流量都通过专用终结点传输。
疑难解答
如果无法从虚拟机访问工作区,或作业在虚拟网络中的计算资源上失败,请使用以下步骤确定原因:
查找专用终结点上的工作区 FQDN:
使用以下链接中的一个导航到 Azure 门户:
导航到 Azure 机器学习工作区的专用终结点。 工作区 FQDN 在“概述”选项卡上列出。
访问虚拟网络拓扑中的计算资源:
继续访问 Azure 虚拟网络拓扑中的计算资源。 这可能需要访问与中心虚拟网络对等互连的虚拟网络中的虚拟机。
解析工作区 FQDN:
打开命令提示符 shell 或 PowerShell。 然后,针对每个工作区 FQDN 运行以下命令:
nslookup <workspace FQDN>每次 nslookup 的查询结果都应返回 Azure 机器学习工作区专用终结点上的两个专用 IP 地址之一。 如果没有返回,则说明自定义 DNS 解决方案中存在配置错误。
可能的原因:
- 运行故障排除命令的计算资源没有使用 DNS 服务器进行 DNS 解析
- 创建专用终结点时选择的专用 DNS 区域未链接到 DNS 服务器虚拟网络
- 到 Azure DNS 虚拟服务器 IP 的条件转发器未正确配置
示例:将自定义 DNS 服务器托管在本地
此体系结构使用常见的中心和分支虚拟网络拓扑。 本地网络通过 ExpressRoute 连接到中心虚拟网络, 且自定义 DNS 服务器托管在本地。 另有一个单独的虚拟网络,其中包含指向 Azure 机器学习工作区及关联资源的专用终结点。 在此拓扑中,还需要一个托管 DNS 服务器的虚拟网络,该服务器可以向 Azure DNS 虚拟服务器 IP 地址发送请求。
以下步骤说明了此拓扑的工作原理:
创建专用 DNS 区域并链接到 DNS 服务器虚拟网络:
为确保自定义 DNS 解决方案可与 Azure 机器学习工作区搭配使用,首先需要创建两个根域如下的专用 DNS 区域:
Azure 公共区域:
privatelink.api.azureml.msprivatelink.notebooks.azure.net
由世纪互联运营的 Microsoft Azure 区域:
privatelink.api.ml.azure.cnprivatelink.notebooks.chinacloudapi.cn
Azure 美国政府区域:
privatelink.api.ml.azure.usprivatelink.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,则虚拟网络 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 机器学习相关的域。 DNS 服务器会从 Azure DNS 虚拟服务器 IP 地址解析这些域。
创建包含专用 DNS 集成功能的专用终结点,并指向已链接到 DNS 服务器虚拟网络的专用 DNS 区域:
下一步是创建 Azure 机器学习工作区的专用终结点。 专用终结点需指向在步骤 1 中创建的两个专用 DNS 区域。 这可确保与工作区的所有通信都通过 Azure 机器学习虚拟网络中的专用终结点完成。
重要说明
若要使此示例正常运行,专用终结点必须启用专用 DNS 集成。
在 DNS 服务器中创建条件转发器以转发到 Azure DNS:
接下来是创建指向 Azure DNS 虚拟服务器的条件转发器。 条件转发器可确保 DNS 服务器针对与工作区相关的 FQDN,始终向 Azure DNS 虚拟服务器 IP 地址发起查询。 这意味着 DNS 服务器会从专用 DNS 区域返回相应的记录。
以下列表列出了需满足条件才能转发的区域。 Azure DNS 虚拟服务器 IP 地址为 168.63.129.16。
Azure 公共区域:
api.azureml.msnotebooks.azure.netinstances.azureml.msaznbcontent.net-
inference.ml.azure.com- 由托管联机终结点使用
由世纪互联运营的 Microsoft Azure 区域:
api.ml.azure.cnnotebooks.chinacloudapi.cninstances.azureml.cnaznbcontent.net-
inference.ml.azure.cn- 由托管联机终结点使用
Azure 美国政府区域:
api.ml.azure.usnotebooks.usgovcloudapi.netinstances.azureml.usaznbcontent.net-
inference.ml.azure.us- 由托管联机终结点使用
重要说明
此处不包含 DNS 服务器的配置步骤,因为提供的许多 DNS 解决方案都可以用作自定义 DNS 服务器。 请参阅所用 DNS 解决方案的文档,了解如何正确配置条件转发。
在本地 DNS 服务器中创建条件转发器以转发到 DNS 服务器:
接下来,创建指向 DNS 服务器虚拟网络中该 DNS 服务器的条件转发器。 此转发器适用于步骤 1 中列出的区域。 这类似于步骤 3,但本地 DNS 服务器不会转发到 Azure DNS 虚拟服务器 IP 地址,而是以 DNS 服务器的 IP 地址为目标。 本地 DNS 服务器不在 Azure 中,因此无法直接解析专用 DNS 区域中的记录。 在这种情况下,DNS 服务器代理会将请求从本地 DNS 服务器转发到 Azure DNS 虚拟服务器 IP。 这样,本地 DNS 服务器就能检索链接到 DNS 服务器虚拟网络的专用 DNS 区域中的记录。
以下列表列出了需满足条件才能转发的区域。 目标转发地址应为 DNS 服务器的 IP 地址:
Azure 公共区域:
api.azureml.msnotebooks.azure.netinstances.azureml.ms-
inference.ml.azure.com- 由托管联机终结点使用
由世纪互联运营的 Microsoft Azure 区域:
api.ml.azure.cnnotebooks.chinacloudapi.cninstances.azureml.cn-
inference.ml.azure.cn- 由托管联机终结点使用
Azure 美国政府区域:
api.ml.azure.usnotebooks.usgovcloudapi.netinstances.azureml.us-
inference.ml.azure.us- 由托管联机终结点使用
重要说明
此处不包含 DNS 服务器的配置步骤,因为提供的许多 DNS 解决方案都可以用作自定义 DNS 服务器。 请参阅所用 DNS 解决方案的文档,了解如何正确配置条件转发。
解析工作区域名:
至此,所有设置都已完成。 任何使用本地 DNS 服务器进行名称解析并可路由到 Azure 机器学习专用终结点的客户端,都可以正常访问工作区。
客户端首先查询本地 DNS 服务器,查找以下 FQDN 的地址:
Azure 公共区域:
<per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.azureml.msml-<workspace-name, truncated>-<region>-<per-workspace globally-unique identifier>.<region>.notebooks.azure.net-
<managed online endpoint name>.<region>.inference.ml.azure.com- 由托管联机终结点使用
由世纪互联运营的 Microsoft Azure 区域:
<per-workspace globally-unique identifier>.workspace.<region the workspace was created in>.api.ml.azure.cnml-<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.usml-<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 虚拟服务器会返回专用终结点的 IP 地址。
本地 DNS 服务器将工作区域名解析为专用终结点地址:
在步骤 8 中,从本地 DNS 服务器到 DNS 服务器的查询最终将与专用终结点关联的 IP 地址返回到 Azure 机器学习工作区。 这些 IP 地址会返回到原始客户端,该客户端现在会通过在步骤 1 中配置的专用终结点与 Azure 机器学习工作区通信。
重要说明
如果在此设置中使用 VPN 网关以及虚拟网络上的自定义 DNS 服务器 IP,则还需要在列表中添加 Azure DNS IP (168.63.129.16) 以保持通信不中断。
示例:主机文件
hosts 文件是一个文本文档,Linux、macOS 和 Windows 都通过它来重写本地计算机的名称解析。 该文件包含 IP 地址及相应主机名的列表。 当本地计算机尝试解析某个主机名时,如果该主机名已列于 hosts 文件,系统会将该名称解析为相应的 IP 地址。
重要说明
hosts 文件只会重写本地计算机的名称解析。 如果要在多台计算机中使用 hosts 文件,必须在每台计算机上单独修改该文件。
下表列出了 hosts 文件的位置:
| 操作系统 | 位置 |
|---|---|
| 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 机器学习工作区专用终结点的虚拟网络中的计算资源上失败,请按照以下步骤来尝试确定原因。
查找专用终结点上的工作区 FQDN:
使用以下链接中的一个导航到 Azure 门户:
导航到 Azure 机器学习工作区的专用终结点。 工作区 FQDN 在“概述”选项卡上列出。
访问虚拟网络拓扑中的计算资源:
继续访问 Azure 虚拟网络拓扑中的计算资源。 这可能需要访问与中心虚拟网络对等互连的虚拟网络中的虚拟机。
解析工作区 FQDN:
打开命令提示符 shell 或 PowerShell。 然后,针对每个工作区 FQDN 运行以下命令:
nslookup <workspace FQDN>每个 nslookup 的结果应该将专用终结点上的两个专用 IP 地址之一提供给 Azure 机器学习工作区。 如果没有返回,则说明自定义 DNS 解决方案中存在配置错误。
可能的原因:
- 运行故障排除命令的计算资源没有使用 DNS 服务器进行 DNS 解析
- 创建专用终结点时选择的专用 DNS 区域未链接到 DNS 服务器虚拟网络
- 从 DNS 服务器到 Azure DNS 虚拟服务器 IP 的条件转发器未正确配置
- 从本地 DNS 服务器到 DNS 服务器的条件转发器未正确配置
相关内容
有关将专用终结点集成到 DNS 配置的信息,请参阅 Azure 专用终结点 DNS 配置。