【初心者向け】Packet Tracerでネットワークを学ぶ(DHCP)

公開日: 2023/2/10 更新日: 2023/2/10
DHCP(Dynamic Host Configuration Protocol)は自動的にIPアドレスやサブネットマスク等をPCやルータに配布してくれるプロトコルです。

1. DHCPとは

DHCP(Dynamic Host Configuration Protocol)は自動的にIPアドレスやサブネットマスク等をPCやルータに配布してくれるプロトコルです。

DHCPを使うことで例えば数百台PCがあったとしても自動でネットワーク情報を設定してくれます。

PC側では何も設定すること無くネットワークに接続することが可能です。


DHCPではDHCPサーバとDHCPクライアントと呼ばれる役割があります。

DHCPサーバはネットワーク情報の配布役です。

DHCPクライアントがネットワーク情報取得の要求をしてきた際に使用可能なネットワーク情報を送付します。

専用のサーバを構築します。

またルータにもDHCPの機能が用意されています。


DHCPクライアントはネットワーク情報の受取側です。

DHCPサーバに使用可能なネットワーク情報を要求します。

そしてDHCPサーバから送付されたネットワーク情報を自身に設定します。

PCがDHCPクライアントにあたります。

DHCPでのネットワーク情報取得の流れは以下のようになります。

①DHCP DISCOVER

まずクライアントがブロードキャストアドレス(255.255.255.255)でネットワーク情報を要求します。

DCHPサーバの宛先が不明なのでネットワーク全体を意味するブロードキャストアドレスに送信しています。


②DHCP OFFER

①を受け取ったサーバは貸出予定のネットワーク情報をクライアントに送信します。


③DHCP REQUEST

サーバより送信されたネットワーク情報を確認し、問題がなければサーバに正式に要求します。


④DHCP ACK

クライアントからのDHCP REQUESTの応答として承認します。

DHCP ACKを受け取ったクライアントはネットワーク情報を自身に設定します。

2. DHCPサーバの設定

DHCPサーバには以下の設定が必要になります。

・アドレスプールの作成
・配布するIPアドレスのネットワークとサブネットマスクの指定
・デフォルトゲートウェイの指定
・リース期間の設定
・DNSサーバの指定(任意)
・除外アドレスの指定(任意)

2-1. アドレスプールの作成

アドレスプールの指定にはグローバルコンフィギュレーションモードにて以下のコマンドを入力します。

#ip dhcp pool <プール名>

<プール名>はアドレスプールを識別する任意の名前です。

このコマンド入力後DHCPコンフィギュレーションモードに移行します。

プロンプトは(dhcp-config)に変わります。

2-2. 配布するIPアドレスのネットワークとサブネットマスクの指定

プールで使用するネットワークアドレスとサブネットマスクを指定します。

コマンドはDHCPコンフィギュレーションモードで以下を入力します。

#network <ネットワークアドレス> <サブネットマスク | / プレフィックス>

サブネットマスクかプレフィックス(/24等)を入力します。

2-3. デフォルトゲートウェイの指定

デフォルトゲートウェイのIPアドレスを設定したい場合はDHCPコンフィギュレーションモードで以下のコマンドを入力します。

#default-router

2-4. リース期間の設定

DHCPクライアントにネットワーク情報を貸し出す期間を設定できます。

DHCPコンフィギュレーションモードで以下を入力します。

#lease <日にち> [ <時間> [<分>]]

デフォルトの有効期間は1日です。

2-5. DNSサーバの指定(任意)

DNSサーバのIPアドレスを設定したい場合はDHCPコンフィギュレーションモードで以下のコマンドを入力します。

#dns-server []

IPアドレスは複数指定できます。

また任意なので設定しなくても問題ないです。

2-6. 除外アドレスの指定(任意)

手動で設定したアドレスはあらかじめ配布予定のIPアドレスから除外する必要があります。

グローバルコンフィギュレーションモードから以下のコマンドを入力します。

#ip dhcp excluded-address <開始アドレス> [<終了アドレス>]

開始アドレスと終了アドレスを設定することでその範囲のIPアドレスは除外することができます。

また終了アドレスを省略した場合は開始アドレスのみが除外されます。

3. DHCPサーバの設定例

今回の構築例は以下になります。

PC3台、ルータ1台、スイッチ1台の構成です。

