DNSサーバーは、Webブラウザー、アプリケーション、その他のネットワーク・ツールがインターネット上のWebサイトやその他のリソースを見つけて接続するのに役立つ特殊なコンピューターです。
これは、しばしば「インターネットの電話帳」と呼ばれるドメイン・ネーム・システム(DNS)の基盤を形成し、ユーザーが数値のIPアドレスを思い出して入力する代わりに、ドメイン名をWebブラウザーに入力してWebサイトにアクセスできるようにします。
DNSは、再帰DNSサーバー(再帰リゾルバー、DNSリゾルバー、DNSリカーサーとも呼ばれます)と権威ネーム・サーバー(ルート・ネーム・サーバー、トップレベル・ドメイン(TLD)ネーム・サーバー、セカンドレベル・ドメイン・ネーム・サーバー)の2種類のDNSサーバーで構成されます。
再帰DNSサーバーは「質問」を行い、クライアントをWebサイトまたはリソースに接続するために必要な情報を含むDNSレコードを見つけます。そして、権威サーバーはこれらのレコードを保持し、「回答」を提供します。これらのサーバーは合わせてDNS解決プロセスを担当し、人間が判読できるドメイン名をコンピューターに適した数値のインターネット・プロトコル(IP)アドレスに変換します。
例えば、ユーザーがホスト名(www.example.comなど)をWebブラウザーに入力すると、DNSクエリー(DNSリクエストとも呼ばれる)が実行され、DNSルックアップ・プロセスが開始されます。ブラウザーは、設定された再帰リゾルバーにクエリーを送信し、再帰リゾルバーは権威DNSサーバーに段階的にクエリーを実行して、ユーザーのリクエストに対応する適切なリソース・レコードを見つけます。
このプロセスは、リゾルバーがそのドメインに関連付けられた権威ネーム・サーバーと、ドメインの正しいIPアドレスを含むA(またはIPv6アドレスの場合はAAAAレコード)を見つけるまで続きます。リゾルバーはIPアドレスをブラウザーに返し、ユーザーは探しているリソースに接続されます。
DNSサーバーは、DNSとインターネットがユーザーの使い慣れた機能を実現するのに不可欠なインフラストラクチャーです。
DNSサーバーは、DNSレコードを検索して保管し、DNSの階層構造内を動きながらDNSクエリーの解決を促進します。最上位レベルはDNSルート・ネーム・サーバーで構成され、クエリーを適切なトップレベル・ドメイン・サーバーに送信し、さらにセカンドレベル・ドメイン・ネーム・サーバーに送信して、特定のドメインの権威レコードを保持します。
DNSレコードにはさまざまな種類があり、他のクリティカルなDNS情報に加えて、リソースの配置場所に関する指示を与えるデータベースのような役割を果たします。最もよく知られている例としては、ユーザーが検索しているWebサイトにアクセスするためにブラウザーが必要とするIPアドレスを含むAレコード(IPv4 IPアドレスの場合、IPv6アドレスの場合はAAAAレコード)が挙げられます。
しかし、ドメインのメール・サーバーに誘導するMXレコードや、エイリアスドメインを正規ドメインに誘導するCNAMEレコード、1つのレコードで複数のサブドメインをリダイレクトして別のドメインに誘導するために使用されるDNAMEレコードなどもあります。
これらのレコードは権威DNSサーバー上でホストされており、DNSが機能するためには、これらのサーバーが健全かつ安全な状態を維持している必要があります。DNSサーバーが機能しなければ、DNSは存在しません。
DNSは当初から、急速に拡大するコンピューター・ネットワークに対応できる、ドメイン名解決へのより動的なアプローチを促進するために、階層的な分散データベース構造で設計されていました。階層は、ドット(.)で示されるルート・レベルから始まり、「.com」、「.org」、「.net」のようなトップレベル・ドメイン(TLD)、または「.uk」や「.jp」のような国別コードTLD(ccTLD)、そしてセカンドレベル・ドメインへと枝分かれしていきます。
DNSアーキテクチャーは、再帰サーバーと権威サーバーという2種類のDNSサーバーで構成されます。再帰DNSサーバーは、ユーザーをWebページまたはリソースに接続する情報を検索し、「問い合わせ」を行うサーバーです。権威サーバーは「回答」を提供します。
再帰サーバー(再帰リゾルバーまたはDNS Servicesとも呼ばれます)は、通常、インターネット・サービス・プロバイダー(ISP)またはサードパーティーのDNSサービス・プロバイダーによって管理されます。組織は独自のリゾルバーをホストして管理することもできます。
再帰リゾルバーは、エンド・ユーザーに代わってドメイン名をIPアドレスに解決します。また、再帰リゾルバーは、一定期間(TTL(存続可能時間)の値で定義される)リクエストに対する回答をキャッシュ(最近のDNSルックアップの成果を一時的に保管)し、同じドメインへの将来のクエリーのシステム効率を向上させます。
ユーザーがWebブラウザーにWebアドレスを入力すると、ブラウザーは再帰DNSサーバーに接続してリクエストを解決します。再帰サーバーに応答がキャッシュされている場合、ユーザーに接続してリクエストを完了できます。そうでない場合、再帰リゾルバーは、特定のドメインのIPアドレスを含むA(またはAAAA)レコードが見つかるまで、DNS階層をクエリーします。
権威ネーム・サーバーは、ドメインの最終的な記録を保持し、それぞれのゾーン内に格納されているドメイン名に関するリクエストに応答します(通常は、ドメイン所有者によって構成された回答で応答)。それぞれが名前空間の個別の部分を担当するさまざまな権威サーバーがあります。
権威DNSネーム・サーバーには以下のものがあります。
ルート・ネーム・サーバー
ルート・ネーム・サーバーはDNS階層の最上位に位置し、ルート・ゾーン(DNSの中央データベース)にサービスを提供します。13のルート・ネーム・サーバーの「ID」または「権限」(ルート・サーバーの論理的なグループ)は、AからMの文字で識別されます。ルート・ゾーン内に格納されているレコードに対するクエリーに回答し、適切なTLDネーム・サーバーにリクエストを照会します。
トップレベル・ドメイン(TLD)ネーム・サーバー
TLDサーバーは、ジェネリック・トップレベル・ドメイン(gTLD)を含む、次のレベルの階層を管理する責任を負います。TLDネーム・サーバーは、そのTLD内の特定のドメインの権威ネーム・サーバーにクエリーを送信します。したがって、「.com」のTLDネーム・サーバーは「.com」で終わるドメインを送信し、「.gov」のTLDネーム・サーバーは「.gov」で終わるドメインを送信する、などとなります。
他のドメインネーム・サーバー
セカンドレベルのドメイン・ネーム・サーバー(ドメイン・ネーム・サーバーの大部分)は、完全なドメイン名(「ibm.com」など)のIPアドレスを含むゾーン・ファイルを保持します。
DNSサーバーは、DNSシステムが構築されるインフラストラクチャーであり、ユーザーをインターネット・リソースに接続するというコア機能を支えるコンポーネントです。権威DNSサーバーはDNSレコードを保管し、再帰サーバーはこれらの権威サーバーにクエリーを実行して、DNSリクエストを完了するために必要なレコードを検索します。
DNSクエリー解決には、いくつかの重要なプロセスとコンポーネントが含まれます。
ユーザーがブラウザーやアプリに「ibm.com」などのドメイン名を入力します。対象のサイトのIPアドレスがブラウザーのキャッシュにない場合、リクエストは再帰DNSリゾルバーに送信されます。通常、ユーザーのデバイスには、ISPによって提供された定義済みのDNS設定があります。これにより、どの再帰リゾルバーがリクエストを受信するかが決定されます。
このプロセスは進化しており、多くの最新のブラウザーはHTTPS経由のDNSルックアップを可能にするDNS over HTTPS(DoH)をサポートしており、多くのプロバイダーはこのタイプのルックアップ用にサーバーを設定しています。例えば、米国でFirefoxを使用すると、デフォルトでクエリーはローカルISPプロバイダーのリゾルバーではなく、Cloudflare DoHサーバーに送信されます。DoHは、プライバシーの向上や性能の向上、その他のメリットを提供するため、人気が高まっています。
再帰リゾルバーは、ドメインの対応するIPアドレスを確認するために独自のキャッシュをチェックします。再帰リゾルバーのキャッシュに必要なレコードがない場合は、ルート・サーバーから開始する検索プロセスを開始します。
再帰リゾルバーはルート・ネーム・サーバーにクエリーを実行し、ルート・ネーム・サーバーは該当ドメインの適切なTLDサーバー(この例では「.com」ドメインを担当するTLDネーム・サーバー)への参照で応答します。
リゾルバーは「.com」TLDネーム・サーバーにクエリーを実行し、ネーム・サーバーは「ibm.com」の権威ネーム・サーバーのアドレスで応答します。
リゾルバーはドメインのネーム・サーバーにクエリーを実行し、ネーム・サーバーはDNSゾーン・ファイルを検索し、指定されたドメイン名の正しいレコードで応答します。
再帰リゾルバーは、IPアドレスをユーザーのデバイスに返します。ブラウザーまたはアプリは、そのIPアドレスのホスト・サーバーへの接続を開始し、要求されたWebサイトまたはサービスにアクセスできます。ブラウザーとリゾルバーは、それぞれの構成とTTLに従ってレコードをキャッシュします。
DNSは基本的にパブリック・プロトコルです。「パブリックDNS」と「プライベートDNS」という用語は異なる方法で使用されますが、どちらにも普遍的な標準的な定義はありませんが、別個のインフラストラクチャー構成とプロセスを行うことを指すためによく使用されます。最大の違いは使用目的とオーディエンスにあります。
パブリックDNSは、「標準的な」DNS解決プロセス、つまりパブリックDNSリゾルバーを指すために使用されることがよくあります。再帰リゾルバーは、公開されているDNSレコードを保持する一連の権威サーバーにクエリーを実行し、IPアドレスを特定し、最終的にユーザーとWebサイトを接続します。多くの場合、これはユーザーのISPまたはGoogleの「quad 8」パブリックDNSなどのDNS Servicesによって提供されるリゾルバーです。プライベート・リゾルバーは、パブリックDNSにクエリーを実行するように構成することもできますが、より一般的には制限されたネットワークや企業ネットワークで使用されます。
この標準的なDNSルックアップは、リゾルバーが公開されているため、またこれらの権威サーバー上のDNSレコードはインターネットにアクセスできる人なら誰でもアクセスできるため、パブリックDNSと呼ばれることもあります。
「プライベートDNS」は、DNS over TLS(DoT)やDNS over HTTPS(DoH)などの暗号化プロトコルの使用を説明するために使用されることがあります。ただし、これらは「プライベートDNS」ではなく、「プライバシー機能」または「プライバシー・プロトコル」とより正確に説明されます。解決プロセスは、リゾルバーが公開されているDNSを使用して必要なものを見つけるという点で、同じままです。この場合は、暗号化された転送で行われます。
プライベートDNSは、アクセスが許可されたユーザーのみに制限される、企業ネットワークや仮想プライベートクラウドなどの閉じた内部ネットワーク内でのルックアップを指す場合もあります。このようなシステムでは、ローカルに構成されたリゾルバーがプライベート・サーバーにクエリーを実行して、内部ネットワーク内のリソースとサイトを検索します。これらのサーバーは、プライベートゾーンと内部アドレスのみを提供するように構成されており、ネットワークは内部URLとIPアドレスをインターネットの他の部分から隠します。このタイプのプライベートDNSは、組織に優れた制御とセキュリティーを提供します。
この種のネットワークを構成する方法は数多くあります。1つの方法は、ローカル・ネットワークでの解決に使用される「.local」などの特別に使用されるドメインを使用することです。もう1つは、インターネット上で一般に利用できるドメインのプライベート・サブドメインを設定することです。このプライベート・サブドメインは、内部ネットワーク内でリゾルバーを使用する個人またはエージェントのみが利用できます。
「パブリック」DNSと「プライベート」DNSの両方を組み合わせた一般的なエンタープライズ設定は、「スプリト・ホライズンDNS」または「スプリット・ブレインDNS」と呼ばれます。この構成では、ローカル・リカーサーは、内部リクエストについてはローカルのプライベート権威サーバーにクエリーを実行し、外部クエリーについては標準のDNSに依存します。スプリットホライズンDNSには通常、どのリクエストが内部サーバーに送信され、どのリクエストがパブリック・インターネットに転送されるかをサーバーに指示するドメイン名のリスト(一種の「許可リスト」)が含まれています。
多くのマネージドDNSプロバイダーは、エニーキャスト・ルーティング、ロードバランシング、DNSトラフィック・ステアリング、リアルタイム・モニタリングおよびトラブルシューティング機能に加えて、サービスの一環として高度なセキュリティー保護を提供しています。組織がマネージドDNSプロバイダーを使用する場合でも、DNSインフラストラクチャーを自己管理する場合でも、DNSサーバーの保護は、ネットワークとリソースを安全に保つために重要な要素です。
DNSサーバーの保護と可用性を維持するのに役立つDNSセキュリティー対策とプロトコルには、以下のようなものがあります。
プライマリーDNSサーバーが隠れている(内部ネットワークまたはファイアウォールの内側)場合、DNSゾーンの主要な権威ソースはより広範なインターネットにアクセスできず、直接攻撃から保護されます。セカンダリーDNSサーバー(ゾーン・ファイルの読み取り専用コピーを含む)のみが公開され、セカンダリー・サーバーはプライマリー・サーバーからのゾーン転送を使用して、すべての公開クエリーを解決します。
DNSSECは、リクエストの発信元とDNSデータの完全性を検証する暗号認証を使用するDNSの拡張機能です。DNSSECは、応答にデジタル署名を要求することで、DNSスプーフィング攻撃から保護します。
攻撃者とサイバーセキュリティーの脅威は、侵害されるシステムと同じように進化します。最新のDNSの脆弱性を常に把握し、DNSサーバーに定期的にパッチを適用して更新することで、チームはサイバー脅威を先取りして、サーバーの安全性を維持できます。
DNSトラフィックを暗号化すると、攻撃者によるDNSクエリーと応答の読み取り、改ざん、またはリダイレクトを防ぐことができます。最新のDNS暗号化プロトコル(DNS over HTTPSやDNS over TLSなど)を使用すると、クエリーが安全に認証および送信されることが保証され、DNSスプーフィングやキャッシュ・ポイズニングなどの中間者攻撃(MITM)を防ぐことができます。
DNSサーバーのレート制限は、指定された期間内に1人のリクエスターに対するレスポンス数(サーバーがレスポンスを送信するレート)を制限することで、分散型サービス妨害(DDoS)攻撃を軽減することができます。
DNSを地理的に分散した複数のサーバーに冗長構成でデプロイすることで、攻撃や障害が発生した場合でもネットワークの可用性を確保できます。プライマリー・サーバーがダウンした場合、セカンダリーDNSサーバーがDNS解決サービスを引き継ぐことができます。
DNSキャッシュをクリアすると、ローカル・ネットワークからすべてのエントリーが削除されます。これは、マルウェアを含む(キャッシュ・ポイズニング)、ユーザーをフィッシング攻撃にさらす、またはユーザーを悪意のあるサイトにリダイレクトする(DNSハイジャック)可能性のある、無効で危険なDNSレコードを削除するのに役立ちます。
スプリットホライズンDNSは、プライベートリソース、内部リソース、パブリックリソース用に個別の検索システムを作成します。プライベート・サーバー・ネットワークは、内部リソースの可視性を信頼できるユーザーのみに制限し、セキュリティーを強化します。標準のDNSルックアップで利用可能な公開サーバーは、機密性の低いクエリーやリソースに使用できます。
IBM NS1 Connectは、エンタープライズDNS、DHCP、IPアドレス管理、およびアプリケーションのトラフィック・ステアリングのためのクラウド・サービスです。
IBMのクラウド・ネットワーキング・ソリューションは、アプリケーションとビジネスを強化する高性能な接続を可能にします。
クラウド・ネットワーキングなどにおけるデータセンター・サポートをIBM Technology Lifecycle Servicesで統合しましょう。