
URLを入力すると何が起きる?通信の流れからDNSを理解する
こんにちは、ネットアシスト運用チームのRです。
普段、Webサイトを見る際には、ブラウザにURLを入力するだけでページを表示できます。
たとえば、
https://www.example.com
と入力してEnterキーを押すと、ほどなくしてWebページが表示されます。
普段はあまり意識することはありませんが、この短い時間の中では、実際にはいくつもの通信処理が行われています。
今回は「URLを入力してからWebページが表示されるまで」の流れを追いながら、その中でも重要な役割を持つ DNS について紹介します。
1. URLを入力しても、すぐにWebサーバへ接続するわけではない
URLに含まれる、
www.example.com
は、人間にとって分かりやすい「名前」です。
一方、ネットワーク上で通信先を特定するときには、基本的にIPアドレスが使われます。
たとえば、
192.0.2.10
のような値です。
そのため、ブラウザはWebサーバへ接続する前に、
www.example.com のIPアドレスは何か?
を調べる必要があります。
ここで利用されるのが DNS(Domain Name System) です。
2. DNSは名前からIPアドレスを調べる仕組み
DNSはよく「インターネットの電話帳」に例えられます。
電話帳が、
名前 → 電話番号
を調べる仕組みだとすると、DNSは、
www.example.com → 192.0.2.10
というように、ドメイン名からIPアドレスを調べる仕組みです。
この処理を 名前解決 と呼びます。
3. DNSはどうやってIPアドレスを調べるのか
PCは通常、設定されているDNSサーバへ問い合わせを行います。
問い合わせを受けたDNSサーバは、必要に応じて他のDNSサーバへ問い合わせながら、最終的なIPアドレスを調べます。
イメージとしては次のような流れです。
PC
↓
DNSリゾルバ
↓
ルートDNS
↓
.comを管理するDNS
↓
example.comを管理するDNS
↓
www.example.com のIPアドレスを取得
実際には毎回すべてのDNSサーバへ問い合わせているわけではありません。
一度取得した情報は一定時間キャッシュされ、同じ問い合わせが来た場合には、そのキャッシュを使ってすばやく回答します。
4. DNSにはキャッシュがある
DNSでは、問い合わせを高速化するためにキャッシュが利用されています。
たとえば、
www.example.com → 192.0.2.10
という情報をすでに取得していれば、情報が有効な間は再度DNSサーバへ問い合わせる必要がありません。
このキャッシュは、PCやDNSリゾルバなど複数の場所に存在します。
そのため、DNSレコードを変更した直後でも、
DNSを変更したのに、まだ古いサーバへ接続される
といったことがあります。
これは古いDNS情報がキャッシュに残っているためです。
サーバ移行などでDNSを切り替える際には、このキャッシュの存在も意識する必要があります。
5. IPアドレスが分かると、Webサーバへの接続が始まる
DNSによってIPアドレスが分かると、ようやくブラウザはWebサーバへの接続を開始します。
大まかな流れは次のようになります。
URLを入力
↓
DNSで名前解決
↓
IPアドレスを取得
↓
Webサーバへ接続
↓
HTTP/HTTPSでリクエスト
↓
Webサーバからレスポンス
↓
ページを表示
つまりDNSの役割は、
「どのサーバへ接続すればよいのかを調べる」
です。
Webサイトを見るための通信そのものを行っているわけではありませんが、DNSで接続先を特定できなければ、その先の通信を始めることもできません。
6. DNSにはさまざまなレコードがある
DNSではIPアドレス以外の情報も管理できます。
よく利用されるものには、次のようなレコードがあります。
- Aレコード
ドメイン名とIPv4アドレスを紐づけます。
www.example.com → 192.0.2.10
- AAAAレコード
IPv6アドレスを指定するレコードです。
- CNAMEレコード
ある名前を別のホスト名へ紐づけます。
www.example.com
↓
example.cloudfront.net
CDNやクラウドサービスを利用する際によく登場します。
- MXレコード
メールを配送するサーバを指定します。
- TXTレコード
任意の文字列を登録するレコードです。
メールのSPF設定や、各種サービスのドメイン所有確認などでも利用されます。
まとめ
DNSは、ドメイン名とIPアドレスを結び付け、利用者を適切なサーバへ案内する重要な仕組みです。
普段Webサイトを閲覧しているだけでは意識する機会は少ないですが、Webサイトの公開やサーバ移行、メール、CDN、クラウドサービスなど、さまざまな場面で利用されています。
今回ご紹介したように、「URLを入力したあと、どのように目的のサーバへたどり着くのか」という視点から見ると、DNSの役割もイメージしやすくなるのではないでしょうか。
なお、弊社ではDNSサービスも提供しております。
DNSの導入や運用、サーバ移行に伴うDNS切り替えなどでお困りのことがございましたら、ぜひお気軽にご相談ください。
今回の内容は以上となります。
最後までお読みいただき、ありがとうございました。
それでは、また次回の記事でお会いしましょう!





