Sdílet prostřednictvím


Ruční nastavení ladění síťového jádra KDNET

V tomto článku se dozvíte, jak nastavit ladění jádra sítě KDNET ručně pomocí nástrojů ladění pro Windows. Nakonfigurujete hostitele i cílové počítače tak, aby umožňovaly ladění sítě.

Důležitý

Ruční nastavení ladění sítě je složité a náchylné k chybám. Ve většině scénářů použijte místo toho automatické nastavení: Automatické nastavení:Automatické ladění jádra sítě KDNET. Důrazně se doporučuje nástroj KDNET.

Co se naučíte:

  • Postup konfigurace hostitelských a cílových počítačů pro ladění sítě
  • Jak navázat a řešit potíže s laděním připojení
  • Kdy použít protokol IPv6 a IPv4 pro ladění

Počítač, na kterém je spuštěn ladicí program, se nazývá hostitelský počítača laděný počítač se nazývá cílový počítač. Hostitelský počítač musí používat Systém Windows 7 nebo novější a cílový počítač musí používat systém Windows 8 nebo novější.

Ladění přes síť má následující výhody v porovnání s laděním pomocí jiných typů připojení.

  • Hostitel a cílové počítače mohou být kdekoli v místní síti.
  • Je snadné odlaďovat mnoho cílových počítačů z jednoho hostitelského počítače.
  • Vzhledem k tomu, že mají dva počítače, je pravděpodobné, že oba mají ethernetové adaptéry. Je méně pravděpodobné, že oba mají sériové porty nebo porty 1394.
  • Ladění sítě je rychlejší než ladění sériového portu.

Podporované síťové adaptéry

Hostitelský počítač: Každý síťový adaptér funguje.

Cílový počítač: Musí používat podporovaný síťový adaptér. Zkontrolujte verzi Windows:

Instalace nástrojů pro ladění pro Windows

Ověřte, že jsou v hostitelském systému nainstalované nástroje ladění pro Windows. Informace o stahování a instalaci nástrojů ladicího programu naleznete v tématu Nástroje ladění pro systém Windows.

Určení IP adresy hostitelského počítače

K určení IP adresy hostitelského počítače použijte jeden z následujících postupů.

  1. Na hostitelském počítači otevřete příkazový řádek a zadejte následující příkaz:

    ipconfig
    

    Poznamenejte si adresu IPv4 síťového adaptéru, který chcete použít k ladění.

  2. Na cílovém počítači otevřete příkazový řádek a zadejte následující příkaz, kde YourIPAddress je IP adresa hostitelského počítače:

    ping -4 <YourIPAddress>
    

Volba portu pro ladění sítě

Doporučený rozsah portů: 50000-50039

Můžete použít libovolný port z 49152-65535, ale doporučený rozsah poskytuje nejlepší kompatibilitu. Ladicí program používá tento port výhradně, proto se ujistěte, že ho nepoužívají žádné jiné aplikace.

Důležité aspekty

  • Podnikové brány firewall můžou omezit rozsahy portů. Obraťte se na správce sítě.
  • Každý cílový počítač potřebuje jedinečný port (například 50000, 50001, 50002).
  • Různé hostitelské počítače můžou opakovaně používat stejný rozsah portů.

Poznámka

Zásady sítě vaší společnosti můžou omezit dostupné porty. Pokud narazíte na problémy s připojením, obraťte se na správce sítě.

Pokud k jednomu hostitelskému počítači připojíte několik cílových počítačů, musí mít každé připojení jedinečné číslo portu. Pokud například připojíte 100 cílových počítačů k jednomu hostitelskému počítači, můžete přiřadit port 50000 prvnímu připojení, portu 50001 druhému připojení atd.

Poznámka

Jiný hostitelský počítač může pro připojení k dalším 100 cílovým počítačům použít stejný rozsah portů (50000 až 50099).

Nastavení cílového počítače

  1. Ověřte, že cílový počítač má podporovaný síťový adaptér. Další informace najdete tady:

  2. Připojte podporovaný adaptér k síťovému rozbočovači nebo přepínači pomocí příslušného síťového kabelu.

