Servidores DNS públicos y gratuitos

Introducción

El servicio de DNS (Domain Name System) se encarga de traducir los nombres de los dominios de los requerimientos a sus correspondientes direcciones IP para poder ser físicamente localizados y consultados.  Este procedimiento toma unos cuantos milisegundos los cuales a lo largo del día pueden significar cantidades significativas de tiempo.  En casos como este o de problemas específicos es conveniente algunas veces utilizar el servicio de servidores DNS diferentes a los provistos por el ISP.

A continuación se muestra una lista de los servidores DNS gratuitos y públicos que he recopilado.

Servidores DNS

  1. Google
    8.8.8.8
    8.8.4.4
  2. Google (IPV6)
    2001:4860:4860::8888
    2001:4860:4860::8844
  3. OpenDNS
    208.67.222.222
    208.67.220.220
  4. Norton DNS
    198.153.192.1
    198.153.194.1
  5. OpenNIC
    69.164.208.50
    216.87.84.211
  6. Level3
    209.244.0.3
    209.244.0.4
  7. DNS Advantage
    156.154.70.1
    156.154.71.1
  8. ScrubIT3
    67.138.54.120
    207.225.209.77
  9. Public-Root5
    199.5.157.131
    208.71.35.137
  10. Comodo Secure
    8.26.56.26
    8.20.247.20

Actualizar DynDNS.org desde Linux Ubuntu utilizando Inadyn

Introducción.

El portafolio de DynDNS incluye un servicio gratuito de DNS Dinámico (entre otros servicios algunos pagos) que permite asociar una dirección IP dinámica como la asignada por los proveedores de servicio de internet a las cuentas de banda ancha, a un nombre de dominio proporcionado por ellos.

La principal ventaja de este servicio es que se actualiza frecuentemente adaptando el DNS según se modifique la dirección dinámica del router, permitiéndole a los clientes acceder al servidor utilizando siempre el nombre DNS y desconociendo por completo la dirección IP o su eventual actualización.

El servicio de Free Dynamic DNS se puede solicitar directamente desde el sitio web de la empresa, http://www.dyndns.com/.  Del lado del cliente, nosotros, debemos configurar a los equipos para que actualicen dinámicamente la información del servicio cuando se detecte un cambio en la dirección IP local.  Esto frecuentemente se realiza en los enrrutadores.  Por ejemplo, los enrrutadores que se utilizan en los hogares, como era antes mi caso con un Netgear, permiten desde su misma interfaz web de administración suministrar los datos de la cuenta DynDNS.org y ellos se encargan de mantener actualizados los datos.

Ahora utilizo un enrrutador marca Scientific Atlanta 2325 el cual aparentemente no incluye esta facilidad por lo cual me veo obligado a implementarla en el servidor de desarrollo que utiliza Linux Ubuntu Server 9.10 como sistema operativo.

Para hacer esto utilizo Inadyn, un software para la actualización de DNS dinámicos que es muy fácil de utilizar e incluye el soporte a DynDNS.org y otros servicios mas.  Este paquete se puede utilizar en Linux (por supuesto), MacOS, OpenBSD e inclusive Windows.

Instalación & Configuración.

Instalación de los paquetes de Inadyn.

$ sudo aptitude install inadyn

Crear el archivo de configuración por defecto.

$ sudo cp /usr/share/doc/inadyn/examples/inadyn.conf /etc/inadyn.conf

Asegurar los permisos del archivo de configuración por defecto.

$ sudo chmod 600 /etc/inadyn.conf

Editar la configuración de Inadyn con la información específica del servicio de DynDNS.org.

$ sudo vi /etc/inadyn.conf

–username USUARIO
–password CONTRASEÑA
update_period_sec 3600
log_file /var/log/inadyn.log
alias DOMINIO_DYNDNS
background

Modifique el archivo de configuración de acuerdo a sus valores específicos.

  • USUARIO: su nombre de usuario en DynDNS.org.
  • CONTRASEÑA: la contraseña correspondiente al usuario mencionado anteriormente.
  • DOMINIO_DYNDNS: dominio que se configuró gratuitamente con la cuenta en DynDNS.org.

Crear un proceso cron para ejecutar Inadyn automáticamente al inicio del sistema operativo.

$ sudo crontab -e

@reboot /usr/sbin/inadyn

Comprobación del funcionamiento.

Cuando reinicie la máquina verifique que el proceso Inadyn se encuentre ejecutándose correctamente.

$ ps -A | grep inadyn

1149 ?        00:00:00 inadyn

$ cat /var/log/inadyn.log

INADYN: Started ‘INADYN version 1.96’ – dynamic DNS updater.
INADYN:IP: Error ‘0xb’ resolving host name ‘checkip.dyndns.org’

