DNSレコードについては普段あまり触れる機会がないので、時間がない中で設定しなければならないと困りますよね。
本記事では、DNSレコードの記述例とその意味や役割、記載ルールについてまとめました。
お名前.comやバリュードメインなど、ドメインの管理サービスによって記述内容が若干変わりますが、今回はバリュードメインでの記述方式で解説します。
目次
DNSレコードとは
DNSレコードとはドメインネームシステム(Domain Name System)レコードの略称で、DNSサーバー内でドメインを管理するためのデータのことです。
ブラウザでURLを打ち込んだ時、ページの内容を読み込むよりも前に参照されるデータなので、DNSレコードが間違って設定されているとページが表示されません。
DNSレコードには、Aレコード、CNAMEレコード、TXTレコードなど様々な種類があります。
DNSレコードの種類と使用例、意味
以下では、example.comのDNSレコードを設定した場合の記述例と意味を解説します。
なお、記載の方法はドメインの管理サービスによって若干違います。
本記事では、バリュードメインでの記載方法に従って記述例と意味を解説します。
基本的な記載ルール(どのサービスでも共通)
@(アットマーク)の意味
ホスト名なし(サブドメインではなく、ネイキッドドメインを意味する)
(例 a @ 123.123.123.3 → example.comのIPを123.123.123.3に設定)
.あり .なしの意味
.なしの場合、その後ろにドメインがつく
(例 a www 123.123.123.3 → www.example.comのIPを123.123.123.3に設定)
.ありの場合、ドメインそのものを表す
(例 a example.com. 123.123.123.3 → example.comのIPを123.123.123.3に設定)
Aレコード
記述例 | 意味 |
---|---|
a @ 123.123.123.3 | example.comのIPアドレスを123.123.123.3に設定する |
a www 123.123.123.3 | www.example.comのIPアドレスを123.123.123.3に設定する |
a * 123.123.123.3 | example.comの全てのサブドメイン(例 www.example.com , blog.example.com , sub1.example.comなど)のIPアドレスを全て123.123.123.3に設定する |
Aレコードは、URLとIPアドレスをつなぐ役割があり、よく使用されるDNSレコードです。
名前の由来は、アドレス(Address)の頭文字をとってAレコードとなっています。
ブラウザにURLを打ち込むとWebページが表示されますが、その際に使用されるWebサーバーのIPアドレスは、このAレコードに記載されています。
AAAAレコード
記述例 | 意味 |
---|---|
aaaa @ 8fe0:0:0:0:8f61:ac8:30cd:a16e | example.comのIPアドレスを 8fe0:0:0:0:8f61:ac8:30cd:a16eに設定する。 |
aaaa sub1 8fe0:0:0:0:8f61:ac8:30cd:a16e | sub1.example.comのIPアドレスを 8fe0:0:0:0:8f61:ac8:30cd:a16eに設定する。 |
aaaa @ 8fe0::8f61:ac8:30cd:a16e | example.comのIPアドレスを 8fe0:0:0:0:8f61:ac8:30cd:a16eに設定する。 |
IPアドレスには「IPv4」と「IPv6」の2種類があり、それぞれ使われるレコードが異なります。
IPアドレスがIPv4形式の場合は「Aレコード」、IPv6形式の場合は「AAAAレコード」となります。
IPv6形式が生まれた理由
通常のIPv4形式では、192.168.0.1のように、8bit×4ブロックの全32bitでIPアドレスが表現されていました。
(256=2^8=8bit)
ただ、IPv4形式で表現できるIPアドレスの数は、
8bit×4ブロック=256×256×256×256=2^32≒約40億個
だったので、世界中でサーバーが増えるにつれてIPアドレスに空きがなくなってきました。(参考:IP枯渇問題)
そこで、IPv6では16bit×8ブロックの全2^128まで拡張されます。
表記では、1~Fまでの16進数(4bit)で記述され、16bitを1ブロックとして表記します。
0省略の表記ルール
ABCD:EF12:3456:789A:BCDE:F123:4567:89AB
記述時のルールとして、「0:0:0:0」と0が続く場合は「::」と省略することができます。
ABCD:EF12:0:0:0:0:4567:89AB
↓
ABCD:EF12::4567:89AB
IPv6の中でも以下の4アドレスは、特殊な意味を持つのでWebサーバーとして設定することはできません。
名称 | 正式なIPv6記載 | 省略形 |
---|---|---|
ループバックアドレス | 0:0:0:0:0:0:0:1 | :1 |
未指定アドレス | 0:0:0:0:0:0:0:0 | :: |
CNAMEレコード
記述例 | 意味 |
---|---|
cname sub www.example.com. | sub.example.comのIPアドレスをwww.example.comと同じにする |
CNAMEレコードとは、Aレコードの別名を定義するレコードです。
プログラミングの「変数」と同じようなものです。
カノニカルネーム(Canonical Name)の略が名前の由来です。
サブドメインを別のサブドメインのWebサーバーに参照させたい時などに利用します。
ドメインのwww.ありなし
www.ありでもなしでも同じWebサーバーにアクセスさせたい時は
cname www @
a @ 192.0.1.123
※意味
www.example.comは@(example.com)と同じIPアドレス
@(example.com)のIPアドレスは192.0.1.123
つまり、www.example.comもexample.comもIPアドレスは192.0.1.123
のようにしたくなりますが、こちらの設定は推奨されていません。
cnameに@を使用すると、メールが使えないなどの弊害が起こるためだそうです。
その場合は、cnameを使用せず、Aレコードで
a @ 192.0.1.123
a www 192.0.1.123
という方法で設定しましょう。
MXレコード
記述例 | 意味 |
---|---|
mx sub.example.com. 10 | ***@example.comというメールアドレスはsub.example.comが受信(優先度10)します。 |
MXレコードは、独自ドメインのメールを使用する際は必要なレコードです。
名前の由来はメールエクスチェンジ(Mail Exchange)の略です。
なお、MXレコードの優先度は、MXレコードを複数記述したとき使用されます。
優先度の数字によって、数字が低いほど優先度が高く、数字が高いほど優先度が低くなります。
mx sub1.example.com. 10
mx sub2.example.com. 20
と設定されていた場合、aoyagi@example.comに送られたメールはsub1.example.comの方で受信されます。
ちなみに、複数のレコードで同じ数値が指定した場合はランダムに配信が行われます。
受信メールサーバーの負荷を分散するために、あえて同じ優先度で利用されることもあります。
TXTレコード(メールのSPF設定の場合)
記述例 | 意味 |
---|---|
txt @ v=spf1 a:example.com ~all | example.com(サブドメイン無し)のTXTレコードを「v=spf1 a:example.com ~all」にする →example.comから送信されるメールは、aレコードで設定されたexample.comのIPアドレス以外は全て拒否する。 |
SPFレコードの役割と記述の意味
v=spf1という急に謎の文字が出てきましたが、こちらはSPFレコードと言って、送信元IPアドレスが「怪しいものではないですよ」ということを伝えるデータです。
(SPF=Sender Policy Frameworkの略)
この設定をしておくことで、自社ドメインが「なりすまし」に利用されるリスクを防ぎます。
例えば、ドメイン「example.com」のIPアドレス「192.168.1.123」から送信されたメールのみを認証させたいときは、次のようなSPFレコードを追記します。
txt @ v=spf1 ip4:192.168.1.123 ~all
1つずつ、意味を解説していくと、以下のようになります。
記述 | 意味 |
---|---|
v=spf1 | 「SPF version」といい、SPF自体のバージョンを記載する部分です。 |
ip4:192.168.1.123 | ipv4形式で192.168.1.123のIPアドレス |
~all | それ以外(192.168.1.123以外)のアドレスは全て送信を拒否する |
この送信ドメイン認証の仕組みを入れていないと、悪意のある第三者が自社のドメインになりすましてメールを送信することができてしまいます。
悪用されると顧客に被害が及ぶ危険性があり、社会的信用を失いかねませんので、メールを使う場合は設定しておきましょう。
TXTレコード(サーチコンソールのドメイン認証など)
記述 | 意味 |
---|---|
txt @ google-site-verification=XXXXXX_XX | txtレコードにサーチコンソールの認証コード(google-site-verification=XXX・・・)を設定する |
Googleサーチコンソールでのドメインの所有権を確認する手段として、txtレコードに認証コードを記載する方法があります。
NSレコード
記述 | 意味 |
---|---|
ns abc ns1.example.com. | サブドメイン abc.example.comについては、ネームサーバns1.example.comに問合わせてください。 |
NSレコードはサブドメインのネームサーバー指定するレコードです。
ネームサーバー(Name Server)の略でNSレコードとなっています。
ネイキットドメインとサブドメインのサイトを別々のWebサーバーで運用したい時などに使えます。
ネームサーバーを複数設定する場合は、
ns abc ns1.xserver.jp.
ns abc ns2.xserver.jp.
ns abc ns3.xserver.jp.
のように連続で記載します。
なお、ネームサーバーが複数設定される理由は、最初に設定したネームサーバーが稼働していない状態でもサブのネームサーバーに接続できるため、より安定して稼働できるからです。
その他のDNSレコード
上記の他にも
- ALIASレコード 別名で定義するレコード
- SOAレコード ドメインに関する管理情報を格納する
- SRVレコード - 特定のサービスのポートを指定する
- PTRレコード - リバースルックアップ(逆引き)でドメイン名を提供する
など様々なDNSレコードがありますが、使用頻度が低いため詳細は割愛します。
TTLとは
TTL(time-to-live(存続時間))とは、DNSサーバーがレコードを更新する頻度です。
DNSレコードは、ブログの記事のように頻繁に更新するものではありません。
滅多に変わらないものを頻繁にチェックしても余計な通信となるので、基本的にチェック頻度は低く設定されています。
バリュードメインのデフォルト値は3600秒となっており、ちょうど1時間となります。
ただ、設定をすぐに確認したい時などは、あえて60秒で設定して、動作確認に問題なければ3600秒に戻すという使い方もできます。