ルータがDHCPルータ、PC3台がDHCPクライアントとなります。

ルータがPC3台に以下のネットワーク情報を配布するように設定します。

IPアドレス:192.168.1.*
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:192.168.1.254


3-1. コマンド入力

①プール名をnewpoolでアドレスプールを作成

②配布するアドレスとして192.168.1.0を指定。サブネットマスクは255.255.255.0

③デフォルトゲートウェイを192.168.1.254を指定(ルータのIPアドレス)

④DNSサーバのIPアドレスに192.168.1.1を指定
 ※図にはDNSサーバはないですが仮の登録です。

⑤除外アドレスに192.168.1.1から192.168.1.10を指定(範囲指定)

⑥除外アドレスに192.168.1.254(ルータのIPアドレス)を指定(個別指定)


3-2. 配布状況の確認

実際にPCにIPアドレスが配布されるか確認します。

まず各PCに以下の設定をします。

PCアイコンをクリックし「Desktop」より「IP Configuration」をクリックする。


DHCPのラジオボタンをクリックする。


これでDHCPサーバにネットワーク情報取得の通信が開始されます。

すこし時間を開けてから再度IP Configurationの画面を確認してみます。

左からPCA、PCB、PCCです。


IPアドレスが192.168.1.1から192.168.1.10は除外されており192.168.1.11から設定されていることが分かります。

またサブネットマスク、デフォルトゲートウェイ、DNSサーバの指定も設定どおり行われていることが確認できました。

4. DHCPクライアントの設定

ルータをDHCPクライアントとして設定することもできます。

設定する際はインターフェースコンフィギュレーションモードにて以下のコマンドを入力します。

#ip address dhcp

5. DHCPクライアントの設定例

DHCPサーバ設定の際に使用した構成に新たにルータを追加し、追加ルータをDHCPクライアントにしてみます。


緑部分が追加箇所になります。

R1にはすでに192.168.2.0のアドレスプールを作成済みです。

5-1. コマンド入力

①Fa0/1のインターフェースコンフィギュレーションモードに移行

②ip address dhcpコマンドを入力しDHCPクライアントに設定

③インターフェース有効化

しばらくするとIPアドレスが割り当てられたことを示すログ④が表示されます。


5-2. 配布状況の確認


割り当てられたIPアドレスの情報は以下のコマンドより確認することができます。


・show ip interface brief


MethodがDHCPとなっており配布されたIPアドレスであることが分かります。

サブネットマスクを確認することはできません。


・show interface


IPアドレス、プレフィックスを確認することができます。


・show dhcp lease


①IPアドレス、割り当てられたインターフェース、サブネットマスク

②DHCPサーバのアドレス

③リース時間(86400秒=1日)

以上をそれぞれ確認できます。

6. DHCPリレーエージェント

DHCPサーバではないルータはDHCP DISCOVERの通信を受け取ってもDHCPサーバに転送せず破棄します。

例えば以下の構成の場合を例とします。


R1をDHCPサーバとします。

PCDがDHCPでネットワーク情報を得るにはR2を経由してR1にDHCP DISCOVERを送信しなければなりません。

しかしR2はDHCP DISCOVERを受信したら破棄します。

このためR2で破棄せずR1に転送する設定をDHCPリレーエージェントといいます。

6-1. DHCPリレーエージェントの設定

DHCPリレーエージェントはインターフェースコンフィギュレーションモードにて以下のコマンドを入力します。

#ip helper-address

インターフェースはIPアドレスを割り当てる側のネットワークに接続しているインターフェースにて上記のコマンドを入力します。

7. DHCPリレーエージェントの設定例

以下の構成で実際にDHCPリレーエージェントを設定してみます。


R1 DHCPサーバには192.168.3.0へのスタティックルート、192.168.3.0用のアドレスプールは設定済み。

R2ではF0/0に192.168.3.1を手動で設定しています。

7-1. コマンド入力

①DHCP DISCOVERの通信はPCDから送信されます。

なのでその通信を受け取るF0/0のインターフェースコンフィギュレーションモードに移行します。

②ip helper-addressコマンドを入力、IPアドレスはR1のFa0/1のIPアドレスを指定。


7-2. 結果

しばらくしてからPCDのIP Configurationを確認するとDHCPによりIPアドレスが割り当てられていることが確認できました。