FortiGate-VM を VMware Workstation に構築|Permanent Trial の落とし穴

  • URLをコピーしました!
目次

はじめに

FortiGate の検証環境をローカル PC 上に持っておくと、コマンドの挙動確認や設定変更の試行が手元で完結します。ESXi ホストを常時稼働させるほどではないが、手元の Windows マシンで FortiGate を動かしたい、という場面は少なくありません。

今回は VMware Workstation Pro 26H1 上に FortiGate-VM 8.0.0 を構築し、Permanent Trial(Evaluation License)を有効化するところまでを実機で確認しました。途中で 2 つのつまずきがあり、そのどちらもインストール手順書には書かれていない内容でした。

この記事でわかること
  • VMware Workstation Pro 26H1 上での FortiGate-VM 8.0.0 の構築手順
  • OVF インポート直後に NIC が多数作成された場合の整理方法
  • Permanent Trial(Evaluation License)の制限と有効化コマンド
  • Failed to download VM license が出たときの切り分けと、今回の原因

結論を先に述べます。Permanent Trial にはインターフェース数の制限があるため、OVF インポート後に不要な NIC を削除して 2 NIC 構成に整理しました。そのうえで execute vm-license を実行したところ Failed to download VM license. となりましたが、ネットワークは正常で、原因は同一 FortiCloud アカウントに残っていた古い FortiGate VM Trial でした。Fortinet 公式は、評価ライセンスを FortiCloud アカウントあたり 1 コピーまでとしています。

参考: Permanent trial mode for FortiGate-VM(FortiOS 8.0.0 Administration Guide)
“Maximum of one free evaluation copy per FortiCloud account”
(FortiCloud アカウントごとに無償評価版は最大 1 コピー)
https://docs.fortinet.com/document/fortigate/8.0.0/administration-guide/441460/permanent-trial-mode-for-fortigate-vm

検証環境と構成

今回構築した環境は次のとおりです。すべて実機で確認した値です。

項目内容
ホスト OSWindows
ハイパーバイザーVMware Workstation Pro 26H1
仮想アプライアンスFortiGate-VM64
FortiOSv8.0.0 build0167(GA.F)
ライセンスPermanent Trial(Evaluation License)
vCPU1
メモリー約 2 GB
動作モードNAT mode

ネットワークは 2 NIC 構成です。

FortiGateVMnet種別アドレス
port1VMnet1Host-only192.168.10.254/24(静的)
port2VMnet8NAT192.168.46.128/24(DHCP 取得)

port1 を管理アクセス用、port2 をインターネット接続用としました。port2 のデフォルトゲートウェイは VMware NAT の 192.168.46.2 です。

VMware Workstation Pro については、26H1 の時点で商用・教育・個人のいずれの用途でも無償で利用できる形になっています。ライセンスキーの入力は不要で、Broadcom Support Portal からダウンロードして導入します。

参考: Using VMware Workstation Pro(Broadcom TechDocs, Workstation Pro 26H1)
“VMware Workstation Pro is now free for commercial, educational, and personal use.”
(VMware Workstation Pro は商用・教育・個人利用のいずれでも無償になりました)
https://techdocs.broadcom.com/us/en/vmware-cis/desktop-hypervisors/workstation-pro/26H1/using-vmware-workstation-pro.html

FortiGate-VM の VMware 向け Administration Guide は、ESXi / vSphere を対象としたドキュメントです。一方で Fortinet Community には、FortiOS 8.0.0 と VMware Workstation Pro 17 を対象とした Technical Tip が公開されており、Workstation 上に展開した FortiGate-VM の初期起動と設定手順が示されています。

参考: Technical Tip: Performing the initial startup and configuration of a FortiGate VM running FortiOS v8.0(Fortinet Community)
“Scope FortiGate VM, FortiOS v8.0.0, VMware Workstation Pro 17.”
(対象範囲: FortiGate VM、FortiOS v8.0.0、VMware Workstation Pro 17)
https://community.fortinet.com/fortigate-3/technical-tip-performing-the-initial-startup-and-configuration-of-a-fortigate-vm-running-fortios-v8-0-228806

つまり、正式な Administration Guide は ESXi を対象としつつ、Workstation 向けの手順は Community の Technical Tip としてカバーされている、という整理になります。ただし Technical Tip が対象としているのは Workstation Pro 17 です。本記事は、その 1 つ先の世代にあたる 26H1 で実機検証した内容をまとめています。 Technical Tip はブリッジ接続と port1 の DHCP を前提としていますが、今回は Host-only と NAT を組み合わせた 2 NIC 構成で検証しました。

FortiGate-VM のインポートと NIC の整理

FortiGate-VM の入手

