EdgeMAX - Custom DNS dinámico con Cloudflare

Resumen


Los lectores aprenderán a configurar DNS dinámico mediante API de Cloudflare para que apunte a la IP EdgeRouter.

Para el fondo, yo host DNS de mi dominio con Cloudflare y quería mi propia configuración DNS dinámico. Esto supone que Dynamic DNS ya está configurado y funcionando, ya que nos estamos enganchando a él.

Usamos la API de Cloudflare para actualizar un registro que apuntará a la IP de nuestro router. Modificaremos el script que genera la configuración del ddclient. Si te sientes incómoda con eso, podría ejecutar el script que escribimos a continuación via cron en su lugar.

1. encontrar el id del registro DNS en Cloudflare. Mina es un un registro llamado 'hogar' que debe apuntar a mi IP pública. Ejecute la siguiente y buscar el id del registro en la salida JSON. Obtienes tu token API en su cuenta de Cloudflare ajustes.

curl https://www.cloudflare.com/api_json.html \
  -d 'a=rec_load_all' \
  -d 'tkn=your_token_here' \
  -d 'email=your_email_here' \
  -d 'z=your_domain_here'

 2. en el router, crear un script en /config/scripts. Llamé a mina update_cf.sh. Poner esto en él:

#!/bin/sh
ip=`vbash -ic "show interfaces" | grep pppoe0 | awk '{print $2}'`
curl https://www.cloudflare.com/api_json.html \
-d 'a=rec_edit' \
-d 'tkn=your_token_here' \
-d 'email=your_email_here' \
-d 'z=your_domain_here' \
-d 'id=the_id_we_found_earlier' \
-d 'type=A' \
-d 'name=home' \
-d 'ttl=1' \
-d "content=$ip" \
> /dev/null

 Quizás tenga que ajustar su ip = línea de foo para obtener la interfaz correcta. El mio es PPPoE. También, es mi nombre del registro casero. Todo lo que pones aquí será el nombre después de que actualiza. El resto de la secuencia de comandos debe ser auto explicativo. No te olvides chmod + x ella.

Se puede ejecutar manualmente sin redirigiendo la salida de enrollamiento a/dev/null para ver si funciona generalmente.

3. es necesario ejecutar este cada vez que ejecuta ddclient, por lo que necesitará editar /opt/vyatta/sbin/vyatta-dynamic-dns.pl. Este script genera el archivo de configuración de ddclient. Línea 108 verás un montón de ' $output. = foo'. Añadir otra línea antes de la 'vuelta $output;' declaración que tiene este aspecto:

    $output .= "postscript=/config/scripts/update_cf.sh\n";

 Agrega la configuración de postscript el ddclient conf archivo la próxima vez es generado automáticamente. Va a suceder en el reinicio, aunque puede ser otra manera; Si hay, no lo saben, así que reiniciar el router.

Voilá, como ddclient funciona, actualiza tu proveedor de DNS dinámico y luego ejecuta el script que escribimos también actualizar el registro de Cloudflare, manteniéndolo al día con su dirección IP dinámica.

 

y Ubiquiti Employee

Tecnología de Zendesk