DNS

Última revisión: 20 de diciembre de 2021

Las DNS

Las DNS permiten que un dominio apunte a la dirección IP qué va a servir el sitio web. Es importante que esta resolución sea muy rápida.

Su función más importante es «traducir» nombres inteligibles para las personas en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.

Con este sistema, cuando haces una llamada a un dominio como wpsysadmin.com, el dispositivo buscará la dirección IP a la que ha de conectarse y el navegador dirigirá las peticiones allí.

Optimización de las DNS

Cuando hacemos una petición a los servidores DNS lo que buscamos, en la mayoría de las ocasiones, es la dirección IP a la que corresponde dicho dominio o subdominio. Esto hace que podamos relacionar ese dominio o subdominio en concreto con su IP y almacenarla en la caché de DNS.

Pero en muchas ocasiones se configuran datos en las DNS como si se tratase de entradas CNAME, que no dejan de ser «alias» de otros resultados de estas. Esto significa que, si yo hago una petición de un subdominio y me devuelve un CNAME, tendré que realizar otra petición al servidor DNS para resolver la dirección IP de ese alias. Esta doble petición provoca que el proceso vaya más lento, por lo que se recomienda reducir el uso de CNAME a aquellas entradas de direcciones IP que no podamos controlar, como podrían ser servicios que nos dan terceros.

Aunque por norma general las DNS vienen configuradas por defecto, en un proyecto nuevo e importante nunca está de más configurar de forma personalizada los servidores DNS.

  • TTL: El TTL es el tiempo de vida (caché) de las DNS. Las DNS no es algo que cambie con frecuencia, hay que pensar en poner unos valores medianamente razonables y altos. Como mínimo hay que poner 60 minutos (3600) y no está de más plantearse incluso indicar 1 día (86400).
  • Dominios «exóticos»: Hay que tener cuidado con algunos dominios (por ejemplo los .LY), ya que se encuentran «lejos» de los usuarios finales. Estos dominios a nivel global suelen tener un TTL muy elevado (incluso 2 días) y puede haber problemas cuando el servicio falla. Además, la dependencia de los países es demasiado elevada. Los .LY tienen 2 servidores en Libia, 2 servidores en EE. UU. y 1 en Países Bajos, lo que hace tener mucha dependencia.
  • Distribución geográfica: Una forma de mejorar las peticiones DNS es hacer una especie de CDN de DNS, y distribuirlas geográficamente. A este sistema se le puede encontrar como Anycast.
  • DNS Públicas y Privadas: En las entradas DNS se pueden incluir IP privadas y públicas. Esto puede hacer que haya muchas resoluciones incorrectas. Lo mejor es separar las IP públicas de las corporativas o privadas en distintos dominios.
  • Desactivar la Recursividad: Por norma general los servidores DNS de un dominio concreto no son servidores DNS públicos, por lo que no es necesario tener activada la recursividad.

Elegir proveedor DNS

A la hora de optimizar las peticiones DNS deberemos partir de varias opciones.

La primera de las opciones es el uso de las propias DNS donde tengamos todo el servidor. Este caso es interesante en aquellos casos en los que la mayoría (80%) del tráfico se encuentra en el mismo país donde está el servidor y los usuarios.

La segunda opción es el uso de un proveedor de DNS gratuito aunque en estos casos debería ser un sistema Anycast. Aquí una lista de servicios gratuitos de DNS que existen en la red (ordenados alfabéticamente):

  • 1984: Aunque se centran en dar alojamiento, tienen su servicio de Free DNS para cualquier usuario.
  • BuddyNS: Aunque solo ofrecen 300K peticiones/mes, es más que suficiente y tienen una buena infraestructura distribuida.
  • ClouDNS: Aunque la versión gratuita no es muy amplia, no deja de ser otra opción distribuida importante y conocida.
  • Cloudflare: Ofrecen varios servicios y parece que ahora mismo tienen cerca del 40 % de la gestión de DNS del mundo.
  • FreeDNS: Es de estos servicios que la comunidad pone a disposición de todo el mundo, siempre actualizado y a la última.
  • Geoscaling: Lo interesante de este servicio es que permite distribuir las entradas dependiendo del punto de origen del usuario. Si un usuario está en América, lo mandas a un servidor en US, si está en Europa, a uno en DE…
  • Hurricane Electric Free DNS: Personalmente, el que más me gusta y uno de los que utilizo. Es visualmente feo, pero funcional y si sabes de DNS te deja hacer prácticamente de todo. Además, acaban de añadir soporte a las CAA y tienen servicio dinámico. Ofrecen 50 entradas gratuitas.
  • Namecheap FreeDNS: Aunque se centran en registrar dominios, puedes usar sus servicios de DNS de forma gratuita aunque el dominio no esté con ellos.
  • NS1: Tiene buena pinta, y su servicio de pago parece muy interesante. Ofrecen 50 entradas gratuitas con 500K consultas gratuitas.
  • Rackspace: Tienen el servicio simplemente gratis por darte de alta con ellos. Usan el estándar de BIND9 en modo Anycast.

La mayoría de estos servicios también disponen de una versión de pago. Otros servicios habituales de DNS globales son: