ドメインネームシステムとは何ですか? それはどのように機能しますか?
公開: 2021-07-04DNSはインターネットの電話帳です!
コンピュータは相互に接続および通信し、番号(IPアドレス)を使用して情報を送受信します。 インターネットに接続されている各デバイスには、他のデバイスが識別および通信するために使用するIDとして一意のアドレスがあります。
対照的に、人間は自分の名前を使用して互いに通信します。これは、番号よりも誰かに電話をかけることを覚えるのがはるかに簡単です。
ドメインネームシステム(DNS)は、人間とコンピューターの間の通信ギャップを埋めるために導入されました。 DNSは名前を数字に解決し、人間にわかりやすいドメイン名をコンピューターにわかりやすいIPアドレスに解決します。

ドメイン名とは何ですか?
ドメイン名は、インターネット上の特定のリソースを認識する一意の文字列です。 これは、現在要求されているWebアプリケーションサーバーを示します。 ドメイン名について聞いたことがありませんが、無数のドメイン名を使用した可能性があります。 はい! google.com 、 yahoo.com 、 geekflare.comなどはすべてドメイン名です。

DNSとは何ですか、なぜそれが必要なのですか?
人間は、ブラウザを介して、amazon.com、geekflare.comなどのドメイン名を使用してオンラインで情報にアクセスします。 ただし、Webブラウザはインターネットプロトコルアドレス(IPアドレス)によってのみ通信します。
DNSは、提供されたドメイン名をそれぞれのIPアドレスに変換して、ブラウザーが要求されたリソースをロードできるようにすることで役立ちます。

それでは、DNSの必要性を示すために例えを見てみましょう。
誰かの電話に電話をかけたい場合は、最初に電話を取り、次に保存されている連絡先のリストをスクロールまたは検索して、電話をかけます。
電話番号だけで誰かに電話をかけることはできますが、すべての連絡先でその人を覚えるのは非常に困難です。 これが、電話帳の名前を使用して携帯電話番号を保存する主な理由です。
DNSは同じメカニズムを使用し、対応するドメイン名を持つIPアドレスのリストを含むデータベースがあると想定します。
今日の世界では、ワールドワイドウェブ上に約15億以上のウェブサイトがあります。 私たちはそれらのいくつかを私たちの日常生活で使用しています。 サイトのすべてのIPアドレスを覚えておくことは不可能です。 DNSは、私たちの生活を楽にするためにそれらを記憶しています。
それはどのように機能しますか?
ユーザーがブラウザにURL(ドメイン)を入力すると、たとえばgeekflare.comの場合、ブラウザはそれに接続するためにGoogleのIPアドレスを見つける必要があります。 指定されたドメイン名からIPアドレスを見つけるこのプロセスは、 DNS解決と呼ばれます。

コンピューターは、ドメイン名ではなくIPアドレスによってWebサイトの場所を認識します。 geekflare.comと入力すると、ブラウザはDNSルックアップを実行して対応するIPアドレスを取得し、リクエストをGeekflareサーバーに転送します。GeekflareサーバーはGeekflareのランディングページを送り返します。
DNSルックアップは、geekflare.comと入力したユーザーからの対話を必要としない舞台裏でWebブラウザーで行われます。
WebサイトのIPアドレスを取得するには、コマンドプロンプトまたはターミナルで次のコマンドを試してください。
nslookup www.example.comこの結果からブラウザにIPアドレスを直接入力できます。 ただし、一部のWebサイトは、直接IPアクセスをブロックしている可能性があり、その場合、期待した結果が得られません。
DNSワークフロー
これで、ドメイン名を入力するたびにIPアドレスが要求されていることがわかりました。 このプロセスがどのように行われるかを見てみましょう。
ドメイン名をブラウザに入力してIPアドレスを取得すると、最初にローカルキャッシュでドメイン名が検索されます。 このローカルキャッシュデータは、次の2つの場所のいずれかで利用できる可能性があります。
- Webブラウザのキャッシュ。
- オペレーティングシステムのキャッシュ。

IPを見つけるためのDNSルックアップのプロセスで、要求されたドメイン名に使用できるキャッシュデータがない場合、一連のDNSサーバーが連携してIPアドレスを見つけます。
リモートDNSサーバーとの過度の通信は時間のかかるプロセスであり、パフォーマンスが低下します。 これを防ぐために、結果のIPアドレスはOSキャッシュ、ブラウザキャッシュ、DNSリゾルバキャッシュに保存されます。
DNSサーバーの種類
DNSサーバーには次の4つのタイプがあります。
- 再帰的リゾルバー
- ルートネームサーバー
- トップレベルドメイン(TLD)ネームサーバー
- 権威あるネームサーバー
これらのDNSサーバーが相互に調整してどのように機能するかの例を見てみましょう。
本が必要だとすると、地元の書店で購入し、店のオーナーに希望の本を伝えて連絡します。ここで、クライアントとして機能し、ショップのオーナーが再帰的なリゾルバーです。
次に、所有者は、別のラックのセット( TLD )を指すストア(ルートネームサーバー)のインデックスを確認しました。

