ここ数回は DHCP の基本や、Router を DHCP サーバとして使う設定を学習してきました。
今回は Packet Tracer を使った最小構成で、DHCP サーバが別ネットワークにいる場合はどうするのかを確認しました。
DHCP では、最初に PC が DHCP Discover をブロードキャストで送ります。
ただし、ルータはそのブロードキャストをそのまま別ネットワークへ通しません。
そのため、別セグメントに DHCP サーバがある場合は、DHCP Relay を使って中継する必要があります。
DHCP Relay とは何か
DHCP Relay は、クライアントから受け取った DHCP のブロードキャスト要求を、別ネットワーク上の DHCP サーバへ転送する仕組みです。
今回の構成では、PC1 は 192.168.1.0/24 側にいて、DHCP サーバは R2 側にあります。そこで、R1 が中継役になって、PC1 の DHCP Discover を R2 へ届けます。
今回の構成
今回の構成はとてもシンプルです。
PC1 が Switch1 に接続され、その先に R1、さらに R2 が接続されています。
PC1 は DHCP でアドレスを受け取りたい端末、R1 は Relay Agent、R2 は DHCP サーバという役割です。
物理接続はすべてアップ状態で、学習用として分かりやすい最小構成になっています。

今回のアドレス設計は、次のように考えると理解しやすいです。
- PC1 がいる LAN 側:192.168.1.0/24
- R1 – R2 間:10.0.0.0/30
- DHCP サーバ役:R2
- DHCP 中継役:R1
なぜ ip helper-address が必要なのか
PC が DHCP で IP アドレスを取りにいくとき、最初は DHCP Discover をブロードキャストで送ります。
でも、ブロードキャストは基本的に同じネットワーク内だけで届く通信です。ルータを越えてそのままは進めません。
そこで、R1 の PC 側インターフェースに ip helper-address 10.0.0.2 を設定しておくと、R1 は受け取った DHCP ブロードキャストを R2 へ転送してくれます。

R1 の設定内容
R1 は DHCP サーバではなく、中継役です。
PC 側のインターフェースで DHCP Discover を受け取り、それを R2 に転送します。
Copyenable
configure terminal
interface fa0/0
ip address 192.168.1.1 255.255.255.0
ip helper-address 10.0.0.2
no shutdown
exit
interface fa0/1
ip address 10.0.0.1 255.255.255.252
no shutdown
exit
end
copy running-config startup-config
ここで特に大事なのは、ip helper-address を fa0/0 に入れていることです。
fa0/0 は PC 側、つまり DHCP のブロードキャストを受け取る側のインターフェースです。
この位置に設定することで、PC1 の要求を R2 に中継できるようになります。
R2 の設定内容
R2 は DHCP サーバ役です。
192.168.1.0/24 のネットワークに対して、IP アドレスやデフォルトゲートウェイ、DNS サーバを配ります。
Copyenable
configure terminal
interface fa0/0
ip address 10.0.0.2 255.255.255.252
no shutdown
exit
ip dhcp excluded-address 192.168.1.1
ip dhcp pool CLIENT-LAN
network 192.168.1.0 255.255.255.0
default-router 192.168.1.1
dns-server 8.8.8.8
exit
ip route 192.168.1.0 255.255.255.0 10.0.0.1
end
copy running-config startup-config
ip dhcp excluded-address 192.168.1.1 は、R1 の LAN 側アドレスを DHCP で配らないように除外する設定です。
また、ip dhcp pool CLIENT-LAN の中では、どのネットワークに対して、どのゲートウェイや DNS を配るかを定義しています。
さらに今回は、ip route 192.168.1.0 255.255.255.0 10.0.0.1 も入れています。
R2 から見れば、192.168.1.0/24 は自分の直結ネットワークではないため、戻り先を R1 に向ける静的ルートが必要です。これを入れておかないと、DHCP の応答やその後の通信が戻れず、うまく動かない原因になります。
PC1 側で行うこと
PC1 側はとてもシンプルです。
IP Configuration で DHCP を選ぶだけです。
手動で Static のままになっていると、DHCP で自動取得する動作にならないため、期待した結果が確認できません。
DHCP の検証をするときは、まず PC 側が DHCP 取得モードになっているかを見るのが基本です。
実際の流れ
今回の通信の流れは、ざっくり言うと次のようになります。
まず PC1 が DHCP Discover をブロードキャストで送ります。
R1 はそれを受け取り、ip helper-address 10.0.0.2 に基づいて R2 へ転送します。
R2 は DHCP サーバとして Offer を返し、PC1 は Request、最後に R2 が Acknowledge を返します。
この流れによって、PC1 は自分で手入力しなくても、IP アドレス・サブネットマスク・デフォルトゲートウェイ・DNS サーバを受け取れます。
今回の学習で押さえたいポイント
今回いちばん大事なのは、DHCP サーバが別ネットワークにいると、そのままでは PC の DHCP ブロードキャストは届かないという点です。
そのため、ルータ側で ip helper-address を使って中継する必要があります。
また、設定の見方としては次のイメージで整理すると分かりやすいです。
R1 では「受け取って転送する」、R2 では「配る」、PC1 では「DHCP で受け取る」です。
この役割分担が頭の中でつながると、DHCP Relay の全体像がかなり理解しやすくなります。
まとめ
今回は、DHCP Relay / ip helper-address の基本を最小構成で確認しました。
同じネットワーク内なら DHCP サーバからそのまま配布できますが、別ネットワークに DHCP サーバがいる場合は Relay が必要になります。
R1 では ip helper-address を PC 側インターフェースに設定し、R2 では DHCP プールを作成してアドレスを配布しました。
この流れが理解できると、今後 VLAN をまたぐ DHCP 配布や、より実務に近い構成もかなり見やすくなってきます。

コメント