DHCP
0.改定履歴
- 2000.08.25 初版
1.はじめに
この文書では,DHCPとは何かついて説明する.
2.DHCPとは?
Dynamic Host Configuratin Protocolの略で,BOOTPプロトコルの拡張版である.
DHCPを使用するように設定されたコンピュータに,自動的にIPアドレスなどを割り当て,設定する.

これにより,クライアントのTCP/IPの構成を集中管理し,手動で設定する時に発生する不具合を解消できる.
手動で設定する時の不具合とは...
|
3.DHCPで設定されるものは?
DHCPクライアントが起動するたびに,DHCPサーバに対してIPアドレスを発行するように要求する.
- IPアドレス
- サブネットマスク
- デフォルトゲートウェイ(ルータアドレス)
などがあり,この他にもオプションで色々な情報を設定することができる.(後述)
4.DHCPの動作
DHCPでは,クライアントがIPアドレスの発行依頼を受ける所から,4つのフェーズでクライアントとサーバ間で通信する.

4.1 DHCP DISCOVER
DHCPクライアントが,DHCPの初期化を行う際に,ネットワーク上に次の情報でブロードキャストする.
項目 | 内容 |
---|---|
発信元IPアドレス | 0.0.0.0 |
宛先IPアドレス | 255.255.255.255 |
メッセージ | DHCPDISCOVER |
その他 | MACアドレス |
宛先IPアドレスが,"255"になっているのは,ブロードキャストアドレスである.(「特殊なIPアドレス」を参照) しかし,このブロードキャストは普通のIPルータを越えることはない.(RFC1542 BOOTP,DHCPリレーエージェントを持っているルータのみ可能) |
MACアドレスを含んでいるので,DHCPサーバは,どのクライアントが発信したかを突き止めることができる.
4.2.DHCP OFFER
クライアントから発信されたDHCPDISCOVERは,ネットワーク内の要求の届いた全てのDHCPサーバが取得する.
提供できるIPアドレスがあれば,DHCPサーバは,次のような情報をブロードキャストする.
- クライアントのMACアドレス
- 提供するIPアドレス
- 提供するサブネットマスク
- リースの期間(このIPアドレスを貸し出す期間)
- DHCPサーバのIPアドレス
- メッセージは"DHCPOFFER"が利用される.
この時点で提供しているIPアドレスを他のDHCPクライアントに利用されないように,“予約”してロックする.
DHCPクライアントは,最初に受取ったDHCPOFFERメッセージを選択する.
クライアントは1秒間,DHCPOFFERを待つ. DHCPサーバが稼働していないなどの理由によりOFFER応答がない場合,約9秒,13秒,16秒後に再度ブロードキャストをする. この4回目のブロードキャストの返事(OFFER)が無ければ,その後は5分おきにブロードキャストを行う. |
4.3.DHCP REQUEST
DHCPクライアントは,OFFERを受取ったら,全てのDHCPサーバに対して次の情報をブロードキャストする.
- リースしてもらったDHCPサーバのIPアドレス
- メッセージは"DHCPREQUEST"
このDHCPREQUESTメッセージを受取ったDHCPサーバは,DHCPサーバのIPアドレスを見て自分でなければ予約(ロック)したIPアドレスを開放する.
4.4.DHCP ARC
DHCPクライアントに選択されたDHCPサーバは,成功を示す次のような情報を,DHCPクライアントに向けてブロードキャストする.
- IPアドレスの有効なリース
- その他のオプション情報(後述)
- メッセージは"DHCPACK"
4.5.DHCP NACK
次のような場合,DHCPクライアントは正しくリースしてもらえない. その場合は,最初のリース要求から繰り返す.
- 以前と同じIPアドレスを発行して欲しいと要求したが,既に他で使われていた
- クライアントが物理的に他のサブネットに移動していたために,IPアドレスが無効であった
5.リース期間
5.1.TTL(Time To Live)
DHCPサーバがIPアドレスをリースする期間は,デフォルト3日間(NTサーバの場合だけ?)になっている.
5.2.リースの更新
DHCPクライアントは,リース期間の50%(1/2 TTL)が過ぎると,リース元のDHCPサーバに対してDHCPREQUESTメッセージを直接送信し,リースの契約更新を行う.
リースが更新される場合,DHCPACKメッセージと新しい構成情報を受信する.
リースの契約更新が行われなかったメッセージを受信した場合,その時点ではリース期間が50%が残っているので,継続利用が出来る.
その後,契約期間の87.5%(1/8 TTL)が過ぎた時点で,他のDHCPサーバにIPアドレスの発行を要求するために,DHCPREQUESTメッセージをブロードキャストする.
5.3.再起動した場合のリース
DHCPクライアントが再起動した場合は,元のDHCPサーバから同じIPアドレスをリースしようと,最後に発行されたIPアドレスを指定するDHCPREQUESTメッセージをブロードキャストする.
この時,リースが拒否されても残りのリース期間は同じIPアドレスを使用し続けられる.
5.4.利用終了
DHCPクライアントは,リース期間が満了するか,DHCPNACKメッセージを受取った場合,現在利用しているIPアドレスをリリースする.
その後は,再度,最初のリース要求プロセスから繰り返す.
参考文献
- はじめてのTCP/IP 技術評論社 ISBN-7741-0419-1 C3055
- Microsoft WindowsNT 4.0 TCP/IPテキスト
- RFC 1532,1533,1534,1541,1542