Recherches DNS inversées

13

Bonjour à tous,

J'ai reçu un domaine contenant environ 150 000 enregistrements DNS pour un total de 100 000 machines. Les enregistrements DNS sont tous dans une seule zone de recherche directe sur le même domaine et juste pour être utile, il n'y a pas de zone de recherche inversée.

Étant donné que le nettoyage et le vieillissement ne sont pas une option (juste ma chance!), Je dois trouver un moyen facile de tuer une charge d'enregistrements périmés.

Le point de départ le plus simple pour moi a été de chercher à supprimer tous les enregistrements qui ont un horodatage de plus d'un an (environ 2700 enregistrements) - mais certains d'entre eux répondent toujours au ping.

Il y a de fortes chances que ce soit parce que nous utilisons DHCP et que les adresses IP ont depuis été attribuées à de nouveaux hôtes.

Normalement, une recherche inversée zoen serait très utile maintenant pour que je puisse rechercher plusieurs enregistrements pour une adresse IP, mais comme je l'ai déjà dit - il n'y en a pas.

Quelqu'un connaît du haut de votre tête un moyen simple de rechercher des doublons? J'ai envisagé une exportation complète vers CSV à partir du DNS et j'ai commencé à trier et filtrer, mais pour plus de 2 000 enregistrements, j'espérais quelque chose d'un peu plus facile.

De plus, en raison de la nature merdique de certains des kits que nous utilisons, il ne suffit pas de supprimer les enregistrements et de permettre une réinscription!

Pensées ?

EDIT: toutes les machines ne sont pas jointes à AD, donc une comparaison AD / DNS est hors de question.

EDIT 2: Upvotes all round, quelques très bonnes suggestions ici! J'ai déjà commencé à travailler sur les exportations et les comapres dans Excel, j'ai un ping pour chaque IP / hôte en cours de journalisation dans un fichier de test pour voir ce qui est et n'est pas réel et j'attends l'approbation de modification pour une capture de paquets pour démarrer la surveillance en temps réel. Ces scripts sont également utiles, et même si je ne vais pas les utiliser dans leur format actuel, ils m'ont donné une bonne base pour câbler mes propres trucs. Merci tout le monde!

Fazer87
la source

Réponses:

8

Si vous pouvez exporter au format CSV puis importer dans Excel, vous pouvez utiliser la mise en forme conditionnelle pour générer une liste de doublons?

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

Rhys Evans
la source
4
Veuillez ne pas utiliser de liens pour les solutions. Fournir la solution dans la réponse maintient mieux la réponse car les liens peuvent mal tourner.
Paul
3
Pour être clair sur ce que dit @Paul, bien sûr, des liens sont recherchés, mais pas seulement des liens. Gardez donc le lien dans la réponse, mais ajoutez ce qui est écrit sur sa cible.
glglgl
C'est suffisant! Devra faire à l'avenir.
Rhys Evans
6

J'utiliserais nmap pour vérifier tous vos hôtes vivants qui devraient effacer le reste des enregistrements morts pour vous. Je recommanderais fortement de nettoyer à partir de ce point. Cela semble amusant, cependant :)

Optichip
la source
Cela fonctionnerait si les hôtes étaient toujours allumés. Si les machines sont également des ordinateurs portables, certains (ou beaucoup, selon l'activité) peuvent se perdre.
WoJ
4

Voici deux scripts (qui sont presque identiques) - un pour trouver une adresse IP en double et un pour trouver des noms en double.

#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

Remarques:

  1. Certains systèmes (comme l'équilibrage de charge) nécessitent des enregistrements en double pour fonctionner correctement.

  2. Vous pouvez ajouter le nom et l'adresse IP de l'ordinateur à l'aide de WMI, vérifiant ainsi l'enregistrement.

  3. Les enregistrements avec horodatage 0 sont statiques, ce qui signifie qu'ils ont été ajoutés manuellement (et sont plus susceptibles d'être importants).

EliadTech
la source
2

Vous pouvez peut-être enregistrer toutes les demandes DNS réelles pendant une période suffisamment longue (cela peut en fait durer plusieurs mois si vous voulez intercepter ce script de statistiques de requête toutes les imprimantes une fois par trimestre). Supprimez ensuite tous les enregistrements jamais demandés.

Hagen von Eitzen
la source