ドメイン ネーム システムは、インターネットまたはプライベート ネットワークに接続されたコンピューター、サービス、またはその他のリソース用の階層型の分散命名システムです。 ブラウザでコンピューター サービスまたはデバイスを見つけて接続する必要がある場合は、DNS がバックグラウンドで動作し、簡単に記憶できるドメイン名をそのリソースの数値のインターネット プロトコル (IP) アドレスに変換します。 DNS はインターネットの電話帳と考えることができます。 これは、インターネットに接続されているすべてのデバイスとサービスを名前で簡単に識別できるようにするために作成されました。
ドメイン名は、インターネット ソースに関連付けられたユーザー フレンドリな名前です。 たとえば、www.f5.com はドメイン名であり、URL は F5 が所有するサーバーに関連付けられています。
ドメインの細分化はサブドメインと呼ばれます。 たとえば、support.f5.com は F5.com のサポートのサブドメインです。 サブドメインとは、ドメイン名の左側にドットが続くものです。
DNS ルックアップは、クライアント (Web ブラウザなど) が特定のドメインについて DNS サーバーにクエリを実行するプロセスです。 次に、DNS サーバーは IP アドレスを返信し、クライアントを目的の宛先に導きます。
ドメイン名空間は、インターネットの全体的な命名構造を定義します。 ルートドメイン名を最上位とするドメイン名のツリー構造です。 そのルート ドメインから、.com、.net、.org などの主要なドメインが分岐します。
名前空間ツリーはゾーンに分割されます。 特定のドメインで利用可能なリソースを定義します。
ネーム サーバーはゾーンに関する情報を保存します。 ネーム サーバーには 2 つの種類があります。 プライマリとセカンダリ。 各ゾーンのデータはプライマリ ネーム サーバーとセカンダリ ネーム サーバーの両方に保存されます。
DNS リゾルバは DNS のクライアント側です。 最終的にドメイン名を IP アドレスに変換するクエリを開始および順序付ける役割を担います。
簡単に言うと、ユーザーがブラウザに入力したドメイン名 (www.f5.com など) は、DNS サーバーによって IP アドレス (104.219.105.148) に変換されます。 これにより、デバイスはインターネット上で探しているリソース (この場合は F5 ホームページ) を見つけることができます。
このプロセスを詳しく見てみましょう。
ユーザーがブラウザにドメイン名 www.f5.com と入力したとします。 ブラウザは www.F5.com がどこにあるかわからないため、ローカル DNS サーバー (LDNS) に要求を送信して、Web サイトのレコードがあるかどうかを問い合わせます。 LDNS にその特定のサイトのレコードがない場合、LDNS はインターネット ドメインの再帰検索を開始し、 www.F5.com の所有者を特定します。
まず、LDNS はルート サーバーの 1 つにアクセスし、そこから .com DNS サーバーにリダイレクトされます。 次に、.com サーバーは www.F5.com の所有者を決定し、F5.com の名前サーバー (NS) レコードを LDNS に通知します。
次に、LDNS は F5.com DNS サーバーの NS レコードを照会します。 f5.com DNS サーバーは www.F5.com という名前を検索します。 名前が見つかった場合は、アドレス (A) レコードを LDNS に返します。 この A レコードには、要求名、LDNS でその名前に割り当てられた IP アドレス、および名前の存続時間 (TTL) が含まれます。 TTL は、LDNS が F5.com DNS サーバーに再度問い合わせるまでに A レコードを保持する期間を指定します。
LDNS は A レコードを受信すると、TTL で指定された時間、IP アドレス情報をキャッシュします。他のクライアントが同じ情報を必要とする場合、LDNS はクエリを送信する前に、独自の名前のキャッシュからクエリに応答します。 情報をローカルに保持できるため、f5.com DNS サーバーに問い合わせ続ける必要がなくなり、そのリソースへの将来の接続が高速化されます。
次に、ブラウザは IP アドレスを使用してwww.F5.com :80 への接続を開き、GET /… を送信します。これにより、Web サーバーは Web ページの応答を返します。
実際のところ、DNS は上記の例で示したものよりもはるかに複雑ですが、その仕組みについては大体理解できるはずです。
DNS レコードは、どの IP アドレスがどのドメイン名に関連付けられているかを DNS サーバーに伝えるマッピング ファイルです。 また、DNS サーバーにそれらの要求を処理する方法を指示します。 DNS レコードにはさまざまな種類がありますが、特定のドメインのすべての DNS レコードは、DNS ゾーンと呼ばれる場所に含まれています。 DNS ゾーンは、インターネットが 1 つの特定のドメインの IP アドレスのみを検索できるようにするコンテナーと考えてください。
一般的な DNS レコードの種類は次のとおりです。
アドレス レコードまたは A レコード (ホスト レコードとも呼ばれます) は、DNS の中心的なレコードです。 これらのレコードはドメインを IP アドレスにリンクします。 AAAA レコードは A レコードと同じですが、32 ビットの IPv4 IP アドレスではなく、128 ビットの IPv6 アドレスを返します。
ネーム サーバー (NS) レコードは、ドメインの DNS 情報を通信するサーバーを決定します。 通常、ドメインにはプライマリ ネーム サーバー レコードとセカンダリ ネーム サーバー レコードがあります。
Mail Exchange は、特定のドメインのサーバーに直接電子メール メッセージを記録します。 ドメインには複数の MX レコードを定義でき、それぞれに異なる優先度を設定できます。 最も小さい数字が最高の優先度となります。 最初の優先度レコードを使用してメールを配信できない場合は、2 番目の優先度レコードが使用されます。
テキストまたは TXT レコードには任意のテキストを含めることができますが、機械で読み取り可能なテキストを定義するためにも使用できます。
正規の NAME または CNAME レコードは、エイリアス名を別の正規のドメイン名にリンクします。 たとえば、alias.example.com は example.com にリンクする場合があります。
DNS はインターネットを可能にする主要なテクノロジーの 1 つです。 これは、ネットワーク インフラストラクチャの重要なコンポーネントでもあります。 可用性が高く、インテリジェントで、安全かつスケーラブルな DNS インフラストラクチャを備えることは非常に重要であるため、DNS は単にコンテンツやアプリケーションを配信するだけでなく、分散型で冗長性のあるアーキテクチャを管理し、高い可用性と質の高いユーザー応答時間を保証します。 DNS に障害が発生すると、ほとんどの Web アプリケーションは正常に機能しなくなります。 これにより、DNS は重要になるだけでなく、攻撃の主な標的にもなります。 適切な DNS インフラストラクチャがない場合、顧客はアプリケーションやコンテンツにアクセスできず、ニーズを満たすために他の場所を利用することになる可能性があります。
ただし、標準の DNS サービスには一定の制限があります。 まず、DNS によってアプリケーション/Web サイト/コンテンツが利用可能になるとしても、DNS は、それらが稼働しているかどうか、あるいは存在しているかどうかは気にしません。
さらに、DNS には負荷を分散する実際の機能がありません。 その IP でサポートされているアプリケーションが過負荷になったりダウンしたりした場合でも、すべての IP アドレスが引き続き使用されます。
DNS にはステートフル アプリケーションの概念もありません。つまり、ユーザーが同じ IP アドレスに戻ることを保証できません。 たとえば、特定のデータ センターにアクセスし、そのデータ センターで管理されているショッピング カートを構築した場合、次回名前を解決したときに同じ IP が取得されるという保証はありません。
最後に、標準の DNS サーバーは 1 秒あたり限られた数の DNS クエリにしか応答できないため、分散型サービス拒否 (DDoS) 攻撃に対して脆弱になります。
DNS はインターネットのバックボーンですが、ネットワーク内で最も脆弱なポイントの 1 つでもあり、攻撃対象として非常に価値の高いものとなっています。 DDoS 攻撃により、DNS サーバーがハイジャックまたは障害状態に陥り、リクエストが悪意のあるサーバーにリダイレクトされる可能性があります。 これを防ぐには、高性能で分散化された安全なアーキテクチャをネットワークに統合する必要があります。 企業は、DNS サージや DDoS 攻撃が発生したときに、DNS サーバーを追加する必要があります。
DNS サーバーとクラウド サービスは 1 秒あたりにさまざまな量のリクエストを処理できますが、クエリが増加するとコストも増加するため、このソリューションでは変更が必要な場合に手動での介入が必要になることがよくあります。 また、新たな脆弱性が次々と発生するため、従来の DNS サーバーでは頻繁なメンテナンスとパッチ適用が必要となり、コストがさらに高くなります。
DNS が深刻な攻撃を受けやすいことがわかったので、アプリケーション配信コントローラー (ADC) が DNS インフラストラクチャを保護する方法について説明しましょう。 ADC は複数の DNS サーバーの負荷を分散し、応答をキャッシュすることで拡張性を提供し、DNS サーバーが大量のトラフィックと大規模な攻撃を処理できるようにします。 この機能により、顧客は多数の DNS サーバーを同時に導入できるようになり、アプリケーションの可用性を最大化し、速度を向上させ、パフォーマンスを向上させることができます。 ADC は DDoS 攻撃も迅速に検出し、それらの接続をサーバーから遠ざけるか、完全に拒否します。 ADC は DNSSEC をサポートしており、組織はキャッシュ ポイズニングや中間者攻撃などの脅威から防御できます。 これらすべてにより、ADC は、過負荷や攻撃が発生した場合にバックアップとして追加の DNS サーバーをプロビジョニングする必要性を減らし、顧客の総所有コストを削減します。
つまり、高性能 ADC は、DNS サーバーをさまざまな攻撃から保護できるだけでなく、拡張性を提供し、パフォーマンスを向上させ、TCO を削減しながら、DNS サーバーが大量のトラフィック負荷を処理できるようにすることもできます。
モバイル アプリやモノのインターネット (IoT) デバイスなどの新しいテクノロジーの成長に伴い、DNS も成長しています。 さらに、アプリケーションの数も急増しており、それらのアプリケーションにアクセスするトラフィックの量も増加しています。 過去 5 年間で、.com やその他のアドレスに対する DNS クエリの量は 2 倍に増加しました。 2016 年には 1,000 万を超えるドメイン名がインターネットに追加されました。クラウド、モバイル、IoT の実装がますます増えるにつれて、DNS はさらに速いペースで成長すると予想されます。 世界のインターネットトラフィックに関する最近の調査によると、インターネットユーザーの数は2020年末までに41億人に増加すると予想されています。 DNS サーバーはインターネットにとって非常に重要であるため、DNS が適切に機能しなければ、インターネットは実質的に役に立たなくなります。
IoTと同様に、クラウド サービスの人気はここ数年で大幅に高まりました。 その結果、DNS インフラストラクチャとそれに関連する利点や脅威について考えることがこれまで以上に重要になっています。 一方、クラウドベースの権威 DNS は、より優れたパフォーマンス、高可用性、セキュリティ、およびスケーラビリティを提供します。 一方で、DNS インフラストラクチャや DDoS 攻撃などの脅威に対しても脆弱です。
これらの脅威は、Web サイト、アプリケーション、クラウド サービス、その他のリソースへのアクセスを大幅に妨害する可能性があります。 こうした攻撃を阻止し、従業員や顧客が必要なときに必要な場所から必要なリソースにアクセスし続けるためには、IT インフラストラクチャを効果的に計画し管理することが極めて重要です。