Obtener un nombre de dominio para una dirección IP privada

Escrito por picodotdev el .
gnu-linux planeta-codigo
Enlace permanente Comentarios

Las direcciones IP en la versión 4 del protocolo son un número de 32 bits, se representan en cuatro grupos de números decimales que toman el valor entre 0 y 255 separados por un punto, por ejemplo para la dirección que representa la máquina local 127.0.0.1. En la versión 6 del protocolo IP las direcciones IP son un número de 128 bits. Dado que los números de la direcciones IP son difíciles de recordar para los humanos se usan alias o sinónimos denominados nombres de dominio, por ejemplo, picodotdev.github.io o duckduckgo.com. El software que permite la conversión de nombre de dominio a dirección IP son los servidores DNS.

Algunos rangos de las direcciones IP están reservados para crear redes privadas no accesibles desde internet estos son de 10.0.0.0 a 10.255.255.255, de 172.16.0.0 a 172.31.255.255 y de 192.168.0.0 a 192.168.255.255. Para estas direcciones IP privadas en algunos casos también es necesario asociarlas con nombre de dominio, los servidores web virtuales que permiten alojar en el mismo servidor varios sitios web dependen del nombre del dominio a través del cual se realiza la petición, usar el protocolo seguro HTTPS y usar el protocolo HTTP/2 también depende de los nombres de dominio.

Para resolver nombres de dominio a direcciones IP hay dos posibilidades, la primera es utilizar el archivo /etc/hosts creando una línea con el nombre del dominio y su dirección IP, la segunda forma es crear y administrar un servidor DNS. Hay algunos servicios que ofrecen la funcionalidad de resolver dominios a direcciones IP sin necesidad de utilizar el archivo /etc_hosts ni crear un servidor DNS.

Los servidores DNS de xip.ip resuelven dominios a direcciones privadas IPv4 y sslip.io resuelve dominios a direcciones privadas IPv4 e IPv6. La utilidad de los nombres de dominio es hacer las direcciones IP más significativas incluyendo una cadena que las describa y permitir utilizar servidores virtuales en los servidores web sin utilizar el archivo etc/hosts ni un servidor DNS propio.

Estos servicios DNS permiten embeber en el nombre de dominio la dirección IP a la que resuelven cuando se les hace la consulta. Por ejemplo, para el nombre de dominio consul.192.168.33.10.xip.io resuelven a la dirección IP 192.168.33.10. El servicio sslip permite utilizar guiones en vez de puntos para separar los elementos de la dirección IP, por ejemplo consul.192-168-33-10.sslip.io.

Utilizando el comando dig se obtienen los registros DNS del nombre de dominio indicado incluído el registro A para la dirección IP.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
$ dig +short consul.192.168.33.10.xip.io
192.168.33.10

$ dig +short consul.192.168.33.20.xip.io
192.168.33.20

$ dig consul.192.168.33.10.xip.io

; <<>> DiG 9.16.5 <<>> consul.192.168.33.10.xip.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59742
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;consul.192.168.33.10.xip.io.	IN	A

;; ANSWER SECTION:
consul.192.168.33.10.xip.io. 292 IN	A	192.168.33.10

;; Query time: 3 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: vie jul 31 11:08:13 CEST 2020
;; MSG SIZE  rcvd: 61

$ dig consul.192.168.33.10.sslip.io

; <<>> DiG 9.16.5 <<>> consul.192.168.33.10.sslip.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52060
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;consul.192.168.33.10.sslip.io.	IN	A

;; ANSWER SECTION:
consul.192.168.33.10.sslip.io. 300 IN	A	192.168.33.10

;; Query time: 263 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: vie jul 31 11:09:12 CEST 2020
;; MSG SIZE  rcvd: 74

$ dig consul.192-168-33-10.sslip.io

; <<>> DiG 9.16.5 <<>> consul.192-168-33-10.sslip.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26671
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;consul.192-168-33-10.sslip.io.	IN	A

;; ANSWER SECTION:
consul.192-168-33-10.sslip.io. 300 IN	A	192.168.33.10

;; Query time: 243 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: vie jul 31 11:32:54 CEST 2020
;; MSG SIZE  rcvd: 74
dig.sh
Comparte el artículo: