Mały problem z poleceniami cmdlet serwera Domain Name System (DNS)

9

Zastanawiam się, czy muszę wyczyścić pamięć podręczną lub coś z tym problemem, który mam.

Próbuję usunąć rekordy A ze strefy DNS i zastąpić je rekordem CName o tej samej nazwie hosta.

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

To rzuca mi:

Add-DnsServerResourceRecordCName: Utworzenie rekordu zasobu @ w strefie zone.tld nie powiodło się na serwerze NS01. W C: \ admin \ updatettl.ps1: 56 char: 4 + Add-DnsServerResourceRecordCName -Zonename $ line -Name $ nazwa_hosta> -TimeToLive ... + ~~~~~~~~~~~~~~~~~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~~~~~~~~~~~~~~~~~~ + CategoryInfo: ResourceExists: (@: root / Microsoft / ... urceRecordCName)> [Add-DnsServerResourceRecordCName], CimException + FullyQualifiedErrorId: WIN32 9709, Add-DnsServerResourceRecordCName

Jakieś pomysły? Dzięki

Elfar Alfreðsson
źródło

Odpowiedzi:

9

Implementacja serwera DNS Microsofts nie pozwoli ci utworzyć CNAME w wierzchołku strefy zgodnie z RFC 1034 §3.6.2 .

Otrzymany błąd (9709 DNS_ERROR_CNAME_COLLISION) jest nieco tajemniczy, ale i tak nie będzie (i nie powinien) być w stanie go dodać.

Z drugiej strony umieszczenie CNAME RR na wierzchołku skutecznie wprowadza kolizję z rekordami NS i SOA dla strefy, w którym to momencie błąd ma sens

Mathias R. Jessen
źródło
Wydaje się, że jest to poprawne. Kiedy próbuję utworzyć CName na @, pojawia się ten błąd, ale gdy nazwa hosta jest ustawiona na „www”, nie ma z tym żadnych problemów. Dzięki!
Elfar Alfreðsson