
DNS の仕組みについていくつか質問があります。
A レコードを文字通り任意の IP アドレス (たとえば Google の IP) に接続できますか?
実は私はこれを知らなかったので、これにはかなり驚いています。自分が所有する Web サイトにリダイレクトできるか、自分のドメインを実際の宛先リンクに転送できるかだけしか考えていなかったのです。そして、これが本当なら、CNAME レコードでも同じことですよね?
つまり、自分のドメインをクリックして Google のサイトを表示し、Google のドメイン名ではなく自分のドメインを表示させることができるということですか?
複数のレコード(A レコード、txt レコード、AAAA レコード、CNAME レコードなど)を 1 つのドメインに接続できますか?
txt レコードは実際どのように機能するのでしょうか。ブラウザに URL を入力するだけで画面にテキストが表示されるのでしょうか。それとも、特別な get リクエストなどを実行する必要があるのでしょうか。
答え1
A レコードを文字通り任意の IP アドレス (たとえば Google の IP) に接続できますか?
はい。これは実際には「所有権」の問題ではなく、ドメイン所有者とサーバー運営者の間の合意の問題です。
更新されていないサーバーを指している場合は役に立ちません。同意した必要なドメインを提供します – DNS エントリは機能しますが、Web サーバーはエラー ページを返すだけです。(これは、サーバーが要求されているドメインを認識している Web や電子メール、またはサーバーが適切な証明書を持っている必要がある TLS ベースのすべての場合に重要です。)
しかし、一般的には、有料のウェブホスティングはこのように機能します。通常、IP アドレスを所有することはなく、「共有」プランではサーバーに関する所有権は一切ありませんが、ドメインを認識して役立つ操作を行うように構成されているため、A/AAAA レコードをサーバーにポイントします。
実は私はこれを知らなかったので、これにはかなり驚いています。自分が所有する Web サイトにリダイレクトできるか、自分のドメインを実際の宛先リンクに転送できるかだけしか考えていなかったのです。そして、これが本当なら、CNAME レコードでも同じことですよね?
はい、そうです。上記と同様に、所有権は重要ではありません。重要なのは、サーバーが希望どおりに動作するように設定されているかどうかだけです (繰り返しますが、Web サイトについて具体的に議論する場合、ターゲット サーバーはどのドメインとしてアクセスされているかを認識しており、「いいえ、そのドメインに対応するように設定されていません」と応答する可能性があります)。
一般的に、DNS はそもそも「Web サイト」や「リンク」を気にしません。気にするのはドメイン名と IP アドレスだけです。しかし、DNS レコードは単方向であるため、何でも何にでもポイントできます。
つまり、自分のドメインをクリックして Google のサイトを表示し、Google のドメイン名ではなく自分のドメインを表示させることができるということですか?
それはうまくいくだろういくつかのウェブサーバー。Google ではおそらく無理でしょう。
繰り返しになりますが、上で述べたように、ウェブサーバーはどのドメインで呼び出されるかを知っています(すべてのHTTPリクエストに含まれています)。大規模なウェブホスト頼る同じ IP アドレスで異なるドメインの多くの Web サイトを提供しているためです。
したがって、このような Web サーバーを指す独自のドメインの A レコードを作成するだけでは、一致する「仮想ホスト」構成は見つからず、通常は必要な Web サイトではなく一般的なエラー ページが表示されます。ただし、「デフォルト」の仮想ホストが 1 つしかない小規模な Web サーバーの場合は、実際に機能します。
また、HTTPS や TLS ベースの他のものでも動作しません。最も単純なケースでも、サーバーはアクセス先のドメインに対して有効な証明書を提供する必要があります。そうでない場合、ブラウザに「証明書が一致しません」というエラー ページが表示されます。
しかし、他の多くの(ウェブ以外の)サービスでは、だろう動作し、サーバーはそれを認識しません。たとえば、SSH または FTP はホスト名をまったく報告しません。
複数のレコード(A レコード、txt レコード、AAAA レコード、CNAME レコードなど)を 1 つのドメインに接続できますか?
一般的には、はい。各サービスは必要なレコード タイプのみを確認し、残りは無視します。そのため、いくつかの例外はありますが、任意のレコード タイプの組み合わせ (意味があるかどうかに関係なく) を使用できます。
たとえば、A+AAAA は非常に一般的です。これは、同じサーバーで両方のアドレス タイプを持つデュアル スタック IPv4+IPv6 サービスをホストする方法です。ドメイン ルートでは、通常、メール用の MX が A+AAAA レコードのすぐ隣に配置されます (内部 DNS 操作用の NS+SOA も同様)。
SSHFPのようなレコードタイプは___であることになっているアドレス レコードと一緒に使用され、多くのタイプは「説明的な」用途があり、どこにでも配置できます (TXT、HINFO、RP、LOC など)。
(そもそも、さまざまなレコード タイプが存在することの全体的なポイントはそこにあると思います。)
しかし、大きな例外はCNAMEです。これは通常禁じられている他のレコードタイプと一緒に使用されます。名前は別名ですまたはそうではありませんが、両方を同時に行うことはできません。(通常、ドメイン ルートに CNAME を配置できないのは、そこに既に SOA と NS があるためです。)
txt レコードは実際どのように機能するのでしょうか。ブラウザに URL を入力するだけで画面にテキストが表示されるのでしょうか。それとも、特別な get リクエストなどを実行する必要があるのでしょうか。
いいえ、Web ブラウザは TXT レコードとはまったくやり取りしません。TXT レコードは他の目的で存在します。
(DNS全体ウェブより古い数年で大きく変化したため、その多くは HTTP 以外の目的に使用されています。Web ブラウザは、他の多くのサービスがすでに使用していたのと同じ汎用 A/AAAA レコードを使用しています。
TXTレコードにはURLはありませんが、次のようなツールを使用して直接DNSリクエストを行うことで、そのようなレコードの内容を見ることができます。「dig」、「host」、または「nslookup」たとえば、Windows ではnslookup -q=txt example.com
または を実行できますResolve-DnsName -Type TXT example.com
が、Linux または macOS ではhost -t txt example.com
またはdig example.com txt
が推奨されます。
(実際の example.com には 2 つの TXT レコードがあります。"v=spf1" で始まるレコードは SPF チェックを実行するメール サーバー用で、もう 1 つはおそらく DigiCert のドメイン検証用です。最近の TXT の使用のほとんどは自動リクエスト用ですが、システム管理者が読むことを目的とした TXT レコードが見つかることもあります。)