日本レジストリサービス(JPRS)が1月に、JPドメイン名サービスに DNSSEC(DNS Security Extensions)を導入したというニュースが ありました。
DNSSECとは、DNSの安全性を高める技術。 技術自体は以前からありましたが、昨今注目され始めたのは、 インターネットがライフラインの1つとなりつつある現状で、 DNS応答の偽造により引き起こされるセキュリティの脅威を排除して、 安定的な運用の必要性が高まってきたため。
そこで、今回から「DNSSEC」について解説していこうと思ったのですが、 「そもそもDNSって何だ?」という方もいるかもしれませんので、 まずはDNSのしくみを解説し、その後DNSSECの解説を していくという流れで進めていきたいと思います。
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アドレスを調べるしくみのことをいいます。
インターネットは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.txtDNSの基本的なしくみは、
「ドメイン名に対応したIPアドレスを調べたいクライアントが、 DNSサーバが保持しているドメイン名とIPアドレスの対応表に 問い合わせて、目的のIPアドレスを調べる」
ということ。
クライアントPCからWebサイトへアクセスする場合を例に、 DNSの動作を見ていきましょう。
まず、Webブラウザから「https://www.itbook.info/」へアクセスを行います。 すると、Webブラウザは「https://www.itbook.info/」に対応するIPアドレスを DNSを使って調べます。
このドメイン名からIPアドレスを割り出す処理を「名前解決」と呼びます。
IPアドレスが分かれば、後は対象のIPアドレスを持つWebサーバに アクセスを行います。
ドメイン名を使用する利点は、人間が理解しやすいという理由以外にも、 もう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アドレスを表示しています。