Share via


Configuración de la depuración de red de una máquina virtual - KDNET

En este tema se describe cómo configurar una conexión de depuración de kernel a una máquina virtual (VM) de Hyper-V.

Configuración de máquina virtual de Hyper-V

Para depurar una máquina virtual (VM) de Hyper-V Gen 2, siga estos pasos.

1. Cree una máquina virtual con Windows instalado

Para obtener información sobre cómo crear una máquina virtual, consulte Creación de una máquina virtual con Hyper-V.

2. Defina un conmutador virtual externo

Para comunicarse con la máquina virtual, se puede usar un conmutador de red externo virtual. Para obtener información sobre cómo crear un conmutador de red externo, consulte Creación de una red virtual.

Cuando se configura el conmutador de red externo, se deben establecer las siguientes opciones.

Opción Valor
Tipo de conexión Red externa
Permitir que el sistema operativo de administración comparta este adaptador de red Habilitado
ID. DE VLAN Deshabilitado

3. Deshabilite el arranque seguro

Para permitir que la utilidad kdnet actualice la configuración de arranque bcDEdit, deshabilite temporalmente el arranque seguro en la máquina virtual siguiendo estos pasos.

  1. Cargue el administrador de Hyper-V y seleccione las propiedades de la máquina virtual.

  2. Seleccione la configuración de Seguridad.

  3. Desactive la casilla Habilitar arranque seguro.

  4. Seleccione Aceptar para guardar la configuración.

Puede volver a habilitar el arranque seguro una vez que haya terminado de depurar y haya deshabilitado la depuración del kernel en la máquina virtual de destino.

4. Instale las herramientas de depuración para Windows

Las herramientas de depuración se usan para el depurador y la utilidad kdnet y deben instalarse. Para obtener información sobre cómo descargar e instalar las herramientas del depurador, consulte Herramientas de depuración para Windows.

Configuración de la depuración de red de una máquina virtual - KDNET

Registro de la dirección IP del host

Para ejecutar el depurador de host en el mismo equipo que la máquina virtual de destino, siga estos pasos.

  1. En el sistema operativo del equipo host, abra una ventana del símbolo del sistema y escriba IPConfig para mostrar la configuración de IP.

  2. En la salida del comando, busque el adaptador Ethernet que configuró como conmutador virtual externo.

    ...
    
    Ethernet adapter vEthernet (External Virtual Switch):
    
    ...
    
    IPv4 Address. . . . . . . . . . . : <YourHostIPAddress>
    
    ...
    
    

Sugerencia

Puede haber varias entradas de adaptador con nombres similares. Asegúrese de encontrar el conmutador virtual que ha creado.

  1. Registre la dirección IPv4 del conmutador virtual externo que se usará como dirección de host para la depuración.

  2. Para confirmar la conectividad entre el equipo de destino y host, abra una ventana del símbolo del sistema con privilegios elevados en el equipo de destino y escriba el siguiente comando, donde YourHostIPAddress es la dirección IP del equipo host.

    ping -4 <YourHostIPAddress>
    

Configuración del equipo de destino de la máquina virtual

Use la utilidad kdnet.exe para configurar automáticamente los valores del depurador en el equipo de destino, siguiendo estos pasos.

  1. Busque los archivos de WDK kdnet.exe y VerifiedNICList.xml. De forma predeterminada, se encuentran aquí.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

Nota:

