Què és el DNS dinàmic?
Requisits previs
Instal·lació i Configuració
Automatització
Què és el DNS dinàmic?
Prenguem un exemple comú d'una configuració de DNS. El vostre domini és example.com, i teniu " A" registres per a server1.example.comi server2.example.com. El servidor1 està allotjat a Vultr, però el servidor2 està allotjat en una xarxa local, com a dins del vostre negoci o com a màquina de desenvolupament a casa vostra. Normalment, aquests tipus d'entorns locals tenen adreces IP públiques assignades de forma dinàmica des del vostre proveïdor de serveis d'Internet (ISP) i poden canviar de manera inesperada. Això faria que el servidor2 apuntés de sobte a una adreça IP incorrecta que podria afectar greument el servei. Aquest article us mostrarà com configurar el vostre propi servei DNS dinàmic, que s'executa en una màquina local i pot actualitzar automàticament el registre del servidor2 a Vultr DNS després d'un canvi d'IP pública.
While clients like ddclient and inadyn will work for some DNS providers, Vultr does not currently support these and instead uses its own custom API. This service will run locally on your machine and use GET and POST requests along with your access key.
Requisits previs
- Accediu al vostre compte Vultr per configurar el DNS i gestionar les claus d'accés.
- Possibilitat de connectar-se a la màquina local que té una adreça IP dinàmica (o accés a una altra màquina de la mateixa xarxa).
Instal·lació i Configuració
Configurant el vostre domini per utilitzar el servei DNS de Vultr
- Si no utilitzeu el servei DNS de Vultr per al vostre domini, seguiu aquest article per modificar els vostres servidors de noms per utilitzar-los amb Vultr.
- Un cop s'hagi configurat Vultr DNS, aneu a la pàgina de gestió de DNS a "Servidors -> DNS -> [el vostre nom de domini]".
- Aquí trobareu tots els registres configurats per al vostre domini. Anoteu quins registres voleu canviar, ja que ho necessitareu més endavant.
AAquesta utilitat només admet " " els registres. Si teniu diversos Aregistres " " que voleu actualitzar a la mateixa adreça IP, canvieu-los per " CNAME" registres i apunteu-los a un " A" registre. Això us simplificarà les coses a la llarga i es considera la forma adequada de configurar el DNS.
Instal·lació de les eines necessàries
- Connecteu-vos al vostre servidor local. Això pot ser directament o mitjançant SSH.
- Aquesta eina requereix Python 3. La majoria de distribucions de Linux inclouen Python preinstal·lat. En el cas que no estigui instal·lat al vostre entorn, les instruccions estan disponibles a la wiki oficial de Python aquí:
- Aquest procés també requereix Git, que podeu instal·lar amb les instruccions següents:
Descàrrega del client Dynamic DNS
Utilitzeu Git per clonar el dipòsit que conté el client DDNS de Python. Hauríeu de fer-ho en un directori segur al qual tingueu accés total. La vostra carpeta d'inici hauria de ser suficient. Executeu l'ordre següent:
git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns
Generació d'un testimoni d'accés personal
Genereu un testimoni d'accés personal a Vultr. Això es pot fer a "Compte -> API -> Fitxa d'accés personal". En aquesta mateixa pàgina, hauràs d'anar a "Control d'accés" i fer clic al botó "Permetre tot IPv4", ja que no coneixeràs la IP del teu servidor local cada vegada, d'aquí el punt de DNS dinàmic.
Configuració de l'eina per al vostre servidor
- Llegiu el
config.json.examplefitxer per obtenir un exemple de com hauria de ser el vostre fitxer de configuració.
- Obriu el
config.jsonfitxer amb el vostre editor de text preferit i ompliu els valors segons la configuració específica del vostre servidor.
El fitxer ha de contenir el següent:
{
"api_key": "",
"domain": "",
"dynamic_records": [
""
]
}
Introduïu el vostre testimoni d'accés al camp api_key.
- Introduïu el vostre domini base al
domaincamp. Per exemple, example.com.
- Ara introduïu els "
A" registres que voleu canviar al dynamic_recordscamp. Utilitzant l'exemple anterior, entrareu server2per canviar automàticament l' server2adreça IP de. Podeu introduir diversos subdominis. Si voleu canviar el Aregistre " " base del vostre domini (normalment referit com a @, el registre que respon quan navegueu directament a example.com), simplement deixeu cometes buides.
Un fitxer de configuració adequat pot semblar així, on voleu canviar dinàmicament l'IP per example.comi server2.example.com:
{
"api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"domain": "example.com",
"dynamic_records": [
"",
"server2"
]
}
Ara deseu aquests canvis i el vostre fitxer hauria d'estar a punt!
Proveu la vostra configuració
- Proveu l'script i la configuració executant
python3 ddns.py. Si això no retorna cap error, la vostra configuració és nominal i podeu iniciar el procés d'automatització.
Automatització
Després de completar la configuració bàsica, és important configurar una tasca recurrent, ja que l'script no ho fa per defecte. Connecteu-vos a la vostra màquina local i seguiu els passos següents segons el vostre sistema operatiu.
Linux i Mac OSX
Linux i Mac tenen la cronutilitat ja instal·lada, que us permet especificar scripts per executar-se en horaris establerts.
- Trobeu la ruta completa del
ddns.pyfitxer utilitzant realpath ddns.pymentre encara esteu al vultrddnsdirectori.
- Executeu
crontab -eper editar el vostre crontab.
Afegiu la línia següent al final del fitxer, afegint el camí real al ddns.pyfitxer:
*/30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
Això executarà l'script cada 30 minuts i redirigirà tota la seva sortida a /dev/null.
- Deseu i sortiu de l'editor de text. El fitxer crontab s'instal·larà automàticament i la vostra IP s'actualitzarà automàticament.
Windows
Creeu una tasca al Programador de tasques per executar-la cada 30 minuts. Seguiu la guia de Microsoft per a la creació de tasques bàsiques.
- Obriu el Programador de tasques i feu clic a "Crea una tasca...".
- Doneu-li un nom i creeu un activador nou.
- Feu clic a "Diari". A "Configuració avançada", feu clic per repetir la tasca cada 30 minuts i canvieu "per a una durada de" a "Indefinidament".
- Afegiu una acció nova per iniciar un programa i navegueu al vostre executable de Python. Afegiu l'
ddns.pyscript com a argument.