DNS Aレコードの仕組みと役割について解説するイメージ画像

DNSのAレコードとは?


著者: Ahona Rudra
翻訳: 東條 百々朱

この記事はPowerDMARCのブログ記事 What Is a DNS A Record? Definition, Purpose, and Examples の翻訳です。
Spelldataは、PowerDMARCの国内正規代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。


主なポイント

  1. Aレコードは、ドメイン名やホスト名を対応するIPv4アドレスに紐付け、WebサイトなどのサーバーへアクセスできるようにするDNSレコードです。
  2. 1つのドメイン名に複数のAレコードを設定することで、冗長性を確保し、可用性を高めることもできます。
  3. Aレコードの構造はシンプルで、ホスト名をIPv4アドレスに対応付けます。
  4. Aレコードは、ドメイン名をIPv4アドレスへ直接紐付けるレコードです。
    一方、CNAMEレコードは、あるドメイン名を別のドメイン名のエイリアスとして設定するために使用します。
  5. Webサイトへ正常にアクセスできるようにするには、Aレコードを適切に設定することが重要です。

Domain Name System(DNS)において、Aレコードは主要なDNSレコードの1つです。
DNS Aレコードには、ドメイン名やホスト名に対応するIPv4アドレスが設定されます。

例えば、ドメインを登録している事業者とは別のホスティングサービスでWebサイトを運用している場合、Aレコードを使用してドメイン名をWebサーバーのIPv4アドレスへ紐付けることができます。
それでは、DNS Aレコードとは何か、なぜ必要なのか、そしてどのように設定・管理するのかを詳しく見ていきましょう。

DNS Aレコードとは?

Aレコードは、ホスト名をIPv4アドレスに紐付けるDNSレコードです。
Aレコードの「A」は「Address」を意味します。
DNSで広く使用されている基本的なレコードの1つであり、ドメイン名を対応するIPv4アドレスへ名前解決するために使用されます。

例えば、www.example.comというホスト名に対して、WebサーバーのIPv4アドレスである1.2.3.4をAレコードとして設定できます。
また、1つのホスト名に複数のAレコードを設定し、複数のIPv4アドレスを割り当てることもできます。
これにより、構成によっては負荷分散や冗長性の確保に利用できます。

反対に、複数のホスト名を同じIPv4アドレスへ紐付けることも可能です。
その場合は、それぞれのホスト名に対して、同じIPv4アドレスを指定したAレコードを設定します。

DNS Aレコードの仕組み

Webサイトのアドレスをブラウザに入力すると、ブラウザはWebサーバーへ接続するために、そのドメイン名に対応するIPアドレスを取得する必要があります。
そのため、DNSを利用した名前解決が行われます。

まず、コンピュータはDNSリゾルバに対して、入力されたドメイン名に対応するIPアドレスを問い合わせます。
リゾルバが以前に同じドメインを問い合わせており、有効な応答がキャッシュに残っている場合は、その情報を使用してすぐに応答できます。

キャッシュに必要な情報がない場合、リゾルバはDNSの階層構造に従って名前解決を進めます。
まず、ルートDNSサーバーへ問い合わせます。
ルートDNSサーバーは、.comや.orgなど、該当するトップレベルドメイン(TLD)のDNSサーバーを案内します。

その後、リゾルバはTLDのDNSサーバーから対象ドメインの権威DNSサーバーに関する情報を取得し、権威DNSサーバーへ問い合わせます。
権威DNSサーバーには、そのドメインに設定されているDNSレコードが保存されています。
その中でAレコードは、ドメイン名やホスト名をIPv4アドレスへ対応付ける役割を担います。

権威DNSサーバーからAレコードの情報を取得すると、リゾルバはそのIPv4アドレスをコンピュータへ返します。
ブラウザは取得したIPアドレスを使用してWebサーバーへ接続し、Webサイトのコンテンツを取得します。

こうしたDNSの応答は、端末やDNSリゾルバなどに一定期間キャッシュされることがあります。
そのため、同じWebサイトへ再びアクセスする際には、キャッシュされた情報を利用することでDNS問い合わせの一部を省略し、より迅速に接続できる場合があります。

Aレコードが必要な理由

Aレコードは、ドメイン名やホスト名を特定のIPv4アドレスへ紐付けるために使用される基本的なDNSレコードです。
例えば、Webサイトを運用している場合、Aレコードを使用してWebサイトのホスト名をWebサーバーのIPv4アドレスへ紐付けることができます。
多くの場合、AレコードはドメインのDNSを管理しているサービス上で設定します。

