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ベースの頃より改善したように見受けられます。
挙動変更に関するRelease Notes
v16.1.0-9.0 のRelease Notesに本挙動変更の情報が記載されております。
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
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
の方に表示されます。
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/K48366323The 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)の挙動の情報源も記載しておきます。
F5 SSL Orchestrator: Architecture https://techdocs.f5.com/content/kb/en-us/products/ssl-orchestrator/manuals/product/ssl-orchestrator-architecture-14-0-0-4-0/_jcr_content/pdfAttach/download/file.res/ssl-orchestrator-architecture-14-0-0-4-0.pdf
Synchronization issues with HA pairs
The synchronization of SSL Orchestrator uses two different technologies. It uses both the underlying BIG-IP synchronization for syncing BIG-IP objects, and the iAppLX synchronization process for the SSL Orchestrator configuration and objects.K26520133: Troubleshooting SSL Orchestrator
https://support.f5.com/csp/article/K26520133SSL Orchestrator uses REST framework "gossip" mechanisms to replicate configuration. REST framework gossip basically re-plays REST requests on the peer device(s) to keep configs in sync. It supports the "eventual consistency" model.
CloudDocs:
CloudDocs Home > SSL Orchestrator Troubleshooting Guide > High Availability (HA)
https://clouddocs.f5.com/sslo-troubleshooting-guide/main/procs/troubleshooting-ha.htmlAbout SSLO HA
SSLO can operate in a stand-alone or HA mode. HA relies upon BIG-IP MCP synchronization to ensure failover and configuration consistency. Prior to version 9.0 the GOSSIP protocol was used to synchronize the REST block configuration in real-time, but latterly an MCP iFile is instead synchronized via standard BIG-IP CMI and has become the configuration source of truth.