处于Azure同一子网中的两台虚拟机为何无法加域?

之前有人想在Azure里搭建一个域控制器和几台加域的机器,很简单的一个环境,但是却发现,虽然所有虚拟机都处于同一个子网下面,但是却无法连接到域控,没法加域。然后非常机智的去在机器上改了DNS地址,改为域控的IP地址,然后凉凉了,虚拟机连不上了。

处于Azure同一子网中的两台虚拟机为何无法加域?

可以先看一下当下的设定:
处于Azure同一子网中的两台虚拟机为何无法加域?
处于Azure同一子网中的两台虚拟机为何无法加域?
VM1的IP是10.0.0.4
VM2的IP是10.0.0.5
但是呢,我从VM1是ping不到VM2的:
处于Azure同一子网中的两台虚拟机为何无法加域?
首先这个思路是没错的,确实需要改DNS地址,但是不能在机器里面去改。
处于Azure同一子网中的两台虚拟机为何无法加域?
使用Azure的基础架构永远要记住整个环境的每个部件都分门别类的属于Azure的某一个服务,虚拟机时虚拟机,存储是存储,虚拟网络是虚拟网络,网关是网关。。。言下之意,这个关于网络的设置,必须在相应的虚拟网络里去配置,而非机器本身。

找到机器的所属的网络接口:
处于Azure同一子网中的两台虚拟机为何无法加域?
这里有一个DNS服务器的选项,自定义一个,然后加上另外一台的IP地址。注意,这里会有提示告诉你这个操作会重启当前的虚拟机以及相关联的可用性集。

当然直接在这个vNet去改是最好的,因为可以继承到下面的每个网络接口,对于想在Azure部署一套本地域架构的环境来说是最好不过了,不用为每个机器的DNS去改设置。
处于Azure同一子网中的两台虚拟机为何无法加域?
添加好以后就欧了:
处于Azure同一子网中的两台虚拟机为何无法加域?
那么可不可以去改host文件?
对于本文的情况,不建议去改host文件。改了也没用。

有什么办法可以直接部署一套域环境不用手动去做?
退一步说,可以实现新部署的虚拟机加域。这个用到了一个现成的ARM模板–https://azure.microsoft.com/en-us/resources/templates/201-vm-domain-join/