Domain Name System#

Puertos que utiliza en la capa de transporte#

$ getent services | grep domain
domain          53/udp
domain          53/tcp


Registros#

Registro A#

Se utiliza para asociar algún nombre de dominio con una dirección IPv4

Nombre TTL Clase Tipo Valor
www.example.com. 3600 IN A 192.0.2.1

Registro AAAA#

Se utiliza para asociar algún nombre de dominio con una dirección IPv6

Nombre TTL Clase Tipo Valor
www.example.com. 3600 IN AAAA 2001:db8::1

Registro CNAME#

Asocia un nombre de dominio con otro

Nombre TTL Clase Tipo Valor
server.example.com. 3600 IN CNAME web.example.net.

Registro PTR#

Asocia una dirección IP con un nombre de dominio

Registro PTR para IPv4#

Utiliza la zona inversa in-addr.arpa. y asigna los octetos en orden inverso con notación decimal

Se puede buscar la dirección IP en formato "normal" utilizando el parámetro -x de dig

$ dig +all -x 192.0.2.100

Se puede buscar la dirección IP convertida a nombre de dominio de la zona inversa in-addr.arpa.

$ dig +all 100.2.0.192.in-addr.arpa.
Nombre TTL Clase Tipo Valor
100.2.0.192.in-addr.arpa. 3600 IN PTR alpha.example.org.

Registro PTR para IPv6#

Utiliza la zona inversa ip6.arpa. y asigna los nibbles en orden inverso con notación hexadecimal

Se puede buscar la dirección IP en formato "normal" utilizando el parámetro -x de dig

$ dig +all -x 2001:db8::1

Se puede buscar la dirección IP convertida a nombre de dominio de la zona inversa ip6.arpa.

$ dig +all 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
Nombre TTL Clase Tipo Valor
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. 3600 IN PTR omega.example.net.

Registros NS (glue records)#

  • También conocidos como glue records, son el elemento que liga a las zonas DNS entre sí
  • Lista a los servidores autoritativos para esa zona
  • Sirve para realizar delegación de subzonas a otros servidores
  • El servidor "anterior" utiliza este registro guarda la referencia al siguiente
  • Es el concepto implícito mediante el cual funcionan las consultas DNS
Nombre TTL Clase Tipo Valor
example.com. 3600 IN NS ns1.example.com.
example.com. 3600 IN NS ns2.example.net.
example.com. 3600 IN NS ns3.example.org.

Archivo /etc/resolv.conf#

# cat /etc/resolv.conf
nameserver 208.67.222.222
nameserver 208.67.220.220

Archivo /etc/hosts#

# cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   linux.local linux

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Búsquedas#


Búsqueda recursiva#

  • El cliente le pregunta el registro al servidor
  • El servidor realiza la búsqueda iterativa preguntando a otros servidores
  • Regresa el mejor resultado obtenido
  • Respuesta no autoritativa
$ dig +all www.unam.mx.

; <<>> DiG 9.9.5-9+deb8u15-Debian <<>> +all www.unam.mx.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12777
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.unam.mx.           IN  A

;; ANSWER SECTION:
www.unam.mx.        3077    IN  A   132.247.10.44

;; Query time: 44 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Tue Feb 13 16:53:11 CST 2018
;; MSG SIZE  rcvd: 56

Búsqueda iterativa#

  • El cliente pregunta por cada parte del registro a los servidores autoritativos para esa zona
  • Requiere varias consultas a múltiples servidores
  • El cliente pregunta por la raíz del espacio de nombres de DNS
  • Esta zona raíz tiene el dominio root-servers.net
  • Normalmente no es necesario preguntar por la zona raíz, ya que viene precargada en los clientes de DNS

Zona raíz#

$ dig +all NS .

; <<>> DiG 9.9.5-9+deb8u15-Debian <<>> +all NS .
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16846
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27

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

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

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

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Feb 13 16:38:02 CST 2018
;; MSG SIZE  rcvd: 811

NS de mx.#

  • El cliente pregunta por la primer parte del nombre DNS a alguno de los servidores raíz
$ dig +all NS mx. a.root-servers.net.

; <<>> DiG 9.9.5-9+deb8u15-Debian <<>> +all NS mx. a.root-servers.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13130
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 9

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

