
unbound.conf
設定に使用されます縛られない、キャッシュDNSリゾルバ。ドキュメンテーションバージョン 1.6.8 では次のように書かれています:
Server Options
private-domain: <domain name>
Allow this domain, and all its subdomains to contain private
addresses. Give multiple times to allow multiple domain names
to contain private addresses. Default is none.
私たちは Debian Stretch で unbound バージョン 1.6.0 を実行しています (man ページと引用されたドキュメントはここでは変わりません)。
私たちは以下の3つのバリエーションをテストしました。
- 編集
/etc/unbound/unbound.conf
- チェック中
unbound-checkconf
- 再起動
systemctl restart unbound.service
- バインドされていないログファイルを監視します。
バリエーション 1 (ドットで終わる):
private-domain: domain.example.
バリエーション 2 (ドットで終わらない):
private-domain: domain.example
バリエーション 3 (指定された順序):
private-domain: "domain.example. domain.example"
3 つのバリアントすべてで次の結果unbound-checkconf
が返されます。
unbound-checkconf: no errors in /etc/unbound/unbound.conf
バリアント 3 では、ログファイルに次の内容が見つかります。
debug: ignoring duplicate private-domain: domain.example.
同じドメイン名のエントリが 1 つあれば十分であり、ドメイン名の記述方法 (ドットあり/なし) の両方に対して unbound が同一の処理を行っていることを確認しているように見えるため、これは理にかなっています。
どちらの方法も機能しますが、Unbound でプライベート ドメイン名を定義するための正しい構文は何ですか? ドメイン名はドットで終わる必要がありますか? それともそうではありませんか? 末尾のドットは便利ですか、それとも無意味ですか? 不要なドットやドットが欠けていると、どのような影響がありますか?
答え1
この質問は古いものですが、検索すると最初のエントリとして表示されるので、答えてみる価値があると思います。
結論: このコンテキスト、および他のほとんどのコンテキストでは、domain.example
(末尾の なし.
) とdomain.example.
(トレーニング あり.
) の間に実質的な違いはありません。したがって、どちらも正しいです。
さて、長い答えです。:) この回答、そして現在ここにある唯一の 2018 年のコメントは、OP への 2018 年のコメントと同様に、仕様書の内容に基づいています。RFC と Unbound がドメイン名を使用する方法の間には意味上の違いがあるかもしれませんが、これは仕様書からの逸脱であり、バグと見なされる可能性があります。
RFC 1034 セクション 3.1ドメイン名のコア構文を次のように定義します。
ユーザーがドメイン名を入力する必要がある場合、各ラベルの長さは省略され、ラベルはドット (「.」) で区切られます。完全なドメイン名はルート ラベルで終わるため、ドットで終わる印刷形式になります。このプロパティは、次のものを区別するために使用します。
完全なドメイン名を表す文字列 (しばしば「絶対」と呼ばれる)たとえば、「poneria.ISI.EDU」などです。
不完全なドメイン名の開始ラベルを表す文字列。ローカルソフトウェアがローカルドメインの知識を使用して補完する必要がある。(「相対的」と呼ばれることが多い)たとえば、ISI.EDU ドメインで使用される「poneria」などです。
相対名は、よく知られている起源、または検索リストとして使用されるドメインのリストを基準として取得されます。
最後の文に注意してください。「検索リストとして使用されるドメインのリスト」が定義されていない限り、末尾にドットのない名前は「よく知られている起源」、つまり名前階層のルートに相対的であるとみなされます。パブリックDNSの場合、DNSルートはルートゾーン; プライベート名の階層がこの規則から逸脱することはほとんどありません。
実用上、これは末尾のない完全修飾ドメイン名 (FQDN) は、.
ほとんどの場合、同じ「絶対」ドメインに相当する名前階層のルートに対して相対的であると見なされる必要があることを意味します。したがって、domain.example
== 「domain.example
ルートに対して相対的」 == ですdomain.example.
。
異なる表現が意味を持つのはどのような場合でしょうか?断片FQDN ではなくドメイン名の 。その場合は、ピリオドを省略し、FQDN でピリオドを使用することを検討してください。 を実行しexample.com.
(ピリオドに注意してください。ルート サーバーがトラフィックを送信します)、サブドメインとして*.example.com
設定する場合、はサブドメインであり、はトップレベル ドメイン (TLD) です。east.example.com.
east
east.
.east
繰り返しますが、これは仕様に書かれていることです。いつものように、設定しているツールのドキュメントを確認してください。仕様には、DNS 圧縮など、追加のセマンティクスが導入されている他の領域もあります。DNS ワイヤ プロトコルでメッセージを文字通り解析または生成していない場合は、それらを無視できます。
これで質問に完全に答えられたと思います。誰かの役に立てば幸いです。