如何将 Azure 提供的 DNS 用于资源管理器 VM?
How can I use Azure-provided DNS for Resource Manager VMs?
我一直在将我的 Azure 资源从 V1 服务管理 API 迁移到 V2 资源管理器 API,但不确定 Azure 提供的 DNS。以前我可以 ping 同一云服务中的主机,但是 V2 中不再有云服务。同一资源组内的主机也无法相互 ping 通。
我所做的唯一更改是将主机名添加到 /etc/hosts,这样虚拟机就可以 ping 自己(解析为 127.0.0.1):
127.0.0.1 localhost
127.0.0.1 myazurevmhostname
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
resolv.conf 文件保留为默认值:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.2.2
nameserver 10.0.2.3
search reddog.microsoft.com
因此,如果我有虚拟机 myvm1
和 myvm2
,我希望能够从 myvm1
nslookup myvm2
,但这不起作用。那么,如何使用资源管理器创建 'cloud only' 网络,而无需提供我自己的 DNS 服务器?
更新自从我最初提出这个问题后,Microsoft 已对后端进行更改以允许在没有 DNS 服务器的情况下进行内部名称解析。
您可以从 Microsoft.Network 资源提供者添加新资源。如果您使用的是 ARM 模板,the schema can be found in this MSDN Article:
如果您使用的是 PowerShell,Azure 资源管理器的网络 cmdlet 参考是 in this another MSDN Article:
对于资源管理器 API 大多数事情都以资源组为中心。
例如
- myazurevmresourcegroupname
- myazurevirutalnetworkname
- myazurevm 主机名
- myazurevmhostname2
部署模型:资源组
关联:具有虚拟网络和资源组的 VM
对于内部名称解析(私有 IP):
- 创建资源组
- 创建虚拟网络(与资源组关联)
- 配置 ip 范围和子网
- 创建虚拟机(与资源组和虚拟网络关联)
对于外部名称解析(Public IP):
在新的 Azure 管理门户中:
- 转到有问题的虚拟机
- 点击public ip地址
- 在设置窗格中单击配置
- 更改 DNS 名称标签
它的地址不如云服务好(vmname.cloudapp.net)
你最终得到:yourdnslabel.locationname.cloudapp.azure.com
例如yourwebsrv.eastus.cloudapp.azure.com
我一直在将我的 Azure 资源从 V1 服务管理 API 迁移到 V2 资源管理器 API,但不确定 Azure 提供的 DNS。以前我可以 ping 同一云服务中的主机,但是 V2 中不再有云服务。同一资源组内的主机也无法相互 ping 通。
我所做的唯一更改是将主机名添加到 /etc/hosts,这样虚拟机就可以 ping 自己(解析为 127.0.0.1):
127.0.0.1 localhost
127.0.0.1 myazurevmhostname
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
resolv.conf 文件保留为默认值:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.2.2
nameserver 10.0.2.3
search reddog.microsoft.com
因此,如果我有虚拟机 myvm1
和 myvm2
,我希望能够从 myvm1
nslookup myvm2
,但这不起作用。那么,如何使用资源管理器创建 'cloud only' 网络,而无需提供我自己的 DNS 服务器?
更新自从我最初提出这个问题后,Microsoft 已对后端进行更改以允许在没有 DNS 服务器的情况下进行内部名称解析。
您可以从 Microsoft.Network 资源提供者添加新资源。如果您使用的是 ARM 模板,the schema can be found in this MSDN Article:
如果您使用的是 PowerShell,Azure 资源管理器的网络 cmdlet 参考是 in this another MSDN Article:
对于资源管理器 API 大多数事情都以资源组为中心。
例如
- myazurevmresourcegroupname
- myazurevirutalnetworkname
- myazurevm 主机名
- myazurevmhostname2
- myazurevirutalnetworkname
部署模型:资源组
关联:具有虚拟网络和资源组的 VM
对于内部名称解析(私有 IP): - 创建资源组 - 创建虚拟网络(与资源组关联) - 配置 ip 范围和子网 - 创建虚拟机(与资源组和虚拟网络关联)
对于外部名称解析(Public IP): 在新的 Azure 管理门户中:
- 转到有问题的虚拟机
- 点击public ip地址
- 在设置窗格中单击配置
- 更改 DNS 名称标签
它的地址不如云服务好(vmname.cloudapp.net)
你最终得到:yourdnslabel.locationname.cloudapp.azure.com
例如yourwebsrv.eastus.cloudapp.azure.com