はじめに
頭の中で考えても、理解しているのか、理解していないのかわからないので、
アウトプットを通じてDNSについて、理解しようと思ってブログにしました。
今回はお名前.comとAWS Route53 で考えてみました。
参考にとぶ
DNSって?
DNS(Domain Name System)は、インターネット上のドメイン名とグローバルIPアドレスを対応付けるシステムです。人が覚えやすいドメイン名(例:example.com)を、コンピュータが理解しやすいIPアドレスに変換する役割を担っています。
例:IPv4
example.com => 172.184.xxx.xxx
ネームサーバーとは?
ドメイン名を対応するIPアドレスにマッピングします。
権威サーバーやフルサービスリゾルバ(再起的リゾルバ)
※マッピング:一つの値を別の値に関連付けるプロセス
例えば、
Aレコードはドメイン名をIPv4アドレスにマッピングします。
example.com => 172.184.xxx.xxx
CNAMEレコードはドメイン名を別のドメイン名(エイリアス)にマッピング
www.example.com => example.com
PTRレコードはIPアドレスを対応するドメイン名に逆マッピング
172.184.xxx.xxx => example.com
ネームサーバーの種類
1.権威ネームサーバー(Authoritative Name Server)
権威ネームサーバーは、インターネット上の他のサーバーからの問い合わせに対して、そのドメイン名に関連するIPアドレスや他の重要な情報(メールサーバーの場所、サブドメインのアドレスなど)を提供します。
2.再帰的ネームサーバー(Recursive Name Server):フルサービスリゾルバ
ドメイン名をIPアドレスに解決するために、必要に応じて一連の問い合わせを行います。エンドユーザーがウェブサイトにアクセスしようとすると、再帰的ネームサーバーは、そのリクエストを権威ネームサーバーまで追跡し、必要な情報を取得して返答します。このプロセスには、複数のDNSサーバーへの問い合わせが含まれることがあります。
ドメイン登録業者とネームサーバーの関係
お名前.comで取得した独自ドメインをAWSのRoute 53で利用するという事は?
お名前.comで取得した独自ドメインをAWSのRoute 53で利用することは、実質的にそのドメインの権威DNS(Domain Name System)サーバーをお名前.comからRoute 53に移動する
移動の概念
お名前.comで取得した独自ドメインをAWSのRoute 53で利用する場合、そのドメインの権威DNSをRoute 53に「移動」するという表現は、実際にはドメインの登録(レジストラ)自体を移動させるわけではなく、ドメインのDNS管理をRoute 53に移行する
=> ドメインのネームサーバー(NS)レコードをお名前.comからRoute 53に割り当てられたネームサーバーに変更する作業
=> ドメインのDNSレコードの管理と解決がRoute 53になる
ドメインの移動の流れ
ドメイン名の権威DNSサーバーは、そのドメインに関するすべてのDNSレコード(例えば、どのIPアドレスがそのドメイン名に対応するか、メールサーバーはどこにあるかなど)を保持しています。ドメインをRoute 53に移動するプロセスは以下のようになります:
-
Route 53でホストゾーンを作成: Route 53のダッシュボードで、新しいホストゾーンを作成します。ホストゾーンは、あなたのドメイン名に関連するDNSレコードを保持するコンテナのようなものです。
-
ホストゾーンのNSレコードを確認: ホストゾーンを作成すると、Route 53はそのホストゾーン用のネームサーバー(NS)レコードを提供します。これらのNSレコードは、Route 53があなたのドメインの新しい権威DNSサーバーであることを示します。
-
お名前.comでNSレコードを更新: お名前.comのドメイン管理ページにアクセスし、ドメインのNSレコードをRoute 53から提供されたものに更新します。これにより、お名前.comではなくRoute 53があなたのドメインのDNSクエリに対する「権威」となります。ちなみに、お名前.comでNSレコードを更新する場合は、最後のピリオドを除かないと更新できない使用。
-
DNSの伝播を待つ: DNSレコードの変更は即時には反映されず、全世界のDNSサーバーに伝播するのに数時間から48時間かかる場合があります。この間、あなたのドメイン名に対するクエリは徐々にRoute 53のネームサーバーによって解決されるようになります。
このプロセスを完了すると、Route 53があなたのドメインの権威DNSサーバーとして機能し、DNSレコードの管理(Aレコード、MXレコード、CNAMEレコードなど)をRoute 53のインターフェースを通じて行えるようになります。
反映の確認:
% nslookup -type=NS [対象ドメイン]
なぜ移動した方がいいのか?
AWSの他のサービス(例えば、ALBなど)を簡単に設定できます。
NSレコードとSOAレコードについて
Route 53で独自ドメインを利用することと権威DNSの移動
AWSのRoute 53でお名前.comで取得した独自ドメインを利用する場合、実際には権威DNSサーバーの指定を変更していることになります。つまり、ドメインに関連するDNSレコードの管理を、お名前.comのシステムからAWS Route 53へ移動することです。これにより、Route 53がそのドメインの権威DNSサーバーとして機能し、ドメイン名の解決に関する「権威」を持つことになります。
ドメインのNSレコード(ネームサーバーレコード)をRoute 53のネームサーバー情報に更新することで、世界中のDNSリゾルバに対して、このドメインに関する問い合わせはRoute 53によって解決されるべきであると指示します。
NSレコードとSOAレコードについて
-
NSレコードは、特定のドメインのDNSクエリに対する権威ネームサーバーを指定するために使用されます。ドメインをRoute 53に移行する際に、お名前.com(または他のドメイン登録業者)のDNS管理ページでRoute 53のNSレコードに更新します。これにより、ドメイン名に関するすべてのDNS問い合わせがRoute 53にルーティングされます。
=>NSレコードの更新はユーザーが行います
=>このドメインに関する問い合わせはRoute 53によって解決すると指示 -
SOAレコード(Start of Authority Record)は、ドメインに関するDNSゾーンの権威を持つネームサーバーに関する情報を提供します。これには、ドメインのプライマリDNSサーバー、ドメイン管理者の連絡先、ゾーンファイルのリフレッシュレート、リトライレート、有効期限、およびキャッシュの最小TTL(Time To Live)などの情報が含まれます。SOAレコードは、DNSゾーンの最上位に存在し、DNSゾーンの管理に関する情報を提供します。
=>SOAレコードはDNSサービスプロバイダーによって管理
=>ユーザーが直接触ることはない
名前解決の流れ
クライアント(例えば、ウェブブラウザ)から権威DNSサーバーまでの名前解決プロセスは、複数のステップを経て行われます。このプロセスでは、クライアントがドメイン名(例: www.example.com
)に基づいて特定のIPアドレスを求め、そのドメイン名に対応する権威DNSサーバーから正確な情報を取得します。以下に、このプロセスの主要なステップを説明します。
ステップ1: クライアントからのDNSクエリ
-
HOSTSファイルのチェック: クライアントは最初に、オペレーティングシステムのHOSTSファイルをチェックします。ここにドメイン名が存在し、対応するIPアドレスが指定されていれば、そのIPアドレスを使用して接続を試みます。
-
ローカルDNSキャッシュのチェック: HOSTSファイルにエントリがない場合、次にクライアントはローカルDNSキャッシュをチェックします。ここに最近解決されたドメイン名とそのIPアドレスが一時的に保存されています。
-
再帰的DNSサーバーへのクエリ: ローカルDNSキャッシュにも該当するエントリがない場合、クエリはクライアントが設定されている再帰的DNSサーバーに送られます。
ステップ2: 再帰的DNSサーバーの役割
- 再帰的DNSサーバーは、要求されたドメイン名のIPアドレスを見つけるために、さまざまなDNSサーバーに問い合わせを行います。
- 最初に、再帰的DNSサーバーはルートDNSサーバーに問い合わせます。ルートDNSサーバーは全てのトップレベルドメイン(TLD、例:
.com
、.net
、.org
)の情報を持っており、要求されたドメイン名のTLDに対応するネームサーバーを指示します。
ステップ3: トップレベルドメイン(TLD)ネームサーバー
- 再帰的DNSサーバーは、ルートDNSサーバーから受け取った情報に基づいて、TLDネームサーバー(例:
.com
ドメインのネームサーバー)に問い合わせを行います。 - TLDネームサーバーは、要求されたドメイン名(
example.com
)の権威DNSサーバーのアドレスを提供します。
ステップ4: 権威DNSサーバー
- 再帰的DNSサーバーは、TLDネームサーバーから受け取った情報に基づいて、そのドメインの権威DNSサーバーに問い合わせます。権威DNSサーバーは、要求されたドメイン名(
www.example.com
)に関する正確なDNSレコード(例えばAレコード、AAAAレコード)を持っています。 - 権威DNSサーバーは、要求されたドメイン名のIPアドレスを再帰的DNSサーバーに提供します。
ステップ5: IPアドレスのクライアントへの返送
- 再帰的DNSサーバーは、権威DNSサーバーから受け取ったIPアドレスをクライアントに返送します。
- クライアント(ウェブブラウザ)はこのIPアドレスを使用して、最終的にウェブサーバーに接続
階層的なDNS構造のメリット
- もしクライアントが直接、各階層のDNSサーバーに問い合わせを行うと負担になる。
これを再帰的DNSサーバーがこの役割を担い必要な全ての階層を横断して情報を取得し、最終的な結果をクライアントに返す。 - 再帰的DNSサーバーは、一度問い合わせたドメイン名の結果をキャッシュに保存。同じ問い合わせがあれば、名前解決がすぐにできる。
- 再起的な問い合わせはセキュリティ対策になる。
今回のブログで取り扱わなかったけど、今後作成するかもしれない
- 完全修飾ドメイン名(FQDN)とサブドメインとグルーレコードについて
- メール関連:SPF/DKIM/DMARCについて
- IPS/IDSについて
- AWKコマンドで遊んでみる
など
参考
DNSとは – JPNIC
DNSとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
Route53でお名前.comで取得した独自ドメインを利用する
DNSレコードとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
ネームサーバー(DNSサーバー)とは─わかりやすく解説| Kinsta®
【図解】DNSサーバーとは?設定・変更と確認方法 – カゴヤのサーバー研究室
お名前.comで取得したドメインをRoute53のネームサーバで管理設定してみた | DevelopersIO
Route 53でドメインの実運用に必要な、ネームサーバ(NS)やメールサーバ(MX/SPF/DKIM)のひととおりのDNS設定を実施する