DNS hacia su VPS y DNS inverso
Módulo 7: Dominio, servidor web y https · Tiempo de lectura: 10 minutos
Objetivo de aprendizaje: Después de esta lección, usted podrá hacer que un dominio o subdominio apunte a su VPS con registros A y AAAA, configurar correctamente el DNS inverso de su servidor y comprobar que nombre y dirección coinciden en ambos sentidos.
Conceptos clave: registro A, registro AAAA, TTL, un subdominio por servicio, www, nombre de host del servidor, PTR, DNS inverso, DNS inverso confirmado en sentido directo (FCrDNS), CAA, olvidar IPv6
De la dirección IP al nombre
Hasta ahora ha accedido a su servidor con su dirección IP, por ejemplo ssh anna@192.0.2.10. Para un sitio web, un certificado (lección 7.3) y los servicios del módulo 9 necesita un nombre. Ese vínculo se crea en el DNS de su dominio, en el proveedor que gestiona su DNS: su registrador, su empresa de hosting o un servicio de DNS. El VPS en sí no interviene; su servidor no "sabe" qué nombres apuntan a él.
Los fundamentos del DNS los aprendió en el curso de DNS. Para un VPS necesita sobre todo dos registros:
| Registro | Qué hace | Ejemplo |
|---|---|---|
| A | nombre a dirección IPv4 | web1.example.com. 3600 IN A 192.0.2.10 |
| AAAA | nombre a dirección IPv6 | web1.example.com. 3600 IN AAAA 2001:db8::10 |
Normalmente su VPS tiene una dirección IPv4 fija y también una IPv6. En ese caso, configure ambos registros. Los visitantes con IPv6 (en los Países Bajos, una gran parte de las conexiones domésticas y de las redes móviles) usarán entonces IPv6, y el resto IPv4.
¿Qué nombres crea?
Una distribución habitual para un VPS con un sitio web y algunos servicios:
web1.example.com. A 192.0.2.10 ; el propio servidor (nombre de host, PTR)
web1.example.com. AAAA 2001:db8::10
example.com. A 192.0.2.10 ; el sitio web
example.com. AAAA 2001:db8::10
www.example.com. CNAME example.com.
status.example.com. CNAME web1.example.com. ; Uptime Kuma (lección 9.4)
kluis.example.com. CNAME web1.example.com. ; Vaultwarden (lección 9.4)Aquí hay varias decisiones:
- El servidor tiene su propio nombre (
web1), independiente del sitio web. Ese nombre lo usa para SSH, para el DNS inverso y como nombre de host del sistema. Si más adelante el sitio web se traslada a otro servidor,web1sigue siendo correcto. - Un subdominio por servicio. Uptime Kuma y Vaultwarden reciben cada uno su propio nombre. Esto es mucho más sencillo (y más seguro) que colgar los servicios de una ruta como
example.com/kluis: cada servicio obtiene su propio certificado, las cookies no se mezclan y puede trasladar un servicio a otro servidor más adelante cambiando un solo registro. - CNAME para los subdominios. Un CNAME hacia
web1significa que, si cambia la dirección IP del servidor, solo tiene que modificar los registros deweb1. En el dominio raíz (example.com) no puede haber un CNAME; ahí configura A y AAAA.
El nombre de host del propio sistema se configura en el servidor:
anna@web1:~$ sudo hostnamectl set-hostname web1.example.com
anna@web1:~$ hostname -f
web1.example.comCompruebe también que /etc/hosts no contenga un nombre antiguo. Un nombre de host correcto es especialmente importante si el servidor llega a enviar correo.
TTL: con qué rapidez se propaga un cambio
El TTL (time to live) es el número de segundos durante los que los resolvedores pueden recordar una respuesta. Con 3600, puede pasar hasta una hora antes de que todo el mundo vea una dirección nueva. Si va a trasladar un sitio web a su VPS, baje el TTL a 300 (cinco minutos) un día antes, espere al menos lo que dure el TTL antiguo, cambie la dirección y después vuelva a subir el TTL. Es exactamente el plan de pasos del curso de DNS, lección 6.3.
Compruebe con dig (curso de DNS, lección 8.2) lo que ve el resto de internet, y pregunte a un resolvedor público en lugar de a su propio ordenador:
anna@laptop:~$ dig +short A example.com @1.1.1.1
192.0.2.10
anna@laptop:~$ dig +short AAAA example.com @1.1.1.1
2001:db8::10En Windows: Resolve-DnsName example.com -Type AAAA -Server 1.1.1.1.
La trampa: un registro AAAA sin IPv6 que funcione
Si configura un registro AAAA, el servicio también tiene que ser accesible de verdad por IPv6. Un error frecuente: el registro existe, pero el servidor web solo escucha en IPv4, o el firewall no deja pasar IPv6 (lección 5.2), o IPv6 no está configurado en el VPS. Los visitantes con IPv6 ven entonces un sitio lento o que no carga, mientras que a usted le "funciona sin problemas" porque quizá en casa solo tiene IPv4. Let's Encrypt también prueba primero IPv6 si existe un registro AAAA (lección 7.3). Si su servidor da una respuesta distinta por IPv6 que por IPv4, la solicitud del certificado falla.
Por eso, pruebe IPv6 por separado, desde otra máquina con IPv6: curl -6 -I https://example.com. Si usted no dispone de IPv6, use una prueba en línea como internet.nl.
DNS inverso: de la dirección de vuelta al nombre
El DNS inverso vincula una dirección IP de vuelta a un nombre, mediante un registro PTR (curso de DNS, lección 4.6). Ese registro no está en la zona de su dominio, sino en la zona de la dirección IP, que pertenece a quien gestiona la dirección: su proveedor de VPS. Por tanto, el PTR se configura en el panel del proveedor, no en su propio DNS.
¿Por qué hacerlo?
- Correo. Los servidores de correo receptores rechazan o desconfían del correo procedente de una dirección sin un DNS inverso correcto. Si su VPS envía correo (aunque solo sea un aviso de un formulario), esto es obligatorio (consulte el curso Correo electrónico en orden, lección 5.1).
- Reconocimiento. En los registros y en los traceroutes, otros ven
web1.example.comen lugar de un nombre genérico del proveedor. - Buenas prácticas. Algunos servicios y filtros de spam penalizan las direcciones con un PTR genérico o inexistente.
La regla es el DNS inverso confirmado en sentido directo (FCrDNS): la dirección apunta con PTR a un nombre, y ese nombre apunta con A o AAAA de nuevo a la misma dirección. Así que primero cree los registros A y AAAA, y después solicite el PTR, tanto para IPv4 como para IPv6.
anna@laptop:~$ dig +short -x 192.0.2.10
web1.example.com.
anna@laptop:~$ dig +short A web1.example.com
192.0.2.10
anna@laptop:~$ dig +short -x 2001:db8::10
web1.example.com.
anna@laptop:~$ dig +short AAAA web1.example.com
2001:db8::10Si en las cuatro consultas obtiene la respuesta esperada, la ida y la vuelta coinciden.
CAA: ¿quién puede emitir certificados?
Con un registro CAA (curso de DNS, lección 5.2) indica qué emisores de certificados pueden emitir certificados para su dominio. Si solo usa Let's Encrypt:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"No es obligatorio, pero es una capa adicional recomendable. Atención: si ya tiene un registro CAA con otro emisor, Let's Encrypt rechazará su solicitud. Por eso, compruébelo primero con dig CAA example.com.
En la práctica: el DNS inverso en la pantalla del VPS
En WebOké, el DNS inverso se configura en la pantalla del VPS, en la pestaña "ISO y rDNS". Si el DNS de su dominio también está en WebOké, el panel puede crear los registros A y AAAA por usted en el momento; si el DNS está en otro sitio, primero cree usted esos registros y después introduzca el nombre completo. En otros proveedores, esta opción se llama "Reverse DNS", "rDNS" o "PTR" en el panel de cliente; en algunos tiene que solicitarlo mediante un ticket. Funciona igual en todas partes: primero el nombre hacia la dirección, después la dirección hacia el nombre.
Resumen
- Un nombre se vincula a su VPS con un registro A (IPv4) y un registro AAAA (IPv6), en el DNS de su dominio.
- Dé al servidor su propio nombre (
web1.example.com) y a cada servicio su propio subdominio; los CNAME hacia el nombre del servidor facilitan las migraciones. - Baje el TTL antes de una migración y compruebe con
digen un resolvedor público. - No configure un registro AAAA si el servicio no funciona realmente por IPv6; pruebe IPv6 por separado.
- El PTR se configura en su proveedor de VPS; la ida y la vuelta deben coincidir (FCrDNS), para IPv4 y para IPv6.
Cuestionario
Ejercicio
Ejercicio Z7.1: A, AAAA y PTR de su servidor. Dé a su servidor su propio nombre (por ejemplo web1.<jouwdomein>), cree los registros A y AAAA y configure el DNS inverso en su proveedor. En el ejercicio, introduzca el nombre de su servidor, la dirección IPv4 y la IPv6, y el nombre que obtuvo con dig -x para ambas direcciones. El programa consulta en directo los registros A y AAAA y el PTR de ambas direcciones, y comprueba que todo coincide en ambos sentidos. Si su servidor no tiene IPv6, solo comprueba IPv4 y lo indica en naranja.
Para saber más
- Enviar correo desde su VPS y configurar el DNS inverso
- IPv6 en WebOké
- Curso gratuito de DNS 3.1: Registros A y AAAA
- Curso gratuito de DNS 4.6: Reverse DNS (PTR): del número de vuelta al nombre
- Curso gratuito de DNS 5.2: CAA: ¿quién puede emitir certificados?
- Curso gratuito de DNS 8.2: Consultar el DNS con dig y nslookup
