🦔

DNSレコードついて

に公開

はじめに

先日AWSのRoute53を色々なサイトの見よう見まねで構築しました。とりあえず動いたはいいものの、DNSレコードやドメインについてあまり理解しないまま進んでしまったので、一旦整理するためにこの記事を作成しました。

1.DNSとは

ドメイン名とIPアドレスの対応を管理するシステム。

2.DNSレコードについて(ゾーンファイル)

権威DNSサーバー内に存在し、そのドメイン名に関連付けられたIPアドレスや、ドメインに対するリクエストを処理する方法など、ドメインに関する情報の提供を指示するもの。

一般的なレコードの種類
・Aレコード : ドメインとIPv4の対応情報
・AAAAレコード : ドメインとIPv6の対応情報
・MXレコード : ドメイン(電子メール)とメールサーバーの対応情報
・CNAMEレコード : ドメイン名と別ドメイン名(エイリアス)の対応情報
・NSレコード : ドメインとドメインの権威DNSサーバーの対応
・SOAレコード : ドメインの管理情報を定義(特別なレコード)

※過去に初めてDNSを知った時、「コンピューターのhostsファイル」をインターネット上で利用できるようにしたシステムの事だとおおざっぱな理解をしてました。(ただのホスト名とIPアドレスの名前解決システムだと思ってました。)
その為、CNAMEレコードやNSレコードをみた時に、DNSというシステムについてよくわからない状態に陥ってました。

3.理解できたこと

実際にフリードメインを取得し、そのドメインでRoute53を構築する流れの中で気づいた事を残しておきます。

1. DDNS Nowでフリードメインを取得

この時点ではドメインを利用できる権利を取得しただけなので、実際にインターネット上で利用できません。

試しに取得したドメインに対してdigコマンドを実行してみます。

% dig +short NS ドメイン.f5.si
# 何も表示されない

2. Route53でホストゾーンを作成

取得したドメイン名を登録しここでパブリック向けなのかプライベート(ローカルネットワーク)向けなのかを選ぶ。今回はパブリック(インターネット向け)を選択。

3. ホストゾーンでDNS設定を行う

ホストゾーン作成後、デフォルトでNSレコードSOAレコードが作成されてます。つまりドメインの「管理情報を定義するレコード」とドメインの「権威DNSサーバー情報を記したレコード」はAWS側で自動的に作成されている事になります。(これがないとDNSゾーンとして機能しないとも言えます)
例えばNSレコードには「ns-****」という値が4つ登録されてます。これがホストゾーンに登録したドメインの権威DNSサーバーになる訳です。(4つあるのは可用性・冗長性・信頼性を実現する為、との事)


※もちろん現時点でAWS側では、このドメインが「DDNS Now」で取得したドメインだという事は知る由もないでしょう。

4. digコマンドを実行

試しにdigコマンドでNSレコードの一番上の権威DNSサーバーを調べてみます。

% dig ns-2023.awsdns-60.co.uk.

; <<>> DiG 9.10.6 <<>> ns-2023.awsdns-60.co.uk.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 407
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1410
;; QUESTION SECTION:
;ns-2023.awsdns-60.co.uk.       IN      A

;; ANSWER SECTION:
ns-2023.awsdns-60.co.uk. 142993 IN      A       205.251.199.231

;; Query time: 19 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Thu Jul 10 11:40:30 JST 2025
;; MSG SIZE  rcvd: 68

サーバーが稼働している事を確認できました。AWSで管理しているDNSサーバーという事でしょう。
続いてSOAレコードの値についても調べてみました。

ns-2023.awsdns-60.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

このゾーンは「s-2023.awsdns-60.co.uk.」によって管理されて、管理者メールは「awsdns-hostmaster@amazon.com」との事。後方の数字については順番に「シリアル番号」、「リフレッシュ間隔(秒)」、「リトライ間隔(秒)」、「有効期限(秒)」、「最小TTL(秒)」を指しているそうです。
※通常のSOAレコードの管理情報はファイルで管理されています。今回はAWS側で管理している権威DNSサーバーなので、当然ユーザー側ではファイルを直接参照したり操作できません。ただ、ユーザーが認識できるよう値を表示してくれているという所でしょうか。

5.ドメインレジストリにNSレコードを登録

DDNS Nowのサイトに戻り、作成したドメインのNSレコードに値を登録します。現時点ではDDNS Nowで取得したドメインを使用できる権利を得ているだけなので、このドメインをインターネット上(AWS)のDNSサーバーに登録してあげる必要があります。

ここにホストゾーンのNSレコードの値を4つ記載します。
この作業をしてあげる事で、インターネット上でドメインとして認識されるようになります。

再度取得したドメインに対してdigコマンドを使用して確認してみます。

% dig +short NS ドメイン.f5.si 
ns-379.awsdns-01.com.
ns-626.awsdns-41.net.
ns-1063.awsdns-49.org.
ns-2023.awsdns-23.co.uk.

ホストゾーンのNSレコードの値が無事に表示されました。

6.Aレコードの作成

この後にホストゾーンにAレコード(IPv4との対応)を追加してあげる事でインターネット上でWebサイトなどのドメイン名として認識してくれる事になります。

※補足ですが、Route53ではAレコードの値としてIPv4アドレスを指定する以外に、ALBやCloudFront、APIゲートウェイなどAWSリソースを指定する事もできます。

さいごに

Route53の設定をする上で、DDNS Now上でNSレコードの値を登録する手順について疑問を抱いてましたが、一つ一つ紐解いていく上で自分なりになぜその操作をしているのか理解する事ができました。今後も気づいた事があれば追記していこうと思います。

Discussion