👷 現場での体験談

ある企業でFortiGateを導入した際、既存のWindowsサーバーと役割分担せずにDHCPサーバーを設定したところ、ネットワーク全体でIPアドレスの重複が発生し大混乱になりました。FortiGateのDHCP機能は強力ですが、適切な設計と設定が不可欠です。

特にスコープ設定やリース時間、既存DHCPサーバーとの共存には細心の注意が必要です。この記事では、実際の運用を踏まえた設定手順とトラブル対処法を解説します。

DHCPサーバーの基本とFortiGateでの役割

DHCP(Dynamic Host Configuration Protocol)は、ネットワーク上のデバイスに対してIPアドレスやネットワーク設定を自動的に割り当てるプロトコルです。FortiGateは、ファイアウォール機能に加えてDHCPサーバー機能を内蔵しており、小規模から中規模のネットワークで単独のDHCPサーバーとして運用できます。

FortiGateでDHCPサーバーを構成する主なメリットは、ネットワーク機器の集約による管理の簡素化と、ファイアウォールポリシーとの統合管理です。特に支店やリモートオフィスでは、FortiGate単体でルーティング、セキュリティ、DHCP機能を兼ねることでコスト削減と運用効率化を実現できます。

図1: DHCPサーバーの利用シーン別割合

支店・営業所
75%
小規模オフィス
68%
ゲストネットワーク
52%
本社データセンター
18%
GUI/CLIでのDHCPサーバー基本設定
GUIでのDHCPサーバー設定

FortiGateでDHCPサーバーを有効化する最も簡単な方法はGUIを使用することです。以下の手順で設定を進めます。

1
インターフェース選択

Network > Interfaces からDHCPサーバーを有効化したいインターフェースを選択し、Editをクリックします。

2
DHCP Server有効化

Addressing欄で「DHCP Server」を有効化し、IPアドレス範囲、ネットマスク、デフォルトゲートウェイを設定します。

3
詳細オプション設定

DNS Server、NTP Server、ドメイン名などのオプション情報を必要に応じて設定し、OKで保存します。

CLIでのDHCPサーバー設定

CLIを使用すると、より詳細な設定や一括設定が可能です。以下は基本的なDHCPサーバー設定例です。

config system dhcp server
    edit 1
        set dns-service default
        set default-gateway 192.168.10.1
        set netmask 255.255.255.0
        set interface "internal"
        config ip-range
            edit 1
                set start-ip 192.168.10.100
                set end-ip 192.168.10.200
            next
        end
        set dns-server1 8.8.8.8
        set dns-server2 8.8.4.4
        set lease-time 86400
        set domain "example.local"
    next
end

この設定では、internal インターフェースで192.168.10.100から192.168.10.200までのIPアドレスを配布し、リース時間を24時間(86400秒)に設定しています。DNSサーバーにはGoogleのパブリックDNSを指定しています。

詳細設定:スコープとオプション
IPアドレスプールとリース時間

IPアドレスプールは、DHCPサーバーがクライアントに割り当て可能なIPアドレスの範囲です。適切なプール設計には以下の考慮が必要です。

主要なDHCPオプション設定項目

設定項目説明推奨値
リース時間IPアドレスの貸出期間86400秒(24時間)
DNSサーバー名前解決用DNSサーバーアドレス社内DNS推奨
NTPサーバー時刻同期サーバーアドレスntp.nict.jp等
ドメイン名クライアントに配布するドメイン会社ドメイン
WINSサーバーWindows環境のNetBIOS名前解決必要時のみ
⚠ 注意

リース時間を短く設定しすぎると、DHCPサーバーとクライアント間の通信量が増加し、ネットワーク負荷が高まります。固定的に使用するオフィス環境では24時間以上が推奨です。

MACアドレス予約設定(固定割り当て)

特定のデバイスに常に同じIPアドレスを割り当てたい場合、MACアドレスベースの予約設定が有効です。プリンターやサーバーなど、IPアドレスが変わると困る機器に使用します。

config system dhcp server
    edit 1
        config reserved-address
            edit 1
                set ip 192.168.10.50
                set mac 00:0c:29:3a:4b:5c
                set description "Office Printer"
            next
            edit 2
                set ip 192.168.10.51
                set mac 00:0c:29:6d:7e:8f
                set description "NAS Server"
            next
        end
    next
