이유를 알고 싶어요평평한IPv4를 검색할 수 없습니다.dk
최상위 도메인내 데비안 10에서.유효한 도메인 이름, 내가 아는 지구상에서 가장 짧은 것도메인 이름 서버(문서화됨 A
). 네트워크 연결을 테스트하는 데 좋습니다.
내가 사용할 때파기, 모든 것이 예상대로 작동합니다.
dig A +short dk
193.163.102.58
하지만 내가 사용할 때평평한, dk
내가 소유한 도메인 앞에 와일드카드가 활성화되어 있습니다. 예를 들어example.org
, 그래서:
ping -c1 dk
PING dk.example.org (x.x.x.x) 56(84) bytes of data.
64 bytes from x.x.x.x-reverse-dns (x.x.x.x): icmp_seq=1 ttl=57 time=3.72 ms
--- dk.example.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.716/3.716/3.716/0.000 ms
하지만 점을 추가하면 작동합니다.
ping -c1 dk.
PING dk (193.163.102.58) 56(84) bytes of data.
64 bytes from static3.prod.dkhm.dk (193.163.102.58): icmp_seq=1 ttl=51 time=24.6 ms
--- dk ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 24.569/24.569/24.569/0.000 ms
DoT
/ 및 일부 공용 정적 DNS 확인자를 통해 stubby
테스트되었습니다 /etc/resolv.conf
(동일한 결과).
unbound
nor 와 같은 로컬 파서가 없습니다 bind
.
디렉터리와 IP 주소 example.org
간에 흥미로운 일치 항목이 없습니다 ./etc
/etc/nsswitch.conf
잘못 구성된 경우 광산 :
[...]
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
[...]
무슨 일인지 아는 사람 있나요?
답변1
가장 짧은 도메인 이름은 입니다 .
.dk
정규화된 도메인 이름이 아닙니다.. 사람이 읽을 수 있는 형식은 마침표로 끝나지 않습니다. 마침표로 끝나는 것은 (사람이 읽을 수 있는 형식으로) 정규화된 도메인 이름을 나타냅니다.
DNS 자체가 정규화된 도메인 이름으로 유효하려면 DNS 클라이언트 라이브러리(유사한 프로그램에 연결됨 ping
)가 다음과 같아야 합니다.dk
~이 되다, 하나 이상의 접미사를 추가하여. DNS 클라이언트가 표시되는 접미사를 추가하고 있습니다. BIND DNS 클라이언트 라이브러리에 포함된 대부분의 C 라이브러리의 경우 접미사 목록은 /etc/resolv.conf
다양한 방법으로 운영 체제에 제공되는 동적 도메인 이름 접미사로 대체되는 의 지시문에서 제공됩니다.
dk.
비교하면예정규화된 도메인 이름과 DNS 클라이언트 라이브러리는 이름 자격을 통해 이를 전달하지 않습니다.
실제로 여기에는 아무런 문제가 없습니다.
추가 읽기
- 조나단 데보인 폴라드(2017). "정규화된 이름의 개념".DNS 이름 자격이란 무엇입니까?. 자주 주어지는 답변입니다.
답변2
해결되는 것은 dig A dk
RA를 사용하여 정의된 도메인이며, 이는 DNS 서버일 수도 있고 아닐 수도 있습니다. 도메인에 대한 권한 있는 서버를 쿼리하는 방법으로 정의되지 않습니다. MX 시대 이전에는 도메인에 응답하는 이메일 서버의 주소를 가리키는 데 사용되었지만 현재는 더 이상 사용되지 않는 기능입니다.
TLD를 담당하는 권한 있는 이름 서버의 IP 주소를 얻으려면 dk
루트 이름 서버에 NS 레코드를 요청하는 것이 가장 좋습니다.
$ dig -t NS dk @a.root-servers.net. | sed "s/^/ /"
; <<>> DiG 9.10.6 <<>> -t NS dk @a.root-servers.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2109
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 7, ADDITIONAL: 15
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1472
;; QUESTION SECTION:
;dk. IN NS
;; AUTHORITY SECTION:
dk. 172800 IN NS a.nic.dk.
dk. 172800 IN NS b.nic.dk.
dk. 172800 IN NS c.nic.dk.
dk. 172800 IN NS d.nic.dk.
dk. 172800 IN NS l.nic.dk.
dk. 172800 IN NS p.nic.dk.
dk. 172800 IN NS s.nic.dk.
;; ADDITIONAL SECTION:
a.nic.dk. 172800 IN A 212.88.78.122
b.nic.dk. 172800 IN A 193.163.102.222
c.nic.dk. 172800 IN A 194.0.46.53
d.nic.dk. 172800 IN A 185.159.198.45
l.nic.dk. 172800 IN A 192.38.7.242
p.nic.dk. 172800 IN A 194.0.47.42
s.nic.dk. 172800 IN A 193.176.144.15
a.nic.dk. 172800 IN AAAA 2001:1580:0:180d::122
b.nic.dk. 172800 IN AAAA 2a01:630:0:80::53
c.nic.dk. 172800 IN AAAA 2001:678:74::53
d.nic.dk. 172800 IN AAAA 2620:10a:80ab::45
l.nic.dk. 172800 IN AAAA 2001:7f8:1f::1835:242:0
p.nic.dk. 172800 IN AAAA 2001:678:78:42:ad::53
s.nic.dk. 172800 IN AAAA 2a00:d78:0:102:193:176:144:15
;; Query time: 38 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Mon Jun 01 08:26:00 WEST 2020
;; MSG SIZE rcvd: 455
dk
네트워크 방문자의 편의를 위해 A 레코드에서 해당 도메인의 웹 서버를 가리키는 리소스 레코드를 볼 수도 있습니다. 이 경우 RR A는 dk.
DNS 서버를 가리키는 것이 아니라 /217.70.186.102에 대한 HTML 리디렉션으로 응답하는 ngINX 서버( eksempel.dk
) 를 가리키는 것으로 보입니다.www.dk-hostmaster.dk
다른 이름을 표시하는 이유는 ping
점이 없는 이름 요청(예: dk)의 경우 DNS 확인자(@JdeBP가 말했듯이)에서 사용하는 도메인의 접미사 목록을 추가하고 RR A로 확인되기 때문입니다. 연관 PTR DNS 레코드.
ping
또는 193.163.102.58 의 A RR로 해석된 dk.
다음 193.163.102.58 의 PTR/역 RR을 얻는 dot(dk.) 를 사용하십시오 static3.prod.dkhm.dk
.
static3.prod.dkhm.dk
dk 도메인을 담당하는 조직에서 프로덕션 네트워크에 대해 기본적으로 생성한 이름입니다.
$ nslookup
> set type=A
> dk.
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: dk
Address: 193.163.102.58
> 193.163.102.58
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
58.102.163.193.in-addr.arpa name = static3.prod.dkhm.dk.
또는 핑을 모니터링합니다.
ping -c1 dk.
tcpdump를 사용하십시오:
$ sudo tcpdump -n port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
12:44:04.742533 IP 192.168.5.143.46424 > 192.168.5.2.53: 12659+ A? dk. (20)
12:44:04.744365 IP 192.168.5.2.53 > 192.168.5.143.46424: 12659*- 1/0/0 A 193.163.102.58 (48)
12:44:04.849969 IP 192.168.5.143.46424 > 192.168.5.2.53: 37304+ PTR? 58.102.163.193.in-addr.arpa. (45)
12:44:04.893196 IP 192.168.5.2.53 > 192.168.5.143.46424: 37304 1/0/1 PTR static3.prod.dkhm.dk. (117)
PS BIND 언어에서는 위의 RR A를 다음과 같이 정의합니다.
$ORIGIN dk.
@ IN A 193.163.102.58
RR = 리소스 레코드
TLDR 이것은 잘못된 DNS 답변이 아니며 문서화되어 있고 예상되는 동작입니다.
"주제에서 벗어난" 설명: 이상하게도 eksempel.dk
문서/교육/개발 서버인 것 같습니다. 이 서버는 암호화할 수 있는 인증서를 사용하여 이를 추가로 확인합니다.