DNS 확인에 문제가 있습니다.
다른 서버에 ping을 보낼 수 있고 추적 경로도 작동하므로 라우팅이 작동하는 것 같습니다.
그러나 dig를 사용하면 해당 주소에 대해 "a.root-servers.net을 찾을 수 없습니다"라는 오류가 발생합니다.
저는 Openuse Leap 15.4를 사용하고 있습니다.
dig +trace google.de @1.1.1.1
; <<>> DiG 9.16.20 <<>> +trace google.de @1.1.1.1
;; global options: +cmd
. 515724 IN NS a.root-servers.net.
. 515724 IN NS b.root-servers.net.
. 515724 IN NS c.root-servers.net.
. 515724 IN NS d.root-servers.net.
. 515724 IN NS e.root-servers.net.
. 515724 IN NS f.root-servers.net.
. 515724 IN NS g.root-servers.net.
. 515724 IN NS h.root-servers.net.
. 515724 IN NS i.root-servers.net.
. 515724 IN NS j.root-servers.net.
. 515724 IN NS k.root-servers.net.
. 515724 IN NS l.root-servers.net.
. 515724 IN NS m.root-servers.net.
. 515724 IN RRSIG NS 8 0 518400 20230209050000 20230127040000 951 . PHk0oAh7B64P4athdNaFRLc2Q/IPUaMhDOdxt98tIfOy7AN4BvWteUMg e1lmRQrHW1V6hPAGoKxNm72DV03Dvg25qZyFC8i2pm5ynEOXHUaGNDVQ +pTLw7xFB9l53WmkEXkjBXa4Zym7BankEClAWJOguovlO3jkFHcdVc6J OAT/jNzQ6RCorSSi027oQ+tc2zfc64IFCqg3z43VQx6eFtW+FtzUAvGT lmpbaOiKiZwEOb7Q9ltpqJc8c62uJWr3l2AU0f6ya4bqEU7ELVw5WA90 A6pC9/L2VQL0h83dnzRlRVTR8wwL2dO50sAOyuuItmgJxj/D2oHJi/A+ qnGIrw==
couldn't get address for 'a.root-servers.net': not found
couldn't get address for 'b.root-servers.net': not found
couldn't get address for 'c.root-servers.net': not found
couldn't get address for 'd.root-servers.net': not found
couldn't get address for 'e.root-servers.net': not found
couldn't get address for 'f.root-servers.net': not found
couldn't get address for 'g.root-servers.net': not found
couldn't get address for 'h.root-servers.net': not found
couldn't get address for 'i.root-servers.net': not found
couldn't get address for 'j.root-servers.net': not found
couldn't get address for 'k.root-servers.net': not found
couldn't get address for 'l.root-servers.net': not found
couldn't get address for 'm.root-servers.net': not found
dig: couldn't get address for 'a.root-servers.net': no more
편집: 현재 /etc/resolv.conf
:
### /etc/resolv.conf is a symlink to /var/run/netconfig/resolv.conf
### autogenerated by netconfig!
#
# Before you change this file manually, consider to define the
# static DNS configuration using the following variables in the
# /etc/sysconfig/network/config file:
# NETCONFIG_DNS_STATIC_SEARCHLIST
# NETCONFIG_DNS_STATIC_SERVERS
# NETCONFIG_DNS_FORWARDER
# or disable DNS configuration updates via netconfig by setting:
# NETCONFIG_DNS_POLICY=''
#
# See also the netconfig(8) manual page and other documentation.
#
### Call "netconfig update -f" to force adjusting of /etc/resolv.conf.
답변1
명명된/바인드 설치가 있는 경우 이러한 루트 IP 주소는 명명된/바인드 설치(Debian/Ubuntu에서는 /etc/bind9/db.root, 빨간색 명명된.root에서는 /var/named/)의 일부여야 합니다. ). 오래된 파일이 있을 수 있습니다. 이 경우 다음 위치에서 최신 파일을 얻을 수 있습니다.https://www.internic.net/domain/named.root.
명명된/바인드 설치가 없는 경우 호스트 이름을 IP 주소로 확인하는 DNS 서버가 이를 해결해야 합니다.
답변2
@Bib는 내 질문의 댓글 섹션에서 도움이 되었습니다.
문제는 단지 입니다 . 명령에 지정했기 /etc/resolv.conf
때문에 제공할 필요가 없는 것 같습니다 . dig
그러나 @Bib가 언급했듯이 dig
flags와 함께 사용할 때는 그렇지 않습니다 trace
. @Bib는 다음과 같이 설명했습니다.
처음에는 a.root-servers.net 등에 다르게 응답하는 1.1.1.1에서 루트 서버를 요청합니다. 그런 다음 구문 분석은 로컬 컨트롤로 다시 돌아가는데, 파서 이름이 설정되지 않았기 때문에 실패합니다. 포트 53에서 tcpdump를 실행하면 이 내용이 표시됩니다.
이 문제를 해결하기 위해 다음 으로 변경했습니다 NETCONFIG_DNS_STATIC_SERVERS
. 그런 다음 업데이트해야 합니다 (이는 를 실행하여 심볼릭 링크 됩니다. 그러면 변경 사항이 에 적용 됩니다 ./etc/sysconfig/network/config
NETCONFIG_DNS_STATIC_SERVERS="1.1.1.1"
/var/run/netconfig/resolv.conf
/etc/resolv.conf
netconfig update -f
/etc/sysconfig/network/config
/etc/resolv.conf