- Accueil
- Réseau multi-cloud
- Customer Edge diagnostics
- Reaching a Customer Edge
- Console de site
Console de site
Capturé le 2026-07-28 depuis un CE de ce déploiement. sitecli/capture-manifest.json
consigne quel nœud, et scripts/capture-sitecli.sh --check revérifie la surface de
commandes sur un CE actif.
Chaque Customer Edge sert la Console de site F5 sur https://<sli-ip>:65500. Sur ce
déploiement, c’est généralement la voie à essayer en premier.
C’est celle qui exige le moins de vous : aucune clé SSH à distribuer, aucun hôte de rebond à
maintenir, aucune adresse IP publique sur le nœud, et aucun remplacement de VM pour l’activer.
Déterminer qui peut se connecter devient une décision Azure RBAC. Et elle n’a pas besoin que
le site soit enregistré : cette page a d’abord été capturée alors que les trois sites signalaient
site_state: FAILED, puis revérifiée sans changement sur les mêmes nœuds une fois qu’ils étaient
ONLINE.
Le revers est que la Console de site ne répond que sur l’adresse interne (SLI) du nœud, accessible uniquement depuis l’intérieur du VNet. Azure Bastion comble cet écart sans rien ajouter d’autre sur le réseau.
Avant de commencer
Section intitulée « Avant de commencer »-
Connectez-vous à Azure et ajoutez l’extension Bastion. Le tunneling est une fonctionnalité du client natif et l’extension n’est pas installée par défaut.
Fenêtre de terminal az loginaz extension add --name bastion -
Détenez le rôle Reader sur la machine virtuelle CE, son interface réseau et l’hôte Bastion. Il s’agit de l’exigence documentée par Microsoft et elle est non vérifiée ici — chaque exécution dans ce déploiement a été effectuée en tant que propriétaire de l’abonnement, aucun rôle moindre n’a donc été démontré suffisant ou insuffisant.
-
Confirmez que Bastion est déployé et capable. Le SKU Basic ne prend en charge ni le tunneling ni la connexion par IP, donc
StandardetTruesont tous deux déterminants ici.Fenêtre de terminal 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
Ouvrir le tunnel
Section intitulée « Ouvrir le tunnel »Prenez les valeurs depuis terraform output plutôt que de les saisir — l’identifiant de
ressource n’est pas quelque chose à assembler à la main.
-
Lisez le nom de l’hôte Bastion, le groupe de ressources et l’identifiant de ressource de la VM du CE ciblé.
Fenêtre de terminal 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 -
Démarrez le tunnel. Il maintient le port ouvert jusqu’à son arrêt, exécutez-le donc en arrière-plan ou utilisez un second terminal.
Fenêtre de terminal 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 closeLes trois lignes sont préfixées par
WARNING:. C’est l’Azure CLI qui écrit sa progression sur stderr, pas un problème. AttendezTunnel is readyavant de vous connecter. -
Confirmez que l’écouteur est local, sur la boucle locale :
Fenêtre de terminal 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) -
Ouvrez la console. Le tunnel la rend locale, l’adresse est donc
localhost— et non l’adresse du nœud.Fenêtre de terminal open https://localhost:65500/ # macOSxdg-open https://localhost:65500/ # Linux -
Arrêtez le tunnel lorsque vous avez terminé —
Ctrl-C, oukill %1si vous l’avez lancé en arrière-plan. Le laisser ouvert maintient le port local 65500 et la session Bastion.
Ce que vous allez voir
Section intitulée « Ce que vous allez voir »Une boîte de dialogue d’identifiants, pas une page de connexion. La console utilise l’authentification HTTP Basic, le navigateur affiche donc sa propre invite de nom d’utilisateur et de mot de passe. Il n’y a aucun formulaire à regarder :
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 avec ce domaine (realm) signifie que la console fonctionne correctement. C’est ce qu’une
requête non authentifiée est censée obtenir — et fournir l’identifiant admin à la même URL
renvoie 200, ce qui permet de confirmer l’identifiant avant d’ouvrir un navigateur :
curl -sk -u admin -o /dev/null -w '%{http_code}\n' https://localhost:65500/Enter host password for user 'admin':200-u admin sans deux-points fait que curl demande le mot de passe au lieu de le prendre depuis la
ligne de commande, où il finirait dans l’historique du shell et dans la liste des processus.
Un avertissement de certificat, pour trois raisons à la fois. En vérifiant directement le certificat :
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 GMTLe sujet est identique à l’émetteur : il est donc auto-signé. Le nom est site-local.volterra.io
alors que vous vous connectez à localhost, il ne correspondra donc pas. Et sur la build
qu’exécute ce déploiement, le certificat a expiré le 25 octobre 2025 — l’appliance le livre
ainsi, et rien dans ce dépôt ne le renouvelle.
Attendez-vous à un avertissement brutal du navigateur, et attendez-vous à le voir chaque fois. La ligne du sujet ci-dessus est la partie utile : c’est ainsi que vous confirmez avoir atteint l’appliance et non autre chose écoutant sur le port local 65500.
L’identifiant administrateur
Section intitulée « L’identifiant administrateur »Connectez-vous en tant que admin. Cette documentation ne publie pas le mot de passe, et ne
devrait pas le faire.
Deux raisons pour lesquelles ne pas le publier importe davantage ici qu’il n’y paraît :
- Cette documentation est publique. Imprimer le mot de passe console actuel du parc transformerait « détenir Reader sur le Bastion » en accès complet à l’appliance pour quiconque lit la page.
- Un mot de passe publié dans la documentation est faux dès l’instant où quelqu’un le fait tourner, et faux de la manière la plus trompeuse — le lecteur conclut que son accès est cassé plutôt que que la page est obsolète.
Une fois qu’il a été renouvelé, obtenez-le là où votre équipe conserve ses secrets opérationnels.
Pourquoi le tunnel doit cibler l’identifiant de ressource
Section intitulée « Pourquoi le tunnel doit cibler l’identifiant de ressource »--target-resource-id est obligatoire. Cibler l’adresse du nœud à la place est refusé — quelle que
soit l’adresse utilisée, c’est pourquoi aucune adresse réelle n’est délibérément imprimée ici :
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.La raison n’est pas que la connexion par IP soit désactivée — sur ce Bastion,
ip_connect_enabled vaut true. Microsoft ne prend pas en charge les ports personnalisés sur les
connexions client natif basées sur IP, indépendamment de ce paramètre
(documentation Azure), et 65500 est
un port personnalisé. Inspecter la configuration Bastion ici ne mène nulle part ; utilisez
l’identifiant de ressource.
Quand cela ne fonctionne pas
Section intitulée « Quand cela ne fonctionne pas »| Symptôme | Cause | Correctif |
|---|---|---|
ERROR: Custom ports are not allowed. Allowed ports for Tunnel with IP connect is 22, 3389. | Utilisation de --target-ip-address | Utilisez --target-resource-id |
ERROR: Defined port is currently unavailable | Un autre tunnel occupe déjà ce port local | Arrêtez l’autre tunnel, ou passez un --port différent ; --resource-port reste 65500 |
terraform output -raw bastion_name vaut null ou est vide | Bastion n’est pas déployé | Définissez enable_bastion = true et appliquez |
| Le tunnel démarre mais l’identifiant de ressource est vide | Le filtre jq a utilisé le nom de la VM au lieu de la clé de site | Indexez sur eastus01/02/03 |
401 Unauthorized, realm Volterra Site Console | Pas une panne — requête non authentifiée | Fournissez l’identifiant admin |
| Le navigateur refuse le certificat | Auto-signé, nom non concordant, et expiré depuis octobre 2025 | Attendu ; confirmez que le sujet est CN=site-local.volterra.io et continuez |
Les autres voies
Section intitulée « Les autres voies »ONLINE.