;; ANSWER SECTION:
mx.         86400   IN  NS  m.mx-ns.mx.
mx.         86400   IN  NS  e.mx-ns.mx.
mx.         86400   IN  NS  x.mx-ns.mx.
mx.         86400   IN  NS  i.mx-ns.mx.
mx.         86400   IN  NS  c.mx-ns.mx.
mx.         86400   IN  NS  o.mx-ns.mx.

;; ADDITIONAL SECTION:
m.mx-ns.mx.     97448   IN  A   200.94.176.1
m.mx-ns.mx.     110581  IN  AAAA    2001:13c7:7000::1
e.mx-ns.mx.     97448   IN  A   189.201.244.1
x.mx-ns.mx.     97448   IN  A   201.131.252.1
i.mx-ns.mx.     97448   IN  A   207.248.68.1
c.mx-ns.mx.     97448   IN  A   192.100.224.1
c.mx-ns.mx.     158141  IN  AAAA    2001:1258::1
o.mx-ns.mx.     97448   IN  A   200.23.1.1

;; Query time: 55 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Feb 13 16:36:25 CST 2018
;; MSG SIZE  rcvd: 285

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

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;a.root-servers.net.        IN  NS

;; AUTHORITY SECTION:
root-servers.net.   10800   IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2018013000 14400 7200 1209600 3600000

;; Query time: 74 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Feb 13 16:36:25 CST 2018
;; MSG SIZE  rcvd: 105

NS de unam.mx.#

  • El cliente pregunta por la segunda parte del dominio a alguno de los servidores NS de la zona mx.
$ dig +all unam.mx. @i.mx-ns.mx.

; <<>> DiG 9.9.5-9+deb8u15-Debian <<>> +all unam.mx. @i.mx-ns.mx.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19690
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 5
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;unam.mx.           IN  A

;; AUTHORITY SECTION:
unam.mx.        86400   IN  NS  ns3.unam.mx.
unam.mx.        86400   IN  NS  ns4.unam.mx.

;; ADDITIONAL SECTION:
ns3.unam.mx.        86400   IN  A   132.248.108.215
ns3.unam.mx.        86400   IN  AAAA    2001:1218:100:10a:108::215
ns4.unam.mx.        86400   IN  A   132.248.204.32
ns4.unam.mx.        86400   IN  AAAA    2001:1218:403:203:204::32

;; Query time: 53 msec
;; SERVER: 207.248.68.1#53(207.248.68.1)
;; WHEN: Tue Feb 13 16:39:55 CST 2018
;; MSG SIZE  rcvd: 160

Consulta al DNS de unam.mx. por www#

  • El cliente pregunta por la siguiente parte del nombre de dominio al servidor autoritativo
$ dig +all www.unam.mx. @ns3.unam.mx.

; <<>> DiG 9.9.5-9+deb8u15-Debian <<>> +all www.unam.mx. @ns3.unam.mx.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48227
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 8
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.unam.mx.           IN  A

;; ANSWER SECTION:
www.unam.mx.        7200    IN  A   132.247.10.44

;; AUTHORITY SECTION:
unam.mx.        7200    IN  NS  ns1.unam.mx.
unam.mx.        7200    IN  NS  ns4.unam.mx.
unam.mx.        7200    IN  NS  ns5.unam.mx.
unam.mx.        7200    IN  NS  ns3.unam.mx.
unam.mx.        7200    IN  NS  ns2.unam.mx.

;; ADDITIONAL SECTION:
ns1.unam.mx.        7200    IN  A   132.248.108.221
ns2.unam.mx.        7200    IN  A   132.248.204.25
ns3.unam.mx.        7200    IN  A   132.248.108.215
ns3.unam.mx.        7200    IN  AAAA    2001:1218:100:10a:108::215
ns4.unam.mx.        7200    IN  A   132.248.204.32
ns4.unam.mx.        7200    IN  AAAA    2001:1218:403:203:204::32
ns5.unam.mx.        7200    IN  A   132.248.243.37

;; Query time: 67 msec
;; SERVER: 132.248.108.215#53(132.248.108.215)
;; WHEN: Tue Feb 13 16:42:33 CST 2018
;; MSG SIZE  rcvd: 282