このトピックでは、Alibaba Cloud DNS の基本概念を紹介し、名前解決の仕組みと DNS の設定方法を理解できるように説明します。
DNS システムの概要
DNS (ドメインネームシステム) は、インターネットの基盤インフラであり、企業イントラネットに不可欠なサービスです。人間が読みやすいドメイン名を、機械がルーティング可能な IP アドレスに変換します。この変換プロセスを名前解決と呼びます。
DNS は、ドメイン名を IP アドレスにマッピングする分散データベースであり、ユーザーが数値の IP アドレスを覚えなくてもネットワークリソースにアクセスできるようになります。DNS プロトコルは、ポート 53 で UDP 上で動作します。
DNS の 2 つの分類軸
DNS は、次の 2 つの軸で分類できます:
分類軸 | タイプ | 説明 |
ネットワーク環境別 | パブリック DNS | インターネットユーザーに提供し、パブリックドメイン名をパブリック IP アドレスに名前解決します。 |
内部 DNS | 企業の内部ネットワークに提供し、内部ドメイン名を内部 IP アドレスに名前解決します。 | |
名前解決チェーンにおける機能的役割別 | 権威 DNS | 特定のゾーン内でドメイン名と IP アドレスのマッピングを保持します。ドメインの名前解決における最終的な信頼できる情報源です。 |
再帰 DNS | クライアントに代わって DNS クエリプロセス全体を完了し、結果を返します。 |
ドメイン階層
ドメイン名は、階層型のツリー構造を使用して命名されます。インターネットに接続される各ホストまたはルーターには、固有の階層名があります。ドメイン名は、ドット (ピリオド) で区切られたラベルの並びで構成されます。
例
.comはトップレベルドメインです。aliyun.comはセカンドレベルドメイン (登録ドメインまたはエイペックスドメインとも呼ばれます) です。example.aliyun.comとwww.aliyun.comはサブドメインで、サードレベルドメインとも呼ばれます。test.example.aliyun.comはサブドメインのサブドメインで、フォースレベルドメインとも呼ばれます。
DNS サーバー階層
DNS の名前解決プロセスには、4 つの階層の DNS サーバーが関与します:
サーバータイプ | 機能 |
ルートネームサーバー | 正式名称は Root Name Server で、Root Server と略されます。ローカル DNS サーバーがキャッシュ内で名前解決結果を見つけられない場合、最初にルートネームサーバーに問い合わせて、トップレベルドメインネームサーバーの IP アドレスを取得します。 |
トップレベルドメインネームサーバー (TLD サーバー) | 配下に登録されたドメイン名を管理します。たとえば |
権威ネームサーバー (NS) | 特定のゾーン内で一意であり、そのゾーン内のドメイン名と IP アドレスのマッピングを保持します。例:Alibaba Cloud DNS のパブリックゾーンサービス。 |
ローカル DNS サーバー (Local DNS) | クライアントからの再帰リクエストに応答し、名前解決結果を取得するまで上位サーバーに対して反復的に問い合わせます。例として、ユーザーの端末に自動的に割り当てられる DNS サーバー、ISP から割り当てられる DNS サーバー、Google DNS や 223.5.5.5 などのパブリック DNS サービスがあります。 |
ドメイン階層の各レベルには専用のネームサーバーがあり、最上位にルートネームサーバーがあります。各階層のネームサーバーは下位階層のネームサーバーの IP アドレスを保持しており、段階的な問い合わせが可能になります。
DNS の名前解決メカニズム
DNS の名前解決プロセス
ユーザーがドメイン example.com を使用して Web サイトにアクセスする場合の名前解決プロセスは次のとおりです:
ユーザーがブラウザーに
example.comを入力すると、ブラウザーはローカル DNS サーバーにクエリリクエストを送信します。ローカル DNS サーバーが名前解決データをキャッシュしている場合は、example.comに対応する IP アドレスをブラウザーに直接返し、プロセスは手順 9 に進みます。キャッシュデータが見つからない場合は、手順 2 に進みます。ローカル DNS サーバーがルートネームサーバーに問い合わせます。
ルートネームサーバーが
.comの TLD ネームサーバーのアドレスをローカル DNS サーバーに返します。ローカル DNS サーバーが
example.comのクエリリクエストを.comの TLD ネームサーバーに送信します。.comの TLD ネームサーバーが、example.comの権威ネームサーバーのアドレスをローカル DNS サーバーに返します。ローカル DNS サーバーが権威ネームサーバーにクエリリクエストを送信します。
権威ネームサーバーが
example.comに対応する IP アドレスをローカル DNS サーバーに返します。ローカル DNS サーバーが IP アドレスをブラウザーに返します。
ブラウザーが IP アドレスを使用して Web サイトサーバーにアクセスします。
Web サイトサーバーが Web ページコンテンツを返します。
再帰クエリ
再帰クエリとは、再帰 DNS サーバーがクライアントに代わってクエリプロセス全体を完了することを指します。各手順は再帰サーバーによって処理され、最終結果がクライアントに直接返されます。例:
クライアントがローカル DNS (再帰 DNS サーバー) にリクエストを送信し、
www.example.comの IP アドレスを問い合わせます。再帰サーバーが回答を知らない場合、ルートネームサーバー、TLD サーバー、権威ネームサーバーの順に問い合わせ、最終的な回答を取得するまで各手順に従って処理します。
クライアントは、再帰サーバーが最終的な名前解決結果を提供するのを待つだけで済みます。
特徴
クライアントは 1 回のクエリを送信し、1 回の応答を待ちます。
再帰サーバーはクエリプロセス全体を完了する必要があるため、負荷が比較的高くなります。
これは、クライアントとローカル DNS サーバーの間で最も一般的に使用される方式です。
一般的な用途
一般ユーザー、PC、ブラウザー:再帰クエリのみを使用し、反復クエリは処理しません。
ローカル DNS サーバー (ブロードバンドキャリアの DNS、8.8.8.8 などのパブリック DNS、企業イントラネットの DNS など):通常は再帰的な名前解決の役割を担い、上位サーバー (ルート、TLD、権威 DNS) に対して反復クエリを開始します。
パブリック DNS サーバー:エンドユーザーに対しては再帰的に動作し、上位 DNS サーバーに対しては反復的に動作します。
反復クエリ
反復クエリとは、DNS サーバーが問い合わせ元のサーバーに対して、保持している最適な参照情報を提供することを指します。サーバー自身が回答を持たない場合は、次に問い合わせるべき場所を問い合わせ元サーバーに通知し、問い合わせ元サーバーが処理を継続します。例:
ローカル DNS サーバーが
www.example.comの IP アドレスをルートネームサーバーに問い合わせます。ルートネームサーバーは IP アドレスを直接返さず、「TLD サーバーに問い合わせてください」という参照情報を返します。ルートネームサーバーは反復的な名前解決を実行しています。次に、ローカル DNS サーバーが TLD サーバーに問い合わせると、TLD サーバーは「この権威ネームサーバーに問い合わせてください」という別の参照情報を返します。TLD サーバーは反復的な名前解決を実行しています。
これは、権威サーバーが見つかり、最終結果がローカル DNS サーバーに返されるまで段階的に続きます。
特徴
問い合わせ元サーバーは、名前解決チェーンの各手順でクエリを送信します。
各サーバーは完全なクエリを完了するのではなく参照情報を返すだけであるため、負荷は比較的低くなります。
一般的な用途
ルートネームサーバー、TLD サーバー、権威ネームサーバー。
企業、学校、その他の組織が自社で構築した DNS サーバー。
パブリック DNS サーバー:エンドユーザーに対しては再帰的に動作し、上位 DNS サーバーに対しては反復的に動作します。
DNS レコード
DNS レコードは、ドメイン名をどのように名前解決するかを定義します。Alibaba Cloud DNS にドメインを追加した後、DNS レコードを設定して、ドメインが指し示す先 (IPv4 アドレス、IPv6 アドレス、別のドメイン名、メールサーバーのアドレスなど) を指定する必要があります。ドメインにアクセスされると、DNS システムはこれらのレコードに基づいて宛先アドレスを返し、ドメイン名を指定された宛先にマッピングします。
DNS キャッシュ
DNS キャッシュは、リクエストを行ったクライアントの近くに名前解決データを保存します。DNS データは、クエリ階層のどのレベルでもキャッシュできます。キャッシュにより再帰クエリの回数が減り、クエリのレイテンシが低下するため、ユーザーはより速く結果を取得できます。
TTL
TTL (Time to Live) は、名前解決結果をローカル DNS リゾルバーがどれくらいの期間キャッシュできるかを示します。TTL が期限切れになると、リゾルバーはレコードをキャッシュから削除します。期限切れ後にユーザーが同じドメイン名を再度リクエストした場合、リゾルバーは新しいクエリを実行する必要があります。
IPv4/IPv6 デュアルスタック
デュアル IP スタック (デュアルスタック) により、システムは IPv4 と IPv6 のプロトコルスタックを同時に使用できます。2 つのプロトコルスタックは並行して動作します。
DNS セキュリティ
DNS クエリフラッド攻撃
DNS クエリフラッド攻撃は、攻撃者が複数の侵害されたマシンを使用して、標的の DNS サーバーに対して大量のドメイン名クエリを送信する、サービス拒否 (DoS) 攻撃の一種です。1 秒あたりのクエリ数がサーバーの処理能力を超えると、正当な名前解決リクエストがタイムアウトし、サービス可用性に影響する可能性があります。
DNSSEC
DNSSEC (Domain Name System Security Extensions) は、デジタル署名を使用して DNS 応答の真正性と完全性を保証します。DNSSEC は、DNS スプーフィングやキャッシュポイズニングなどの攻撃を効果的に防止し、ユーザーが悪意のあるサイトにリダイレクトされることを防ぐことで、インターネットに対する信頼性を高めます。
EDNS Client Subnet
EDNS (Extension Mechanisms for DNS) Client Subnet は、Google によって提出された DNS の拡張プロトコルであり、再帰 DNS リゾルバーがクライアントの IP アドレス情報を権威ネームサーバーに渡すことを可能にします。
URL 転送
URL 転送 (URL リダイレクトとも呼ばれます) は、特別なサーバー設定を使用して、あるドメイン名へのリクエストを別の既存 Web サイトにリダイレクトする手法です。
HTTPDNS モバイル名前解決の概念
アプリケーション端末
ネットワークアクセスに使用される端末デバイスおよびアプリケーションサービスを指します。これには、モバイル端末、IoT デバイス、モバイルアプリケーションなどが含まれますが、これらに限定されません。
DNS over HTTPS (DoH)
DNS リクエストトラフィックを暗号化します。Alibaba Cloud Public DNS は、RFC 8484 で規定される TLS で暗号化された HTTP 接続を介して名前解決を提供します。
DNS over TLS (DoT)
DNS リクエストトラフィックを暗号化します。Alibaba Cloud Public DNS は、RFC 7858 で規定される TLS で暗号化された TCP 接続を介して名前解決を提供します。