Bind dnsレコードを編集するとき、それが機能するために末尾ピリオドを追加する必要があります。これのポイントは何ですか?
Everydns.netを使用すると、末尾の期間を追加する必要がないのはなぜですか?
これは実装の癖ですか?
DNS自体にルートゾーンがあります。このゾーンは文字通り「。」と呼ばれていました。バインドでは、DNS名を完全に修飾する必要があります(これには。またはルートゾーンが含まれます)。他のUIは、ルートゾーンを想定することでこれを簡素化します。
Bind内で、変数Origin
を定義できます。これは、FQDN(末尾の。を含む完全修飾ドメイン名)を指定しない場合に自動的に追加されます。 Alnitak は構文の優れた例とこれのさまざまな使用法を持っています。
末尾の「。」名前を「完全修飾ドメイン名」、つまり絶対ドメイン名にします。
末尾に「。」を追加しない場合、標準の「マスターファイル形式」ファイル。次に、名前は現在のゾーンファイルの$Origin
(ゾーンファイルで以下に示すように指定されるか、またはnamed.conf
のzone
ステートメントから取得される)に相対的であると見なされます。 。
つまり.
$Origin example.com.
mail IN A 192.168.1.1
mail2 IN A 192.168.1.2
server IN A 192.168.1.3
@ IN MX 10 mail ; not FQDN - example.com. appended
IN MX 20 mail2.example.com. ; FQDN
IN MX 30 mail.example.net. ; FQDN in another domain
IN MX 40 mail2.example.net ; ERROR - not FQDN - example.com appended
www IN CNAME server ; not FQDN - example.com. appended
末尾の「。」を入力しない場合。次に、サーバーは$ Originの値をレコードの最後に追加します。これは非常に便利なショートカットであり、上手に使用すれば入力の手間が省けます。
残念ながら、「。」は忘れがちです。これにより、問題の診断が困難になる可能性があります。
技術的には「。」 www.serverfault.comなどのレコードの最後。 「com」gTLDと「」ルートゾーンの間のセパレータを示します。
末尾のドットは、これが完全修飾名であることをDNSサーバーに通知します。ドットはDNS階層のルートです。ドットを使用しない場合、DNSサーバーはそれが現在のゾーンのレコードであると想定し、追加します。たとえば、exmaple.comにHost.example.orgを指すCNAMEがある場合、そのクエリを実行すると、Host.example.org.example.comを取得しますが、これはおそらく望んだものではありません。
Everydns.netを使用する必要がなかったのは、おそらくUIを作成したため、この技術的な詳細について心配する必要がなかったからです。
Fqdnでは、ドットは実際の識別子です。 「com」、「edu」、「hp」、「stanford」は、任意の区切り文字です。ドットはスピンによって一意に識別されます。
元の設計者は、最小限の入力でゾーンファイル内のホストを指定できるようにしたかったため、末尾のドットで完全に修飾しない限り、デフォルトで各エントリにゾーンを追加します。これは、everydns.netが初心者のエラーと混乱につながることを認識する実装の癖です。したがって、彼らはそれを排除しました。
短い答え..まあ、正直に言ってすでにここに文書化されています。 :)基本的に、簡潔に言えば、「RFCでそう言っています。」
このリンクを見てください