DNS レコードの基礎と設定の意味 | Web とメールがつながる仕組み

  • URLをコピーしました!
目次

はじめに

私たちが普段、何気なく Web サイトを見たりメールを送ったりできるのは、裏側で DNS(Domain Name System) が休みなく働いているおかげです。

DNS の役割を簡潔に言うと、「インターネット上の電話帳(アドレス帳)」 です。 コンピュータ同士は「IP アドレス(例: 192.0.2.1)」という数字の羅列でお互いを認識していますが、私たち人間にとって、この数字をすべて覚えるのは不可能です。そこで、「google.com」や「mytech-blog.com」といった覚えやすいドメイン名を使い、それを DNS が裏側で瞬時に IP アドレスへ変換(名前解決)してくれています。

まずは以下のツールにアクセスして、google.com と入力し、CHECK をクリックしてみてください。

英語や数字(IP アドレス)がズラッと表示されたと思います。
今回は、これら(DNS レコード)の意味と役割について詳しく解説していきます。

この記事でわかること
  • DNS の仕組み: ドメイン名と IP アドレスがどう紐づいているのか
  • 主要レコードの役割: A レコード、CNAME、MX、NS の違いと使い分け
  • 実務での注意点: A レコードと CNAME レコードの決定的な違い

DNS とは?ドメインと IP アドレスをつなぐ基本

インターネットの世界では、「人間」と「コンピュータ」が使う言葉が違います。 これを通訳するのが DNS の役割です。

人間は「ドメイン名」、コンピュータは「IP アドレス」

Web サイトを閲覧する際、私たち人間は google.commytech-blog.com といった 「ドメイン名(文字)」 を使います。 一方、Web サーバーなどのコンピュータは 142.250.196.14 といった 「IP アドレス(数字)」 で通信相手を特定します。

もし DNS がなければ、私たちは友人に「このサイト面白いよ!」と伝えるために、「142.250... にアクセスして!」と言わなければなりません。これでは不便すぎますよね。 DNS サーバーは、人間が入力した「ドメイン名」を受け取り、それを瞬時に「IP アドレス」に変換してコンピュータに教えます。この変換処理を専門用語で 「名前解決(Name Resolution)」 と呼びます。

【重要】ドメイン・ホスト名・FQDN の関係性

DNS 設定を行う上で、避けて通れないのが「ホスト名」「ドメイン名」「FQDN(完全修飾ドメイン名)」の違いです。 例えば www.google.com の場合、どこまでがドメインで、どれがホスト名でしょうか?

ホスト名

www (サーバー個体の名前)

ドメイン名

google.com (組織のグループ名)

FQDN

www.google.com (すべてを繋げた絶対的な住所)

この区別が曖昧だと、CNAME レコードの設定や SSL 証明書の取得時などで必ず混乱します。

ドメイン・ホスト名・FQDN の違いを理解する
  • 以下の記事でそれぞれの定義と違いを図解で詳しく解説しています。

これだけは覚えたい!主要な DNS レコード 4 選

DNS レコードには多くの種類がありますが、Web サイトの公開やメールの運用において、実務で頻繁に触れるのは以下の 4 つです。これらさえ理解しておけば、基本的な DNS 設定はマスターしたと言っても過言ではありません。

A レコード(Address Record)

Web サーバーの「住所」を直接指定する

最も基本となるレコードで、ドメイン名と IPv4 アドレスを直接紐づけます。 「このドメインにアクセスが来たら、この IP アドレスのサーバーへ行け」という命令です。

設定例
  • ドメイン: example.com
  • 値(IP): 100.64.1.1
用途

Web サーバーの指定、VPN ゲートウェイの指定など。

ポイント

IPv6 アドレスを指定したい場合は、AAAA レコード(クワッドエー)を使用します。

CNAME レコード(Canonical Name Record)

ドメインに「別名」をつける(リダイレクトではない)

あるドメイン名を、別のドメイン名に転送(エイリアス)します。IP アドレスではなく「ドメイン名」で指定するのが特徴です。 よく「リダイレクト」と混同されますが、HTTP リダイレクト(URL が変わる)とは異なり、CNAME は DNS レベルでの別名定義です。ブラウザのアドレスバーの URL は変わりません

設定例
  • ドメイン: piyo.example.com
  • 値 (ドメイン): hoge.xample.com (または lb.aws.amazon.com など)
用途
  • www ありのドメインを www なしのドメインと同じ場所に向けたいとき。
  • CDN やロードバランサーなど、IP アドレスが動的に変わるクラウドサービスを参照するとき。
MX レコード(Mail Exchange Record)

メールの「届け先」と「優先順位」を指定する

そのドメイン宛(@example.com)のメールを、どのメールサーバーに配送するかを指定します。 MX レコードには 「優先順位(Priority)」 という設定値があり、複数のメールサーバーを登録して冗長化することができます。数値が 小さいほど優先度が高い と判断されます。

設定例
  • ドメイン: example.com
  • 値 1: 10 mail.google.com (優先度 10:メイン)
  • 値 2: 20 backup-mail.google.com (優先度 20:バックアップ)
ポイント
  • MX レコードの値(配送先)には、IP アドレスではなく FQDN(ホスト名) を指定する必要があります。
NS レコード(Name Server Record)

そのドメインの「管理者(権威サーバー)」を指定する

そのドメインの DNS 情報を管理しているサーバー(権威サーバー)が誰なのかを世界に宣言するレコードです。 通常、ドメインを取得した事業者(お名前.com や GoDaddy)の管理画面で設定し、実際にレコードを編集する DNS サーバー(AWS Route53 や Cloudflare など)を指定します。

