Как мой DNS-сервер провайдера связывается с корневым DNS-сервером? - PullRequest
0 голосов
/ 29 октября 2018

Из того, что я понял, когда мой компьютер выполняет запрос DNS, он делает следующее:

Во-первых, мой компьютер отправляет DNS-запрос на DNS-сервер по умолчанию (мой ISP DNS в моем случае). Затем мой DNS-сервер провайдера отправляет запрос «DNS-серверу корневого узла». Мой вопрос в этом последнем пункте.

  • Как DNS-сервер интернет-провайдера связывается с корневым узлом (с IP-адресом? (Я слышал, что IP-адреса корневых узлов DNS находятся в секрете (чтобы избежать атак / спама))).

  • Какой порт используется корневым узлом DNS

  • Могу ли я напрямую связаться с моим компьютером с корневым DNS? (если да, то как?)

Большое спасибо!

1 Ответ

0 голосов
/ 29 октября 2018

Каждый рекурсивный сервер имен в мире поставляется с предварительно настроенной корневой зоной со списком корневых серверов имен и их IPv4 + IPv6-адресов. Посредством процесса, называемого «инициализация» при запуске, каждый рекурсивный сервер имен подключит один из них к запросу текущего списка, чтобы он мог обновить свой список корневых серверов.

Все это никоим образом не скрыто, потому что в противном случае DNS не работает.

Каждый сервер имен (рекурсивный или авторитетный) использует порт 53 для запросов UDP и TCP.

Конечно, вы можете напрямую связаться с корневыми серверами имен, но, основываясь на ваших вопросах, я полагаю, у вас неправильное представление о том, для чего это нужно. DNS - это дерево, если вы обратитесь к корневому серверу имен, он сможет отвечать только данными об уровне чуть ниже него, то есть списке доменов верхнего уровня, и вы не будете получать данные о доменах ниже по дереву.

Некоторые примеры:

Получение списка текущих корневых серверов имен

$ dig . NS

; <<>> DiG 9.12.0 <<>> . NS
;; global options: +cmd
;; Sending:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62572
;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: c0ea66cf097962ab
;; QUESTION SECTION:
;.          IN NS

;; QUERY SIZE: 40

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62572
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.          IN NS

;; ANSWER SECTION:
.           264162 IN NS a.root-servers.net.
.           264162 IN NS d.root-servers.net.
.           264162 IN NS m.root-servers.net.
.           264162 IN NS j.root-servers.net.
.           264162 IN NS e.root-servers.net.
.           264162 IN NS f.root-servers.net.
.           264162 IN NS l.root-servers.net.
.           264162 IN NS k.root-servers.net.
.           264162 IN NS g.root-servers.net.
.           264162 IN NS h.root-servers.net.
.           264162 IN NS b.root-servers.net.
.           264162 IN NS i.root-servers.net.
.           264162 IN NS c.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net. 600270 IN A 198.41.0.4
a.root-servers.net. 168267 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 600268 IN A 199.9.14.201
b.root-servers.net. 168267 IN AAAA 2001:500:200::b
c.root-servers.net. 600270 IN A 192.33.4.12
c.root-servers.net. 168267 IN AAAA 2001:500:2::c
d.root-servers.net. 600269 IN A 199.7.91.13
d.root-servers.net. 168267 IN AAAA 2001:500:2d::d
e.root-servers.net. 600268 IN A 192.203.230.10
e.root-servers.net. 168267 IN AAAA 2001:500:a8::e
f.root-servers.net. 600268 IN A 192.5.5.241
f.root-servers.net. 168267 IN AAAA 2001:500:2f::f
g.root-servers.net. 600268 IN A 192.112.36.4
g.root-servers.net. 168267 IN AAAA 2001:500:12::d0d
h.root-servers.net. 600270 IN A 198.97.190.53
h.root-servers.net. 168267 IN AAAA 2001:500:1::53
i.root-servers.net. 600270 IN A 192.36.148.17
i.root-servers.net. 168267 IN AAAA 2001:7fe::53
j.root-servers.net. 600268 IN A 192.58.128.30
j.root-servers.net. 168267 IN AAAA 2001:503:c27::2:30
k.root-servers.net. 600268 IN A 193.0.14.129
k.root-servers.net. 168267 IN AAAA 2001:7fd::1
l.root-servers.net. 600268 IN A 199.7.83.42
l.root-servers.net. 168267 IN AAAA 2001:500:9f::42
m.root-servers.net. 600268 IN A 202.12.27.33
m.root-servers.net. 168267 IN AAAA 2001:dc3::35

