Bir alan adı için yetkili ad sunucusunu nasıl bulurum?


317

Çakışan DNS kayıtlarının kökenini nasıl bulabilirim?

Yanıtlar:


413

Belirli bir etki alanı adı için SOA (Yetki Başlangıcı) kaydını isteyeceksiniz ve evrensel olarak kullanılabilen nslookup komut satırı aracını kullanarak bu şekilde başaracaksınız :

command line> nslookup
> set querytype=soa
> stackoverflow.com
Server:         217.30.180.230
Address:        217.30.180.230#53

Non-authoritative answer:
stackoverflow.com
        origin = ns51.domaincontrol.com # ("primary name server" on Windows)
        mail addr = dns.jomax.net       # ("responsible mail addr" on Windows)
        serial = 2008041300
        refresh = 28800
        retry = 7200
        expire = 604800
        minimum = 86400
Authoritative answers can be found from:
stackoverflow.com       nameserver = ns52.domaincontrol.com.
stackoverflow.com       nameserver = ns51.domaincontrol.com.

Köken (veya birincil ad sunucusu hattı, Windows üzerine) söyleyen ns51.domaincontrol ana adı sunucusudur stackoverflow.com .

Çıktının sonunda, verilen etki alanı için yedekleme sunucuları da dahil olmak üzere tüm yetkili sunucular listelenir.


158
nslookup -type = soa stackoverflow.com
Ben Amada

6
Ancak pencerelerin altında "Yetkili yanıtlar" yanıtını göremiyorum. Windows 8 ve Ubuntu 12 yan yana var ve aynı etki alanı için aynı komut Ubuntu düzgün çalışıyor, ancak Windows üzerinde değil.
Mario Awad

1
Bu şovların mutlaka DNS yapılandırmalarında son değişiklikleri göstermediğine dikkat edin, ancak kullanımı digbenim için görünüyordu (aşağıdaki cevaba bakınız)
rogerdpack

6
Yetkili cevap yoksa, ancak yetkili olmayan yanıtın iyi olması ne anlama gelir?
Overmind

6
nslookup -type=soa stackoverflow.comBugün linux üzerinde çalıştırırsanız (2019-Şubat), yetkili bölüm boştur.
simpleuser

174

Sorunuzdaki tekil ifadeyi kullandınız, ancak genellikle birkaç yetkili ad sunucusu vardır, RFC 1034 en az iki tane önerir.

"Yetkili ad sunucusu" değil "birincil ad sunucusu" anlamına gelmedikçe. İkincil ad sunucuları olan yetkili.

Unix'te bir alanın ad sunucularını bulmak için:

  % dig +short NS stackoverflow.com
 ns52.domaincontrol.com.
 ns51.domaincontrol.com.

Birincil olarak listelenen sunucuyu bulmak için ("birincil" kavramı bugünlerde oldukça belirsizdir ve genellikle iyi bir cevabı yoktur):

% dig +short  SOA stackoverflow.com | cut -d' ' -f1
ns51.domaincontrol.com.

