Differenze tra le versioni di "DNS Dinamico"

Da Linux User Group Scandiano.
 
(5 versioni intermedie di un altro utente non mostrate)
Riga 3: Riga 3:
 
Per ottenere un host esistono diversi servizi in rete, alcuni gratuiti. In questo esempio viene utilizzato [http://www.dtdns.com/ www.dtdns.com]: basta registrarsi e si hanno a disposizione 5 host. Si può scegliere lo hostname a piacere e il dominio a scelta tra quelli proposti.
 
Per ottenere un host esistono diversi servizi in rete, alcuni gratuiti. In questo esempio viene utilizzato [http://www.dtdns.com/ www.dtdns.com]: basta registrarsi e si hanno a disposizione 5 host. Si può scegliere lo hostname a piacere e il dominio a scelta tra quelli proposti.
  
Questo è uno script<ref>Tratto dallo script di Pubblico Dominio di R. Anthony Kolstee [http://www.dtdns.com/dtsite/updateclients]</ref>. è utile per mantenere aggiornata l'assegnazione dell'IP. Funziona in questo modo: controlla sul servizio [http://icanhazip.com/ icanhazip.com] l'IP attuale e lo confronta con un DNS (quindi l'ultima registrazione valida), se gli indirizzi non coincidono richiede l'aggiornamento e scrive un log in ''/var/log/messages''.
+
Questo script<ref>Tratto dallo script di Pubblico Dominio di R. Anthony Kolstee [http://www.dtdns.com/dtsite/updateclients]</ref> è utile per mantenere aggiornata l'assegnazione dell'IP. Funziona in questo modo: controlla sul servizio [http://icanhazip.com/ icanhazip.com] l'IP attuale e lo confronta con un DNS (quindi l'ultima registrazione valida), se gli indirizzi non coincidono richiede l'aggiornamento e scrive un log in ''/var/log/messages''.
 
Attenzione: i vari servizi sono soggetti a modifiche, quindi è necessario controllare che tutto continui a funzionare.
 
Attenzione: i vari servizi sono soggetti a modifiche, quindi è necessario controllare che tutto continui a funzionare.
 
Nell'esempio utilizziamo come indirizzo fittizio ''hostname.dominio.com''.
 
Nell'esempio utilizziamo come indirizzo fittizio ''hostname.dominio.com''.
Riga 11: Riga 11:
  
 
IPADDR=$(curl icanhazip.com)
 
IPADDR=$(curl icanhazip.com)
 
#LASTIP=`nslookup canth.dtdns.net ns1.darktech.org | grep -A1 canth |
 
 
LASTIP=$(nslookup hostname.dominio.com ns1.darktech.org | grep -A1 hostname | grep Address | awk '{print $2 }')
 
LASTIP=$(nslookup hostname.dominio.com ns1.darktech.org | grep -A1 hostname | grep Address | awk '{print $2 }')
  
Riga 25: Riga 23:
 
   logger IP cambiato "$IPADDR" -t $TAG ;
 
   logger IP cambiato "$IPADDR" -t $TAG ;
 
else
 
else
   echo "IP still $IPADDR"
+
   echo "IP invariato: $IPADDR"
 
fi
 
fi
 
</pre>
 
</pre>
  
Sostituiamo l'hostname, l'indirizzo e la password con quelli ottenuti.
+
Sostituiamo l'hostname, l'indirizzo e la password con quelli personali.
 
Possiamo salvare lo script nella cartella ''/usr/local/bin'' e poi lo rendiamo eseguibile (in questo caso è stato nominato "ddns"):
 
Possiamo salvare lo script nella cartella ''/usr/local/bin'' e poi lo rendiamo eseguibile (in questo caso è stato nominato "ddns"):
 
  chmod 755 /usr/local/bin/ddns
 
  chmod 755 /usr/local/bin/ddns
Riga 36: Riga 34:
 
  */10 * * * *  user      ddns >/dev/null 2>&1
 
  */10 * * * *  user      ddns >/dev/null 2>&1
 
In questo modo ogni 10 minuti il sistema controllerà l'indirizzo (sostituiamo ''user'' con l'account dell'utente che usiamo sul PC).
 
In questo modo ogni 10 minuti il sistema controllerà l'indirizzo (sostituiamo ''user'' con l'account dell'utente che usiamo sul PC).
 +
 +
== Script bash più raffinati ==
 +
Se stai cercando uno script bash più raffinato per gestire la modifica dell'account dtdns, puoi utilizzare [https://github.com/allea78/dtdns-updater dtdns-updater].
  
 
== Note ==
 
== Note ==
 
<references/>
 
<references/>
 
[[Categoria: Guide]]
 
[[Categoria: Guide]]

Versione attuale delle 15:38, 5 ago 2013

Questa pagina ha lo scopo di aiutare chi volesse utilizzare un servizio di DNS Dinamico sul proprio PC di casa con GNU/Linux. Questo servizio permette di assegnare un host al proprio IP anche se questo cambia.

Per ottenere un host esistono diversi servizi in rete, alcuni gratuiti. In questo esempio viene utilizzato www.dtdns.com: basta registrarsi e si hanno a disposizione 5 host. Si può scegliere lo hostname a piacere e il dominio a scelta tra quelli proposti.

Questo script[1] è utile per mantenere aggiornata l'assegnazione dell'IP. Funziona in questo modo: controlla sul servizio icanhazip.com l'IP attuale e lo confronta con un DNS (quindi l'ultima registrazione valida), se gli indirizzi non coincidono richiede l'aggiornamento e scrive un log in /var/log/messages. Attenzione: i vari servizi sono soggetti a modifiche, quindi è necessario controllare che tutto continui a funzionare. Nell'esempio utilizziamo come indirizzo fittizio hostname.dominio.com.

#!/bin/bash

IPADDR=$(curl icanhazip.com)
LASTIP=$(nslookup hostname.dominio.com ns1.darktech.org | grep -A1 hostname | grep Address | awk '{print $2 }')

TAG="NEW-IP"

echo -n "`date` - "

if [ "$IPADDR" != "$LASTIP" ]; then
  echo -e "GET /api/autodns.cfm?id=HOSTNAME&pw=PASSWORD&client=BSD HTTP/1.1\nHost: www.dtdns.com\nUser-Agent: bash\n\n" | \
         nc www.dtdns.com 80 > /dev/null 2>&1
  echo "Posted IP change from $LASTIP to $IPADDR"
  logger IP cambiato "$IPADDR" -t $TAG ;
else
  echo "IP invariato: $IPADDR"
fi

Sostituiamo l'hostname, l'indirizzo e la password con quelli personali. Possiamo salvare lo script nella cartella /usr/local/bin e poi lo rendiamo eseguibile (in questo caso è stato nominato "ddns"):

chmod 755 /usr/local/bin/ddns

Automatizziamo il tutto mettendo una riga all'interno di /etc/crontab:

*/10 * * * *   user      ddns >/dev/null 2>&1

In questo modo ogni 10 minuti il sistema controllerà l'indirizzo (sostituiamo user con l'account dell'utente che usiamo sul PC).

Script bash più raffinati

Se stai cercando uno script bash più raffinato per gestire la modifica dell'account dtdns, puoi utilizzare dtdns-updater.

Note

  1. Tratto dallo script di Pubblico Dominio di R. Anthony Kolstee [1]