DNSとは、ユーザーがIPアドレスではなく、ドメイン名を使用して、Webサイトに接続できるようにするものです。 DNSの仕組みを学習します。
ドメインネームシステム(DNS)は、いわばインターネットの電話帳のようなものです。ユーザーは、オンラインで情報にアクセスするときに、「nytimes.com」や「espn.com」のようなドメイン名を使用します。Webブラウザは、インターネットプロトコル(IP)アドレスを使用して、相互に通信しています。DNSは、ブラウザがインターネットリソースを読み込めるように、ドメイン名をIPアドレスに変換します。
インターネットに接続された各デバイスは一意のIPアドレスを持ち、他のマシンがそのデバイスを見つけるためにこれを使用します。DNSサーバーにより、人間が192.168.1.1(IPv4の場合)などのIPアドレス、または2400:cb00:2048:1::c629:d7a2(IPv6の場合)などのより複雑な英数字のIPアドレスを記憶する必要がなくなります。
DNS解決のプロセスには、ホスト名(www.example.comなど)をコンピューターが処理可能なIPアドレス(192.168.1.1など)に変換することが含まれます。IPアドレスはインターネット上の各デバイスに与えられ、そのアドレスは適切なインターネットデバイスを見つけるために必要です。特定の家を見つけるために番地が使用されるのと同様です。
ユーザーがウェブページを読み込む場合、webブラウザにユーザーが入力したアドレス(example.com)を、 example.com Webぺージを見つけるために機械可読のアドレスに翻訳する必要があります。
DNS解決の背後にあるプロセスを理解するには、DNSクエリが渡す必要があるさまざまなハードウェアコンポーネントについて学習することが重要です。Webブラウザの場合、DNSルックアップは「舞台裏」で行われ、最初の要求以外はユーザーのコンピューターからの対話を必要としません。
いずれの概念も、DNSインフラストラクチャに不可欠なサーバー(サーバーグループ)を指します。しかし、それぞれ異なる役割を果たし、DNSクエリのパイプライン内部で異なる場所に位置しています。
違いの一つは、再帰リゾルバーは、DNSクエリの初めにあり、権威ネームサーバーはクエリの最後にある点です。
再帰リゾルバーは、クライアントからの再帰リクエストに応答し、DNSレコードを追跡するために時間をかけるコンピュータープログラムです。これはリクエストされたレコードのある権威DNSネームサーバーに達するまで、一連のリクエストを行います(あるいはレコードが見つからない場合は、タイムアウトするか、エラーを返します)。
幸い、再帰DNSリゾルバーは、クライアントに応答するレコードを見つけるために、必ずしも何度もリクエストを送信する必要はありません。キャッシングは、DNSルックアップから以前リクエストされたことがあるリソースレコードを提供することで、必要なリクエスト応答を素早く送信するデータ永続化プロセスです。
簡単に言えば、権威DNSサーバーは、DNSリソースレコードを実際に保持し、その責任を負うサーバーです。これは、問い合わせされたリソースレコードで応答するDNSルックアップチェーンの一番下にあるサーバーであり、最終的に、要求しているWebブラウザがWebサイトその他のWebリソースにアクセスするために必要なIPアドレスに到達できるようにします。
権威ネームサーバーは、あるDNSレコードの最終的なリソースであり、このため、別のリソースにクエリを送信する必要がなく、このサーバー自身のデータでクエリに応答できます。
foo.example.comや blog.cloudflare.comなどのサブドメインに対するクエリの場合、権威ネームサーバーの後にシーケンスに追加のネームサーバーが追加されることに注意してください。このネームサーバーはサブドメインのCNAMEレコードの保存します。
その他の多くのDNSサービスと、Cloudflareが提供するサービスには、重要な違いがあります。
Google DNS、OpenDNSなどのさまざまなDNS再帰リゾルバー、およびComcastなどのプロバイダーはすべて、DNS再帰リゾルバーのデータセンターインストールを保持しています。これらのリゾルバーは、DNSに最適化されたコンピューターシステムの最適化されたクラスターを介した迅速かつ簡単なクエリを可能にしますが、Cloudflareがホストするネームサーバーとは根本的に異なります。
Cloudflareは、インターネットの機能に不可欠なインフラストラクチャレベルのネームサーバーを維持しています。重要な例として、Cloudflareがホスティングを部分的に担当する f-rootサーバーネットワークがあります。Fルートは、1日に数十億のインターネットリクエストを処理するルートレベルのDNSネームサーバーインフラストラクチャコンポーネントの1つです。
Anycast Networkにより、当社はサービスを中断することなく、大量のDNSトラフィックを処理することが可能です。
ほとんどの場合、DNSは適切なIPアドレスに変換されるドメイン名に関係しています。このプロセスがどのように機能するかを学習するには、DNSルックアップが、WebブラウザからDNSルックアッププロセスを通過し、再び戻ってくるパスをたどることが役立ちます。ステップを見てみましょう。
注:多くの場合、DNSルックアップ情報は、クエリを行っているコンピューター内でローカルにキャッシュされるか、DNSインフラストラクチャでリモートにキャッシュされます。通常、DNSルックアップには8つのステップがあります。DNS情報がキャッシュされると、DNSルックアッププロセスから手順がスキップされ、より迅速になります。以下の例は、何もキャッシュされていない場合の8つのステップすべてを概説しています。
DNSルックアップの8ステップを完了し、example.comのIPアドレスを取得すると、ブラウザはWebページにリクエストを送信することができるようになります。
DNSリゾルバーは、DNSルックアップの最初の目的地であり、最初の要求を行ったクライアントの対応を担当します。リゾルバーは一連のクエリを開始し、最終的にURLが必要なIPアドレスに変換されます。
注:一般的な非キャッシュDNSルックアップには、再帰クエリと反復クエリの両方が含まれます。
再帰DNSクエリと、再帰DNSリゾルバーを区別することは重要です。クエリは、クエリの解決を必要とするDNSリゾルバーに対して行われるリクエストを指します。DNS再帰リゾルバーは、再帰クエリを受信し、必要なリクエストを送信して応答を処理するコンピュータープログラムです。
一般的なDNSルックアップでは、3種類のクエリが発生します。これらのクエリを組み合わせて使用することにより、DNS解決のための最適化されたプロセスにより、移動距離が短縮されます。理想的な状況では、キャッシュされたレコードデータが利用でき、DNSネームサーバーが非再帰クエリを返すことができます。
キャッシュの目的は、データ要求のパフォーマンスと信頼性を向上させる場所にデータを一時的に保存することです。DNSキャッシュでは、リクエスト元クライアントの近くにデータを保存することで、DNSクエリをより早く解決し、DNSルックアップチェーンのさらに下流での追加のクエリを回避できるため、読み込み時間が改善され、帯域幅/CPU消費が削減されます。
DNSデータはキャッシュとして様々な場所に保存することができます。それぞれの場所にDNSレコードを一定時間保存し、保存時間は、Time to Live (TTL)によって決定されています。
最新のWebブラウザは、デフォルトでDNSレコードを一定時間キャッシュするように設計されています。ここでの目的は明らかです。DNSキャッシュがWebブラウザに近いほど、キャッシュをチェックしてIPアドレスに正しいリクエストを行うために必要な処理ステップが少なくなります。 DNSレコードの要求が行われると、要求されたレコードを最初にチェックする場所はブラウザのキャッシュになります。
Chromeでは、chrome://net-internals/#dnsから、DNSキャッシュのステータスを見ることができます。
オペレーティングシステムレベルのDNSリゾルバーは、DNSクエリがマシンを離れる前の2番目で最後のローカルの目的地です。このクエリを処理するように設計されたオペレーティングシステム内のプロセスは、一般に「スタブリゾルバー」またはDNSクライアントと呼ばれます。
スタブリゾルバーがアプリケーションからリクエストを取得した場合、最初に自身のキャッシュをチェックして、レコードがあるかどうかを確認します。ない場合は、ローカルネットワークの外側で、インターネットサービスプロバイダー(ISP)内のDNS再帰リゾルバーにDNSクエリ(再帰フラグを設定)を送信します。
ISP内部の再帰リゾルバーが、DNSクエリを受け取ると、前のすべてのステップと同様に、要求されたホストからIPアドレスに変換したものがローカルの永続層内部に既にあるかどうかをチェックします。
再帰リゾルバーにはキャッシュされたレコードのタイプに応じた追加機能もあります。
Cloudflare DNSと他のDNSプロバイダーとの違いを詳しく説明します。
この記事を読み終えると、以下のことができます。
DNSセキュリティ
DNSゾーン
DNSルートサーバー
プライマリ対セカンダリDNS
リバースDNS
インターネットに接続された個々のデバイスに一意のIPアドレスがあり、このIPアドレスを使用して、ほかのマシンがそのデバイスを検出します。DNSサーバーの登場で、192.168.1.1などのIPアドレス(IPv4の場合)や、さらに複雑な2400:cb00:2048:1:c629:d7a2のような新しい英数字のIPアドレス(IPv6の場合)を覚える必要がなくなりました。
DNS解決のプロセスには、ホスト名(www.example.comなど)をコンピューターに優しいIPアドレス(192.168.1.1など)に変換することが含まれます。IPアドレスはインターネット上の各デバイスに与えられ、そのアドレスは適切なインターネットデバイスを見つけるために必要です。特定の家を見つけるために番地が使用されるのと同様です。ユーザーがWebページを読み込む場合、ユーザーがWebブラウザに入力したもの(example.com)を、example.com のWebページを見つけるために必要な機械が読み取れるアドレスに変換する必要があります。
どちらの概念も、DNSインフラストラクチャに不可欠なサーバー(サーバーグループ)を指します。しかし、それぞれ異なる役割を果たし、DNSクエリのパイプライン内部で異なる場所に位置しています。違う点といえば、再帰リゾルバーは、DNSクエリの始めにあり、権威ネームサーバーはクエリの最後にあることです。
再帰リゾルバーは、クライアントからの再帰リクエストに応答し、DNSレコードを追跡するために時間をかけるコンピュータープログラムです。これは要求されたレコードのある権威DNSネームサーバーに達するまで、一連のリクエストを行います(あるいはレコードが見つからない場合は、タイムアウトするか、エラーを返します)。幸い、再帰DNSリゾルバーは、クライアントに応答するレコードを見つけるために、必ずしも何度もリクエストを送信する必要はありません。キャッシュは、DNSルックアップから以前要求されたことがあるリソースレコードを提供することで、必要なリクエスト応答を素早く送信するデータ永続化プロセスです。
簡単に言えば、権威DNSサーバーは、DNSリソースレコードを実際に保持し、その責任を負うサーバーです。これは、問い合わせされたリソースレコードで応答するDNSルックアップチェーンの一番下にあるサーバーであり、最終的に、リクエストしているWebブラウザがWebサイトその他のWebリソースにアクセスするために必要なIPアドレスに到達するようにします。権威ネームサーバーは、特定のDNSレコードの信頼できる唯一の情報源であるため、別のソースを照会する必要なく、自身のデータからのクエリを満たすことができます。
多くのDNSサービスとCloudflareが提供するDNSサービスには大きな違いがあります。Google DNS、OpenDNS、Comcastなどのプロバイダーなど、さまざまなDNS再帰リゾルバーはすべて、DNS再帰リゾルバーのデータセンターインストールを保持しています。これらのリゾルバーは、DNSに最適化されたコンピューターシステムの最適化されたクラスターを介した迅速かつ簡単なクエリを可能にしますが、Cloudflareがホストするネームサーバーとは根本的に異なります。
Cloudflareは、インターネットの機能に不可欠なインフラストラクチャレベルのネームサーバーを維持しています。重要な例として、Cloudflareがホスティングを部分的に担当する f-rootサーバーネットワークがあります。Fルートは、1日に数十億のインターネットリクエストを処理するルートレベルのDNSネームサーバーインフラストラクチャコンポーネントの1つです。Anycast Networkにより、当社はサービスを中断することなく、大量のDNSトラフィックを処理することが可能です。
キャッシュ保存の目的は、データを一時的に保存し、データリクエストのパフォーマンスおよび信頼性を改善することです。DNS Cachingは、リクエストを行ったクライアントに近いデータを保存してDNSクエリを迅速に解決するため、DNSルックアップチェーンのそれ以上のクエリが不要となります。これによって読み込み時間が改善し、帯域幅/CPU消費が削減します。DNSデータはキャッシュとして様々な場所に保存することができます。それぞれの場所にDNSレコードを一定時間保存し、保存時間は、Time to Live (TTL)によって決まります。
オペレーティングシステムレベルのDNSリゾルバーは、DNSクエリがマシンを離れる前の2番目で最後のローカルの目的地です。このクエリを処理するように設計されたオペレーティングシステム内のプロセスは、一般に「スタブリゾルバー」またはDNSクライアントと呼ばれます。スタブリゾルバーは、アプリケーションからリクエストを取得すると、まず自身のキャッシュをチェックして、レコードがあるかどうかを確認します。もしない場合は、ローカルネットワークの外側で、インターネットサービスプロバイダー(ISP)内のDNS再帰リゾルバーにDNSクエリ(再帰フラグを設定)を送信します。
To provide you with the best possible experience on our website, we may use cookies, as described here.By clicking accept, closing this banner, or continuing to browse our websites, you consent to the use of such cookies.