Ad sunucuları arasındaki tutarsızlıkları kontrol etmek için tercihim check_soaLiu & Albitz "DNS & BIND" kitabında (O'Reilly editörü) açıklanan eski araca gidiyor . Kaynak kodu http://examples.oreilly.com/dns5/ adresinde bulunabilir.

% check_soa stackoverflow.com
ns51.domaincontrol.com has serial number 2008041300
ns52.domaincontrol.com has serial number 2008041300

Burada, iki yetkili ad sunucusu aynı seri numarasına sahiptir. İyi.


5
dig + short her zaman beklediğim yanıtı vermez. Örneğin, www.pressero.combaşka bir site için CNAME olan - dig + short SOA olarak tanımlanan bir site yalnızca CNAME hedefini döndürür.
Ross Presser

Bir NS'yi nasıl yetkili kılarsınız?
Overmind

1
@ Genel olarak bir NS'yi "yetkili" yapmazsınız. Bir ad sunucusu bazı etki alanları için yetkili olarak yapılandırılırsa, bu etki alanları için yerel olarak bölge dosyalarına (genellikle düz metin dosyalarıdır, ancak farklı şekilde de yapılabilir) sahip olduğu ve bu sorgulara yanıt verdiği anlamına gelir. Yararlı olması için, yetkili oldukları alanların her biri için üst bölgedeki NS kayıtları olarak listelenmeleri gerekir, aksi takdirde kimse bunları varsayılan olarak sorgulamaz.
Patrick Mevzek

@RossPresser cevabı NS / SOA kayıtları hakkında konuşuyordu ve bunu yaptığınızdan şüpheliyim, www.pressero.commuhtemelen A kayıtlarını düşünüyordunuz ( digeğer belirtmezseniz varsayılan kayıt türüdür ). Ancak gerekirse tail -1, nihai sonucu almak için bir a ekleyin .
Patrick Mevzek

@PatrickMevzek Yorumumda belirttiğim gibi kullandım dig +short SOA www.pressero.com. Bu, yalnızca CNAME hedefini döndürür - pressero.cometki alanı için beklediğim SOA kaydını değil . tail -1konularda yardımcı olmaz; dig +short SOAsadece bir satır yayıyor.
Ross Presser

40

Açık * nix:

$ dig -t ns <domain name>

3
IPv4 adresini değil ad sunucularını istedi. Yani (-t) tipi A değil NS olmalıdır
bortzmeyer

1
neden SOA @bortzmeyer yazmıyorsunuz?
Randy L

Uh, çünkü NS sonucu yerine SOA döndürüyor?
tripleee

17

Bu tür soruları cevaplamak için tasarlanmış bir DNS yayma aracım var .

Kaynak AGPLv3 altında yayınlandı.

(Evet, arayüz şu anda oldukça basit :))

"Host" komutuyla bir alanın ad sunucularını da bulabilirsiniz:

[davidp @ supernova: ~] $ ev sahibi -t ns stackoverflow.com
stackoverflow.com ad sunucusu ns51.domaincontrol.com.
stackoverflow.com ad sunucusu ns52.etkialanıcontrol.com.

@cacho Doğru; Şansım olursa, bunu ekleyebilirim.
David Precious

1

8

Ben her zaman + izleme seçeneği eklemek için en iyi yolu buldum:

dig SOA +trace stackoverflow.com

Farklı sağlayıcıda barındırılan özyinelemeli CNAME ile de çalışır. + trace trace, sonuç yalnızca belirttiğiniz alan için geçerlidir.


Not dnsmasq + trace gibi yerel bir NS sunucusu çalıştırıyorsanız hiçbir şey döndürmez ...
Daniel Sokolowski

Bu komut, çoğu rasgele değerler olan 53 satır, 3652 bayt çıkış sağlar. Birisi yetkili ad sunucusunun ne olduğunu belirlemek için çıktıyı nasıl yorumlamalıdır?
theferrit32

Aşağıdan yukarıya okudum. SOA kaydı aradığınız şeydir. SOA'nın daha az veriye sahip olması için grep yapabilirsiniz.
Alex

6

Google'da olmanız gereken terim "kesin" değil, "yetkili" dir.

Linux veya Mac sitesinde komutları kullanabilirsiniz whois, dig, host, nslookupya da birkaç diğerleri. nslookupWindows üzerinde de çalışabilir.

Bir örnek:

$ whois stackoverflow.com
[...]
   Domain servers in listed order:
      NS51.DOMAINCONTROL.COM
      NS52.DOMAINCONTROL.COM

Ekstra kredi gelince: Evet, mümkün.


aryeh kesinlikle yanlıştır, çünkü önerisi genellikle sadece ana bilgisayar adı için IP adresini verecektir. Eğer kullanırsanız dig, bunu gibi NS kayıtları aramak zorunda:

dig ns stackoverflow.com

Bunun yerel DNS sunucunuza sorabileceğini ve dolayısıyla önbelleğinde yanlış veya güncel olmayan yanıtlar verebileceğini unutmayın.


6
Bu komutlar eşdeğer değildir . Hiçbir şey whois tarafından verilen bilgilerin güncel olduğunu söylemez. Çoğu zaman, insanların kayıt defterindeki veya kayıt kuruluşuna bildirimde bulunmadan bölge dosyasındaki NS kayıtlarını güncelleştirmeleri değildir.
bortzmeyer

