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

9

J'ai créé un espace de noms réseau sous Linux.

Je pensais qu'il y avait 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). Toute modification de ce fichier affecte toutes les interfaces réseau. Existe-t-il un moyen d'utiliser différents DNS pour l'hôte et l'espace de noms?

jayce153
la source

Réponses:

11

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

Nik
la source
1
Serait /etc/netns/namespace-name/resolv.confutilisé automatiquement?
CMCDragonkai du
Et cela peut-il également être utilisé pour iptables?
CMCDragonkai
2
Il sera utilisé automatiquement car le chemin complet ci-dessus est monté par ip netnsliaison sur /etc/resolv.conf, comme expliqué dans la page de manuel d'ip netns man7.org/linux/man-pages/man8/ip-netns.8. html . Ainsi, à partir d'un espace de noms de 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é.
Ricky Robinson