Korzystałem z tego polecenia, aby sprawdzić, czy poprawnie skonfiguruję ustawienia u dostawcy DNS:
host hostname.example.com ns1.example-nameserver.com
O ile mi wiadomo, prosi o to, ns1.example-nameserver.com
aby spojrzeć w górę hostname.example.com
i podać odpowiedź. Otrzymałem odpowiedź „nie znaleziono gospodarza”, więc pomyślałem, że zrobiłem to źle. Jednakże, bez określania ich nazwa-serwera (dzięki czemu nazwa-serwera mojego ISP to sprawdzić) Mam poprawną odpowiedź ( hostname
to CNAME
jeśli ma to znaczenie). Nie mogłem tego pojąć, więc rozejrzałem się i znalazłem dig
polecenie:
dig @ns1.example-nameserver.com hostname.example.com
O ile mogę to stwierdzić, robi to samo co host
polecenie - prosi określony serwer nazw, aby szukał hosta. W związku z tym dochodzę do wniosku, że muszą to zrobić inaczej, a buforowanie serwerów nazw musi korzystać z tej samej metody co dig
.
Mój wniosek jest słuszny lub zły, jeśli jest słuszny:
Jaka jest różnica między tymi dwiema metodami wyszukiwania?
Jeśli jest źle:
Jakie są moje nieporozumienia dotyczące DNS i poleceń host
oraz dig
, które doprowadziły mnie do tego wniosku?
Przykładowe dane wyjściowe:
$ 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
źródło
dig
ihost
zgłośNXDOMAIN
. Zedig
można go zobaczyć w nagłówku (5 niepusty wiersz wyjścia) ihost
jest to bardziej oczywiste.NXDOMAIN
oznacza, że domena nie istnieje. JednakCNAME
w sekcji odpowiedzi zwracane jest a ! Wierzę, że to błąd w serwerze DNS!dig
ihost
jak wysłać dokładnie ten sam pakiet kwerendy uzyskać dokładnie ten sam pakiet odpowiedzi (oprócz ewentualnych znaczników czasu), ale interpretuje to inaczej? Czyhost
ratuje się, gdy tylko zobaczyNXDOMAIN
?Odpowiedzi:
host
,dig
inslookup
wszystkie mają tę samą funkcjonalność. W przypadku, gdy pytasz (zadajesz konkretne pytanie DNS do konkretnego serwera nazw)dig
ihost
(i rzeczywiścienslookup
) zachowujesz się dokładnie tak samo.W przypadku rozwiązywania problemów z DNS
dig
jest preferowany, ponieważ jego format wyjściowy jest bardziej „surowy”: w danych wyjściowych bezpośrednio pokazuje zawartość wszystkich 4 pól w odpowiedzi DNS: pytanie, odpowiedź, uprawnienia i dodatkowe sekcje (plus flagi w nagłówku) , a także ma więcej opcji.host
z drugiej strony ma bardziej przyjazny format wyjściowy.Jeśli nie potrzebujesz opcji, którą ma jedno z poleceń, a inne nie, lub informacji, którą jedno z nich wysyła, a inne nie, to sprowadza się to do preferencji.
źródło
host
ale poprawna odpowiedź podczas używaniadig
? Nawet jeśli serwer jest skonfigurowany przy użyciu określonego ustawienia (z wyboru lub przez przypadek), aby to spowodować, musi być w stanie rozróżnić żądania.dig
dałeś ci prawdziwą odpowiedź, a nie zapis w dodatkowej lub autorytatywnej sekcji? Jak sugeruje Renan , pomocne może być pokazanie wyników.host
działa dobrze. Spróbuj sam i daj mi znać wyniki.dig
zapytanie jest w inny sposób, jak zrobiłby to serwer nazw?Jeśli używasz nazwy hosta innej niż FQDN, wyniki mogą być inne, ponieważ
host
będą używać domen wyszukiwania wresolv.conf
,dig
ale domyślnie nie.Musisz użyć tej
+search
opcji, jeśli chceszdig
użyćresolv.conf
(lub dodać do~/.digrc
).Na przykład:
źródło