Asla olduklarını söylemedim;) Üst bölge güncellenmediği sürece, bölgenizdeki NS kayıtlarını istediğiniz gibi değiştirebilirsiniz. Üst bölgenin güncellenmesi genellikle whois verilerinin güncellenmesiyle (en azından sağlayıcılarımla) el ele gider.

5

Alan adının yetkili ad sunucularını ve ortak dns kayıtlarını tek bir istekte veren bir dns arama aracı oluşturduk .

Örnek: https://www.misk.com/tools/#dns/stackoverflow.com

Aracımız, kök ad sunucularına gerçek zamanlı (önbelleğe alınmamış) dns araması yaparak ve sonra yetkili ad sunucularına ulaşıncaya kadar ad sunucusu başvurularını izleyerek yetkili ad sunucularını bulur. Bu, dns çözümleyicilerinin yetkili yanıtlar almak için kullandığı mantıkla aynıdır. Her sorguda birden fazla istek gerçekleştirerek çakışan dns kayıtlarını bulmanıza olanak tanıyan rastgele bir yetkili ad sunucusu seçilir (ve tanımlanır).

Yukarıdaki örnekte dns arama sonuçlarının altındaki "Yetkili Ad Sunucuları" nı tıklayarak ad sunucusu temsilci seçme yolunu da görüntüleyebilirsiniz.

Örnek: https://www.misk.com/tools/#dns/stackoverflow.com@f.root-servers.net


2

Whois hizmetini kullanabilirsiniz. UNIX benzeri bir işletim sisteminde aşağıdaki komutu uygularsınız. Alternatif olarak, http://www.internic.net/whois.html adresinden web'de de yapabilirsiniz .

whois stackoverflow.com

Aşağıdaki yanıtı alırsınız.

... metin kaldırıldı ...

Etki alanı sunucuları listelenen sırada: NS51.DOMAINCONTROL.COM NS52.DOMAINCONTROL.COM

Belirli bir alan adına ilişkin kayıtlar hakkında daha fazla bilgi edinmek için nslookup veya dig komutunu kullanabilirsiniz. Bu, tanımladığınız çakışmaları çözmenize yardımcı olabilir.


2
Hiçbir şey whois tarafından verilen bilgilerin güncel olduğunu söylemez. Çoğu zaman, insanların kayıt defterindeki veya kayıt kuruluşuna bildirimde bulunmadan bölge dosyasındaki NS kayıtlarını güncelleştirmeleri değildir.
bortzmeyer

Bu soruya doğrudan bir cevap olmasa da, "whois" yararlıdır çünkü size bir yerde isim sunucusu olması gerektiğini söyler (şu anda herhangi bir nedenle olmasa bile).
Someoneelse

1

Ne yazık ki, bu araçların çoğu yalnızca gerçek ad sunucusunun kendisi tarafından sağlanan NS kaydını döndürür. Bir alan adından gerçekte hangi ad sunucularının sorumlu olduğunu belirleme konusunda daha doğru olmak için, "whois" kullanmanız ve burada listelenen alanları kontrol etmeniz veya "dig [domain] NS @ [kök adı sunucusu]" kullanmanız ve bunu çalıştırmanız gerekir. ad sunucusu listelerini alana kadar özyinelemeli olarak ...

Keşke THAT sonucu güvenilir ve tutarlı bir biçimde almak için çalıştırabileceğiniz basit bir komut satırı olsaydı, sadece isim sunucusunun kendisinden verilen sonucu değil. Bunun benim için amacı, yönettiğim yaklaşık 330 alan adını sorgulayabilmektir, böylece her bir alanın tam olarak hangi ad sunucusuna işaret ettiğini (kayıt kuruluşu ayarlarına göre) belirleyebilirim.

"Dig" veya "host" kullanan bir komutu veya * nix'te başka bir şey bilen var mı?


2
Basit. Alan adının example.org olduğunu varsayalım. Öncelikle, "dig + short NS org." İle ".org" ad sunucularını bulmanız gerekir. Sonra bunlardan birini sorgulayın (herkes, hepsi yetkili). D0.org.afilias-nst.org'u seçelim. 'Dig @ d0.org.afilias-nst.org NS example.org.' İle sorgulayabilirsiniz.
bortzmeyer

