Я следую этому руководству: http://groups.drupal.org/node/16862 для настройки поддомена на моем компьютере с Ubuntu. На этапе III я использую тот же db.mydev
как руководство, кроме IP:
mydev. 86400 IN SOA mydev. hostmaster.mydev. (
20091028 ; serial yyyy-mm-dd
10800; refresh every 15 min
3600; retry every hour
3600000; expire after 1 month +
86400 ); min ttl of 1 day
IN NS mydev.
IN MX 10 mydev.
IN A 12.85.28.217
*.mydev. IN A 12.85.28.217
Однако когда я использую named-checkzone mydev db.mydev
чтобы проверить синтаксис, я получаю сообщение об ошибке: zone mydev/IN: has no NS records
. Есть подсказки?
Вам нужен хотя бы один символ пробела или табуляции (кредит: редактирование @mdpc для напоминания табуляции) в начале каждой строки, которая начинается с «IN». Некоторые администраторы не пристрастны к вкладкам: в таких случаях вы должны стараться, чтобы все эти записи были выровнены с одинаковыми пробелами, где это возможно.
Это потому, что вы технически не учитываете первое поле определяемых вами записей. Это ярлык для того, чтобы не вводить «mydev». или "@" в начале каждой из этих строк, но это работает, только если вы начинаете строку с чего-то, что не является записанными данными.
Я согласен с Эндрю Б, за исключением того, что для удобства чтения я бы не рекомендовал использовать там только пробелы. Используйте символ @ или полное имя зоны («mydev.») В этом месте, чтобы сделать вещи более читаемыми. Дисковое пространство больше не является дорогостоящим, и экономия нескольких символов за счет наличия файла, в котором вы не понимаете, что делает анализатор зоны, не является победой.
Чтобы пояснить немного дальше, каждое объявление записи ресурса состоит из метки, ttl, класса, типа и значения. Но вы можете опустить любой из них, кроме значения, и они будут унаследованы сверху.
Опубликованный вами фрагмент пытаясь объявлять записи с именем «mydev». для записей класса IN и типа SOA, NS, MX и A, но поскольку вы упустили важные пробелы в начале строк для объявлений записей NS, MX и A, вы столкнетесь с проблемами.
Если элементы, заключенные в квадратные скобки, наследуются по умолчанию, а не:
[mydev.] IN NS mydev.
[mydev.] IN MX 10 mydev.
[mydev.] IN A 12.85.28.217
вы непреднамеренно заявляете:
IN.[mydev.] [IN] NS mydev.
IN.[mydev.] [IN] MX 10 mydev.
IN.[mydev.] [IN] A 12.85.28.217
и в результате никакая NS-запись никогда не объявляется для простого старого:
mydev. IN NS mydev.
в результате появляется сообщение об ошибке "зона mydev / IN: нет записей NS"