首页 > 解决方案 > 按名称在 Azure VM 之间进行连接

问题描述

我在同一个 Vnet 上有两个 Azure Windows VM。

第二个是从第一个的备份还原的克隆,我更改了它的计算机名称,假设我将它们命名为 vmOriginal (10.0.0.4) 和 vmClone (10.0.0.5)。

作为最简单的情况,我正在测试它们之间的通信,使用 telnet 到另一个开放端口。

使用它们的本地 IP 地址在两个方向上都是成功的。

vmOriginal 也可以通过名称远程登录到 vmClone。

但是 vmClone 无法通过名称远程登录到 vmOriginal(无法打开与主机的连接,连接失败)。

我该如何解决这个问题?

标签: azureazure-virtual-machineazure-virtual-network

解决方案


好吧,这几乎令人难以置信。原来问题是计算机名称太长(我上面使用的名称只是为了清楚起见)。

对于 Azure VM,计算机名称实际上必须最多为 12 个字符(即使 Windows 在控制面板中设置时允许 15 个字符)。

Azure 对此没有任何警告。

对于 vNet DNS,Azure 为计算机名称添加了一个 51 个字符长的域,我猜它代表本地 vNet。它看起来像:

rifmvhdprmqxsebj4n0m6vnd2d.qx.internal.cloudapp.net

加上分隔点,计算机名只能有 12 个备用字符。

再长的话,总表达式将超过 DNS 条目的 64 个字符限制,这意味着计算机将无法在 DNS 中找到,并且无法在网络上通过名称引用。

这里有一个反馈提交,它解释了这个确切的情况,这是我经过数小时搜索后发现的唯一让我走上正轨的东西。

https://feedback.azure.com/forums/216843-virtual-machines/suggestions/10197480-the-azure-vm-internal-dns-domain-names-are-too-lon

我不明白为什么这个问题没有更广为人知。或者更好的是,在 Azure 门户中发出警报。

或者最重要的是,正如上面的响应者所指出的那样,根本不应该允许它发生。


推荐阅读