Ters DNS Aramaları


13

Herkese günaydın,

Toplam 100 bin makine için c.150k DNS kayıtlarına sahip bir alan adı verildi. DNS kayıtlarının tümü aynı etki alanında tek bir ileriye doğru arama bölgesinde yer alır ve yalnızca yardımcı olması için geriye doğru arama bölgesi yoktur.

Atma ve Yaşlanma bir seçenek olmadığından (sadece şansım!), Bir sürü eski kayıtları öldürmek için kolay bir yol bulmam gerekiyor.

Benim için en basit başlangıç ​​noktası, zaman damgası bir yıldan daha eski olan (yaklaşık 2700 kayıt) tüm kayıtları silmekti - ancak bazıları hala ping'e yanıt veriyor.

Oranlar, DHCP kullandığımız ve IP'lerin o zamandan beri yeni ana bilgisayarlara verildiği için.

Normalde bir ters arama zoen şu anda gerçekten kullanışlı olurdu, böylece bir IP için birden fazla kayıt arayabilirdim, ama daha önce söylediğim gibi - biri yok.

Herkes kafasını üst yinelenen aramak için basit bir yol biliyor mu? DNS'den CSV'ye tam bir dışa aktarmayı düşündüm ve sıralamaya ve filtrelemeye başladım, ancak 2k'dan fazla kayıt için biraz daha kolay bir şey umuyordum.

Ayrıca, çalıştırdığımız kitin bazılarının berbat doğası nedeniyle, sadece kayıtları silmek ve yeniden kaydın gerçekleşmesine izin vermek bir seçenek değildir!

Düşünceler?

EDIT: tüm makineler AD birleştirilmez, bu nedenle bir AD / DNS karşılaştırması söz konusu değildir.

EDIT 2: Tüm turları oylar, burada gerçekten iyi öneriler! Zaten Excel'de ihracat ve comapres üzerinde çalışmaya başladım, her IP / Ana Bilgisayar için bir ping var ve gerçek olanı ve gerçek olmayanı görmek için bir test dosyasına giriş yapıyor ve gerçek zamanlı izlemeyi başlatmak için bir paket yakalama için değişiklik onayını bekliyorum. Bu komut dosyaları da yararlıdır ve bunları şu anki biçimlerinde kullanmayacağım, ancak bana kendi şeylerimi yazmak için iyi bir temel verdiler. Herkese teşekkürler!

Yanıtlar:


8

CSV olarak dışa aktarabilir ve Excel'e içe aktarabilirseniz, kopyaların bir listesini oluşturmak için koşullu biçimlendirmeyi kullanabilirsiniz?

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


4
Lütfen çözümler için bağlantılar kullanmayın. Yanıtta çözüm sağlamak, cevabı daha iyi korur çünkü bağlantılar kötüleşebilir.
Paul

3
@Paul'un söyledikleri hakkında net olmak için, elbette bağlantılar istenir, sadece bağlantılar değil . Bu yüzden bağlantıyı yanıtta tutun, ancak hedefine yazılanları ekleyin.
glglgl

Yeterince adil! Gelecekte yapacak.
Rhys Evans

6

Ben sizin için ölü kayıtları geri kalan tüm canlı ana doğrulamak için nmap kullanabilirsiniz. Şiddetle bu noktadan ileri atmayı şiddetle tavsiye ediyorum. Kulağa eğlenceli geliyor :)


Ana bilgisayarlar her zaman açıksa, bu işe yarayacaktır. Makineler de dizüstü bilgisayarsa, bazı (veya çok, aktiviteye bağlı olarak) kaybolabilir.
WoJ

4

Biri yinelenen IP'yi ve diğeri yinelenen adları bulmak için iki komut dosyası (neredeyse aynı).

#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

Notlar:

  1. Bazı sistemler (yük dengeleme gibi) düzgün çalışması için bazı yinelenen kayıtlar gerektirir.

  2. WMI kullanarak bilgisayar adını ve IP'sini ekleyerek kaydı doğrulayabilirsiniz.

  3. Zaman damgası 0 olan kayıtlar statiktir, yani manuel olarak eklendiler (ve önemli olmaları daha olasıdır).


2

Belki de tüm gerçek hayattaki DNS isteklerini yeterince uzun bir süre için kaydedebilirsiniz (bu, çeyrek başına bir kez sorgulama-tüm-yazıcı-sayfa-istatistik komut dosyasını yakalamak istiyorsanız aslında birkaç ay olabilir). Ardından, hiç istenmeyen tüm kayıtları silin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.