Compartir por


Diagnóstico de un problema de enrutamiento de red de máquinas virtuales mediante PowerShell

En este tutorial, obtendrá información sobre cómo usar la herramienta próximo salto de Azure Network Watcher para solucionar y diagnosticar un problema de enrutamiento de la máquina virtual (VM) 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 Azure PowerShell.

    Los pasos de este artículo ejecutarán los cmdlets de Azure PowerShell de forma interactiva en Azure Cloud Shell. Para ejecutar los cmdlets 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, a continuación, en Cloud Shell para ejecutarlo. También podrá ejecutar Cloud Shell desde Azure Portal.

    También podrá instalar Azure PowerShell localmente para ejecutar los cmdlet. Ejecute Get-Module -ListAvailable Az para buscar la versión instalada. Si ejecuta PowerShell localmente, inicie sesión en Azure con el cmdlet Connect-AzAccount.

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 New-AzResourceGroup. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación eastus.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

Cree la máquina virtual con New-AzVM. Cuando se realiza este paso, se le solicitará las credenciales. Los valores que especifique se configuran como el nombre de usuario y la contraseña de la máquina virtual.

$vM = New-AzVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVm" `
    -Location "East US"

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 PowerShell 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 tiene un monitor de red habilitado en la región Este de EE. UU., use Get-AzNetworkWatcher para recuperarlo. En el ejemplo siguiente, se recupera un monitor de red existente llamado NetworkWatcher_eastus que se encuentra en el grupo de recursos NetworkWatcherRG:

$networkWatcher = Get-AzNetworkWatcher `
  -Name NetworkWatcher_eastus `
  -ResourceGroupName NetworkWatcherRG

Si aún no tiene un monitor de red habilitado en la región Este de EE. UU., use New-AzNetworkWatcher para crearlo:

$networkWatcher = New-AzNetworkWatcher `
  -Name "NetworkWatcher_eastus" `
  -ResourceGroupName "NetworkWatcherRG" `
  -Location "East US"

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 el comando Get-AzNetworkWatcherNextHop 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:

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 13.107.21.200

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:

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 172.31.0.100

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 Get-AzEffectiveRouteTable:

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVm `
  -ResourceGroupName myResourceGroup |
  Format-table

Se devuelve una salida que incluye el texto siguiente:

Name State  Source  AddressPrefix           NextHopType NextHopIpAddress
---- -----  ------  -------------           ----------- ----------------
     Active Default {192.168.0.0/16}        VnetLocal   {}              
     Active Default {0.0.0.0/0}             Internet    {}              
     Active Default {10.0.0.0/8}            None        {}              
     Active Default {100.64.0.0/10}         None        {}              
     Active Default {172.16.0.0/12}         None        {}              

Como puede ver en la salida anterior, la ruta con AddressPrefix de 0.0.0.0/0 enruta todo el tráfico no destinado a direcciones dentro de otros prefijos de direcciones de ruta con un próximo salto de Internet. Como también puede ver en el resultado, 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 lo necesite, puede usar Remove-AzResourceGroup para quitar el grupo de recursos y todos los recursos que contiene:

Remove-AzResourceGroup -Name myResourceGroup -Force

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.