FortiGate の強制アップグレード|無効化の可否と延期手順

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

はじめに

FortiGate を運用していると、自動アップグレードを無効化しているにもかかわらず、ファームウェアの更新が予約されていることがあります。FortiOS 7.4.8 / 7.6.4 以降では、ファームウェアライセンスが無効な場合や、稼働中のマイナーバージョンが EOES に到達した場合に、同一マイナーバージョン内の最新パッチへの更新が要求される仕様が導入されています。

この仕様は、管理者が設定で有効・無効を切り替える通常の自動更新とは別の仕組みです。両者を混同すると、「無効化したはずなのに更新された」「キャンセルしようとしたらエラーになった」といった状況で、次の対応を誤る原因になります。

この記事でわかること
  • 通常の自動更新(Automatic patch upgrades)と強制更新(Required firmware upgrades)の違い
  • 自機で強制更新が予約されているか、更新先と予定日時を CLI で確認する手順
  • 予約後にキャンセルできない理由と、スケジュール調整・延期の方法
  • 契約を更新しても強制更新が発生するケースと確認ポイント
  • HA / Security Fabric / FortiManager 管理下での扱い

結論として、通常の自動更新は auto-firmware-upgrade disable で無効化できますが、強制更新は設定で無効化できず、予約後は execute federated-upgrade cancel でも取り消せません。予約された場合は、更新先と予定日時を確認したうえでインストールを延期し、その期間内に計画的なアップグレードを実施するのが現実的な対応です。なお、FortiManager に接続した場合など、公式ガイドに記載された管理構成上の例外があります。

公式ドキュメントでは、この機能の名称が当初の「Automatic firmware upgrades for FortiGate appliances with invalid support contracts…」から「Required firmware upgrades」へ変更されています。本記事では、検索や運用上の通称に合わせて「強制アップグレード(強制更新)」と表記します。

自動アップグレードと強制アップグレードの違い

FortiGate には、ファームウェアの更新に関係する設定が 3 種類あります。名称が似ているため、役割と無効化の可否を先に整理します。

項目通常の自動更新強制更新FortiGuard の定期更新
公式の名称Automatic patch upgradesRequired firmware upgradesScheduled updates(autoupdate schedule)
関係する設定config system fortiguard の auto-firmware-upgrade有効・無効を切り替える設定はないconfig system autoupdate schedule の status
発生条件有効時に新しいパッチを検知FMWR ライセンスが無効、または EOES 到達の状態で新しいパッチを検知設定した間隔で FortiGuard と通信
更新の対象同一マイナー内の新しいパッチ同一マイナー内の最新パッチファームウェアではなく、ライセンス情報の検証やシグネチャー等
無効化可能不可可能だが、無効化は推奨されない
federated-upgrade の sourceauto-firmware-upgradeforced-upgrade-

auto-firmware-upgrade disable は通常の自動更新を止める設定で、強制更新の対象から外れる設定ではありません。また、autoupdate schedule はファームウェアの更新を止めるための設定ではありません。無効化すると新しい契約情報を検証できなくなる場合があるため、有効のまま運用することをおすすめします(後述)。

強制アップグレードの発生条件と対象バージョン

強制更新は FortiOS 7.4.8 と 7.6.4 で導入されました。FortiGate は FortiGuard で新しいパッチの有無を毎日確認し、次のいずれかに該当する状態で新しいパッチを検知すると、更新を予約します。2 つの条件はそれぞれ独立しています。

FMWR ライセンスが無効

Firmware & General Updates(FMWR)契約の期限切れなどにより、ファームウェアライセンスが有効と判定されない状態です。有効期限は GUI の System > FortiGuard や CLI で確認できます(確認手順は後述)。

稼働中のマイナーバージョンが EOES に到達

EOES(End of Engineering Support)は、マイナーバージョンのエンジニアリングサポートが終了する日付です。FMWR ライセンスが有効でも、EOES に到達したマイナーバージョンは対象になります。サポート自体が終了する EOS(End of Support)とは別の日付です。

更新先は現在のマイナーバージョン内の最新パッチに限られ、7.4 系から 7.6 系へのようにマイナーバージョンをまたぐ更新は行われません。実際の更新先は確認時点の最新パッチで決まるため、記事の例ではなく自機の予約内容で確認してください。

