13 votes

Comment définir exclusivement DNS pour un espace de noms réseau dans Linux

J'ai créé un espace de nom de réseau dans Linux.

Je pensais qu'il existait un fichier resolv.conf pour chaque espace de noms créé, mais ce n'est pas le cas sur mon système. Je n'ai pas le chemin suivant /etc/netns/namespace_name/resolv.conf. Le dossier netns n'existe pas.

Il n'y a qu'un seul resolv.conf (/etc/resolv.conf et un autre en miroir dans /run/resolv.conf). Toutes les modifications apportées à ce fichier affectent toutes les interfaces réseau. Existe-t-il un moyen d'utiliser des DNS différents pour l'hôte et l'espace de nom?

21voto

KSM0071 Points 73

Vous devez créer le répertoire /etc/netns/_nom_du_namespace_ vous-même et y placer le fichier resolv.conf de version différente.

1 votes

Est-ce que /etc/netns/nom-de-l'espace-de-noms/resolv.conf serait utilisé automatiquement ?

0 votes

Et est-ce que cela peut être utilisé pour iptables aussi ?

3 votes

Il sera utilisé automatiquement car le chemin complet ci-dessus est bind-mounted par ip netns vers /etc/resolv.conf, comme expliqué dans la page de manuel de ip netns man7.org/linux/man-pages/man8/ip-netns.8.html. Donc, à partir d'un espace de noms réseau donné, /etc/resolv.conf est le fichier resolv.conf par espace de noms si et seulement si /etc/netns/namespace-name/resolv.conf a été créé. Sinon, une application verra le resolv.conf de la machine hôte, ce qui pourrait ne pas être le comportement souhaité.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X