🐾

DNSってなに?(🔰)

2023/06/24に公開

はじめに

今日も下記のロードマップを利用して、知識を増やしていきたいと思います!
Frontendの部分について随時更新していきます💪🏻

今日はDNSについて学びました!

DNS and how it works?(参考文献)

https://roadmap.sh/frontend

DNSとは?

DNS(Domain Name System)は、インターネットの電話帳のような役割を果たします。
人間が覚えやすいドメイン名(例:nytimes.comやespn.com)を、コンピュータが理解できるIPアドレス(例:192.0.2.1)に変換するためのシステムです。

(IPアドレスとは)
簡単にいうと、インターネットをするときにコンピュータに割り当てられる住所

ドメインとは

まず、ドメインとは、インターネット上で一意の識別子として使用される名前です。ドメインは、ウェブサイトやメールサーバーなどのインターネットリソースを特定するために使用されます。

ドメインは階層的な構造を持ち、ドット(.)で区切られた複数の部分から構成されます。
最も右側の部分はトップレベルドメイン(TLD)と呼ばれ、一般的なTLDには.com.net.orgなどがあります。トップレベルドメインの下にセカンドレベルドメイン(SLD)があり、具体的な組織や企業の名前が入ります。さらに、サードレベルドメインやそれ以上の階層も設定することができます。

ドメインの階層構造

例えば、example.comというドメインは、「.」ルートドメインに、comトップレベルドメインであり、exampleセカンドレベルドメインです。

このドメインは、ウェブサイトやメールアドレスなどを識別するために使用されます。
また、サードレベルドメインを追加することで、特定のサブセクションやサービスを識別することもできます。例えば、blog.example.comshop.example.comなどのサブドメインが存在する場合、それぞれ異なるサブセクションを指すことができます。

上記でお伝えしたように、ドメインは、 DNS(ドメインネームシステム) と呼ばれる仕組みを使用して、ドメイン名とIPアドレスの対応関係を解決します。ユーザーがドメイン名を入力すると、DNSはそのドメイン名を対応するIPアドレスに変換し、ウェブサイトやサービスにアクセスできるようにします。

ドメイン名はインターネット上での一意性が重要であり、組織や個人のオンラインプレゼンスを識別するために使用されます。また、ドメイン名はブランドやビジネスのイメージを構築し、オンラインでの存在感を高めるための重要な要素です🙆🏻‍♀️

ドメイン名の解決プロセス

ブラウザなどのアプリケーションがドメイン名を使用してリソースにアクセスする際、以下の手順でドメイン名が解決されます。

DNSへの問い合わせ

この図を簡単に説明すると、、

クライアントのブラウザは入力された「URL」から、対象のドメイン名を抽出します。
⬇︎
DNSサーバーは、そのドメイン名に対するIPアドレスを持っているかどうかを確認します。
⬇︎
もしDNSサーバーがドメイン名に対するIPアドレスを持っていない場合、上位のDNSサーバーにリクエストを送信し、解決を試みます。
⬇︎
このプロセスは上位のDNSサーバーまで続き、最終的にIPアドレスが見つかるまで繰り返されます。
⬇︎
クライアントは最終的にIPアドレスを受け取り、それを使用してリソースにアクセスします。

※ドメインは階層構造になっているので最終的にはドメインの最上位である「ルートドメイン」に問い合わせを行います。

DNSレコード

DNSレコードは、ドメイン名と関連する情報を保持するデータのエントリです。
ドメイン名は、ウェブサイトやメールサーバーなどのインターネットリソースを識別するために使用されますが、コンピュータはドメイン名ではなくIPアドレスを使って通信します。DNSレコードは、ドメイン名とIPアドレスの対応関係を提供することで、ドメイン名をIPアドレスに解決する役割を果たします。

DNSにはさまざまなタイプのレコードがあります。いくつか代表的なレコードの例を挙げると、以下のようなものがあります。

レコードタイプ 説明
Aレコード ドメイン名からIPv4アドレスを解決します。
AAAAレコード ドメイン名からIPv6アドレスを解決します。
CNAMEレコード ドメイン名の別名を指定します。
MXレコード メールの送信先となるメールサーバーを指定します。
TXTレコード ドメインに関する追加のテキスト情報を格納します。

詳しくはこちら

DNSキャッシュ

DNSキャッシュは、DNSサーバーやクライアントが以前に解決したドメイン名とIPアドレスの対応関係を一定期間保存する仕組みです。DNSキャッシュにより、同じドメイン名に対するリクエストを処理する際に再度解決する必要がなくなります。

一般的に、DNSキャッシュは次の2つの場所に存在します!

  • リゾルバーキャッシュ(Resolver Cache)
    インターネットサービスプロバイダ(ISP)や企業のネットワーク内に設置されたDNSリゾルバ(DNSクライアント)が、ドメイン名とIPアドレスの対応関係を一定期間キャッシュします。これにより、同じドメイン名に対するリクエストが再度行われる際に、ローカルのキャッシュから情報を取得することができます。

  • ネームサーバーキャッシュ(Nameserver Cache)
    DNSリゾルバは、ドメイン名とIPアドレスの対応関係を管理するDNSネームサーバーから情報を取得します。ネームサーバーは、自身が解決したドメイン名の情報を一定期間キャッシュし、他のクライアントに提供します。これにより、同じドメイン名に対するリクエストが他のクライアントから行われた場合に、ネームサーバーキャッシュから情報を返すことができます。

DNSキャッシュは、ウェブサイトやアプリケーションのパフォーマンスを向上させるために重要です。キャッシュにより、再度解決する必要がなくなるため、ドメイン名の解決が高速化されます。また、DNSキャッシュはネットワークの負荷を軽減し、DNSサーバーやリゾルバーへのリクエスト数を減らす効果もあります。

ただし、DNSキャッシュは一定期間で期限切れになるため、ドメイン名のIPアドレスが変更された場合や、DNSレコードの変更が行われた場合には、キャッシュが更新される必要があります。キャッシュの期間はTTL(Time to Live)と呼ばれる値で指定されます。

さいごに

デプロイを行い、ちょうどドメインを作ったところだったのでとてもタイムリーな内容だった!
わからない単語がたくさん出てきたが、流れは大体掴めました!今日はもうこんな時間なのでここまで!
おやすみなさい🌛

参考にさせていただいた記事🌱

https://lpi.or.jp/lpic_all/linux/network/network07.shtml

https://zenn.dev/chot/articles/e1e5aed46a3e49#dnsのキャッシング

Discussion