DHCP その2

DHCPの階層構造

DHCPは、TCP/IPアプリケーション層のプロトコルでトランスポート層にはUDPを使っています。DHCPのポート番号は67と68の2つあり、DHCPサーバは67をDHCPクライアントは68を使います。階層構造は次の図のようになっています。




DHCPを利用するためには、
DHCPサーバが必要です。Windows2000 ServerやLinuxなどのサーバOSでは、たいてい標準でDHCPサーバの機能がついています。また、サーバOSだけでなく、ルータなどにもDHCPサーバ機能がついているものもあります。

そして、DHCPサーバに
クライアントに対して自動的に配布するIPアドレスの範囲を設定します。このアドレスの範囲のことをアドレスプールと呼んでいます。アドレスプールのほかに、オプションとしてサブネットマスクやデフォルトゲートウェイのIPアドレス、DNSサーバのIPアドレスなども自動的に配布するように設定できます。
また、DHCPで配布するIPアドレスは一定期間貸し出す(リース)形になっています。アドレスプールを設定するときには、いっしょにリースの有効期間も設定します。リース期間として、期限なしを割り当てることもできます。



DHCPのプロセス

DHCPクライアントが起動すると、DHCPサーバを探さなくてはいけません。でも、これからIPアドレスをもらおうとしているのですから、自分のIPアドレスはもちろんありませんし、DHCPサーバのIPアドレスもわかりません。じゃ、どうやってDHCPサーバを探せばいいのかな?って思いますね。

通信したい相手がよくわからないというケースはよくあるのですが、こういうとき
ブロードキャストを使います。ブロードキャストでとりあえずみんなに届くように送れば、ネットワーク上のDHCPサーバが受け取ってくれるだろうっていう考え方です。
この
DHCPサーバを探すためのブロードキャストをDHCPDISCOVERといいます。ちなみに、このブロードキャストはIPレベルのブロードキャストなんで、送信先IPアドレスを255.255.255.255または、ホスト部をすべてビット1にして送っています。送信元IPアドレスはまだわからないので、0.0.0.0として送信します。




サーバはDHCPDISCOVERを受け取って、UDPヘッダのあて先ポート番号をみると「あっ、だれかIPアドレスを欲しがっているな」ということがわかります。すると
DHCPサーバはアドレスプールから利用可能なIPアドレスをクライアントに教えてあげます。これをDHCPOFFERといいます。

まだ、IPアドレスがないのにどうやってクライアントに返事を返すのか不思議に思うかもしれませんが、IPではなくてMACアドレスを使ってクライアントにユニキャストで返事を返すことができます。




DHCPOFFERによって、利用可能なIPアドレスを教えてもらったDHCPクライアントは自分が使いたいIPアドレスを選択して、
サーバに「このIPアドレスを使わせてね」ということを通知します。これをDHCPREQUESTといいます。





REQUESTを受け取ったDHCPサーバは、IPアドレスの整合性をチェックして問題がなけらば
「使っていいよ〜」ということを、DHCPACKでクライアントに通知します。




DHCPACKを受け取ったクライアントは無事にそのIPアドレスを自分のものとして使うことができるようになります。

ほかにもまだまだ細かいことはいっぱいあるのですが、DHCPを使ってIPアドレスを自動的に設定するプロセスとしてはこんな風になっているんだなぁって思ってもらえばいいでしょう。

ただし、
DHCPを使うときには気をつけなくはいけないことがいくつかあります。次回、DHCPを使うときに注意しなくてはいけないことについてお話をしていきます。もし、ひまだったら何を注意しなくてはいけないのかをちょっと考えてみてくださいね。








(C) Copyright 2000-2001 Gene All Right Reserved