~fvknk/bk

技術関連の備忘録

DHCPとは何か調べてみた

概要

応用情報の勉強をしている中でDHCPについて調べる機会があったので、まとめてみました。

DHCP(Dynamic Host Configuration Protocol)とは

DHCPとはネットワーク上のホストに対し、自動でIPアドレスを割り当てたり、割り当てるIPアドレスを一括管理するプロトコルです。 DHCPによって、クライアントをDHCPサーバーがあるネットワークに接続しただけで、TCP/IPを用いた通信ができるようになります(このような性質をプラグ&プレイとも言うようです)。 また、接続したネットワークのルータがDHCPサーバーとして振る舞うことも多いようです。

クライアントにIPアドレスが割り振られるまでのやり取りは以下のようになっています。

IPアドレスをクライアントで使用し始めるまでには、最初に使用して良いIPアドレスの付与を依頼して受け取る、次に実際にIPアドレスを使用することの許可を受け取る2つのフェーズに分かれています。

まず、使用して良いIPアドレスの付与を依頼して受け取る段階の説明をします。最初にDHCPサーバーのいるネットワークに接続したとき、ブロードキャストアドレス宛にIPアドレスの付与をリクエストを送信することで、DHCPサーバーからレスポンスとして使用可能なIPアドレスの通知を受け取ります。

次の段階の、実際にIPアドレスを使用することの許可を受け取る段階では、再度ブロードキャスト宛にIPアドレス使用の許可を求めるリクエストを送信することで、DHCPサーバーからレスポンスとしてIPアドレスの使用許可の通知を受け取ります。 このとき、付与されたIPアドレスの使用許可を求めるリクエストを送信しているのは、同一ネットワークに複数DHCPサーバーがあったときに適切にIPアドレスの割り振りができるようにするためのようです。

DHCPリレーエージェントとは

オフィスでDHCPサーバーを運用する場合、DHCPサーバーを1つのネットワークごとに対して1つずつ設置すると、DHCPサーバーの管理が煩雑になります。 そのため、1つのネットワークにのみDHCPサーバーを設置して一元管理したいですが、先ほど説明した方法でのIPアドレスの割り当て方法では、DHCPクライアントからDHCPサーバーへの要求がブロードキャストで行われるため、DHCPサーバーとクライアントが同一ネットワークにある必要があります。 これを解決するための手段として用いられる機能が、DHCPリレーエージェントのようです。

DHCPリレーエージェントを挟んだ場合のIPアドレス決定までのやり取りは以下のようになります。

リレーエージェントがない場合もDHCPクライアントのリクエストの送信先は、ブロードキャストアドレス宛てであることは変わりありません。 一方、リクエストを受けて処理するのはDHCPサーバー自身ではなく、DHCPサーバーのありかを知るDHCPリレーエージェントになっています。 DHCPリレーエージェントがDHCPクライアントに変わってIPアドレス付与・使用許可のリクエストを送信し、レスポンスをDHCPクライアントに転送することで、DHCPクライアントはリレーエージェントがない場合と同じようにIPアドレスを割り振りを依頼・許可申請ができます。

まとめ

ネットワークに繋いだクライアントへIPアドレスを割り振る方法について調べてまとめてみました。リレーエージェントがある場合も、ない場合もクライアントはブロードキャストアドレス宛に使用可能なIPの付与依頼と、実際にIPを使う許可依頼をしてIPアドレスを割り振ってもらっているようです。 問題を解いて解説を読むだけではいまいちピンと来なかった流れについて、きちんと理解できた気がしています。

参考書籍

www.ohmsha.co.jp gihyo.jp