KaQiita

新米エンジニアが適当なことを書いてます。温かく見守ってやってください。

DNS による名前解決

はじめに

以下の「アドレスバーに URL を打ち込んでからページが表示されるまで」の記事のステップ1「DNS による名前解決」について書きます。

www.kaqiita.com

上記の記事の各ステップについて、1ステップ1記事書いていき、全ての記事が揃うと「アドレスバーに URL を打ち込んでからページが表示されるまで」が分かる、という構成にしていきます。

分かりやすいように、アドレスバーに打ち込む URL は Qiita の URL である https://qiita.com/ とします。

まだまだ理解が足りていない部分は多々ありますが、少しずつ書き足していければと思います。

DNS による名前解決が行なっていること

DNS による名前解決で行なっていることは、「IP アドレスを取得すること」です。

これから Qiita のサーバーに問い合わせを行う際に、TCP で通信することになるため IP アドレスが必要になります。

その IP アドレスは DNS サーバーに問い合わせることで知ることができます。

DNS サーバーに URL をリクエストとして送ることで、その URL に対応する IP アドレスをレスポンスとして返してもらいます。

全体図

DNS による名前解決」について、何が起こっているかを1つの図で表すと、以下の図のようになります。

f:id:KakkiiiiKyg:20190819174807p:plain

全体図の解説

まずはブラウザのアドレスバーに https://qiita.com/ という URL を打ち込みます。

するとブラウザは、OS 内にあるスタブリゾルバに https://qiita.com/ に対応する IP アドレスを問い合わせます。

問い合わせされたスタブリゾルバは自分では分からないため、フルリゾルバに対して https://qiita.com/ に対応する IP アドレスを問い合わせます。

このフルリゾルバの場所は環境によって異なっていて、同じ OS 内にあることもあれば DNS サーバー内にあることもあります。

そのフルリゾルバは問い合わせを受けると、スタブリゾルバと同様、DNS サーバーに https://qiita.com/ に対応する IP アドレスを問い合わせます。

問い合わせを受けた DNS サーバーはフルリゾルバにレスポンスとして IP アドレスを返答します。

このスタブリゾルバは、一定期間 URL と IP アドレスの組み合わせを保持しておき、その組み合わせを保持している間は同じ URL について IP アドレスを訊かれると、DNS サーバーに問い合わせることなく、スタブリゾルバに返答します。

DNS サーバーが行なっていること

DNS サーバーは IP アドレスの問い合わせがあった際に、すぐにその IP アドレスを返答するわけではありません。

まずは DNS サーバーの中の「ルート権威サーバー」がリクエストを受け取ります。

そして https://qiita.com/ という URL の .com の部分を見て「.com 権威サーバー」の場所をフルリゾルバに返します。

するとフルリゾルバは今度は「.com 権威サーバー」に IP アドレスの問い合わせを行います。

リクエストを受け取った「.com 権威サーバー」は https://qiita.com/ という URL の qiita.com の部分を見て「qiita.com 権威サーバー」の場所をフルリゾルバに返します。

そこでようやくフルリゾルバは「qiita.com 権威サーバー」に IP アドレスの問い合わせができて、目当ての IP アドレスを取得することができます。

終わりに

簡単にですが、さらっと書いてみました。

間違い等ありましたら、教えていただけると幸いです。

次のステップ2の記事はこちら。

www.kaqiita.com