Belirli bir sunucuya işaret eden tüm CNAME girdilerini bulmak için dahili DNS girişlerimizi sorgulamanın bir yolu var mı?
Düzenleme: Biz bir Windows ortamıyız, Server 2003.
Belirli bir sunucuya işaret eden tüm CNAME girdilerini bulmak için dahili DNS girişlerimizi sorgulamanın bir yolu var mı?
Düzenleme: Biz bir Windows ortamıyız, Server 2003.
Yanıtlar:
Ortamınızın ne olduğunu belirtmediniz, ancak Unix kullanıyorsanız dig ve grep kombinasyonunun çalışması gerektiğini düşünüyorum. ns.example.com
ad sunucunuzun ana bilgisayar adı olmalı, ana example.com
makinenizin parçası olduğu alan adı ve HOST, tüm CNAME kayıtlarını bulmak istediğiniz ana makinedir. Bu aslında grep komutunda tam anlamıyla değil bir sekme karakteri <TAB>
(grep dizesini ayarlamanız gerekebilir).
Ayrıca ad sunucunuzun, ayrıntıların uygulamaya bağlı olacağı bölge aktarımlarına izin verecek şekilde yapılandırılması gerekir.
dig @ns.example.com example.com axfr |grep 'CNAME<tab>HOST$'
Veya Windows'taysanız nslookup'ı kullanabilirsiniz :
C:\> nslookup
> name ns.example.com
> ls -a example.com FILE
Tüm etki alanı için kayıtların Bunun günümüze çıktı example.com
o ns.example.com
DOSYA "bilir". Daha sonra, karşılık gelen CNAMES'i arayan metin dosyası içinde sıralamak istediğiniz herhangi bir aracı kullanabilirsiniz.
Veya bu test edilmemiş (ama görünüşte doğru görünümlü) perl betiği ile :
#!/usr/bin/perl
use Net::DNS;
($target, $zone) = @ARGV;
$res = new Net::DNS::Resolver;
foreach $rr ($res->axfr($zone)) {
print $rr->name."\n" if (($rr->type eq "CNAME") && ($rr->rdatastr eq $target."."));
}
Tamlık için birkaç nokta:
DNS yapılandırmanıza erişiminiz varsa, bu verileri keşfetmek oldukça önemlidir. Ancak, herkes sunucunuza işaret eden bir CNAME'ye sahip olabilir. Bunları izleyemezsiniz.
@Wombie'nin işaret ettiği gibi CNAMES için geriye doğru arama yapamazsınız. CNAMES için PTR eşdeğeri yoktur ve mümkün olduğu yerlerde bile sadece bazı kayıtlar vardır. Rastgele alan seçiminin hızlı bir şekilde kontrol edilmesi, PTR kayıtlarının genellikle A kaydına işaret etmediğini gösterir. Benzer şekilde, rasgele adresler için PTR kayıtlarının geriye doğru aranması genellikle karşılık gelen A kaydını bulamaz.
DÜZENLEME: CNAME'ler, bir sisteme diğer ad vermenin tek yolu değildir. DNS, birden fazla A kaydının aynı adresi göstermesine izin verir. İşlevsel olarak bu bir CNAME eklemekle aynıdır, ancak yöntem farklıdır. Aynı sorunlar alan adınızın dışında da geçerlidir. Çeşitli A kayıtlarını aramak için söz konusu sistemin IP adreslerini arayabilirsiniz.
powershell kullanın:
Microsoft DNS Sunucunuzdaki Primaryname'i kontrol edin:
Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Sınıf MicrosoftDNS_AType -Filter "IPAddress = 'xx.xx.xx.xx (IP)'" -BilgisayarAdı mydnsservername
Microsoft DNS sunucunuzdan o ana bilgisayarın tüm adlarını alın:
Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Sınıf MicrosoftDNS_CNAMEType -Filter "primaryname = 'nokta ile sonlandırılan ilk sorgudan primaryname.'" -BilgisayarAdı mydnsservername | kendi adı, primaryname seçin
dnscmd
için, bölge verilerini dışa aktarmak için kullanın :dnscmd a.ns.example.com / zoneexport bölgesi.example.com bu bölge için bazı dosya adı
CNAME
, hedef etki alanı adına işaret eden kaynak kayıtlarını arayın .