Traceroute가 작동 중일 때 이름 확인 실패의 근본 원인을 찾는 방법

Traceroute가 작동 중일 때 이름 확인 실패의 근본 원인을 찾는 방법

액세스하려는 DNS를 설정한 후 샘플 애플리케이션을 개발하고 배포했습니다 https://dev-intra.test.co.jp/test(호스트 이름은 여기에서 편집되었습니다). 그런데 지원서가 안 나오네요.

저는 이 상황의 근본 원인을 찾으려고 노력하고 있습니다.

traceroute결과는 성공적이었습니다.

myPC@hikaru:~$ traceroute dev-intra.test.co.jp
traceroute to dev-intra.test.co.jp (192.168.88.11), 30 hops max, 60 byte packets
 1  hikaru.mshome.net (172.18.160.1)  0.531 ms  0.507 ms  0.499 ms
 2  * 10.10.10.1 (10.10.10.1)  28.829 ms *
 3  * * *
 4  * 192.168.2.197 (192.168.2.197)  28.617 ms  28.612 ms
 5  * dev-intra.test.co.jp (192.168.88.11)  39.146 ms *

그래서 시도해 보았지만 dig dev-intra.test.co.jp이름이 해결되지 않은 것 같습니다.

; <<>> DiG 9.18.1-1ubuntu1.2-Ubuntu <<>> dev-intra.test.co.jp +multiline
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 13425
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;dev-intra.test.co.jp. IN A

;; AUTHORITY SECTION:
inf9.co.jp.             222 IN SOA ik0103.i-kyushu.or.jp. root.i-kyushu.or.jp. (
                                2022122301 ; serial
                                3600       ; refresh (1 hour)
                                300        ; retry (5 minutes)
                                3600000    ; expire (5 weeks 6 days 16 hours)
                                300        ; minimum (5 minutes)
                                )

;; Query time: 39 msec
;; SERVER: 172.18.160.1#53(172.18.160.1) (UDP)
;; WHEN: Mon Jan 23 20:10:36 JST 2023
;; MSG SIZE  rcvd: 114

요청 시 추가 정보를 제공하세요.

hikamiya@AT-MPC22151:~$ grep host /etc/nsswitch.conf
hosts:          files dns
hikamiya@AT-MPC22151:~$ cat /etc/resolv.conf
# [network]
# generateResolvConf = false
nameserver 172.18.160.1
hikamiya@AT-MPC22151:~$ resolvectl
sd_bus_open_system: No such file or directory
hikamiya@AT-MPC22151:~$ grep dev-intra /etc/hosts
192.168.88.11   dev-intra.test.co.jp
hikamiya@AT-MPC22151:~$

추가 정보:

hikamiya@AT-MPC22151:~$ cat /var/run/nscd/socket
cat: /var/run/nscd/socket: No such file or directory
hikamiya@AT-MPC22151:~$ cat /run/nscd/socket
cat: /run/nscd/socket: No such file or directory
hikamiya@AT-MPC22151:~$ getent hosts dev-intra.test.co.jp
192.168.88.11   dev-intra.test.co.jp

그들 사이의 차이점은 무엇입니까? 제가 중요한 점을 놓쳤나요?

누구든지 의견이 있으면 알려주시기 바랍니다. 감사해요

답변1

traceroute시스템의 이름 서비스를 사용하여 호스트 이름을 네트워크 주소로 확인합니다.

이는 각 데이터베이스( , , ...)에 대해 사용할 이름 서비스 모듈과 순서를 /etc/nsswitch.conf지정하는 (nameservice 스위치)를 통해 구성 됩니다.passwdgrouphosts

귀하의 경우 모듈을 먼저 사용한 다음 DNS를 hosts사용하라는 메시지가 표시됩니다 . 쿼리 의 경우 입니다 .fileslibnss_files.so/etchosts/etc/hosts

여기에서 호스트 이름을 찾을 수 있으므로 DNS 서버에 쿼리할 필요도 없습니다.

dig그 자체는 단지 DNS 클라이언트일 뿐입니다. 기본적으로 구성에 언급된 첫 번째 서버 /etc/resolv.conf(구성이기도 함 libnss_dns.so)를 쿼리하며 DNS 서버에는 해당 호스트 이름에 대한 기록이 없습니다.

관련 정보