FortiGate-VM のデプロイパッケージは、FortiCare / FortiCloud アカウントでログインした Fortinet のサポートサイトから取得します。Download メニューの VM Images を選び、製品に FortiGate、プラットフォームに VMware ESXi を指定して、対象の FortiOS バージョンを選択します。

参考: Downloading the FortiGate-VM deployment package(FortiGate Private Cloud 8.0.0 VMware ESXi Administration Guide)
“In the Select Platform drop-down menu, select VMware ESXi.”
(プラットフォームのドロップダウンで VMware ESXi を選択します)
https://docs.fortinet.com/document/fortigate-private-cloud/8.0.0/vmware-esxi-administration-guide/961760/downloading-the-fortigate-vm-deployment-package

ダウンロード画面には、既存環境のアップグレード用ファイルと新規デプロイ用ファイルの 2 種類が並びます。今回は新規構築のため、新規デプロイ用のパッケージを取得しました。zip を展開すると .ovf ファイルと .vmdk ファイルが含まれています。

VMware Workstation へのインポート

展開したフォルダー内の .ovf ファイルを VMware Workstation Pro から開き、仮想マシン名と保存先を指定してインポートします。インポート完了後、CPU とメモリーの割り当てを確認します。Permanent Trial は 1 vCPU と 2 GiB メモリーが上限のため、これを超える割り当てをしても評価ライセンス下では消費されません。

インポート直後に NIC が多数作成された

今回の環境では、インポート直後の仮想マシンに NIC が 10 個作成されていました。 ESXi 向けの OVF テンプレートが複数のネットワークインターフェースを定義しているためと考えられます。

これはあくまで今回の実測結果です。テンプレートのバージョンやインポート時の設定によって作成される NIC 数は変わり得るため、「常に 10 個作成される」という一般仕様として扱わないでください。自身の環境で実際に作成された NIC 数を確認したうえで、次の整理を検討することをおすすめします。

Permanent Trial にはインターフェース数の上限があるため、この状態のまま起動すると、使えないインターフェースを大量に抱えたまま検証を始めることになります。 公式が明記している評価ライセンスの制限は次のとおりです(詳細は後述の Permanent Trial のセクションで整理します)

  • インターフェース、ファイアウォールポリシー、ルートはそれぞれ最大 3

今回は VMware Workstation の仮想マシン設定から不要なネットワークアダプタを削除し、次の 2 NIC 構成にしました。

ネットワークアダプタ割り当て先FortiGate 側
NIC 1VMnet1(Host-only)port1
NIC 2VMnet8(NAT)port2

FortiGate 側のポート番号は、仮想マシンに定義されたネットワークアダプタの順序に対応します。1 番目のアダプタが port1、2 番目が port2 です。削除の順序を誤ると意図しないポートに割り当たるため、削除後に FortiGate 側で get system interface physical を実行して対応関係を確認しておくと安心です。

ネットワーク設定とインターネット疎通の確認

VMware 側の仮想ネットワーク

VMware Workstation の Edit から Virtual Network Editor を開き、VMnet1 が Host-only、VMnet8 が NAT として構成されていることを確認します。VMnet8 側は DHCP を有効にしておきます。port2 はここから IP アドレスを取得します。

FortiGate の初回起動と初期設定

仮想マシンを起動し、コンソールから admin でログインします。初期パスワードは未設定のため、ログイン後に管理者パスワードの設定を求められます。

その後、port1 に管理用の静的 IP アドレス、port2 に DHCP クライアント設定を投入します。

config system interface
    edit "port1"
        set mode static
        set ip 192.168.10.254 255.255.255.0
        set allowaccess ping https ssh http
    next
    edit "port2"
        set mode dhcp
        set allowaccess ping
    next
end

set allowaccess は指定した値でサービスを上書きします。既存の設定に追加したい場合は append allowaccess を使用します。管理アクセスを絞る観点では、port1 に必要なサービスのみを明示的に設定する形をおすすめします。

参考: Interface settings(FortiOS 8.0.0 Administration Guide)
https://docs.fortinet.com/document/fortigate/8.0.0/administration-guide/574723/interface-settings

管理アクセスの絞り込みについては、関連記事『FortiGate の管理アクセス制限の設定手順』で詳しく扱っています。

疎通確認で何を見ているか

ライセンス取得は FortiGate 自身が Fortinet 側と通信して行うため、その前にインターフェース、アドレス、経路、名前解決の 4 層を順に確認しておくと、後で問題が起きたときの切り分けが早くなります。

