Зворотний пошук DNS


13

Вранці всі,

Мені було передано домен із записами DNS c.150k у загальній складності 100 тис. Машин. Усі записи DNS знаходяться в одній зоні пошуку вперед на тому самому домені, і просто для користі немає зони зворотного пошуку.

Оскільки "Скасування та старіння" - це не варіант (лише моя доля!), Мені потрібно знайти простий спосіб знищити на собі великі записи.

Найпростішим вихідним моментом для мене було шукати, щоб видалити всі записи, які мають часову позначку старше року (приблизно 2700 записів) - але деякі з них все ще відповідають на ping.

Шанси на це тому, що ми використовуємо DHCP і IP-адреси з тих пір надаються новим хостам.

Зазвичай зон зворотного пошуку стане дуже корисним зараз, щоб я міг шукати декілька реєстрацій для IP-адреси, але, як я вже говорив раніше, його немає.

Хто-небудь знає вгорі голови простий спосіб шукати дублікати? Я розглядав повний експорт до CSV з DNS і почав сортувати та фільтрувати, але для понад 2-х записів я сподівався на щось трохи простіше.

Крім того, з-за шаленого характеру частини набору, який ми запускаємо, просто видалення записів та надання можливості перереєстрації не є можливим!

Думки?

EDIT: не всі машини приєднані до AD, тому порівняння AD / DNS не підлягає сумніву.

EDIT 2: Оновлення в усьому світі, кілька справді хороших пропозицій тут! Я вже розпочав роботу з експорту та comapres в Excel, маю пінг для кожного IP / Host, який триває, увійшовши до тестового файлу, щоб побачити, що є, а чи не реально, і я чекаю схвалення змін для захоплення пакету, щоб почати моніторинг у реальному часі. Ці сценарії також корисні, і хоча я не збираюся використовувати їх у їхньому нинішньому форматі, вони дали мені гарну основу для написання моїх власних речей. Дякую всім!

Відповіді:


8

Якщо ви можете експортувати як CSV, то імпортувати в Excel, тоді ви можете використовувати умовне форматування для створення списку дублікатів?

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


4
Будь ласка, не використовуйте посилання на рішення. Надання рішення у відповіді підтримує відповідь краще, оскільки посилання можуть погіршитись.
Пол

3
Щоб зрозуміти, що говорить @Paul, звичайно, потрібні посилання, але не тільки посилання. Тому зберігайте посилання у відповіді, але додайте те, що написано на його цілі.
glglgl

Справедливо! Зробимо в майбутньому.
Rhys Evans

6

Я б використав nmap, щоб перевірити всі ваші живі хости, які повинні очистити решту мертвих записів для вас. Я б настійно рекомендував перебирати з цього моменту вперед. Хоча це здається веселим :)


Це спрацює, якщо господарі завжди ввімкнуті. Якщо машини також є ноутбуками, то деякі (або багато, залежить від активності) можуть загубитися.
WoJ

4

Ось два сценарії (які майже однакові) - один для пошуку дублікатів IP та один для пошуку дублікатів імен.

#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

Примітки:

  1. Деякі системи (наприклад, балансування навантаження) потребують певних повторюваних записів для належної роботи.

  2. Ви можете додати ім'я комп'ютера та IP за допомогою WMI, підтвердивши таким чином запис.

  3. Записи з позначкою часу 0 є статичними, тобто вони додаються вручну (і, швидше за все, важливі).


2

Можливо, ви можете реєструвати всі запити DNS у реальному житті протягом досить тривалого періоду часу (це насправді може бути кілька місяців, якщо ви хочете зафіксувати цей сценарій статистики один раз на квартал запиту на всі принтери). Потім видаліть усі записи, про які не запитували.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.