参考: Required firmware upgrades for FortiGate appliances with invalid support contracts or that have reached EOES(FortiOS 7.4.8 Administration Guide)
“required to automatically upgrade to the latest patch within their current minor version”
(現在のマイナーバージョン内の最新パッチへの自動アップグレードが要求されます)
https://docs.fortinet.com/document/fortigate/7.4.8/administration-guide/320693/automatic-firmware-upgrades-for-fortigate-appliances-with-invalid-support-contracts-or-that-have-reached-eoes-new

FortiOS 7.4 / 7.6 の EOES / EOS は、2026 年 3 月の Customer Support Bulletin(CSB-260330-1)で 1 年延長されました。Fortinet Community の Technical Tip では、7.4 の EOES が 2027 年 5 月 11 日、7.6 の EOES が 2028 年 7 月 25 日と案内されています。最新の日程は Fortinet の Product Life Cycle で確認し、延長の背景は関連記事『FortiOS 7.4 の EOES 延長と SSL-VPN から IPsec への移行実情』をご参照ください。

FortiOS 7.4.12 / 8.0 系で追加された変更

FortiOS 8.0.0 の New Features では、強制更新の強化として次の内容が説明されています。ファームウェアライセンスが無効な FortiGate は、ForcedUpdate フラグと現在のバージョンを付けて FortiGuard へ更新を要求します。FortiGuard はその機器のライセンス確認を行わず、更新元と更新先のメジャー・マイナーバージョンが同じ場合に更新を許可します。あわせて、スペシャルビルドを強制更新の対象外とする扱いと、ログ・通知・オートメーションステッチの文言改善が記載されています。同ガイドの例では、execute auto-upgrade status に EOES 到達の有無(Current Image Reached End of Life)やサポート契約の状態(Support Contract Status)が表示されます。

上記は 8.0.0 の New Features に基づく内容です。7.4 系の New Features にも同名の項目が 7.4.12 の新機能として掲載されています。7.4.8〜7.4.11 や 7.6 系に同じ表示・挙動があるとは限らないため、稼働バージョンの資料で確認してください。

手動アップグレード時のライセンスエラーとの違い

強制更新とは別に、管理者が手動でファームウェアを更新しようとして、ライセンスエラーで拒否されるケースがあります。FortiOS 7.4.2 以降の通常の更新では、FMWR ライセンスの有効期限と、更新先のメジャー・マイナーバージョン(ブランチ)の最初の GA(.0)リリース日を比較して可否が判定されます。有効期限がそのブランチの最初の GA リリース日より前であれば、同じブランチ内のパッチ更新でも拒否されます。

たとえば Fortinet の Community KB では、契約期限が 2022 年 9 月 2 日、7.4.0 GA が 2023 年 5 月 11 日の場合、7.4.5 から 7.4.6 への更新も契約を更新するまで許可されない例が示されています。「パッチ更新だから期限切れでも適用できる」とは判断できません。なお、ここでの判定は管理者による通常の更新の条件です。強制更新のライセンス確認の扱いは前述のとおり別に定められており、両者を同じ条件として扱わないでください。

判定の詳細は Administration Guide の「How the FortiGate firmware license works」をご参照ください。Azure / GCP の PAYG インスタンスで同様の文言のエラーが表示される場合は、PAYG 環境向けの Community KB が別に公開されているため、契約切れと決めつけずに原因を切り分けてください。

強制アップグレードの有無を確認する手順

強制更新の有無は、「稼働バージョンと管理構成」「更新関連の設定とライセンス」「予約状態」の 3 点を順に確認すると判断できます。この章のコマンドはいずれも、状態を表示するだけの確認用です。

手順
稼働バージョンと管理構成を確認する
get system status

Version の行で、マイナーバージョンとパッチ番号を確認します。7.4 系で 7.4.8 未満、7.6 系で 7.6.4 未満であれば、強制更新の仕組みはまだ導入されていません。あわせて、HA 構成か、Security Fabric に参加しているか(show system csf)、FortiManager に接続しているか(show system central-management)を確認します。管理構成によって扱いが変わるためです。

手順
通常の自動更新と FortiGuard の定期更新の設定を確認する
show full-configuration system fortiguard

auto-firmware-upgrade が enable か disable かを確認します。show ではなく show full-configuration を使うのは、show が既定値と同じ設定を表示しないためです。FortiOS 7.4.5 以降や 7.6.1 以降では通常の自動更新が既定で有効のため、show で行が表示されないことは「無効」を意味しません。

