web-dev-qa-db-ja.com

レコードVS。 Cname Round N

経験豊富なDNS管理者は私が理解するのを手伝ってください...

一度に最大5つのドメイン名の解決を実行する開発環境で小さなDNSサーバーを実行しています。私の質問はここでの議論から生じています: 違いは何ですか...

私の質問はこれです:

  • ドメイン名とそのドメインを指すサブドメインが少なくとも1つある場合、何を使用すればよいですか?

1つの答えはこれです:

  • これに対する適切な解決策は、Cnamesを使用することであると私は主張します。これにより、IPアドレスを一度変更し、同時に複数のホスト名(cnames)に影響を与えることができます。これは私が物事を複雑にしないようにするのに役立ちます。これにより、TTLレコードの管理がはるかに簡単で信頼性の高いものになります。間違いを犯しやすいので、間違いを犯す可能性も制限されます。

別の答えはこれです:

  • 他の人は、A Nameレコードを使用することでクエリが高速化されると主張しています(私は必ずしもその事実に反対するわけではありません)。

どちらも機能することはわかっていますが、DNSのRFCに基づいて採用された標準により、CnameとA Nameを正しく使用する必要があり、適切であると私は信じています。ルールは破られる可能性がありますが、ルールに頼ることができない場合のポイントは何ですか。

大規模なDNSサーバーを実行している場合、または実行経験がある場合にのみ、この質問に回答してください。それ以外の場合は、あなたの意見が変わることを期待しないでください私の意見。それはすべて個人的な好みの問題だと言われましたが、そうでないことを望んでいます。

私が非常に古い点に取り組んでいると思われる場合は、ご容赦ください。

7
Patrick R

わかりました、答えはあなたの質問に隠されています:

...小さなDNSサーバー...最大5つのドメイン名...

... ANameレコードを使用することでクエリが高速化されます...

通常、DNSルックアップはめったに行われず、とにかくアプリまたは要求元のシステムにキャッシュされます。したがって、この「スピードアップ」の議論は単なる仮説です。

私は、300を超える異なるドメインを持つ数千のホストにローカルでサービスを提供する適度に大規模なDNSインフラストラクチャを実行しています。

私はAレコードを最小限に抑え、可能な限り、論理的に意味がある場合はCNAMEを使用します。経験則は次のとおりです。ノードのプライマリインターフェイスのみのレコードであり、ノードへの逆解決も必要なレコード。他のすべて(サーバーで実行されているサービスなど)はCNAMEです。

複数のAがない理由は、対応するPTRがあると予想されることでもあります(必須ではありません!!)。ただし、IPが1つしかない場合はできません。

言い換えると:

name1 IN A IP1
IP1 IN PTR arpa.name1
name2 IN CNAME name1

大丈夫ですが

name1 IN A IP1
IP1 IN PTR arpa.name1
name2 IN A IP1
IP2 IN PTR arpa.name2

そうではありません(実際、最後のエントリは本当に必要ありません!)

しかし、繰り返しになりますが、それは本当に常識と好みの問題であり、厳格なルールはありません。

11
rytis

サーバーのプライマリ(または「インフラストラクチャ」)ホスト名のAレコードを用意します。

その上でホストされているWebサイトは、そのホスト名を指すCNAMEレコードを使用する必要があります。

例外は、「裸の」ドメイン名(つまり、www.または同様のプレフィックスなし)を機能させたい場合です。 DNSルールは、通常、それらにCNAMEを使用できないことを意味します。つまり、残念ながら、これらのレコードは代わりにAレコードである必要があります。つまり、次のようになります。

$Origin example.net. ; Host is in this domain
@      IN SOA ...
       IN NS ...
server IN A 192.0.2.1

$Origin example.com. ; website is in this domain
@      IN SOA ...
       IN NS ...
       IN A 192.0.2.1 ; can't be a CNAME - other RRs already here
www    IN CNAME server.example.net.

資格情報が必要ですか?私のプロフィールを見ます...

5
Alnitak

「大規模な」DNSシステムの定義が何であるかわかりません。私は約30の1つと約50の1つに取り組んできました。

すべての設定でこの質問に正確に答えることはできないと思います。パフォーマンスプロファイル、利用可能なリソース、IPアドレスを更新する必要がある頻度、および利用可能なツールはすべて、この決定に影響を与えます。

たとえば、IPをめったに変更しない、または幅広い変更を簡単に行うためのツールにアクセスできるシステムからパフォーマンスの最後の低下を絞り出そうとする管理者は、時間よりもパフォーマンスが高い管理者とは異なる答えを持ちます。管理するIPアドレスやホストマシンの数が影響する可能性があります。クライアントのニーズが影響を与える可能性があります。

個人的には、関係するマシンが少なく、ドメインが多い場合は、CNAMEを使用します。サーバーあたりのドメインが比較的少ない場合は、Aレコードを使用します。したがって、明確に答えることができるというあなたの含意にもかかわらず、それは状況、リソース、および(はい)個人的な好みに大きく依存していると思います。

2
Ben Doom