Yleiskatsaus
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:
| Ominaisuus | Kuvaus |
|---|---|
| Johdonmukainen CSV-rakenne | 18 saraketta, sama järjestys joka kerta, riippumatta siitä, mitä konteksteja lokissa esiintyy |
| Moniriviset merkinnät | PACKET-yksityiskohtablokit ja tapahtumatekstit pysyvät kiinni omassa merkinnässään |
| DNS Server -versiot | 2012 R2:sta vuoteen 2025 lokimuodot |
| PowerShell-versiot | Windows PowerShell 5.1+ ja PowerShell 7.x |
| Tiedostokoko | Testattu yli 100 Mt lokit; yksinkertainen suoratoisto |
| Otsikon validointi | Hylkää tiedostot, jotka eivät ole DNS-debug-lokeja (voi kytkeä pois) |
| Tilastot | Valinnaiset päivittäiset yhteenvedot, kontekstin ja asiakkaan/protokollan/tyypin mukaan |
| Putkituen | Get-ChildItem *.log | Convert-DNSDebugLogFile |
| Pakkaus | Valinnainen ZIP-tulos, tyypillisesti yli 90 % pienempi |
| Lähteen siivous | Valinnainen lokitiedoston poisto onnistuneen ajon jälkeen |
| Kansainväliset lokit | Jäsentää ja kirjoittaa päivämääriä kulttuurin mukaan, joten de-DE-loki voidaan lukea en-US-työasemalla |
| Verkkopolut | Lukee lähteitä SMB/UNC-polkujen kautta |
| Lukitut tiedostot | Lukee lokeja, joita DNS Server (tai joku muu) on parhaillaan avannut |
Aktiivinen loki vs. kierrätetty loki
Moduuli voi lukea lokitiedoston, johon DNS Server kirjoittaa juuri nyt. Tämä on kätevää nopeaan katsaukseen, mutta tiedosto muuttuu koko muunnoksen ajan. Tuloksesta voi puuttua uusimmat merkinnät tai se voi päättyä katkenneeseen merkintään.
Kaikessa aikataulutetussa tai tuotantoon liittyvässä käytössä muunna sen sijaan kierrätetyt, suljetut lokitiedostot, äläkä koskaan yhdistä aktiivista lokia -RemoveSourceFile-parametrin kanssa.
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
- Output Formats — mitä sarakkeet tarkoittavat, oikeiden esimerkkitiedostojen kanssa
- Parameters and Options — säätimet selkokielellä
- Performance — miksi se on nopea ja miten pitää se nopeana
- Integration — Excel, Power BI, SQL, SIEM, Python
- Operational Best Practices — tuotantokäyttö
- Usage Examples — aikataulutetut tehtävät, GPO-jakelut, SQL-analytiikka
- Command Reference — virallinen parametrilista
Lisensointi ja tuki
MIT-lisenssi. Yhteisötuki tapahtuu GitHub Issues -kanavan kautta; virheraportit ja ominaisuuspyynnöt ovat tervetulleita.
- GitHub-repositorio: AndiBellstedt/DNSServer.DebugLogParser
- PowerShell Gallery: DNSServer.DebugLogParser