show full-configuration system autoupdate schedule

status が disable の場合は、FortiGuard から契約情報を定期的に取得できない状態です。

手順
FMWR ライセンスの有効期限を確認する
diagnose test update info contract | grep FMWR

FMWR の有効期限が過去の日付であれば、強制更新の条件に該当する可能性があります。FMWR の行が表示されない場合は、フィルターを外した diagnose test update info contract の出力で契約情報全体を確認してください。契約を更新済みなのに古い日付が表示される場合は、後述の「契約更新後も強制アップグレードが発生するケース」を確認してください。GUI では System > FortiGuard でも確認できます。

手順
強制更新の有無・更新先・予定日時を確認する
execute auto-upgrade status

Automatic image upgrade: Enabled (Forced). や New image installation will be forced. は、強制更新の状態を示す情報です。実際に予約されているかは、New image … installation is scheduled to: の行に更新先のイメージが表示され、続けて開始(start at)・終了(end by)の予定時刻が表示されているかで判断します。execute auto-upgrade status は 7.4.9 の CLI Reference で確認したコマンドです。7.4.8 のガイドでは、同じ情報を diagnose test application forticldd 13 で確認する例が示されています。

show system federated-upgrade

set source forced-upgrade は強制更新による予約、set source auto-firmware-upgrade は通常の自動更新による予約を示します。set upgrade-path には更新先のバージョンが 7-4-9 のような形式で表示されます。

Enabled (Forced) や source forced-upgrade は、FMWR ライセンスの無効と EOES 到達のどちらでも表示されます。この表示だけでライセンスの問題と断定せず、手順 3 の FMWR 期限と、稼働マイナーバージョンの EOES 日程をあわせて確認してください。

確認結果の読み方と次の対応

確認結果意味次の対応
auto-firmware-upgrade enable通常の自動更新が有効自動更新を使わない運用なら disable に変更する
autoupdate schedule の status disable新しい契約情報を取得・検証できない可能性enable に戻し、契約情報を再取得する
FMWR の有効期限が過去強制更新の条件に該当契約状況を確認し、必要に応じて更新する
稼働マイナーバージョンが EOES 到達FMWR が有効でも強制更新の条件に該当EOES 前のマイナーバージョンへの計画更新を検討する
Enabled (Forced) / source forced-upgrade強制更新の状態。更新先イメージと予定日時が表示されていれば予約済み予定日時を確認し、必要に応じて延期する
source auto-firmware-upgrade通常の自動更新による予約通常の自動更新の設定を見直す

FortiGate の強制アップグレードは無効化・キャンセルできるか

通常の自動更新は設定で無効化できますが、強制更新は設定で無効化できず、予約後に通常の操作で取り消すこともできません。予約後に取れる対応は、インストール日時の調整と延期です。

通常の自動アップデートを無効化する(CLI / GUI)

CLI では、次の設定で通常の自動更新を無効化します。

config system fortiguard
    set auto-firmware-upgrade disable
end

GUI では、FortiOS 7.4 / 7.6 系の Administration Guide(Enabling automatic firmware upgrades)で、System > Firmware & Registration の自動パッチアップグレード設定として案内されています。Fortinet の Community KB(対象: FortiOS 7.2.1 以降)では、この項目が見当たらない場合は System > FortiGuard を確認するよう記載されています。画面の構成はバージョンやモデルで異なる場合があるため、これ以外の表示場所は稼働バージョンの資料で確認してください。

なお、7.4.1 の New Features では、Security Fabric に参加している FortiGate や FortiManager の管理下にある FortiGate は、通常の自動更新を有効化できないと説明されています。

execute federated-upgrade cancel がエラーになる理由

強制更新の予約は、Fabric アップグレードと同じ federated-upgrade の仕組みで管理されます。ただし強制更新は取り消せない仕様のため、execute federated-upgrade cancel を実行すると、公式ガイドの出力例のとおり拒否されます。

# execute federated-upgrade cancel
The existing upgrades cannot be cancelled.

このエラーは、コマンドの誤りや権限の問題ではなく、強制更新の仕様によるものです。8.0.0 のガイドでは、GUI の Cancel Fabric Upgrade ボタンもグレーアウトされると説明されています。

