複数のVLANが存在する環境では、DHCPサーバを1台に集約してVLANをまたいでIPアドレスを配布したい場面があります。しかし、ルータやL3スイッチはブロードキャストを別ネットワークに転送しないため、そのままではDHCPが機能しません。このとき必要になるのがDHCPリレー機能です。
Cisco機器ではip helper-addressコマンドで実装できます。本記事では、DHCPリレーが必要な理由・仕組み・設定例・複数サーバ時の挙動・トラブルシューティングまで体系的に解説します。
新規フロアにVLAN 20を追加した際、そのフロアのPCがIPアドレスを取得できないという問い合わせがありました。DHCPサーバは別のVLAN(VLAN 10)に存在しており、L3スイッチのVLAN 20 SVIにip helper-addressの設定が漏れていたことが原因でした。
ip helper-addressを設定した瞬間に、PCが次々とIPアドレスを取得し始めました。新しいVLANを追加するたびにこの設定が必要なことを忘れがちなので、VLANを追加する際のチェックリストに「SVIにip helper-address設定」を必ず入れるようにしました。

なぜDHCPリレーが必要なのか
DHCPクライアントはIPアドレスを取得するためにDHCP Discoverをブロードキャスト(255.255.255.255)で送信します。しかし、ルータやL3スイッチはブロードキャストを別ネットワークに転送しません。
そのため、DHCPサーバが別のVLANに存在する場合、クライアントのDHCP DiscoverはL3デバイスで止まってしまい、DHCPサーバに届きません。これを解決するのがDHCPリレーです。
DHCP Discover → L3スイッチ
ブロードキャスト
ここで止まる ✗ DHCPサーバ(VLAN100)
届かない
DHCP Discover
(ブロードキャスト) → L3スイッチ
ユニキャストに変換
(ip helper-address) → DHCPサーバ(VLAN100)
192.168.100.10
✅ 受信成功
ip helper-addressの仕組み
ip helper-addressはCiscoのL3デバイスが受信したDHCPブロードキャストを、指定したDHCPサーバ宛のユニキャストに変換して転送する機能です。
DHCPリレーの通信フロー(4ステップ)
DHCP以外にも転送される8つのUDPポート
ip helper-addressはDHCPだけでなく、デフォルトで以下の8種類のUDPポートのブロードキャストを中継します。
| UDPポート | プロトコル | 用途 |
|---|---|---|
| 67 / 68 | DHCP / BOOTP | IPアドレス自動配布(主な用途) |
| 69 | TFTP | ファイル転送 |
| 137 / 138 | NetBIOS | Windows名前解決 |
| 49 | TACACS | 認証 |
| 37 | Time | 時刻同期(旧式) |
| 53 | DNS | 名前解決 |
no ip forward-protocol udp [ポート番号]で個別に無効化できます。セキュリティ上、必要なポートのみ有効にすることを推奨します。設定例
VLAN 10のクライアントが、192.168.100.10にあるDHCPサーバからアドレスを取得する構成例です。
構成図
↕ L2接続
L3スイッチ(SVI Vlan10:192.168.10.1/24)
← ip helper-address 192.168.100.10 設定
↕ ルーティング
DHCPサーバ(192.168.100.10:VLAN100)
VLAN10向けスコープ:192.168.10.100〜200
設定コマンド
Switch# configure terminal
! L3ルーティングを有効化(L3スイッチ必須)
Switch(config)# ip routing
! VLAN 10 SVIにIPアドレスとDHCPサーバを指定
Switch(config)# interface Vlan10
Switch(config-if)# ip address 192.168.10.1 255.255.255.0
Switch(config-if)# ip helper-address 192.168.100.10
Switch(config-if)# no shutdown
Switch(config-if)# exit
Switch(config)# end
Switch# copy running-config startup-configip helper-addressはクライアントが接続しているVLANのSVI(スイッチ仮想インターフェース)に設定します。DHCPサーバ側のインターフェースではなく、クライアント側のインターフェースに設定する点が重要です。VLANが増えるたびに、そのVLANのSVIに設定が必要です。複数VLANに対応する場合
VLAN 10・20・30など複数のVLANが存在する場合、それぞれのSVIにip helper-addressを設定します。
! VLAN 10(フロア1)
Switch(config)# interface Vlan10
Switch(config-if)# ip address 192.168.10.1 255.255.255.0
Switch(config-if)# ip helper-address 192.168.100.10
! VLAN 20(フロア2)
Switch(config)# interface Vlan20
Switch(config-if)# ip address 192.168.20.1 255.255.255.0
Switch(config-if)# ip helper-address 192.168.100.10
! VLAN 30(フロア3)
Switch(config)# interface Vlan30
Switch(config-if)# ip address 192.168.30.1 255.255.255.0
Switch(config-if)# ip helper-address 192.168.100.10複数DHCPサーバの指定(冗長化)
DHCPサーバを冗長化する目的で、1つのインターフェースに複数のip helper-addressを設定できます。
interface Vlan10
ip helper-address 192.168.100.10 ← プライマリDHCPサーバ
ip helper-address 192.168.100.20 ← バックアップDHCPサーバip helper-addressを複数設定した場合、L3スイッチはDHCPブロードキャストを両方のサーバに同時にユニキャストで転送します。「順番に問い合わせる」わけではありません。クライアントは最初に届いたDHCP OFFERを採用します。両方のサーバが同じスコープを持っているとIPアドレスの重複が発生するため、通常はサーバ間でスコープを分割するか、DHCPフェイルオーバー機能を使って管理します。
動作確認コマンド
基本的な設定確認
! SVI設定の確認(ip helper-addressが入っているか)
Switch# show running-config interface Vlan10
! インターフェースの状態確認(UP/UPか)
Switch# show ip interface Vlan10
! ルーティングテーブルでDHCPサーバへの経路確認
Switch# show ip route 192.168.100.10詳細なパケット確認(テスト時・デバッグ)
! DHCPリレーのデバッグ(業務時間外に実施)
Switch# debug ip dhcp server packet
! 確認後は必ず無効化
Switch# no debug alldebug ip dhcp server packetはCPUに負荷をかけます。本番環境の業務時間帯は避け、確認後は必ずno debug allで無効化してください。DHCPが取得できないときの切り分け手順
運用上の注意点
| 注意点 | 内容 |
|---|---|
| ACLでUDP 67/68を許可する | 経路上のACLやFWがDHCPトラフィック(UDP 67/68)をブロックしていると動作しない |
| 複数サーバ時はスコープを分割 | 複数のDHCPサーバに同時転送されるため、同一スコープを持たせるとIPが重複するリスクがある |
| helper-addressは到達可能なIPを指定 | L3スイッチからDHCPサーバのIPへのルートが存在することが前提。ルートがなければ転送できない |
| VLAN追加時にSVIへの設定を忘れない | 新しいVLANを追加するたびにそのSVIへip helper-addressを設定する必要がある。チェックリストに入れておくと安全 |
| 不要なUDP中継はno ip forward-protocolで無効化 | DHCP以外のUDPブロードキャスト転送が不要な場合は明示的に無効化して不要なトラフィックを減らす |
まとめ
DHCPリレーは、複数VLAN環境でのIPアドレス配布を実現する基本機能です。正しく設定すれば、物理的に離れたDHCPサーバから複数のVLANへ安定してアドレスを配布できます。
ip helper-addressはクライアント側のSVI(インターフェース)に設定する- 複数DHCPサーバを指定した場合、両方に同時に転送される(順番ではない)。スコープの重複に注意
- L3ルーティングが有効でDHCPサーバへの経路が存在することが前提条件
- ACLやFWでUDP 67/68がブロックされていないか確認する
- VLANを追加するたびに新しいSVIへの設定が必要。漏れをなくすためチェックリストに加える
- デバッグは
debug ip dhcp server packetで確認し、確認後は必ずno debug allで無効化
運用時はACLやルーティング設定とあわせて動作を確認し、トラブル時には5ステップの切り分け手順を順番に確認していきましょう。