コマンド確認する内容
get system interface physical物理インターフェースの認識状況とリンク状態。NIC 削除後の port 対応を確認
diagnose ip address list各インターフェースに実際に付与された IP アドレス。port2 の DHCP 取得結果を確認
get router info routing-table allルーティングテーブル。デフォルトルートが port2 経由で入っているかを確認
execute ping 8.8.8.8IP レイヤーでの外部到達性。DNS を介さない疎通確認
execute ping service.fortiguard.net名前解決と Fortinet 側への到達性を同時に確認

今回の環境では、ルーティングテーブルに次のデフォルトルートが入っていました。

S* 0.0.0.0/0 [5/0] via 192.168.46.2, port2

execute ping 8.8.8.8 は成功し、execute ping service.fortiguard.net も名前解決を含めて成功しました。この 2 つが通れば、基本的な外部到達性と DNS 名前解決が正常であることは確認できます。ただし ICMP と DNS が通ることは、FortiCare との HTTPS 通信が成立することまで保証するものではありません。ライセンス取得の可否は、これらとは別の要因で決まる場合があります。

Permanent Trial(Evaluation License)を有効化する

Permanent Trial の制限を把握する

Permanent Trial は有効期限のない評価ライセンスですが、機能面での制限があります。Fortinet 公式ドキュメントに記載されている主な制限は次のとおりです。

  • 無償評価版は FortiCloud アカウントあたり最大 1 コピー
  • 低強度暗号のみのサポート(GUI 管理アクセスと FortiManager との通信は除く)
  • 最大 1 CPU、2 GiB メモリー
  • インターフェース、ファイアウォールポリシー、ルートはそれぞれ最大 3
  • VDOM は最大 2
  • FortiCare サポート対象外

このうち検証設計に効いてくるのは、インターフェース 3、ポリシー 3、ルート 3 という上限です。 多段構成や複数セグメントを組むラボには向きませんが、単一のポリシーで NAT 越しに通信させ、REST API や自動化を試す用途であれば十分に機能します。

CLI からライセンスを取得する

FortiCare / FortiCloud アカウントの資格情報を FortiGate に渡し、ライセンス取得を実行します。

execute vm-license-options account-id <FortiCare アカウントのメールアドレス>
execute vm-license-options account-password <FortiCare アカウントのパスワード>
execute vm-license

execute vm-license を実行すると、評価ライセンスの制限内容が表示され、再起動の確認を求められます。今回表示された内容は次のとおりでした。

This VM is using the evaluation license. This license does not expire.
Limitations of the Evaluation VM license include:
  1.Support for low encryption operation only
  2.Maximum of 1 CPU and 2GiB of memory
  3.Maximum of three interfaces, firewall policies, and routes each
  4.No FortiCare Support

This license does not expire. の一文が、Permanent Trial が期限切れしないことを示しています。14 日間などの期限付き評価とは別の仕組みです。ラボを長期間そのまま維持できる点が、この評価ライセンスの実務的な価値になります。

Failed to download VM license の切り分けと対処

発生した事象

最初のライセンス取得では、再起動の確認に応答した後、次のエラーで終了しました。

Failed to download VM license.

ここからの切り分けを、実施順に記録します。

手順
ネットワーク要因を除外する

まず、FortiGate から Fortinet 側への通信が成立しているかを確認しました。確認した内容と結果は次のとおりです。

確認項目コマンド結果
port2 の IP アドレス取得diagnose ip address listDHCP で 192.168.46.128/24 を取得済み
デフォルトルートget router info routing-table allport2 経由の 0.0.0.0/0 が存在
外部への IP 疎通execute ping 8.8.8.8成功
名前解決と Fortinet 側への到達性execute ping service.fortiguard.net成功

「どのコマンドで、何を、いつ確認したか」を記録に残しておくと、ネットワークを原因候補から外した判断の根拠になります。 この 4 項目がすべて正常だったため、経路や名前解決に起因する問題の可能性は低いと判断し、アカウント側の要因を先に確認する方針に切り替えました。なお、前述のとおり ICMP と DNS の成功は FortiCare との HTTPS 通信までを保証するものではないため、この時点でネットワーク要因をすべて排除できたわけではありません。

アカウント側を疑う根拠として、Fortinet Community には「評価用 VM を失った後に新しい評価ライセンスを要求する場合」の Technical Tip が公開されています。この記事では、FortiCare アカウントの Asset Management に評価用 VM がすでに存在する状態で新しいライセンスを要求すると失敗すること、その対処として旧ユニットを Asset Management からデコミッションすることが示されています。今回の実測結果は、この Technical Tip が示す対処と一致しています。

参考: Technical Tip: Requesting a new FortiGate evaluation license after previous evaluation VM is lost(Fortinet Community)
“Decommission the previous FortiGate VM trial unit.”
(以前の FortiGate VM トライアルユニットをデコミッションします)
https://community.fortinet.com/fortigate-3/technical-tip-requesting-a-new-fortigate-evaluation-license-after-previous-evaluation-vm-is-lost-192544

