My Home NW Lab

逸般の誤家庭のネットワーク

BIG-IP SSL Orchestratorはv16.1.0-9.0より冗長構成時の設定同期の挙動が変更

BIG-IP SSL Orchestrator (SSLO)の v16.1.0-9.0 以前 (Older Version)では、冗長構成における設定同期がREST APIベースの実装となり、TMOS (Traffic Management Operating System)が担っているConfigSyncとは別の設定同期方法となっておりました。

旧来のREST APIベースの設定同期では、SSLOのConfiguration Guideでデプロイを行うと設定の一貫性を保つために即時的にHA Pairに対してREST APIによる設定の流し込みが行われて、デプロイ完了後には別途ConfigSyncによる設定同期も必要となっておりました。

BIG-IPの標準機能から外れた独特な実装であるのが理由で、REST APIによる設定同期の処理中に問題が発生すると、最悪の場合で「設定のリストア」"以外"では復旧不可能なレベルで設定崩壊を招く可能性があり、特にv15系時代はSSLOの運用リスクがとても高い状況になっていました。

運用担当者にiApps LXやその技術要素であるNode.jsに対して深い理解がないと、状況に則していない誤った復旧作業を実施してしまい、より一層状況を悪化させる可能性がありトラブルシューティングの実施自体が困難となります。ネットワーク アプライアンスであるのにも関わらず、ネットワーク エンジニアにプログラミング寄りの深い知見を要求するため、テクニカル サポートの支援なしでは復旧が困難な状況に陥ります。最悪の場合、エラー ログとiApps LXのソース コードを突き合わせて問題が発生している処理を突き止める必要があります。

しかし、v16.1.0-9.0 より設定同期の挙動が変更となり、TMOSのネイティブなMCP/CMI HA syncを利用する方式に変更になりました。 また、本挙動変更に伴って Automatic with Incremental Sync がサポートされるようになりました。 そして、SSLOの内部的にはiFileが設定の保存に利用されるようになりました。 筆者が実機に触れている限りでは、設定崩壊が起こりにくくなっており、REST APIベースの頃より改善したように見受けられます。

BIG-IP SSLOの設定同期の挙動

挙動変更に関するRelease Notes

v16.1.0-9.0 のRelease Notesに本挙動変更の情報が記載されております。

techdocs.f5.com

SSO Control Plane re-architecture
SSL Orchestrator 9.0 includes the following significant improvements to the control plane:
* The source-of-truth for the SSL Orchestrator configuration is now stored in the iFile objects. This allows the SSL Orchestrator to utilize native MCP/CMI HA sync functions and support automatic and incremental sync.
* The iApp strictness lock icon has been removed from several objects, excluding network and access objects allowing you to make out-of-band changes freely.
* The SSLO architecture now no longer uses the Gossip sync function to sync SSLO REST configuration.

Youtubeの動画内での情報

F5J DX Team (F5ジャパンのDXチーム)によるYoutubeの動画内でも本挙動に関する情報があります。

https://www.youtube.com/watch?v=gS-VMMXSkh0&t=71s

www.youtube.com

既存ユーザアップデート:16.1のSSL Orchestrator (SSLO)新機能 - YouTube

1分11秒 (71秒)付近から High Availability(HA) 時のSyncの改善 の解説になります。 情報を参照しやすくするためにスライドの内容を引用します。

  • 顧客課題

    • TMOSの基本設定とSSLOGC設置とでHA Config Sync方法が異なっており、両方を考慮する必要があった
  • F5ソリューション

    • SSLOにおけるHA時のConfig Syncが改善され、今までのゴシップ (RESTによるSync) によるHAではなく、SSLOもTMOSのMCP/CMI syncを適用可能となった (SSLOのSyncいは内部でiFileを利用)

    • AutomaticとIncremental syncをサポート

SSLO用iFileの実機情報

SSLOのアーキテクチャの理解度を高めるために、SSLOが内部的に利用しているiFileの存在を確認しました。

v16.1.0-9.0 以上 (Newer Version) であるv17系でも挙動が変わってない点を確認したかったため、検証時はBIG-IP SSLOのバージョンは v17.0.0-10.0.20 (BIG-IP v17.0.0, SSLO v10.0.20) を利用しています。

SSLO用iFileはWeb UIでは表示されなかったですが、tmsh コマンドでは確認できました。

Web UI上ではメニュー: Local Traffic > iRules > iFile List には表示されず、メニュー: File Management > iFile List の方に表示されます。

メニュー: Local Traffic > iRules > iFile List

メニュー: File Management > iFile List

CLIでは tmsh list sys file ifile recursive コマンドを実行すると、SSLO向けiApps LXの設定である ssloF_global.app に紐づいているのが確認できます。

[root@bigip01:Active:In Sync] config # tmsh list sys file ifile recursive
sys file ifile ssloF_global.app/SSLOiFile {
    app-service /Common/ssloF_global.app/ssloF_global
    checksum SHA1:60979:ac965bb2d970ba056f212c0ffee74f4f4a6cdd10
    create-time 2022-12-26:01:26:33
    created-by admin
    last-update-time 2022-12-26:01:31:04
    mode 33188
    revision 4
    size 60979
    source-path file:///tmp/ssloConfigs.json
    updated-by admin
}
[root@bigip01:Active:In Sync] config #

source-path file:///tmp/ssloConfigs.json にファイルの実体があるため、ファイルの中身を見てみるとJSONで記述されておりました。

root@bigip01:Active:In Sync] config # cat /tmp/ssloConfigs.json | jq . | head
{
  "timestamp": "2022-12-25T16:31:04.378Z",
  "configs": [
    {
      "id": "****-****-****",
      "name": "f5-ssl-orchestrator-dg-data",
      "inputProperties": [
        {
          "id": "dependencyGraph",
          "type": "JSON",
[root@bigip01:Active:In Sync] config #

関連Knowledge Base

Knowledge Baseの K48366323 の記事内でも、SSLOの設定同期がRESTのメカニズムを利用している点の記載と、iFileに設定が保存されるようになった点の記述があります。

  • K48366323: When clearing/deleting the SSL Orchestrator (SSLO) config sync may fail.
    https://support.f5.com/csp/article/K48366323

    The synchronization of SSLO has taken place outside of TMM using the REST mechanism. SSLO created TMM objects from a json file stored in SSLO. That has changed and they are now stored in iFiles within TMM. So when only using clear-rest-storage command that may not clear the iFiles and the objects created from there.

v16.1.0-9.0 以前 (Older Version)の挙動に関する情報源

v16.1.0-9.0 以前 (Older Version)の挙動の情報源も記載しておきます。

関連記事

myhomenwlab.hatenablog.com

myhomenwlab.hatenablog.com