Je comprends en gros la théorie de la manière dont un résolveur DNS parcourt la hiérarchie des domaines pour interroger des serveurs de noms afin de résoudre un nom de domaine à partir de l’espace de noms racine. autre nom de domaine à titre d'exemple). Je comprends que je peux juste faire:
nslookup -type=ns google.com
qui renverra tous les serveurs de noms de google.com tels que ns1.google.com, ns2.google.com etc.
Cependant, ce que je veux faire à la place, c'est d'aller du domaine de niveau racine et d'accéder récursivement aux serveurs de noms de Google, comme ce qu'un résolveur DNS ferait normalement (en supposant qu'il n'y ait pas d'accès au cache).
Voici le processus que j'ai essayé:
Commencez par obtenir les serveurs de noms de niveau racine:
nslookup -type = ns.
Cela renvoie les 13 serveurs racine et j'ai choisi l'un d'entre eux: 192.36.148.17
Maintenant, j'interroge le serveur de noms racine du .com gTLD comme suit:
nslookup -type = ns com 192.36.148.17
Ceci retourne une liste de serveurs de noms, ie IP: 199.212.0.73
J'utilise maintenant l'adresse IP du premier serveur de noms pour interroger les serveurs de noms du SLD:
nslookup -type = ns google.com 199.212.0.73
Ici, j'aurais pensé que cela renverrait les serveurs de noms de google.com, mais je reçois des serveurs de noms tels que v.arin.net, u.arin.net, etc. Qu'est-ce qui me manque ici?
Cela semble être dû au fait que vous utilisez l'adresse IP d'un arpa et non d'un serveur gtld à l'étape 3, vous trouverez ci-dessous ce que j'ai fait et semble bien fonctionner, utiliser n'importe quelle adresse IP de l'arpa renvoie le même résultat que celui rencontré.
1) nslookup -type = ns.
nslookup -type=ns .
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
(root) nameserver = a.root-servers.net
(root) nameserver = b.root-servers.net
(root) nameserver = c.root-servers.net
(root) nameserver = d.root-servers.net
(root) nameserver = e.root-servers.net
(root) nameserver = f.root-servers.net
(root) nameserver = g.root-servers.net
(root) nameserver = h.root-servers.net
(root) nameserver = i.root-servers.net
(root) nameserver = j.root-servers.net
(root) nameserver = k.root-servers.net
(root) nameserver = l.root-servers.net
(root) nameserver = m.root-servers.net
2) Résoudre IP
Pinging i.root-servers.net [192.36.148.17] with 32 bytes of data:
Reply from 192.36.148.17: bytes=32 time=30ms TTL=53
Reply from 192.36.148.17: bytes=32 time=27ms TTL=53
Reply from 192.36.148.17: bytes=32 time=27ms TTL=53
Reply from 192.36.148.17: bytes=32 time=30ms TTL=53
Ping statistics for 192.36.148.17:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 27ms, Maximum = 30ms, Average = 28ms
) nslookup -type = ns com 192.36.148.17
nslookup -type=ns com 192.36.148.17
in-addr.arpa nameserver = e.in-addr-servers.arpa
in-addr.arpa nameserver = c.in-addr-servers.arpa
in-addr.arpa nameserver = d.in-addr-servers.arpa
in-addr.arpa nameserver = b.in-addr-servers.arpa
in-addr.arpa nameserver = f.in-addr-servers.arpa
in-addr.arpa nameserver = a.in-addr-servers.arpa
a.in-addr-servers.arpa internet address = 199.212.0.73
a.in-addr-servers.arpa AAAA IPv6 address = 2001:500:13::73
b.in-addr-servers.arpa internet address = 199.253.183.183
b.in-addr-servers.arpa AAAA IPv6 address = 2001:500:87::87
c.in-addr-servers.arpa internet address = 196.216.169.10
c.in-addr-servers.arpa AAAA IPv6 address = 2001:43f8:110::10
d.in-addr-servers.arpa internet address = 200.10.60.53
d.in-addr-servers.arpa AAAA IPv6 address = 2001:13c7:7010::53
e.in-addr-servers.arpa internet address = 203.119.86.101
e.in-addr-servers.arpa AAAA IPv6 address = 2001:dd8:6::101
f.in-addr-servers.arpa internet address = 193.0.9.1
f.in-addr-servers.arpa AAAA IPv6 address = 2001:67c:e0::1
Server: UnKnown
Address: 192.36.148.17
com nameserver = j.gtld-servers.net
com nameserver = i.gtld-servers.net
com nameserver = g.gtld-servers.net
com nameserver = e.gtld-servers.net
com nameserver = h.gtld-servers.net
com nameserver = m.gtld-servers.net
com nameserver = b.gtld-servers.net
com nameserver = d.gtld-servers.net
com nameserver = k.gtld-servers.net
com nameserver = a.gtld-servers.net
com nameserver = l.gtld-servers.net
com nameserver = f.gtld-servers.net
com nameserver = c.gtld-servers.net
a.gtld-servers.net internet address = 192.5.6.30
a.gtld-servers.net AAAA IPv6 address = 2001:503:a83e::2:30
b.gtld-servers.net internet address = 192.33.14.30
b.gtld-servers.net AAAA IPv6 address = 2001:503:231d::2:30
c.gtld-servers.net internet address = 192.26.92.30
d.gtld-servers.net internet address = 192.31.80.30
e.gtld-servers.net internet address = 192.12.94.30
f.gtld-servers.net internet address = 192.35.51.30
g.gtld-servers.net internet address = 192.42.93.30
h.gtld-servers.net internet address = 192.54.112.30
i.gtld-servers.net internet address = 192.43.172.30
j.gtld-servers.net internet address = 192.48.79.30
k.gtld-servers.net internet address = 192.52.178.30
l.gtld-servers.net internet address = 192.41.162.30
m.gtld-servers.net internet address = 192.55.83.30
4) nslookup -type = ns google.com 192.5.6.
nslookup -type=ns google.com 192.5.6.30
(root) nameserver = a.root-servers.net
(root) nameserver = b.root-servers.net
(root) nameserver = c.root-servers.net
(root) nameserver = d.root-servers.net
(root) nameserver = e.root-servers.net
(root) nameserver = f.root-servers.net
(root) nameserver = g.root-servers.net
(root) nameserver = h.root-servers.net
(root) nameserver = i.root-servers.net
(root) nameserver = j.root-servers.net
(root) nameserver = k.root-servers.net
(root) nameserver = l.root-servers.net
(root) nameserver = m.root-servers.net
Server: UnKnown
Address: 192.5.6.30
google.com nameserver = ns2.google.com
google.com nameserver = ns1.google.com
google.com nameserver = ns3.google.com
google.com nameserver = ns4.google.com
ns2.google.com internet address = 216.239.34.10
ns1.google.com internet address = 216.239.32.10
ns3.google.com internet address = 216.239.36.10
ns4.google.com internet address = 216.239.38.10