Che cos'è il DNS dinamico?
Facciamo un esempio comune di una configurazione DNS. Il tuo dominio è example.com
e hai " A
" record per server1.example.com
e server2.example.com
. Server1 è ospitato in Vultr, ma server2 è ospitato su una rete locale, come all'interno dell'azienda o come macchina di sviluppo in casa. In genere, questi tipi di ambienti locali dispongono di indirizzi IP pubblici assegnati dinamicamente dal proprio provider di servizi Internet (ISP) e possono cambiare in modo imprevisto. Ciò comporterebbe all'improvviso server2 che indica un indirizzo IP errato che potrebbe influire negativamente sul servizio. Questo articolo ti mostrerà come impostare il tuo servizio DNS dinamico, che viene eseguito su un computer locale e può aggiornare automaticamente il record per server2 in Vultr DNS dopo una modifica dell'IP pubblico.
Mentre ai clienti piacciono ddclient
e inadyn
funzioneranno per alcuni provider DNS, Vultr attualmente non li supporta e utilizza invece la propria API personalizzata. Questo servizio verrà eseguito localmente sul tuo computer e utilizzerà le richieste GET e POST insieme alla chiave di accesso.
Prerequisiti
- Accedi al tuo account Vultr per configurare DNS e gestire le chiavi di accesso.
- Possibilità di connettersi al computer locale che ha un indirizzo IP dinamico (o accedere a un altro computer sulla stessa rete).
Installazione e configurazione
Impostazione del dominio per utilizzare il servizio DNS di Vultr
- Se non stai utilizzando il servizio DNS di Vultr per il tuo dominio, segui questo articolo per modificare i tuoi nameserver da utilizzare con Vultr.
- Dopo aver configurato Vultr DNS, vai alla pagina di gestione DNS in "Server -> DNS -> [nome dominio]".
- Qui troverai tutti i record impostati per il tuo dominio. Annota i record che desideri modificare, poiché ti serviranno in seguito.
- Solo "
A
" i record sono supportati da questa utility. Se si dispone di più " A
" record che si desidera aggiornare allo stesso indirizzo IP, modificarli in " CNAME
" record e puntarli a un " A
" record. Ciò semplifica le cose a lungo termine ed è considerato il modo corretto di configurare il DNS.
Installazione degli strumenti richiesti
- Connettiti al tuo server locale. Questo può essere direttamente o tramite SSH.
- Questo strumento richiede Python 3. La maggior parte delle distribuzioni di Linux include Python preinstallato. Nel caso in cui non sia installato nel tuo ambiente, le istruzioni sono disponibili sul wiki ufficiale di Python qui:
- Questo processo richiede anche Git, che è possibile installare con le istruzioni seguenti:
Download del client DNS dinamico
Utilizzare Git per clonare il repository contenente il client DDNS python. Dovresti farlo in una directory sicura per la quale hai pieno accesso. La tua cartella home dovrebbe essere sufficiente. Esegui il seguente comando:
git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns
Generazione di un token di accesso personale
Genera un token di accesso personale in Vultr. Questo può essere fatto in "Account -> API -> Token di accesso personale". Nella stessa pagina, dovrai andare sotto "Controllo accessi" e fare clic sul pulsante "Consenti tutto IPv4", poiché non conoscerai sempre l'IP del tuo server locale, quindi il punto del DNS dinamico.
Configurazione dello strumento per il tuo server
- Leggi il
config.json.example
file per un esempio di come dovrebbe apparire il tuo file di configurazione.
- Apri il
config.json
file utilizzando il tuo editor di testo preferito e compila i valori in base alla tua specifica configurazione del server.
-
Il file dovrebbe contenere quanto segue:
{
"api_key": "",
"domain": "",
"dynamic_records": [
""
]
}
-
Inserisci il tuo token di accesso nel campo api_key
.
- Inserisci il tuo dominio di base nel
domain
campo. Ad esempio example.com
,.
- Ora inserisci i "
A
" record che vuoi cambiare sotto il dynamic_records
campo. Utilizzando l'esempio precedente, si immette server2
per modificare automaticamente l' server2
indirizzo IP. Puoi inserire più sottodomini. Se si desidera modificare il " A
" record di base per il proprio dominio (comunemente indicato come un @
, il record che risponde quando si passa direttamente a example.com
), lasciare semplicemente virgolette vuote.
-
Un file di configurazione appropriato può apparire come questo, in cui si desidera modificare dinamicamente l'IP per example.com
e server2.example.com
:
{
"api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"domain": "example.com",
"dynamic_records": [
"",
"server2"
]
}
-
Ora salva queste modifiche e il tuo file dovrebbe essere pronto!
Metti alla prova la tua configurazione
- Testare lo script e la configurazione eseguendo
python3 ddns.py
. Se ciò non restituisce alcun errore, la configurazione è nominale ed è possibile avviare il processo di automazione.
Automazione
Dopo aver completato l'installazione di base, è importante impostare un'attività ricorrente poiché lo script non lo fa per impostazione predefinita. Connettiti al tuo computer locale e segui i passaggi seguenti in base al tuo sistema operativo.
Linux e Mac OSX
Linux e Mac hanno l' cron
utilità già installata, che consente di specificare gli script da eseguire in orari prestabiliti.
- Trova il percorso completo del
ddns.py
file utilizzando realpath ddns.py
mentre sei ancora nella vultrddns
directory.
- Esegui
crontab -e
per modificare il tuo crontab.
-
Aggiungi la seguente riga alla fine del file, aggiungendo il percorso reale al ddns.py
file:
*/30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
-
Questo eseguirà lo script ogni 30 minuti e reindirizzerà tutto il suo output su /dev/null
.
- Salva ed esci dall'editor di testo. Il file crontab verrà installato automaticamente e il tuo IP verrà automaticamente aggiornato.
finestre
Creare un'attività in Utilità di pianificazione da eseguire ogni 30 minuti. Segui la guida di Microsoft per la creazione di attività di base.
- Apri l'Utilità di pianificazione e fai clic su "Crea attività ...".
- Dagli un nome e crea un nuovo trigger.
- Fai clic su "Giornaliero". In "Impostazioni avanzate" fai clic per ripetere l'attività ogni 30 minuti e modifica "per una durata da" a "Indeterminatamente".
- Aggiungi una nuova azione per avviare un programma e sfoglia il tuo eseguibile Python. Aggiungi lo
ddns.py
script come argomento.