Назад | Перейти на главную страницу

Обратный поиск DNS

Доброе утро,

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

Поскольку очистка и старение не подходят (просто мне повезло!), Мне нужно найти простой способ избавиться от кучи устаревших записей.

Простейшей отправной точкой для меня было удаление всех записей с отметкой времени старше года (примерно 2700 записей), но некоторые из них все еще отвечают на пинг.

Скорее всего, это связано с тем, что мы используем DHCP, и с тех пор IP-адреса были предоставлены новым хостам.

Обычно zoen обратного просмотра действительно пригодился бы сейчас, чтобы я мог искать несколько регистраций для IP, но, как я сказал ранее, его нет.

Кто-нибудь знает, что такое простой способ поиска дубликатов? Я подумал о полном экспорте в CSV из DNS и начал сортировку и фильтрацию, но для более 2k записей я надеялся на что-то более простое.

Кроме того, из-за дрянной природы некоторых комплектов, которые мы запускаем, просто удалить записи и разрешить повторную регистрацию не вариант!

Мысли?

РЕДАКТИРОВАТЬ: не все машины присоединены к AD, поэтому о сравнении AD / DNS не может быть и речи.

РЕДАКТИРОВАТЬ 2: Голосование за все, здесь есть действительно хорошие предложения! Я уже начал работу над экспортом и сравнением в Excel, имел пинг для каждого IP / хоста в процессе записи в тестовый файл, чтобы узнать, что является, а что нет, и я жду утверждения изменений для захвата пакетов, чтобы начать мониторинг в реальном времени. Эти скрипты также полезны, и хотя я не собираюсь использовать их в их текущем формате, они дали мне хорошую основу для написания моих собственных материалов. Спасибо всем!

Если вы можете экспортировать как CSV, а затем импортировать в Excel, тогда вы можете использовать условное форматирование для создания списка дубликатов?

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

Я бы использовал nmap для проверки всех ваших живых хостов, которые должны очистить для вас остальные мертвые записи. С этого момента я настоятельно рекомендую заняться мусором. Хотя звучит весело :)

Вот два скрипта (которые почти идентичны) - один для поиска повторяющихся 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 статичны, то есть были добавлены вручную (и, скорее всего, важны).

Возможно, вы сможете регистрировать все реальные DNS-запросы в течение достаточно длительного периода времени (на самом деле это может быть несколько месяцев, если вы хотите поймать этот скрипт статистики один раз в квартал query-all-printer-page-statistics). Затем удалите все записи, которые никогда не запрашивались.