이름 확인 측면에서 ping과 nslookup의 차이점은 무엇입니까?

이름 확인 측면에서 ping과 nslookup의 차이점은 무엇입니까?

호스트 이름을 IP 주소로 확인할 때 동작의 차이를 이해하려고 합니다 nslookup. ping내 터미널의 이 조각은 내 혼란을 요약합니다.

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

나는 strace핑이 읽히는 /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

관련 정보