Manage licensing in disconnected (air-gapped) environments¶
This guide describes how to manage F5 Insight licensing in disconnected (air-gapped) environments where the system cannot directly access F5 licensing servers.
Overview¶
In disconnected mode, licensing requires coordination between two separate systems:
- F5 Insight (disconnected mode) - Your air-gapped F5 Insight system
- Generates telemetry reports through the UI
- Verifies license manifests through the UI
- No direct internet access
- Internet-connected machine - A separate system with internet access
- Submits reports to the F5 API using
curl - Receives license manifests from F5
- Acts as an intermediary between F5 Insight and F5 licensing servers
File transfer moves data between these two systems using approved air-gap methods.
F5 Insight UI - license setup / onboarding activation¶
In License Setup > Disconnected
- Add JWT Token
- Paste the JWT token in JWT Token field
- click on Generate License Report
- Download and Submit Report
Click on Download License Report to download the report
Intermediary steps to complete:
- Transfer report to internet-connected machine
- Submit report and get manifest (acknowledgment)
- Transfer manifest back to F5 Insight
- Upload signed acknowledgement
- Choose the transferred Manifest file
- Click on Validate and Activate License to complete License setup
Disconnected licensing workflow¶
Download the telemetry report
Complete these steps on the F5 Insight (disconnected mode) system:
- Log in to the F5 Insight UI.
- Go to Settings > Licensing.
- Select the more options menu (⋮).
- Select Download Report.
- Save the file as
telemetry-report.json.
The report contains usage data and system metrics for the observation period.
Transfer the report to an internet-connected machine
Transfer
telemetry-report.jsonto a separate machine with internet access using one of the following methods:- USB drive
- Secure file transfer
- Approved air-gap transfer method
Submit the report and get the manifest
Complete these steps on the internet-connected machine.
Submit the telemetry report to the F5 API and receive the license manifest:
curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <JWT_LICENSE_TOKEN>" \ -d @telemetry-report.json \ -o license-manifest.json \ "https://product.apis.f5.com/ee/v1/entitlements/telemetry"
Parameters:
<JWT_LICENSE_TOKEN>— Your F5 license token (JWT format received from F5)@telemetry-report.json— The report downloaded from the F5 Insight UIlicense-manifest.json— The output file containing the license acknowledgment
Response format:
{ "manifest": "<LICENSE_MANIFEST_JWT>" }
Transfer the manifest back to F5 Insight
Transfer
license-manifest.jsonback to the F5 Insight system (disconnected mode) using the same air-gap transfer method.Verify the report by uploading the manifest
Complete these steps on the F5 Insight (disconnected mode) system:
- Log in to the F5 Insight UI.
- Go to Settings > Licensing.
- Select the more options menu (⋮).
- Select Verify Report.
- Upload
license-manifest.json.
This completes the license activation, deactivation, or telemetry process. The system validates the manifest and displays:
- License compliance status
- Expiration date
- Licensed features and limits
Complete example¶
Initial setup¶
Complete these steps on the F5 Insight (disconnected mode) system:
Go to Settings > Licensing.
Select the more options menu (⋮).
Select Download Report.
Save the file as
telemetry-report.json.Transfer the file to an internet-connected machine.
Complete these steps on the internet-connected machine:
# Submit the telemetry report and get the license manifest curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <JWT_LICENSE_TOKEN>" \ -d @telemetry-report.json \ -o license-manifest.json \ "https://product.apis.f5.com/ee/v1/entitlements/telemetry" # Verify the manifest was received cat license-manifest.json | jq .
Complete these steps on the F5 Insight (disconnected mode) system:
- Transfer
license-manifest.jsonback to the F5 Insight system. - Go to Settings > Licensing.
- Select the more options menu (⋮).
- Select Verify Report.
- Upload
license-manifest.json. - Verify the license status and expiration date.
Periodic renewal (every 30 days)¶
Repeat the full cycle:
- F5 Insight: Select the more options menu > Download Report.
- Transfer: Move the report to an internet-connected machine.
- Internet-connected machine: Submit the report with
curland save the manifest. - Transfer: Move the manifest back to the F5 Insight system.
- F5 Insight: Select the more options menu > Verify Report and upload the manifest.
File descriptions¶
telemetry-report.json¶
- Asset usage statistics
- Feature consumption metrics
- Observation time window
- System metadata
- JWT format with HMAC-SHA256 signature
license-manifest.json¶
curl response)- Expiration date
- Licensed features and limits
- Compliance status
- Telemetry frequency
- Grace period settings
- JWT format with RSA-512 signature
curl command fails¶
Symptoms:
curl: (60) SSL certificate problem
curl: (7) Failed to connect to product.apis.f5.com
Resolution:
- Verify internet connectivity on the internet-connected machine.
- Check that the firewall allows HTTPS traffic to
product.apis.f5.com. - Verify that the license token has not expired.
- Use the
-vflag for verbose output:curl -v ...
Important notes¶
- Timing: Submit telemetry reports before the license expires.
- Token security: Keep license tokens secure. Do not commit them to version control.
- File integrity: Verify file checksums after transfers.
- Grace period: Most licenses have zero days of grace for disconnected mode.
- Automation: Consider scripting file transfers and
curlcommands.
License API reference¶
Endpoint¶
POST https://product.apis.f5.com/ee/v1/entitlements/telemetry
Headers¶
Content-Type: application/jsonAuthorization: Bearer <JWT_LICENSE_TOKEN>
Request body¶
{
"report": "<TELEMETRY_REPORT_JWT>"
}
Or use file input:
curl -d @telemetry-report.json
Response¶
{
"manifest": "<LICENSE_MANIFEST_JWT>"
}
Status codes¶
| Code | Description |
|---|---|
200 OK |
Success, manifest returned |
401 Unauthorized |
Invalid or expired license token |
400 Bad Request |
Invalid telemetry report format |
500 Internal Server Error |
F5 API error |
Example command¶
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <JWT_LICENSE_TOKEN>" \
-d @telemetry-report.json \
-o license-manifest.json \
"https://product.apis.f5.com/ee/v1/entitlements/telemetry"