Menu

BLOG ベアメールブログ

DNSとは? 仕組み、DNSレコードの種類と設定〜確認方法について解説

DNS

DNSは、Webサイトやメールシステムを支える必要不可欠な仕組みのひとつです。Webサーバーやメールサーバーの設定・運用にはDNSの知識が欠かせません。特に「DNSレコード」については、その種類や意味を正しく理解しておきたいところです。DNSレコードの設定に不備があると、Webサイトの閲覧やメール配信に支障をきたす可能性があるからです。ここでは、DNSの基礎知識とともに、DNSレコードの種類や設定方法を解説します。

DNSの仕組み

DNSとは何か?

DNSとは「Domain Name System」の略称で、インターネット上でドメイン名を管理・運用するためのシステムです。

具体的には、インターネット上に存在するコンピュータの住所を番号で表した「IPアドレス」と、その住所を人間にとってわかりやすいように名前で表した「ドメイン名」を対応づける「名前解決」を行うための仕組みです。ドメイン名からIPアドレスを調べることを「正引き」と呼び、IPアドレスからドメイン名を調べることを「逆引き」と呼びます。

PCやスマートフォンからWebサイトのサーバーへアクセスする場合など、コンピュータ同士が通信する際には、すべてIPアドレスによって相互に検索し、接続しています。しかし数字の羅列であるIPアドレスは、人間が識別して利用するには困難なものです。DNSという仕組みがあるおかげで、あるWebサイトにアクセスする際にそのサーバーのIPアドレスを覚えなくても、ドメイン名を入力すれば自動的にIPアドレスに変換され、Webサーバーへアクセスできるようになるのです。

この仕組みを実現するために、DNSは世界中に存在する多数のサーバーで構成されています。世界中のドメインとIPアドレスをマッピングするために、たった1つのサーバーがすべての情報を管理するのではなく、階層構造と権限移譲によって複数のサーバーで分散して管理し、全体のデータベースを形作っています。このシステムを構成しているサーバーを「DNSサーバー」といいます。

DNSサーバーの種類

DNSサーバーは、大きく「ネームサーバ」と「フルリゾルバ」という2つの種類に分類できます。

【ネームサーバー】

名前(ドメイン)と電話番号(IPアドレス)を紐づける電話帳(台帳)のような役割を持っています。「権威DNSサーバー」や「コンテンツDNSサーバー」とも呼ばれ、保有する情報に基づき、フルリゾルバからの問い合わせへの回答を行います。その中でも、名前解決の際にフルリゾルバが最初に問い合わせを行うサーバーを「DNSルートサーバー」といいます。これは世界で13台しか存在しません。DNSルートサーバーは、DNSの仕組みを支え、いわば全てのDNSサーバーの親とも言えるべき存在です。

【フルリゾルバ】

ネームサーバに問い合わせを行うサーバーで、「DNSキャッシュサーバー」とも呼ばれます。各ネームサーバーはすべてのドメイン、IPアドレスの情報を保有しているわけでありません。そのため、フルリゾルバは各ネームサーバーに質問を投げかけ、名前解決が完了するまで次々に各ネームサーバーを渡り歩くといった役割を担っています。また、一度確認したドメインとIPアドレスの対応状況をフルリゾルバ内に保持(キャッシュ)し、再度同じ名前解決をする際にネームサーバーをもう一度渡り歩く、といった余計な手間を省くことができます。これが、「DNSキャッシュサーバー」と呼ばれる所以です。

ドメイン名とDNSサーバーの構造

DNSはドメイン名を管理するにあたり、ドメインの階層構造に従って、各ネームサーバーに権限移譲することで分散して全体を構成しています。

ドメイン名の階層構造は以下のように4階層に分かれています。

ドメイン名の構成の説明図

トップレベルドメイン:

ドメイン名の1番右側に位置する部分(ラベル)。トップレベルドメインには、地理的な制限のない「gTLD」(generic Top Level Domain)と、国や地域ごとに割り当てられる「ccTLD」(country code Top Level Domain)の2種類があります。

第2レベルドメイン:

ドメイン名の右から2番目に位置するラベル。例えばJPドメインでは、株式会社などの法人向けの「co」、ネットワークサービス向けの「ne」、財団法人や社団法人、協同組合などの組織向けの「or」といった属性型のものと、組織の属性に関係なく利用できる汎用型のものがあります。

第3レベルドメイン:

