Quitter le forum et retourner au site

Bind9, systemctl et Ubuntu 16.04

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
Messages : 719
Inscription : lun. 26 mai 2008, 21:05
Distribution : Debian, Ubuntu
Niveau : Moitié plein !
Localisation : Guebwiller

Bind9, systemctl et Ubuntu 16.04

Message par le Manchot Masqué »

Le titre de ce post aurait pu être "le bon (bind), la brute (systemctl) et le truand (ubuntu)".

S'il y a une chose qui énerve les administrateurs, c'est sont les changements non documentés dans les fichiers de configuration.

Avec l'arrivée de systemd dans Ubuntu, en remplacement définitif de upstart, la phase de démarrage a certes gagné en vitesse, (8s sur SSD et sur une machine qui accuse ses 9 ans d'âge), mais cela au prix d'un nouveau mécanisme de démarrage bien plus complexe, et d'une période actuelle de "transition" dans les fichiers de configuration qui pose encore quelques problèmes.

On ne présente plus bind, LE serveur de nom de domaine de l'internet.

Or c'est donc systemd qui s'occupe désormais du lancement de bind9, et là il faut se rendre compte d'un petit détail avec la dernière Ubuntu : le fichier /etc/default/bind9 n'est plus analysé au démarrage, et pour cause : il n'existe plus dans le package de la 16.04 !(merci encore à dpkg -L nom_paquet pour l'info). Bref, carton rouge à Canonical qui laisse ici traîner ce fichier obsolète sans aucun avertissement !

Désormais, il faut donc créer le fichier de configuration idoine dans /etc/systemd/system/bind9.service.d/override.conf avec la commande :

Code : Tout sélectionner

systemctl edit bind9
puis remplir ce fichier avec les options voulues (ici on a ajouté l'option -4 de bind pour limiter l'écoute en IPv4) :

Code : Tout sélectionner

[Service]
ExecStart=
ExecStart=/usr/sbin/named -4 -f -u bind
Attention : la présence des deux lignes ExecStart n'est pas une erreur - "it's a feature" - comme disent ceux qui aiment la complexité. Je trouve cela complètement débile comme syntaxe, mais en fait, la première ligne sert à indiquer à systemd que c'est la seconde qu'il faut prendre en compte...

Une autre solution est de se farcir les mêmes lignes dans /lib/systemd/system/bind9.service, avec le risque qu'à la prochaine mise à jour de bind, le fichier soit écraser sans préavis.

Courage - devuan vaincra ! ;)
Répondre