インターネットに接続されている全ての端末にはIPアドレスが必要です。しかし、IPアドレスを直接設定した経験が無い人も多いのではないでしょうか?
たとえば、会社や自宅のネットワークで、自分で設定した覚えが無いのに、何故手元のPCでIPアドレスが勝手についているか不思議に思ったことはないでしょうか? 自動的にIPアドレスその他の情報が設定されるのは、DHCP(Dynamic Host Configuration Protocol)というプロトコルがそのネットワークで動作しているからです。
ここでは、IPアドレスの割り当てなどを自動的に行うDHCPに関する説明を行います。詳細は省いてありますので、詳細を知りたい方はRFC2131をご覧ください。
DHCPの役割
DHCPは、IPアドレスを自動的に割り当てたり、DNSに関する情報を通知するためのプロトコルです。DHCPが登場する以前は、ユーザが各自で通信に必要な情報を取得し、設定していました。しかし、設定する値はネットワークによって異なっていて、しかも、IPアドレスは重なってはいけないので、各ユーザが個別に利用可能で空いているIPアドレスを把握しなくてはなりませんでした。
他のユーザが何を使っているのかを含めて把握するのは結構大変です。DHCPで自動的にIPアドレスその他を割り当てる事により、インターネットに接続するための負荷が大幅に軽減されました。
DHCPを利用して自動的に設定できる情報を以下に示します(注意:下記だけではなく、他にもさまざまな情報が設定できます)。
- IPアドレス
- ネットマスク
- ブロードキャストアドレス
- デフォルトルータ
- DNS
DHCPの動作
では、実際にどのように動作しているのかを説明します。 DHCP動作例として図1のようなトポロジを利用します。
図1では、同一セグメント内に「DHCPサーバ」と「DHCPクライアント」があります。DHCPサーバは、そのセグメントで利用可能なIPアドレスや接続に必要な各種情報を知っているサーバです。DHCPクライアントは、そのネットワークの事は何も知りませんが、インターネットに接続したいので、「情報をくれ!」と叫んでみます。
DHCPを使って、DHCPクライアントがネットワーク接続に必要な情報を取得して設定するまでの流れを、図2に示します。
まず、DHCPクライアントは何もわからないので、「誰かDHCP話せる人助けて!」と叫びます。 DHCPクライアントからの叫びはブロードキャストアドレス255.255.255.255に対して行われます。この叫びはDHCP Discoverです。
DHCPクライアントからの叫びを聞いたDHCPサーバは、「こんな設定で如何でしょうか?」というDHCP Offerを送ります。
DHCP Offerを受けたDHCPクライアントは、DHCPサーバから受け取った設定情報を気に入れば「これを使わせてください」(DHCP Request)と言います。 DHCPサーバは、それを了承するとDHCP ACKを返します。
何故、DHCPクライアントはDHCP Offerを受け取ってすぐに設定しないのだろう? と不思議に思った人はエライです。これは、複数のDHCPサーバが存在している状態で、1つのDHCP Discoverに対して2つ以上のOfferがあったときに、DHCPクライアントがどれか1つを選んでDHCP Requestを投げられるようにしたものです(詳細はRFC2131をご覧ください)。
DHCPクライアントが、IPアドレスが不要になった時の処理を図3に示します。よくあるのがPCをシャットダウンする前の処理のときなどです。
DHCPサーバはそのセグメントで現在空いているIPアドレスを管理し、DHCPクライアントに配っています。そのため、DHCPクライアントがIPアドレスを使わなくなったときには教えてもらった方が効率が良いです(教えてもらわなくても、タイムアウトする仕組みはあります)。図3は、DHCPクライアントが「もう、使わなくなったよ」とDHCPサーバに教えるDHCP Releaseを示しています。
最後に
今では普通に使われているDHCPですが、実はかなりありがたいものです。興味を持たれた方は、さらに掘り下げて詳細を調べてみては如何でしょうか。
さて、次はいよいよインターネットでパケットが転送されていく方向を決めるための「ルーティング」に関しての解説です。この「ルーティング」こそが、インフラとしてのインターネットの重要な要素です。
次回以降、お楽しみに!