設定例
  • ドメイン: example.com
  • 値: ns1.example.com
ポイント
  • これが正しく設定されていないと、A レコードや MX レコードをいくら設定しても、インターネットからは誰もその情報を参照できません。

実践: A レコードと CNAME レコードの使い分け

DNS の設定で最も悩むのが「A レコードと CNAME レコード、どっちを使えばいいの?」という点です。 基本的な使い分けの基準は非常にシンプルです。

指定したい値が「IP アドレス(数字)」なら → A レコード

例:自社の Web サーバー(固定 IP)に向ける場合

指定したい値が「ドメイン名(文字)」なら → CNAME レコード

例:CDN、ロードバランサー、他社サービス(Shopify や はてなブログなど)に向ける場合

基本はこれで OK ですが、実務では 「DNS の仕様上の罠」 に注意する必要があります。

ルートドメイン(example.com)には CNAME が使えない?

これが最大の注意点です。 「ルートドメイン(Apex ドメイン、ネイキッドドメインとも呼ばれます)」とは、www などのサブドメインが付かない、ドメインそのもの(例:example.com)のことです。

DNS のルール(RFC)上、ルートドメインには CNAME レコードを設定してはいけない ことになっています。

なぜ?

CNAME レコードは「そのドメインのすべての情報を別名先に委ねる」という強い意味を持ちます。もしルートドメインに CNAME を設定してしまうと、同じドメインに設定している MX レコード(メール)や NS レコードの情報まで上書き(無視)されてしまい、メールが届かなくなる などの重大な障害が発生するためです。

www.example.com」のようなサブドメインであれば、MX レコードなどと競合しないため CNAME を自由に設定できます。

クラウドサービス(AWS/Azure)利用時の注意点

では、AWS の ALB (Application Load Balancer) や Azure Front Door のように、「接続先が IP アドレスではなくドメイン名で提供される」サービスを、ルートドメイン(example.com)で使いたい場合はどうすれば良いでしょうか?

「A レコードは使えない(IP がわからない)」「CNAME も使えない(ルール違反)」となり、詰んでしまいます。

この問題を解決するために、主要なクラウド DNS サービスでは、独自の便利なレコードタイプが用意されています。

AWS Route 53

エイリアス(Alias)レコード

Azure DNS / その他

ANAME レコード」や「Alias」など

これらは、「設定画面上では CNAME のようにドメイン名で指定できるが、実際の DNS 応答としては A レコード(IP アドレス)を返す」 という特殊な挙動をします。 これにより、DNS のルールを守りつつ(MX レコードなどと共存しつつ)、ルートドメインをクラウドサービスに向けることが可能になります。

クラウド環境でルートドメインを利用する際は、必ずこれらの独自機能を利用しましょう。

設定確認: nslookup コマンドの使い方

DNS レコードを設定したら、必ず nslookup コマンド を使って、意図通りに設定が反映されているか確認しましょう。 Windows のコマンドプロンプト、Mac のターミナル、どちらでも同じように使えます。

基本的な使い方(A レコードの確認)

オプションなしでドメイン名を入力すると、デフォルトで A レコード(IP アドレス) を問い合わせます。

C:\> nslookup example.com

実行結果の例:

権限のない回答:
名前:    example.com
Address:  93.184.216.34
「権限のない回答」とは?

これはエラーではありません。「このパソコンが普段使っている DNS サーバー(キャッシュサーバー)が、代理で答えてくれましたよ(管理元の権威サーバーからの直接回答ではないですよ)」という意味です。IP アドレスが表示されていれば成功です。

レコードタイプを指定して確認する

MX レコードや NS レコードなどを確認したい場合は、-type= オプションを使用します。

MX レコード(メール)の確認

C:\> nslookup -type=mx example.com

NS レコード(ネームサーバー)の確認

C:\> nslookup -type=ns example.com

CNAME レコード(別名)の確認

C:\> nslookup -type=cname www.example.com
反映されないときは?

DNS の設定変更が世界中に行き渡るまでには、TTL(Time To Live) という設定時間の分だけタイムラグが発生します(数分~数日)。「設定したのに反映されない」という場合は、自分のパソコンの DNS キャッシュが古いままの可能性があります。その場合は、Google のパブリック DNS(8.8.8.8)などに直接問い合わせてみましょう。

C:\> nslookup example.com 8.8.8.8

これで新しい情報が返ってくるなら、設定自体は正しく行われています。あとは手元の環境に反映されるのを待つだけです。

便利テクニック

実は、この記事の冒頭で紹介した DNS Lookup Tool は、裏側でこの「Google パブリック DNS」を直接参照しています。 つまり、わざわざコマンドで `8.8.8.8` を指定しなくても、ツールで検索すれば「世界中に設定が反映されているか」を即座に確認できます。 キャッシュの影響を受けずに確認したい場合は、ぜひツールを活用してください。

まとめ

DNS は「インターネットの電話帳」として、ドメイン名と IP アドレスをつなぐ重要な役割を担っています。

  • A レコード: Web サーバーの 住所(IP) を教える(基本!)
  • CNAME レコード: ドメインの 別名 を付ける(クラウド活用に必須!)
  • MX レコード: メールの 配送先 を指定する
  • NS レコード: ドメインの 管理者 を指定する

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

インフラ(クラウド/NW/仮想化)から Web 開発まで、技術領域を横断して活動するエンジニア💻 コンシューマー向けエンタメ事業での新規開発・運営経験を活かし、実戦的な技術ノウハウを発信中

[ Certs ] CCIE Lifetime Emeritus / VCAP-DCA ✒️ [ Life ] 技術書・ビジネス書愛好家📖 / 小・中学校で卓球コーチ👟

目次