この記事のポイント
- TCP/IPで通信するときには必ずIPアドレスを指定しなければいけない
- IPアドレスではわかりづらいのでホスト名を利用して通信相手を指定する
- ホスト名からIPアドレスを求めることを名前解決と呼び、DNSを利用することがほとんど
ネットワークの電話帳
名前解決、ホスト名、DNS
必ずIPアドレスを指定する
ネットワークの共通言語となっているTCP/IPで通信をするときには、通信相手のIPアドレスを必ず指定しなければいけません。
名前解決
IPアドレスが必要とはいっても、アプリケーションを利用するユーザにはわかりにくいものです。そのため、アプリケーションが動作するサーバはクライアントPCなどのホストにわかりやすい名前のホスト名をつけます。
アプリケーションを利用するユーザが意識するのは、WebサイトのアドレスであるURLやメールアドレスなどです。URLやメールアドレスには、ホスト名そのものやホスト名を求めるための情報が含まれています。
ユーザがURLなどのアプリケーションのアドレスを指定すると、ホスト名に対応するIPアドレスを自動的に求めるのがDNSの役割です。このようなホスト名からIPアドレスを求めることを名前解決と呼びます。DNSは最もよく利用されている名前解決の方法です。
ネットワークの電話帳
DNSは普段、私たちが利用している携帯電話の電話帳のようなイメ-ジです。電話をかけるには電話番号が必要です。しかし、電話番号をいくつも覚えておくことは難しいです。そこで、あらかじめ電話帳に名前と電話番号を登録しておきます。電話をかけるときには、相手の名前を指定すれば、自動的に電話番号がダイアルされます。
TCP/IPの通信も同じようなことをしています。TCP/IPの通信に必要なIPアドレスは、TCP/IP ネットワークの電話帳であるDNSに問い合わせて調べています。
DNSと電話帳
DNSでIPアドレスを自動的に求める
次の項目のポイント
- DNSサーバにホスト名とIPアドレスの対応などのリソースレコードを登録しておく
- DNSサーバに問い合わせをする機能をDNSリゾルバと呼ぶ
- DNS サーバへのIPアドレスの問い合わせは、ルートからたどって問い合わせを繰り返す
リソースレコード、DNSリゾルバ、再帰問い合わせ
DNSサーバとは
DNSを利用するには、DNS サーバが必要です。DNS サーバにあらかじめホスト名とIPアドレスの対応を登録しておきます。DNSサーバにはホスト名とIPアドレスの対応だけではなく、他にもいろんな情報を登録します。DNSサーバで登録する情報をリソースレコードと呼びます。リソースレコードの主な種類は下の表にまとめています。
主なリソースレコード
タイプ | 意味 |
---|---|
A | ホスト名に対応するIPアドレス |
AAAA | ホスト名に対応するIPv6アドレス |
CNAME | ホスト名に対応する別名 |
MX | ドメイン名に対応するメールサーバ |
NS | ドメイン名を管理するDNSサーバ |
PTR | IPアドレスに対応するホスト名 |
※IPの新しいバージョンがIPv6。IPv6では128ビットのアドレスを利用する
DNSの名前解決
DNSの名前解決の仕組みについて見ていきましょう。まず、DNSサーバに必要な情報(リソースレコード)を正しく登録していることが大前提です。DNSサーバはルートを頂点とした階層構造をとっています。
そして、アプリケーションを動作するホストにはDNSサーバのIPアドレスを設定しておきます。アプリケーションを利用するユーザがホスト名を指定すると、自動的にDNSサーバに対応するIPアドレスを問い合わせます。DNS サーバへの問い合わせ機能はWindowsなどのOSに組み込まれていて、DNSリゾルバと呼びます。
問い合わせするホスト名の情報を、必ずしも近くのDNSサーバが持っているとは限りません。自身が管理するドメイン以外のホスト名の問い合わは、ルートからたどって、何度か問い合わせを繰り返します。下の図は、あるIPアドレスの問い合わせの例です。
このようなDNSの名前解決の問い合わせを繰り返すことを再帰問い合わせと呼んでいます。なお、毎回、毎回、ルートからたどって再帰問い合わせすると効率がよくありません。そこで、DNS サーバやリゾルパは間い合わせた情報をしばらくの間、キャッシュに保存します。どのぐらいの時間、キャッシュに保存するかは設定次第ですが、過去の問い合わせ結果のキャッシュが残っていれば、ルートからたどらずに名前解決ができます。
必要な設定を自動化する
次の項目のポイント
- TCP/IP の設定項目は次の通り
- IPアドレス/サブネットマスク
- デフォルトゲートウェイのIPアドレス
- DNSサーバのIPアドレス
- DHCPによってTCP/IPの設定を自動的に行う
DHCPとは
通信するためには設定が必要
TCP/IPを利用して通信するためには、PC/スマートフォン、サーバ、各種ネットワーク機器にTCP/IPの設定が正しく行われていなければいけません。
設定を自動化するDHCP
IT技術に慣れているユーザであっても設定ミスをしてしまうことはよくあります。設定ミスなどをなくすためには、設定の自動化が有効です。そのためのプロトコルがDHCPです。
DHCPの動作
DHCPを利用するには、あらかじめDHCPサーバを用意し、配布するIPアドレスなどのTCP/IPの設定を登録しておきます。そしてPCなどでDHCPクライアントになるように設定します。
DHCP クライアントのホストがネットワークに接続すると、DHCPサーバとの間で次の4つのメッセージをやりとりして、自動的にTCP/IPの設定を行います。
- DHCP DISCOVER
- DHCP OFFER
- DHCP REQUEST
- DHCP ACK
以上のようなDHCPのやりとりはブロードキャストを利用します。そもそもDHCPクライアントには自分のIPアドレスはもちろん、DHCPサーバのIPアドレスもわかりません。アドレスがわからなくても、とりあえず何らかのデータを送りたいというときにブロードキャストを利用します。