用語辞典・DNS・ドメイン

Aレコード

Aレコードとは

Aレコードは、DNSで一つのドメイン名に一つのIPv4アドレスを対応付けるリソースレコードです。一般にA record(エー・レコード)と読み、AはAddress(アドレス)を表します。

レコードのデータ部分には、32ビットのIPv4アドレスが一つ入ります。表示時には192.0.2.10のようなドット区切りの十進表記が使われますが、DNSメッセージ内では4オクテットの値です。

一件のAレコードが持つアドレスは一つですが、同じ名前へ複数のAレコードを登録できます。「一つの名前には一つのIPv4だけ」とは限りません。

同じ名前から、別々のIPv4アドレスを持つ複数レコードへ各レコードのデータ部分には、四つのオクテットから成る一つのアドレス
一つのドメイン名に複数のAレコードがあり、各レコードが四つのブロックで表した一つのIPv4アドレスと異なるサーバーを指す図解
図1複数のAレコードは負荷分散や冗長化に使われます。ただしDNSが返す順番だけで、すべての利用者へ均等に接続を振り分けられるとは限りません。

Aレコードは、五つの要素に分けると読める

ゾーンファイルに見える一行を、役割ごとに分解する名前からIPv4への対応だけを記録する
所有者名www.example.test.

どの名前の情報か

TTL3600

キャッシュ可能秒数

クラスIN

インターネット用

種類A

IPv4アドレス

データ192.0.2.10

32ビットのアドレス一つ

図2末尾の点がある完全修飾ドメイン名や、TTL・クラスを省略できるゾーンファイル記法はDNS運用ソフトごとに補助規則があります。DNSメッセージ上のレコード自体は、NAME・TYPE・CLASS・TTL・RDATAなどのフィールドを持ちます。

ポート番号、通信方式、URLのパスは入らない

Aレコードが示すのはIPv4アドレスです。Webの80番・443番といったポート番号、HTTPかHTTPSか、/news/のようなURLのパスは含みません。アプリはURLのスキームや既定値、別の設定から通信方式とポートを決めます。

また、Aレコードの存在は、そのアドレスでWebサーバーが動作していることや、TLS証明書が名前に一致することを保証しません。名前解決で接続候補を得た後、各層の処理が続きます。

複数のAレコードは、一つのRRsetとして扱う

同じ所有者名・種類・クラスを持つ複数レコードの集合がRRsetです。RRset内の各Aレコードは同じTTLで扱われ、DNSキャッシュにも集合として保存されます。権威DNSが応答順を変えることはありますが、クライアントが必ず先頭だけを使うとは限りません。

大規模サービスでは、利用者の地域や問い合わせ元に応じて異なるRRsetを返す運用もあります。その場合も、返された一件一件のAレコードのデータは一つのIPv4アドレスです。

逆引きはAレコードを反対向きに読む処理ではない

IPv4アドレスから名前を調べるときは、アドレスのオクテット順を逆にしてin-addr.arpa配下の名前を作り、PTRレコードを問い合わせます。Aレコードを値から検索する標準的な逆向き処理ではありません。

正引きのAと逆引きのPTRは別に管理されるため、両方が一致する保証はありません。メール運用などで整合性が求められる場合は、双方を意図的に設定して確認します。

仕様の確認資料:RFC 1035「Domain Names — Implementation and Specification」、RFC 2181「Clarifications to the DNS Specification」

関連用語