Domain-Name-System

域名系統 (DNS) 伺服器 Cmdlet 的小問題

  • May 22, 2020

我想知道是否需要清除一些記憶體或與我遇到的問題有關的東西。

我正在嘗試從 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 $ 主機名 > -TimeToLive … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceExists: ( @:root/Microsoft/…urceRecordCName) >

$$ Add-DnsServerResourceRecordCName $$ , CimException + FullyQualifiedErrorId : WIN32 9709,Add-DnsServerResourceRecordCName

有任何想法嗎?謝謝

根據RFC 1034 §3.6.2,Microsoft 的 DNS 伺服器實施將不允許您在區域頂點創建 CNAME 。

您收到的錯誤 (9709, DNS_ERROR_CNAME_COLLISION) 有點神秘,但無論如何您都不能(也不應該)添加它。

另一方面,將 CNAME RR 放置在頂點有效地引入了與區域的 NS 和 SOA 記錄的衝突,此時錯誤確實有一定意義

我可以按照 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:要創建到現有名稱的新ALIAS:cslab.example.com

這裡的-Name參數是要創建的新 ALIAS/CNAME,-HostNameAlias參數是已經存在的名稱,新的 ALIAS 名稱將被創建到該名稱。

最初我以相反的方式使用上述參數,導致上述錯誤“9709”

希望這可以幫助。

引用自:https://serverfault.com/questions/617002