DNS लुकअप उल्टा


13

सभी को सुप्रभात,

मुझे कुल 100k मशीनों के लिए c.150k DNS रिकॉर्ड के साथ एक डोमेन सौंपा गया है। DNS रिकॉर्ड्स एक ही डोमेन पर एक ही फॉरवर्ड लुकअप ज़ोन में हैं और बस सहायक होने के लिए, रिवर्स लुकअप ज़ोन नहीं है।

चूंकि स्कैवेंजिंग और एजिंग एक विकल्प नहीं है (बस मेरी किस्मत!), मुझे बासी रिकॉर्ड के भार को मारने के लिए एक आसान तरीका खोजने की आवश्यकता है।

मेरे लिए सबसे सरल शुरुआती बिंदु उन सभी रिकॉर्डों को हटाना था जो एक टाइमस्टैम्प एक वर्ष (लगभग 2700 रिकॉर्ड) से पुराने हैं - लेकिन उनमें से कुछ अभी भी पिंग का जवाब दे रहे हैं।

ऑड्स यह है क्योंकि हम डीएचसीपी और आईपी का उपयोग करते हैं क्योंकि नए होस्ट्स को दिया गया है।

आम तौर पर एक रिवर्स लुकिंग ज़ोइन अब के बारे में असली काम में आएगा ताकि मैं एक आईपी के लिए कई पंजीकरण देख सकता हूं, लेकिन जैसा कि मैंने पहले कहा था - एक नहीं है।

किसी को भी अपने सिर के ऊपर से डुप्लिकेट देखने के लिए एक सरल तरीका पता है? मैंने DNS से ​​CSV को पूर्ण निर्यात माना है और सॉर्ट करना और फ़िल्टर करना शुरू कर रहा हूं, लेकिन 2k से अधिक रिकॉर्ड के लिए, मुझे कुछ आसान होने की उम्मीद थी।

इसके अलावा, हमारे द्वारा चलाए जा रहे कुछ किट के भद्दे स्वभाव के कारण, केवल रिकॉर्ड हटाना और फिर से पंजीकरण की अनुमति देना एक विकल्प नहीं है!

विचार?

संपादित करें: सभी मशीनें AD से जुड़ी हुई नहीं हैं, इसलिए AD / DNS तुलनात्मक प्रश्न से बाहर है।

संपादित 2: सभी दौर, कुछ बहुत अच्छे सुझाव यहाँ! मैंने एक्सेल में पहले से ही निर्यात और कॉमप्रेस पर काम शुरू कर दिया है, प्रत्येक आईपी / होस्ट के लिए एक पिंग फ़ॉउड है जो टेस्ट फाइल में लॉग इन कर रहा है कि क्या है और यह असली नहीं है और रियल टाइम मॉनिटरिंग शुरू करने के लिए पैकेट कैप्चर के लिए बदलाव की मंजूरी का इंतजार कर रहा है। वे स्क्रिप्ट भी उपयोगी हैं, और जब मैं उन्हें अपने वर्तमान प्रारूप में उपयोग नहीं करने जा रहा हूं, तो उन्होंने मुझे अपने सामान को बेहतर बनाने के लिए एक अच्छा आधार दिया है। सबको धन्यवाद!

जवाबों:


8

यदि आप CSV के रूप में निर्यात कर सकते हैं तो Excel में आयात कर सकते हैं तो आप डुप्लिकेट की सूची बनाने के लिए सशर्त स्वरूपण का उपयोग कर सकते हैं?

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


4
कृपया समाधान के लिए लिंक का उपयोग न करें। उत्तर में समाधान प्रदान करना उत्तर को बेहतर बनाए रखता है क्योंकि लिंक खराब हो सकते हैं।
पॉल

3
@Paul जो कहता है, उसके बारे में स्पष्ट होना, निश्चित रूप से लिंक चाहते हैं, लेकिन लिंक ही नहीं । इसलिए लिंक को उत्तर में रखें, लेकिन उसके लक्ष्य पर जो लिखा गया है उसे जोड़ें।
glglgl

काफी उचित! भविष्य में करेंगे।
राइज इवांस

6

मैं आपके सभी जीवित मेजबानों को सत्यापित करने के लिए नैप का उपयोग करूंगा, जो आपके लिए बाकी के मृत रिकॉर्ड को साफ कर दें। मैं दृढ़ता से आगे इस बिंदु से मैला ढोने की सिफारिश करूंगा। हालांकि मज़ा की तरह लगता है :)


यह काम करेगा यदि मेजबान हमेशा-पर हैं। यदि मशीनें लैपटॉप भी हैं, तो कुछ (या बहुत कुछ, गतिविधि पर निर्भर करता है) खो सकता है।
WoJ

4

यहां दो स्क्रिप्ट्स (जो लगभग समान हैं) - एक डुप्लिकेट आईपी खोजने के लिए और एक डुप्लिकेट नाम खोजने के लिए।

#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. आप WMI का उपयोग करके कंप्यूटर का नाम और आईपी जोड़ सकते हैं, इस प्रकार रिकॉर्ड को सत्यापित कर सकते हैं।

  3. टाइमस्टैम्प 0 के साथ रिकॉर्ड स्थिर हैं, जिसका अर्थ है कि उन्हें मैन्युअल रूप से जोड़ा गया था (और महत्वपूर्ण होने की संभावना है)।


2

हो सकता है कि आप पर्याप्त समय की लंबी अवधि के लिए सभी वास्तविक जीवन के DNS अनुरोधों को लॉग कर सकें (यदि आप उस प्रति-तिमाही-क्वेरी-ऑल-प्रिंटर-पृष्ठ-आँकड़े स्क्रिप्ट को पकड़ना चाहते हैं तो वास्तव में कई महीने हो सकते हैं)। फिर उन सभी रिकॉर्ड को हटा दें जिनके लिए कभी अनुरोध नहीं किया गया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.