ドメイン名の右から3番目に位置するラベル。独自ドメインを取得する際に自社名やサービス名などを入れる場合が多いでしょう。

第4レベルドメイン:

第3レベルドメインの管理下となるので、一般的にWebサーバーを表す「www」や、その他ホスト名、サブドメインなどを入れる場合が多いでしょう。

ドメイン名はこのようにルートを頂点にしたツリー構造のようになっており、この階層構造に従ってDNSのネームサーバーは権限を「委任」することでドメイン名を手分けして管理を行っているのです。

ドメイン名のツリー構造の説明図

DNSによる名前解決の順序

一般的にDNSサーバーは、次のような順序で名前解決を行います。

1.PC ⇒ フルリゾルバ

ブラウザにURLを入力すると、ドメインとIPアドレスの紐づけに関する問い合わせを、PCからフルリゾルバへ行います。

2.フルリゾルバ ⇒ DNSルートサーバー

フルリゾルバから最上位のDNSサーバである「DNSルートサーバー」へ問い合わせを行います。

3.DNSルートサーバー ⇒ フルリゾルバ

DNSルートサーバーはフルリゾルバに対し「管理情報(紐づけの情報)を持っているDNSサーバの情報」を回答します。

4.フルリゾルバ  ⇒ 管理情報を持つネームサーバー

フルリゾルバはDNSルートサーバーから受け取った情報をもとに、管理情報を持つDNSサーバーへ問い合わせを行います。

5.管理情報を持つネームサーバー ⇒ フルリゾルバ ⇒ PC  

DNSサーバーより管理情報がフルリゾルバに返され、さらにフルリゾルバより管理情報がPCへと送られます。これにより、ドメインとIPアドレスの紐づけが完了し、ブラウザ上にWebサイトが表示されます。

このように名前解決は、DNSルートサーバーを起点として、フルリゾルバが各ネームサーバーを渡り歩くことで行われます。

DNSレコードの種類

DNSを正常に動作させるには、「DNSレコード」(リソースレコード)と呼ばれる設定情報の記述が必要です。前述した通り、DNSのネームサーバーは、ドメインとIPアドレスを紐づける台帳のような仕組みを保持しています。この台帳は「ゾーンファイル」と呼ばれ、DNSレコードはそのゾーンファイルに記載されている「一行ごとの詳細情報」を指します。

DNSレコードは以下の情報・形式で成り立ちます。

  • 指定するドメイン名
  • そのレコードのTTL(Time to Live:キャッシュの生存時間)
  • class(※基本的に変更することはない)
  • DNSレコードのタイプ
  • 指定するデータ
DNSレコードの説明図

DNSレコードのタイプ(種類)

DNSサーバーを正常に動かすには「ドメイン」「IPアドレス」の対応表であるゾーンファイル設定が必要です。ゾーンファイル設定では、情報の種類に応じてDNSレコードを記載していくことになります。この「情報の種類」を「レコードタイプ」と呼び、次のような種類が存在します。

Aレコード

ドメイン名(ホスト名)に対するIPアドレスを指定するレコードタイプ(正引き)

PTRレコード

IPアドレスに対するドメイン名(ホスト名)を指定するレコードタイプ(逆引き)

AAAAレコード

Aレコードと同じくホスト名に対するIPアドレスを指定するが、特にIPv6のアドレスを指定する際に使用するレコードタイプ

SOAレコード

「ゾーンファイルの基となるデータを持つネームサーバーの名前」や、「管理者のメールアドレス」など、ドメインの管理情報を表すレコードタイプ

NSレコード

あるゾーンに対して権威を持つネームサーバーを指定するためのレコードタイプ

MXレコード

メール配送先ホストのドメイン名と、配送における優先度を定義するレコードタイプ

メール転送先ホストはAレコードが設定されている必要があります。また、優先度は設定された数字が小さい方が優先となります。

CNAMEレコード

ドメイン名(ホスト名)の別名を定義するレコードタイプ

CNAMEが定義されているドメイン名を名前解決しようとした場合、その指定した別名のDNSレコードを参照しにいくため、別名のレコードを別途設定しておく必要があります。

TXTレコード

ドメイン名(ホスト名)に関連付けるテキスト情報を記載するレコードタイプ

メールの送信ドメイン認証技術である「SPF」や「DKIM」を設定する場合に、このレコードタイプを利用して情報を記載します。

SPFレコード

