Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Debug del kernel per le istanze di Windows sulla rete
Il KDNET Extensibility Module for Elastic Network Adapter (ENA) è un livello di supporto per i driver hardware che consente il debug del kernel di Windows sulla rete tramite ENA su istanze Amazon Elastic Compute Cloud. Puoi utilizzare il modulo di estensibilità con Windows Debugger () per eseguire il debug a livello di kernel su istanze EC2 che eseguono Windows. WinDbg
Il debugging del kernel consente di diagnosticare e risolvere problemi di basso livello del sistema operativo, come errori di schermata blu (BSOD), guasti dei driver e problemi di avvio sulle istanze EC2 Windows.
Indice
Prerequisiti
Prima di iniziare, assicurati di disporre di:
Due istanze EC2 per Windows, nella stessa sottorete:
-
Un'istanza host di debug: esegue Windows Debugger (). WinDbg
-
Un'istanza di destinazione di debug, l'istanza di cui si desidera eseguire il debug.
Per ulteriori informazioni sull'avvio delle istanze, consulta. Inizia a usare Amazon EC2
I gruppi di sicurezza per le istanze host e target devono consentire il traffico UDP in entrata e in uscita sulla porta utilizzata per il debug di KDNET (intervallo consigliato: 50000-50039). Il modo più semplice per configurarlo è creare un gruppo di sicurezza con una regola in entrata che consenta il traffico UDP proveniente da se stesso come origine e quindi collegare quel gruppo di sicurezza a entrambe le istanze. Per ulteriori informazioni, consulta Regole del gruppo di sicurezza nella Guida per l’utente di Amazon VPC.
L'istanza di destinazione di debug deve eseguire una delle seguenti versioni di Windows (o successive):
-
Windows Server 2025 con numero di build 26100.7462 (patch di dicembre 2025)
-
Windows 11 24H2 con numero di build 26100.7309
-
Windows 11 25H2 con numero di build 26200.7309
Nota
Il modulo di estensibilità KDNET per ENA è distribuito come parte di Windows e può essere aggiornato solo tramite aggiornamenti cumulativi mensili di Windows. Ti consigliamo di mantenere la versione più recente di Windows KB installata sulla destinazione di debug per assicurarti di averne la versione più recente.
Per verificare che il modulo sia presente nella destinazione di debug, esegui il comando seguente in una sessione con privilegi elevati PowerShell :
Test-Path C:\Windows\system32\kd_02_1d0f.dll
Se il comando viene restituitoTrue, il modulo è disponibile.
Passaggio 1: installare gli strumenti di debug di Windows sull'host di debug
Installa gli strumenti di debug di Windows sull'istanza dell'host di debug eseguendo il comando seguente in una sessione: PowerShell
winget install microsoft.windbg
Per istruzioni dettagliate sull'installazione, vedi Installare Windows Debugger nella documentazione
Dopo l'installazione, verifica che il debugger funzioni eseguendo il comando seguente in una sessione: PowerShell
windbgx
La WinDbg finestra dovrebbe aprirsi. In caso affermativo, l'installazione è andata a buon fine e puoi chiudere la finestra.
Fase 2: Impostare l'obiettivo di debug
Nota
Quando il debug del kernel è attivo, il dispositivo ENA utilizzato per la sessione di debug è dedicato solo al traffico del debugger. Se devi mantenere l'accesso a Internet sull'istanza di destinazione di debug durante il debug, collega una seconda ENA all'istanza prima di iniziare.
Sulla destinazione di debug, apri una PowerShell sessione con privilegi elevati e configura il debug del kernel utilizzando i seguenti passaggi.
Eseguite il comando seguente per elencare il bus, il dispositivo e il numero di funzione dell'adattatore ENA collegato all'istanza:
Get-NetAdapter -Physical | Where-Object -Property PnPDeviceID -Match -Value '^PCI\\VEN_1D0F&DEV_EC2[01]&' | Get-NetAdapterHardwareInfo | Select-Object InterfaceDescription, BusNumber, DeviceNumber, FunctionNumber | Format-List
Se all'istanza sono collegati più adattatori ENA, usa il comando seguente per mappare ogni adattatore fisico al relativo indirizzo IP privato. Puoi fare un riferimento incrociato a questi dettagli nella Console di gestione AWS sezione EC2 → Istanze → [ID istanza] → Rete → Interfacce di rete. Questo ti aiuta a correlare interfacce di rete specifiche IDs, gruppi privati IPs e di sicurezza con l'adattatore a livello di sistema operativo per un debug mirato.
Get-NetAdapter -Physical | Where-Object PnPDeviceID -Match '^PCI\\VEN_1D0F&DEV_EC2[01]&' | ForEach-Object { $adapter = $_ $hwInfo = $adapter | Get-NetAdapterHardwareInfo $ipInfo = Get-NetIPAddress -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4 [PSCustomObject]@{ InterfaceDescription = $adapter.InterfaceDescription IPAddress = $ipInfo.IPAddress BusNumber = $hwInfo.BusNumber DeviceNumber = $hwInfo.DeviceNumber FunctionNumber = $hwInfo.FunctionNumber } } | Format-List
Annotate i FunctionNumber valori BusNumberDeviceNumber, e dell'adattatore ENA da utilizzare per il debug dall'output.
Eseguite i seguenti comandi per configurare il debug del kernel. Sostituisci i valori segnaposto con la tua configurazione specifica:
bcdedit /debug on bcdedit /set loadoptions FORCEHVTONOTSHAREDEBUGDEVICE bcdedit /dbgsettings net hostip:host-private-ipport:port-numberkey:encryption-keybusparams:b.d.f
Nota
Verifica se esiste loadoptions eseguendo il comando seguente. Se viene restituito un valore, copia quella stringa e ;FORCEHVTONOTSHAREDEBUGDEVICE aggiungila.
(bcdedit /enum) -match "loadoptions"
Dove:
-
host-private-ip— L' IPv4 indirizzo privato dell'istanza dell'host di debug. Se le tue istanze vengono avviate in una sottorete IPv6 solo, consulta Configurazione di KDNET con nelladocumentazione di Microsoft per ulteriori informazioni IPv6 sull'utilizzo con KDNET. IPv6 -
port-number— La porta da usare per la sessione di debug. L'intervallo consigliato è 50000-50039 (ad esempio,).50000 -
encryption-key— Una chiave a 256 bit utilizzata per crittografare la connessione di debug, specificata come quattro valori a 64 bit separati da punti. Ogni valore a 64 bit può contenere fino a 13 caratteri utilizzando solo lettere minuscole a—z e cifre da 0 a 9. I caratteri speciali non sono consentiti. Esempio di chiave di crittografia:.1kdnet2keys3.4kdnet5keys6.7kdnet8keys9.10kdnet11ke -
b.d.f— I numeri di bus, dispositivo e funzione per il dispositivo ENA, formattati comebus.device.function(ad esempio0.3.0), utilizzati per il debug.
Suggerimento
Per eseguire il debug del processo di avvio di Windows, esegui anche il seguente comando:
bcdedit /bootdebug on
Passaggio 3: avviare la sessione di debug sull'host di debug
Per consentire il debug del traffico sull'host, puoi creare una regola firewall per l'applicazione o una porta UDP specifica. WinDbg
Opzione 1: consentire l'applicazione WinDbg
Esegui i seguenti comandi per autorizzare l' WinDbg eseguibile:
$WinDbgxPath = "$env:LocalAppData\Microsoft\WindowsApps\WinDbgX.exe" New-NetFirewallRule -DisplayName "Allow Inbound KDNET Connection" -Action Allow -Program $WinDbgxPath
Opzione 2: consentire una porta UDP specifica
In alternativa, puoi consentire il traffico UDP in entrata verso la porta configurata per il debug del kernel. Sostituisci con la porta port-number KDNET scelta:
$DebugPort =port-numberNew-NetFirewallRule -DisplayName "Allow Inbound KDNET Connection" -Direction Inbound -LocalPort $DebugPort -Protocol UDP -Action Allow
Nota
Le configurazioni del firewall possono essere limitate dalla Domain Group Policy (GPO) o richiedere autorizzazioni di amministratore elevate. Se il comando fallisce, contatta l'amministratore di rete.
Inizia WinDbg con la porta e la chiave che corrispondono alla configurazione della destinazione di debug. È possibile specificare opzioni di debug del kernel aggiuntive documentate nel riferimento alla riga di comando di WinDbg Microsoft
windbgx -k net:port=port-number,key=encryption-key
WinDbg si apre e attende che il target di debug si connetta.
Passaggio 4: riavviare la destinazione di debug
Sulla destinazione di debug, riavvia l'istanza per avviare la connessione di debug:
shutdown -r -t 0
Dopo il riavvio della destinazione di debug, WinDbg sull'host di debug si connette automaticamente alla destinazione. È ora possibile utilizzarlo WinDbg per controllare lo stato del kernel, impostare i breakpoint e diagnosticare i problemi.
Pulisci le impostazioni di debug dopo il debug
Sulla destinazione di debug
Al termine del debug, rimuovete la configurazione di debug del kernel dalla destinazione di debug per ripristinare il normale comportamento di avvio. Sulla destinazione di debug, aprite una sessione con privilegi elevati ed eseguite i seguenti comandi: PowerShell
bcdedit /debug off bcdedit /dbgsettings LOCAL bcdedit /deletevalue loadoptions
Se ne esistono di loadoptions diversiFORCEHVTONOTSHAREDEBUGDEVICE, è necessario ripristinare l'impostazione eseguendola bcdedit /set loadoptions con l'originale. loadoptions
Se hai abilitato il debug di avvio, esegui anche:
bcdedit /bootdebug off
Riavvia l'istanza per rendere effettive le modifiche.
Sull'host di debug
Rimuovi la regola del firewall eseguendo:
Remove-NetFirewallRule -DisplayName "Allow Inbound KDNET Connection"
Limitazioni
Il modulo di estensibilità KDNET per ENA attualmente non supporta:
-
tipi di istanze x86_64 non in metallo di ottava generazione (ad esempio,)
m8a.xlarge -
tipi di istanze x86_64 non metalliche 48xlarge di settima generazione (ad esempio,)
m7a.48xlarge -
tipi di istanze u7i
Il modulo attualmente non supporta istanze con Secure Boot abilitato. È possibile verificare lo stato Confirm-SecureBootUEFI eseguendo una sessione con privilegi elevati. PowerShell Se l'output èTrue, Secure Boot è attivo. Tieni presente che tutte le immagini fornite da Amazon con un prefisso «TPM» hanno Secure Boot abilitato per impostazione predefinita.
Note aggiuntive
Se riscontri problemi di connessione del debugger all'istanza di destinazione, verifica quanto segue:
-
Tutti i prerequisiti elencati in questa guida sono soddisfatti, inclusa la versione build di Windows Server richiesta e la presenza del modulo di estensibilità.
-
I gruppi di sicurezza collegati a entrambe le istanze sono configurati correttamente per consentire il traffico tra di loro sulla porta di debug configurata.
-
Le regole di Windows Firewall sulle istanze host non bloccano il traffico di rete tra le due istanze sulla porta configurata.
Per ulteriori indicazioni, consulta Configurare manualmente il debug del kernel di rete KDNET