例えば、www.example.comでWebサイトを公開し、そのWebサーバーのIPv4アドレスが1.2.3.4である場合、wwwに対して1.2.3.4を指定するAレコードを設定できます。
ここで、1.2.3.4はWebサーバーのパブリックIPv4アドレスです。
ユーザーがブラウザからwww.example.comへアクセスすると、DNSによる名前解決が行われ、www.example.comに対応するIPv4アドレスとして1.2.3.4が返されます。

その後、ブラウザは取得したIPアドレスを使用してWebサーバーへ接続し、Webサイトのコンテンツを要求します。
HTTPSの場合、通常はTCPポート443が使用されます。
1つのホスト名に複数のAレコードを設定することもできます。

例えば、複数のWebサーバーを異なるIPv4アドレスで運用している場合、それぞれのIPアドレスをAレコードとして設定することで、構成によっては負荷分散や冗長性の確保に利用できます。
メールサーバーについては、メールの配送先を指定するためにMXレコードを使用します。
MXレコードが参照するメールサーバーのホスト名をIPv4アドレスへ名前解決する際には、Aレコードが使用されることがあります。

DNS Aレコードを作成する方法

通常、AレコードはドメインのDNSを管理しているサービスから設定します。
DNSを管理しているサービスは、ドメインレジストラ、Webホスティングプロバイダー、ClouDNSのような専用DNSサービスなどがあります。
これらのサービスでは、ドメインのDNSゾーンにアクセスし、DNSレコードの確認、追加、変更、削除などを行えます。

例えば、ClouDNSでAレコードを作成する場合は、ClouDNSアカウントへログインし、対象ドメインのDNSゾーン管理画面を開きます。
その後、新しいDNSレコードを追加する項目から、Aレコードを作成します。

一般的には、以下のような情報を設定します。
実際の項目名や設定方法は、利用しているDNSサービスによって異なる場合があります。

Type
A
Host/Name
Aレコードを設定するホスト名
TTL
1 Hour
Points to
WebサーバーのIPv4アドレス

DNS Aレコードの形式

Aレコードの形式は、RFC 1035で定義されています。
AレコードのRDATAには、32ビットのIPv4アドレスが格納されます。

要素 説明
Address IPv4アドレスを表す32ビットのインターネットアドレスです。

1つのホスト名に複数のIPv4アドレスを割り当てる場合は、複数のAレコードを設定できます。
Aレコードは、ゾーンファイルでは一般的に次のような形式で記述されます。
IN A

例えば、次のように記述できます。
www 3600 IN A 1.2.3.4

DNSでAレコードを問い合わせる方法

DNSルックアップとは、DNSへ問い合わせて、ドメイン名やホスト名に対応する情報を取得する処理です。
Aレコードを問い合わせる場合は、対象となるドメイン名またはホスト名と、問い合わせるレコードタイプとして「A」を指定します。

例えば、example.comのAレコードを問い合わせると、そのホスト名に設定されているIPv4アドレスを取得できます。
DNSクエリでは、主に次の情報を指定します。

1つ目は、問い合わせ対象となるドメイン名またはFQDN(完全修飾ドメイン名)です。
2つ目は、取得したいDNSレコードの種類を示すクエリタイプです。
Aレコードを指定すると、その名前に対応するIPv4アドレスが返されます。

なお、Aレコードが存在しないからといって、必ずしもNXDOMAINが返されるわけではありません。
NXDOMAINは、問い合わせたドメイン名自体がDNS上に存在しないことを示します。
ドメイン名は存在していてもAレコードだけが設定されていない場合は、異なる応答になります。

DNS Aレコードを確認またはルックアップする方法

DNS Aレコードは、さまざまな方法で確認できます。
代表的な方法として、nslookupやdigなどのコマンドラインツールがあります。
また、ブラウザから利用できるオンラインDNSチェックツールを使用することもできます。

コマンドラインを使用する場合は、例えば次のように実行します。
nslookup example.com

指定したドメイン名に対応するIPアドレスなどを確認できます。
dig example.com A

指定したドメインのAレコードについて、応答内容やTTLなどの詳細情報を確認できます。
通常、結果にはドメイン名、レコードタイプ(A)、TTL(Time To Live)、IPv4アドレスなどが表示されます。
これらの情報を確認することで、対象のドメイン名が意図したIPv4アドレスへ正しく名前解決されているかを確認できます。

一般的な問題とトラブルシューティング

DNS Aレコードに関する問題の多くは、設定内容やDNSキャッシュなどが原因で発生します。
代表的な問題と確認方法を見ていきましょう。

