DNS Dinámico con Dynu

Si alguna vez has intentado montar un servidor casero, por ejemplo usando una raspberry pi con raspbian, te habrás percatado de que no es fácil acceder desde fuera de tu red local (Por ejemplo desde tu móvil a través de una conexión 3G) a tu máquina.

El principal problema es que tu proveedor de Internet, por defecto, no proporciona una ip fija de cara a Internet a tu router. Como bien sabrás tu router está conectado a dos redes:

  • Tu red de área local: En dónde están conectados tu portátil, tu móvil, etc. Y en cuya red tu router suele tener una ip fija del estilo 192.168.1.1

  • Internet, donde cada vez que se conecta, tu proveedor de Internet le proporciona, por norma general, una ip diferente[1] del estilo 80.143.218.42

Una posible solución sería contratar una ip estática: Servicio que, dependiendo de tu proveedor de Internet, puede tener un coste mensual bastante elevado. No obstante podría ser una solución adecuada en un entorno empresarial.

Otra solución es utilizar DDNS o DNS dinámico. Una empresa que, de momento, ofrece este servicio de forma gratuita[2] es Dynu

Creando una cuenta en Dynu

  1. Vamos a la página de Dynu

  2. Pinchamos en el botón [Sign Up] para crear una cuenta

Crear cuenta en Dynu

  1. Rellenamos los campos y pulsamos [submit].

  2. Una vez que hayamos creado la cuenta, vamos al panel de control de dynu

  3. En el panel de control pinchamos en DDNS Services
    Pinchar en DDNS Services

  4. En la sección Dynamic DNS Service pulsamos en [+Add]

  5. Dentro de Add Dynamic DNS en Top level elegimos un dominio que nos guste, por ejemplo dynu.net

  6. En Host ponemos un subdominio que esté libre. Algo como ru-server. (El dominio final resultante sería en este caso ru-server.dynu.net)

  7. Pulsamos en [+Add] y aparecerá algo como esto
    Creando dominio dinámico

  8. Nos limitamos a dejarlo como está, y pulsar en [save]. Como curiosidad la ip que aparece es nuestra ip pública, osea la ip de nuestro router de cara a Internet.

Si todo ha ido bien ya tenemos que nuestro dominio de [tercer nivel][3] apuntando a nuestra ip. Si quereís podéis hacer la prueba de intentar visitar vuestro dominio desde el navegador poniendo algo como http://ru-server.dynu.net y os encontraréis con que se carga la página de configuración de vuestro router. Tranquilos, esto solo funciona desde vuestra red local. La página de configuración de vuestro router sigue siendo inaccesible desde fuera de vuestra red local.

Pero hay un problema: El dominio solo apuntará de forma correcta a nuestra ip pública de forma temporal. En el momento que, por ejemplo, reiniciemos nuestro router, nuestro proveedor de Internet dará a nuestro router una nueva ip pública, y nuestro dominio dejará de apuntar a nuestra ip actual.

Para arreglar esto es necesario instalar en alguna máquina dentro de nuestra red local algún software que informe a dynu de cual es nuestra ip en cada momento. Existe software para Windows, Mac, Linux e incluso algunos routers tienen la opción de configurar DDNS.

Pero para este caso asumiré que tenemos un servidor con debian en nuestra red local. Y usaremos el programa [ddclient] para comunicarse con dynu para tener nuestro dominio siempre apuntando a nuestra ip pública.

Configurando ddclient

Asumiré que disponemos de una máquina con debian conectada a nuestro router.

  1. Instalamos ddcliente con el comando sudo apt-get install ddclient
  2. Si nos pregunta si queremos instalar los paquetes adicionales, le decimos que sí
  3. En Proveedores de servicio de DNS dinámico elejimos otro y pulsamos enter
    Proveedores de servicio de DNS dinámico
  4. En servidor de DNS dinámico ponemos api.dynu.com
    Servidor de DNS dinámio
  5. En protocolo ponemos dyndns2
    protocolo dyndns
  6. En nombre de usuario ponemos el nombre usuario con el que nos registramos en dynu
    Nombre de usuario
  7. En contraseña ponemos la contraseña con la que nos registramos en dynu. Nos pedirá que la confirmemos
    Contraseña
  8. Dejamos en blanco lo de interfaz de red
    Interfaz de red
  9. En nombre completo de dominio DynDNS ponemos el dominio que elegimos (del estilo de ru-server.dyndns.net)
    Nombre completo de dominio DynDNS
  10. Editamos /etc/ddclient.conf con el comando sudo nano /etc/ddclient.conf
  11. Añadimos la línea use=web, web=checkip.dynu.com/, web-skip='IP Address' en la primera línea bajo los comentarios. Guardamos los cambios con Control+O y salimos con Control+x
    Editar ddclient.conf
  12. Reiniciamos el servicio con el comando sudo /etc/init.d/ddclient restart para que los cambios surjan efecto
    Reiniciar ddclient

En principio ya quedaría configurado para que se actualice la ip. Si tienes dudas en la página de dynu hay una sección que describe como configurar ddclient con dynu


  1. Si quieres saber que ip tiene ahora mismo tu router puedes consultar una página que te diga que ip pública tienes. La página www.whatismyip.com te puede aportar esa información. ↩︎

  2. Cuando yo me introduje en el mundo de los servidores caseros, las dos empresas mas populares que ofrecian de forma gratuita entonces el servicio de dominio dinámico eran dyndns y no-ip. Por ambos servicios son ahora de pago ↩︎

  3. Es un dominio de tercer nivel por que pende de un dominio de segundo nivel (dynu.net en este caso) ↩︎