使用 Azure 资源管理器时使用静态 IP 反向 DNS

Reverse DNS with Static IP while using Azure Resource Manager

我非常清楚Reverse DNS is possible on Azure Cloud Services。那不是我要问的。我需要知道在使用 Azure 资源管理器时是否可行。我在网上看了很多,虽然我发现了一些(2 年以上)关于它的老问题,但我找不到任何答案。

谢谢!

在 Azure 中注册反向 DNS 很复杂,因为在注册反向之前,您需要有一个指向 IP 地址的正向 A 记录。也就是说,您需要注册 www.example.com 以指向 Azure 中的 IP 地址,然后才能注册反向地址。

这意味着如果您通过模板创建,您需要预先配置一个转发域,否则模板将失败。

假设您使用的是模板,则需要事先执行几个步骤。

创建一个 Azure 静态地址 - 这需要是静态的,因为我们不会将它分配给一台机器。如果我们创建了一个动态地址,那么在附加它之前它是不可用的。

 $ip = New-AzureRmPublicIpAddress -Name TestIP1 `
                -ResourceGroupName $ResourceGroupName `
                -Location $location -AllocationMethod Static 

在 DNS

中注册您从 $ip.IpAddress 获得的地址
www IN A 123.45.67.89 ;; $ip.IpAddress address 

运行 部署脚本,如果使用模板

    "properties": {
    "publicIPAllocationMethod": "Dynamic",
    "dnsSettings": {
        "domainNameLabel": "[variables('PublicDNS2')]",
        "ReverseFqdn": "[concat(parameters('vmName2'), '.', variables('domainname'))]"
    }

将域转发到新地址(这可以作为模板的输出检索)

www IN A 123.45.67.90 ;; Deployment IP Address 

最后删除临时IP地址

Remove-AzureRmPublicIpAddress -Name TestIP1 `
         -ResourceGroupName $ResourceGroupName -Force 

如果您已经创建了一个静态 public IP 并想为其添加反向 DNS:

使用 Azure Powershell:

  1. 使用以下方式登录到 Azure 订阅: 登录-azurermaccount
  2. Select 订阅使用: select-azurermsubscription -subscriptionname mysubscription
  3. 获取 IP 使用: $p = get-azurermpublicipaddress -name myipname -resourcegroupname myresourcegroupname
  4. 使用以下方法设置反向 DNS(确保先设置正向 DNS): $p.dnssettings.reversefqdn = "mail.mydomain.com"
  5. 使用以下方法完成设置: 设置 azurermpublicipaddress -publicipaddress $p

好的,虽然其他两个答案很有帮助,但都没有让我一路走下去。但我终于想通了。向提供巨大帮助的 Michael B 大喊大叫!

我用来学习和玩的域名是woodswild.com。如果您想按照这些步骤操作,只需根据需要换出即可。希望这有助于节省一些时间。我花了很长时间才弄明白。

还有一件事:这些步骤假定您没有使用模板。

1: 打开 Windows Azure Powershell

2:在 Powershell 中,使用以下命令登录您的帐户:

Login-AzureRMAccount

这将提示您输入登录名和密码。

3: 创建一个资源组。

如果需要,您可以在 UI 中或在 Powershell 中执行此操作。如果你想在 Powershell 中执行此命令,请执行以下命令:

$rgName="RG1"
$locName="Central US"
New-AzureRmResourceGroup -Name $rgName -Location $locName

4:创建临时Public IP地址:

使用完全限定的反向 DNS 查找 (ReverseFqdn) 创建 Public IP 地址的过程很不稳定。我们要做的第一件事是创建一个临时(一次性)Public IP 地址,不带 ReverseFqdn。使用此命令执行此操作:

$ipName = "tempRG1PIP"
$locName = "Central US"
$rgName = "RG1"
New-AzureRmPublicIpAddress -AllocationMethod Static -ResourceGroupName $rgName -Name $ipName  -Location $locName

在这个例子中,我使用的域是 "woodswild.com"。 运行 此命令后,转到 UI 并在您刚刚创建的 IP 地址的配置下,为 IP 地址提供 "tempwoodswild" 的 DNS 标签(或任何您想要的域).

5:创建CName记录

对于您要使用反向 DNS 设置的域,请登录您的注册商。转到管理域的 DNS 记录的部分。使用指向 "tempwoodswild.centralus.cloudapp.azure.com"(或您创建的任何 DNS 标签)的主机 "www"(或邮件,如果您正在设置邮件服务器)创建一个 CName 记录。

6.创建另一个(永久)Public IP 地址

现在我们有 www.woodswild.com(或 mail.woodswild.com)指向临时 IP 地址,我们可以创建一个 perm。

$ipName = "RG1PIP"
$locName = "Central US"
$rgName = "RG1"
$rvFqdn = "www.woodswild.com" (or mail...)
$dnLabel = "woodswild"
New-AzureRmPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $locName -ReverseFqdn $rvFqdn -AllocationMethod Static -DomainNameLabel $dnLabel

您现在拥有一个带有 ReverseFqdn 的静态 Public IP 地址!!!

7.删除临时 IP 地址

您可以在 Azure 门户中执行此操作 UI。 此时,在 Azure 中,您应该有一个资源组,其中只有一项:您的 Public IP 地址

8.编辑 CName 记录,并创建一个 A(主机)记录。

返回您的注册商,将 CName 编辑为:woodswild.centralus.cloudapp.azure.com

另外,创建一个A(Host)记录如下:

Host: @
Points To: 40.122.166.144 (which is the IP of the new, perm, Public IP Address)

9.测试反向 IP 查找:

此时,您应该可以对IP进行反向查找并获得域:

提示:任何时候,您都可以使用以下命令查看来自该 IP 地址的信息:

New-AzureRmPublicIpAddress -Name RG1PIP -ResourceGroupName RG1

正在使用 Public IP 地址创建虚拟机

从这里开始,创建一个分配给您的具有反向查找功能的 public(静态)IP 的虚拟机只是将 VM 与您刚刚创建的 IP 相关联的问题。

Joe Who 的回答非常适合我,而且比创建临时 IP 更简单(我已经有一个现有 IP,而且我不得不在一周内第 3 次弄乱我的 DNS 设置)。

mysubscription 是您的订阅类型 - 在我的例子中,它是 "Pay-As-You-Go",您可以在 Azure 门户设置中找到它。

myipname 是您的 IP 地址资源的名称,myresourcegroupname 是它所在的资源组的名称。对于域,我刚刚输入 "mydomain.com"(当然是我的实际域)。

抛开让 Azure PowerShell 工作的噩梦不谈,整个过程只用了大约 5 分钟。

反向 DNS 查找现在可以正常工作,我的电子邮件不再作为垃圾邮件被退回(当然除此之外还有更多设置需要设置,但我已经跳过了这些障碍)。