- Home
- Rete multi-cloud
- Customer Edge diagnostics
- Reaching a Customer Edge
- Console del sito
Console del sito
Acquisito il 2026-07-28 da un CE di questa distribuzione. sitecli/capture-manifest.json
registra quale nodo, e scripts/capture-sitecli.sh --check riverifica la superficie dei
comandi rispetto a un CE attivo.
Ogni Customer Edge espone la Console del sito di F5 su https://<sli-ip>:65500. In questa
distribuzione è di solito il percorso da provare per primo.
È quello che richiede meno: nessuna chiave SSH da distribuire, nessun host di salto da
mantenere, nessun IP pubblico sul nodo e nessuna sostituzione della VM per abilitarlo. Chi
può connettersi diventa una decisione di Azure RBAC. E non richiede che il sito sia
registrato: questa pagina è stata acquisita la prima volta mentre tutti e tre i siti
riportavano site_state: FAILED, ed è stata riverificata invariata sugli stessi nodi una
volta che erano ONLINE.
Il rovescio della medaglia è che la Console del sito risponde solo sull’indirizzo interno (SLI) del nodo, raggiungibile solo dall’interno della VNet. Azure Bastion colma questa lacuna senza aggiungere nient’altro sulla rete.
Prima di iniziare
Sezione intitolata “Prima di iniziare”-
Accedere ad Azure e aggiungere l’estensione Bastion. Il tunneling è una funzionalità del client nativo e l’estensione non è installata per impostazione predefinita.
Terminal window az loginaz extension add --name bastion -
Disporre del ruolo Reader sulla macchina virtuale CE, sulla sua interfaccia di rete e sull’host Bastion. Questo è il requisito documentato da Microsoft ed è non verificato qui — ogni esecuzione in questa distribuzione è avvenuta come proprietario della sottoscrizione, quindi nessun ruolo inferiore è stato dimostrato sufficiente o insufficiente.
-
Confermare che Bastion sia distribuito e adeguato. Lo SKU Basic non supporta né il tunneling né la connessione basata su IP, quindi qui sia
StandardsiaTruesono essenziali.Terminal window az network bastion list -g "$(terraform output -raw resource_group_name)" \--query "[].{name:name, sku:sku.name, tunneling:enableTunneling}" -o tableName Sku Tunneling----------------- -------- -----------mcn-ce-ha-bastion Standard True
Aprire il tunnel
Sezione intitolata “Aprire il tunnel”Prelevare i valori da terraform output anziché digitarli — l’id della risorsa non è
qualcosa da comporre a mano.
-
Leggere il nome dell’host Bastion, il gruppo di risorse e l’id della risorsa VM del CE di destinazione.
Terminal window cd terraformBASTION=$(terraform output -raw bastion_name)RG=$(terraform output -raw resource_group_name)VM_ID=$(terraform output -json ce_vm_ids | jq -r '.eastus01')mcn-ce-ha-bastionrg-mcn-ce-ha-<deployer>/subscriptions/…/providers/Microsoft.Compute/virtualMachines/f5-xc-ce-vm-01 -
Avviare il tunnel. Mantiene la porta aperta finché non viene arrestato, quindi eseguirlo in background o usare un secondo terminale.
Terminal window az network bastion tunnel \--name "$BASTION" \--resource-group "$RG" \--target-resource-id "$VM_ID" \--resource-port 65500 \--port 65500 &WARNING: Opening tunnel on port: 65500WARNING: Tunnel is ready, connect on port 65500WARNING: Ctrl + C to closeTutte e tre le righe hanno il prefisso
WARNING:. Si tratta dell’interfaccia CLI di Azure che scrive l’avanzamento su stderr, non di un problema. AttendereTunnel is readyprima di connettersi. -
Confermare che il listener sia locale, su loopback:
Terminal window lsof -nP -iTCP:65500 -sTCP:LISTENCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEPython 41648 you 7u IPv4 … 0t0 TCP 127.0.0.1:65500 (LISTEN) -
Aprire la console. Il tunnel la rende locale, quindi l’indirizzo è
localhost— non l’indirizzo del nodo.Terminal window open https://localhost:65500/ # macOSxdg-open https://localhost:65500/ # Linux -
Arrestare il tunnel al termine —
Ctrl-C, oppurekill %1se è stato messo in background. Lasciarlo aperto occupa la porta locale 65500 e la sessione Bastion.
Cosa si vedrà
Sezione intitolata “Cosa si vedrà”Una finestra di dialogo per le credenziali, non una pagina di accesso. La console usa l’autenticazione HTTP Basic, quindi il browser mostra la propria richiesta di nome utente e password. Non c’è alcun modulo da guardare:
curl -skI https://localhost:65500/HTTP/1.1 401 UnauthorizedWWW-Authenticate: Basic realm="Volterra Site Console"Content-Type: text/html; charset=utf-8Content-Length: 0Un 401 con quel realm significa che la console funziona correttamente. È ciò che una
richiesta non autenticata deve ricevere — e fornendo la credenziale admin allo stesso URL
si ottiene 200, che è il modo per confermare la credenziale prima di aprire un browser:
curl -sk -u admin -o /dev/null -w '%{http_code}\n' https://localhost:65500/Enter host password for user 'admin':200-u admin senza i due punti fa sì che curl richieda la password anziché prenderla dalla
riga di comando, dove finirebbe nella cronologia della shell e nell’elenco dei processi.
Un avviso relativo al certificato, per tre motivi contemporaneamente. Controllando il certificato direttamente:
openssl s_client -connect localhost:65500 -servername localhost </dev/null 2>/dev/null \ | openssl x509 -noout -subject -issuer -datessubject=C=US, ST=California, L=Santa Clara, O=Volterra, OU=Volterra Edge Services, CN=site-local.volterra.ioissuer=C=US, ST=California, L=Santa Clara, O=Volterra, OU=Volterra Edge Services, CN=site-local.volterra.ionotBefore=Oct 25 04:51:31 2024 GMTnotAfter=Oct 25 04:51:31 2025 GMTIl soggetto coincide con l’emittente, quindi è autofirmato. Il nome è
site-local.volterra.io mentre ci si connette a localhost, quindi non corrisponderà. E
sulla build eseguita da questa distribuzione, il certificato è scaduto il 25 ottobre
2025 — l’appliance lo fornisce, e nulla in questo repository lo rinnova.
Attendersi un avviso schietto del browser, e attenderselo ogni volta. La riga del soggetto qui sopra è la parte utile: è così che si conferma di aver raggiunto l’appliance e non qualcos’altro in ascolto sulla porta locale 65500.
La credenziale admin
Sezione intitolata “La credenziale admin”Accedere come admin. Questa documentazione non pubblica la password, e non deve
farlo.
Due motivi per cui non pubblicarla conta più qui di quanto possa sembrare:
- Questa documentazione è pubblica. Stampare la password attuale della console della flotta trasformerebbe “disporre di Reader sul Bastion” in accesso completo all’appliance per chiunque legga la pagina.
- Una password pubblicata nella documentazione è errata dal momento in cui qualcuno la ruota, ed errata nel modo più fuorviante — il lettore conclude che il proprio accesso è interrotto anziché che la pagina è obsoleta.
Una volta ruotata, recuperarla da dove il vostro team conserva i segreti operativi.
Perché il tunnel deve puntare all’id della risorsa
Sezione intitolata “Perché il tunnel deve puntare all’id della risorsa”--target-resource-id è obbligatorio. Puntare invece all’indirizzo del nodo viene
rifiutato — qualunque indirizzo si usi, quindi deliberatamente qui non ne viene stampato
uno reale:
az network bastion tunnel --name "$BASTION" -g "$RG" \ --target-ip-address <any-sli-address> --resource-port 65500 --port 65501ERROR: Custom ports are not allowed. Allowed ports for Tunnel with IP connect is 22, 3389.Il motivo non è che la connessione basata su IP sia disabilitata — su questo Bastion
ip_connect_enabled è true. Microsoft non supporta porte personalizzate sulle connessioni
con client nativo basate su IP indipendentemente da tale impostazione
(documentazione Azure), e
65500 è una porta personalizzata. Ispezionare la configurazione di Bastion qui non porta a
nulla; usare l’id della risorsa.
Quando non funziona
Sezione intitolata “Quando non funziona”| Sintomo | Causa | Soluzione |
|---|---|---|
ERROR: Custom ports are not allowed. Allowed ports for Tunnel with IP connect is 22, 3389. | È stato usato --target-ip-address | Usare --target-resource-id |
ERROR: Defined port is currently unavailable | Un altro tunnel occupa già quella porta locale | Arrestare l’altro tunnel, oppure passare un --port diverso; --resource-port resta 65500 |
terraform output -raw bastion_name è null o vuoto | Bastion non è distribuito | Impostare enable_bastion = true ed eseguire apply |
| Il tunnel si avvia ma l’id della risorsa è vuoto | Il filtro jq ha usato il nome della VM anziché la chiave del sito | Indicizzare su eastus01/02/03 |
401 Unauthorized, realm Volterra Site Console | Non è un guasto — richiesta non autenticata | Fornire la credenziale admin |
| Il browser rifiuta il certificato | Autofirmato, nome non corrispondente e scaduto da ottobre 2025 | Previsto; confermare che il soggetto sia CN=site-local.volterra.io e procedere |
Gli altri percorsi
Sezione intitolata “Gli altri percorsi”ONLINE.