適切なラックを見つけた後、彼はその特定のラック( TLD )に行き、本が利用できる完璧な棚(権威あるネームサーバー)を見つけようとし、クライアントから要求された適切な本を見つけます。
DNS再帰リゾルバー
IPがローカルキャッシュデータで使用できない場合、IPはDNS再帰リゾルバーとも呼ばれるDNS再帰リゾルバーに要求を転送します。 IPを見つけるためにDNSRecursorに要求を送信するこの方法は、 DNSクエリと呼ばれます。
DNSリカーサーは、クライアントのDNSクエリ要求を受信し、必要に応じて、要求されたクライアントを満たすためにいくつかの追加の要求を行うように設計された特別なサーバーです。
これは通常、インターネットサービスプロバイダー(ISP)のDNSサーバーです。

ISPが提供するこれらのDNSサーバーには、データベースにもキャッシュがあります。 指定されたドメインに期待されるIPがキャッシュメモリにある場合、要求されたクライアントにIPを提供するだけです。
それ以外の場合、IPを見つける際に次の手順が実行されます。
- DNS Recursorは、要求をルートネームサーバーに送信します。 ( DNSリカーサー→ルートネームサーバー)
- ルートネームサーバーはドメイン名のIP情報を持ちませんが、対応するTLDサーバーの情報を提供します。これは私たちがそれを見つけるのに役立ちます。 (ルートネームサーバー→DNSリカーサー)
- ここで、再帰担当者はTLDサーバーに提供されたドメインのIPを要求します。 ( DNSリカーサー→TLDサーバー)
- TLDサーバーは、IPを持つ対応する権限のあるネームサーバーの情報を提供し、DNSクエリの最後の停止となります。 ( TLDサーバー→DNSリカーサー)
- このとき、再帰者は権限のあるサーバーにドメイン名のIPアドレスを要求します。 ( DNS Recursor→権威ネームサーバー)
- 最後に、権限のあるネームサーバーが指定されたドメイン名のIPアドレスを見つけて、それを再帰者に送信します。 (権限のあるネームサーバー→DNSリカーサー)
- 最後に、リカーサーは結果をキャッシュデータベースに保存し、要求されたクライアントにIPアドレスを送り返します。 ( DNSリカーサー→クライアント)
ルートネームサーバー
ルートネームサーバー(別名、 '。' nameserver )は、ドメイン変換プロセスの最初のステップです。 受信したリクエストがwww.google.comであると仮定すると、ルートネームサーバーは適切な.com TLDサーバーを検索し、そのTLDサーバーのIPをリカーサーに送信します。
ルートネームサーバーは、ドメイン階層の最上位にあります。 再帰リゾルバーは、ルートサーバーに要求をディスパッチする方法を知りません。
このため、すべての再帰リゾルバーには、13個のIPルートサーバーアドレスのリストが構成されています。 DNSルックアップが発生するたびに、再帰リゾルバーの最初の通信は、これらの13個のアドレスのいずれかと行われます。

世界中で1300を超えるルートサーバーが利用可能であり、12の異なる組織によって運営されています。 ただし、これらの13個の数値アドレスからのみアクセスできます。
ルートサーバーのIPアドレスは13個しかないため、いつでも1つの場所からは13個のルートネームサーバーしか見ることができません。
TLDネームサーバー
トップレベルドメインネームサーバーは、共通の拡張子を共有するすべてのドメイン名の情報を維持します。 これは、IPアドレスを見つけるための2番目のステップです。
その後、TLDサーバーはDNSリカーサーから受信したドメイン名( google.com )を確認し、適切な権限のあるネームサーバーを検索します。
google.comの権限のあるサーバーを見つけた後、そのIPアドレスをDNSリカーサーに送り返します。

そこにはさまざまな種類のTLDがあり、いくつかは次のとおりです。
- gTLD –ジェネリックTLD(.com、.net、.orgなど)
- ccTLD –国コードTLD(.in、.us、.ukなど)
- sTLD –スポンサー付きTLD(.edu、.govなど)
権威あるネームサーバー
権限のあるネームサーバーには、特定のドメインに固有の情報が含まれています。 そして、それはDNSクエリの旅の最後の目的地です。
権限のあるサーバーは、ドメインのAレコード(「アドレス」レコードの略)を要求されます。このレコードには、WebサイトがホストされているサーバーのIPアドレスが含まれています。
要求されたドメインレコードの情報がある場合は、IPアドレスをリカーサーに返し、リカーサーはさらにそれを要求されたクライアントに返します。
結論
ドメインネームシステムは、インターネットの重要な側面の1つです。 これは、インターネットに接続するための最初のステップです。 インターネットがユーザーフレンドリーであるだけでなく、要求されたコンテンツを効率的にロードするのにも役立ちます。
DNSがなければ、無数のWebサイトが存在するインターネットの世界に住んでいる間、私たち全員にとって大きな負担になります。
