Пустое поле «имя» в записи файла зоны DNS - PullRequest
4 голосов
/ 12 декабря 2011

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

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

Пример:

$TTL 120
$ORIGIN example.com

@    NS      example.com
@    A       192.0.2.178
www  CNAME   example.com
     A       192.0.2.144
file CNAME   example.com

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

Ответы [ 2 ]

5 голосов
/ 18 декабря 2011

Пустое поле «имя» означает просто использовать то же имя, что и предыдущая запись, поэтому в вашем примере запись A предназначена для www.example.com.См. §5.1 RFC 1035 .

Если запись для RR начинается с пробела, то предполагается, что RR принадлежит последнему указанному владельцу.

Однако это также делает этот конкретный файл недопустимым - вы не можете иметь записи CNAME и A на одном и том же ярлыке.См. §3.6.2 RFC 1034 .

3 голосов
/ 06 марта 2014

Я знаю, что это старый вопрос - просто наткнулся на него, ища что-то еще, в любом случае последний комментарий - Поле «Пустое имя» означает просто использовать то же имя, что и предыдущая запись «НЕ является правильным.

Каждый раз, когда метка отсутствует в файле зоны (метка - это поле слева - т. е. имя хоста или полное доменное имя), она определяется значением $ORIGIN переменная ($ORIGIN = example.com в данном случае - на которую также может ссылаться @).

Итак, в приведенном выше файле зоны запись ...

A 192.0.2.144 совпадает с example.com A 192.0.2.144 как есть .. @ A 192.0.2.144

Сказав все это, этот файл зоны содержит довольно плохой синтаксис, так как ни один из них, по-видимому, не является ПОЛНОСТЬЮ - т.е. не имеет конечной точки в конце для корня - как в

$ORIGIN example.com.а такжеsomehost.example.com. IN A 192.0.2.144

Я предполагаю, что сервер имен либо не работал должным образом, либо был глючит.

В основном / обычно в файле зоны BIND, по крайней мере, если не полностью определен конечной точкой, значение значения$ ORIGIN var добавляется к метке.

...