Çakışan DNS kayıtlarının kökenini nasıl bulabilirim?
Çakışan DNS kayıtlarının kökenini nasıl bulabilirim?
Yanıtlar:
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.
dig
benim için görünüyordu (aşağıdaki cevaba bakınız)
nslookup -type=soa stackoverflow.com
Bugün linux üzerinde çalıştırırsanız (2019-Şubat), yetkili bölüm boştur.
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_soa
Liu & 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.
www.pressero.com
başka bir site için CNAME olan - dig + short SOA olarak tanımlanan bir site yalnızca CNAME hedefini döndürür.
www.pressero.com
muhtemelen A kayıtlarını düşünüyordunuz ( dig
eğer belirtmezseniz varsayılan kayıt türüdür ). Ancak gerekirse tail -1
, nihai sonucu almak için bir a ekleyin .
dig +short SOA www.pressero.com
. Bu, yalnızca CNAME hedefini döndürür - pressero.com
etki alanı için beklediğim SOA kaydını değil . tail -1
konularda yardımcı olmaz; dig +short SOA
sadece bir satır yayıyor.
Açık * nix:
$ dig -t ns <domain name>
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.
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.
Google'da olmanız gereken terim "kesin" değil, "yetkili" dir.
Linux veya Mac sitesinde komutları kullanabilirsiniz whois
, dig
, host
, nslookup
ya da birkaç diğerleri. nslookup
Windows ü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.
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
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.
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ı?
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.
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
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.
host -t NS analyticsdcs.ccs.mcafee.com.
host -t SOA analyticsdcs.ccs.mcafee.com.
dig +trace analyticsdcs.ccs.mcafee.com. | grep -w 'IN[[:space:]]*NS' | tail -1
host analyticsdcs.ccs.mcafee.com. gtm2.mcafee.com.