こんにちは、インフラエンジニアのryuです。
今回はDNSのレコードについて詳しく解説したいと思います。DNSのレコードとはIPアドレスの登録情報です。AレコードやCNAMEレコードなど様々な種類があります。Linuxを構築して、レコードの登録をしてみましょう。初心者の方に向けて、DNSのレコードを概要から設定方法まで解説します。
目次
DNSのレコードとは?
DNSのレコードって?
A?MX?CNAME?
DNSレコードとは、DNSサーバーに登録されている情報のことです。
AやCNAMEは登録の種類です。
DNSサーバーを勉強していると、「Aレコード」や「CNAMEレコード」という単語を聞いたことがあるでしょう。そもそもレコードとは何なのでしょか?
今回の記事では、初心者の方に向けてDNSレコードについて徹底解説します。
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について勉強したい方はこちらの参考書がオススメです。