Důležitý

Před použitím BCDEdit ke změně informací o spuštění může být nutné dočasně pozastavit funkce zabezpečení systému Windows, jako je BitLocker a Zabezpečené spouštění, na testovacím počítači. Po dokončení testování znovu zapněte tyto funkce zabezpečení a počítač pro testování spravujte odpovídajícím způsobem, když jsou funkce zabezpečení zakázané.

  1. Na příkazovém řádku se zvýšenými oprávněními zadejte následující příkazy. Nahraďte w.x.y.z IP adresou hostitelského počítače a n zvoleným číslem portu:

    bcdedit /debug on
    bcdedit /dbgsettings net hostip:w.x.y.z port:n
    

    Například:

    bcdedit /debug on
    bcdedit /dbgsettings net hostip:192.168.1.100 port:50000
    
  2. BCDEdit zobrazí automaticky vygenerovaný klíč. Zkopírujte klíč a uložte ho na vyměnitelném úložném zařízení, jako je USB flash disk. Při spuštění ladicí relace na hostitelském počítači potřebujete klíč.

  3. Pomocí Správce zařízení určete sběrnici PCI, zařízení a čísla funkcí adaptéru, který chcete použít k ladění. Tyto hodnoty se zobrazí ve Správci zařízení v části Umístění na kartě Obecné. Potom v příkazovém řádku se zvýšenými oprávněními zadejte následující příkaz, kde b, da f jsou číslo sběrnice, číslo zařízení a číslo funkce adaptéru:

    bcdedit /set "{dbgsettings}" busparams b.d.f
    
  4. Cílový počítač se restartuje po připojení ladicího programu jádra.

Poznámka

Pokud chcete nainstalovat roli Hyper-V na cílový počítač, přečtěte si téma Nastavení ladění sítě pro hostitele virtuálního počítače.

Upozornění

Pokud je cílový počítač v dokovací stanici a povolíte ladění sítě pro síťový adaptér, který je součástí dokovací stanice, neodstraňujte počítač z dokovací stanice. Pokud potřebujete odebrat cílový počítač z dokovací stanice, zakažte nejprve ladění jádra. Chcete-li zakázat ladění jádra v cílovém počítači, otevřete příkazový řádek jako správce a zadejte příkaz bcdedit /debug off. Restartujte cílový počítač.

Spuštění ladicí relace

Než začnete: Ujistěte se, že je síťový adaptér hostitelského počítače připojený k síťovému rozbočovači nebo přepínači.

Možnost 1: Použití WinDbg (GUI)

  1. Na hostitelském počítači otevřete WinDbg.
  2. Vyberte Soubor>Ladění jádra.
  3. Otevřete kartu Net ( Síť ).
  4. Zadejte číslo portu a klíč.
  5. Vyberte OK.

Možnost 2: Použití WinDbg (příkazový řádek)

Relaci s WinDbg můžete spustit také tak, že otevřete příkazový řádek a zadáte následující příkaz, kde n je číslo portu a MyKey je klíč, který BCDEdit automaticky vygeneroval při nastavování cílového počítače:

windbg -k net:port=<n>,key=<MyKey>

Pokud se zobrazí výzva k povolení přístupu k portu přes bránu firewall, povolte WinDbg přístup k portu pro všechny tři různých typů sítě.

Použijte KD

Na hostitelském počítači otevřete příkazový řádek. Zadejte následující příkaz, kde n je číslo portu a MyKey je klíč, který BCDEdit automaticky vygeneroval při nastavování cílového počítače:

kd -k net:port=<n>,key=<MyKey>

Pokud se zobrazí výzva k povolení přístupu k portu přes bránu firewall, povolte aplikaci WinDbg přístup k portu pro všechny tři různé typy sítí.

Restartujte cílový počítač.

Když se ladicí program připojí a počká, restartujte cílový počítač. Jedním ze způsobů, jak restartovat počítač, je použít tento příkaz z příkazového řádku správce:

