Odwrotne wyszukiwania DNS

13

Dzień dobry wszystkim,

Dostałem domenę z ok. 150 tys. Rekordów DNS dla łącznie 100 tys. Maszyn. Wszystkie rekordy DNS znajdują się w jednej strefie wyszukiwania do przodu w tej samej domenie i dla ułatwienia nie ma strefy wyszukiwania wstecznego.

Ponieważ oczyszczanie i starzenie się nie wchodzi w grę (po prostu moje szczęście!), Muszę znaleźć prosty sposób na zabicie mnóstwa starych nagrań.

Najprostszym punktem wyjścia było dla mnie usunięcie wszystkich rekordów, które mają znacznik czasu starszy niż rok (około 2700 rekordów) - ale niektóre z nich nadal reagują na ping.

Szanse są, ponieważ korzystamy z DHCP i adresy IP zostały odtąd przekazane nowym hostom.

Zwykle przydałaby się teraz funkcja wyszukiwania wstecznego, więc mogłem szukać wielu rejestracji dla adresu IP, ale jak powiedziałem wcześniej - nie ma takiej.

Czy ktoś znał z góry głowę prosty sposób na znalezienie duplikatów? Rozważyłem pełny eksport do CSV z DNS i zacząłem sortować i filtrować, ale dla ponad 2 000 rekordów liczyłem na coś łatwiejszego.

Ponadto, ze względu na kiepski charakter niektórych zestawów, które uruchamiamy, po prostu usunięcie rekordów i umożliwienie ponownej rejestracji nie jest opcją!

Myśli ?

EDYCJA: nie wszystkie komputery są połączone AD, więc porównanie AD / DNS nie wchodzi w rachubę.

EDYCJA 2: Wszystkie głosy poparcia, kilka naprawdę dobrych sugestii tutaj! Rozpocząłem już prace nad eksportem i oprogramowaniem w Excelu, w trakcie sprawdzania ping dla każdego adresu IP / hosta do pliku testowego, aby zobaczyć, co jest i nie jest rzeczywiste, i czekam na zatwierdzenie zmiany dla przechwytywania pakietów, aby rozpocząć monitorowanie w czasie rzeczywistym. Te skrypty są również przydatne i chociaż nie zamierzam ich używać w ich bieżącym formacie, dały mi dobrą podstawę do podłączenia własnych rzeczy. Dziękuję wszystkim!

Fazer87
źródło

Odpowiedzi:

8

Jeśli możesz wyeksportować jako plik CSV, a następnie zaimportować do programu Excel, możesz użyć formatowania warunkowego, aby wygenerować listę duplikatów?

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

Rhys Evans
źródło
4
Nie używaj linków do rozwiązań. Podanie rozwiązania w odpowiedzi lepiej utrzymuje odpowiedź, ponieważ linki mogą się zepsuć.
Paul
3
Aby wyjaśnić, co mówi @Paul, oczywiście potrzebne są linki, ale nie tylko linki. Zachowaj więc link w odpowiedzi, ale dodaj to, co jest napisane na jego celu.
glglgl
Słusznie! Zrobią to w przyszłości.
Rhys Evans,
6

Użyłbym nmap do zweryfikowania wszystkich twoich żywych gospodarzy, którzy powinni usunąć dla ciebie resztki martwych zapisów. Zdecydowanie zaleciłbym jednak zamiatanie od tego momentu. Brzmi fajnie :)

Optichip
źródło
Działałoby to, jeśli hosty są zawsze włączone. Jeśli maszyny są również laptopami, niektóre (lub dużo, zależnie od aktywności) mogą się zgubić.
WoJ,
4

Oto dwa skrypty (które są prawie identyczne) - jeden w celu znalezienia duplikatu adresu IP, a drugi w celu znalezienia duplikatów nazw.

#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

Uwagi:

  1. Niektóre systemy (np. Równoważenie obciążenia) wymagają pewnych zduplikowanych rekordów, aby działać poprawnie.

  2. Możesz dodać nazwę komputera i adres IP za pomocą WMI, w ten sposób weryfikując rekord.

  3. Rekordy ze znacznikiem czasu 0 są statyczne, co oznacza, że ​​zostały dodane ręcznie (i jest bardziej prawdopodobne, że będą ważne).

EliadTech
źródło
2

Być może możesz rejestrować wszystkie rzeczywiste żądania DNS przez wystarczająco długi okres (może to być kilka miesięcy, jeśli chcesz wyłapać ten skrypt statystyk raz na kwartał zapytanie-wszystko-drukarka-strona). Następnie usuń wszystkie rekordy, których nigdy nie żądano.

Hagen von Eitzen
źródło