Ludovic Frank - Développeur indépendant

Ubuntu server, changez rapidement les serveurs DNS

ionicons-v5-k Ludovic Frank 8 mai 2023
1333 lectures Niveau : Débutant

Bonjour 😁,
Cette semaine l'article est tiré de quelque chose qui m'est arrivé récemment, en effet, lors d'une mise à jour d'Ubuntu server, il semble que le paquet bind9, après la mise à jour, se mettait à « crash » au bou d'un moment.

Le problème, c'est que sur cette machine, j'ai besoin de la résolution DNS, en effet, elle héberge des services qui ont besoin de compliquer avec d'autres services en ligne comme Stripe.

Je me retrouve donc avec un appel où l'on m'informe qu'au moment où il faut entrer la carte bancaire sur cette application Symfony, et bien cela n'affiche pas le formulaire demandant la carte ... bizarre 🤔.
En fait, non pas si bizarre que ça, j'avais déjà remarqué qu'après la mise à jour de cette nuit-là, le service bind9 devenait instable, c'est ballot, c'est lui qui créer un cache DNS pour la machine.

Vous l'aurez compris, dans cet article, on va parler de ça...

Bind9, aussi utilisé comme cache DNS locale.

Bind9, un serveur DNS Open Source, est parfois utilisé comme cache DNS, c'est le cas chez Scaleway, par défaut quand vous recevez un serveur sous Ubuntu, celui-ci utilisera un cache local, ce cache local sera assuré par Bind9.
Cela permet de ne pas « spam » les serveurs DNS pour les requêtes DNS récurrents.

Comment connaitre ses serveurs DNS ?

Pour connaitre vos serveurs DNS sur votre serveur, c'est plutôt simple (quoi que ?), regardez simplement le contenu du fichier "/etc/resolv.conf", vous pouvez le faire avec la commande "cat /etc/resolv.conf".

Un exemple de fichier "/etc/resolv.conf"

Pourquoi "Quoi que ?"
Comme je l'ai dit plus haut, parfois, bind9 est utilisé comme serveur DNS, de ce fait, dans la liste des serveurs DNS vous pourrez voir "127.0.0.1", à savoir votre adresse IP locale, c'est tout simplement le serveur bind9 qui écoute les requêtes DNS en local.

Enfin, vous pouvez utiliser la commande dig, afin de vérifier que la résolution DNS se passe correctement, par exemple : "dig developpeur-freelance.io"

Un exemple de réponse de la commande "dig"

Sur cet exemple, vous pouvez voir que le serveur "62.210.16." a été utilisé.

La facilité, resolvconf

Installation

L'idée ici, c’est de ne pas trop se tracasser pour ça, il y a une autre méthode, mais on va rester avec la méthode simple, tout d'abord, installez "resolvconf" avec la commande : "sudo apt-get install resolvconf"

Configuration

Une fois le paquet installé, il va falloir passer à la configuration de celui-ci, c'est relativement simple, modifier le fichier "/etc/resolvconf/resolv.conf.d/head" et d'y mettre les DNS voulus, dans cet exemple, ceux de Google (oui, je sais ... 😛) :

Un exemple de fichier "/etc/resolvconf/resolv.conf.d/head"

La syntaxe est la même que dans le fichier "/etc/resolv.conf", mais celui-là contrairement à l'autre vous avez le droit de le modifier 😁.

Application de la configuration

Pour activer le tout, entrez la commande "sudo systemctl enable --now resolvconf.service", tout simplement.
Ensuite vous pouvez faire un "dig" pour tester si tout est OK, par exemple "dig developpeur-freelance.io".

Conclusion

Pour ceux qui veulent aller plus loin, quand j'ai eu mon souci de DNS, la base a été cet article.

Vous savez maintenant comment changer vos DNS simplement sur Ubuntu serveur 😁.
À la prochaine 🙂.