shutdown -r -t 0

Po restartování cíle se ladicí program v hostitelském operačním systému připojí.

Po připojení k cíli na hostitelském zařízení vyberte možnost zastavení ve vašem ladicím programu a můžete začít ladit.

Povolení ladicího programu přes bránu firewall

Při prvním pokusu o navázání připojení k ladění sítě se může zobrazit výzva k povolení přístupu k ladicí aplikaci (WinDbg nebo KD) přes bránu firewall. Klientské verze Systému Windows zobrazují výzvu, ale serverové verze Systému Windows nezobrazují výzvu. Odpovězte na výzvu zaškrtnutím políček pro všechny tři typy sítí: doména, privátní a veřejná.

Pokud se vám nezobrazí výzva nebo pokud jste po zobrazení výzvy nezaškrtli políčka, pomocí Ovládacích panelů povolte přístup přes bránu firewall na hostitelském počítači, na kterém je ladicí program spuštěný. Otevřete Ovládací panely > Systém a zabezpečení a vyberte Povolit aplikaci skrze bránu Windows Firewall.

  • (WinDbg) V seznamu aplikací vyhledejte proces stroje WinDbg (TCP) (všechny).

  • (Classic WinDbg) V seznamu aplikací vyhledejte Windows GUI symbolický ladicí program a Ladicí program jádra Windows.

Pomocí zaškrtávacích políček povolte tyto aplikace přes bránu firewall. Restartujte ladicí aplikaci (WinDbg nebo KD).

Šifrovací klíč

Aby byl cílový počítač zabezpečený, musí být pakety, které cestují mezi hostitelem a cílovými počítači, šifrované. Použijte automaticky vygenerovaný šifrovací klíč (který poskytuje BCDEdit při konfiguraci cílového počítače). Automaticky generovaný šifrovací klíč je bezpečnější a poskytuje jedinečnou hodnotu, kterou použijete k navázání připojení ke konkrétnímu cíli.

Ladění sítě používá 256bitový klíč, který je zadaný jako čtyři 64bitové hodnoty v 36kové soustavě, oddělené tečkami. Každá 64bitová hodnota je určena až 13 znaky. Platné znaky jsou písmena z a číslice 0 až 9. Speciální znaky nejsou povolené.

Pokud chcete zadat vlastní klíč, otevřete v cílovém počítači příkazový řádek se zvýšenými oprávněními. Zadejte následující příkaz, kde je IP adresa hostitelského počítače, n je číslo portu a klíč klíč je váš klíč:

bcdedit /dbgsettings net hostip:w.x.y.z port:n key:Key

Cílový počítač se musí restartovat, kdykoli změníte nastavení dbgsettings.

Tipy pro řešení potíží

Povolit ladicí aplikace skrze brány firewall

Při prvním pokusu o navázání připojení k ladění sítě se může zobrazit výzva k povolení přístupu k ladicí aplikaci (WinDbg nebo KD) přes bránu firewall. Klientské verze Systému Windows zobrazují výzvu, ale serverové verze Systému Windows nezobrazují výzvu. Odpovězte na výzvu zaškrtnutím políček pro všechny tři typy sítí: doména, privátní a veřejná.

Pokud se vám nezobrazí výzva nebo pokud jste po zpřístupnění výzvy nezaškrtli políčka, musíte k povolení přístupu přes bránu firewall použít Ovládací panely. Otevřete Ovládací panely > Systém a zabezpečení a vyberte Povolit aplikaci skrze bránu Windows Firewall.

  • (WinDbg) V seznamu aplikací vyhledejte proces stroje WinDbg (TCP) (všechny).

  • (WINDBG (Classic)) V seznamu aplikací vyhledejte Windows GUI symbolický ladicí program a ladicí program jádra Windows.

Pomocí zaškrtávacích políček povolte tyto aplikace přes bránu firewall. Posuňte se dolů a výběrem OK uložte změny brány firewall. Znovu spusťte ladicí program.

Číslo portu musí být v rozsahu povoleném zásadami sítě.

Zásady sítě vaší společnosti můžou omezit rozsah čísel portů, které můžete použít pro ladění sítě. Pokud chcete zjistit, jestli zásady vaší společnosti omezují rozsah portů pro ladění sítě, obraťte se na správce sítě. V cílovém počítači otevřete příkazový řádek jako správce a zadejte příkaz bcdedit /dbgsettings. Výstup se podobá následujícímu příkladu:

C:\> bcdedit /dbgsettings
key                     XXXXXX.XXXXX.XXXXX.XXXXX
debugtype               NET
hostip                  169.168.1.1
port                    50085
dhcp                    Yes
The operation completed successfully.

V předchozím výstupu je hodnota portu 50085. Pokud je hodnota portu mimo rozsah povolený správcem sítě, zadejte následující příkaz. Hodnota w.x.y.z je IP adresa hostitelského počítače a YourDebugPort je číslo portu v povoleném rozsahu.

bcdedit /dbgsettings net hostip:w.x.y.z port:YourDebugPort

Po změně nastavení ladicího programu cílového počítače znovu spusťte ladicí program na hostitelském počítači s novým nastavením portu a restartujte cílový počítač.

Použití příkazu ping k otestování připojení

Pokud se debugger nepřipojí, pomocí příkazu ping na cílovém počítači ověřte konektivitu.

C:\>Ping <HostComputerIPAddress>

Poznámka

Tato metoda nemusí fungovat, pokud váš hostitelský počítač není nakonfigurován tak, aby byl zjistitelný v síti, protože brána firewall může blokovat požadavky ping. Pokud brána firewall blokuje požadavky ping, nedostanete při příkazu ping hostitele žádné odpovědi.

Jak ladicí program získá IP adresu cílového počítače

KDNET na cílovém počítači se pokusí použít protokol DHCP (Dynamic Host Configuration Protocol) k získání směrovatelné IP adresy síťového adaptéru, který se používá k ladění. Pokud služba KDNET získá adresu přiřazenou protokolem DHCP, mohou hostitelské počítače po celé síti cílový počítač ladit. Pokud KDNET nemůže získat adresu přiřazenou protokolem DHCP, získá IP adresu místního propojení pomocí automatického přidělování privátních IP adres (APIPA). IP adresy místního propojení nejsou směrovatelné, takže hostitel a cíl nemůžou ke komunikaci přes směrovač použít IP adresu místního propojení. V takovém případě funguje ladění sítě, pokud připojíte hostitele a cílové počítače do stejného síťového rozbočovače nebo přepínače.

Při nastavování KDNET na fyzickém počítači se síťovou kartou na bázi PCI vždy určete parametry sběrnice.

Pokud nastavujete síť KDNET na fyzickém počítači se síťovým rozhraním založeným na PCI nebo PCIe, vždy zadejte parametry sběrnice pro síťovou kartu, kterou chcete použít pro síť KDNET. Pokud chcete zadat parametry sběrnice, otevřete Správce zařízení a vyhledejte síťový adaptér, který chcete použít k ladění. Otevřete stránku vlastností pro síťový adaptér a poznamenejte si číslo sběrnice, číslo zařízení a číslo funkce, které se zobrazí v části Umístění na kartě Obecné . Na příkazovém řádku se zvýšenými oprávněními zadejte následující příkaz, kde b, d a f jsou čísla sběrnice, zařízení a funkce v desítkovém formátu:

bcdedit /set "{dbgsettings}" busparams b.d.f

Pokud ladicí program běží na hostitelském počítači a čeká na připojení, restartujte cílový počítač pomocí následujícího příkazu:

shutdown -r -t 0

Ruční odstranění položek BCDEdit

Obvykle nemusíte položky BCDEdit odstraňovat ručně. Tento postup ale můžete použít k řešení neobvyklých situací.

Pokud používáte nástroj kdnet, nemusíte položky odstraňovat ručně. Další informace naleznete v tématu Nastavení ladění jádra sítě KDNET automaticky.

Při použití bcdedit –deletevaluemusíte zadat platný název elementu bcd. Další informace najdete v tématu BCDEdit /deletevalue.

Pokud chcete položky bcdedit odstranit ručně, proveďte následující kroky:

  1. Na cílovém počítači otevřete příkazový řádek jako správce.

  2. Jako příklad zadejte následující příkaz, který odstraní položku ladění BCDEdit pro IP adresu hostitele:

    bcdedit -deletevalue {dbgsettings} hostip
    

Při odstranění hostip je nutné zadat target= v příkazovém řádku ladicího programu.

  1. V dalším příkladu odstraňte položku portu pomocí následujícího příkazu:

    bcdedit -deletevalue {dbgsettings} port
    

Když odstraníte položku portu, KDNET použije výchozí port pro ladicí program registrovaný u ICANN s číslem 5364.

Nastavení Hyper-V

Pokud chcete nainstalovat roli Hyper-V na cílový počítač, přečtěte si téma Nastavení ladění sítě hostitele virtuálního počítače.

Informace o ladění virtuálního počítače Hyper-V najdete v tématu Nastavení ladění sítě virtuálního počítače – KDNET.

Povolení sítě KDNET na hostiteli Hyper-V se spuštěnými virtuálními počítači s připojením k externí síti

Někdy dojde k situaci, která způsobí, že sítě ve virtuálních počítačích přestanou fungovat:

  • Na počítači povolíte Hyper-V, vytvoříte přepínač externí sítě, který odkazuje na fyzickou síťovou kartu v počítači, a nakonfigurujete virtuální počítače tak, aby používaly tento externí přepínač pro své sítě.

  • Síť KDNET povolíte na Hyper-V hostitelském operačním systému pomocí stejné fyzické síťové karty, na kterou odkazuje externí síťový přepínač. Restartujete hostitele.

  • Všechny virtuální počítače, které používají dříve nakonfigurovaný externí přepínač, po restartování ztratí připojení k síti.

Toto zastavení je záměrné. Síť KDNET přebírá výhradní kontrolu nad síťovým adaptérem, který je nakonfigurovaný pro použití. Operační systém nenačte nativní miniport NDIS pro danou síťovou kartu. Externí síťový přepínač už nemůže komunikovat s nativním ovladačem miniportu NDIS a přestane fungovat. Pokud chcete tuto situaci obejít, proveďte následující kroky:

  1. Otevřete Správce virtuálního přepínače z Hyper-V Manageru a vyberte existující virtuální přepínač. Změňte síťové rozhraní externí sítě na Microsoft Kernel Debug Network Adapter tak, že jej vyberete z rozevírací nabídky a poté vyberete možnost OK v dialogovém okně Virtual Switch Manager.

  2. Po aktualizaci síťové karty virtuálního přepínače vypněte a restartujte virtuální počítače.

Když vypnete ladění KDNET, postupujte stejným postupem, aby se externí přepínač znovu nasměroval zpět na nativní miniport NDIS síťové karty. Jinak dojde ke ztrátě připojení virtuálního počítače při restartování počítače po zakázání ladění.

protokol IPv6

Windows verze 1809 přidává podporu pro protokol IPv6.

