この地域の構文に違いはありますか?

この地域の構文に違いはありますか?

Ansibleで境界領域ファイルを構築したいと思います。 jinja2テンプレートの構築方法を決定するには、次のゾーン構成に違いがあるかどうかを知る必要があります。

1.)良い昔ながらの方法:

$ORIGIN foo.bar.
@       IN      SOA     dns.foo.bar. hostmaster.foo.bar. (
                        2018111601
                        3H
                        1H
                        604800
                        86400)

        86400   IN      NS      ns01.foo.bar.
        86400   IN      NS      ns02.foo.bar.

www             IN      A       10.0.0.1

-

2.)ゾーン名がすでにfoo.barの場合、$ ORIGINを指定する必要がありますか?

名前付き.confから:

zone "foo.bar" in{
    type master;
    file "zones/foo.bar";
};

Area/foo.barから:

@       IN      SOA     dns.foo.bar. hostmaster.foo.bar. (
                        2018111601
                        3H
                        1H
                        604800
                        86400)

        86400   IN      NS      ns01.foo.bar.
        86400   IN      NS      ns02.foo.bar.

www             IN      A       10.0.0.1

-

3.) 頂点を分割し、「@」を複数回使用します。

$ORIGIN foo.bar.
@       IN      SOA     dns.foo.bar. hostmaster.foo.bar. (
                        2018111601
                        3H
                        1H
                        604800
                        86400)

www             IN      A       10.0.0.1

@       86400   IN      NS      ns01.foo.bar.
@       86400   IN      NS      ns02.foo.bar.

-

4.)「@」プレースホルダーを使用しないでください

foo.bar.       IN      SOA     dns.foo.bar. hostmaster.foo.bar. (
                        2018111601
                        3H
                        1H
                        604800
                        86400)

foo.bar.       86400   IN      NS      ns01.foo.bar.
foo.bar.       86400   IN      NS      ns02.foo.bar.

$ORIGIN foo.bar.
www             IN      A       10.0.0.1

-

私はいつもこれを答えとして欲しい。

$ dig foo.bar ANY +noall +answer
foo.bar.    1784    IN  SOA dns.foo.bar. hostmaster.foo.bar. 2018121401 10800 3600 604800 86400
foo.bar.    86384   IN  NS  ns01.foo.bar.
foo.bar.    86384   IN  NS  ns02.foo.bar.

$ dig www.foo.bar +short
10.0.0.1

質問:

  • すべての亜種は同じDNS応答を生成しますか?

ベストアンサー1

答え:はい、すべて同じです。ただし、確認のために実際にこれらのゾーンをDNSサーバーにロードしていません。たとえば、質問を読むときにタイプミスがあった可能性があります。 DNSサーバーにロードしてゾーン転送を許可してから送信すると、まったく同じ結果が得られます。

詳細:

  • 確認してみると 「その他の領域ファイルディレクティブ」BIND9 マニュアルの$ORIGINデフォルト値はnamed.conf.$ORIGINたとえば、サブドメインをより簡単に処理できるように($ORIGIN subdmain.domain.com.その後、サブドメインのすべてのレコードを定義するために)、主に手動で作成されたファイルでそれを使用します。

  • 同じセクションでは、これが@現在の原点への近道であることを示します。だからスペルは全く同じです。

  • 名前を繰り返さずに同じ名前に対して 2 つのレコードを連続して指定すると、2 番目のレコードは暗黙的に最後のレコードの名前を使用します。見積もりRFC 1035(レコード名を呼ぶ。所有者):

最後の2つの形式はRRを表します。 RRエントリが空白で始まる場合、RRは最後に宣言された所有者が所有していると見なされます。 RRエントリが<domain-name>で始まる場合、所有者名はリセットされます。

(BTW:RFCにも$ORIGINあるので、@同じゾーンファイル形式を使用するBIND以外のサーバーで動作する必要があります。私は1987年より最新の用語にBINDマニュアルを使用しています。)

これは「マスターファイル」形式の便利な機能であり、DNS有線プロトコルとは何の関係もありません。 BINDにファイルをロードすることもできません(たとえば、DNSの更新を許可したために書き換えゾーンファイルをバインドした場合は、#4に近いファイルを書き換えることがわかります)。

おすすめ記事