Небольшая проблема с командлетами сервера системы доменных имен (DNS)

9

Я задаюсь вопросом, нужно ли мне очистить какой-то кеш или что-то с проблемой, которая у меня возникла.

Я пытаюсь удалить записи A из зоны DNS и заменить их на запись CName с тем же именем хоста.

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

Это бросает меня:

Add-DnsServerResourceRecordCName: не удалось создать запись ресурса @ в зоне zone.tld на сервере NS01. В 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

Любые идеи? Спасибо

Эльфар Альфредссон
источник

Ответы:

9

Реализация DNS-сервера Microsoft не позволит вам создать CNAME на вершине зоны в соответствии с RFC 1034 §3.6.2 .

Полученная ошибка (9709, DNS_ERROR_CNAME_COLLISION) немного загадочна, но вы все равно не сможете (и не должны) ее добавить.

С другой стороны, размещение CNAME RR на вершине эффективно приводит к коллизии с записями NS и SOA для зоны, и в этом случае ошибка имеет некоторый смысл

Матиас Р. Ессен
источник
Кажется, это правильно. Когда я пытаюсь создать CName для @, он выдает мне эту ошибку, но когда для имени хоста установлено что-то вроде «www», у него нет проблем с этим. Спасибо!
Эльфар Альфредссон