名前解決の観点からpingとnslookupの違いは何ですか?

名前解決の観点からpingとnslookupの違いは何ですか?

ホスト名をIPアドレスに解決するときの動作の違いを理解したいと思いますnslookupping私の端末のこの部分は私の混乱を要約します。

lllamnyp@lllamnyp:~/.ssh$ cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.221.131
nameserver 127.0.0.53

lllamnyp@lllamnyp:~/.ssh$ nslookup ingress-vpn.do.company.com
;; Got recursion not available from 192.168.221.131, trying next server
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find ingress-vpn.do.company.com: NXDOMAIN

lllamnyp@lllamnyp:~/.ssh$ nslookup ingress-vpn.do.company.com 192.168.221.131
Server:     192.168.221.131
Address:    192.168.221.131#53

Name:   ingress-vpn.do.company.com
Address: 192.168.234.130

lllamnyp@lllamnyp:~/.ssh$ ping ingress-vpn.do.company.com
PING ingress-vpn.do.company.com (192.168.234.130) 56(84) bytes of data.
^C
--- ingress-vpn.do.company.com ping statistics ---

dig要求どおりにこれも出力です。効果があります:

lllamnyp@lllamnyp:~/.ssh$ dig ingress-vpn.do.company.com

; <<>> DiG 9.11.3-1ubuntu1.14-Ubuntu <<>> ingress-vpn.do.company.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55351
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: fcfdf62ef4bf6a33 (echoed)
;; QUESTION SECTION:
;ingress-vpn.do.company.com.        IN  A

;; ANSWER SECTION:
ingress-vpn.do.company.com. 30  IN  A   192.168.234.130

;; Query time: 161 msec
;; SERVER: 192.168.221.131#53(192.168.221.131)
;; WHEN: Wed Mar 10 12:10:14 MSK 2021
;; MSG SIZE  rcvd: 97

私はstracePingが読まれる/etc/nsswitch.confのを観察しましたが、nslookupその内部についてはよくわかりません。

私の質問は次のとおりです。

  • 問題が非再帰的なサーバーの場合は失敗しますnslookup <HOSTNAME>が、nslookup <HOSTNAME> <DNS_SERVER_IP>そうでないのはなぜですか?
  • 問題が非再帰的サーバーの場合、pingIPはどのように正常にチェックされ、いつnslookup失敗しますか?
  • とにかく、再帰はこれとどう関係していますか?192.168.221.131は特権ドメインネームサーバーのIPアドレスですかdo.company.com
  • pingデフォルトでは、名前解決が行われる基準と基準の違いは何ですかnslookup

私はUbuntu 18.04を実行しており、192.168.221.131のネームサーバーはCoreDNS 1.6です。


追加の詳細:

驚いたことに、端末のあるタブでnslookupを実行し、別のタブでtcpdumpを表示している間、

探す:

$ nslookup ingress-vpn.do.company.com
;; Got recursion not available from 192.168.221.131, trying next server
Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find ingress-vpn.do.company.com: NXDOMAIN

TCPダンプ:

$ sudo tcpdump udp port 53 -i tun0 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
12:24:12.419836 IP 10.1.1.2.57886 > 192.168.221.131.53: 12557+ A? ingress-vpn.do.company.com. (38)
12:24:12.432512 IP 192.168.221.131.53 > 10.1.1.2.57886: 12557*- 1/0/0 A 192.168.234.130 (74)

つまり、正しい答えを受けましたが、nslookupこの時点ではあきらめました。

答え1

デフォルトでは、pingを介して行われる名前解決とnslookupを介して実行される名前解決の違いは何ですか?

ping指定されたネームサーバーのみを照会しながら、IPアドレス(すべてリストにリストされている/etc/nsswitch.conf)を取得する方法はさまざまです。nslookup

関連情報