;; Query time: 1 msec
;; SERVER: 192.168.10.229#53(192.168.10.229)
;; WHEN: Mon Oct 29 10:19:08 EST 2018
;; MSG SIZE  rcvd: 811

Запрос корневого сервера имен о данных для TLD (да, red - TLD)

$ dig @g.root-servers.net red. NS +nocookie

; <<>> DiG 9.12.0 <<>> @g.root-servers.net red. NS +nocookie
; (1 server found)
;; global options: +cmd
;; Sending:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18270
;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;red.           IN NS

;; QUERY SIZE: 32

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18270
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 9
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;red.           IN NS

;; AUTHORITY SECTION:
red.            172800 IN NS b0.nic.red.
red.            172800 IN NS c0.nic.red.
red.            172800 IN NS a2.nic.red.
red.            172800 IN NS a0.nic.red.

;; ADDITIONAL SECTION:
a0.nic.red.     172800 IN A 65.22.36.25
a2.nic.red.     172800 IN A 65.22.39.25
b0.nic.red.     172800 IN A 65.22.37.25
c0.nic.red.     172800 IN A 65.22.38.25
a0.nic.red.     172800 IN AAAA 2a01:8840:26::25
a2.nic.red.     172800 IN AAAA 2a01:8840:29::25
b0.nic.red.     172800 IN AAAA 2a01:8840:27::25
c0.nic.red.     172800 IN AAAA 2a01:8840:28::25

;; Query time: 104 msec
;; SERVER: 192.112.36.4#53(192.112.36.4)
;; WHEN: Mon Oct 29 10:20:35 EST 2018
;; MSG SIZE  rcvd: 280

Запрос корневого сервера имен для чего-либо еще в дереве (прямого ответа не ожидается, просто данные для связи с другими серверами имен для дальнейших рекурсивных запросов)

$ dig @g.root-servers.net www.stackoverflow.com. NS +nocookie

; <<>> DiG 9.12.0 <<>> @g.root-servers.net www.stackoverflow.com. NS +nocookie
; (1 server found)
;; global options: +cmd
;; Sending:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8649
;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.stackoverflow.com. IN NS

;; QUERY SIZE: 50

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8649
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 27
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.stackoverflow.com. IN NS

;; AUTHORITY SECTION:
com.            172800 IN NS j.gtld-servers.net.
com.            172800 IN NS g.gtld-servers.net.
com.            172800 IN NS a.gtld-servers.net.
com.            172800 IN NS d.gtld-servers.net.
com.            172800 IN NS m.gtld-servers.net.
com.            172800 IN NS e.gtld-servers.net.
com.            172800 IN NS i.gtld-servers.net.
com.            172800 IN NS f.gtld-servers.net.
com.            172800 IN NS k.gtld-servers.net.
com.            172800 IN NS l.gtld-servers.net.
com.            172800 IN NS b.gtld-servers.net.
com.            172800 IN NS c.gtld-servers.net.
com.            172800 IN NS h.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
b.gtld-servers.net. 172800 IN AAAA 2001:503:231d::2:30
c.gtld-servers.net. 172800 IN AAAA 2001:503:83eb::30
d.gtld-servers.net. 172800 IN AAAA 2001:500:856e::30
e.gtld-servers.net. 172800 IN AAAA 2001:502:1ca1::30
f.gtld-servers.net. 172800 IN AAAA 2001:503:d414::30
g.gtld-servers.net. 172800 IN AAAA 2001:503:eea3::30
h.gtld-servers.net. 172800 IN AAAA 2001:502:8cc::30
i.gtld-servers.net. 172800 IN AAAA 2001:503:39c1::30
j.gtld-servers.net. 172800 IN AAAA 2001:502:7094::30
k.gtld-servers.net. 172800 IN AAAA 2001:503:d2d::30
l.gtld-servers.net. 172800 IN AAAA 2001:500:d937::30
m.gtld-servers.net. 172800 IN AAAA 2001:501:b1f9::30

;; Query time: 105 msec
;; SERVER: 192.112.36.4#53(192.112.36.4)
;; WHEN: Mon Oct 29 10:21:50 EST 2018
;; MSG SIZE  rcvd: 846
...