Quelle est la «bonne façon» d'effectuer des changements dans /etc/resolv.conf avec /etc/resolv.conf.d en place?

11

Auparavant, j'étais resolv.confstatique et vous l'avez modifié vous-même.

Plus tard, le client DHCP le réécrivait, en utilisant des entrées statiques et ce qu'il avait obtenu du bail DHCP.

De nos jours, certaines distributions - comme la mienne (Linux Mint 18.1) ont un /etc/resolv.conf.dmécanisme avec plusieurs sous-répertoires de scripts, et, bien, je ne peux pas en faire des têtes et des queues.

Quelle est la bonne façon, alors,

  • pour indiquer que je souhaite utiliser ou ne pas utiliser les serveurs DNS obtenus dans le bail DHCP?
  • ajouter des entrées fixes à resolv.conf, toujours ou comme solution de rechange lorsqu'il n'y a pas de serveur de noms obtenu par bail DHCP?
  • prendre des décisions sur l'ordre relatif dans le dossier?

Cela ne me dérange pas d'écrire mes propres scripts si je l'ai, je ne veux simplement pas "travailler contre" le mécanisme existant ou faire un travail en double.

einpoklum
la source
4
Je désinstalle resolvconfsur les serveurs ... unix.stackexchange.com/questions/286195/…
Rui F Ribeiro
Vous pouvez également configurer dhclientpour ignorer / remplacer les informations DNS DHCP; Je ne suis pas sûr qu'il y ait un mécanisme /etc/resolv.conf.dpour le faire (mais je n'utilise pas Mint, et je n'ai pas ces scripts).
dirkt
@dirkt: En fait, pour le moment, la seule entrée qui entre dans mon /etc/resolv.confest l'hôte local (qui exécute dnsmasq), donc je ne sais pas comment interagissent dnsmasq, le mécanisme resolv.conf.d et le client DHCP.
einpoklum

Réponses:

2

La réponse est simple, le resolv.conf.ddossier existe dans / etc / resolvconf / et contient les fichiers head / base / original et tail. chacun d'entre eux, s'il est modifié, mettra à jour le resolv.conffichier dans / etc /

disons que vous voulez mettre une adresse DNS statique au début de resolv.confdans / etc / (car à chaque redémarrage, il revient automatiquement à ses paramètres par défaut), vous devez modifier le headfichier dans /etc/resolvconf/resolvconf.d/ et taper dans par exemple:

nameserver 1.1.1.1
nameserver 1.0.0.1

après cela, redémarrez le service resolvconf en utilisant:

sudo service resolvconf restart

maintenant cat resolv.confdans / etc / et vous verrez les nouvelles modifications.

la même chose s'applique si vous voulez mettre des choses en bas du fichier, vous utilisez à la tailplace de headdans /etc/resolvconf/resolvconf.d/

PS: c'est 100% testé et fonctionne sous Ubuntu et Debian

Edit: J'ai déjà répondu aux deux dernières puces de votre question, concernant maintenant la première puce qui explique comment ne pas utiliser l'adresse DNS fournie par DHCP. Cela dépend vraiment du logiciel / package DNS que vous avez installé, donc je vous recommande de vérifier ce message , et assurez-vous de lire celui ci-dessous également au cas où vous l'auriez dnsmasq.

M03
la source
1
+1, mais cela explique seulement comment faire une partie de ce que j'ai demandé.
einpoklum
0

resolv.conf et certains mécanismes comme ceux-ci existent depuis des années jusqu'à maintenant. Il y a une ligne de commande dhclient, resolvconfqui gère ce fichier. Cependant, au cours de la dernière année, Linux a introduit une nouvelle interface pour la configuration NetworkManager sous le nom de nmcli . Il s'agit d'une commande riche pour gérer toutes les configurations réseau persistantes (et non l'exécution). vous pouvez utiliser quelque chose comme:

$ nmcli connection modify eth0 ipv4.dns 8.8.8.8

Cette commande remplacera le resolv.conffichier. Dans RHCA, il est recommandé de ne pas modifier resolv.conf à la main et d'utiliser ses commandes. À propos du répertoire resolvconf que vous avez mentionné, je peux dire qu'il peut y avoir certains services qui ont leur propre conf pour DNS donc ils l'utilisent leur propre conf comme OpenVpn. Vous pouvez /etc/nsswitchégalement consulter le fichier pour obtenir plus d'informations sur la résolution.

Ali Ghasempour
la source
Je ne pense pas que cela réponde réellement à ma question.
einpoklum
Eh bien, c'est peut-être ma mademoiselle comprise à propos de votre question, mais le nsswitchfichier est l'une de vos réponses.
Ali Ghasempour
Je crois que @einpoklum veut avoir le contrôle sur l'ordre des serveurs DNS dans resolv.conf(voir man resolv.conf), pas sur l'ordre des moyens utilisés pour résoudre ( man nsswitch.conf). Mais votre réponse est néanmoins intéressante.
xhienne
Merci pour ton intérêt . Pour autant que je sache, resolv.conf est un fichier séquentiel et sa priorité de résolution est de haut en bas.
Ali Ghasempour