7839

雑草魂エンジニアブログ

【ネットワーク】DHCPサーバーの役割と仕組み

最近は、(WEBアプリケーションだけでなく)新たに組み込みやIoTに踏み込み始めたので、ネットワークの知識が必要になってきた。

これまでネットワークの知識は何となくで乗り切ってきて、きちんとした体系的な理解ができていなかった。
今回は、DHCPサーバーについてまとめたので、備忘録として残しておく。

DHCPとは

DHCPとは、「Dynamic Host Configuration Protocol」の略で、IPv4ネットワークにおいて通信用の基本的な設定を自動的に行うためのプロトコルである。

上の説明文を細かく噛み砕いていき、理解を深めていく。

プロトコル

よくネットワークの話の際に出てくる、このプロトコルという言葉。通信規格やルールと同義である。

意思疎通のためにお互いに合意しているルールを「プロトコル」と言う プロトコルとは(Protocol の本来の意味から技術英語へ)

IPv4ネットワーク

IPとは、「Internet Protocol 」の略で、インターネットに接続されたコンピュータ同士がデータをやりとりするためにデータ通信の方法を定めたルールのことである。「IPv4」は、そのルールの第4版である。1990年代後半からのインターネットの普及と共に広く使われ、今も世界中で使われている。

最近は、IPv6という言葉も耳にする。簡単ではあるが、その比較をしてみる。

IPv4 IPv6
接続方式 PPPoE(トンネル方式) IPoE(ネイティブ方式)
PPPoE(トンネル方式)
IPアドレス 32ビットのデータ
(最大約43億)
128ビットのデータ
(無限)

インターネットの急速な普及により、現在ではIPv4だけではアドレスの数が足りなくなるという状況が生じてきている。そのため、次世代のプロトコルとして注目されているのがIPv6である。 (※接続方式などの詳細に関しては、今回は割愛する。)

DHCPに関しても、正式には「DHCPv4」「DHCPv6」が正式名称であり、単に DHCP というときは 「DHCPv4」 を指すことが多い。

通信用の基本的な設定

DHCPは、「IPアドレス」を主として以下のオプションを設定することができる。

tools.ietf.org

以上より、

DHCPとは、IPv4ネットワークにおいて、IPアドレスなどのネットワークの設定を自動でデバイスに割り当てる仕組み(ルール)のことである。」

DHCPの動作

f:id:serip39:20200614220720j:plain

PC(クライアント)が物理的にネットワークに接続されていることを前提とする。まず、簡単に流れを説明する。

PC:「IPアドレスくださーい」(DHCP Discover)

DHCPサーバー:「IPアドレスの要求がきたー!このIPアドレス(xxx.xxx.xx.x)でどうでしょう?」(DHCP Offer)

PC:「ありがとう。じゃ、このIPアドレス(xxx.xxx.xx.x)を使わせてください。」(DHCP Request)

DHCPサーバー:「OK!じゃ、このIPアドレス(xxx.xxx.xx.x)を〇〇(期間)まで使ってください。」(DHCP Acknowledgement)

DHCPは、User Datagram Protocol(UDP)を使用した、コネクションレスサービスモデルを採用している。
UDPポート番号は以下のように設定されている。

  • サーバー側:67番
  • クライアント側:68番

DHCP Discover(サーバ探索)

クライアントがリミテッドブロードキャストでDHCPサーバーを探索する。

リミテッドブロードキャストとは、宛先IPアドレスが「255.255.255.255」であり、ネットワーク内の全てに対して信号を送る。

DHCP Offer(IPリース提示)

要求を受け取ったDHCPサーバは全員、クライアントのIPアドレスを予約して、クライアントに対してIPアドレスを提示する。メッセージには以下が含まれる。

DHCP Request(IPリース要求)

クライアントは、一番早く応答してくれたDHCPサーバに対して、提示されたIPアドレスを払い出してもらうよう要求する。

DHCP Acknowledgement(IPリース確認)

DHCOサーバは要求に対し、IPアドレスの払い出しを承認をする。
DHCPサーバは貸し出しているIPアドレス全てに対して、貸出期間を記録しており、承認する際に「貸し出し期間」を通達する。

以上が、クライアントがDHCPサーバーから、IPアドレスを取得するまでの流れである。

通常、家でWi-Fiルーターを使用している場合に、DHCPサーバーの存在には気付きづらいかもしれない。
最近は、DHCPサーバーがWi-Fiルーターの機能として組み込まれている場合が多い。

オフィスや店舗などある中規模程度のネットワークでは、ネットワーク内にDHCPサーバーを設置して利用する。

さらに、大きな大規模ネットワークともなると、リレーエージェントの設定をしたルータや L3 スイッチを用いて、別ネットワークにあるDHCPサーバーを利用する。

今回は、ネットワークの基礎であるDHCPに関して整理してみました。 では、ステキな開発ライフを。