Çözümleyicinin varsayılan olarak etki alanının kendisi tarafından listelenen ad sunucularını döndürmesi iyi bir şeydir. Bu yetkili bilgi. Üst bölgedeki temsilci yetkili DEĞİLDİR.
bortzmeyer

Ve whois'e işaretçi kırmızı bir ringa balığı. Whois ad sunucusu bilgileri genellikle eskidir. Yetkili kaynak DNS'dir.
üçlü

1
Whois tamamen keyfi. Whois listesinde gördüğünüz değerin DNS ile herhangi bir teknik bağı yoktur. Genellikle modası geçmiş ya da yanlış. Whois verilerine neredeyse hiç güvenilmemesi gerektiğini söyleyebilirim. 'İnce' ve 'kalın' kayıtlar vardır. İyi bilinen iki kalın kayıt .com ve .net kayıtlarıdır. Bu kayıtlar tüm DNS verilerini içerir ve whois yanıtlarına güvenilebilir. Neredeyse diğer kayıtlar 'şeydir' ve kendi whois kayıtlarını işletirler. Bu veriler sıklıkla yanlıştır.
Mark

1

SOA kayıtları, etki alanı sahibinin HAYIR denetimi olmadığı hiyerarşinin ötesinde tüm sunucularda bulunur ve bunların tümü etki alanı sahibinin denetimi altındaki bir yetkili ad sunucusuna işaret eder.

Öte yandan, yetkili sunucunun kendisindeki SOA kaydı, söz konusu etki alanını çözmek için kesinlikle gerekli değildir ve sahte bilgi (veya gizli birincil veya başka bir şekilde kısıtlanmış sunucular) içerebilir ve yetkili ad sunucusunu belirlemek için güvenilmemelidir belirli bir alan adı için.

Belirli bir alt etki alanı için güvenilir SOA bilgileri elde etmek için en üst düzey etki alanı için yetkili olan sunucuyu sorgulamanız gerekir .

(Hangi sunucunun TLD'nin kök adı sunucularından sorgulanabileceği hakkında yetkili olan bilgiler).

TLD yetkili sunucusundan SOA hakkında güvenilir bilgilere sahip olduğunuzda, diğer ad kayıtları için birincil ad sunucusunun kendisini (gTLD ad sunucusundaki SOA kaydındaki şu!!) Sorgulayabilir ve ardından tüm denetimlere devam edebilirsiniz. belirli bir kayıt için herhangi bir tutarsızlık olup olmadığını görmek için NS kayıtlarını sorgulamaktan aldığınız ad sunucuları.

Bu, linux ve dig ile nslookup / windows'dan daha iyi / güvenilir çalışır.


0

Kolay bir yol, çevrimiçi bir etki alanı aracı kullanmaktır. Benim favorim Domain Tools (eski adıyla whois.sc). Ancak çakışan DNS kayıtlarını çözüp çözemeyecekleri konusunda emin değilim. Örneğin, stackoverflow.com için DNS sunucuları

  NS51.DOMAINCONTROL.COM
  NS52.DOMAINCONTROL.COM

0

Bazı alan adları için yukarıdaki yanıtların işe yaramadığını tespit ettim. Bulduğum en hızlı yol, önce bir NS kaydı olup olmadığını kontrol etmektir. Bu yoksa, bir SOA kaydı olup olmadığını kontrol edin. Bu yoksa, adı dig kullanarak özyinelemeli olarak çözün ve döndürülen son NS kaydını alın. Buna uyan bir örnekanalyticsdcs.ccs.mcafee.com.

  1. NS kaydı olup olmadığını kontrol edin

host -t NS analyticsdcs.ccs.mcafee.com.

  1. NS bulunamazsa, SOA kaydı olup olmadığını kontrol edin

host -t SOA analyticsdcs.ccs.mcafee.com.

  1. Ne NS ne de SOA, tam özyinelemeli yapın ve iade edilen son NS'yi alın

dig +trace analyticsdcs.ccs.mcafee.com. | grep -w 'IN[[:space:]]*NS' | tail -1

  1. Geri dönen ad sunucusunun çalışıp çalışmadığını test edin

host analyticsdcs.ccs.mcafee.com. gtm2.mcafee.com.

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.