Verifique la dirección IP asociada al nombre DNS del servicio utilizando un ping por ejemplo.

$ ping ejemplo.gotdns.org

Si ejecuta la verificación desde la misma red interna del equipo, la dirección IP obtenida deberá ser la misma de su modem/router, la cual podrá verificar en servicios como http://whatismyipaddress.com/.

Relacionar el dominio DynDNS.org con un dominio privado.

Es posible relacionar el dominio que nos ofrece gratuitamente DynDNS (ejemplo.gotdns.org) con un dominio de nuestra propiedad.  Esto es muy útil ya que permite utilizar el dominio DNS oficial del administrador o de la empresa que lo está configurando haciendo que sea totalmente transparente para el usuario final que se está utilizando DynDNS.org en el intermedio para la conexión.

Para hacer esto sólo es necesario crear una nueva entrada en el servidor DNS incluyendo un registro CNAME entre el nuevo dominio y el asignado por DynDNS.org.

ejemplo.jorgeivanmeza.com IN CNAME ejemplo.gotdns.org

Gracias a lo anterior, el nuevo dominio (ejemplo.jorgeivanmeza.com) hará siempre referencia al original (ejemplo.gotdns.org) el cual se mantendrá siempre actualizado con los cambios de la dirección IP dinámica gracias a la configuración del Inadyn realizada anteriormente.

La configuración del DNS para agregar el CNAME varía el paquete de DNS u operador de hosting que se utilice.  Estos pasos describen los procedimientos necesarios con los principales operadores de hosting, en un servidor Linux y en un servidor Windows.

Enlaces.

Transfiriendo un proyecto a Dreamhost

Introducción.

Este mes realice la transferencia de un proyecto que estaba albergado en un hosting un tanto incómodo (poco espacio, no acceso al shell, bases de datos limitadas, no acceso por SFTP, …) hacia Dreamhost donde están hospedados los demás proyectos.  Este proceso incluyó la transferencia del dominio desde el Registrar anterior, la copia de archivos y la copia de las bases de datos.  Pensé que la parte de actualización de los dominios iba a ser mas tortuosa pero en realidad no fue nada difícil, sin embargo amerita su documentación para futuras referencias.

Transferencia del dominio.

Para transferir el dominio al Registrar de Dreamhost se debe contar con las siguientes condiciones obligatorias.

  • Ser un dominio .com, .net, .org o .info.
  • Tener una cuenta (Web ID) con Dreamhost.
  • El dominio a transferirse debe tener mas de 60 dias de adquirido/renovado.
  • Tampoco debe estar a punto de vencerse ya que el proceso toma algunos días y es abortado si este se vence durante la transacción.  Un rango de tiempo mínimo es de 2 semanas antes de su vencimiento.
  • No debe estar asegurado (locked) o retenido (on-hold) por el Registrar actual.
  • Se debe contar con el código de transferencia del dominio provisto por el Registrar.
  • Se debe contar con acceso a la cuenta de correo del administrador del dominio registrada con él ya que a esta se envía un correo de confirmación.

