Compartir a través de


Diagnóstico de un problema de enrutamiento de red de máquina virtual mediante la CLI de Azure

En este artículo, aprenderá a usar Azure Network Watcher herramienta de próximo salto para solucionar y diagnosticar un problema de enrutamiento de máquinas virtuales que impide que se comunique correctamente con otros recursos.

Requisitos previos

  • Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.

  • Azure Cloud Shell o la CLI de Azure.

    Los pasos de este artículo ejecutarán los comandos de la CLI de Azure de forma interactiva en Azure Cloud Shell. Para ejecutar los comandos en Cloud Shell, seleccione Abrir Cloud Shell en la esquina superior derecha de un bloque de código. Seleccione Copiar para copiar el código y péguelo en Cloud Shell para ejecutarlo. También podrá ejecutar Cloud Shell desde Azure Portal.

    También puede instalar la CLI de Azure localmente para ejecutar los comandos. En este artículo se necesita la CLI de Azure versión 2.0 o posterior. Ejecute el comando az --version para buscar la versión instalada. Si ejecuta la CLI de Azure localmente, inicie sesión en Azure con el comando az login.

Creación de una máquina virtual

Para poder crear una máquina virtual, debe crear un grupo de recursos que contenga la máquina virtual. Cree un grupo de recursos con az group create. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus:

az group create --name myResourceGroup --location eastus

Cree la máquina virtual con az vm create. Si las claves SSH no existen en la ubicación de claves predeterminada, el comando las crea. Para utilizar un conjunto específico de claves, utilice la opción --ssh-key-value. En el ejemplo siguiente, se crea una máquina virtual llamada myVm:

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Ubuntu2204 \
  --generate-ssh-keys

La máquina virtual tarda en crearse unos minutos. No continúe con los pasos restantes hasta que la máquina virtual se haya creado y la CLI de Azure devuelva la salida.

Prueba de la comunicación de red

Para probar la comunicación de red con Network Watcher, primero debe habilitar un monitor de red en la región en la que quiere probar la máquina virtual y, a continuación, usar la funcionalidad de próximo salto de Network Watcher para probar la comunicación.

Habilitación de Network Watcher

Si ya dispone de un monitor de red habilitado en la región Este de EE. UU., pase a la sección Use el siguiente salto. Utilice el comando az network watcher configure para crear un monitor de red en la región Este de EE. UU.:

az network watcher configure \
  --resource-group NetworkWatcherRG \
  --locations eastus \
  --enabled

Use el próximo salto

Azure crea rutas automáticamente a los destinos predeterminados. Es posible crear rutas personalizadas que reemplacen las rutas predeterminadas. En ocasiones, las rutas personalizadas pueden provocar errores de comunicación. Para probar el enrutamiento desde una máquina virtual, use az network watcher show-next-hop para determinar el siguiente salto de enrutamiento cuando el tráfico esté destinado a una dirección específica.

Pruebe la comunicación de salida entre la máquina virtual y una de las direcciones IP de www.bing.com:

az network watcher show-next-hop \
  --dest-ip 13.107.21.200 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

Después de unos segundos, el resultado le informa que el valor de nextHopType es Internet y que el valor de routeTableId es Ruta del sistema. Este resultado le permite saber que hay una ruta válida para el destino.

Pruebe la comunicación de salida entre la máquina virtual y 172.31.0.100:

az network watcher show-next-hop \
  --dest-ip 172.31.0.100 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

El resultado que se devuelve le informa que Ninguno es el valor de nextHopType y que el valor de routeTableId también es Ruta del sistema. Este resultado le permite saber que, aunque no hay una ruta de sistema válida para el destino, no hay ningún próximo salto para enrutar el tráfico al destino.

Vista de los detalles de una ruta

Para analizar el enrutamiento detenidamente, revise las rutas efectivas para la interfaz de red con el comando az network nic show-effective-route-table:

az network nic show-effective-route-table \
  --resource-group myResourceGroup \
  --name myVmVMNic

El siguiente texto se incluye en el resultado devuelto:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
  },
  "addressPrefix": [
    "0.0.0.0/0"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "Internet",
  "source": "Default",
  "state": "Active"
},

Cuando usó el comando az network watcher show-next-hop para probar la comunicación saliente a 13.107.21.200 en Use el próximo salto, la ruta con el valor addressPrefix 0.0.0.0/0** se usó para enrutar el tráfico a la dirección, ya que ninguna otra ruta en el resultado incluía la dirección. De forma predeterminada, todas las direcciones que no se especifican en el prefijo de dirección de otra ruta se enrutan a internet.

Sin embargo, cuando usó el comando az network watcher show-next-hop para probar la comunicación saliente a 172.31.0.100, el resultado le informó de que no había ningún tipo de salto siguiente. En el resultado devuelto puede ver el siguiente texto:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
      },
  "addressPrefix": [
    "172.16.0.0/12"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "None",
  "source": "Default",
  "state": "Active"
},

Como puede ver en el resultado del comando az network watcher nic show-effective-route-table, aunque hay una ruta predeterminada hacia el prefijo 172.16.0.0/12 (que incluye la dirección 172.31.0.100) el valor de nextHopType es Ninguno. Azure crea una ruta predeterminada a 172.16.0.0/12, pero no especifica un tipo de próximo salto hasta que haya un motivo para hacerlo. Por ejemplo, si se agrega el intervalo de direcciones 172.16.0.0/12 al espacio de direcciones de la red virtual, Azure cambia el valor de nextHopType a Red Virtual para la ruta. A continuación, se muestra una marca de verificación de Red virtual como valor de nextHopType.

Limpieza de recursos

Cuando ya no se necesiten, puede utilizar az group delete para eliminar el grupo de recursos y todos los recursos que contenga:

az group delete --name myResourceGroup --yes

Pasos siguientes

En este artículo creó una máquina virtual y diagnosticó el enrutamiento de red a partir de esa máquina virtual. Se informó que Azure crear varias rutas predeterminadas y prueba el enrutamiento a dos destinos diferentes. Obtenga más información sobre enrutamiento en Azure y cómo crear rutas personalizadas.

Para las conexiones de máquinas virtuales salientes, también puede determinar la latencia y el tráfico de red permitido o denegado entre la máquina virtual y un punto de conexión mediante la funcionalidad de resolución de problemas de conexión de Network Watcher. Puede supervisar la comunicación entre una máquina virtual y un punto de conexión, como una dirección IP o una URL, gracias a la funcionalidad de supervisión de conexiones de Network Watcher. Para más información, consulte Supervisión de una conexión de red.