TCP/IPネットワークでは、ネットワーク上のコンピューターを識別するためにIPアドレスを利用します。しかし、一連の数値であるIPアドレスは人間にとって扱いにくいので、コンピューターにはホスト名を設定し、ホスト名でコンピューターを指定できるようにしています。そのため、ホスト名とIPアドレスを相互に変換する必要性が出てきています。この仕組を提供しているのがDNS(Domain Name System)です。
名前解決
ホスト名とIPアドレスを相互に変換することは名前解決といいます。名前解決はDNSサーバの基本的な役割です。ホスト名からIPアドレスを取得するのは正引き、IPアドレスからホスト名を取得するのは逆引きといいます。
厳密にいいますと、ここの「www」はホスト名となり、コンピューターにつけられた名前で、「example.com」はドメイン名となり、ホストが所属するネットワーク上の区域を表します。
DNSの仕組み
ブラウザに「http://www.example.com」を入力し、Webサイトにアクセスする際、DNSサーバを使ってどのように名前を解決が行われるかを図で示します。
①ブラウザは名前解決ライブラリであるリゾルバに名前解決を依頼します。(リゾルバは一般的にOSに組み込まれています。)
②リゾルバはDNSサーバAに問い合わせを行います。(Linuxの場合、問い合わせ先のDNSのサーバは「/etc/resolv.conf」に設定します。)
③DNSサーバAは、まずルートDNSサーバBに問い合わせします。
④ルートDNSサーバBは、comドメインを管轄しているDNSサーバCしか知らないため、DNSサーバCのIPアドレスを返します。
⑤DNSサーバAは、教えられたDNSサーバCに対して問い合わせを行います。
⑥DNSサーバCは、example.comドメインを管轄しているDNSサーバDしか知らないため、DNSサーバDのIPアドレスを返します。
⑦DNSサーバAは、教えられたDNSサーバDに対して問い合わせを行います。
⑧DNSサーバDは、www.example.comのIPアドレスを知っているため、そのIPアドレスを返します。
⑨DNSサーバAは取得したIPアドレスと変換情報をキャッシュに保存し、リゾルバにIPアドレスを返します。
⑩リゾルバはIPアドレスをブラウザに返します。
⑪ブラウザは教えられたIPアドレスをもとにWebページにアクセスします。
コメント