- Inicio
- Redes multinube
- Customer Edge diagnostics
- Reaching a Customer Edge
- Consola del sitio
Consola del sitio
Capturado el 2026-07-28 desde un CE de esta implementación. sitecli/capture-manifest.json
registra qué nodo, y scripts/capture-sitecli.sh --check vuelve a verificar la superficie de
comandos contra un CE en vivo.
Cada Customer Edge sirve la Consola del sitio de F5 en https://<sli-ip>:65500. En esta
implementación suele ser la ruta que conviene probar primero.
Es la que menos le exige: ninguna clave SSH que distribuir, ningún host de salto que mantener,
ninguna IP pública en el nodo y ningún reemplazo de VM para habilitarla. Quién puede conectarse
pasa a ser una decisión de Azure RBAC. Y no necesita que el sitio esté registrado: esta
página se capturó por primera vez mientras los tres sitios informaban site_state: FAILED, y se
volvió a verificar sin cambios contra los mismos nodos una vez que estaban ONLINE.
El inconveniente es que la Consola del sitio solo responde en la dirección interna (SLI) del nodo, accesible únicamente desde dentro de la VNet. Azure Bastion cierra esa brecha sin colocar nada más en la red.
Antes de empezar
Sección titulada «Antes de empezar»-
Inicie sesión en Azure y añada la extensión de Bastion. La creación de túneles es una función del cliente nativo y la extensión no está instalada por defecto.
Ventana de terminal az loginaz extension add --name bastion -
Disponga del rol Reader en la máquina virtual del CE, su interfaz de red y el host de Bastion. Este es el requisito documentado por Microsoft y no está verificado aquí — cada ejecución en esta implementación se hizo como propietario de la suscripción, por lo que no se ha demostrado que ningún rol inferior sea suficiente o insuficiente.
-
Confirme que Bastion está implementado y es capaz. La SKU Basic no admite ni túneles ni conexión basada en IP, de modo que aquí tanto
StandardcomoTrueson determinantes.Ventana 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
Abrir el túnel
Sección titulada «Abrir el túnel»Tome los valores de terraform output en lugar de escribirlos — el id de recurso no es algo que
convenga componer a mano.
-
Lea el nombre del host de Bastion, el grupo de recursos y el id de recurso de la VM del CE de destino.
Ventana 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 -
Inicie el túnel. Mantiene el puerto abierto hasta que se detenga, así que ejecútelo en segundo plano o use una segunda terminal.
Ventana 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 closeLas tres líneas llevan el prefijo
WARNING:. Se trata de la CLI de Azure escribiendo el progreso en stderr, no de un problema. Espere aTunnel is readyantes de conectarse. -
Confirme que el listener es local, en loopback:
Ventana 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) -
Abra la consola. El túnel la hace local, por lo que la dirección es
localhost— no la dirección del nodo.Ventana de terminal open https://localhost:65500/ # macOSxdg-open https://localhost:65500/ # Linux -
Detenga el túnel cuando haya terminado —
Ctrl-C, okill %1si lo puso en segundo plano. Dejarlo abierto mantiene ocupado el puerto local 65500 y la sesión de Bastion.
Qué verá
Sección titulada «Qué verá»Un cuadro de diálogo de credenciales, no una página de inicio de sesión. La consola usa autenticación HTTP Basic, por lo que el navegador muestra su propio aviso de usuario y contraseña. No hay ningún formulario que mirar:
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 ese realm significa que la consola funciona correctamente. Es lo que se espera que
reciba una solicitud no autenticada — y facilitar la credencial admin a la misma URL responde
200, que es la forma de confirmar la credencial antes de abrir un navegador:
curl -sk -u admin -o /dev/null -w '%{http_code}\n' https://localhost:65500/Enter host password for user 'admin':200-u admin sin dos puntos hace que curl solicite la contraseña en lugar de tomarla de la línea
de comandos, donde acabaría en el historial del shell y en la lista de procesos.
Una advertencia de certificado, por tres razones a la vez. Comprobando el certificado directamente:
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 GMTEl sujeto es igual al emisor, por lo que es autofirmado. El nombre es site-local.volterra.io
mientras usted se conecta a localhost, así que no coincidirá. Y en la compilación que ejecuta
esta implementación, el certificado caducó el 25 de octubre de 2025 — el appliance lo incluye,
y nada en este repositorio lo renueva.
Espere una advertencia contundente del navegador, y espérela cada vez. La línea del sujeto de arriba es la parte útil: es como confirma que ha llegado al appliance y no a otra cosa que esté escuchando en el puerto local 65500.
La credencial de admin
Sección titulada «La credencial de admin»Inicie sesión como admin. Esta documentación no publica la contraseña, y no debería hacerlo.
Dos razones por las que no publicarla importa aquí más de lo que podría parecer:
- Esta documentación es pública. Imprimir la contraseña actual de la consola de la flota convertiría “tener Reader en el Bastion” en acceso completo al appliance para cualquiera que lea la página.
- Una contraseña publicada en la documentación es incorrecta en el momento en que alguien la rota, y errónea de la forma más engañosa — el lector concluye que su acceso está roto en lugar de que la página está obsoleta.
Una vez rotada, obténgala de donde su equipo guarde los secretos operativos.
Por qué el túnel debe apuntar al id de recurso
Sección titulada «Por qué el túnel debe apuntar al id de recurso»--target-resource-id es obligatorio. Apuntar en su lugar a la dirección del nodo se rechaza —
sea cual sea la dirección que use, por lo que deliberadamente no se imprime aquí ninguna real:
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 razón no es que la conexión basada en IP esté desactivada — en este Bastion
ip_connect_enabled es true. Microsoft no admite puertos personalizados en conexiones de
cliente nativo basadas en IP, independientemente de ese ajuste
(documentación de Azure), y 65500
es un puerto personalizado. Inspeccionar la configuración de Bastion aquí no lleva a ninguna
parte; use el id de recurso.
Cuando no funciona
Sección titulada «Cuando no funciona»| Síntoma | Causa | Solución |
|---|---|---|
ERROR: Custom ports are not allowed. Allowed ports for Tunnel with IP connect is 22, 3389. | Se usó --target-ip-address | Use --target-resource-id |
ERROR: Defined port is currently unavailable | Otro túnel ya ocupa ese puerto local | Detenga el otro túnel, o pase un --port distinto; --resource-port se mantiene en 65500 |
terraform output -raw bastion_name es null o está vacío | Bastion no está implementado | Establezca enable_bastion = true y aplique |
| El túnel arranca pero el id de recurso está vacío | El filtro jq usó el nombre de la VM en lugar de la clave del sitio | Indexe por eastus01/02/03 |
401 Unauthorized, realm Volterra Site Console | No es un fallo — solicitud no autenticada | Facilite la credencial admin |
| El navegador rechaza el certificado | Autofirmado, nombre no coincidente y caducado desde octubre de 2025 | Es lo esperado; confirme que el sujeto es CN=site-local.volterra.io y continúe |
Las otras rutas
Sección titulada «Las otras rutas»ONLINE.