Belirli bir ad sunucusunu sorgularken `dig` ve` host` arasındaki fark nedir?


11

Bir DNS sağlayıcısı ile işleri doğru şekilde ayarlayıp kuramadığımı doğrulamak için bu komutu kullanıyordum:

host hostname.example.com ns1.example-nameserver.com

Anlayabildiğim kadarıyla, bu cevap ns1.example-nameserver.comaramanızı hostname.example.comve rapor etmenizi ister . Ben bir host-bulunamadı yanıtı alıyordum bu yüzden yanlış yaptım düşündüm. Ancak, kendi ad sunucusu belirtmeden (böylece benim ISS'nin ad sunucusu aramak için izin) doğru yanıtı aldım ( hostnameönemli bir CNAMEise). Bunu kavrayamadım, bu yüzden aradım ve digkomutu buldum :

dig @ns1.example-nameserver.com hostname.example.com

Bildiğim kadarıyla bu hostkomutla aynı şeyi yapar - belirli bir ad sunucusundan bir ana bilgisayar aramak ister. Bu nedenle, bunu bir şekilde farklı yapmaları gerektiği ve ad sunucularını önbelleğe almanın aynı yöntemi kullanması gerektiği sonucuna varıyorum dig.

Sonucum ya doğru ya da yanlış, eğer doğruysa:

Bu iki arama yöntemi arasındaki fark nedir?

Yanlışsa:

Benim DNS hakkında yanlış anlamalar ve nelerdir hostve digbu sonuca götürdü gelmiş komutlar?

Örnek çıktı:

$ host cardiff.tzmchapters.org ns1.livedns.co.uk
Using domain server:
Name: ns1.livedns.co.uk
Address: 213.171.192.250#53
Aliases: 

Host cardiff.tzmchapters.org not found: 3(NXDOMAIN)

$ dig @ns1.livedns.co.uk cardiff.tzmchapters.org

; <<>> DiG 9.8.3-P1 <<>> @ns1.livedns.co.uk cardiff.tzmchapters.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 23620
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;cardiff.tzmchapters.org.   IN  A

;; ANSWER SECTION:
cardiff.tzmchapters.org. 3600   IN  CNAME   ghs.google.com.

;; AUTHORITY SECTION:
google.com.     3600    IN  SOA ns1.livedns.co.uk. admin.google.com. 1354213742 10800 3600 604800 3600

;; Query time: 27 msec
;; SERVER: 213.171.192.250#53(213.171.192.250)
;; WHEN: Mon Apr 22 23:47:05 2013
;; MSG SIZE  rcvd: 128

her iki komut da bu durumda aynı şekilde çalışmalıdır. Her komutun tam çıktısını gösterebilir misiniz?
Renan

İkisine de dikkat edin digve hostraporlayın NXDOMAIN. Bunu digbaşlıkta görebilirsiniz (çıktının 5. boş olmayan satırı) ve hostdaha açıktır. NXDOMAINalan adının mevcut olmadığı anlamına gelir. Yine CNAMEde cevap bölümünde a döndürülür! DNS sunucusunda bir hata olduğuna inanıyorum!
Celada

Bu durumda, her ikisi de aynı sorgu paketini gönderir digve hostgönderir, aynı yanıt paketini alır (zaman damgalarının yanı sıra), ancak farklı şekilde yorumlar mı? Does hostkısa sürede gördüğü gibi kurtarmak NXDOMAIN?
jhabbott

FWIW Belirli bir alt alanda tam tersi bir sorunum var. Bu alt alan üzerinde ana bilgisayar kullanılması, bu alt alanın beklenen bir kurallı ana bilgisayar adına çözümlendiğini gösteren beklenen kaydı sağlar. Ancak, bu belirli alt etki alanında dig kullanırken - Kaydın var olmadığı bir yanıt alıyorum. Ayrıca bir tarayıcı ile bu alt alana gitmek de işe yaramaz. Birden çok kez denedim, yazım hataları, vb kontrol. Komutları açıkça aynı şekilde çalışmaz.
Kullanıcı12345

Yanıtlar:


13

host, digve nslookuphepsi aynı işlevselliğin çoğunu paylaşıyor. Eğer soruyorsanız (belirli bir isim sunucusuna belirli bir DNS sorusunu sormak) digve host(ve gerçekten nslookup) tamamen aynı şekilde davranmak durumundasınız.

DNS sorun giderme için, digçıktı biçimi daha "ham" olduğu için tercih edilir: çıktısında, DNS yanıtındaki 4 alanın tümünü doğrudan gösterir: soru, yanıt, yetki ve ek bölümler (ayrıca başlıktaki bayraklar) ve ayrıca daha fazla seçeneği var. hostdiğer yandan daha kullanıcı dostu bir çıktı biçimine sahiptir.

Komutlardan birinin sahip olduğu ve diğerlerinin sahip olmadığı bir seçeneğe veya birinin çıkardığı ve diğerlerinin vermediği bir bilgiye ihtiyacınız yoksa, bu bir tercih konusuna gelir.


2
Ağ tarafında da aynı şeyi yaparlarsa (asıl sorgu) ana bilgisayar kullanırken nasıl bulunamıyor hostama kullanırken doğru cevap alabilirim dig? Sunucu buna neden olmak için belirli bir ayar (seçim veya kaza ile) kullanılarak yapılandırılmış olsa bile, istekleri ayırt edebilmelidir.
jhabbott

Hayır! Sorunuzda verdiğiniz iki komut eşdeğerdir ve aynı cevabı üretmelidirler! Bunun , ek veya yetki bölümünde bir kayıt değil dig, size gerçek bir cevap verdiğinden emin misiniz ? As Renan anlaşılacağı, bu çıktıyı göstermek için yardımcı olabilir.
Celada

Tamam, bazı örnek çıktılar ekledim. Aynı sonucu evde ve işte de alıyorum. Kullanılacak bir ad sunucusu belirtmediğimde ve ISS'm sorguyu hostişlediğinde iyi çalışıyor. Lütfen kendiniz deneyin ve sonuçları bana bildirin.
jhabbott

Sadece bunu gözden geçirme - ISS sonunda sunucularının doğrudan istemci sorgularına yanıt vermeyecek şekilde yapılandırıldığını, sadece bilgi aktarımları isteyen diğer ad sunucularına yapılandırıldığını söyledi - digsorgu, bir ad sunucusu gibi farklı bir şekilde mi?
jhabbott

1
dig hem normal soruları (AXFR hariç tüm türler) hem de bölge aktarımlarını (AXFR türü) yapabilir, ancak DNS operatörleri genellikle yetkili kölelere bölge aktarımlarını kısıtlar, bu nedenle büyük olasılıkla düzenli sorular kullanmak istersiniz
Celada

0

Eğer FQDN olmayan makine adını kullanarak iseniz, sonuçlar farklı çünkü olabilir hostarama alanlarını kullanacak resolv.confoysa digvarsayılan olarak sahip değildir.

Kullanmak (veya eklemek ) +searchistiyorsanız digseçeneği kullanmanız resolv.confgerekir ~/.digrc.

Örneğin:

$ host foo
foo.myfqdn.com has address 10.1.2.3

$ dig +short foo
# (no result)

$ dig +short +search foo
10.1.2.3
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.