1

В настоящее время я анализирую большое количество файлов зон на своей работе, чтобы мы могли сохранить эти данные в базе данных и легко восстановить файлы зон.

Я пытаюсь сделать мой синтаксический анализатор довольно строгим, чтобы мы могли подобрать любые плохо сформированные файлы зон, и я сталкиваюсь с некоторыми записями, в поле имени которых ничего нет.

Пример:

$TTL 120
$ORIGIN mywebsite.com

@    NS      mynameserver.com
@    A       112.134.156.178
www  CNAME   mywebsite.com
     A       111.122.133.144
file CNAME   mywebsite.com

Как будет обрабатываться эта вторая запись? И это правильный синтаксис?

1 ответ1

3

Его имя является дубликатом предыдущей записи, поэтому в вашем примере это будет адресная запись «www». В вашем примере вторая запись «@ A» не нуждается в «@».

Ваш пример с CNAME недопустим, поскольку CNAME не может иметь другую запись с таким же именем. Насколько я помню, старые версии BIND только предупреждали об этом, но более новые не будут загружать зону с этими ошибками. Другие типы записей действительны - например, вы добавляете несколько адресов для имен (циклический перебор DNS-клиентов) или, например, несколько (первичных, вторичных и третичных) записей MX или NS для доменов.

$TTL 120
$ORIGIN mywebsite.com.

@    NS      mynameserver.com.
@    A       112.134.156.178
www  CNAME   mywebsite.com. ; Invalid, CNAME cannot share with an A record
www  A       111.122.133.144
file CNAME   mywebsite.com. ; Alias of www.mywebsite.com. 

То, что вы должны увидеть в зонах, выглядит примерно так:

$TTL 86400
$ORIGIN example.com.

; nameservers in another domain - must point at A records
@    NS      ns1.example.net.
     NS      ns2.example.net.

     ; mail hosted elsewhere - must be A records
     MX 10   mail.example.net.
     MX 20   backupmail.example.net.

; web farm - nameserver will return both A 
;  records when requested and client will alternate between them
www  A       192.0.2.200
     A       192.0.2.201

; points at www.example.com. - in this case both CNAME (www.example.com.
;  and A records (192.0.2.200, 192.0.2.201) should be in the response returned.
www2 CNAME   www

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .