Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperlihatkan kepada Anda cara menyiapkan penelusuran kesalahan kernel jaringan KDNET secara manual dengan menggunakan Alat Penelusuran Kesalahan untuk Windows. Anda mengonfigurasi komputer host dan komputer target untuk mengaktifkan debugging jaringan.
Penting
Penyiapan penelusuran kesalahan jaringan manual bersifat kompleks dan rawan kesalahan. Untuk sebagian besar skenario, gunakan penyiapan otomatis sebagai gantinya:Menyiapkan penelusuran kesalahan kernel jaringan KDNET secara otomatis. Utilitas KDNET sangat disarankan.
Apa yang Anda pelajari:
- Cara mengonfigurasi komputer host dan target untuk debugging jaringan
- Cara membuat dan memecahkan masalah koneksi debugging
- Penggunaan IPv6 vs IPv4 untuk pemecahan masalah
Komputer yang menjalankan debugger disebut komputer host , dan komputer yang sedang di-debug disebut komputer target . Komputer host harus menjalankan Windows 7 atau yang lebih baru, dan komputer target harus menjalankan Windows 8 atau yang lebih baru.
Debugging melalui jaringan memiliki keuntungan berikut dibandingkan dengan debugging melalui jenis konektivitas lainnya.
- Komputer host dan target dapat berada di mana saja di jaringan lokal.
- Sangat mudah untuk men-debug banyak komputer target dari satu komputer host.
- Diberikan dua komputer mana pun, kemungkinan besar keduanya memiliki adaptor Ethernet. Kecil kemungkinan keduanya memiliki port serial atau 1394 port.
- Penelusuran kesalahan jaringan lebih cepat daripada penelusuran kesalahan port serial.
Adaptor jaringan yang didukung
Komputer host: Adaptor jaringan apa pun berfungsi.
Komputer target: Harus menggunakan adaptor jaringan yang didukung. Periksa versi Windows Anda:
- Adaptor yang didukung untuk Windows 11
- Adaptor yang didukung untuk Windows 10
- Adaptor yang didukung untuk Windows 8.1
Menginstal Alat Debugging untuk Windows
Pastikan bahwa Alat Debugging untuk Windows diinstal pada sistem host. Untuk informasi tentang mengunduh dan menginstal alat debugger, lihat Alat Debugger untuk Windows.
Menentukan alamat IP komputer host
Gunakan salah satu prosedur berikut untuk menentukan alamat IP komputer host.
Pada komputer host, buka prompt perintah dan masukkan perintah berikut:
ipconfigCatat alamat IPv4 adaptor jaringan yang ingin Anda gunakan untuk debugging.
Pada komputer target, buka prompt perintah dan masukkan perintah berikut, di mana YourIPAddress adalah alamat IP komputer host:
ping -4 <YourIPAddress>
Pilih port untuk penelusuran kesalahan jaringan
Rentang port yang direkomendasikan: 50000-50039
Anda dapat menggunakan port apa pun dari 49152-65535, tetapi rentang yang direkomendasikan memberikan kompatibilitas terbaik. Debugger menggunakan port ini secara eksklusif, jadi pastikan tidak ada aplikasi lain yang menggunakannya.
Pertimbangan penting
- Firewall perusahaan mungkin membatasi rentang port. Tanyakan kepada administrator jaringan Anda.
- Setiap komputer target membutuhkan port unik (misalnya: 50000, 50001, 50002).
- Komputer host yang berbeda dapat menggunakan kembali rentang port yang sama.
Nota
Kebijakan jaringan perusahaan Anda mungkin membatasi port yang tersedia. Tanyakan kepada administrator jaringan Anda jika Anda mengalami masalah koneksi.
Jika Anda menyambungkan beberapa komputer target ke satu komputer host, setiap koneksi harus memiliki nomor port yang unik. Misalnya, jika Anda menyambungkan 100 komputer target ke satu komputer host, Anda dapat menetapkan port 50000 ke koneksi pertama, port 50001 ke koneksi kedua, dan sebagainya.
Nota
Komputer host yang berbeda dapat menggunakan rentang port yang sama (50000 hingga 50099) untuk menyambungkan ke 100 komputer target lainnya.
Menyiapkan komputer target
Verifikasi bahwa komputer target memiliki adaptor jaringan yang didukung. Untuk informasi selengkapnya, lihat:
Sambungkan adaptor yang didukung ke hub jaringan atau switch jaringan dengan menggunakan kabel jaringan yang sesuai.
Penting
Sebelum menggunakan BCDEdit untuk mengubah informasi boot, Anda mungkin perlu menangguhkan sementara fitur keamanan Windows, seperti BitLocker dan Boot Aman, pada PC pengujian. Aktifkan kembali fitur keamanan ini saat pengujian selesai, dan kelola PC pengujian dengan tepat saat fitur keamanan dinonaktifkan.
Pada prompt perintah tingkat tinggi, masukkan perintah berikut. Ganti w.x.y.z dengan alamat IP komputer host Anda dan n dengan nomor port yang Anda pilih:
bcdedit /debug on bcdedit /dbgsettings net hostip:w.x.y.z port:nContohnya:
bcdedit /debug on bcdedit /dbgsettings net hostip:192.168.1.100 port:50000BCDEdit menampilkan kunci yang dihasilkan secara otomatis. Salin kunci dan simpan di perangkat penyimpanan yang dapat dilepas, seperti USB flash drive. Anda memerlukan kunci saat memulai sesi debug di komputer host.
Gunakan Device Manager untuk menentukan bus PCI, perangkat, nomor perangkat, dan nomor fungsi untuk adaptor yang ingin Anda gunakan untuk debugging. Nilai-nilai ini ditampilkan di Manajer Perangkat di bawah Lokasi
pada tab Umum . Kemudian dalam prompt perintah yang ditingkatkan, masukkan perintah berikut, di mana b ,d , danf adalah nomor bus, nomor perangkat, dan jumlah fungsi adaptor:bcdedit /set "{dbgsettings}" busparams b.d.fPC target di-boot ulang setelah debugger kernel terpasang.
Nota
Jika Anda ingin menginstal peran Hyper-V di komputer target, lihat Menyiapkan debugging jaringan host mesin virtual.
Perhatian
Jika komputer target Anda berada di stasiun docking dan Anda mengaktifkan debugging jaringan untuk adaptor jaringan yang merupakan bagian dari stasiun docking, jangan lepaskan komputer dari stasiun docking. Jika Anda perlu menghapus komputer target dari stasiun docking, nonaktifkan penelusuran kesalahan kernel terlebih dahulu. Untuk menonaktifkan penelusuran kesalahan kernel pada komputer target, buka prompt perintah sebagai administrator dan masukkan perintah bcdedit /debug off. Restart komputer target.
Mulai sesi debugging
Sebelum Anda mulai: Pastikan adaptor jaringan komputer host Anda tersambung ke hub jaringan atau sakelar.
Opsi 1: Gunakan WinDbg (GUI)
- Buka WinDbg di komputer host.
- Pilih File>Kernel Debug.
- Buka tab Net .
- Masukkan nomor port dan kunci Anda.
- Pilih OK.
Opsi 2: Gunakan WinDbg (Baris perintah)
Anda juga dapat memulai sesi dengan WinDbg dengan membuka prompt perintah dan memasukkan perintah berikut, di mana n adalah nomor port Anda dan MyKey adalah kunci yang dihasilkan secara otomatis BCDEdit saat Anda menyiapkan komputer target:
windbg -k net:port=<n>,key=<MyKey>
Jika Anda diminta untuk mengizinkan WinDbg mengakses port melalui firewall, izinkan WinDbg mengakses port untuk ketiga dari berbagai jenis jaringan.
Gunakan KD
Di komputer utama, buka jendela perintah. Masukkan perintah berikut, di mana n adalah nomor port Anda dan MyKey adalah kunci yang dihasilkan BCDEdit secara otomatis saat Anda menyiapkan komputer target:
kd -k net:port=<n>,key=<MyKey>
Jika Anda diminta untuk mengizinkan WinDbg mengakses port melalui firewall, izinkan WinDbg mengakses port untuk ketiga dari berbagai jenis jaringan.
Menghidupkan ulang komputer target
Saat debugger tersambung dan menunggu, mulai ulang komputer target. Salah satu cara untuk menghidupkan ulang PC adalah dengan menggunakan perintah ini dari prompt perintah administrator:
shutdown -r -t 0
Ketika sistem target dimulai ulang, debugger dari OS host tersambung.
Setelah menyambungkan ke target pada host, pilih berhenti pada debugger Anda dan Anda dapat mulai melakukan debugging.
Izinkan debugger melewati firewall
Ketika pertama kali mencoba membuat koneksi untuk penelusuran kesalahan jaringan, Anda mungkin diminta untuk mengizinkan aplikasi penelusuran kesalahan (WinDbg atau KD) mengakses melalui firewall. Versi klien Windows menampilkan perintah, tetapi versi server Windows tidak menampilkan perintah. Tanggapi permintaan dengan mencentang kotak untuk ketiga jenis jaringan: domain, privat, dan publik.
Jika Anda tidak mendapatkan perintah atau jika Anda tidak mencentang kotak ketika perintah tersedia, gunakan Panel Kontrol untuk mengizinkan akses melalui firewall pada PC host tempat debugger berjalan. Buka Control Panel > Sistem dan Keamanan dan pilih Izinkan aplikasi melalui Windows Firewall.
(WindDbg) Dalam daftar aplikasi, temukan proses inti WinDbg (TCP) (semua).
(WinDbg Klasik) Dalam daftar aplikasi, temukan Windows GUI Symbolic Debugger dan Windows Kernel Debugger.
Gunakan kotak centang untuk mengizinkan aplikasi tersebut melalui firewall. Restar aplikasi debugger Anda (WinDbg atau KD).
Kunci enkripsi
Untuk menjaga keamanan komputer target, paket yang melakukan perjalanan antara host dan komputer target harus dienkripsi. Gunakan kunci enkripsi yang dihasilkan secara otomatis (disediakan oleh BCDEdit saat Anda mengonfigurasi komputer target). Kunci enkripsi yang dihasilkan secara otomatis lebih aman dan memberikan nilai unik yang Anda gunakan untuk membuat koneksi ke target tertentu.
Debugging jaringan menggunakan kunci 256-bit yang ditentukan sebagai empat nilai 64-bit, dalam basis 36, dipisahkan oleh titik. Setiap nilai 64-bit ditentukan dengan menggunakan hingga 13 karakter. Karakter yang valid adalah huruf a hingga z dan angka 0 hingga 9. Karakter khusus tidak diperbolehkan.
Untuk menentukan kunci Anda sendiri, buka prompt perintah yang ditingkatkan pada komputer target. Masukkan perintah berikut, di mana w.x.y.z adalah alamat IP komputer host, n adalah nomor port Anda, dan Key adalah kunci Anda:
bcdedit /dbgsettings net hostip:w.x.y.z port:n key:Key
Komputer target perlu di-boot ulang kapan saja Anda mengubah dbgsettings.
Tips pemecahan masalah
Izinkan aplikasi debug melalui firewall
Ketika pertama kali mencoba membuat koneksi untuk penelusuran kesalahan jaringan, Anda mungkin diminta untuk mengizinkan aplikasi penelusuran kesalahan (WinDbg atau KD) mengakses melalui firewall. Versi klien Windows menampilkan perintah, tetapi versi server Windows tidak menampilkan perintah. Tanggapi permintaan dengan mencentang kotak untuk ketiga jenis jaringan: domain, privat, dan publik.
Jika Anda tidak mendapatkan perintah atau jika Anda tidak mencentang kotak saat perintah tersedia, Anda harus menggunakan Panel Kontrol untuk mengizinkan akses melalui firewall. Buka Control Panel > Sistem dan Keamanan dan pilih Izinkan aplikasi melalui Windows Firewall.
(WindDbg) Dalam daftar aplikasi, temukan proses inti WinDbg (TCP) (semua).
(WinDbg (Klasik)) Dalam daftar aplikasi, temukan Windows GUI Symbolic Debugger dan Windows Kernel Debugger.
Gunakan kotak centang untuk mengizinkan aplikasi tersebut melalui firewall. Gulir ke bawah dan pilih OK untuk menyimpan perubahan firewall. Mulai ulang debugger.
Nomor port harus dalam rentang yang diizinkan oleh kebijakan jaringan
Kebijakan jaringan perusahaan Anda mungkin membatasi rentang nomor port yang dapat Anda gunakan untuk penelusuran kesalahan jaringan. Untuk mengetahui apakah kebijakan perusahaan Anda membatasi rentang port untuk penelusuran kesalahan jaringan, tanyakan kepada administrator jaringan Anda. Pada komputer target, buka prompt perintah sebagai administrator dan masukkan perintah bcdedit /dbgsettings. Outputnya mirip dengan contoh berikut:
C:\> bcdedit /dbgsettings
key XXXXXX.XXXXX.XXXXX.XXXXX
debugtype NET
hostip 169.168.1.1
port 50085
dhcp Yes
The operation completed successfully.
Pada output sebelumnya, nilai port adalah 50085. Jika nilai port berada di luar rentang yang diizinkan oleh administrator jaringan Anda, masukkan perintah berikut. Nilai w.x.y.z adalah alamat IP komputer host, dan YourDebugPort adalah nomor port dalam rentang yang diizinkan.
bcdedit /dbgsettings net hostip:w.x.y.z port:YourDebugPort
Setelah mengubah pengaturan debugger komputer target, jalankan ulang debugger pada komputer host dengan pengaturan port baru, lalu boot ulang komputer target.
Menggunakan ping untuk menguji konektivitas
Jika debugger tidak tersambung, gunakan perintah ping pada PC target untuk memverifikasi konektivitas.
C:\>Ping <HostComputerIPAddress>
Nota
Metode ini mungkin tidak berfungsi jika komputer host Anda tidak dikonfigurasi agar dapat ditemukan di jaringan karena firewall mungkin memblokir permintaan ping. Jika firewall memblokir permintaan ping, Anda tidak mendapatkan respons apa pun saat melakukan ping pada host.
Bagaimana debugger mendapatkan alamat IP untuk komputer target
KDNET pada komputer target mencoba menggunakan Dynamic Host Configuration Protocol (DHCP) untuk mendapatkan alamat IP yang dapat di-routing untuk adaptor jaringan yang digunakan untuk debug. Jika KDNET mendapatkan alamat yang ditetapkan DHCP, maka komputer host di mana saja di jaringan dapat men-debug komputer target. Jika KDNET tidak bisa mendapatkan alamat yang ditetapkan DHCP, KDNET menggunakan Alamat IP Privat Otomatis (APIPA) untuk mendapatkan alamat IP tautan lokal. Alamat IP tautan lokal tidak dapat dirutekan, sehingga host dan target tidak dapat menggunakan alamat IP tautan lokal untuk berkomunikasi melalui router. Dalam hal ini, penelusuran kesalahan jaringan berfungsi jika Anda menyambungkan host dan komputer target ke hub jaringan atau sakelar yang sama.
Selalu tentukan busparam saat menyiapkan KDNET pada komputer fisik dengan NIC berbasis PCI
Jika Anda menyiapkan KDNET pada komputer fisik dengan PCI atau NIC berbasis PCIe, selalu tentukan busparam untuk NIC yang ingin Anda gunakan untuk KDNET. Untuk menentukan parameter bus, buka Manajer Perangkat, dan temukan adaptor jaringan yang ingin Anda gunakan untuk penelusuran kesalahan. Buka halaman properti untuk adaptor jaringan dan catat nomor bus, nomor perangkat, dan nomor fungsi yang muncul di bawah Lokasi pada tab Umum . Dalam prompt perintah yang ditingkatkan, masukkan perintah berikut, di mana b, d, dan f adalah nomor bus, perangkat, dan fungsi dalam format desimal:
bcdedit /set "{dbgsettings}" busparams b.d.f
Ketika debugger berjalan pada komputer host dan menunggu untuk terhubung, boot ulang komputer target dengan menggunakan perintah berikut:
shutdown -r -t 0
Menghapus entri BCDEdit secara manual
Anda biasanya tidak perlu menghapus entri BCDEdit secara manual. Namun, Anda dapat menggunakan prosedur ini untuk memecahkan masalah situasi yang tidak biasa.
Anda tidak perlu menghapus entri secara manual saat menggunakan utilitas kdnet. Untuk informasi lebih lanjut, lihat Menyiapkan debugging kernel jaringan KDNET secara otomatis.
Saat Anda menggunakan bcdedit –deletevalue, Anda harus memberikan nama elemen bcd yang valid. Untuk informasi selengkapnya, lihat BCDEdit /deletevalue.
Untuk menghapus entri bcdedit secara manual, selesaikan langkah-langkah berikut:
Pada komputer target, buka jendela prompt perintah dengan hak administrator.
Sebagai contoh, masukkan perintah berikut untuk menghapus entri debugging BCDEdit untuk alamat IP host:
bcdedit -deletevalue {dbgsettings} hostip
Saat menghapus hostip, Anda perlu menentukan target = pada baris perintah debugger.
Sebagai contoh lain, hapus entri port dengan menggunakan perintah berikut:
bcdedit -deletevalue {dbgsettings} port
Saat Anda menghapus entri port, KDNET menggunakan port debugger default terdaftar ICANN 5364.
Menyiapkan Hyper-V
Jika Anda ingin menginstal peran Hyper-V di komputer target, lihat Menyiapkan debugging jaringan host komputer virtual.
Untuk informasi tentang debugging mesin virtual (VM) Hyper-V, lihat Menyiapkan debugging jaringan mesin virtual - KDNET.
Mengaktifkan KDNET pada host Hyper-V yang menjalankan VM dengan konektivitas jaringan eksternal
Terkadang situasi terjadi yang menyebabkan jaringan di VM berhenti berfungsi:
Anda mengaktifkan Hyper-V pada PC, membuat sakelar jaringan eksternal yang menunjuk ke NIC fisik di komputer, dan mengonfigurasi VM untuk menggunakan sakelar eksternal tersebut untuk jaringan mereka.
Anda mengaktifkan KDNET pada OS host Hyper-V dengan menggunakan NIC fisik yang sama dengan yang dituju oleh pengalihan jaringan eksternal. Anda memulai ulang host.
Semua VM yang menggunakan sakelar eksternal yang dikonfigurasi sebelumnya kehilangan konektivitas jaringan mereka setelah boot ulang.
Penghentian ini dirancang. KDNET mengambil kontrol eksklusif atas NIC yang dikonfigurasi untuk digunakan. OS tidak memuat miniport NDIS asli untuk NIC tersebut. Sakelar jaringan eksternal tidak dapat lagi berkomunikasi dengan driver miniport NDIS asli dan berhenti berfungsi. Untuk mengatasi situasi ini, selesaikan langkah-langkah berikut:
Buka Virtual Switch Manager dari Hyper-V Manager, dan pilih Sakelar Virtual yang ada. Ubah NIC jaringan eksternal ke Microsoft Kernel Debug Network Adapter dengan memilihnya dari menu dropdown lalu memilih OK dalam dialog Virtual Switch Manager.
Setelah memperbarui Virtual Switch NIC, matikan dan mulai ulang VM Anda.
Saat Anda menonaktifkan debugging KDNET, ikuti prosedur yang sama untuk mengarahkan kembali sakelar eksternal ke miniport NDIS asli untuk NIC. Jika tidak, konektivitas VM akan hilang saat Anda memulai ulang mesin setelah penelusuran kesalahan dinonaktifkan.
IPv6
Windows versi 1809 menambahkan dukungan untuk IPv6.
Untuk menggunakan IPv6 dengan debugger, selesaikan langkah-langkah berikut:
Ping <debughostname> Anda dan catat alamat IPv6 yang terlihat pada balasan dari baris output. Gunakan alamat IPv6 ini sebagai ganti
x:y:z:p:d:q:r:n.Gunakan BCDEdit untuk menghapus nilai alamat IP yang ada dalam dbgsettings.
bcdedit -deletevalue {dbgsettings} hostipAtur alamat IPv6 host. String
hostipv6=s:t:u:v:w:x:y:ztidak boleh berisi spasi apa pun. < > YourPort adalah nomor port jaringan yang digunakan untuk komputer target ini. < > YourKey adalah kunci keamanan empat bagian. <b.d.f> adalah nomor lokasi fungsi perangkat bus untuk NIC yang ingin Anda gunakan untuk KDNET.bcdedit /dbgsettings net hostipv6:s:t:u:v:w:x:y:z port:<YourPort> key:<YourKey> busparams:<b.d.f>Ketik perintah ini untuk mengonfirmasi bahwa dbgsettings diatur dengan benar.
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.Pada komputer host, gunakan perintah berikut untuk memulai debugger:
Windbg -k net:port=<yournetworkportnumber>,key=<key_output_from_kdnet>,target=::<YourIPv6Address>Ketika debugger berjalan pada komputer host dan menunggu untuk terhubung, boot ulang komputer target.
Debugger terhubung ke debugger host lebih awal selama boot. Anda dapat melihat bahwa KDNET menggunakan koneksi IPv6 karena alamat IP yang dilaporkan dalam pesan yang terhubung adalah alamat IPv6 alih-alih alamat IPv4.
Catatan
- Setiap pengaturan debugger BCD yang memungkinkan Anda menentukan
hostipmemiliki elemenhostipv6yang sesuai. Ada tiga pasangan.
| IPv4 | IPv6 | Penggunaan |
|---|---|---|
| hostip | hostipv6 | Untuk penelusuran kesalahan boot dan kernel |
| targethostip | TargetHostIPv6 | Khusus untuk debugging kernel |
| hypervisorhostip | hypervisorhostipv6 | Untuk penelusuran kesalahan Hyper-V |
Jika Anda mengatur gaya alamat
hostipv6untuk salah satu jenis debug tersebut, Anda mendapatkan IPv6.Jika Anda mengatur
hostipgaya alamat untuk salah satu jenis debugging tersebut, Anda mendapatkan IPv4.Target hanya melakukan IPv4 atau IPv6, bukan keduanya pada saat yang sama. Versi protokol IP yang digunakan dikendalikan oleh dbgsettings pada mesin target. Jika Anda mengatur
hostip, target menggunakan IPv4. Jika Anda mengaturhostipv6, target menggunakan IPv6.Debugger host biasanya secara otomatis memilih penggunaan IPv4 atau IPv6. Secara default, debugger mendengarkan soket IPv4 dan soket IPv6 dan terhubung secara otomatis pada salah satu ke komputer target.
Jika Anda ingin memaksa penggunaan IPv6 di debugger pada host, tetapi Anda ingin debugger mendengarkan koneksi dari target, maka Anda dapat menambahkan
target=::ke baris perintah debugger.::adalah alamat IPv6 0.Jika Anda ingin memaksakan debugging IPv4 di debugger pada host, tetapi Anda ingin debugger mendengarkan koneksi dari target, maka Anda dapat menambahkan
target=0.0.0.0ke baris perintah debugger.0.0.0.0adalah alamat IPv4 0.Jika Anda menentukan
target=pada baris perintah debugger dan menggunakan nama komputer, debugger mengonversi nama komputer tersebut menjadi alamat IPv4 dan alamat IPv6. Debugger kemudian mencoba menyambungkan keduanya.Ketika Anda menentukan
target=pada baris perintah debugger dan menggunakan alamat IP, jika alamat IP berisi karakter : , debugger mengasumsikan itu adalah alamat IPv6, dan memaksa penggunaan IPv6 untuk koneksi tersebut. Jika alamat IP berisi . karakter, debugger mengasumsikan itu adalah alamat IPv4, dan memaksa penggunaan IPv4 untuk koneksi tersebut.Jika Anda menyiapkan IPv6 pada target dan memaksa penggunaan IPv4 di baris perintah debugger, Anda tidak mendapatkan koneksi.
Jika Anda mengatur IPv4 pada target dan memaksa penggunaan IPv6 pada baris perintah debugger, Anda juga tidak akan mendapatkan koneksi.