Para iniciar la transferencia se accede al panel de control de Dreamhost (http://panel.dreamhost.com/) a través de los menúes Domains > Reg. Transfer.  En el campo Transfer a registration to us se debe especificar el nombre del dominio que va a ser trasladado.  Posteriormente el sistema solicita el código de transferencia (Transfer Auth Code) que lo entrega el Registrar de orígen y la información del Whois que puede ser la de Dreamhost si se desea privacidad o sus datos propios.

En este momento se envía un correo de confirmación a quien aparezca como administrador del dominio, este correo contiene una autorización que debe ser activada en un plazo máximo de 7 días o la transacción se terminará automáticamente.  Esta información se puede consultar a través de Whois.  Este proceso puede tomar algunos días.

Para formalizar la transferencia del dominio es obligatorio que se renueve el dominio por un año mas.  Este tiempo se suma al que tenga ya contratado el dominio en ese momento.

Después de realizada la transferencia del registro se especifican los servidores DNS (Whois nameservers) que manejaran el nombre, ya sean los del hosting orígen si se desea que se siga utilizando (útil si no se ha hecho aún la copia de archivos) o a los siguientes servidores de Dreamhost para que se utilicen los archivos almacenados allí.

  • ns1.dreamhost.com
  • ns2.dreamhost.com
  • ns3.dreamhost.com

Para verificar el cambio del dominio utilice un navegador web o la herramienta ping junto con el nombre del dominio en cuestión.  En éxito deberá aparecer el nuevo sitio o la nueva dirección IP respectivamente, a la cual apunta el dominio.

Si utiliza Windows Vista como sistema operativo, probablemente necesite renovar el caché del DNS ya que este habrá almacenado el valor inicial y se demorará cierto tiempo en solicitar el nuevo, impidiéndo que sea tomado en cuenta el cambio en el DNS ya propagado.  Para hacer esto realice los siguientes pasos.

  1. Haga click sobre el menú de inicio desplegándolo.
  2. En el campo de texto ubicado en la parte inferior donde dice “Iniciar la búsqueda” escriba cmd.
  3. Presione las teclas CTRL + SHIFT + ENTER.
  4. Presione el botón Continuar para aceptar la ejecución del Símbolo del sistema con permisos de administrador.
  5. Ejecute el comando: ipconfig /flushdns

Copia de seguridad de la base de datos.

Mientras se realiza la transferencia del registro es necesario continuar con el proceso de la copia de seguridad de la base de datos.  Como mencioné, el hosting orígen no me daba acceso a la línea de comando así que no podía utilizar mysqldump así que la copia de seguridad se realiza a través de PHPMyAdmin.  El procedimiento es muy sencillo.

  1. Ingrese al PHPMyAdmin del servicio de hosting con el nombre de usuario y contraseña de la base de datos que se va a exportar.
  2. En la parte izquierda seleccione la base de datos que se va a exportar (es posible que aparezcan varias).
  3. En la parte media superior elija la etiqueta Exportar.
  4. Seleccione las tablas (por defecto todas) que desea exportar y el formato (por defecto SQL).
  5. Elija la casilla Deshabilitar la revisión de las llaves extranjeras para evitar futuros problemas con la restauración de las tablas en desórden.
  6. Seleccione las casillas Estructura y Datos para que sean incluídos en la copia de seguridad.
  7. En la parte inferior seleccione Enviar (genera un archivo descargable) y presione el botón Continuar.
  8. Almacene este archivo para posteriormente trasladarlo al nuevo hosting.

Creación de la base de datos y restauración de la copia de seguridad.

El primer paso es crear la nueva base de datos en la cuenta de Dreamhost, para esto realice los siguientes pasos.

  1. Acceda al Panel de Dreamhost.
  2. Navegue a través de los menúes Goodies > Manage MySQL.
  3. Ubique la sección Create a New MySQL Database.
  4. Ingrese la información de la nueva base de datos.
  5. Presione el botón Add new database now!.
  6. Tome atenta nota de la información suministrada en este punto.

El segundo paso corresponde a la restauración de la copia de seguridad realizada anteriormente.  Para hacerlo siga los pasos dispuestos a continuación.

  1. Acceda al PHPMyAdmin asociado a la cuenta.  Esto se hace accediendo al host (corresponde al valor del campo Use Hostname del paso anterior) de la base de datos desde un navegador web.
  2. Ingrese utilizando el nombre de usuario y contraseña especificados durante el paso anterior.
  3. Seleccione en la parte media superior la etiqueta Importar.
  4. En la sección Archivo a importar presione el botón Examinar y seleccione el archivo donde almacenó la copia de seguridad de la base de datos.
  5. Presione el botón Continuar para terminar el proceso.

Copia de los archivos al nuevo hosting.

Para este momento la transferencia del dominio ya ha sido realizada y la base de datos se encuentra lista, el problema es que el sitio aún está vacío.  El único acceso al hosting de orígen es a través de FTP motivo por el cual se siguen estos pasos para realizar la copia de lo archivos del proyecto.

  1. Inicie una sesión SSH con su cuenta de Dreamhost.  Para esto utilice un cliente SSH como Putty (Windows).
    • Como Host name escriba su nombre de dominio, el cual ya debe ser accesible desde su ubicación.
    • Como Connection type elija SSH.
    • Presione el botón Open.
  2. En los campos Login as y Password ingrese los datos correspondientes al usuario propietario de la cuenta asociada al dominio, que de paso, es diferente al usuario administrador de su cuenta de Dreamhost.
  3. Acceda al directorio donde se almacenarán los archivos de su sitio web.  Dreamhost crea en las cuentas de los usuarios, un directorio por cada dominio asociado.  Estos directorios tienen como nombre el mismo nombre del dominio.

    $ cd midomino.com

  4. Utilice wget para realizar la copia de los archivos del hosting original hacia la cuenta en Dreamhost.

    $ wget –mirror ftp://USUARIO:CONTRASEÑA@HOSTING_ORIGEN/RUTA

    Modifique los valores de USUARIO (usuario FTP del hosting orígen), CONTRASEÑA (contraseña del usuario FTP del hosting orígen), HOSTING_ORÍGEN (nombre o dirección IP) y RUTA (ubicación de los archivos a copiar).

Ajustes finales.

Realice los ajustes finales que requiera su proyecto como configurar la nueva ubicación y autenticación de las bases de datos, asegurarse que los enlaces funcionen correctamente, etc.

Enlaces.