パソコンなどでネットワーク通信するときに必要になるIPアドレス。
IPアドレスを設定するには、サブネットマスク、デフォルトゲートウェイなどネットワークの知識が必要になります。
ネットワーク設定がはじめての場合は、調べれば調べるほどわからない単語がでてきて「うぅ~」となってしまいます。
そんなときに便利なのがDHCP(ディーエイチシーピー)というプロトコルです。
DHCPを使うにはDHCPサーバが必要になりますが、DHCPサーバさえあればネットワークの基本設定が自動で完了します。
この記事では「DHCPについて簡単に知りたい!」というネットワーク初心者の方のために、DHCPとは何なのか、イメージでつかめるようわかりやすく説明します。
項目 | 説明 |
---|---|
プロトコル名 | DHCP(Dynamic Host Configuration Protocol) 動的ホスト構成プロトコル |
トランスポート層 | UDP |
ポート番号 | 67番(サーバ)、68番(クライアント) |
説明 | クライアントPCのネットワーク設定を自動化するプロトコル |
目次
DHCPとは?
DHCPを簡単に説明すると次の通り。
クライアントPCのネットワーク設定を自動化するプロトコル
機能は次の2つ。
- IPアドレスの自動割り当て
- デフォルトゲートウェイやDNSサーバなどの設定情報の管理
DHCPを利用すると、上記ネットワーク設定が自動化され、クライアントPCそれぞれに手作業で設定しなくてもTCP/IPネットワークへ参加させることができます。
DHCPがなぜ必要なの?
TCP/IPネットワークへアクセスするには、ネットワーク内で固有のIPアドレスが必要です。
そのため、通常はユーザーや管理者はクライアントPCにIPアドレスやネットマスクなどのネットワーク設定を行わなければなりません。
これらを全て手動で設定している場合、ネットワークに接続する端末が増えてくると、管理者の負担がとても高くなってしまいます。
この作業を自動化するのがDHCPです。
DHCPでは、サーバでIPアドレスやデフォルトゲートウェイ、DNSサーバのIPアドレスなどの情報を一元管理しておき、クライアントPCが起動するときにそれらを割り当てます。
従来は同様の自動設定プロトコルとしてBOOTP(Bootstrap Protocol)が使われていました。
しかしBOOTPではIPアドレスやホスト名などわずかな項目しか設定できなかったため、これを改良してより多くの項目を設定できるようにしたのがDHCPです。
DHCPのしくみ
DHCPによるIPアドレスの自動設定は、次の4つの手順で進められます。
- DHCPクライアントがDHCPサーバを探索する。
- 第2段階 DHCPサーバが「DHCPDISCOVER」要求を受信しクライアントに「DHCPOFFER」という応答パケットを送信する。
- 第3段階 クライアントがブロードキャストで「DHCPREQUEST」を送信する。
- 第4段階 各種情報をクライアントが受け取り、設定する。
第1段階 DHCPクライアントがDHCPサーバを探索する
第1段階 DHCPクライアントがDHCPサーバを探索します。
DHCPでは、ネットワークのすべてのホストにパケットが届く「ブロードキャスト」と呼ばれる方法を使います。
ネットワーク設定ができていない状況では、DHCPサーバのIPアドレスもクライアントのIPアドレスもわからないため、全てのネットワーク端末にパケットを送ります。
ブロードキャストでは、、宛先IPアドレスはすべてのホストが対象となるブロードキャストアドレス「255.255.255.255」を使います。
また、すべてのホストが対象となるため1対1のコネクションを前提にしたTCPは利用できません。
そのため、必然的にDHCPではUDPが使われます。
DHCPサーバの探索には「DHCP DISCOVER」というDHCP要求を送信します。
ですが、この時点ではクライアントPCにはIPアドレスが割り当てられていないので、IPヘッダの送信元アドレスは仮に「0.0.0.0」とします。
さらに、それだけではどのホストが送信したDHCP要求かわからないため、要求を送信したクライアントPCのMACアドレスを要求パケット内の「クライアントMACアドレス」領域に記録します。
第2段階 DHCPサーバが「DHCPDISCOVER」要求を受信しクライアントに「DHCPOFFER」という応答パケットを送信する
第2段階 DHCPサーバが「DHCPDISCOVER」要求を受信しクライアントに「DHCPOFFER」という応答パケットを送信します。
ただし、クライアントにはまだIPアドレスがないので、このパケットもブロードキャストで送信されます。
DHCPOFFER応答では、DHCPサーバの存在をクライアントに知らせるとともに、クライアントに割り当てるIPアドレスを提示します。
このIPアドレスは「Your IPアドレス」領域に格納されます。
クライアントはこのDHCPOFFER応答を受け取ると、応答パケットに記録されている「クライアントMACアドレス」をチェックして自分宛であることを確認した上でYour IPアドレスを取り出します。
このときサーバが提示するIPアドレスは、DHCP用に確保されたIPアドレスを管理する「アドレスプール」から未使用のものが取り出されます。
通常は有効期限を指定されることになっていますが、不正接続などを防ぐ目的でMACアドレスに基づいて特定のクライアントを意識し、固定的にIPアドレスを割り当てる場合もあります。
建前上はDHCPOFFER応答で提示されるIPアドレスはサーバからの「提案」でしかないので、この時点ではYour IPアドレスを実際に使うことはできません。
第3段階 クライアントがブロードキャストで「DHCPREQUEST」を送信する
第3段階として、さらにクライアントはブロードキャストで「DHCPREQUEST」を送信します。
この要求は、サーバから提案されたIPアドレスを採用することをサーバに通知するためのものです。
第4段階 各種情報をクライアントが受け取り、設定する
第4段階は、DHCPサーバがDHCPREQUESTを受け取ったら、オプションにネットマスクやデフォルトゲートウェイなどといった各種の情報を付加した「DHCPACK」応答をブロードキャストで送信します。
これをクライアントが受け取り、正式なネットワーク情報として自分自身に設定します。
DHCPはIPアドレスを継続利用する
DHCPサーバから貸し出されるIPアドレスが頻繁に変わると、管理者がサーバのアクセスログをチェックするときなどにクライアントをIPアドレスから特定するのが難しくなって困ることがあります。
そのため、一度貸し出したIPアドレスは、そのクライアントができるだけ継続して利用するのが望ましいです。
そこで、第3段階のDHCPREQUESTを使って、DHCPクライアントから「このIPアドレスを使いたい」ということを提案できるようになっています。
これを続けていけばIPアドレスが不足しない限り、DHCPクライアントのIPアドレスは固定的に使うことができます。
DHCPリレーエージェント
DHCPパケットの送受信はブロードキャストで行われますが、ブロードキャストパケットはルータを超えて別のネットワークへは届きません。
そのため、ネットワークがルータで複数のセグメントに分割されていれば、各セグメントごとにDHCPサーバを用意することになります。
しかし、DHCPサーバが複数存在してはネットワーク設定を集中管理できるメリットがなくなってしまいます。
そこで用意されているのがDHCPリレーエージェントです。
DHCPサーバの代わりにDHCPリレーエージェントを設置しておけば、DHCPリレーエージェントがあらかじめ指定されたDHCPサーバへと要求を転送してくれるので、複数のセグメントを1台のDHCPサーバでまかなうことができます。
またリレーエージェントとDHCPサーバの間はユニキャスト(1対1)の通信となるため、IPアドレスの割り当ての時、他のホストがブロードキャストを処理しなくて済みます。
DHCPを使うときの注意
DHCPを使うにはいくつか注意することがあります。
- DHCPサーバが必要
- DHCPサーバは1つにする
DHCPサーバが必要
DHCPを利用するパソコンやサーバは「DHCPクライアント」であり、IPアドレスなどのネットワーク設定を受け取る側になります。
DHCPクライアントが機能するには、IPアドレスなどのネットワーク設定を渡す「DHCPサーバ」が必要になります。
DHCPサーバがない場合はデフォルトでIPアドレスが設定されますが、通信できることはまずありません。
DHCPサーバは1つにする
DHCPクライアントが機能するにはDHCPサーバが必要ですが、DHCPサーバは1つにする必要があります。
同じセグメント内にDHCPサーバが複数あると、DHCP要求に対してどちらのDHCPが早く応答するのかわかりません。
異なるネットワーク設定が帰ってくると互いに通信できない端末が存在することがあります。
通信できない原因には、例えば次のようなことが考えられます。
- DHCPサーバの割り当てるIPアドレスとサブネットマスクが、各DHCPサーバで別のセグメントになっている。
- 各DHCPサーバでIPアドレスの割り当て管理を行うため、IPアドレスが重複している。
この他にも原因はあるかもしれませんが、DHCPサーバが複数あって良いことはないので1つにしましょう。
DHCPのメリット・デメリット
IPアドレスを手動で設定する場合に比べて、DHCPを使用したときのメリット・デメリットを表にしました。
- DHCPサーバが必要。
- 場合によってはDHCPサーバの設定が必要になることもあり、知識が必要になる。
- ネットワーク内にある端末のIPアドレス管理が不要になる。
- 新たに端末をネットワークに参加させるのが楽。
家庭で使うWiFiルータなどは、DHCPサーバがデフォルトで設定されているので特に意識したことはないと思います。
基本的に自分で設定することはないと思いますが、IPアドレスが足りない場合や、少し複雑なネットワークを構築した場合などは設定が必要になります。
DHCPについて学ぶ
DHCPについて学びたいという方に、いくつか参考になる情報を共有します。
書籍
DHCPについての専門書は見つけたことがありませんが、ネットワークやサーバ設定などの書籍に記載されていることがあります。
例えば、こちらの「インフラエンジニア教本 – ネットワーク構築技術解説」には「第1章 知っているようで知らない『DHCPサーバの教科書』押さえておきたい基礎の基礎」という章があります。
DHCPと言ってもサーバとクライアント側があり、期待する内容かどうか個人個人で異なるため、個人の判断でご購入下さい。
私が利用しているAmazonの「Kindle Unlimited 読み放題」なら、読み放題の本を読みあさることができるのでおすすめです。
もし、わかりやすい参考書が見つからなかったとしても、流し読みで情報を集めるとどんな参考書がほしいか自分で明確にイメージできることもあります。
参考書などをよく購入する方なら「Kindle Unlimited 読み放題」に入っておくと良いでしょう。
初めて利用する方は30日間の無料体験が可能なのでぜひ利用してみてください。
\ 200万冊以上が読み放題 /
Kindle Unlimited
✔ 新規会員登録のみ
✔ 期間終了後は月額980円
✔ いつでもキャンセルできます
DHCPまとめ
この記事では「DHCPについて簡単に知りたい!」というネットワーク初心者の方のために、DHCPとは何なのか、イメージでつかめるようわかりやすく説明しました。
クライアントPCのネットワーク設定を自動化するプロトコル