送信ドメイン認証技術「SPF」を使用し、メールを送信可能なドメインを指定するためのレコード。TXTレコードタイプとして記述する

SPFレコードの記載方法についてはこちらの記事をご参照ください。
SPFレコードの書き方とは?記述例を総まとめ | ベアメールブログ

この中でメールサービスの稼働で特に重要なのは、以下4つのレコードタイプです。

  • Aレコード
  • PTRレコード
  • MXレコード
  • SPFレコード(TXTレコード)

メールを宛先に届けるために、DNSは非常に重要な役割を果たしています。「なりすましメール」など悪質な迷惑メールを防ぐために、ISPや携帯キャリア、メールサービスのプロバイダは、メールの送信元の正当性をDNSの情報をもとに検証します。そのため、これらのレコードの設定に不備があると、迷惑メールだと判断されてブロックされたり、「迷惑メールフォルダ」に振り分けられたりする可能性が高まります。

送信したメールが「迷惑メール」にならないために気を付けたいDNSの設定については、以下の記事で詳しく解説しています。
迷惑メール判定されないために注意したいDNSの設定とは? Part1 | ベアメールブログ
迷惑メールに判定されないために注意したいDNS設定とは? Part2 | ベアメールブログ

DNSレコードのTTLとは

DNSサーバーにおいて重要な設定のひとつに「TTL(Time To Live)」があります。ここでのTTLとは、「フルリゾルバがキャッシュする情報の有効期限」として扱われます。前述したようにフルリゾルバは、一度取得した情報をキャッシュとして内部に保持します。しかし、いつまでも同一の情報を保持していては、ネームサーバーの更新が反映されません。そこで情報の有効期限をTTLとして定め、期限を過ぎた場合はキャッシュから情報を削除します。

TTLの単位は「秒」のため、600と記載すれば600秒=10分キャッシュを保持して良いということになります。TTL値が小さいほど頻繁にフルリゾルバからネームサーバーへの確認頻度が上がるため、ネームサーバーへのクエリ(問い合わせ)回数が増えて負荷も上がります。特にレコードの中でも「NS」「SOA」「CNAME」のTTL値は、インターネットの安定のためにも長めに設定することが推奨されています。

TTL値の早見表

600=10分
3600=1時間
21600=6時間
43200=12時間
86400=24時間
604800=1週間

DNSレコードの設定・確認方法

DNSサーバの設定方法

DNSレコードを含む各種設定方法は、DNSのネームサーバーをどこで運用するかによって異なります。昔であればネームサーバーも自分で構築し、運用することが一般的でしたが、現在ではドメインを取得した事業者やレンタルサーバー事業者がサービスとして提供しているDNSサーバーを利用することが多いでしょう。その場合、サーバー内のファイル情報を直接編集することは少なく、専用の管理画面や管理ツールのGUIを通じて作業することが多いです。

DNSレコードの確認方法

DNSレコードを確認するには、WindowsやLinux上でコマンドを実行して確認するか、DNSレコードを確認できるWebサービスを利用するという方法があります。

Windowsで実行する場合は、一般的にコマンドプロンプト上でnslookupコマンドを使用します。Linuxの場合は、シェル上でdigコマンドを使用します。
それぞれ特に問い合わせを行うDNSサーバーを指定しない場合は、OSに設定されたDNSサーバーに対してクエリが送信され、返ってきた結果が表示されます。コマンドオプションを指定することで、MXレコードやTXTレコードなど特定のレコードタイプについて確認することができます。

手軽な方法としては、公開されているWebサービスを利用して調べることもできます。CMANが提供している「nslookup(dig)テスト【DNSサーバー接続確認】」では、調べたいドメイン名を入力し、必要であればオプションを選択した上で「nslookup実行」か「dig実行」のボタンを押すだけで結果を確認できます。

CMAN「nslookup(dig)テスト【DNSサーバー接続確認】」https://www.cman.jp/network/support/nslookup.html (2022/4/12確認)

まとめ

本稿では、DNSの仕組みとDNSレコードの設定例などを解説してきました。DNSは、ドメイン名とIPアドレスの対応付けや、メールの配送先の指定など、企業の情報システムの基盤ともいえる仕組みです。もし今後、これらを運営する場合にはDNSやDNSレコードの役割を正しく理解しておく必要があります。特にDNSレコードは、登録ルールを守り正しい記載を心がけるようにしましょう。