Aレコードとは
ホスト名とIPアドレスを直接関連付けるために使用する。
Aレコードにホスト名とIPアドレスを記載することで、WEBサイトのドメイン名とWEBサーバのIPアドレスのマッピングが可能となる。
所謂名前解決と呼ばれるものである。
IPv4ではAレコード、IPv6ではAAAAレコードと使用するレコードが異なる。
クライアントから対象のWEBサーバのIPアドレスに接続するためには、Aレコードに記載したホスト名を指定する。
NAME | CLASS | RDATA | |
---|---|---|---|
1 | example.com. | IN A | 192.0.2.1 |
CNAMEレコードとは
DNSレコードの1つ。ドメインの別名を接続先のドメイン名に関連付けるために使用する。
別名を複数設定することができ、それらを接続先のドメインにリダイレクトできる。あらかじめAレコードを設定する必要がある。
NAME | CLASS | RDATA | |
---|---|---|---|
1 | example.com. | IN A | 192.0.2.1 |
2 | rep1example.com. | IN CNAME | example.com. |
3 | rep2example.com. | IN CNAME | example.com. |
CNAMEレコードを使用するメリット
サーバ更改などでホスト名を変更するとき切り替えが容易になる。
Aレコード(ホスト名)を直接指定すると、接続元でホスト名を記載したプログラムや設定ファイルを全て改修しなければならない。
CNAMEレコードを使用することで、接続元で記載している別名をそのまま使用でき、Aレコードのホスト名やCNAMEレコードのホスト名を変更することで対応できる。
注意点
CNAMEレコードで指定したドメインに対して、MX(メール交換)レコードやNS(ネームサーバ)レコードで同じドメインを指定することはセキュリティの観点から避けるべき。
例えば1つの物理サーバでWEBサイト、DNS、メールを運用するとき、以下のようにレコード間で同じドメインを指定することがある。
良くない例
NAME | CLASS | RDATA | |
---|---|---|---|
1 | example.com. | IN NS | dns.example.com. |
2 | example.com. | IN MX 10 | mail.example.com. |
3 | dns.example.com. | IN A | 192.0.1.2 |
4 | mail.example.com. | IN CNAME | dns.example.com. |
5 | rep1example.com. | IN CNAME | dns.example.com. |
上記の良くない例だと、外部のDNSから対象ホストのIPアドレスを検索できない可能性があり、トラブルの元となる。
以下のように、MXやNSに設定するホスト名に対し、AレコードでIPアドレスを設定することでトラブルを防げる。
良い例
NAME | CLASS | RDATA | |
---|---|---|---|
1 | example.com. | IN NS | dns.example.com. |
2 | example.com. | IN MX 10 | mail.example.com. |
3 | dns.example.com. | IN A | 192.0.1.2 |
4 | mail.example.com. | IN A | 192.0.1.2 |
5 | rep1example.com. | IN CNAME | mail.example.com. |