Pokud chcete používat protokol IPv6 s ladicím programem, proveďte následující kroky:

  1. Pomocí příkazu ping na <debughostname> si poznamenejte adresu IPv6 uvedenou v odpovědi mezi výstupními řádky. Místo x:y:z:p:d:q:r:npoužijte tuto adresu IPv6 .

  2. Pomocí BCDEdit odstraňte všechny existující hodnoty IP adres v dbgsettings.

    bcdedit -deletevalue {dbgsettings} hostip
    
  3. Nastavte adresu IPv6 hostitele. Řetězec hostipv6=s:t:u:v:w:x:y:z nemůže obsahovat žádné mezery. <YourPort> je číslo síťového portu, které se má použít pro tento cílový počítač. <váš klíč> je čtyřdílný klíč zabezpečení. <b.d.f> jsou čísla umístění funkce sběrnice pro síťovou kartu (NIC), kterou chcete použít pro KDNET.

    bcdedit /dbgsettings net hostipv6:s:t:u:v:w:x:y:z port:<YourPort> key:<YourKey> busparams:<b.d.f>
    
  4. Zadáním tohoto příkazu potvrďte, že jsou správně nastavené dbgsettings.

    C:\> bcdedit /dbgsettings
    busparams               0.25.0
    key                     2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
    debugtype               NET
    hostipv6                  2001:db8:0:0:ff00:0:42:8329
    port                    50010
    dhcp                    Yes
    The operation completed successfully.
    
  5. Na hostitelském počítači použijte následující příkaz ke spuštění ladicího nástroje:

    Windbg -k net:port=<yournetworkportnumber>,key=<key_output_from_kdnet>,target=::<YourIPv6Address> 
    
  6. Když debugger běží na hostitelském počítači a čeká na připojení, restartujte cílový počítač.

  7. Ladicí program se připojí k ladicímu programu hostitele v rané fázi spouštění. Vidíte, že síť KDNET používá připojení IPv6, protože IP adresy hlášené v připojené zprávě jsou adresy IPv6 místo IPv4 adres.

Poznámky

  • Každé nastavení bcd ladicího programu, které umožňuje specifikovat hostip, má odpovídající prvek hostipv6. Existují tři páry.
protokol IPv4 protokol IPv6 Použití
adresa IP hostitele hostipv6 Pro ladění spouštění systému a jádra
IP adresa cílového hostitele targethostipv6 Specifické pro ladění jádra
hypervisorhostip hypervisorhostipv6 Pro ladění Hyper-V
  • Pokud nastavíte hostipv6 adresu stylu pro některý z těchto typů ladění, získáte protokol IPv6.

  • Pokud nastavíte hostip adresu stylu pro některý z těchto typů ladění, získáte protokol IPv4.

  • Cíl podporuje pouze IPv4 nebo IPv6, nikoli oba současně. Verze použitého protokolu IP je řízena cílovým počítačem dbgsettings. Pokud nastavíte hostip, cíl použije protokol IPv4. Pokud nastavíte hostipv6, cíl použije protokol IPv6.

  • Ladicí program hostitele obvykle automaticky vybere použití protokolu IPv4 nebo IPv6. Ve výchozím nastavení ladicí program naslouchá na soketu IPv4 i soketu IPv6 a automaticky se připojí k cílovému počítači.

  • Pokud chcete vynutit použití protokolu IPv6 v ladicím programu na hostiteli, ale chcete, aby ladicí program naslouchal připojení z cíle, můžete přidat target=:: do příkazového řádku ladicího programu. :: je adresa IPv6 0.

  • Pokud chcete vynutit ladění IPv4 v ladicím programu na hostiteli, ale chcete, aby ladicí program naslouchal na spojení z cílového zařízení, můžete přidat target=0.0.0.0 do příkazového řádku ladicího programu. 0.0.0.0 je adresa IPv4 0.

  • Pokud zadáte target= na příkazovém řádku ladicího programu a použijete název počítače, ladicí program tento název počítače převede na adresu IPv4 a adresu IPv6. Ladicí program se pak pokusí připojit na obě.

  • Když zadáte target= na příkazovém řádku ladicího programu a použijete IP adresu, pokud IP adresa obsahuje nějaké znaky : znaky, ladicí program předpokládá, že se jedná o adresu IPv6 a vynutí použití protokolu IPv6 pro toto připojení. Pokud IP adresa obsahuje znaky typu ., ladicí program předpokládá, že se jedná o adresu IPv4, a vyžaduje použití IPv4 pro toto připojení.

  • Pokud nastavíte protokol IPv6 v cíli a vynutíte použití protokolu IPv4 na příkazovém řádku ladicího programu, nedostanete připojení.

  • Pokud nastavíte protokol IPv4 v cíli a vynutíte použití protokolu IPv6 na příkazovém řádku ladicího programu, nebudete mít připojení.