DNSのしくみ

日本レジストリサービス(JPRS)が1月に、JPドメイン名サービスに DNSSEC(DNS Security Extensions)を導入したというニュースが ありました。

DNSSECとは、DNSの安全性を高める技術。 技術自体は以前からありましたが、昨今注目され始めたのは、 インターネットがライフラインの1つとなりつつある現状で、 DNS応答の偽造により引き起こされるセキュリティの脅威を排除して、 安定的な運用の必要性が高まってきたため。

そこで、今回から「DNSSEC」について解説していこうと思ったのですが、 「そもそもDNSって何だ?」という方もいるかもしれませんので、 まずはDNSのしくみを解説し、その後DNSSECの解説を していくという流れで進めていきたいと思います。

 

DNSとは?

Webブラウザに「https://www.itbook.info/」と打ち込んでみると、 拙サイトが表示されると思います。

インターネットはTCP/IP通信ですので、この「https://www.itbook.info/」 という文字列を使って通信をするわけではなく、 「https://www.itbook.info/」という文字列からWebサイトのIPアドレスを 調べて、そのIPアドレス宛にWebアクセスを行っています。

今回解説する「DNS(Domain Name System)」は、 「https://www.itbook.info/」という文字列から、 IPアドレスを調べるしくみのことをいいます。

 

DNSの役割

インターネットはTCP/IP通信です 当然各ノードにはIPアドレスが付与されて、IPアドレスを使って お互いに通信を行います。

Webアクセスも「192.168.1.1」というようにIPアドレスを指定して 通信を行えば良いわけですが、IPアドレスは数字の羅列のため、 人間にはやっぱり分かりにくい。

そこで、人間にも分かるように、「ドメイン名(Domain Name)」と 呼ばれる文字列でもアクセスが可能なようにしました。 このドメイン名とIPアドレスを対応づけるしくみがDNSです。

DNSに関する基本的な規格は、RFC1034とRFC1035で規定されています。

http://www.ietf.org/rfc/rfc1034.txt http://www.ietf.org/rfc/rfc1035.txt

DNSの基本動作

DNSの基本的なしくみは、

「ドメイン名に対応したIPアドレスを調べたいクライアントが、 DNSサーバが保持しているドメイン名とIPアドレスの対応表に 問い合わせて、目的のIPアドレスを調べる」

ということ。

クライアントPCからWebサイトへアクセスする場合を例に、 DNSの動作を見ていきましょう。

まず、Webブラウザから「https://www.itbook.info/」へアクセスを行います。 すると、Webブラウザは「https://www.itbook.info/」に対応するIPアドレスを DNSを使って調べます。

このドメイン名からIPアドレスを割り出す処理を「名前解決」と呼びます。

IPアドレスが分かれば、後は対象のIPアドレスを持つWebサーバに アクセスを行います。

 

dns

 

ドメイン名を使用する利点は、人間が理解しやすいという理由以外にも、 もう1つの利点があります。 それは、「サーバのIPアドレスが変わっても、アクセス元に影響を与えない」 ということ。

Webサーバを別の場所に移したり、別のサーバに引っ越したりして、 IPアドレスが変わると、クライアントがドメイン名ではなく IPアドレスでアクセスしていると、クライアント全員に IPアドレスの変更を通知しなければなりません。

しかし、ドメイン名でアクセスしていれば、ドメイン名に対応する IPアドレスの情報を変更するだけで済みます。

 

コマンドで名前解決をしてみる

nslookupというコマンドを使うことで、名前解決を行うことが出来ます。

Windowsであればコマンドプロンプトで、MacやLinuxであれば ターミナルから以下のコマンドを実行します。

nslookup [ドメイン名]

$ nslookup itbook.info
Server:          8.8.8.8
Address:     8.8.8.8#53

Non-authoritative answer:
Name:     itbook.info
Address: 219.94.162.91

上記の結果は「itbook.info」というドメイン名に対するIPアドレスを 問い合わせた結果になります。

「Server」と、その下の「Address」がIPアドレスを問い合わせた DNSサーバの名前とIPアドレス。 続く、「Name」と「Address」が問い合わせたドメイン名と IPアドレスを表示しています。

関連記事