DNSレコード完全ガイド

ドメイン

ドメインネームシステム(DNS)は、インターネットの電話帳のようなものです。人間が覚えやすいドメイン名(例:google.com)を、コンピュータが理解できるIPアドレス(例:142.250.196.206)に変換する役割を担っています。
この変換プロセスの中核をなすのが「DNSレコード」です。

ウェブサイトの運営、メールの送受信、セキュリティの強化など、様々な場面でDNSレコードが利用されています。ここでは、主要なDNSレコードの種類とその具体的な使用例をわかりやすく解説します。

Aレコード (Address Record)

最も基本的なDNSレコードです。ドメイン名(またはサブドメイン名)をIPv4アドレスに対応付けます。

使用場面例
example.comというウェブサイトを、サーバーのIPアドレス192.0.2.1に紐づけたい場合。
・ユーザーがブラウザでexample.comと入力すると、Aレコードが参照され、192.0.2.1のサーバーに接続されます。

AAAAレコード (IPv6 Address Record)

AレコードのIPv6版です。ドメイン名をIPv6アドレスに対応付けます。インターネットのIPアドレス枯渇問題に対応するために、IPv6の普及が進んでいます。

使用場面例
example.comをIPv6アドレス2001:0db8:85a3:0000:0000:8a2e:0370:7334に対応させ、IPv6環境のユーザーからのアクセスを可能にしたい場合。

CNAMEレコード (Canonical Name Record)

あるドメイン名を、別のドメイン名(正規名)の別名として定義します。これにより、複数のドメイン名を一つのIPアドレスに簡単に紐づけることができます。

使用場面例
www.example.comへのアクセスを、正規のexample.comに転送したい場合。
example.comのIPアドレスが変更されても、CNAMEレコードを設定しておけばwww.example.comの設定を変更する必要がありません。

MXレコード (Mail Exchanger Record)

ドメイン宛のメールを処理するメールサーバーを指定します。優先度(プリファレンス値)を設定でき、数字が小さいサーバーが優先的に使用されます。

使用場面例
example.com宛のメールを、Google Workspaceのメールサーバー(例:aspmx.l.google.com)で受信したい場合。
・複数のメールサーバーを登録し、メインサーバーがダウンした際のバックアップとして利用することも可能です。

TXTレコード (Text Record)

ドメインに関する任意のテキスト情報を記述できます。特定のフォーマットに従うことで、様々な用途に利用されます。

使用場面例
SPF (Sender Policy Framework)
 v=spf1 include:_spf.google.com ~allのように記述し、example.comドメインからメールを送信してよいサーバーを宣言することで、なりすましメールを防ぎます。

ドメイン所有権の確認
 Google Search Consoleなどのサービスで、指定された文字列をTXTレコードに設定し、ドメインの所有者であることを証明します。

NSレコード (Name Server Record)

そのドメインのDNS情報を管理するネームサーバー(DNSサーバー)を指定します。通常、ドメイン登録業者(レジストラ)やDNSホスティングサービスから提供されたものを設定します。

使用場面例
example.comのDNS情報を、Cloudflareのネームサーバー(例:olga.ns.cloudflare.com)で管理したい場合。

PTRレコード (Pointer Record)

IPアドレスからドメイン名を逆引きするために使用されます。Aレコードとは逆の役割を持ちます。

使用場面例
・メールサーバーが受信したメールの送信元IPアドレスを逆引きし、その信頼性を確認するために利用されます。スパムメール対策に重要です。
192.0.2.1というIPアドレスがmail.example.comというホスト名であることを示します。

SRVレコード (Service Record)

特定のサービス(例えば、VoIPやインスタントメッセージング)を提供しているサーバーのホスト名やポート番号を指定します。

使用場面例
・Minecraftサーバーなど、特定のポート番号でサービスを提供しているサーバーに、ユーザーがポート番号を入力せずにドメイン名だけでアクセスできるようにしたい場合。
_minecraft._tcp.example.comという名前で、サーバーの場所とポートを指定します。

CAAレコード (Certification Authority Authorization)

ドメインに対してSSL/TLS証明書を発行できる認証局(CA)を限定します。これにより、意図しない認証局から証明書が発行されるのを防ぎ、セキュリティを向上させます。

使用場面例
example.comの証明書はLet’s Encryptからのみ発行を許可したい場合。0 issue "letsencrypt.org"のように設定します。

ALIASレコード (ANAME / Apex CNAME)

DNSプロバイダーが独自に提供している機能で、CNAMEレコードの制約を解消するものです。

通常のCNAMEレコードは、ドメインのルート(例: example.com)には設定できません。これは、ルートドメインにはNSレコードやSOAレコードといった他の重要なレコードが必ず存在する必要があり、CNAMEは他のレコードと共存できないというDNSのルールがあるためです。そのため、www.example.com のようなサブドメインにしか利用できませんでした。

ALIASレコードは、この制約を回避します。ルートドメイン(example.com)に対して、別のドメイン名(例: loadbalancer.amazonaws.com)を指定できます。DNSサーバーは、指定されたドメイン名のIPアドレスを自動的に検索し、それをAレコードまたはAAAAレコードとして応答します。

使用場面例
クラウドサービスの利用
 AWSのELB(ロードバランサー)やCloudFront、Heroku、NetlifyなどのPaaS/SaaSを利用する場合、提供されるエンドポイントは動的なIPアドレスを持つドメイン名(例: abcdef12345.cloudfront.net)です。

DNSKEYレコード (DNS Key Record)

DNSゾーンの正当性を証明するための公開鍵を保持します。この鍵を使って、そのゾーン内のDNSレコードに付与されたデジタル署名を検証します。

DSレコード (Delegation Signer Record)

親ゾーン(例: .com)が子ゾーン(例: example.com)のDNSKEYレコードを信頼していることを示すためのレコードです。中身は、子ゾーンのDNSKEYのハッシュ値(フィンガープリント)です。

HTTPSレコード / SVCBレコード (Service Binding Record)

ウェブサイトやオンラインサービスへの接続を、より効率的かつ安全にするための新しいDNSレコードです。HTTPSレコードはSVCBレコードの特定用途のサブセットです。

クライアント(ブラウザなど)に対して、サービスに接続するための詳細な情報(代替プロトコル、特定のポート、優先順位など)をDNSの段階で伝えます。これにより、接続のネゴシエーションにかかる時間とリソースを削減します。

SSHFPレコード (SSH Fingerprint Record)

SSH接続のセキュリティを向上させるためのレコードです。

SSHサーバーの公開鍵のフィンガープリント(ハッシュ値)をDNSに登録します。

TLSAレコード (TLS Authentication Record)

DANE (DNS-based Authentication of Named Entities) プロトコルで使用され、TLS証明書の正当性を検証する方法を提供します。

特定のサービス(ウェブサイトやメールサーバー)が使用すべき正規のSSL/TLS証明書、またはその証明書を発行すべき認証局(CA)の情報をDNSに登録します。

コメント