end

この設定により、指定したMACアドレスのデバイスには必ず同じIPアドレスが割り当てられます。GUIでは、System > DHCP Server > Reserved Addresses から設定できます。

DHCPリレーエージェント設定

DHCPリレーエージェントは、異なるサブネット間でDHCP要求を中継する機能です。複数のVLANやセグメントがある環境で、単一のDHCPサーバーから全セグメントにIPアドレスを配布する際に使用します。

例えば、本社にDHCPサーバーがあり、支店のFortiGateがリレーエージェントとして動作するケースです。

config system dhcp server
    edit 2
        set status disable
    next
end

config system interface
    edit "internal"
        set dhcp-relay-service enable
        set dhcp-relay-ip 10.1.1.100
    next
end

この設定では、internalインターフェースで受信したDHCP要求を、10.1.1.100のDHCPサーバーに転送します。リレーエージェントを使用する場合、該当インターフェースのDHCPサーバー機能は無効にする必要があります。

図2: DHCP設定パターン別推奨構成

FortiGate単独
85%
リレー + 外部DHCP
42%
冗長化構成
28%
複数セグメント個別
55%
トラブルシューティングと対処法
DHCPリースの確認コマンド

DHCPサーバーが正常に動作しているか、どのクライアントにIPアドレスが割り当てられているかを確認するには、以下のコマンドを使用します。

diagnose ip dhcp lease list

# 出力例
IP          MAC address       Hostname        Expires
192.168.10.101  00:0c:29:1a:2b:3c  PC-001         23h 45m
192.168.10.102  00:0c:29:4d:5e:6f  PC-002         22h 12m
192.168.10.103  00:0c:29:7g:8h:9i  PC-003         20h 33m

リース一覧から、割り当て済みIPアドレス、MACアドレス、ホスト名、残りリース時間を確認できます。プールの枯渇や特定デバイスの割り当て状況をチェックする際に有効です。

よくあるトラブルと解決方法

DHCPトラブルシューティングチェックリスト

症状原因対処法
IPアドレス取得失敗DHCPサーバー未有効化、プール枯渇設定確認、プール拡張
IPアドレス重複複数DHCPサーバー稼働、手動設定と競合スコープ分離、サーバー統合
DNS解決不可DNSサーバー設定誤りdns-server設定修正
予約が効かないMACアドレス入力ミス、スコープ外IP指定MAC再確認、IP範囲確認
リレー動作しないルーティング不通、ポリシー設定不足経路確認、UDP67/68許可

特にIPアドレス重複は深刻な問題です。FortiGate以外にDHCPサーバーが存在していないか、既存サーバーとスコープが重複していないかを必ず確認してください。以下のコマンドでDHCPサーバーの設定状態を確認できます。

show system dhcp server

# DHCPサーバーのデバッグログを有効化
diagnose debug application dhcps -1
diagnose debug enable

# DHCPリース強制削除(慎重に実行)
execute dhcp lease-clear <DHCP server ID>
⚠ 注意

DHCPリースの強制削除は、全クライアントの通信に影響を与える可能性があります。実行前に必ず影響範囲を確認し、メンテナンス時間帯に実施してください。

パケットキャプチャによる詳細調査

DHCPの通信がFortiGateを正常に通過しているかを確認するには、パケットキャプチャが有効です。

diagnose sniffer packet internal 'port 67 or port 68' 4 0 l

# 出力例でDHCP Discover/Offer/Request/Ackの流れを確認
# 4はverbosity level、0は無制限、lはヘッダ表示

正常なDHCP通信では、DHCP Discover → DHCP Offer → DHCP Request → DHCP Ack の4ウェイハンドシェイクが確認できます。途中で途切れている場合、その段階で問題が発生していると判断できます。

まとめ

FortiGateのDHCPサーバー機能は、小規模から中規模のネットワークで非常に有効です。適切なスコープ設計とリース時間の設定により、安定したIPアドレス管理を実現できます。トラブル発生時は、リース状況の確認とパケットキャプチャによる通信フローの検証が重要です。

  • GUIとCLIの両方でDHCPサーバー設定が可能。CLIはより詳細な制御に有効
  • MACアドレス予約で特定機器への固定IP割り当てを実現
  • diagnoseコマンドでリース状況を確認し、トラブル時は既存DHCPサーバーとの競合をチェック