Contexto
En todos los sistemas operativos hay, en algun lugar, hay una lista de IPs y sus respectivos dominios (en Linux y algunos otros UNIX es /etc/resolv.conf). Esto existe porque internet se entiende por direcciones IP, no por letritas sin sentido (o lo que llamamos dominios). Cuando esto fue concebido, apenas había internet a que conectarse, entonces esto funcionaba como una suerte de alias para cada IP, en lugar de 192.132.1.13 ahora se llama cafeteria.ingenieria. Repita esto con mil millones de sitios, y por favor que tenga coherencia con los aliases que otros le dan a esa misma IP, que sino el asunto falla… Mejor que lo haga alguien más.
Entendiendo que es el DNS
DNS (Domain Name System) es un sistema descentralizado para asociar una variedad de información a un dominio especifico. Su uso más común es el de conocer la IP asociada a un dominio, pero puede hacer algunas cosillas más.
Por ejemplo, con este mismo foro, foro.linuxchad.org.
En internet todo va sobre direcciones IP, entonces, si yo no se cual es, y mi computadora no sabe, entonces hay que preguntarle a quien sí sepa, ese es el servidor DNS.
Preguntamos a un DNS sobre el dominio:
# El comando que ven es una herramienta que pueden usar para hacer consultas directas a un servidor DNS
$ nslookup foro.linuxchad.org 1.1.1.1 # Le preguntamos a Cloudflare
Server: 1.1.1.1
Address: 1.1.1.1#53
Non-authoritative answer:
Name: foro.linuxchad.org
Address: 65.20.102.157
Name: foro.linuxchad.org
Address: 2a05:f480:2800:14a7:5400:4ff:feb5:586
$ nslookup foro.linuxchad.org 2606:4700:4700::1111 # De nuevo a Clouflare, pero ahora por IPv6
Server: 2606:4700:4700::1111
Address: 2606:4700:4700::1111#53
Non-authoritative answer:
Name: foro.linuxchad.org
Address: 65.20.102.157
Name: foro.linuxchad.org
Address: 2a05:f480:2800:14a7:5400:4ff:feb5:586
# Alternativamente pueden usar dig, dog, etc, para hacer consultas... Y lean el manual
Y así, con solo una IP podemos conocer todo (o por lo menos todo lo que sepa ese servidor) sobre los distintos dominios en internet.
Pero yo nunca he configurado un DNS
Eso es muy fácil de entender, y es que en un contexto domestico la mayoria de dispositivos se conectan a una red mediante un protocolo cliente/servidor llamado DHCP. No voy a explicar a detalle como funciona, de momento quedense con que si se conectan con este protocolo, en la misma red hay un servidor que se encarga de mandarle a los clientes una configuración predeterminada para la red.
Si quieres conocer que DNS estas usando, la mayoria de sistemas operativos en su sección de red muestran que DNS estas usando.
Si prefieres la terminal, en Linux y otros tipos de UNIX puedes consultarlos en el archivo /etc/resolv.conf
¿Y para qué cambiar mi servidor DNS?
Hay algunos motivos.
Para empezar, y como podrán imaginar, un servidor DNS puede guardar datos sobre las consultas que realizas, como la hora, tu IP, y ya se saben el resto, a buscar alguien que te trate bonito y con respeto.
También, como cualquier servicio descentralizado, diferentes servidores pueden tardar diferente tiempo en responder.
Y lo más interesante, puedes resolver conexiones a una IP invalida. Esta es la base de proyectos como el DNS de AdGuard.
Ya, ¿Y cómo configuro mi DNS?
(Apto solo para Linux)
Si usas un escritorio como Plasma o GNOME puedes configurarlo en tu sección de red. Si no usas un escritorio completo tambien puedes usar nm-connection-editor.
Yo te voy a enseñar a hacerlo con la CLI de NetworkManager, porque es fácil, además de que prácticamente todos los escritorios usan de fondo así que lo que hagas con la CLI se va a ver reflejado en las GUI de sus respectivos escritorios.
# Este ejemplo configura los DNS de Cloudflare
$ nmcli connection modify TU_CONEXION ipv4.dns "1.1.1.1 1.0.0.1"
$ nmcli connection modify TU_CONEXION ipv6.dns "2606:4700:4700::1111 2606:4700:4700::1001"
# TU_CONEXION es el SSID de tu WiFi, o el nombre que tenga tu red cableada
# No olviden reiniciar su conexión para que los cambios se apliquen.
Si usas DHCP, que probablemente sea así, estos servidores DNS toman prioridad por sobre los que el servidor DHCP asigne.
Si te interesa puedes cambiar tu DNS por los de AdGuard para bloquear anuncios, o uno más privado (no se cual, pero alguno debe de haber).
En otra ocasión ya les enseñaré a hacer su propio DNS para que puedan acceder a dispositivos de su misma red con dominios personalizados en lugar de recordar sus IPs ![]()