参考: Required firmware upgrades for FortiGate appliances with invalid support contracts or that have reached EOES(FortiOS 7.4.8 Administration Guide)
“Required upgrades cannot be canceled”
(強制更新はキャンセルできません)
https://docs.fortinet.com/document/fortigate/7.4.8/administration-guide/320693/automatic-firmware-upgrades-for-fortigate-appliances-with-invalid-support-contracts-or-that-have-reached-eoes-new

一方で、同じ仕様の説明には、予約後に FortiManager へ接続した場合に強制更新が取り消されるという管理構成上の扱いも記載されています。詳細は後述の「HA・Security Fabric・FortiManager 管理下での扱い」で整理します。

14 日のスケジュール調整と 7 日の延期の違い

FortiOS 7.4.8 の公式ガイドでは、予約済みの強制更新のインストール時期を調整する方法として、次の 2 つが示されています。

方法操作内容
スケジュールの調整config system fortiguard の auto-firmware-upgrade-day または auto-firmware-upgrade-delay新しいパッチの検知から 14 日間の範囲内で、インストール日時を複数回再設定できる
インストールの延期execute auto-upgrade delay-installation現在の予定を 7 日(1 週間)後へ延期する

14 日の範囲は、7.4.8 のガイドで確認した制約です。新しいバージョンにも同じ制約が適用されるとは限らないため、稼働バージョンの資料で確認してください。

execute auto-upgrade delay-installation の繰り返し実行について、Fortinet の Community KB は延期の回数に上限がないと説明しています。FortiOS 8.0.0 の Administration Guide でも回数の制限なく実行できるとしたうえで、更新の予定日当日には実行できないと記載されています。当日の制約は 8.0.0 のガイドで確認した内容のため、ほかのバージョンでも、延期は予定日より前に実行することをおすすめします。いずれの場合も、実行のたびに予定日時が更新されたことを確認してください。

参考: Technical Tip: Automatic Patch Upgrades(Fortinet Community)
“there is no limit on the number of times this can be delayed”
(延期できる回数に上限はありません)
https://community.fortinet.com/fortigate-3/technical-tip-automatic-patch-upgrades-144033

強制アップグレードを延期する手順

手順
延期前の予定日時を記録する
execute auto-upgrade status

更新先のイメージと、インストールの開始・終了予定時刻を記録します。延期後の確認で比較するためです。

手順
インストールを延期する
execute auto-upgrade delay-installation

7.4.8 のガイドの例では、実行すると Postponing auto-upgrade image installation to a week later... と表示されます。

手順
延期後の予定日時を再確認する
execute auto-upgrade status

予定日時が延期前より後ろへ移動したことを確認します。延期は取消ではないため、公式ガイドの例でも延期後に Enabled (Forced) の表示が残ります。

手順
延期期間内に計画的なアップグレードを実施する

延期は、計画的なアップグレードまでの時間を確保するための手段です。延期期間内に、更新先イメージを取得できるか、FMWR ライセンスの有効期限と更新先ブランチの GA リリース日の関係で更新が許可されるか、更新経路に中間バージョンが必要かを確認し、計画更新へ進みます。更新経路や所要時間の確認は、関連記事『FortiGate アップグレードパスの確認方法と所要時間』をご参照ください。

延期を繰り返しても、強制更新の条件は解消されません。FMWR 契約の更新、または EOES 前のマイナーバージョンへの計画的な移行をあわせて検討してください。

契約更新後も強制アップグレードが発生するケース

FMWR ライセンスを更新し、通常の自動更新も無効にしていたにもかかわらず、強制更新が実行された事例が Fortinet の Community KB で紹介されています(対象: FortiOS 7.4.8 以降)。

KB の事例では、config system autoupdate schedule が無効化されていたため、FortiGate が新しい FMWR ライセンスを検証できず、期限切れとなる古いライセンス情報を使い続けていました。その結果、古いライセンスの期限到達後に有効なライセンスがないと判定され、強制更新が開始されています。

参考: Technical Tip: Unexpected automatic firmware upgrade despite FMWR license validity and auto-upgrade disabled(Fortinet Community)
“FortiGate could not validate the new FMWR license”
(FortiGate が新しい FMWR ライセンスを検証できませんでした)
https://community.fortinet.com/fortigate-3/technical-tip-unexpected-automatic-firmware-upgrade-despite-fmwr-license-validity-and-auto-upgrade-disabled-218248