En estas direcciones se supone que ambos equipos ejecutan una versión de 64 bits de Windows tanto en el destino como en el host. Si no es así, el mejor enfoque es ejecutar el mismo "bit" de herramientas en el host en el que se ejecuta el destino. Por ejemplo, si el destino ejecuta Windows de 32 bits, ejecute una versión de 32 del depurador en el host. Para obtener más información, consulte Elección de herramientas de depuración de 32 o 64 bits.

  1. Para poder cortar y pegar la clave larga que se utiliza, habilite la compatibilidad mejorada con la sesión. En la ventana de la máquina virtual, en el menú desplegable Ver, active Sesión mejorada.

  2. En el equipo de la máquina virtual de destino, cree un directorio C:\KDNET y copie los archivos kdnet.exe y VerifiedNICList.xml en ese directorio.

  3. En el equipo de destino, abra una ventana de símbolo del sistema como administrador. Escriba este comando para comprobar que el equipo de destino tiene un adaptador de red compatible.

    C:\KDNET>kdnet
    
    Network debugging is supported on the following NICs:
    busparams=0.25.0, Intel(R) 82579LM Gigabit Network Connection, KDNET is running on this NIC.kdnet.exe
    
  4. Escriba este comando para establecer la dirección IP del sistema host y generar una clave de conexión única. Use la dirección IP del sistema host que registró anteriormente. Elija una dirección de puerto única para cada par de destino/host con el que trabaje, dentro del intervalo de 50000-50039. En este ejemplo, vamos a seleccionar 50005.

    C:\>kdnet <YourIPAddress> <YourDebugPort> 
    
    Enabling network debugging on Microsoft Hypervisor Virtual Machine.
    Key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7
    
    To debug this vm, run the following command on your debugger host machine.
    windbg -k net:port=50005,key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7
    
    Then restart this VM by running shutdown -r -t 0 from this command prompt.
    
  5. Use CRTL+C para copiar la salida de Windbg proporcionada en el búfer de comandos. De este modo se evita tener que escribir el valor de la clave larga que se devuelve.

  6. Vuelva a habilitar BitLocker y el arranque seguro cuando haya terminado de configurar las opciones del depurador.

  7. Dado que el tiempo de espera de una máquina virtual con compatibilidad con sesión mejorada puede agotarse cuando se deja en un punto de interrupción, desactive la compatibilidad con Sesión mejorada mediante el menú desplegable Ver en la máquina virtual.

  8. La máquina virtual se reiniciará después de cargar y ejecutar el depurador. Este proceso se describe a continuación.

Inicio de la sesión de depuración

  1. Para conectarse al equipo de destino, use CTRL+V para pegar en la ventana de comandos del sistema operativo principal la cadena Windbg devuelta por kdnet que copió anteriormente.

    C:\Debuggers\windbg -k net:port=<YourDebugPort>,key=<YourKey> 
    

Al intentar establecer por primera vez una conexión de depuración de red, es posible que se le pida que permita el acceso a la aplicación de depuración (WinDbg o KD) a través del firewall. Debe responder al mensaje activando las casillas de los tres tipos de red: dominio, privado y público.

Reinicio del equipo de destino

Una vez conectado el depurador, reinicie el equipo de destino. Para forzar que la máquina virtual se reinicie por completo, use este comando desde el símbolo del sistema de un administrador.

shutdown -r -t 0

Cuando se reinicia la máquina virtual de destino, el depurador del sistema operativo host debe conectarse.

Después de conectarse a la máquina virtual, pulse interrumpir en el depurador y ya puede iniciar la depuración.

Para admitir la conexión de depuración, se agrega un adaptador de red de depuración de kernel que se puede ver en las propiedades de red después de reiniciar la máquina virtual.

Solución de problemas de depuración de red de máquinas virtuales KDNET

Si el depurador no se conecta, use el comando ping en la máquina virtual de destino para comprobar la conectividad.

C:\>Ping <HostComputerIPAddress>

Algo no funcionó bien y no estoy seguro de qué es...

  • Asegúrese de que ha dejado que WinDbg pase por el firewall.
  • Confirme que usa una clave única generada por BCDEdit o kdnet.

Mis máquinas virtuales no tienen conectividad de red

  • Abra el Administrador de conmutadores virtuales desde el Administrador de Hyper-V, seleccione el conmutador virtual existente y cambie la NIC de red externa al adaptador de red de depuración de kernel de Microsoft seleccionándolo en el cuadro desplegable y, a continuación, seleccione Aceptar en el cuadro de diálogo Administrador de conmutadores virtuales. Después de actualizar la NIC de conmutador virtual, asegúrese de apagar y reiniciar las máquinas virtuales.

Secuencia para agregar un rol de Hyper-V a un equipo Windows

Si el equipo de destino es un host de máquina virtual, puede configurar la depuración de red y seguir teniendo acceso a la red para las máquinas virtuales.

Supongamos que quiere configurar la depuración de red en la siguiente situación.

  • El equipo de destino tiene una sola tarjeta de interfaz de red.
  • Tiene previsto instalar el rol de Hyper-V en el equipo de destino.
  • Tiene previsto crear una o varias máquinas virtuales en el equipo de destino.

El mejor enfoque es configurar la depuración de red en el equipo de destino antes de instalar el rol de Hyper-V. A continuación, las máquinas virtuales tendrán acceso a la red.

Si decide configurar la depuración de red después de instalar el rol de Hyper-V en el equipo de destino, debe cambiar la configuración de red de las máquinas virtuales para que las conecte al adaptador de depuración de red de Kernel de Microsoft. De lo contrario, las máquinas virtuales no tendrán acceso a la red.

Vea también

Configuración manual de la depuración en modo kernel de una máquina virtual con un puerto COM virtual

Configuración manual de una conexión de red