Qu'est-ce que le DNS dynamique?
Prenons un exemple courant de configuration DNS. Votre domaine est example.comet vous avez " A" des enregistrements pour server1.example.comet server2.example.com. Server1 est hébergé dans Vultr, mais server2 est hébergé sur un réseau local, comme à l'intérieur de votre entreprise ou comme machine de développement chez vous. En règle générale, ces types d'environnements locaux ont des adresses IP publiques attribuées dynamiquement à partir de votre fournisseur de services Internet (ISP), et elles peuvent changer de manière inattendue. Cela entraînerait soudainement le serveur 2 pointant vers une mauvaise adresse IP qui pourrait gravement affecter le service. Cet article vous montrera comment configurer votre propre service DNS dynamique, qui s'exécute sur une machine locale et peut mettre à jour automatiquement l'enregistrement pour server2 dans Vultr DNS après une modification IP publique.
Bien que les clients aiment ddclientet inadynfonctionnent pour certains fournisseurs DNS, Vultr ne les prend pas actuellement en charge et utilise à la place sa propre API personnalisée. Ce service s'exécutera localement sur votre ordinateur et utilisera les requêtes GET et POST avec votre clé d'accès.
Conditions préalables
- Accédez à votre compte Vultr pour configurer le DNS et gérer les clés d'accès.
- Possibilité de se connecter à la machine locale qui a une adresse IP dynamique (ou accès à une autre machine sur le même réseau).
Installation et configuration
Configuration de votre domaine pour utiliser le service DNS de Vultr
- Si vous n'utilisez pas le service DNS de Vultr pour votre domaine, suivez cet article pour modifier vos serveurs de noms à utiliser avec Vultr.
- Une fois Vultr DNS configuré, accédez à la page de gestion DNS sous "Serveurs -> DNS -> [votre nom de domaine]".
- Vous trouverez ici tous les enregistrements configurés pour votre domaine. Notez le ou les enregistrements que vous souhaitez modifier, car vous en aurez besoin plus tard.
- Seuls les
Aenregistrements " " sont pris en charge par cet utilitaire. Si vous avez plusieurs " A" enregistrements que vous souhaitez mettre à jour avec la même adresse IP, remplacez-les par " CNAME" enregistrements et pointez-les sur un " A" enregistrement. Cela vous simplifiera les choses à long terme et est considéré comme la bonne façon de configurer DNS.
Installer les outils nécessaires
- Connectez-vous à votre serveur local. Cela peut être directement ou via SSH.
- Cet outil nécessite Python 3. La plupart des distributions de Linux incluent Python préinstallé. Dans le cas où il n'est pas installé dans votre environnement, des instructions sont disponibles sur le wiki officiel de Python ici:
- Ce processus nécessite également Git, que vous pouvez installer avec les instructions ci-dessous:
Téléchargement du client DNS dynamique
Utilisez Git pour cloner le référentiel contenant le client DDNS python. Vous devez le faire dans un répertoire sécurisé auquel vous avez un accès complet. Votre dossier personnel devrait être suffisant. Exécutez la commande suivante:
git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns
Génération d'un jeton d'accès personnel
Générez un jeton d'accès personnel dans Vultr. Cela peut être fait sous "Compte -> API -> Jeton d'accès personnel". Sur cette même page, vous devrez aller sous "Contrôle d'accès" et cliquer sur le bouton "Autoriser tout IPv4", car vous ne connaîtrez pas l'IP de votre serveur local à chaque fois, d'où le point de DNS dynamique.
Configuration de l'outil pour votre serveur
- Lisez le
config.json.examplefichier pour voir à quoi devrait ressembler votre fichier de configuration.
- Ouvrez le
config.jsonfichier à l'aide de votre éditeur de texte préféré et remplissez les valeurs en fonction de la configuration spécifique de votre serveur.
-
Le fichier doit contenir les éléments suivants:
{
"api_key": "",
"domain": "",
"dynamic_records": [
""
]
}
-
Entrez votre jeton d'accès dans le champ api_key.
- Entrez votre domaine de base dans le
domainchamp. Par exemple example.com,.
- Saisissez maintenant les
Aenregistrements " " que vous souhaitez modifier sous le dynamic_recordschamp. En utilisant l'exemple précédent, vous devez saisir server2pour modifier automatiquement server2l'adresse IP de. Vous pouvez entrer plusieurs sous-domaines. Si vous souhaitez modifier l' Aenregistrement " " de base de votre domaine (généralement référencé comme " @l'enregistrement qui répond lorsque vous accédez directement à" example.com), laissez simplement des guillemets vides.
-
Un fichier de configuration approprié peut ressembler à ceci, où vous souhaitez modifier dynamiquement l'IP pour example.comet server2.example.com:
{
"api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"domain": "example.com",
"dynamic_records": [
"",
"server2"
]
}
-
Maintenant, enregistrez ces modifications et votre fichier devrait être prêt à l'emploi!
Testez votre configuration
- Testez le script et la configuration en exécutant
python3 ddns.py. Si cela ne renvoie aucune erreur, votre configuration est nominale et vous pouvez démarrer le processus d'automatisation.
Automatisation
Après avoir terminé la configuration de base, il est important de configurer une tâche récurrente car le script ne le fait pas par défaut. Connectez-vous à votre ordinateur local et suivez les étapes ci-dessous en fonction de votre système d'exploitation.
Linux et Mac OSX
Linux et Mac ont crondéjà l' utilitaire installé, qui vous permet de spécifier des scripts à exécuter selon des horaires définis.
- Recherchez le chemin complet du
ddns.pyfichier en utilisant realpath ddns.pydans le vultrddnsrépertoire.
- Exécutez
crontab -epour modifier votre crontab.
-
Ajoutez la ligne suivante à la fin du fichier, en ajoutant le chemin d'accès réel au ddns.pyfichier:
*/30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
-
Cela exécutera le script toutes les 30 minutes et redirigera toutes ses sorties vers /dev/null.
- Enregistrez et quittez l'éditeur de texte. Le fichier crontab sera automatiquement installé et votre adresse IP sera désormais automatiquement mise à jour.
les fenêtres
Créez une tâche dans le Planificateur de tâches à exécuter toutes les 30 minutes. Suivez le guide Microsoft pour la création de tâches de base.
- Ouvrez le Planificateur de tâches et cliquez sur "Créer une tâche ...".
- Donnez-lui un nom et créez un nouveau déclencheur.
- Cliquez sur "Quotidien". Sous "Paramètres avancés", cliquez pour répéter la tâche toutes les 30 minutes et remplacez "pour une durée de" par "indéfiniment".
- Ajoutez une nouvelle action pour démarrer un programme et accédez à votre exécutable Python. Ajoutez le
ddns.pyscript comme argument.