최근에 나는 루트 서버가 정보가 없는 도메인에 대한 정보를 어떻게 반환하는지 궁금했습니다.
루트 DNS 서버(예: a.root-servers.net)는 자체적으로 재귀 쿼리를 수행하지 않고 대신 참조(쿼리된 TLD에 대한 이름 서버를 가리키는 RR)를 반환한다고 생각합니다.
com 네임서버에 대한 RR을 얻기 위해 twitter.com에 대한 쿼리를 보냈습니다. 하지만 다음을 얻으세요:
dig @a.root-servers.net twitter.com +norecurse
; <<>> DiG 9.10.3-P4-Ubuntu <<>> @a.root-servers.net twitter.com +norecurse
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51937
;; flags: qr ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;twitter.com. IN A
;; ANSWER SECTION:
twitter.com. 748 IN A 104.244.42.65
twitter.com. 748 IN A 104.244.42.193
;; Query time: 27 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Thu Dec 29 17:54:09 MSK 2016
;; MSG SIZE rcvd: 61
루트 서버가 리퍼러만 반환해야 할 것 같으면서도 Twitter의 IP를 반환하는 이유를 설명할 수 있습니까?
내가 틀렸다면 정정해주세요. 감사해요.
답변1
복사할 수 없음:
$ dig @a.root-servers.net twitter.com +norecurse
; <<>> DiG 9.8.3-P1 <<>> @a.root-servers.net twitter.com +norecurse
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47005
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 14
;; QUESTION SECTION:
;twitter.com. IN A
;; AUTHORITY SECTION:
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
;; ADDITIONAL SECTION:
a.gtld-servers.net. 172800 IN A 192.5.6.30
b.gtld-servers.net. 172800 IN A 192.33.14.30
c.gtld-servers.net. 172800 IN A 192.26.92.30
d.gtld-servers.net. 172800 IN A 192.31.80.30
e.gtld-servers.net. 172800 IN A 192.12.94.30
f.gtld-servers.net. 172800 IN A 192.35.51.30
g.gtld-servers.net. 172800 IN A 192.42.93.30
h.gtld-servers.net. 172800 IN A 192.54.112.30
i.gtld-servers.net. 172800 IN A 192.43.172.30
j.gtld-servers.net. 172800 IN A 192.48.79.30
k.gtld-servers.net. 172800 IN A 192.52.178.30
l.gtld-servers.net. 172800 IN A 192.41.162.30
m.gtld-servers.net. 172800 IN A 192.55.83.30
a.gtld-servers.net. 172800 IN AAAA 2001:503:a83e::2:30
;; Query time: 31 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Thu Dec 29 08:32:23 2016
;; MSG SIZE rcvd: 489
답변2
바로 수수께끼를 풀기 위해서입니다.
내 라우터 설정에서 DNS 주소를 대기업의 IP 주소에서 ISP의 IP 주소로 변경했는데 이제 작동합니다. 어떤 사용자 정의 DNS 서버가 이 동작을 일으키는지 잘 모르겠습니다. 어쨌든 문제는 해결되었습니다.