DNS-Lookups umkehren

13

Guten Morgen alle,

Ich habe eine Domain mit ca. 150.000 DNS-Einträgen für insgesamt 100.000 Computer erhalten. Die DNS-Einträge befinden sich alle in einer einzelnen Forward-Lookupzone in derselben Domäne. Um nur hilfreich zu sein, gibt es keine Reverse-Lookupzone.

Da Scavenging and Aging keine Option ist (nur mein Glück!), Muss ich einen einfachen Weg finden, um eine Menge veralteter Rekorde abzutöten.

Der einfachste Ausgangspunkt für mich war, alle Datensätze zu löschen, deren Zeitstempel älter als ein Jahr ist (ungefähr 2700 Datensätze) - aber einige von ihnen reagieren immer noch auf Ping.

Dies ist wahrscheinlich darauf zurückzuführen, dass wir DHCP verwenden und die IPs seitdem neuen Hosts zugewiesen wurden.

Normalerweise ist ein Reverse-Lookup-Zoen jetzt sehr praktisch, damit ich nach mehreren Registrierungen für eine IP suchen kann, aber wie ich bereits sagte - es gibt keine.

Kennt jemand eine einfache Möglichkeit, nach Duplikaten zu suchen? Ich habe über einen vollständigen Export von DNS nach CSV nachgedacht und angefangen zu sortieren und zu filtern, aber für über 2.000 Datensätze habe ich mir etwas einfacheres erhofft.

Aufgrund der beschissenen Natur einiger unserer Kits ist es auch nicht möglich, nur die Datensätze zu löschen und eine erneute Registrierung zuzulassen.

Gedanken ?

BEARBEITEN: Nicht alle Computer sind AD-verbunden, daher kommt ein AD / DNS-Vergleich nicht in Frage.

EDIT 2: Upvotes, einige wirklich gute Vorschläge hier! Ich habe bereits begonnen, an Exporten und Kompensationen in Excel zu arbeiten, habe einen Ping für jeden IP / Host in Bearbeitung, der in eine Testdatei protokolliert, um zu sehen, was real ist und was nicht, und warte auf die Genehmigung von Änderungen, damit eine Paketerfassung die Echtzeitüberwachung startet. Diese Skripte sind auch nützlich, und obwohl ich sie nicht in ihrem aktuellen Format verwenden werde, haben sie mir eine gute Grundlage für die Erstellung meiner eigenen Sachen gegeben. Vielen Dank an alle!

Fazer87
quelle

Antworten:

8

Wenn Sie als CSV exportieren und dann in Excel importieren können, können Sie die bedingte Formatierung verwenden, um eine Liste von Duplikaten zu generieren.

http://www.tech-recipes.com/rx/35290/excel-2013-find-duplicate-data-using-conditional-formatting/

Rhys Evans
quelle
4
Bitte verwenden Sie keine Links für Lösungen. Wenn Sie die Lösung in der Antwort angeben, bleibt die Antwort besser erhalten, da Links möglicherweise fehlerhaft sind.
Paul
3
Um deutlich zu machen, was @Paul sagt, sind natürlich Links erwünscht, aber nicht nur Links. Behalten Sie also den Link in der Antwort, aber fügen Sie hinzu, was auf dem Ziel geschrieben steht.
glglgl
Meinetwegen! Wird es in Zukunft tun.
Rhys Evans
6

Ich würde nmap verwenden, um alle Ihre lebenden Hosts zu überprüfen, die den Rest der toten Datensätze für Sie löschen sollten. Ich würde jedoch dringend empfehlen, von diesem Punkt an zu spülen. Klingt nach Spaß :)

Optichip
quelle
Dies würde funktionieren, wenn die Hosts immer eingeschaltet sind. Wenn die Maschinen auch Laptops sind, können einige (oder viele, abhängig von der Aktivität) verloren gehen.
WoJ
4

Hier sind zwei Skripte (die fast identisch sind) - eines zum Auffinden doppelter IP-Adressen und eines zum Auffinden doppelter Namen.

#region Find duplicate name in dns records
$DupNames = Get-WmiObject -ComputerName 'dc2008' `
   -Namespace 'root\MicrosoftDNS' `
   -Class MicrosoftDNS_AType `
   -Filter "ContainerName='yadsarah.org.il'" | Select-Object RecordData, TimeStamp, OwnerName | `
Group-Object OwnerName | Where-Object {$_.Count -gt 1}

$DupNamesArr = @()
foreach ($RecordGroup in $DupNames) {
    foreach ($Record in $RecordGroup.Group) {
        $RecordObj = New-Object System.Object
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'Name' -Value $Record.OwnerName
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'IPAddress' -Value $Record.RecordData
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'TimeStamp' -Value $Record.TimeStamp
        $DupNamesArr += $RecordObj
    }
}
#endregion

#region Find duplicate IP in dns records
$DupIPs = Get-WmiObject -ComputerName 'dc2008' `
   -Namespace 'root\MicrosoftDNS' `
   -Class MicrosoftDNS_AType `
   -Filter "ContainerName='yadsarah.org.il'" | Select-Object RecordData, TimeStamp, OwnerName | `
Group-Object RecordData | ?{$_.Count -gt 1}

$DupIPArr = @()
foreach ($RecordGroup in $DupIPs) {
    foreach ($Record in $RecordGroup.Group) {

        $RecordObj = New-Object System.Object
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'Name' -Value $Record.OwnerName
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'IPAddress' -Value $Record.RecordData
        $RecordObj | Add-Member -MemberType NoteProperty -Name 'TimeStamp' -Value $Record.TimeStamp
        $DupIPArr += $RecordObj
    }
}
#endregion

Anmerkungen:

  1. Einige Systeme (wie der Lastausgleich) erfordern einige doppelte Datensätze, um ordnungsgemäß zu funktionieren.

  2. Sie können den Computernamen und die IP-Adresse mithilfe von WMI hinzufügen und so den Datensatz überprüfen.

  3. Datensätze mit dem Zeitstempel 0 sind statisch, dh sie wurden manuell hinzugefügt (und sind wahrscheinlich wichtiger).

EliadTech
quelle
2

Möglicherweise können Sie alle realen DNS-Anforderungen über einen ausreichend langen Zeitraum protokollieren (dies kann in der Tat mehrere Monate dauern, wenn Sie das Skript für die vierteljährliche Abfrage aller Druckerseitenstatistiken abrufen möchten). Dann löschen Sie alle nie angeforderten Datensätze.

Hagen von Eitzen
quelle