これは autoupdate schedule を無効化していた場合の事例で、ライセンスが有効なのに強制更新される原因がすべてこの設定というわけではありません。稼働マイナーバージョンの EOES 到達など、ほかの条件で予約されている可能性もあるため、前章の手順で条件を切り分けてください。

契約情報を再取得して予約状態を確認する

KB が示す対処は、autoupdate schedule を有効にしたうえで、ファームウェアの自動更新だけを無効にしておくことです。

config system autoupdate schedule
    set status enable
end

GUI では、KB に System > FortiGuard > FortiGuard Updates で有効化する方法が記載されています。あわせて、FortiGate から update.fortiguard.net と service.fortiguard.net へ通信できることを確認します。

設定後すぐに契約情報を取得したい場合は、execute update-now を実行します。これは FortiGuard からの更新処理を開始する操作で、前章の確認コマンドとは異なり、状態を変更する可能性があります。

execute update-now

契約情報を再取得しても、既存の強制更新の予約が解除されることは公式資料で確認できていません。取得後に FMWR の有効期限と予約状態をあらためて確認し、予約が残っている場合は延期と計画的なアップグレードで対応してください。

通常の確認で原因が分からない場合のデバッグ

FMWR の有効期限が更新されない場合は、FortiGuard との更新処理をデバッグで確認できます。出力が多いため、通常の確認で不足する場合に限って実行し、確認後は必ず停止します。

diagnose debug application update -1
diagnose debug enable
execute update-now

出力を確認したら、次のコマンドでデバッグを停止し、設定をリセットします。

diagnose debug disable
diagnose debug reset

強制更新の判定処理そのものは、diagnose debug application forticldd -1 のデバッグ出力で確認する例が公式ガイドに示されています。

HA・Security Fabric・FortiManager 管理下での扱い

公式ガイドでは、管理構成ごとの強制更新の扱いが定められています。7.4.8 の New Features と 7.6.5 の Administration Guide で確認できた内容を整理します。

管理構成参加・接続中の扱い強制更新が予約された後の扱い
Security Fabric参加中の FortiGate は強制更新されない予約済みの FortiGate は Security Fabric に参加できない
FortiManager接続中の FortiGate は強制更新されない予約後も FortiManager へ接続でき、接続すると強制更新は取り消される
HA強制更新はプライマリで実行されるセカンダリは単独では実行しないが、プライマリが開始するクラスターアップグレードで更新される

参考: Required firmware upgrades for FortiGate appliances with invalid support contracts or that have reached EOES(FortiOS 7.4 New Features)
“if a required upgrade is scheduled, the FortiGate cannot join a Security Fabric”
(強制更新が予約されている場合、FortiGate は Security Fabric に参加できません)
https://docs.fortinet.com/document/fortigate/7.4.0/new-features/320693/automatic-firmware-upgrades-for-fortigate-appliances-with-invalid-support-contracts-or-that-have-reached-eoes-7-4-8

HA では、セカンダリが単独で更新されないことと、クラスターとして更新されないことは別です。プライマリで強制更新が実行されると、クラスターアップグレードによってセカンダリも更新されるため、クラスター全体の更新を前提にメンテナンス時間を計画する必要があります。

「予約後は一切キャンセルできない」と説明されることがありますが、正確には execute federated-upgrade cancel などの通常の取消操作ができないという意味です。FortiManager への接続による取消は、公式ガイドに記載された管理構成上の扱いです。管理構成の変更は運用設計に影響するため、FortiManager による一元管理を前提とする環境で検討してください。FortiManager 経由でファームウェアを更新する場合も、FortiGate 側に有効な FMWR 契約が必要です。

まとめ

FortiGate の強制アップグレードは、通常の自動更新とは別の仕組みで、設定では無効化できません。自機の設定・ライセンス・予約状態を順に確認し、予約済みの場合は延期して計画的なアップグレードにつなげることが現実的な対応です。

  • auto-firmware-upgrade disable で止まるのは通常の自動更新だけです。
  • 強制更新は FMWR 無効か EOES 到達で予約され、設定では無効化できません。
  • 予約の有無は auto-upgrade status と federated-upgrade の表示で確認します。
  • 予約後は通常の取消操作が使えず、日時の調整と延期で時間を確保します。
  • autoupdate schedule の無効化は、契約更新後の誤判定につながる場合があります。
  • Security Fabric・FortiManager・HA では、公式ガイドの扱いを確認します。

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

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

この記事を書いた人

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

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

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

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

目次