Yleiskatsaus

Mitä DNSServer.DebugLogParser tekee, miltä Windowsin DNS-debug-loki näyttää ja milloin sen muuntaminen CSV-muotoon on vaivan arvoista.

For AI agents: a documentation index is available at /llms.txt; a markdown version of this page is available at /fi/docs/01-overview/index.md.

Windows DNS Server voi kirjoittaa debug-lokin. Se on tavallinen tekstimuotoinen tiedosto, joka on tarkoitettu ihmisen luettavaksi, ja se kasvaa satoja megatavuja päivässä vilkkaalla toimialueen ohjaimella. Tämä yhdistelmä tekee siitä lähes käyttökelvottoman heti, kun haluat vastata kysymykseen kuten “mikä asiakas kysyi tätä domainia 40 000 kertaa viime yönä?”

DNSServer.DebugLogParser muuttaa tuon tekstimuotoisen tiedoston CSV-taulukoksi. Yksi lokirivi muuttuu yhdeksi riviksi nimetyillä sarakkeilla, joten voit avata sen Excelissä, ladata Power BI:hin, lisätä massana SQL Serveriin tai lähettää SIEM-järjestelmääsi.

Moduulissa on yksi komento:

Convert-DNSDebugLogFile -InputFile "C:\Windows\System32\dns\dns.log"

Tämä on koko sisäänkäynti. Kaikki muu tällä sivustolla käsittelee sen tekemistä laajassa mittakaavassa, aikataulutetusti ja useilla palvelimilla.

Miltä DNS-debug-loki näyttää

Raaka merkintä on yksittäinen rivi, jossa on paikkaan sidottuja kenttiä, osa niistä hakasuluissa:

2026-01-20 23:00:16 0FE0 PACKET 000002C53117D990 UDP Rcv 10.0.0.2 c049 Q [0001 D NOERROR] A (3)odc(9)officeapps(4)live(3)com(0)

Muunnettuna sama tapahtuma on CSV-rivi, jota voi suodattaa ja lajitella:

DateTime;ThreadId;Context;PacketId;Protocol;Direction;ClientIP;Xid;Type;Opcode;FlagsHex;FlagsChar;ResponseCode;QuestionType;QuestionName;Information;Details;ComputerName
2026-01-20 23:00:16;0FE0;Packet;000002C53117D990;UDP;Rcv;10.0.0.2;c049;Query;Standard;0001;RecursionDesired;NOERROR;A;"odc.officeapps.live.com";"";"";dc01

Huomaa kaksi asiaa, jotka raakamuoto tekee vaikeaksi, mutta parseri hoitaa puolestasi:

  • Kysytty nimi on tallennettu DNS:n lankamuodossa, (3)odc(9)officeapps(4)live(3)com(0), ja siitä tulee normaali FQDN.
  • Yksi tapahtuma ei aina ole yksi rivi. PACKET-yksityiskohtablokit ja tapahtumaviestit jatkuvat sisennetyillä jatkoriveillä. Parseri pitää ne kiinni siihen merkintään, johon ne kuuluvat, sen sijaan että pudottaisi ne tai loisi orpoja rivejä.

Jokaisessa merkinnässä on jopa 16 alkuperäistä kenttää — aikaleima, protokolla, suunta, asiakas-IP, kyselytyyppi, kysytty nimi, vastauskoodi, liput ja muuta. Koko sarakeluettelo on kuvattu Output Formats-sivulla.

Miksi vaivautua muuntamaan

Vianetsintä

  • Selvitä, miksi nimi ei ratkea ja ylipäätään pääsikö kysely palvelimelle
  • Tunnista väärin konfiguroidut asiakkaat tai sovellukset, jotka kuormittavat palvelinta
  • Jäljitä, mistä ongelmallinen kysely oikeasti tulee
  • Varmista vyöhykkeiden siirrot ja yleinen DNS-käyttäytyminen

Suorituskyky ja kapasiteetti

  • Lajittele asiakkaat kyselymäärän mukaan ja löydä meluisimmat
  • Näe, mitkä tietue-tyypit hallitsevat liikennettäsi
  • Havaitse konfiguraatiovirheet, jotka aiheuttavat vältettäviä hakuja
  • Seuraa palvelimen kuormitusta ajan kuluessa arvaamisen sijaan

Turvallisuusanalyysi

  • Havaitse DNS-tunneloiminen ja tiedon ulosvirtaus (yleensä näkyy liiallisena TXT-liikenteenä — katso SQL Server -analyysiesimerkki)
  • Löydä haut haittaohjelmien ja komentokontrollidomainien suuntaan
  • Tunnista kompromettoituneen isännän kyselykuviot
  • Tarkkaile DNS-vahvistusväärinkäytöksiä
  • Rakenna uudelleen, mitä tapahtui tapauksen aikana

Säännösten noudattaminen ja auditointi

  • Täytä lokitus- ja säilytysvelvoitteet
  • Pidä kirjaa verkon toiminnasta
  • Laadi raportteja johdolle tai tarkastajille

Miten moduuli toimii

Convert-DNSDebugLogFile lukee lokin virtana ja kirjoittaa CSV:n virtana. Tiedostoa ei koskaan ladata kokonaan muistiin, joten 100 Mt loki vie suunnilleen saman verran muistia kuin 10 Mt. Yksityiskohdat löytyvät Performance-sivulta.

Mitä se tarjoaa:

OminaisuusKuvaus
Johdonmukainen CSV-rakenne18 saraketta, sama järjestys joka kerta, riippumatta siitä, mitä konteksteja lokissa esiintyy
Moniriviset merkinnätPACKET-yksityiskohtablokit ja tapahtumatekstit pysyvät kiinni omassa merkinnässään
DNS Server -versiot2012 R2:sta vuoteen 2025 lokimuodot
PowerShell-versiotWindows PowerShell 5.1+ ja PowerShell 7.x
TiedostokokoTestattu yli 100 Mt lokit; yksinkertainen suoratoisto
Otsikon validointiHylkää tiedostot, jotka eivät ole DNS-debug-lokeja (voi kytkeä pois)
TilastotValinnaiset päivittäiset yhteenvedot, kontekstin ja asiakkaan/protokollan/tyypin mukaan
PutkituenGet-ChildItem *.log | Convert-DNSDebugLogFile
PakkausValinnainen ZIP-tulos, tyypillisesti yli 90 % pienempi
Lähteen siivousValinnainen lokitiedoston poisto onnistuneen ajon jälkeen
Kansainväliset lokitJäsentää ja kirjoittaa päivämääriä kulttuurin mukaan, joten de-DE-loki voidaan lukea en-US-työasemalla
VerkkopolutLukee lähteitä SMB/UNC-polkujen kautta
Lukitut tiedostotLukee lokeja, joita DNS Server (tai joku muu) on parhaillaan avannut

Aktiivinen loki vs. kierrätetty loki

Käytännön malli on ottaa DNS-palvelimella käyttöön lokin kierrätys ja antaa aikataulutetun muunnoksen ohittaa uusin tiedosto:

Get-ChildItem "C:\Administration\Logs\DNSServer\*.log" |
    Sort-Object LastWriteTime -Descending |
    Select-Object -Skip 1 |
    Convert-DNSDebugLogFile -ComputerName $env:COMPUTERNAME

Täydellinen ryhmäkäytäntöön perustuva toteutus on dokumentoitu GPO-driven collection example-sivulla.

Minne mennä seuraavaksi

Lisensointi ja tuki

MIT-lisenssi. Yhteisötuki tapahtuu GitHub Issues -kanavan kautta; virheraportit ja ominaisuuspyynnöt ovat tervetulleita.