La magia de los servidores DNS

Conversión de nombres a direcciones IP

Vamos a desvelar el misterio de cómo has podido acceder aquí sin saber de forma consciente mi dirección IP.

Cuando viste tu dirección IP, habrás visto que es un número algo largo y difícil de recordar. Imagina que cada vez que quisieras acceder a una página web, tuvieras que recordar su IP. Sería un caos, ¿verdad? A los humanos nos resulta mucho más fácil recordar palabras que números, por esa razón se crearon los servidores DNS. Estos servidores se encargan de traducir los nombres de dominio a direcciones IP. Pero, espera ¿qué es un nombre de dominio?

Dominios

Los dominios son nombres que se utilizan para identificar una dirección IP. Por ejemplo, el dominio de esta página es magicweb.dev. Este nombre si es algo que conoces, ¿verdad?

Servidores DNS

Puedes imaginar un servidor DNS como una tabla que almacena los nombres de dominio y sus direcciones IP. Cuando tu navegador necesita acceder a una página web, pregunta a un servidor DNS por la dirección IP del dominio. Una vez que tiene la dirección IP, puede acceder a la página web.

DominioIP
google.com142.250.184.174
youtube.com172.217.17.14
instagram.com31.13.83.174

Este proceso que acabas de hacer tú, lo hace tu navegador de forma automática.

Los puertos por defecto

Vale, ya sabemos cómo has podido acceder a esta página sin saber mi dirección IP. El navegador ha preguntado a un servidor DNS por la dirección IP de este dominio y ha accedido a la página, pero, si recuerdas, dijimos que la IP sería como la dirección de el edificio, aún necesitamos el puerto, es decir, la vivienda en concreto a la que queremos que llegue el mensaje.

¿Cómo has podido acceder aquí sin saber el puerto?

Existen unas convenciones que determinan el número de puerto por defecto de cada servicio. Esto no es algo obligatorio, por lo que el administrador del servidor puede cambiar el puerto de un servicio a otro distinto siempre que esté libre.

¿Por qué seguir las convenciones entonces?

Este es un gran ejemplo, tú no has tenido que introducir el puerto para entrar aquí, eso es gracias a que el navegador ha seguido la convención de que los servidores web usan el puerto 443 cuando la conexión es por HTTPS y el puerto 80 cuando es por HTTP. (las diferencias entre HTTP y HTTPS las veremos más adelante) Si mi servidor web estuviera escuchando en otro puerto, no podrías haber accedido a esta página sin conocerlo.

Aquí puedes ver el puerto por defecto de los principales servicios de internet:

ServicioPuerto
Servidor web (HTTP)80
Servidor web seguro (HTTPS)443
FTP (Control)21
FTP (Datos)20
SSH22
Telnet23
SMTP25
DNS53
DHCP (Servidor)67
DHCP (Cliente)68
TFTP69
HTTP Proxy8080
POP3110
IMAP143
SNMP161
LDAP389
Samba (SMB/CIFS)445
MySQL3306
PostgreSQL5432

En el siguiente capítulo

Ya conoces todos los procesos que hace el navegador por tí, para que tú únicamente tengas que introducir el nombre de dominio de la página a la que quieres acceder y ya estés dentro. Cuando establecemos una conexión con un servidor web, lo hacemos a través de HTTP o HTTPS, en el siguiente capítulo te enseñaré la diferencia entre ambas.