DHCPの動作

DHCPの動作の流れは、下図のように行われます。

1.DHCP Discover

クライアントはブロードキャスト「255.255.255.255」で、IPアドレスを割り当てるように要求を行います。

2.DHCP Offer

 この要求を、DHCPサーバは受け取り、送信元に「このIPアドレスはどうですか?」という提案(DHCP Offer)を送ります。この時、宛先MACアドレスには、送信元クライアントのMACアドレス宛てに送信します。

3.DHCP Request

 クライアントは、DHCP Offerで受け取った提案で良ければ、「その情報を使わせて下さい」という申請(DHCP Request)をブロードキャストします。

4.DHCP ACK

DHCPサーバは、クライアントに承認(DHCP ACK)メッセージを送信します。

 この流れを見て不思議に思うかもしれません。クライアントはDHCP Offerを受け取って、なぜ、すぐにその情報で設定しないのかということです。

 これは、複数のDHCPサーバが存在している状態を想定しているからです。1つのDHCP Discoverに対して、2つ以上のDHCP Offerがあった場合に、クライアントがどれか1つを選んでDHCP Requestを送信できるようにするためです。

 また、クライアントとDHCPサーバ間では、ブロードキャストによる通信が行われます。そのため、ブロードキャストを遮断するルータを超えた先のネットワークにDHCPサーバがある場合は、DHCPを利用できないという制限があります。

※ルータを超えた先のDHCPサーバにアクセスするには、DHCPリレーエージェントが必要になります。通常、この機能は、ルータでサポートされています。

リースの更新と解放

DHCPサーバが、DHCPクライアントにIPアドレスを割り当てることをリース(貸し出し)と言います。

 このリースされるIPアドレスは、DHCPサーバで定めているリース期限内だけ使用することが許されています。DHCPクライアントは、リース期限を越えて、IPアドレスを使用することは出来ません。

 そこで、DHCPクライアントはリース期限を越えて、IPアドレスを使用したい場合には、リース期限の更新の要求を行います。

 また、DHCPクライアントが、電源を切るなど、IPアドレスが不要になった場合には、下図のようにDHCP Releaseを行います。

 Windowsの場合、リース期限の半分が過ぎた時点で、IPアドレスをリースしてもらったDHCPサーバにリース期限の更新を要求します。この更新が成功するとリース期限が延長されます。

 もし、DHCPサーバがダウンしているなどの理由で更新に失敗した場合、DHCPクライアントは、さらに、リース期限の87.5%が経過した時点で、他のDHCPサーバにIPアドレスをリースしてもらう為に、DHCP Requestをブロードキャストします。

 どのDHCPサーバにも更新の許可を受け取れなかった場合は、リース期間が満了するのでDHCPクライアントはIPアドレスの使用を停止します。

DHCPリース/リリースを行うコマンド

 DHCPによるIPアドレスの自動取得を行っている場合、手動でDHCPから取得したIPアドレスの解放(Release)と更新(Renew)を行うことが出来ます。

 解放(Release)と更新(Renew)を自動取得に関しては、PCが起動する際などに自動的に行われるのですが、自動取得に失敗した直後やDHCPサーバの動作確認を直ぐに行いたい場合には、コマンドで更新するのが便利です。

 手動で解放と更新を行うには「ipconfigコマンド」を使用します。このコマンドは、コマンドプロンプト上で、TCP/IPに関する設定情報を表示するコマンドです。「ipconfig」で簡易表示を行ったり、「ipconfig /all」で詳細な情報を得ることができます。

 この「ipconfigコマンド」は、オプションを指定することで、手動でDHCPの解放と更新を行うことができます。

ipconfig /release コマンド

 指定したネットワークアダプタにおけるDHCPサーバからリースされたIPアドレスを開放します。アダプタ名を省略した場合には、全てのアダプタが対象になります。

ipconfig /renew コマンド

 IPアドレスを解放(0.0.0.0)し、再度、自動的にIPアドレスを取得するという作業を行います。アダプタ名を省略した場合には、全てのアダプタが対象になります。