IPアドレスの設定が正しくない
ドメイン名が誤ったIPv4アドレスを指している場合、Webサイトが正しく表示されない可能性があります。
Aレコードに設定されているIPアドレスを確認し、ホスティングプロバイダーなどから指定された正しいIPアドレスと一致していることを確認してください。
DNS変更後に古い情報が残っている
Aレコードを変更しても、変更前のDNS情報が各DNSリゾルバなどのキャッシュに残っている間は、古いIPアドレスが返されることがあります。
新しい情報へ切り替わるまでの時間は、主にTTLや各環境のキャッシュ状況によって異なります。
そのため、Aレコードを変更した直後は、ユーザーによって新しいWebサーバーへ接続する場合と、以前のWebサーバーへ接続する場合があります。
キャッシュの問題
端末やDNSリゾルバなどには、DNSの問い合わせ結果が一定期間キャッシュされることがあります。
Aレコードを変更したにもかかわらず古いIPアドレスが返される場合は、キャッシュの有効期限が切れていない可能性があります。
必要に応じて、端末のDNSキャッシュをクリアしたうえで再度確認してください。
DNS更新の確認
オンラインのDNSチェックツールやdigコマンドなどを使用すると、現在参照できるAレコードを確認できます。
表示されたIPアドレスが、DNSで設定したIPv4アドレスと一致していることを確認してください。

DNS Aレコードとその他のDNSレコードタイプの違い

DNSにはAレコード以外にもさまざまなレコードタイプがあり、それぞれ異なる役割を持っています。

Aレコード
ドメイン名やホスト名をIPv4アドレスへ紐付けます。
AAAAレコード
Aレコードと同様の役割を持ちますが、IPv6アドレスへの名前解決に使用します。
CNAMEレコード
あるドメイン名を別のドメイン名のエイリアスとして設定します。サブドメインなどの管理にも利用されます。
MXレコード
ドメイン宛てのメールを受信するメールサーバーを指定します。
TXTレコード
任意のテキスト情報をDNSに公開するために使用します。
SPFやDMARCなどのメール認証にも利用されています。

このように、Aレコードはドメイン名やホスト名をIPv4アドレスへ名前解決する役割を持ち、その他のDNSレコードはメール配送、エイリアスの設定、ドメインやメールの認証など、それぞれ異なる用途に使用されます。

まとめ

ここまで、DNS Aレコードの仕組みや役割について説明しました。
Aレコードとは、ドメイン名やホスト名をIPv4アドレスへ対応付けるDNSレコードです。
例えば、www.example.comをWebサーバーのIPv4アドレスへ紐付けることで、ユーザーがドメイン名を入力した際に、適切なWebサーバーへ接続できるようになります。

ただし、ドメイン名の名前解決に必ずAレコードが必要とは限りません。
IPv6を使用する場合はAAAAレコードが利用されるほか、構成によってはCNAMEレコードなどが使用される場合もあります。
重要なのは、利用するサービスやネットワーク構成に合わせて、適切なDNSレコードを正しく設定することです。

WebサイトをIPv4アドレスで公開する場合は、Aレコードが意図したWebサーバーのIPv4アドレスを指していることを確認してください。
また、DNSを適切に管理するとともに、ドメインのセキュリティを強化することも重要です。
PowerDMARCは、DMARCをはじめとするメール認証の管理や監視を通じて、ドメインを悪用したなりすましやフィッシングへの対策を支援します。

よくある質問

DNS Aレコードを削除するとどうなりますか?
Aレコードを削除すると、そのAレコードを使用したIPv4アドレスへの名前解決ができなくなります。
例えば、WebサイトがそのAレコードだけを使用してWebサーバーのIPv4アドレスへ接続している場合、Aレコードを削除するとWebサイトへアクセスできなくなる可能性があります。
ただし、AAAAレコードやCNAMEレコードなど、別の方法で適切に名前解決できる構成になっている場合は、必ずしもサービス全体が停止するとは限りません。
1つのドメインに複数のAレコードを設定できますか?
はい。
1つのドメイン名やホスト名に、異なるIPv4アドレスを指定した複数のAレコードを設定できます。
このような構成は、複数のサーバーを利用した負荷分散や冗長性の確保などに使用されることがあります。
DNS Aレコードの変更が反映されるまでにどのくらい時間がかかりますか?
DNS Aレコードを変更した後、利用環境によっては古いDNS情報がキャッシュに残り、すぐに新しいIPアドレスへ切り替わらない場合があります。
新しい情報が参照されるようになるまでの時間は、主にTTLの設定やDNSリゾルバなどのキャッシュ状況によって異なります。
そのため、DNSレコードを変更する際は、事前にTTLを確認し、変更後もしばらくの間は新旧の情報が参照される可能性を考慮しておくことが重要です。