Aggiornare automaticamente DuckDNS dal proprio Raspberry

2 minuti di lettura
SCOPI DELLA GUIDA:
  • Tenere automaticamente aggiornato il proprio record DNS presso DuckDNS
  • Livello di difficoltà: medio/basso
CONCETTI AFFRONTATI:
  • installazione e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
  • Rete Wifi connessa ad Internet
  • Raspberry Pi configurato e funzionante con Raspbian
DISPOSITIVI FISICI UTILIZZATI:
GUIDA MAGGIORMENTE INDICATA PER:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (la presente guida ha puro scopo didattico)
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere la garanzia.
Revisione guida: 2.4

Abstract

DuckDNS è un servizio gratuito che permette di ottenere un nome host (definito dall’utente) associato al corretto IP del proprio modem.

Viene utilizzato spesso e volentieri da utenti Home Assistant (sia installato stand-alone su Raspbian che HASSIO) per accedere remotamente alla propria domotica personale; talvolta capita però (specialmente nella versione stand-alone su Raspbian) che, a fronte di un riavvio del modem, la piattaforma di integrazione non provveda all’update e, essendo possibilmente cambiato l’IP WAN associato al router, non sia più possibile raggiungere il proprio ambiente.

A prescindere dall’uso in domotica, la possibilità di conoscere sempre il proprio IP tramite la risoluzione di un nome host FQDN perennemente aggiornato è un vantaggio in termini di gestione, perché può essere utile per esempio avere accesso SSH (o altre modalità) al proprio Raspberry.

Assumeremo per questa guida che l’utente sia già iscritto a duckdns.org e abbia creato un proprio FQDN, che per questa guida assumeremo essere:

miodominio.ducksdns.org

Funzionamento

Il meccanismo di funzionamento è molto semplice. È infatti sufficiente contattare un determinato URL Internet per far sì che il proprio record venga aggiornato; tale URL è formattato in modo da contenere una chiave personale (o “token”) e il nome del nome dominio da aggiornare.

Quel che faremo è definire un processo automatico che, una volta ogni ora, invii la richiesta di (eventuale) aggiornamento verso DuckDNS.

Implementazione

In primis è necessario collegarsi via SSH al proprio Raspberry Pi.
Una volta connessi, eseguire i seguenti tre comandi:

mkdir duckdns
cd duckdns
sudo nano duck.sh

A questo punto è necessario inserire una stringa nell’editor che sarà comparso.
Tale stringa è essenzialmente la seguente (tutto in una sola riga):

echo url="https://www.duckdns.org/update?domains=<tuo-dominio>&token=<tuo-token>&ip=" | curl -k -o ~/duckdns/duck.log -K -

dove:

  • <tuo-dominio> è il nome del tuo dominio, inteso come terzo livello, quindi nel caso sopra solo “miodominio“;
  • <tuo-token> è il token assegnato al proprio dominio.

Per scoprire il token è sufficiente collegarsi su DuckDNS e leggere la scheda che appare:

duckdns token

La voce è appunto “token” e il token stesso è la lunga stringa che segue.

Una volta modellata opportunamente la stringa, è necessario copia-incollarla dentro l’editor.
Successivamente, salvare e uscire (CTRL+X, Y, Invio).

Fatto questo, eseguire i seguenti due comandi:

sudo chmod 777 duck.sh
export VISUAL=nano; crontab -e

Posizionarsi in fondo all’editor che apparirà e inserire la seguente stringa:

*/60 * * * * ~/duckdns/duck.sh >/dev/null 2>&1

Questo farà sì che l’aggiornamento avvenga ogni 60 minuti.

Infine, eseguire il seguente comando:

sudo service cron start

TEST

Per verificare che l’aggiornamento funzioni, eseguire i seguenti due comandi:

cd duckdns
./duck.sh
cat duck.log

Se apparirà “OK“, signfica che la comunicazione verso DuckDNS è stata effettuata e l’aggiornamento richiesto correttamente.