私はこのチュートリアルに従っています: 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
。ヒントはありますか?
私はAndrew Bに同意します。ただし、読みやすさのために、空白のみを使用することはお勧めしません。その場所で@記号またはゾーンの完全修飾名( "mydev。")を使用して、物事を大幅に読みやすくします。ゾーンパーサーが何をしているかを理解していないファイルがあるという犠牲を払って、ディスク容量はもはや高価ではなく、数文字を節約できますが、勝ちではありません。
もう少し詳しく説明すると、各リソースレコード宣言は、ラベル、TTL、クラス、タイプ、および値で構成されています。ただし、値以外は省略でき、上から継承されます。
あなたが投稿したスニペットはtryingで、 "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レコードがない」というエラーメッセージが表示されます。
"IN"で始まるすべての行の先頭に、少なくとも1文字の空白またはタブ(クレジット:タブリマインダーの@mdpcの編集)が必要です。一部の管理者はタブに偏っていません。そのような場合は、可能な場合は、これらのエントリをすべて同じ空白で揃えるようにしてください。
これは、定義しているレコードの最初のフィールドを技術的に省略しているためです。 「mydev」を付ける必要がないためのショートカットです。または、それらの行のそれぞれの先頭にある「@」ですが、データを記録していないもので行を開始する場合にのみ機能します。