Fortigateは、ネットワーク内でDHCPサーバとして機能することが可能です。
このブログ記事では、FortigateでのDHCP基本設定からパケットキャプチャを用いたDHCP通信シーケンスの解析までを解説します。さらに、MACアドレスによるIPアドレスの予約やオプション指定といった高度な設定についてもカバーします。
DHCPサーバ設定の手順
このセクションでは、Fortigateの内部インタフェースでDHCPサーバを構成し、端末にIPアドレスを自動的に割り当てる手順を説明します。具体的には、192.168.100.100〜192.168.100.200の範囲でIPアドレスを割り当てる設定を行います。

インタフェース設定
DHCPサーバはインタフェース単位で設定します。
ネットワーク >> インタフェース でinternalをクリックします。

予めIPアドレスは、192.168.100.254/24を設定しているものとします。
DHCPサーバの有効化
このインタフェースでDHCPサーバを有効にします。

以下のような設定画面が表示されます。

- アドレス範囲:端末に割り当てるIPアドレスの範囲(最初のIPアドレス、終了IP)を設定します。新規作成 をクリックすることで、設定を追加できます。今回は、192.168.100.100から192.168.100.200を割り当てるものとします。
- ネットマスク:端末に割り当てるサブネットマスクです。Fortigateに割り当てているサブネットと同一で、255.255.255.0とします。
- デフォルトゲートウェイ:端末に割り当てるデフォルトゲートウェイ。インタフェースIPと同じを選択すると、Fortigateのインタフェースのアドレスがデフォルトゲートウェイとして配信されます。別のアドレスを指定することもできますが、今回は、FortigateのIPアドレス(192.168.100.254)を配信します。
- DNSサーバ:端末に割り当てるDNSサーバ。システムDNSと同じとすると、Fortigateに設定されているDNSサーバが配信されます。Fortigateでは、デフォルトで、208.91.112.53(プライマリ)と208.91.112.52(セカンダリ)が設定されています。 DNSフィルタなどを使用するため、Fortigate自身をDNSサーバに設定する場合は、インタフェースIPと同じを設定してください。別にアドレスを指定することもできます。今回は、システムDNSと同じとします。
端末のIPアドレスを自動取得にし接続すると、ネットワーク接続情報が取得されていることが確認できます。(以下、MAC端末での出力です)

DHCP通信のシーケンス
DHCPは、Discover / Offer / Request / ACK の4種類のパケットを用いて、IPアドレスの配信をします。基本設定の環境におけるDHCP通信のキャプチャをもとに、シーケンスを確認します。

Discover
クライアント端末がネットワーク上のDHCPサーバを探索するため、ブロードキャストで送信する最初のメッセージです。まだ、IPアドレスは付与されていませんので、送信元IPアドレスは0.0.0.0です。

Offer
DHCPサーバからクライアントに対して、利用可能なIPアドレスを提案するパケットです。この時点ではまだクライアントはIPアドレスを保持していません。

Request
クライアントは提案されたIPアドレスを要求し、指定されたIPアドレスの割り当てをサーバに要求します。

ACK
DHCPサーバは、要求されたIPアドレスを正式に割り当て、クライアントにACKパケットを返送します。この時点で、クライアントは割り当てられたIPアドレスを使用可能になります。

確認コマンド
Fortigate上で、現在配信中のIPアドレスを execute dhcp lease-list で確認することができます。
Fortigate-1 # execute dhcp lease-list internal IP MAC-Address Hostname VCI Expiry 192.168.100.100 04:ab:18:7f:b5:d9 hirotanopc Fri Mar 19 20:51:33 2021
このリース情報をクリアするには、execute dhcp lease-clear にオプションをつけて実行します。オプションにallを選択すると、すべてのリース情報がクリアされます。特定IPアドレスのみ選択しクリアも可能です。
Fortigate-1 # execute dhcp lease-clear xxx.xxx.xxx.xxx Clear lease(s) on this IP address. all Clear all leases. Fortigate-1 # execute dhcp lease-clear all Fortigate-1 # execute dhcp lease-list Fortigate-1 #
高度な設定
DHCPサーバ設定の高度な設定を展開すると、さらに細かいDHCPサーバの設定ができます。

この中で、比較的、実務で使われる部分を確認していきます。
モード
基本設定では、Fortigate自身をDHCPサーバとして設定しましたが、他のDHCPサーバへ要求を転送するリレーエージェントとしても設定できます。その場合は、リレーを選択します。以下のように画面になり、DHCPサーバIPにリレー先のDHCPサーバのIPアドレスを設定します。

その他DHCPオプション
DHCPでは、端末に付与されるIPアドレス以外の情報もオプションとして配信することができます。
基本設定で確認したDHCP ACKのパケットからも確認できるように、よく使われるパラメータはオプション番号が規定されています。
- オプション1:サブネットマスク
- オプション3:デフォルトゲートウェイ
- オプション6:DNSサーバ

例えば、CiscoのIP電話では、オプション150でTFTPサーバのアドレスを配信し、設定情報をダウンロードさせます。このようなIP電話を接続する場合は、オプション150をカスタム追加します。
設定方法を確認します。新規作成をクリックすると新しい行が追加され、以下のとおりオプションコードが設定できます。

今回は、オプション150を選択し、TFTPサーバとして10.10.10.10を設定します。

再度、DHCP ACKを確認すると、オプション150が配信されていることを確認できます。

また、デフォルトでオプション51として割り当てIPアドレスのリース時間が設定されており、端末に配信されています。デフォルトでは、604800秒(7日)です。この値も変更することができます。

MACアドレスによるIPアドレス予約
MACアドレスに応じて、固定されたIPアドレスを割り当てることができます。
今まで、端末(MACアドレス 04:ab:18:7f:b5:d9)は、192.168.100.100が割り当てられていましたが、192.168.100.150にアドレスを固定して割り当てたいとします。
以下の画面より新規作成をクリックし、IPを予約 として、MACアドレス(04:ab:18:7f:b5:d9)とIPアドレス(192.168.100.150)を設定します。

再度、DHCPでアドレス取得すると、192.168.100.150 が割り当てられていることが確認できます。

まとめ
FortigateのDHCPサーバ設定は、ネットワーク内のIPアドレス管理を簡素化し、効率的に行うために重要です。本記事では、基本的な設定から、通信シーケンスの解析、高度な設定までを詳しく解説しました。これにより、Fortigateを使った柔軟で効果的なDHCPサーバ構築が可能になります。
コメント