域名系统 (DNS) 服务器 Cmdlet 的小问题

域名系统 (DNS) 服务器 Cmdlet 的小问题

我想知道我是否需要清除一些缓存或者解决我遇到的问题。

我正在尝试从 DNS 区域中删除 A 记录并将其替换为具有相同主机名的 CName 记录。

Remove-DnsServerResourceRecord -Zonename $line -InputObject $record -Force
Add-DnsServerResourceRecordCName -Zonename $line -Name $hostname -TimeToLive $ttl -HostNameAlias $target

这让我:

Add-DnsServerResourceRecordCName:无法在服务器 NS01 上的区域 zone.tld 中创建资源记录 @。在 C:\admin\updatettl.ps1:56 char:4 + Add-DnsServerResourceRecordCName -Zonename $line -Name $hostname > -TimeToLive ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:ResourceExists:(@:root/Microsoft/...urceRecordCName)> [Add-DnsServerResourceRecordCName],CimException + FullyQualifiedErrorId:WIN32 9709,Add-DnsServerResourceRecordCName

有什么想法吗?谢谢

答案1

Microsoft 的 DNS 服务器实施不允许您按照以下要求在区域顶点创建 CNAME:RFC 1034§3.6.2

您收到的错误(9709,DNS_ERROR_CNAME_COLLISION) 有点神秘,但无论如何你都无法(也不应该)添加它。

另一方面,将 CNAME RR 放置在顶点实际上会与区域的 NS 和 SOA 记录发生冲突,此时错误确​​实有一定意义

答案2

我可以按照 Microsoft 文档中的建议,使用以下语法成功创建 ALIAS 或 CNAME

PS C:> Add-DnsServerResourceRecordCName -Name "THE-NEW-ALIAS-NAME" -HostNameAlias "ALREADY-EXISTING-NAME" -ZoneName "example.com" 

示例测试:

PS C:> Add-DnsServerResourceRecordCName -Name "mylabcn" -HostNameAlias "cslab" -ZoneName "example.com"

mylabcn:要创建为现有名称的新别名:cslab.example.com

这里的-Name参数是要创建的新 ALIAS/CNAME,而-HostNameAlias参数是将要创建新 ALIAS 名称的现有名称。

最初我以相反的方式使用了上述参数,结果出现了上述错误“9709”

希望这可以帮助。

相关内容