DNS

DNSのレコードとは?種類や使い方は?【LinuxのBindで様々なレコードを設定してみよう】

こんにちは、インフラエンジニアのryuです。

今回はDNSのレコードについて詳しく解説したいと思います。DNSのレコードとはIPアドレスの登録情報です。AレコードやCNAMEレコードなど様々な種類があります。Linuxを構築して、レコードの登録をしてみましょう。初心者の方に向けて、DNSのレコードを概要から設定方法まで解説します。

関連【おすすめ】コマンドを打ちながらLinuxが学べるサイトInfraAcademy

サーバー構築を実践で身につけるInfraAcademy

※本ページには、プロモーション・アフィリエイトリンクが含まれています

DNSのレコードとは?

DNSのレコードって?

A?MX?CNAME?

DNSレコードとは、DNSサーバーに登録されている情報のことです。

AやCNAMEは登録の種類です。

DNSサーバーを勉強していると、「Aレコード」や「CNAMEレコード」という単語を聞いたことがあるでしょう。そもそもレコードとは何なのでしょか?

今回の記事では、初心者の方に向けてDNSレコードについて徹底解説します。

DNSレコードの概要から設定方法まで、実践的に理解できる内容となっております。内容は以下の通りです。

DNSサーバーについて理解を深めたい人や、応用情報・ネスぺなとの試験を受ける人は知っておくべき内容です。

では、詳しく解説します。

DNSレコードとは記録情報

DNSレコードとは、そもそも何なのでしょうか?レコードとは記録という意味です。

つまり、DNSサーバーの記録情報です。

DNSサーバーは名前解決をするサーバーです。ドメイン名(サーバーの名前)の問い合わせが来たら、IPアドレス(サーバーの場所)を返します。

DNSサーバーの仕組みについて、まだ理解できていない人はこちらの記事を参考にしてください。

レコードは、サーバーの名前とIPアドレスを返答するための記録、情報です。

レコードの種類はその他にもありますが、まずはこのように理解して大丈夫です。

イメージは、電話帳に書かれている電話番号と名前です。

まだ、良く分からないという人は具体的に設定すると理解できると思います。設定方法もこれから解説します。

レコードの設定方法は?

ここからは、レコードの設定方法を解説します。レコードは、サーバー名とIPアドレスを紐づける情報のことです。

つまり、レコードの設定は、サーバーの名前とIPアドレスを設定してあれ下ればよいのです。

では、詳しい設定方法を解説します。

DNSサーバーの環境

まず、DNSサーバーを構築しましょう。

今回は以下のような環境で設定します。

  • Linux(debian10.0)
  • bind9(1:9.11.5)

OSはLinuxでDNSサーバーはbind9を使用して構築します。

DNSサーバーの構築

環境が準備できたら、DNSサーバーを構築しましょう。

今回はDNSサーバーを構築するのがメインではないので、設定の詳細については、こちらの記事をご確認下さい。

設定ファイルの内容は以下の通りです。

まず、”/etc/bind/named.conf.default-zones”ファイルでゾーンの定義をします。

// be authoritative for the localhost forward and reverse zones, and for                                                // broadcast zones as per RFC 1912

zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
        type master;
        file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
        type master;
        file "/etc/bind/db.255";
};

//↓ここの設定を追加
zone "test.com" {
        type master;
        file "/etc/bind/db.test.com";
};

named.conf.default-zonesでゾーンの設定をしました。今回は”test.com”というゾーンファイルを定義しました。この作成したゾーンファイルにレコードを設定していきます。

レコードを設定する

次にゾーンファイルの中身です。ここでレコードの設定をします。”/etc/bind/db.test.com”ファイルを作成します。

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
hostA   IN      A       192.168.1.1
hostB   IN      A       192.168.1.2
www    IN     CNAME hostA

ゾーンファイルには、SOAレコード、NSレコード、Aレコード、CNAMEレコードを登録しています。それぞれのレコードについては後ほど解説します。

レコードを登録したら、サーバーを再起動させてdigコマンドで名前解決できるか確認しましょう。

dig hostA.test.com @localhost
dig hostB.test.com   @locahost
dig www.test.com    @localhost

ちなみに、@はDNSサーバーの指定です。今回は自身(localhost)がDNSサーバーとして動作しているので”@localhost”を指定しています。

コマンドを実行するとこのように名前解決ができます。

レコードの確認

DNSで良く使うレコード

ここまで、DNSサーバーを構築して、レコードを登録する方法を解説しました。次は、レコードの種類について解説します。

先ほどのゾーンファイルには、以下のレコードを登録しました。

  • Aレコード
  • CNAMEレコード
  • SOAレコード
  • NSレコード

この4つのレコードは特に重要なので、覚えてください。このレコードに絞って解説します。

Aレコード

まず、一番多く使うAレコードです。

Aレコードとは、DNSで定義されるそのドメインについての情報の種類の一つで、特定のホスト名に対応するIPアドレス(IPv4アドレス)を定義するもの

(IT用語辞典)

ホスト名とIPアドレスを紐づけるものです。

先ほどのファイルの中身では、以下の部分がAレコードです。ホスト名とIPアドレスを登録しているのが分かります。

hostA IN A 192.168.1.1
hostB IN A 192.168.1.2

CNAMEレコード

次にCNAMEレコードです。WebサーバーのURLを登録するときに使います。

CNAMEレコードとは、DNSで定義されるそのドメインについての情報の種類の一つで、あるドメイン名ホスト名の別名を定義するもの。別名は「エイリアス」(alias)と呼ばれる。

(IT用語辞典)

SOAレコード

SOAレコードは様々な情報を登録するレコードです。

SOAレコードとは、DNSで定義されるそのドメインについての情報の種類の一つで、ゾーンの管理のための情報や設定などを記述するためのもの。

(IT用語辞典)

NSレコード

NSレコードは定義したゾーンの名前解決を行うDNSサーバーを定義します。

NSレコードとは、DNSで定義されるそのドメインについての情報の種類の一つで、ドメインのゾーン情報を管理するDNSサーバを定義するもの。

(IT用語辞典)

今回の場合は、”test.com”はlocalhostで名前解決すると定義しています。

DNSのレコードの種類一覧

先ほどは良く使うレコードについて解説しました。その他のレコードについても簡単に説明します。DNSで登録できるレコードの一覧は以下のようになります。

Aレコードホスト名に対応するIPアドレス
AAAAレコードホスト名に対応するIPv6アドレス
PTRレコードIPアドレスに対応するホスト名
NSレコードゾーンを管理するDNSサーバー
SOAレコード管理情報を記述
CNAMEホスト名の別名
MXメールサーバー

DNSのレコードとは?まとめ

最後に今回の記事のまとめです。

DNSのレコードはDNSサーバーに登録された情報のことです。

レコードには、様々な種類があり、今回は以下のレコードを紹介しました。

  • Aレコード→ホスト名とIPアドレスを紐づける
  • CNAMEレコード→Aレコードの別名を定義する
  • SOAレコード→DNSサーバーの情報を定義する
  • NSレコード→指定したドメインのDNSサーバーを定義する

DNSサーバーを構築する人はぜひ覚えておきましょう。以上で終わります。ありがとうございました。

このようなITに関連する内容を当ブログでは、発信しているので興味のある方は、是非ご覧ください。

さらにlinuxについて勉強したい方はこちらの参考書がオススメです。

ABOUT ME
ryu@InfraAcademyというインフラ学習サービス運営
InfraAcademyというインフラエンジニア向けの学習サービスを運営しております。 インフラエンジニアからフルスタックエンジニア、PdM サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。
RELATED POST