Domain Name System#

Puertos que utiliza en la capa de transporte#

sh $ 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#

```sh

cat /etc/resolv.conf#

nameserver 208.67.222.222 nameserver 208.67.220.220 ```

Archivo /etc/hosts#

```sh

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 ```