手順
FortiCloud の Product List を確認する

FortiCloud にログインし、Asset Management の Products から Product List を開きました。すると、同じアカウントに以前作成した FortiGate VM Trial が 1 台残っていました。

Fortinet 公式は、評価ライセンスを FortiCloud アカウントあたり 1 コピーまでとしています。既に 1 台が登録済みの状態で新しい VM のライセンスを要求したことが、今回のエラーの原因と考えられます。

手順
古い Trial VM を Product List から外す

FortiCloud では、Product List から対象を選び、Registration セクションの Decommission This Unit で資産を切り離します。確認メッセージのチェックボックスに同意して続行すると、Product List から外れます。

参考: Decommissioning assets(FortiCloud Services 26.3.0 Asset Management)
“Select Decommission This Unit in the Registration section.”
(Registration セクションで Decommission This Unit を選択します)
https://docs.fortinet.com/document/forticloud/26.3.0/asset-management/232591/decommissioning-assets

デコミッションを実行すると、その資産はすべてのクラウドサービスから外れ、関連データも削除されます。実際に使用中の機器が対象に含まれていないか、シリアル番号を確認してから操作することをおすすめします。

手順
再実行と結果の確認

古い Trial VM を Product List から外したあと、あらためて execute vm-license を実行しました。今回はエラーが発生せず、FortiGate が再起動しました。

再起動後、get system status で状態を確認します。

License Status: Valid
VM Resources: 1 CPU/1 allowed, 1994 MB RAM/2048 MB allowed

License Status: Valid となり、割り当てリソースも評価ライセンスの上限内に収まっています。FortiCloud の Product List にも、新しい FortiGate VM Trial が登録されていることを確認しました。

断定を避けたい点

今回のケースでは、古い Trial VM を Product List から外した直後にライセンス取得が成功しました。ただし、「古い Trial VM が存在すれば必ずこのエラーになる」と一般化はできません。 Failed to download VM license. は、経路の問題、DNS の問題、FortiCare 側の一時的な応答エラーなど、複数の要因で発生し得ます。

公式情報として確認できるのは「評価ライセンスは FortiCloud アカウントあたり 1 コピー」という制限と、Technical Tip に記載された旧ユニットのデコミッションという対処です。今回の解決は、これらと観測結果が整合したケースだった、という位置づけになります。ネットワークが正常であることを先に確認したうえで、アカウント側の登録状況を見に行く、という順序で切り分けることをおすすめします。

完成した検証環境と次に試すこと

構築後、最終状態を次のコマンドで確認しました。

get system status
get system interface physical
get router info routing-table all
execute ping 8.8.8.8

これで、期限のない評価ライセンス付きの FortiGate-VM が手元の Windows マシン上で常時利用できる状態になりました。port1 の 192.168.10.254 にホスト側から HTTPS でアクセスすれば GUI も操作できます。

一方で、Permanent Trial のインターフェース 3、ポリシー 3、ルート 3 という制限は、ラボの設計に直接効いてきます。複数セグメント間の複雑なポリシー検証には向きませんが、次のような用途であれば制限内に収まります。

  • REST API の疎通確認と設定取得
  • 単一ポリシーに対する変更・確認・切り戻しの反復
  • 設定バックアップと差分比較の検証

本記事のラボは、この後に予定している「AI に FortiGate の設定変更を任せる」検証の前提環境として構築したものです。次の記事では、この環境を使って REST API の疎通確認から設定変更、証跡取得、ロールバックまでを扱う予定です。

設定変更の前後で通信の実挙動を確認する場面では、関連記事『FortiGate のパケットキャプチャ手順』が役立ちます。また、FortiOS のバージョンを上げる際は関連記事『FortiGate のアップグレードパス確認手順』もあわせてご覧ください。

まとめ

FortiGate-VM は VMware Workstation にも展開できますが、Fortinet の公式導入ガイドが対象としているのは ESXi / vSphere です。Permanent Trial は期限がない代わりにインターフェースやポリシーの数に上限があり、この制限を前提にラボを設計する必要があります。今回のライセンス取得エラーは、ネットワークではなくアカウント側の登録状況が要因でした。

  • VMware Workstation Pro は 26H1 時点でライセンスキー不要
  • Workstation 向け手順は Community の Technical Tip でカバー
  • OVF インポート直後に NIC が多数作成される場合がある
  • Permanent Trial はインターフェース・ポリシー・ルートが各 3 まで
  • 評価ライセンスは FortiCloud アカウントあたり 1 コピー
  • 疎通が正常なら FortiCloud の Product List を確認する
  • 古い Trial VM の切り離し後にライセンス取得が成功

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次