Configurar tu propio servicio de nombres (DNS) con ISPConfig
Internet funciona con números IP y para pasar de un nombre de dominio a su dirección numérica IP se utiliza el Sistema de Nombres de Dominio DNS. Puedes configurar tu propio servicio de nombres o utilizar, por ejemplo, el servicio de nombres de tu proveedor de alojamiento. En cualquiera de los dos casos, se establece un mapeo del Nombre de Dominio Completamente Cualificado a un número IP. Por ejemplo, el FQDN mail.howtoforge.com tiene la dirección 78.46.214.220.
Este tutorial utiliza el nombre de dominio xyzzy.tld. El nombre de host es un nombre dado a un host, por ejemplo, foobar. Combinando el nombre de host y el nombre de dominio se obtiene el Nombre de Dominio Completamente Cualificado FQDN, por ejemplo, foobar.xyzzy.tld.
Si el dominio se va a utilizar fuera de tu propia organización, hay que registrarlo. El registrador pide dos servidores de nombres. Al menos algunos registradores permiten registrar primero y dar los servidores de nombres más tarde, quizá hasta un mes después. Pero el registrador amenaza con revocar tu nombre de dominio si no consigue dos servidores de nombres que funcionen.
Si quieres gestionar tus propios servidores de nombres, necesitas dos hosts de servidores de nombres. Si sólo tienes un host, puedes configurarlo para que ejecute sitios web, correos electrónicos, bases de datos, etc. y el servicio de nombres, pero entonces el segundo servidor de nombres debe organizarse de alguna manera.
Si proporcionas servicio de nombres sólo dentro de tu propia organización, no necesitas registrar el dominio y puedes tener sólo un servidor de nombres.
La parte de ISPConfig de este tutorial supone que se ha instalado una configuración multiservidor, con un host con todo menos el servicio de nombres, y dos hosts para el servicio de nombres. Tres hosts en total. Los nombres de los hosts son web, ns1 y ns2. Puedes utilizar sólo dos hosts si web ejecuta también el servicio de nombres y el otro host es también servidor de nombres.
El servicio de nombres tiene registros, de varios tipos. Establece los registros A con el número IP de tus hosts. Si se utiliza IPv6, es un registro AAAA. Si tienes tres hosts, establece tres registros A. Establece dos registros NS con los nombres de host del servidor de nombres.
Recoge la información necesaria así
host o dominio | Dirección IP | Utilizado para |
---|---|---|
xyzzy.tld | 192.168.260.71 | dirección de la página web |
web | 192.168.250.71 | servidor web |
ns1 | 192.168.250.73 | servidor de nombres |
ns2 | 192.168.258.75 | servidor de nombres |
1.1 Usando ISPConfig 3.x
Instala los tres hosts y ISPConfig en ellos utilizando una configuración multiservidor. Utilicé Debian GNU/Linux 9.5 e ISPConfig 3.1.12 al probar este tutorial.
Si planeas tener varios dominios, es más fácil configurar las Plantillas DNS. Ver el capítulo 4.8.1.3 Plantillas del manual de ISPConfig. Aquí sólo se añade un dominio, por lo que no se utilizan las plantillas.
Ve a la pestaña DNS y pulsa «Añadir nueva zona DNS manualmente». Esta zona es el archivo de configuración de tu dominio, puedes considerar que es más o menos lo mismo que el dominio que quieres utilizar.
Las capturas de pantalla muestran cómo rellenar el formulario de la zona DNS. Si estás configurando esta zona para un cliente, introduce el cliente en el formulario. Puedes dejarlo vacío si configuras esta zona para ti o no quieres crear clientes en ISPConfig.
Guarda y ve a la pestaña Registros.
En la pestaña Registros, añade registros pulsando el botón verde del registro deseado. Por ejemplo, para obtener un registro A pulsa el botón verde con A. Cuando escribas nombres de host FQDN, recuerda añadir el carácter de punto «.» al final del nombre. Algunos campos de los formularios DNS de ISPConfig lo necesitan para crear una entrada de servicio de nombres que funcione correctamente. Es más fácil escribirlo siempre que recordar dónde no es necesario.
Puedes añadir más registros si quieres.
La bola roja con un número en la parte superior de la ventana del Panel de ISPConfig muestra que se está guardando en el disco. El número muestra cuántos registros quedan por escribir. Espera dos minutos o hasta que la bola roja desaparezca antes de probar, de lo contrario puedes estar probando las configuraciones antiguas.
Si necesitas más servidores de nombres, o tal vez sólo tenías un host donde instalaste ISPConfig, puedes añadir hosts a la configuración de ISPConfig. Para los hosts que sólo ejecutan el servicio de nombres, incluso un pequeño host es suficiente. Si puedes instalar Linux e ISPConfig en el host y tiene una dirección IP estática, puedes usarlo como servidor de nombres. Puedes ejecutarlo en tu oficina o en tu casa, pero la dirección IP estática puede ser difícil de conseguir o costosa. Los proveedores de alojamiento tienen ofertas pequeñas y baratas, y puedes conseguir esa dirección IP estática. Puedes configurar un multiservidor ISPConfig, en el que un host esté en algún lugar y el otro en otro.
Si estás confundido, lee el manual de ISPConfig.
1.2 Usar el servicio de nombres de los proveedores
Omite esto si ya has utilizado ISPConfig para configurar el servicio de nombres.
Si tus anfitriones están en un proveedor de alojamiento, probablemente ofrezcan un servicio de DNS para sus clientes de alojamiento. O puedes encontrar un proveedor de servicios DNS.
Sobre cómo utilizar esos servicios, es difícil dar un consejo preciso. Probablemente cada proveedor tiene un sistema diferente. Sin embargo, todos ellos necesitan que introduzcas la información que has reunido en la tabla del principio.
Lee el capítulo anterior y adáptate al formulario de entrada de tu proveedor.
Lo más probable es que el proveedor de alojamiento o de DNS tenga un conjunto de servidores de nombres, y que todos los clientes de DNS los utilicen. Los servidores de nombres probablemente se llamen ns1.tuproveedor.com, ns2.tuproveedor.com. Es posible que el proveedor ofrezca registros de cola, de modo que tus servidores de nombres aparezcan con los nombres ns1.xyzzy.tld, ns2.xyzzy.tld. Examina las instrucciones de tu proveedor para saber si los registros glue están disponibles y cómo utilizarlos.
1.3 Prueba
Acuérdate de comprobar que el servicio de nombres funciona ahora correctamente. Entra en el host ns1 o ns2 y empieza a hacer pruebas. Este ejemplo se ejecuta en Debian GNU/Linux 9.5 Stretch, supongo que Ubuntu es más o menos igual. Otros sistemas operativos pueden ser diferentes. Si haces la prueba en Windows, no tiene el comando host, utiliza en su lugar nslookup.
root@ns1:~# host web.xyzzy.tld 192.168.250.73 Using domain server: Name: 192.168.250.73 Address: 192.168.250.73#53 Aliases: web.xyzzy.tld has address 192.168.250.71 root@ns1:~#
La prueba anterior muestra que el servidor de nombres utilizado es 192.168.250.73 y resuelve el nombre web.xyzzy.tld a la IP 192.168.250.71, que es lo que queremos en este caso. Probarlo así es útil porque
- el comando host comprueba el servicio de nombres, si haces un ping al nombre del host puede buscarlo primero en el archivo /etc/hosts y, por tanto, puede que no compruebe el servicio de nombres en absoluto.
- El número de IP en el comando host después del FQDN es la dirección del servidor de nombres al que se envía la consulta. De esta forma nos aseguramos de que estamos probando el servidor de nombres que acabamos de configurar.
- El número IP se utiliza para el servidor de nombres en lugar del nombre de host, ya que si el servicio de nombres no funciona el nombre puede no resolverse con el número IP previsto, por lo que es mejor utilizar la dirección IP directamente.
Comprueba otros nombres de host que hayas configurado de forma similar.
- Si la dirección IP devuelta es incorrecta, ve a corregirla
- Si no se encuentra, comprueba la ortografía
- Si no se encuentra, comprueba el punto al final del FQDN en ISPConfig donde escribiste los nombres
- Si «la conexión se ha interrumpido, no se ha podido alcanzar ningún servidor»: el servidor de nombres no está funcionando o se ha perdido la conexión de red. Comprueba la red haciendo un ping al número IP, por ejemplo. Comprueba que el host está funcionando. Comprueba que el servicio de nombres está funcionando, en Debian y Ubuntu con
systemctl status bind9.service
.
- Si con todo lo anterior no consigues que el servicio de nombres funcione, ve al capítulo Herramientas.
Comprueba la información de la zona, especialmente los servidores de nombres, así:
root@ns1:~# dig @192.168.250.73 xyzzy.tld ; <<>> DiG 9.10.3-P4-Debian <<>> @192.168.250.73 xyzzy.tld ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64352 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;xyzzy.tld. IN A ;; ANSWER SECTION: xyzzy.tld. 3600 IN A 192.168.250.71 ;; AUTHORITY SECTION: xyzzy.tld. 3600 IN NS ns1.xyzzy.tld. xyzzy.tld. 3600 IN NS ns2.xyzzy.tld. ;; ADDITIONAL SECTION: ns1.xyzzy.tld. 3600 IN A 192.168.250.73 ns2.xyzzy.tld. 3600 IN A 192.168.250.75 ;; Query time: 0 msec ;; SERVER: 192.168.250.73#53(192.168.250.73) ;; WHEN: Fri Aug 10 15:41:53 EEST 2018 ;; MSG SIZE rcvd: 122 root@ns1:~#
Dig obtiene el servidor de nombres al que envía la consulta desde el parámetro @. Pon ahí el número IP del servidor de nombres.
Si dig muestra los registros NS correctamente y los números IP correctos para los servidores de nombres en los registros A, entonces las cosas van bien.
Ahora haz la prueba anterior utilizando el otro servidor de nombres, no necesitas entrar en ns2, simplemente ejecuta los comandos de nuevo pero utiliza el número IP del otro servidor. Esto es para asegurarte de que también el otro servidor de nombres funciona como debería.
Puedes hacer más pruebas configurando tu estación de trabajo para que utilice estos nuevos servidores de nombres que has configurado. Necesitas cambiar los servidores DNS en tu estación de trabajo , busca cómo hacerlo para tu sistema operativo en el manual o desde Internet. En Linux puedes editar el archivo /etc/resolv.conf. En Windows está en Configuración de red (el mismo lugar donde se configura la obtención de la dirección IP automáticamente).
1.4 Servicio de nombres inverso
Omite esto si no necesitas el servicio de nombres inverso (los registros PTR).
El servicio de nombres inverso resuelve el nombre cuando se le da una dirección IP. Es la operación inversa del servicio de nombres habitual.
Si configuras el servicio de nombres interno de tu organización, puedes configurar el servicio de nombres inverso en los mismos servidores de nombres. Si utilizas ISPConfig, crea primero la zona inversa y luego crea registros PTR en esa zona para cada número IP que tengas.
Si el servicio de nombres inverso debe funcionar desde la Internet pública, entonces no puedes utilizar tu propio servidor de nombres, ya que lo más probable es que no sea un servidor de nombres autoritativo para la zona inversa de la IP. Si lo es, debes saberlo. Ponte en contacto con tu proveedor de servicios o con la empresa que te dio tus números IP, y pídeles que configuren el servicio de nombres inverso. Indícales los registros PTR que necesitas, o averigua cómo utilizar la interfaz de usuario web que la empresa de alojamiento probablemente proporciona para utilizar el servicio de nombres inverso.
Para configurar el servicio de nombres inverso con ISPConfig, crea la Zona DNS para el servicio inverso, debe ser nombrada con los tres primeros octetos del número IP en orden inverso con «.in-addr.arpa» añadido al final. En este caso los números IP son de la subred 192.168.250/24, por lo que la zona inversa se denomina 250.168.192.in-addr.arpa. Recuerda añadir también registros NS a la zona inversa.
En esa zona inversa, crea registros PTR de esta manera:
La prueba es fácil con el comando host, así:
root@ns1:~# host 192.168.250.71 192.168.250.73 Using domain server: Name: 192.168.250.73 Address: 192.168.250.73#53 Aliases: 71.250.168.192.in-addr.arpa domain name pointer web.xyzzy.tld.
Es posible crear muchos registros PTR para el mismo número de IP. Entonces la consulta inversa los devuelve todos. Puede que no quieras esto, así que no lo hagas a menos que sepas lo que estás haciendo.
Si configuras un servidor de correo, por ejemplo, mail.xyzzy.tld, tienes que configurar el registro PTR, ya que la mayoría de los servidores de correo comprueban que el número de IP de envío se resuelve con el nombre de host que utiliza el servidor de correo.
1.5 Herramientas
Si sospechas que el servicio de nombres no se ha iniciado, comprueba con
systemctl status bind9.service
Si muestra «Activo: activo (en ejecución)…» entonces el servicio de nombres está funcionando. No te preocupes por las posibles líneas«red inalcanzable resolviendo … AAAA», si las obtienes significa que no tienes red IPv6 disponible.
Si el servicio de nombres está funcionando pero las pruebas con el comando host no devuelven respuestas, puede ser que el archivo de zona esté defectuoso. Utiliza named-checkzone si bind no acepta la zona. El archivo de zona defectuoso se encuentra (en Debian GNU/Linux) en el archivo /etc/bind/pri<nombre de la zona>.err, es decir, .err añadido al final del nombre del archivo. Comprueba así:
root@ns1:~# named-checkzone 250.168.192.in-addr.arpa /etc/bind/pri.250.168.192.in-addr.arpa.err zone 250.168.192.in-addr.arpa/IN: has no NS records zone 250.168.192.in-addr.arpa/IN: not loaded due to errors. root@ns1:~#
Repara los errores, en ISPConfig si lo configuraste con el Panel ISPConfig.
Puede haber errores en el archivo de registro, para e inicia el servicio de nombres y mira lo que hay en el archivo /var/log/syslog. Por ejemplo con
grep named /var/log/syslog
Hay sitios web que comprueban la configuración de tu servicio de nombres, puedes utilizar los buscadores de Internet para encontrarlos. Conozco zonecheck.org, mxtoolbox.com, zonemaster.net.
1.6 Obtener ayuda
Si pides ayuda en el foro, ocultar el nombre del dominio dificulta la ayuda. Si revelas cuál es el dominio, es fácil comprobar la configuración y dar consejos si algo va mal. Si no puedes revelar el nombre del dominio públicamente y el uso de este Tutorial y la documentación de Interwebs no te ayuda, busca a alguien en quien puedas confiar tu nombre de dominio y que conozca el servicio de nombres, y pídele ayuda con tu dominio.
1.7 Registrar un dominio
Cuando el servicio de nombres funciona bien para tu zona, puedes registrarla, o si ya estaba registrada anteriormente, puedes añadir servidores de nombres al registro y el dominio estará disponible en Internet, después de 4 a 48 horas mientras la información del servicio de nombres viaja por todo el mundo.
Si registras xyzzy.tld y tiene un servidor de nombres ns1.xyzzy.tld, das números IP para los servidores de nombres en lugar de nombres de host. Si sólo das el nombre de host ns1.xyzzy.tld, ¿cómo se puede encontrar el servidor de nombres? El único lugar donde está disponible el número IP es en ns1.xyzzy.tld, pero ¿cómo acceder a él sin conocer el número IP? Otra forma de resolver este dilema es utilizar registros de cola (ver anteriormente), entonces puedes utilizar nombres en lugar de números IP para tus servidores de nombres.
Cuando registres otro dominio plugh.tld, puedes dar a los servidores de nombres como nombres de host ns1.xyzzy.tld y ns2.xyzzy.tld, ya que el dominio xyzzy.tld ya está bien registrado y los servidores de nombres son conocidos.