web-dev-qa-db-ja.com

サブゾーンの設定中に「ゾーンにNSレコードがありません)」エラー

私はこのチュートリアルに従っています: 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。ヒントはありますか?

3
clwen

私は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レコードがない」というエラーメッセージが表示されます。

5
Michael McNally

"IN"で始まるすべての行の先頭に、少なくとも1文字の空白またはタブ(クレジット:タブリマインダーの@mdpcの編集)が必要です。一部の管理者はタブに偏っていません。そのような場合は、可能な場合は、これらのエントリをすべて同じ空白で揃えるようにしてください。

これは、定義しているレコードの最初のフィールドを技術的に省略しているためです。 「mydev」を付ける必要がないためのショートカットです。または、それらの行のそれぞれの先頭にある「@」ですが、データを記録していないもので行を開始する場合にのみ機能します。

8
Andrew B