community italiana di domotica personale
 
Aggiornare automaticamente Duck DNS dal proprio Raspberry

Aggiornare automaticamente Duck DNS dal proprio Raspberry

3 minuti di lettura
SCOPI DELLA GUIDA:
  • Tenere automaticamente aggiornato il proprio record DNS presso Duck DNS
  • 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 eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 3.0

😊  QUESTA GUIDA È ANCHE PARTE DEL NOSTRO PERCORSO GUIDATO ALL’INSTALLAZIONE E CONFIGURAZIONE
di HOME ASSISTANT su RASPBERRY PI.

Abstract

Duck DNS è 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 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.

Si parte

Assunti

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

Metodo Classico

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 Duck DNS.

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 sostanzialmente evoca il servizio online segnalando l’IP del nostro router in modo che possa essere associato al proprio FQDN (laddove sia cambiato dall’ultima chiamata).

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 (o meglio, la verifica e quindi l’eventuale aggiornamento) avvenga automaticamente ogni 60 minuti.

N.b. Per personalizzare il lasso di tempo di verifica, si consiglia di utilizzare questo tool online.

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 Duck DNS è stata effettuata e l’aggiornamento richiesto correttamente.

Metodo Docker

Installare Docker

Installare Docker su Raspberry Pi dotato di sistema operativo Raspbian è piuttosto semplice, esiste una procedura completamente automatica e una manuale. Entrambe le procedure sono illustrate in dettaglio in questa breve guida.

Se si ha già provveduto all’installazione di Docker, va da sé che questo passaggio possa essere saltato.

Istanziare il container Duck DNS

Istanziamo un container Docker ad hoc che contenga una mini-app concepita a tal scopo.
Per farlo, eseguire il seguente comando:

sudo docker run -d --name=duckdns -e TZ=Europe/Rome -e SUBDOMAINS=NOME_DOMINIO -e TOKEN=MIO_TOKEN_DUCKDNS --restart unless-stopped ghcr.io/linuxserver/duckdns

sostituendo nel comando le stringhe indicate come segue:

NOME_DOMINIO nome dominio definito sul servizio Duck DNS (inteso come terzo livello, quindi nel caso sopra solo “casamia“)
MIO_TOKEN_DUCKDNS toker fornito da Duck DNS

Eseguito il comando, il container verrà scaricato ed istanziato. Al termina, verificare tramite il comando:

sudo docker logs duckdns

che i log riportino qualcosa tipo:

Your IP was updated at Thu Gen 1 00:00:00 CET 1980

il che indica un corretto avvio dell’applicazione container e dell’avvenuto aggiornamento dell’associazione IP/FQDN.
Diversamente, un errore tipo:

Something went wrong, please check your settings Thu Gen 1 00:00:00 CET 1980

indica che qualche errore è stato commesso nella formulazione del comando di cui sopra (verificare nome dominio e token).

Una volta attuata correttamente tale configurazione, Duck DNS conoscerà in tempo (quasi) reale l’IP del vostro modem/router, e con lui, voi e chi interrogherà tale FQDN.

   
Telegram News Channel